@taiga-ui/core 4.51.0 → 4.52.0-canary.1ea42f6

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 (432) hide show
  1. package/classes/driver.d.ts +1 -1
  2. package/components/button/button.directive.d.ts +2 -3
  3. package/components/button/button.options.d.ts +1 -1
  4. package/components/calendar/calendar-sheet.component.d.ts +1 -6
  5. package/components/cell/cell.directive.d.ts +9 -0
  6. package/components/cell/cell.options.d.ts +6 -0
  7. package/components/cell/index.d.ts +2 -0
  8. package/components/dialog/active-zone-adapter.directive.d.ts +11 -0
  9. package/components/error/error.component.d.ts +5 -7
  10. package/components/error/error.d.ts +4 -0
  11. package/components/error/error.directive.d.ts +19 -0
  12. package/components/error/error.pipe.d.ts +10 -0
  13. package/components/error/index.d.ts +3 -0
  14. package/components/header/header.directive.d.ts +17 -0
  15. package/components/header/index.d.ts +1 -0
  16. package/components/icon/icon.component.d.ts +6 -8
  17. package/components/index.d.ts +2 -1
  18. package/components/notification/notification.options.d.ts +1 -1
  19. package/components/root/root.component.d.ts +5 -6
  20. package/components/scrollbar/scrollbar.options.d.ts +1 -1
  21. package/components/textfield/textfield-content.directive.d.ts +3 -2
  22. package/components/textfield/textfield-icon.d.ts +3 -3
  23. package/components/textfield/textfield-multi/textfield-multi.component.d.ts +2 -3
  24. package/components/textfield/textfield.component.d.ts +11 -9
  25. package/components/textfield/textfield.directive.d.ts +1 -1
  26. package/directives/appearance/appearance.directive.d.ts +5 -13
  27. package/directives/dropdown/dropdown-context.directive.d.ts +2 -0
  28. package/directives/icons/icons.bindings.d.ts +5 -0
  29. package/directives/icons/icons.directive.d.ts +8 -14
  30. package/directives/icons/index.d.ts +1 -0
  31. package/directives/index.d.ts +0 -1
  32. package/directives/title/title.directive.d.ts +2 -3
  33. package/fesm2022/taiga-ui-core-animations.mjs.map +1 -1
  34. package/fesm2022/taiga-ui-core-classes.mjs +3 -3
  35. package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
  36. package/fesm2022/taiga-ui-core-components-alert.mjs +17 -18
  37. package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
  38. package/fesm2022/taiga-ui-core-components-button.mjs +13 -21
  39. package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
  40. package/fesm2022/taiga-ui-core-components-calendar.mjs +22 -24
  41. package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
  42. package/fesm2022/taiga-ui-core-components-cell.mjs +45 -0
  43. package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -0
  44. package/fesm2022/taiga-ui-core-components-data-list.mjs +31 -33
  45. package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
  46. package/fesm2022/taiga-ui-core-components-dialog.mjs +58 -25
  47. package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
  48. package/fesm2022/taiga-ui-core-components-error.mjs +107 -24
  49. package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
  50. package/fesm2022/taiga-ui-core-components-expand.mjs +10 -10
  51. package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
  52. package/fesm2022/taiga-ui-core-components-header.mjs +42 -0
  53. package/fesm2022/taiga-ui-core-components-header.mjs.map +1 -0
  54. package/fesm2022/taiga-ui-core-components-icon.mjs +22 -30
  55. package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
  56. package/fesm2022/taiga-ui-core-components-label.mjs +10 -13
  57. package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
  58. package/fesm2022/taiga-ui-core-components-link.mjs +10 -13
  59. package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
  60. package/fesm2022/taiga-ui-core-components-loader.mjs +6 -7
  61. package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
  62. package/fesm2022/taiga-ui-core-components-notification.mjs +17 -31
  63. package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
  64. package/fesm2022/taiga-ui-core-components-root.mjs +23 -42
  65. package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
  66. package/fesm2022/taiga-ui-core-components-scrollbar.mjs +28 -28
  67. package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
  68. package/fesm2022/taiga-ui-core-components-spin-button.mjs +7 -7
  69. package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
  70. package/fesm2022/taiga-ui-core-components-textfield.mjs +83 -75
  71. package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
  72. package/fesm2022/taiga-ui-core-components.mjs +2 -1
  73. package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
  74. package/fesm2022/taiga-ui-core-directives-appearance.mjs +26 -63
  75. package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
  76. package/fesm2022/taiga-ui-core-directives-date-format.mjs +5 -5
  77. package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
  78. package/fesm2022/taiga-ui-core-directives-dropdown.mjs +76 -74
  79. package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
  80. package/fesm2022/taiga-ui-core-directives-group.mjs +10 -13
  81. package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
  82. package/fesm2022/taiga-ui-core-directives-hint.mjs +61 -62
  83. package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
  84. package/fesm2022/taiga-ui-core-directives-icons.mjs +41 -41
  85. package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
  86. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +11 -11
  87. package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
  88. package/fesm2022/taiga-ui-core-directives-number-format.mjs +5 -5
  89. package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
  90. package/fesm2022/taiga-ui-core-directives-popup.mjs +10 -10
  91. package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
  92. package/fesm2022/taiga-ui-core-directives-title.mjs +13 -19
  93. package/fesm2022/taiga-ui-core-directives-title.mjs.map +1 -1
  94. package/fesm2022/taiga-ui-core-directives.mjs +0 -1
  95. package/fesm2022/taiga-ui-core-directives.mjs.map +1 -1
  96. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +3 -3
  97. package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
  98. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +3 -3
  99. package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
  100. package/fesm2022/taiga-ui-core-pipes-flag.mjs +3 -3
  101. package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
  102. package/fesm2022/taiga-ui-core-pipes-format-date.mjs +3 -3
  103. package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
  104. package/fesm2022/taiga-ui-core-pipes-format-number.mjs +3 -3
  105. package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
  106. package/fesm2022/taiga-ui-core-pipes-initials.mjs +3 -3
  107. package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
  108. package/fesm2022/taiga-ui-core-pipes-month.mjs +3 -3
  109. package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
  110. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +3 -3
  111. package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
  112. package/fesm2022/taiga-ui-core-pipes.mjs +0 -1
  113. package/fesm2022/taiga-ui-core-pipes.mjs.map +1 -1
  114. package/fesm2022/taiga-ui-core-services.mjs +18 -18
  115. package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
  116. package/fesm2022/taiga-ui-core-tokens.mjs +31 -17
  117. package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
  118. package/fesm2022/taiga-ui-core-utils-dom.mjs.map +1 -1
  119. package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
  120. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs +49 -3
  121. package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
  122. package/package.json +17 -121
  123. package/pipes/index.d.ts +0 -1
  124. package/styles/components/appearance.less +6 -0
  125. package/styles/components/button.less +0 -2
  126. package/styles/components/icon.less +37 -12
  127. package/styles/components/icons.less +45 -7
  128. package/styles/components/link.less +1 -3
  129. package/styles/mixins/mixins.less +1 -2
  130. package/styles/mixins/mixins.scss +1 -2
  131. package/styles/mixins/slider.less +5 -10
  132. package/styles/theme/appearance/outline.less +1 -2
  133. package/styles/theme/appearance/textfield.less +1 -2
  134. package/tokens/icon-resolver.d.ts +1 -4
  135. package/tokens/index.d.ts +1 -0
  136. package/tokens/validation-errors.d.ts +4 -0
  137. package/utils/miscellaneous/index.d.ts +1 -0
  138. package/utils/miscellaneous/provide-taiga.d.ts +13 -0
  139. package/components/fullscreen/fullscreen.component.d.ts +0 -14
  140. package/components/fullscreen/index.d.ts +0 -1
  141. package/directives/surface/index.d.ts +0 -1
  142. package/directives/surface/surface.directive.d.ts +0 -8
  143. package/esm2022/animations/animations.mjs +0 -363
  144. package/esm2022/animations/index.mjs +0 -2
  145. package/esm2022/animations/taiga-ui-core-animations.mjs +0 -5
  146. package/esm2022/classes/accessors.mjs +0 -31
  147. package/esm2022/classes/driver.mjs +0 -36
  148. package/esm2022/classes/index.mjs +0 -4
  149. package/esm2022/classes/taiga-ui-core-classes.mjs +0 -5
  150. package/esm2022/classes/vehicle.mjs +0 -7
  151. package/esm2022/components/alert/alert.component.mjs +0 -43
  152. package/esm2022/components/alert/alert.directive.mjs +0 -21
  153. package/esm2022/components/alert/alert.interfaces.mjs +0 -2
  154. package/esm2022/components/alert/alert.service.mjs +0 -18
  155. package/esm2022/components/alert/alert.tokens.mjs +0 -51
  156. package/esm2022/components/alert/alerts.component.mjs +0 -34
  157. package/esm2022/components/alert/index.mjs +0 -6
  158. package/esm2022/components/alert/taiga-ui-core-components-alert.mjs +0 -5
  159. package/esm2022/components/button/button.directive.mjs +0 -43
  160. package/esm2022/components/button/button.options.mjs +0 -7
  161. package/esm2022/components/button/index.mjs +0 -3
  162. package/esm2022/components/button/taiga-ui-core-components-button.mjs +0 -5
  163. package/esm2022/components/calendar/calendar-sheet.component.mjs +0 -167
  164. package/esm2022/components/calendar/calendar-sheet.options.mjs +0 -12
  165. package/esm2022/components/calendar/calendar-spin.component.mjs +0 -53
  166. package/esm2022/components/calendar/calendar-year.component.mjs +0 -128
  167. package/esm2022/components/calendar/calendar.component.mjs +0 -147
  168. package/esm2022/components/calendar/index.mjs +0 -6
  169. package/esm2022/components/calendar/taiga-ui-core-components-calendar.mjs +0 -5
  170. package/esm2022/components/data-list/data-list.component.mjs +0 -139
  171. package/esm2022/components/data-list/data-list.directive.mjs +0 -19
  172. package/esm2022/components/data-list/data-list.mjs +0 -14
  173. package/esm2022/components/data-list/data-list.tokens.mjs +0 -18
  174. package/esm2022/components/data-list/index.mjs +0 -9
  175. package/esm2022/components/data-list/opt-group.directive.mjs +0 -21
  176. package/esm2022/components/data-list/option/option-content.mjs +0 -36
  177. package/esm2022/components/data-list/option/option-legacy.component.mjs +0 -90
  178. package/esm2022/components/data-list/option/option.directive.mjs +0 -109
  179. package/esm2022/components/data-list/taiga-ui-core-components-data-list.mjs +0 -5
  180. package/esm2022/components/dialog/dialog-close.service.mjs +0 -41
  181. package/esm2022/components/dialog/dialog.component.mjs +0 -63
  182. package/esm2022/components/dialog/dialog.directive.mjs +0 -21
  183. package/esm2022/components/dialog/dialog.factory.mjs +0 -15
  184. package/esm2022/components/dialog/dialog.interfaces.mjs +0 -2
  185. package/esm2022/components/dialog/dialog.service.mjs +0 -18
  186. package/esm2022/components/dialog/dialog.tokens.mjs +0 -33
  187. package/esm2022/components/dialog/dialogs.component.mjs +0 -29
  188. package/esm2022/components/dialog/index.mjs +0 -8
  189. package/esm2022/components/dialog/taiga-ui-core-components-dialog.mjs +0 -5
  190. package/esm2022/components/error/error.component.mjs +0 -34
  191. package/esm2022/components/error/index.mjs +0 -2
  192. package/esm2022/components/error/taiga-ui-core-components-error.mjs +0 -5
  193. package/esm2022/components/expand/expand-content.directive.mjs +0 -18
  194. package/esm2022/components/expand/expand.component.mjs +0 -124
  195. package/esm2022/components/expand/expand.mjs +0 -7
  196. package/esm2022/components/expand/index.mjs +0 -4
  197. package/esm2022/components/expand/taiga-ui-core-components-expand.mjs +0 -5
  198. package/esm2022/components/fullscreen/fullscreen.component.mjs +0 -67
  199. package/esm2022/components/fullscreen/index.mjs +0 -2
  200. package/esm2022/components/fullscreen/taiga-ui-core-components-fullscreen.mjs +0 -5
  201. package/esm2022/components/icon/icon.component.mjs +0 -35
  202. package/esm2022/components/icon/icon.pipe.mjs +0 -19
  203. package/esm2022/components/icon/index.mjs +0 -3
  204. package/esm2022/components/icon/taiga-ui-core-components-icon.mjs +0 -5
  205. package/esm2022/components/index.mjs +0 -18
  206. package/esm2022/components/label/index.mjs +0 -2
  207. package/esm2022/components/label/label.directive.mjs +0 -41
  208. package/esm2022/components/label/taiga-ui-core-components-label.mjs +0 -5
  209. package/esm2022/components/link/index.mjs +0 -3
  210. package/esm2022/components/link/link.directive.mjs +0 -47
  211. package/esm2022/components/link/link.options.mjs +0 -13
  212. package/esm2022/components/link/taiga-ui-core-components-link.mjs +0 -5
  213. package/esm2022/components/loader/index.mjs +0 -3
  214. package/esm2022/components/loader/loader.component.mjs +0 -46
  215. package/esm2022/components/loader/loader.options.mjs +0 -18
  216. package/esm2022/components/loader/taiga-ui-core-components-loader.mjs +0 -5
  217. package/esm2022/components/notification/index.mjs +0 -3
  218. package/esm2022/components/notification/notification.directive.mjs +0 -81
  219. package/esm2022/components/notification/notification.options.mjs +0 -23
  220. package/esm2022/components/notification/taiga-ui-core-components-notification.mjs +0 -5
  221. package/esm2022/components/root/index.mjs +0 -2
  222. package/esm2022/components/root/root.component.mjs +0 -85
  223. package/esm2022/components/root/taiga-ui-core-components-root.mjs +0 -5
  224. package/esm2022/components/scrollbar/index.mjs +0 -9
  225. package/esm2022/components/scrollbar/scroll-controls.component.mjs +0 -32
  226. package/esm2022/components/scrollbar/scroll-into-view.directive.mjs +0 -43
  227. package/esm2022/components/scrollbar/scroll-ref.directive.mjs +0 -19
  228. package/esm2022/components/scrollbar/scrollable.directive.mjs +0 -26
  229. package/esm2022/components/scrollbar/scrollbar.component.mjs +0 -72
  230. package/esm2022/components/scrollbar/scrollbar.directive.mjs +0 -93
  231. package/esm2022/components/scrollbar/scrollbar.options.mjs +0 -6
  232. package/esm2022/components/scrollbar/scrollbar.service.mjs +0 -46
  233. package/esm2022/components/scrollbar/taiga-ui-core-components-scrollbar.mjs +0 -5
  234. package/esm2022/components/spin-button/index.mjs +0 -2
  235. package/esm2022/components/spin-button/spin-button.component.mjs +0 -51
  236. package/esm2022/components/spin-button/taiga-ui-core-components-spin-button.mjs +0 -5
  237. package/esm2022/components/taiga-ui-core-components.mjs +0 -5
  238. package/esm2022/components/textfield/index.mjs +0 -16
  239. package/esm2022/components/textfield/select-like.directive.mjs +0 -42
  240. package/esm2022/components/textfield/select.directive.mjs +0 -65
  241. package/esm2022/components/textfield/taiga-ui-core-components-textfield.mjs +0 -5
  242. package/esm2022/components/textfield/textfield-accessor.mjs +0 -7
  243. package/esm2022/components/textfield/textfield-auxiliary.mjs +0 -7
  244. package/esm2022/components/textfield/textfield-content.directive.mjs +0 -22
  245. package/esm2022/components/textfield/textfield-dropdown.directive.mjs +0 -43
  246. package/esm2022/components/textfield/textfield-icon.mjs +0 -10
  247. package/esm2022/components/textfield/textfield-multi/textfield-item.component.mjs +0 -34
  248. package/esm2022/components/textfield/textfield-multi/textfield-multi.component.mjs +0 -137
  249. package/esm2022/components/textfield/textfield.component.mjs +0 -177
  250. package/esm2022/components/textfield/textfield.directive.mjs +0 -131
  251. package/esm2022/components/textfield/textfield.mjs +0 -19
  252. package/esm2022/components/textfield/textfield.options.mjs +0 -63
  253. package/esm2022/components/textfield/with-native-picker.directive.mjs +0 -24
  254. package/esm2022/directives/appearance/appearance.bindings.mjs +0 -15
  255. package/esm2022/directives/appearance/appearance.directive.mjs +0 -79
  256. package/esm2022/directives/appearance/appearance.options.mjs +0 -12
  257. package/esm2022/directives/appearance/index.mjs +0 -5
  258. package/esm2022/directives/appearance/taiga-ui-core-directives-appearance.mjs +0 -5
  259. package/esm2022/directives/appearance/with-appearance.mjs +0 -27
  260. package/esm2022/directives/date-format/date-format.directive.mjs +0 -31
  261. package/esm2022/directives/date-format/index.mjs +0 -2
  262. package/esm2022/directives/date-format/taiga-ui-core-directives-date-format.mjs +0 -5
  263. package/esm2022/directives/dropdown/dropdown-context.directive.mjs +0 -70
  264. package/esm2022/directives/dropdown/dropdown-hover.directive.mjs +0 -70
  265. package/esm2022/directives/dropdown/dropdown-hover.options.mjs +0 -17
  266. package/esm2022/directives/dropdown/dropdown-limit-width.mjs +0 -37
  267. package/esm2022/directives/dropdown/dropdown-manual.directive.mjs +0 -27
  268. package/esm2022/directives/dropdown/dropdown-open-legacy.directive.mjs +0 -33
  269. package/esm2022/directives/dropdown/dropdown-open.directive.mjs +0 -169
  270. package/esm2022/directives/dropdown/dropdown-options.directive.mjs +0 -73
  271. package/esm2022/directives/dropdown/dropdown-portal.directive.mjs +0 -34
  272. package/esm2022/directives/dropdown/dropdown-position-sided.directive.mjs +0 -69
  273. package/esm2022/directives/dropdown/dropdown-position.directive.mjs +0 -88
  274. package/esm2022/directives/dropdown/dropdown-selection.directive.mjs +0 -159
  275. package/esm2022/directives/dropdown/dropdown.bindings.mjs +0 -19
  276. package/esm2022/directives/dropdown/dropdown.component.mjs +0 -92
  277. package/esm2022/directives/dropdown/dropdown.directive.mjs +0 -110
  278. package/esm2022/directives/dropdown/dropdown.driver.mjs +0 -32
  279. package/esm2022/directives/dropdown/dropdown.mjs +0 -29
  280. package/esm2022/directives/dropdown/dropdown.providers.mjs +0 -10
  281. package/esm2022/directives/dropdown/dropdown.service.mjs +0 -15
  282. package/esm2022/directives/dropdown/dropdowns.component.mjs +0 -24
  283. package/esm2022/directives/dropdown/index.mjs +0 -22
  284. package/esm2022/directives/dropdown/taiga-ui-core-directives-dropdown.mjs +0 -5
  285. package/esm2022/directives/dropdown/with-dropdown-open.directive.mjs +0 -23
  286. package/esm2022/directives/group/group.directive.mjs +0 -53
  287. package/esm2022/directives/group/group.options.mjs +0 -15
  288. package/esm2022/directives/group/index.mjs +0 -3
  289. package/esm2022/directives/group/taiga-ui-core-directives-group.mjs +0 -5
  290. package/esm2022/directives/hint/hint-describe.directive.mjs +0 -50
  291. package/esm2022/directives/hint/hint-driver.directive.mjs +0 -19
  292. package/esm2022/directives/hint/hint-host.directive.mjs +0 -27
  293. package/esm2022/directives/hint/hint-hover.directive.mjs +0 -59
  294. package/esm2022/directives/hint/hint-manual.directive.mjs +0 -33
  295. package/esm2022/directives/hint/hint-options.directive.mjs +0 -86
  296. package/esm2022/directives/hint/hint-overflow.directive.mjs +0 -38
  297. package/esm2022/directives/hint/hint-pointer.directive.mjs +0 -33
  298. package/esm2022/directives/hint/hint-position.directive.mjs +0 -112
  299. package/esm2022/directives/hint/hint-unstyled.component.mjs +0 -39
  300. package/esm2022/directives/hint/hint.component.mjs +0 -127
  301. package/esm2022/directives/hint/hint.directive.mjs +0 -99
  302. package/esm2022/directives/hint/hint.mjs +0 -27
  303. package/esm2022/directives/hint/hint.providers.mjs +0 -9
  304. package/esm2022/directives/hint/hint.service.mjs +0 -29
  305. package/esm2022/directives/hint/hints.component.mjs +0 -34
  306. package/esm2022/directives/hint/index.mjs +0 -17
  307. package/esm2022/directives/hint/taiga-ui-core-directives-hint.mjs +0 -5
  308. package/esm2022/directives/icons/icons.directive.mjs +0 -56
  309. package/esm2022/directives/icons/index.mjs +0 -3
  310. package/esm2022/directives/icons/taiga-ui-core-directives-icons.mjs +0 -5
  311. package/esm2022/directives/icons/with-icons.mjs +0 -22
  312. package/esm2022/directives/index.mjs +0 -12
  313. package/esm2022/directives/items-handlers/index.mjs +0 -4
  314. package/esm2022/directives/items-handlers/items-handlers.directive.mjs +0 -63
  315. package/esm2022/directives/items-handlers/items-handlers.tokens.mjs +0 -27
  316. package/esm2022/directives/items-handlers/items-handlers.validator.mjs +0 -32
  317. package/esm2022/directives/items-handlers/taiga-ui-core-directives-items-handlers.mjs +0 -5
  318. package/esm2022/directives/number-format/index.mjs +0 -2
  319. package/esm2022/directives/number-format/number-format.directive.mjs +0 -31
  320. package/esm2022/directives/number-format/taiga-ui-core-directives-number-format.mjs +0 -5
  321. package/esm2022/directives/popup/index.mjs +0 -4
  322. package/esm2022/directives/popup/popup.directive.mjs +0 -31
  323. package/esm2022/directives/popup/popup.service.mjs +0 -15
  324. package/esm2022/directives/popup/popups.component.mjs +0 -20
  325. package/esm2022/directives/popup/taiga-ui-core-directives-popup.mjs +0 -5
  326. package/esm2022/directives/surface/index.mjs +0 -2
  327. package/esm2022/directives/surface/surface.directive.mjs +0 -44
  328. package/esm2022/directives/surface/taiga-ui-core-directives-surface.mjs +0 -5
  329. package/esm2022/directives/taiga-ui-core-directives.mjs +0 -5
  330. package/esm2022/directives/title/index.mjs +0 -2
  331. package/esm2022/directives/title/taiga-ui-core-directives-title.mjs +0 -5
  332. package/esm2022/directives/title/title.directive.mjs +0 -37
  333. package/esm2022/index.mjs +0 -9
  334. package/esm2022/pipes/auto-color/auto-color.pipe.mjs +0 -19
  335. package/esm2022/pipes/auto-color/index.mjs +0 -2
  336. package/esm2022/pipes/auto-color/taiga-ui-core-pipes-auto-color.mjs +0 -5
  337. package/esm2022/pipes/calendar-sheet/calendar-sheet.pipe.mjs +0 -54
  338. package/esm2022/pipes/calendar-sheet/index.mjs +0 -2
  339. package/esm2022/pipes/calendar-sheet/taiga-ui-core-pipes-calendar-sheet.mjs +0 -5
  340. package/esm2022/pipes/calendar-sheet/utils.mjs +0 -36
  341. package/esm2022/pipes/fallback-src/fallback-src.pipe.mjs +0 -23
  342. package/esm2022/pipes/fallback-src/index.mjs +0 -2
  343. package/esm2022/pipes/fallback-src/taiga-ui-core-pipes-fallback-src.mjs +0 -5
  344. package/esm2022/pipes/flag/flag.pipe.mjs +0 -26
  345. package/esm2022/pipes/flag/index.mjs +0 -2
  346. package/esm2022/pipes/flag/taiga-ui-core-pipes-flag.mjs +0 -5
  347. package/esm2022/pipes/format-date/format-date.pipe.mjs +0 -22
  348. package/esm2022/pipes/format-date/index.mjs +0 -2
  349. package/esm2022/pipes/format-date/taiga-ui-core-pipes-format-date.mjs +0 -5
  350. package/esm2022/pipes/format-number/format-number.pipe.mjs +0 -36
  351. package/esm2022/pipes/format-number/index.mjs +0 -2
  352. package/esm2022/pipes/format-number/taiga-ui-core-pipes-format-number.mjs +0 -5
  353. package/esm2022/pipes/index.mjs +0 -10
  354. package/esm2022/pipes/initials/index.mjs +0 -2
  355. package/esm2022/pipes/initials/initials.pipe.mjs +0 -23
  356. package/esm2022/pipes/initials/taiga-ui-core-pipes-initials.mjs +0 -5
  357. package/esm2022/pipes/month/index.mjs +0 -2
  358. package/esm2022/pipes/month/month.pipe.mjs +0 -23
  359. package/esm2022/pipes/month/taiga-ui-core-pipes-month.mjs +0 -5
  360. package/esm2022/pipes/order-week-days/index.mjs +0 -2
  361. package/esm2022/pipes/order-week-days/order-week-days.pipe.mjs +0 -30
  362. package/esm2022/pipes/order-week-days/taiga-ui-core-pipes-order-week-days.mjs +0 -5
  363. package/esm2022/pipes/taiga-ui-core-pipes.mjs +0 -5
  364. package/esm2022/services/breakpoint.service.mjs +0 -31
  365. package/esm2022/services/dark-theme.service.mjs +0 -24
  366. package/esm2022/services/format-date.service.mjs +0 -24
  367. package/esm2022/services/index.mjs +0 -6
  368. package/esm2022/services/position.service.mjs +0 -26
  369. package/esm2022/services/taiga-ui-core-services.mjs +0 -5
  370. package/esm2022/services/visual-viewport.service.mjs +0 -29
  371. package/esm2022/taiga-ui-core.mjs +0 -5
  372. package/esm2022/tokens/animations-speed.mjs +0 -9
  373. package/esm2022/tokens/assets-path.mjs +0 -11
  374. package/esm2022/tokens/auxiliary.mjs +0 -9
  375. package/esm2022/tokens/common-icons.mjs +0 -18
  376. package/esm2022/tokens/dark-mode.mjs +0 -41
  377. package/esm2022/tokens/date-format.mjs +0 -20
  378. package/esm2022/tokens/day-type-handler.mjs +0 -8
  379. package/esm2022/tokens/first-day-of-week.mjs +0 -9
  380. package/esm2022/tokens/i18n.mjs +0 -45
  381. package/esm2022/tokens/icon-resolver.mjs +0 -22
  382. package/esm2022/tokens/icon.mjs +0 -8
  383. package/esm2022/tokens/icons.mjs +0 -21
  384. package/esm2022/tokens/index.mjs +0 -21
  385. package/esm2022/tokens/media.mjs +0 -12
  386. package/esm2022/tokens/number-format.mjs +0 -24
  387. package/esm2022/tokens/reduced-motion.mjs +0 -7
  388. package/esm2022/tokens/scroll-ref.mjs +0 -6
  389. package/esm2022/tokens/selection-stream.mjs +0 -14
  390. package/esm2022/tokens/spin-icons.mjs +0 -8
  391. package/esm2022/tokens/taiga-ui-core-tokens.mjs +0 -5
  392. package/esm2022/tokens/theme.mjs +0 -5
  393. package/esm2022/tokens/viewport.mjs +0 -35
  394. package/esm2022/types/direction.mjs +0 -2
  395. package/esm2022/types/index.mjs +0 -2
  396. package/esm2022/types/interactive-state.mjs +0 -2
  397. package/esm2022/types/orientation.mjs +0 -2
  398. package/esm2022/types/point.mjs +0 -2
  399. package/esm2022/types/portal-item.mjs +0 -2
  400. package/esm2022/types/range-state.mjs +0 -2
  401. package/esm2022/types/size.mjs +0 -13
  402. package/esm2022/types/taiga-ui-core-types.mjs +0 -5
  403. package/esm2022/types/value-content-context.mjs +0 -2
  404. package/esm2022/utils/dom/check-fixed-position.mjs +0 -9
  405. package/esm2022/utils/dom/get-viewport.mjs +0 -24
  406. package/esm2022/utils/dom/get-word-range.mjs +0 -51
  407. package/esm2022/utils/dom/index.mjs +0 -4
  408. package/esm2022/utils/dom/taiga-ui-core-utils-dom.mjs +0 -5
  409. package/esm2022/utils/format/format-number.mjs +0 -47
  410. package/esm2022/utils/format/get-fractional-part-padded.mjs +0 -16
  411. package/esm2022/utils/format/index.mjs +0 -5
  412. package/esm2022/utils/format/number-to-string-without-exp.mjs +0 -18
  413. package/esm2022/utils/format/string-hash-to-hsl.mjs +0 -21
  414. package/esm2022/utils/format/taiga-ui-core-utils-format.mjs +0 -5
  415. package/esm2022/utils/index.mjs +0 -4
  416. package/esm2022/utils/miscellaneous/font-scaling.mjs +0 -11
  417. package/esm2022/utils/miscellaneous/index.mjs +0 -7
  418. package/esm2022/utils/miscellaneous/is-editing-key.mjs +0 -18
  419. package/esm2022/utils/miscellaneous/is-obscured.mjs +0 -8
  420. package/esm2022/utils/miscellaneous/override-options.mjs +0 -11
  421. package/esm2022/utils/miscellaneous/size-bigger.mjs +0 -19
  422. package/esm2022/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.mjs +0 -5
  423. package/esm2022/utils/miscellaneous/to-animation-options.mjs +0 -16
  424. package/esm2022/utils/taiga-ui-core-utils.mjs +0 -5
  425. package/fesm2022/taiga-ui-core-components-fullscreen.mjs +0 -73
  426. package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +0 -1
  427. package/fesm2022/taiga-ui-core-directives-surface.mjs +0 -50
  428. package/fesm2022/taiga-ui-core-directives-surface.mjs.map +0 -1
  429. package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs +0 -29
  430. package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs.map +0 -1
  431. package/pipes/fallback-src/fallback-src.pipe.d.ts +0 -9
  432. package/pipes/fallback-src/index.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-services.mjs","sources":["../../../projects/core/services/breakpoint.service.ts","../../../projects/core/services/dark-theme.service.ts","../../../projects/core/services/format-date.service.ts","../../../projects/core/services/position.service.ts","../../../projects/core/services/visual-viewport.service.ts","../../../projects/core/services/taiga-ui-core-services.ts"],"sourcesContent":["import {inject, Injectable} from '@angular/core';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {TUI_WINDOW_SIZE} from '@taiga-ui/cdk/tokens';\nimport {TUI_MEDIA, type TuiMedia} from '@taiga-ui/core/tokens';\nimport {distinctUntilChanged, map, Observable, shareReplay} from 'rxjs';\n\nexport type TuiBreakpointMediaKey = keyof Omit<TuiMedia, 'tablet'>;\n\n/**\n * Service to provide the current breakpoint based on Taiga UI's media queries\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiBreakpointService extends Observable<TuiBreakpointMediaKey | null> {\n private readonly media = inject(TUI_MEDIA);\n private readonly sorted: number[] = Object.values(this.media).sort((a, b) => a - b);\n private readonly invert: Record<number, TuiBreakpointMediaKey> = Object.keys(\n this.media,\n ).reduce(\n (ret, key) => ({\n ...ret,\n [this.media[key as TuiBreakpointMediaKey]]: key,\n }),\n {},\n );\n\n private readonly stream$ = inject(TUI_WINDOW_SIZE).pipe(\n map(({width}) => this.sorted.find((size) => size > width)),\n map(\n (key) => this.invert[key || this.sorted[this.sorted.length - 1] || 0] ?? null,\n ),\n distinctUntilChanged(),\n tuiZoneOptimized(),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {fromEvent, map, Observable, shareReplay, startWith} from 'rxjs';\n\n/**\n * @deprecated use {@link TUI_DARK_MODE} instead\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDarkThemeService extends Observable<boolean> {\n constructor() {\n const media = inject(WA_WINDOW).matchMedia('(prefers-color-scheme: dark)');\n const media$ = fromEvent(media, 'change').pipe(\n startWith(null),\n map(() => media.matches),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n\n super((subscriber) => media$.subscribe(subscriber));\n }\n}\n","import {inject, Injectable, LOCALE_ID} from '@angular/core';\nimport {type Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiFormatDateService {\n protected readonly locale = inject(LOCALE_ID);\n\n public format(timestamp: number): Observable<string> {\n return of(\n new Date(timestamp).toLocaleTimeString(this.locale, {\n hour: 'numeric',\n minute: '2-digit',\n }),\n );\n }\n}\n","import {inject, Injectable, NgZone} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {finalize, map, Observable, startWith} from 'rxjs';\n\n@Injectable()\nexport class TuiPositionService extends Observable<TuiPoint> {\n private readonly el = tuiInjectElement();\n private readonly accessor = inject(TuiPositionAccessor);\n\n constructor() {\n const animationFrame$ = inject(WA_ANIMATION_FRAME);\n const zone = inject(NgZone);\n\n super((subscriber) =>\n animationFrame$\n .pipe(\n startWith(null),\n map(() =>\n this.accessor.getPosition(\n this.el.getBoundingClientRect(),\n this.el,\n ),\n ),\n tuiZonefree(zone),\n finalize(() => this.accessor.getPosition(EMPTY_CLIENT_RECT)),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {TUI_IS_WEBKIT} from '@taiga-ui/cdk/tokens';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiVisualViewportService {\n private readonly isWebkit = inject(TUI_IS_WEBKIT);\n private readonly win = inject(WA_WINDOW);\n\n // https://bugs.webkit.org/show_bug.cgi?id=207089\n public correct(point: TuiPoint): TuiPoint {\n return this.isWebkit\n ? [\n point[0] + (this.win.visualViewport?.offsetTop ?? 0),\n point[1] + (this.win.visualViewport?.offsetLeft ?? 0),\n ]\n : point;\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-core-services.mjs","sources":["../../../projects/core/services/breakpoint.service.ts","../../../projects/core/services/dark-theme.service.ts","../../../projects/core/services/format-date.service.ts","../../../projects/core/services/position.service.ts","../../../projects/core/services/visual-viewport.service.ts","../../../projects/core/services/taiga-ui-core-services.ts"],"sourcesContent":["import {inject, Injectable} from '@angular/core';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {TUI_WINDOW_SIZE} from '@taiga-ui/cdk/tokens';\nimport {TUI_MEDIA, type TuiMedia} from '@taiga-ui/core/tokens';\nimport {distinctUntilChanged, map, Observable, shareReplay} from 'rxjs';\n\nexport type TuiBreakpointMediaKey = keyof Omit<TuiMedia, 'tablet'>;\n\n/**\n * Service to provide the current breakpoint based on Taiga UI's media queries\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiBreakpointService extends Observable<TuiBreakpointMediaKey | null> {\n private readonly media = inject(TUI_MEDIA);\n private readonly sorted: number[] = Object.values(this.media).sort((a, b) => a - b);\n private readonly invert: Record<number, TuiBreakpointMediaKey> = Object.keys(\n this.media,\n ).reduce(\n (ret, key) => ({\n ...ret,\n [this.media[key as TuiBreakpointMediaKey]]: key,\n }),\n {},\n );\n\n private readonly stream$ = inject(TUI_WINDOW_SIZE).pipe(\n map(({width}) => this.sorted.find((size) => size > width)),\n map(\n (key) => this.invert[key || this.sorted[this.sorted.length - 1] || 0] ?? null,\n ),\n distinctUntilChanged(),\n tuiZoneOptimized(),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n\n constructor() {\n super((subscriber) => this.stream$.subscribe(subscriber));\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {fromEvent, map, Observable, shareReplay, startWith} from 'rxjs';\n\n/**\n * @deprecated use {@link TUI_DARK_MODE} instead\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiDarkThemeService extends Observable<boolean> {\n constructor() {\n const media = inject(WA_WINDOW).matchMedia('(prefers-color-scheme: dark)');\n const media$ = fromEvent(media, 'change').pipe(\n startWith(null),\n map(() => media.matches),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n\n super((subscriber) => media$.subscribe(subscriber));\n }\n}\n","import {inject, Injectable, LOCALE_ID} from '@angular/core';\nimport {type Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiFormatDateService {\n protected readonly locale = inject(LOCALE_ID);\n\n public format(timestamp: number): Observable<string> {\n return of(\n new Date(timestamp).toLocaleTimeString(this.locale, {\n hour: 'numeric',\n minute: '2-digit',\n }),\n );\n }\n}\n","import {inject, Injectable, NgZone} from '@angular/core';\nimport {WA_ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {TuiPositionAccessor} from '@taiga-ui/core/classes';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {finalize, map, Observable, startWith} from 'rxjs';\n\n@Injectable()\nexport class TuiPositionService extends Observable<TuiPoint> {\n private readonly el = tuiInjectElement();\n private readonly accessor = inject(TuiPositionAccessor);\n\n constructor() {\n const animationFrame$ = inject(WA_ANIMATION_FRAME);\n const zone = inject(NgZone);\n\n super((subscriber) =>\n animationFrame$\n .pipe(\n startWith(null),\n map(() =>\n this.accessor.getPosition(\n this.el.getBoundingClientRect(),\n this.el,\n ),\n ),\n tuiZonefree(zone),\n finalize(() => this.accessor.getPosition(EMPTY_CLIENT_RECT)),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {TUI_IS_WEBKIT} from '@taiga-ui/cdk/tokens';\nimport {type TuiPoint} from '@taiga-ui/core/types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiVisualViewportService {\n private readonly isWebkit = inject(TUI_IS_WEBKIT);\n private readonly win = inject(WA_WINDOW);\n\n // https://bugs.webkit.org/show_bug.cgi?id=207089\n public correct(point: TuiPoint): TuiPoint {\n return this.isWebkit\n ? [\n point[0] + (this.win.visualViewport?.offsetTop ?? 0),\n point[1] + (this.win.visualViewport?.offsetLeft ?? 0),\n ]\n : point;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { InjectionToken, inject, signal, effect, Optional, SkipSelf, ElementRef } from '@angular/core';
1
+ import { InjectionToken, inject, signal, untracked, effect, Optional, SkipSelf, ElementRef } from '@angular/core';
2
2
  import { DOCUMENT } from '@angular/common';
3
3
  import { tuiProvide, tuiProvideOptions } from '@taiga-ui/cdk/utils/miscellaneous';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -72,14 +72,16 @@ const TUI_DARK_MODE = new InjectionToken(ngDevMode ? 'TUI_DARK_MODE' : '', {
72
72
  automatic = true;
73
73
  result.set(media.matches);
74
74
  });
75
- effect(() => {
76
- const value = String(result());
77
- if (automatic) {
78
- automatic = false;
79
- }
80
- else {
81
- storage?.setItem(key, value);
82
- }
75
+ untracked(() => {
76
+ effect(() => {
77
+ const value = String(result());
78
+ if (automatic) {
79
+ automatic = false;
80
+ }
81
+ else {
82
+ storage?.setItem(key, value);
83
+ }
84
+ });
83
85
  });
84
86
  return Object.assign(result, {
85
87
  reset: () => {
@@ -187,7 +189,7 @@ function tuiIconsProvider(icons) {
187
189
  ...(inject(TUI_ICON_REGISTRY, { skipSelf: true, optional: true }) || {}),
188
190
  ...Object.fromEntries(Object.entries(icons).map(([key, value]) => [
189
191
  key,
190
- `data:image/svg+xml;charset=UTF-8,${encodeURIComponent(value)}`,
192
+ `"data:image/svg+xml;charset=UTF-8,${encodeURIComponent(value)}"`,
191
193
  ])),
192
194
  }),
193
195
  };
@@ -196,17 +198,24 @@ function tuiIconsProvider(icons) {
196
198
  const TUI_ICON_RESOLVER = new InjectionToken(ngDevMode ? 'TUI_ICON_RESOLVER' : '', {
197
199
  factory: () => {
198
200
  const path = inject(TUI_ASSETS_PATH);
199
- return (icon) => `${path}/${icon.replace('@tui.', '').split('.').join('/')}.svg`;
201
+ // regex for @{any text}. used as a default fallback, returns path to svg from icon pack
202
+ return (icon) => `${path}/${icon.replace(/@[a-zA-Z]+\./, '').replaceAll('.', '/')}.svg`;
200
203
  },
201
204
  });
202
- /**
203
- * @deprecated use {@link TUI_ICON_RESOLVER}
204
- */
205
- const TUI_ICON_START_RESOLVER = TUI_ICON_RESOLVER;
205
+ function tuiGetIconMode(icon) {
206
+ return icon?.match(/@([^.]*)\./)?.[1] || icon || undefined;
207
+ }
206
208
  function tuiInjectIconResolver() {
207
209
  const icons = inject(TUI_ICON_REGISTRY);
208
210
  const resolver = inject(TUI_ICON_RESOLVER);
209
- return (icon) => !icon || icon.includes('/') ? icon : (icons[icon] ?? resolver(icon));
211
+ return (icon) => {
212
+ if (!icon || icon.includes('/')) {
213
+ return icon;
214
+ }
215
+ return icon.startsWith('@font.')
216
+ ? icon.replace('@font.', '')
217
+ : (icons[icon] ?? resolver(icon));
218
+ };
210
219
  }
211
220
  function tuiIconResolverProvider(useValue) {
212
221
  return { provide: TUI_ICON_RESOLVER, useValue };
@@ -269,6 +278,11 @@ const TUI_THEME = new InjectionToken(ngDevMode ? 'TUI_THEME' : '', {
269
278
  factory: () => 'Taiga UI',
270
279
  });
271
280
 
281
+ const TUI_VALIDATION_ERRORS = new InjectionToken(ngDevMode ? 'TUI_VALIDATION_ERRORS' : '', {
282
+ factory: () => ({}),
283
+ });
284
+ const tuiValidationErrorsProvider = (useValue) => ({ provide: TUI_VALIDATION_ERRORS, useValue });
285
+
272
286
  /**
273
287
  * Viewport accessor
274
288
  */
@@ -305,5 +319,5 @@ function tuiAsViewport(accessor) {
305
319
  * Generated bundle index. Do not edit.
306
320
  */
307
321
 
308
- export { TUI_ANIMATIONS_SPEED, TUI_ASSETS_PATH, TUI_AUXILIARY, TUI_CLEAR_WORD, TUI_CLOSE_WORD, TUI_COMMON_ICONS, TUI_DARK_MODE, TUI_DARK_MODE_DEFAULT_KEY, TUI_DARK_MODE_KEY, TUI_DATE_FORMAT, TUI_DAY_TYPE_HANDLER, TUI_DEFAULT_DATE_FORMAT, TUI_DEFAULT_ERROR_MESSAGE, TUI_DEFAULT_NUMBER_FORMAT, TUI_FIRST_DAY_OF_WEEK, TUI_ICON_END, TUI_ICON_REGISTRY, TUI_ICON_RESOLVER, TUI_ICON_START, TUI_ICON_STARTS, TUI_ICON_START_RESOLVER, TUI_MEDIA, TUI_MONTHS, TUI_NOTHING_FOUND_MESSAGE, TUI_NUMBER_FORMAT, TUI_REDUCED_MOTION, TUI_SCROLL_REF, TUI_SELECTION_STREAM, TUI_SHORT_WEEK_DAYS, TUI_SPIN_ICONS, TUI_SPIN_TEXTS, TUI_THEME, TUI_VIEWPORT, tuiAsAuxiliary, tuiAsViewport, tuiAssetsPathProvider, tuiCommonIconsProvider, tuiDateFormatProvider, tuiIconResolverProvider, tuiIconsProvider, tuiInjectIconResolver, tuiNumberFormatProvider };
322
+ export { TUI_ANIMATIONS_SPEED, TUI_ASSETS_PATH, TUI_AUXILIARY, TUI_CLEAR_WORD, TUI_CLOSE_WORD, TUI_COMMON_ICONS, TUI_DARK_MODE, TUI_DARK_MODE_DEFAULT_KEY, TUI_DARK_MODE_KEY, TUI_DATE_FORMAT, TUI_DAY_TYPE_HANDLER, TUI_DEFAULT_DATE_FORMAT, TUI_DEFAULT_ERROR_MESSAGE, TUI_DEFAULT_NUMBER_FORMAT, TUI_FIRST_DAY_OF_WEEK, TUI_ICON_END, TUI_ICON_REGISTRY, TUI_ICON_RESOLVER, TUI_ICON_START, TUI_ICON_STARTS, TUI_MEDIA, TUI_MONTHS, TUI_NOTHING_FOUND_MESSAGE, TUI_NUMBER_FORMAT, TUI_REDUCED_MOTION, TUI_SCROLL_REF, TUI_SELECTION_STREAM, TUI_SHORT_WEEK_DAYS, TUI_SPIN_ICONS, TUI_SPIN_TEXTS, TUI_THEME, TUI_VALIDATION_ERRORS, TUI_VIEWPORT, tuiAsAuxiliary, tuiAsViewport, tuiAssetsPathProvider, tuiCommonIconsProvider, tuiDateFormatProvider, tuiGetIconMode, tuiIconResolverProvider, tuiIconsProvider, tuiInjectIconResolver, tuiNumberFormatProvider, tuiValidationErrorsProvider };
309
323
  //# sourceMappingURL=taiga-ui-core-tokens.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-tokens.mjs","sources":["../../../projects/core/tokens/reduced-motion.ts","../../../projects/core/tokens/animations-speed.ts","../../../projects/core/tokens/assets-path.ts","../../../projects/core/tokens/auxiliary.ts","../../../projects/core/tokens/common-icons.ts","../../../projects/core/tokens/dark-mode.ts","../../../projects/core/tokens/date-format.ts","../../../projects/core/tokens/day-type-handler.ts","../../../projects/core/tokens/first-day-of-week.ts","../../../projects/core/tokens/i18n.ts","../../../projects/core/tokens/icon.ts","../../../projects/core/tokens/icons.ts","../../../projects/core/tokens/icon-resolver.ts","../../../projects/core/tokens/media.ts","../../../projects/core/tokens/number-format.ts","../../../projects/core/tokens/scroll-ref.ts","../../../projects/core/tokens/selection-stream.ts","../../../projects/core/tokens/spin-icons.ts","../../../projects/core/tokens/theme.ts","../../../projects/core/tokens/viewport.ts","../../../projects/core/tokens/taiga-ui-core-tokens.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\n\nexport const TUI_REDUCED_MOTION = new InjectionToken(\n ngDevMode ? 'TUI_REDUCED_MOTION' : '',\n {\n factory: () =>\n inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')\n .matches ?? false,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_REDUCED_MOTION} from './reduced-motion';\n\n/**\n * Speed of all Taiga UI animations. 1 equals 300ms.\n */\nexport const TUI_ANIMATIONS_SPEED = new InjectionToken<number>(\n ngDevMode ? 'TUI_ANIMATIONS_SPEED' : '',\n {\n factory: () => (inject(TUI_REDUCED_MOTION) ? 0 : 1),\n },\n);\n","import {InjectionToken, type ValueProvider} from '@angular/core';\n\nexport const TUI_ASSETS_PATH = new InjectionToken(ngDevMode ? 'TUI_ASSETS_PATH' : '', {\n factory: () => 'assets/taiga-ui/icons',\n});\n\nexport function tuiAssetsPathProvider(useValue: string): ValueProvider {\n return {\n provide: TUI_ASSETS_PATH,\n useValue,\n };\n}\n","import {InjectionToken, type Provider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_AUXILIARY = new InjectionToken(ngDevMode ? 'TUI_AUXILIARY' : '', {\n factory: () => null,\n});\n\nexport function tuiAsAuxiliary(x: Type<unknown>): Provider {\n return tuiProvide(TUI_AUXILIARY, x);\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n// TODO: Rename `ellipsis` to `more` in the next major version\nconst COMMON_ICONS: TuiCommonIcons = {\n check: '@tui.check',\n close: '@tui.x',\n error: '@tui.circle-alert',\n more: '@tui.chevron-right',\n search: '@tui.search',\n ellipsis: '@tui.ellipsis',\n};\n\nexport interface TuiCommonIcons {\n readonly check: string;\n readonly close: string;\n readonly error: string;\n readonly more: string;\n readonly search: string;\n readonly ellipsis: string;\n}\n\nexport const TUI_COMMON_ICONS = new InjectionToken(ngDevMode ? 'TUI_COMMON_ICONS' : '', {\n factory: () => COMMON_ICONS,\n});\n\nexport function tuiCommonIconsProvider(icons: Partial<TuiCommonIcons>): Provider {\n return tuiProvideOptions(TUI_COMMON_ICONS, icons, COMMON_ICONS);\n}\n","import {effect, inject, InjectionToken, signal, type WritableSignal} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_LOCAL_STORAGE, WA_WINDOW} from '@ng-web-apis/common';\nimport {filter, fromEvent} from 'rxjs';\n\nexport const TUI_DARK_MODE_DEFAULT_KEY = 'tuiDark';\nexport const TUI_DARK_MODE_KEY = new InjectionToken(\n ngDevMode ? 'TUI_DARK_MODE_KEY' : '',\n {\n factory: () => TUI_DARK_MODE_DEFAULT_KEY,\n },\n);\nexport const TUI_DARK_MODE = new InjectionToken<\n WritableSignal<boolean> & {reset(): void}\n>(ngDevMode ? 'TUI_DARK_MODE' : '', {\n factory: () => {\n let automatic = true;\n\n const storage = inject(WA_LOCAL_STORAGE);\n const key = inject(TUI_DARK_MODE_KEY);\n const saved = storage?.getItem(key);\n const media = inject(WA_WINDOW).matchMedia('(prefers-color-scheme: dark)');\n const result = signal(Boolean((saved && JSON.parse(saved)) ?? media.matches));\n\n fromEvent(media, 'change')\n .pipe(\n filter(() => !storage?.getItem(key)),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n automatic = true;\n result.set(media.matches);\n });\n\n effect(() => {\n const value = String(result());\n\n if (automatic) {\n automatic = false;\n } else {\n storage?.setItem(key, value);\n }\n });\n\n return Object.assign(result, {\n reset: () => {\n storage?.removeItem(key);\n automatic = true;\n result.set(media.matches);\n },\n });\n },\n});\n","import {InjectionToken, Optional, type Provider, SkipSelf} from '@angular/core';\nimport {type TuiDateMode} from '@taiga-ui/cdk/date-time';\nimport {map, type Observable, of} from 'rxjs';\n\n/**\n * Formatting configuration for displayed dates\n */\nexport interface TuiDateFormatSettings {\n /**\n * Date format mode.\n */\n readonly mode: TuiDateMode;\n /**\n * Separator between date segments\n * @example 10.02 ('.' by default)\n */\n readonly separator: string;\n}\n\nexport const TUI_DEFAULT_DATE_FORMAT: TuiDateFormatSettings = {\n mode: 'DMY',\n separator: '.',\n};\n\n/**\n * Formatting configuration for displayed dates\n */\nexport const TUI_DATE_FORMAT = new InjectionToken<Observable<TuiDateFormatSettings>>(\n ngDevMode ? 'TUI_DATE_FORMAT' : '',\n {\n factory: () => of(TUI_DEFAULT_DATE_FORMAT),\n },\n);\n\nexport function tuiDateFormatProvider(options: Partial<TuiDateFormatSettings>): Provider {\n return {\n provide: TUI_DATE_FORMAT,\n deps: [[new Optional(), new SkipSelf(), TUI_DATE_FORMAT]],\n useFactory: (\n parent: Observable<TuiDateFormatSettings> | null,\n ): Observable<TuiDateFormatSettings> =>\n (parent || of(TUI_DEFAULT_DATE_FORMAT)).pipe(\n map((format) => ({...format, ...options})),\n ),\n };\n}\n","import {InjectionToken} from '@angular/core';\nimport {type TuiDay} from '@taiga-ui/cdk/date-time';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Token for adding data-type attribute to calendar cell\n */\nexport const TUI_DAY_TYPE_HANDLER = new InjectionToken<TuiHandler<TuiDay, string>>(\n ngDevMode ? 'TUI_DAY_TYPE_HANDLER' : '',\n {\n factory: () => (day) => (day.isWeekend ? 'weekend' : 'weekday'),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDayOfWeek} from '@taiga-ui/cdk/date-time';\n\n/**\n * The first day of the week index\n */\nexport const TUI_FIRST_DAY_OF_WEEK = new InjectionToken<0 | 1 | 2 | 3 | 4 | 5 | 6>(\n ngDevMode ? 'TUI_FIRST_DAY_OF_WEEK' : '',\n {\n factory: () => TuiDayOfWeek.Monday,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {tuiExtractI18n} from '@taiga-ui/i18n/utils';\n\n/**\n * Localized months names\n */\nexport const TUI_MONTHS = new InjectionToken(ngDevMode ? 'TUI_MONTHS' : '', {\n factory: tuiExtractI18n('months'),\n});\n\n/**\n * i18n 'close' word\n */\nexport const TUI_CLOSE_WORD = new InjectionToken(ngDevMode ? 'TUI_CLOSE_WORD' : '', {\n factory: tuiExtractI18n('close'),\n});\n\n/**\n * i18n 'clear' word\n */\nexport const TUI_CLEAR_WORD = new InjectionToken(ngDevMode ? 'TUI_CLEAR_WORD' : '', {\n factory: tuiExtractI18n('clear'),\n});\n\n/**\n * i18n 'Nothing found' message\n */\nexport const TUI_NOTHING_FOUND_MESSAGE = new InjectionToken(\n ngDevMode ? 'TUI_NOTHING_FOUND_MESSAGE' : '',\n {\n factory: tuiExtractI18n('nothingFoundMessage'),\n },\n);\n\n/**\n * i18n of error message\n */\nexport const TUI_DEFAULT_ERROR_MESSAGE = new InjectionToken(\n ngDevMode ? 'TUI_DEFAULT_ERROR_MESSAGE' : '',\n {\n factory: tuiExtractI18n('defaultErrorMessage'),\n },\n);\n\n/**\n * spin i18n texts\n */\nexport const TUI_SPIN_TEXTS = new InjectionToken(ngDevMode ? 'TUI_SPIN_TEXTS' : '', {\n factory: tuiExtractI18n('spinTexts'),\n});\n\n/**\n * calendars i18n texts\n */\nexport const TUI_SHORT_WEEK_DAYS = new InjectionToken(\n ngDevMode ? 'TUI_SHORT_WEEK_DAYS' : '',\n {\n factory: tuiExtractI18n('shortWeekDays'),\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_ICON_START = new InjectionToken(ngDevMode ? 'TUI_ICON_START' : '', {\n factory: () => '',\n});\nexport const TUI_ICON_END = new InjectionToken(ngDevMode ? 'TUI_ICON_END' : '', {\n factory: () => '',\n});\n","import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\n\nexport const TUI_ICON_REGISTRY = new InjectionToken<Record<string, string>>(\n ngDevMode ? 'TUI_ICON_REGISTRY' : '',\n {\n factory: () => ({}),\n },\n);\n\n/**\n * @deprecated: use {@link TUI_ICON_REGISTRY}\n */\nexport const TUI_ICON_STARTS = TUI_ICON_REGISTRY;\n\nexport function tuiIconsProvider(icons: Record<string, string>): FactoryProvider {\n return {\n provide: TUI_ICON_REGISTRY,\n useFactory: () => ({\n ...(inject(TUI_ICON_REGISTRY, {skipSelf: true, optional: true}) || {}),\n ...Object.fromEntries(\n Object.entries(icons).map(([key, value]) => [\n key,\n `data:image/svg+xml;charset=UTF-8,${encodeURIComponent(value)}`,\n ]),\n ),\n }),\n };\n}\n","import {inject, InjectionToken, type Provider} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\n\nimport {TUI_ASSETS_PATH} from './assets-path';\nimport {TUI_ICON_REGISTRY} from './icons';\n\nexport const TUI_ICON_RESOLVER = new InjectionToken<TuiStringHandler<string>>(\n ngDevMode ? 'TUI_ICON_RESOLVER' : '',\n {\n factory: () => {\n const path = inject(TUI_ASSETS_PATH);\n\n return (icon) =>\n `${path}/${icon.replace('@tui.', '').split('.').join('/')}.svg`;\n },\n },\n);\n\n/**\n * @deprecated use {@link TUI_ICON_RESOLVER}\n */\nexport const TUI_ICON_START_RESOLVER = TUI_ICON_RESOLVER;\n\nexport function tuiInjectIconResolver(): TuiStringHandler<string> {\n const icons = inject(TUI_ICON_REGISTRY);\n const resolver = inject(TUI_ICON_RESOLVER);\n\n return (icon) =>\n !icon || icon.includes('/') ? icon : (icons[icon] ?? resolver(icon));\n}\n\nexport function tuiIconResolverProvider(useValue: TuiStringHandler<string>): Provider {\n return {provide: TUI_ICON_RESOLVER, useValue};\n}\n","import {InjectionToken} from '@angular/core';\n\nexport interface TuiMedia {\n readonly desktopLarge: number;\n readonly desktopSmall: number;\n readonly mobile: number;\n readonly tablet?: number;\n}\n\n/**\n * Token for media constant\n */\nexport const TUI_MEDIA = new InjectionToken<TuiMedia>(ngDevMode ? 'TUI_MEDIA' : '', {\n factory: () => ({\n mobile: 768,\n desktopSmall: 1024,\n desktopLarge: 1280,\n }),\n});\n","import {InjectionToken, Optional, type Provider, SkipSelf} from '@angular/core';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {type TuiRounding} from '@taiga-ui/cdk/types';\nimport {map, type Observable, of} from 'rxjs';\n\nexport type TuiDecimalMode = 'always' | 'not-zero' | 'pad';\nexport type TuiDecimalSymbol = ',' | '.';\n\n/**\n * Formatting configuration for displayed numbers\n */\nexport interface TuiNumberFormatSettings {\n /**\n * Number of digits of decimal part.\n * @note Use `Infinity` to keep untouched.\n */\n readonly precision: number;\n /**\n * Separator between the integer and the decimal part.\n * @example 0,42 (',' by default)\n */\n readonly decimalSeparator: TuiDecimalSymbol;\n /**\n * Rounding method.\n */\n readonly rounding: TuiRounding;\n /**\n * Separator between thousands.\n * @example 360 000 (' ' by default)\n */\n readonly thousandSeparator: string;\n /**\n * Decimal part display mode. ('pad' by default)\n */\n readonly decimalMode: TuiDecimalMode;\n}\n\nexport const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings = {\n precision: NaN,\n decimalSeparator: '.',\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n rounding: 'truncate',\n decimalMode: 'pad',\n};\n\n/**\n * Formatting configuration for displayed numbers\n */\nexport const TUI_NUMBER_FORMAT = new InjectionToken<Observable<TuiNumberFormatSettings>>(\n ngDevMode ? 'TUI_NUMBER_FORMAT' : '',\n {\n factory: () => of(TUI_DEFAULT_NUMBER_FORMAT),\n },\n);\n\nexport function tuiNumberFormatProvider(\n options: Partial<TuiNumberFormatSettings>,\n): Provider {\n return {\n provide: TUI_NUMBER_FORMAT,\n deps: [[new Optional(), new SkipSelf(), TUI_NUMBER_FORMAT]],\n useFactory: (\n parent: Observable<TuiNumberFormatSettings> | null,\n ): Observable<TuiNumberFormatSettings> =>\n (parent || of(TUI_DEFAULT_NUMBER_FORMAT)).pipe(\n map((format) => ({...format, ...options})),\n ),\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, inject, InjectionToken} from '@angular/core';\n\nexport const TUI_SCROLL_REF = new InjectionToken(ngDevMode ? 'TUI_SCROLL_REF' : '', {\n factory: () => new ElementRef(inject(DOCUMENT).documentElement),\n});\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, type Observable, share, switchMap, takeUntil} from 'rxjs';\n\n/**\n * A stream of possible selection changes\n */\nexport const TUI_SELECTION_STREAM = new InjectionToken<Observable<unknown>>(\n ngDevMode ? 'TUI_SELECTION_STREAM' : '',\n {\n factory: () => {\n const doc = inject(DOCUMENT);\n\n return merge(\n tuiTypedFromEvent(doc, 'selectionchange'),\n tuiTypedFromEvent(doc, 'mouseup'),\n tuiTypedFromEvent(doc, 'mousedown').pipe(\n switchMap(() =>\n tuiTypedFromEvent(doc, 'mousemove').pipe(\n takeUntil(tuiTypedFromEvent(doc, 'mouseup')),\n ),\n ),\n ),\n tuiTypedFromEvent(doc, 'keydown'),\n tuiTypedFromEvent(doc, 'keyup'),\n ).pipe(share());\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport interface TuiSpinIcons {\n readonly decrement: string;\n readonly increment: string;\n}\n\nexport const TUI_SPIN_ICONS = new InjectionToken<TuiSpinIcons>(\n ngDevMode ? 'TUI_SPIN_ICONS' : '',\n {\n factory: () => ({\n decrement: '@tui.chevron-left',\n increment: '@tui.chevron-right',\n }),\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_THEME = new InjectionToken(ngDevMode ? 'TUI_THEME' : '', {\n factory: () => 'Taiga UI',\n});\n","import {inject, InjectionToken, type Provider, type Type} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiRectAccessor} from '@taiga-ui/core/classes';\n\n/**\n * Viewport accessor\n */\nexport const TUI_VIEWPORT = new InjectionToken<TuiRectAccessor>(\n ngDevMode ? 'TUI_VIEWPORT' : '',\n {\n factory: () => {\n const win = inject(WA_WINDOW);\n\n return {\n type: 'viewport',\n getClientRect() {\n const {height = 0, offsetTop = 0} = win.visualViewport || {};\n const rect = {\n top: 0,\n left: 0,\n right: win.innerWidth,\n bottom: win.innerHeight,\n width: win.innerWidth,\n height: height + offsetTop || win.innerHeight,\n x: 0,\n y: 0,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n },\n };\n },\n },\n);\n\nexport function tuiAsViewport(accessor: Type<TuiRectAccessor>): Provider {\n return tuiProvide(TUI_VIEWPORT, accessor);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-tokens.mjs","sources":["../../../projects/core/tokens/reduced-motion.ts","../../../projects/core/tokens/animations-speed.ts","../../../projects/core/tokens/assets-path.ts","../../../projects/core/tokens/auxiliary.ts","../../../projects/core/tokens/common-icons.ts","../../../projects/core/tokens/dark-mode.ts","../../../projects/core/tokens/date-format.ts","../../../projects/core/tokens/day-type-handler.ts","../../../projects/core/tokens/first-day-of-week.ts","../../../projects/core/tokens/i18n.ts","../../../projects/core/tokens/icon.ts","../../../projects/core/tokens/icons.ts","../../../projects/core/tokens/icon-resolver.ts","../../../projects/core/tokens/media.ts","../../../projects/core/tokens/number-format.ts","../../../projects/core/tokens/scroll-ref.ts","../../../projects/core/tokens/selection-stream.ts","../../../projects/core/tokens/spin-icons.ts","../../../projects/core/tokens/theme.ts","../../../projects/core/tokens/validation-errors.ts","../../../projects/core/tokens/viewport.ts","../../../projects/core/tokens/taiga-ui-core-tokens.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\n\nexport const TUI_REDUCED_MOTION = new InjectionToken(\n ngDevMode ? 'TUI_REDUCED_MOTION' : '',\n {\n factory: () =>\n inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)')\n .matches ?? false,\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_REDUCED_MOTION} from './reduced-motion';\n\n/**\n * Speed of all Taiga UI animations. 1 equals 300ms.\n */\nexport const TUI_ANIMATIONS_SPEED = new InjectionToken<number>(\n ngDevMode ? 'TUI_ANIMATIONS_SPEED' : '',\n {\n factory: () => (inject(TUI_REDUCED_MOTION) ? 0 : 1),\n },\n);\n","import {InjectionToken, type ValueProvider} from '@angular/core';\n\nexport const TUI_ASSETS_PATH = new InjectionToken(ngDevMode ? 'TUI_ASSETS_PATH' : '', {\n factory: () => 'assets/taiga-ui/icons',\n});\n\nexport function tuiAssetsPathProvider(useValue: string): ValueProvider {\n return {\n provide: TUI_ASSETS_PATH,\n useValue,\n };\n}\n","import {InjectionToken, type Provider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport const TUI_AUXILIARY = new InjectionToken(ngDevMode ? 'TUI_AUXILIARY' : '', {\n factory: () => null,\n});\n\nexport function tuiAsAuxiliary(x: Type<unknown>): Provider {\n return tuiProvide(TUI_AUXILIARY, x);\n}\n","import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n// TODO: Rename `ellipsis` to `more` in the next major version\nconst COMMON_ICONS: TuiCommonIcons = {\n check: '@tui.check',\n close: '@tui.x',\n error: '@tui.circle-alert',\n more: '@tui.chevron-right',\n search: '@tui.search',\n ellipsis: '@tui.ellipsis',\n};\n\nexport interface TuiCommonIcons {\n readonly check: string;\n readonly close: string;\n readonly error: string;\n readonly more: string;\n readonly search: string;\n readonly ellipsis: string;\n}\n\nexport const TUI_COMMON_ICONS = new InjectionToken(ngDevMode ? 'TUI_COMMON_ICONS' : '', {\n factory: () => COMMON_ICONS,\n});\n\nexport function tuiCommonIconsProvider(icons: Partial<TuiCommonIcons>): Provider {\n return tuiProvideOptions(TUI_COMMON_ICONS, icons, COMMON_ICONS);\n}\n","import {\n effect,\n inject,\n InjectionToken,\n signal,\n untracked,\n type WritableSignal,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {WA_LOCAL_STORAGE, WA_WINDOW} from '@ng-web-apis/common';\nimport {filter, fromEvent} from 'rxjs';\n\nexport const TUI_DARK_MODE_DEFAULT_KEY = 'tuiDark';\nexport const TUI_DARK_MODE_KEY = new InjectionToken(\n ngDevMode ? 'TUI_DARK_MODE_KEY' : '',\n {\n factory: () => TUI_DARK_MODE_DEFAULT_KEY,\n },\n);\nexport const TUI_DARK_MODE = new InjectionToken<\n WritableSignal<boolean> & {reset(): void}\n>(ngDevMode ? 'TUI_DARK_MODE' : '', {\n factory: () => {\n let automatic = true;\n\n const storage = inject(WA_LOCAL_STORAGE);\n const key = inject(TUI_DARK_MODE_KEY);\n const saved = storage?.getItem(key);\n const media = inject(WA_WINDOW).matchMedia('(prefers-color-scheme: dark)');\n const result = signal(Boolean((saved && JSON.parse(saved)) ?? media.matches));\n\n fromEvent(media, 'change')\n .pipe(\n filter(() => !storage?.getItem(key)),\n takeUntilDestroyed(),\n )\n .subscribe(() => {\n automatic = true;\n result.set(media.matches);\n });\n\n untracked(() => {\n effect(() => {\n const value = String(result());\n\n if (automatic) {\n automatic = false;\n } else {\n storage?.setItem(key, value);\n }\n });\n });\n\n return Object.assign(result, {\n reset: () => {\n storage?.removeItem(key);\n automatic = true;\n result.set(media.matches);\n },\n });\n },\n});\n","import {InjectionToken, Optional, type Provider, SkipSelf} from '@angular/core';\nimport {type TuiDateMode} from '@taiga-ui/cdk/date-time';\nimport {map, type Observable, of} from 'rxjs';\n\n/**\n * Formatting configuration for displayed dates\n */\nexport interface TuiDateFormatSettings {\n /**\n * Date format mode.\n */\n readonly mode: TuiDateMode;\n /**\n * Separator between date segments\n * @example 10.02 ('.' by default)\n */\n readonly separator: string;\n}\n\nexport const TUI_DEFAULT_DATE_FORMAT: TuiDateFormatSettings = {\n mode: 'DMY',\n separator: '.',\n};\n\n/**\n * Formatting configuration for displayed dates\n */\nexport const TUI_DATE_FORMAT = new InjectionToken<Observable<TuiDateFormatSettings>>(\n ngDevMode ? 'TUI_DATE_FORMAT' : '',\n {\n factory: () => of(TUI_DEFAULT_DATE_FORMAT),\n },\n);\n\nexport function tuiDateFormatProvider(options: Partial<TuiDateFormatSettings>): Provider {\n return {\n provide: TUI_DATE_FORMAT,\n deps: [[new Optional(), new SkipSelf(), TUI_DATE_FORMAT]],\n useFactory: (\n parent: Observable<TuiDateFormatSettings> | null,\n ): Observable<TuiDateFormatSettings> =>\n (parent || of(TUI_DEFAULT_DATE_FORMAT)).pipe(\n map((format) => ({...format, ...options})),\n ),\n };\n}\n","import {InjectionToken} from '@angular/core';\nimport {type TuiDay} from '@taiga-ui/cdk/date-time';\nimport {type TuiHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Token for adding data-type attribute to calendar cell\n */\nexport const TUI_DAY_TYPE_HANDLER = new InjectionToken<TuiHandler<TuiDay, string>>(\n ngDevMode ? 'TUI_DAY_TYPE_HANDLER' : '',\n {\n factory: () => (day) => (day.isWeekend ? 'weekend' : 'weekday'),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiDayOfWeek} from '@taiga-ui/cdk/date-time';\n\n/**\n * The first day of the week index\n */\nexport const TUI_FIRST_DAY_OF_WEEK = new InjectionToken<0 | 1 | 2 | 3 | 4 | 5 | 6>(\n ngDevMode ? 'TUI_FIRST_DAY_OF_WEEK' : '',\n {\n factory: () => TuiDayOfWeek.Monday,\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {tuiExtractI18n} from '@taiga-ui/i18n/utils';\n\n/**\n * Localized months names\n */\nexport const TUI_MONTHS = new InjectionToken(ngDevMode ? 'TUI_MONTHS' : '', {\n factory: tuiExtractI18n('months'),\n});\n\n/**\n * i18n 'close' word\n */\nexport const TUI_CLOSE_WORD = new InjectionToken(ngDevMode ? 'TUI_CLOSE_WORD' : '', {\n factory: tuiExtractI18n('close'),\n});\n\n/**\n * i18n 'clear' word\n */\nexport const TUI_CLEAR_WORD = new InjectionToken(ngDevMode ? 'TUI_CLEAR_WORD' : '', {\n factory: tuiExtractI18n('clear'),\n});\n\n/**\n * i18n 'Nothing found' message\n */\nexport const TUI_NOTHING_FOUND_MESSAGE = new InjectionToken(\n ngDevMode ? 'TUI_NOTHING_FOUND_MESSAGE' : '',\n {\n factory: tuiExtractI18n('nothingFoundMessage'),\n },\n);\n\n/**\n * i18n of error message\n */\nexport const TUI_DEFAULT_ERROR_MESSAGE = new InjectionToken(\n ngDevMode ? 'TUI_DEFAULT_ERROR_MESSAGE' : '',\n {\n factory: tuiExtractI18n('defaultErrorMessage'),\n },\n);\n\n/**\n * spin i18n texts\n */\nexport const TUI_SPIN_TEXTS = new InjectionToken(ngDevMode ? 'TUI_SPIN_TEXTS' : '', {\n factory: tuiExtractI18n('spinTexts'),\n});\n\n/**\n * calendars i18n texts\n */\nexport const TUI_SHORT_WEEK_DAYS = new InjectionToken(\n ngDevMode ? 'TUI_SHORT_WEEK_DAYS' : '',\n {\n factory: tuiExtractI18n('shortWeekDays'),\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_ICON_START = new InjectionToken(ngDevMode ? 'TUI_ICON_START' : '', {\n factory: () => '',\n});\nexport const TUI_ICON_END = new InjectionToken(ngDevMode ? 'TUI_ICON_END' : '', {\n factory: () => '',\n});\n","import {type FactoryProvider, inject, InjectionToken} from '@angular/core';\n\nexport const TUI_ICON_REGISTRY = new InjectionToken<Record<string, string>>(\n ngDevMode ? 'TUI_ICON_REGISTRY' : '',\n {\n factory: () => ({}),\n },\n);\n\n/**\n * @deprecated: use {@link TUI_ICON_REGISTRY}\n */\nexport const TUI_ICON_STARTS = TUI_ICON_REGISTRY;\n\nexport function tuiIconsProvider(icons: Record<string, string>): FactoryProvider {\n return {\n provide: TUI_ICON_REGISTRY,\n useFactory: () => ({\n ...(inject(TUI_ICON_REGISTRY, {skipSelf: true, optional: true}) || {}),\n ...Object.fromEntries(\n Object.entries(icons).map(([key, value]) => [\n key,\n `\"data:image/svg+xml;charset=UTF-8,${encodeURIComponent(value)}\"`,\n ]),\n ),\n }),\n };\n}\n","import {inject, InjectionToken, type Provider} from '@angular/core';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\n\nimport {TUI_ASSETS_PATH} from './assets-path';\nimport {TUI_ICON_REGISTRY} from './icons';\n\nexport const TUI_ICON_RESOLVER = new InjectionToken<TuiStringHandler<string>>(\n ngDevMode ? 'TUI_ICON_RESOLVER' : '',\n {\n factory: () => {\n const path = inject(TUI_ASSETS_PATH);\n\n // regex for @{any text}. used as a default fallback, returns path to svg from icon pack\n return (icon) =>\n `${path}/${icon.replace(/@[a-zA-Z]+\\./, '').replaceAll('.', '/')}.svg`;\n },\n },\n);\n\nexport function tuiGetIconMode(icon?: string | null): string | undefined {\n return icon?.match(/@([^.]*)\\./)?.[1] || icon || undefined;\n}\n\nexport function tuiInjectIconResolver(): TuiStringHandler<string> {\n const icons = inject(TUI_ICON_REGISTRY);\n const resolver = inject(TUI_ICON_RESOLVER);\n\n return (icon) => {\n if (!icon || icon.includes('/')) {\n return icon;\n }\n\n return icon.startsWith('@font.')\n ? icon.replace('@font.', '')\n : (icons[icon] ?? resolver(icon));\n };\n}\n\nexport function tuiIconResolverProvider(useValue: TuiStringHandler<string>): Provider {\n return {provide: TUI_ICON_RESOLVER, useValue};\n}\n","import {InjectionToken} from '@angular/core';\n\nexport interface TuiMedia {\n readonly desktopLarge: number;\n readonly desktopSmall: number;\n readonly mobile: number;\n readonly tablet?: number;\n}\n\n/**\n * Token for media constant\n */\nexport const TUI_MEDIA = new InjectionToken<TuiMedia>(ngDevMode ? 'TUI_MEDIA' : '', {\n factory: () => ({\n mobile: 768,\n desktopSmall: 1024,\n desktopLarge: 1280,\n }),\n});\n","import {InjectionToken, Optional, type Provider, SkipSelf} from '@angular/core';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {type TuiRounding} from '@taiga-ui/cdk/types';\nimport {map, type Observable, of} from 'rxjs';\n\nexport type TuiDecimalMode = 'always' | 'not-zero' | 'pad';\nexport type TuiDecimalSymbol = ',' | '.';\n\n/**\n * Formatting configuration for displayed numbers\n */\nexport interface TuiNumberFormatSettings {\n /**\n * Number of digits of decimal part.\n * @note Use `Infinity` to keep untouched.\n */\n readonly precision: number;\n /**\n * Separator between the integer and the decimal part.\n * @example 0,42 (',' by default)\n */\n readonly decimalSeparator: TuiDecimalSymbol;\n /**\n * Rounding method.\n */\n readonly rounding: TuiRounding;\n /**\n * Separator between thousands.\n * @example 360 000 (' ' by default)\n */\n readonly thousandSeparator: string;\n /**\n * Decimal part display mode. ('pad' by default)\n */\n readonly decimalMode: TuiDecimalMode;\n}\n\nexport const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings = {\n precision: NaN,\n decimalSeparator: '.',\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n rounding: 'truncate',\n decimalMode: 'pad',\n};\n\n/**\n * Formatting configuration for displayed numbers\n */\nexport const TUI_NUMBER_FORMAT = new InjectionToken<Observable<TuiNumberFormatSettings>>(\n ngDevMode ? 'TUI_NUMBER_FORMAT' : '',\n {\n factory: () => of(TUI_DEFAULT_NUMBER_FORMAT),\n },\n);\n\nexport function tuiNumberFormatProvider(\n options: Partial<TuiNumberFormatSettings>,\n): Provider {\n return {\n provide: TUI_NUMBER_FORMAT,\n deps: [[new Optional(), new SkipSelf(), TUI_NUMBER_FORMAT]],\n useFactory: (\n parent: Observable<TuiNumberFormatSettings> | null,\n ): Observable<TuiNumberFormatSettings> =>\n (parent || of(TUI_DEFAULT_NUMBER_FORMAT)).pipe(\n map((format) => ({...format, ...options})),\n ),\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, inject, InjectionToken} from '@angular/core';\n\nexport const TUI_SCROLL_REF = new InjectionToken(ngDevMode ? 'TUI_SCROLL_REF' : '', {\n factory: () => new ElementRef(inject(DOCUMENT).documentElement),\n});\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, type Observable, share, switchMap, takeUntil} from 'rxjs';\n\n/**\n * A stream of possible selection changes\n */\nexport const TUI_SELECTION_STREAM = new InjectionToken<Observable<unknown>>(\n ngDevMode ? 'TUI_SELECTION_STREAM' : '',\n {\n factory: () => {\n const doc = inject(DOCUMENT);\n\n return merge(\n tuiTypedFromEvent(doc, 'selectionchange'),\n tuiTypedFromEvent(doc, 'mouseup'),\n tuiTypedFromEvent(doc, 'mousedown').pipe(\n switchMap(() =>\n tuiTypedFromEvent(doc, 'mousemove').pipe(\n takeUntil(tuiTypedFromEvent(doc, 'mouseup')),\n ),\n ),\n ),\n tuiTypedFromEvent(doc, 'keydown'),\n tuiTypedFromEvent(doc, 'keyup'),\n ).pipe(share());\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport interface TuiSpinIcons {\n readonly decrement: string;\n readonly increment: string;\n}\n\nexport const TUI_SPIN_ICONS = new InjectionToken<TuiSpinIcons>(\n ngDevMode ? 'TUI_SPIN_ICONS' : '',\n {\n factory: () => ({\n decrement: '@tui.chevron-left',\n increment: '@tui.chevron-right',\n }),\n },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const TUI_THEME = new InjectionToken(ngDevMode ? 'TUI_THEME' : '', {\n factory: () => 'Taiga UI',\n});\n","import {InjectionToken, type Provider, type Signal} from '@angular/core';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport const TUI_VALIDATION_ERRORS = new InjectionToken<\n Record<string, PolymorpheusContent | Signal<PolymorpheusContent>>\n>(ngDevMode ? 'TUI_VALIDATION_ERRORS' : '', {\n factory: () => ({}),\n});\n\nexport const tuiValidationErrorsProvider = (\n useValue: Record<string, PolymorpheusContent | Signal<PolymorpheusContent>>,\n): Provider => ({provide: TUI_VALIDATION_ERRORS, useValue});\n","import {inject, InjectionToken, type Provider, type Type} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiRectAccessor} from '@taiga-ui/core/classes';\n\n/**\n * Viewport accessor\n */\nexport const TUI_VIEWPORT = new InjectionToken<TuiRectAccessor>(\n ngDevMode ? 'TUI_VIEWPORT' : '',\n {\n factory: () => {\n const win = inject(WA_WINDOW);\n\n return {\n type: 'viewport',\n getClientRect() {\n const {height = 0, offsetTop = 0} = win.visualViewport || {};\n const rect = {\n top: 0,\n left: 0,\n right: win.innerWidth,\n bottom: win.innerHeight,\n width: win.innerWidth,\n height: height + offsetTop || win.innerHeight,\n x: 0,\n y: 0,\n };\n\n return {\n ...rect,\n toJSON: () => JSON.stringify(rect),\n };\n },\n };\n },\n },\n);\n\nexport function tuiAsViewport(accessor: Type<TuiRectAccessor>): Provider {\n return tuiProvide(TUI_VIEWPORT, accessor);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-utils-dom.mjs","sources":["../../../projects/core/utils/dom/check-fixed-position.ts","../../../projects/core/utils/dom/get-viewport.ts","../../../projects/core/utils/dom/get-word-range.ts","../../../projects/core/utils/dom/taiga-ui-core-utils-dom.ts"],"sourcesContent":["export function tuiCheckFixedPosition(element?: HTMLElement | null): boolean {\n return (\n !!element && (isFixed(element) || tuiCheckFixedPosition(element.parentElement))\n );\n}\n\nfunction isFixed(element: HTMLElement): boolean {\n return (\n element.ownerDocument.defaultView\n ?.getComputedStyle(element)\n .getPropertyValue('position') === 'fixed'\n );\n}\n","/**\n * @description:\n * Cross-browser @media (height/width)\n *\n * 1. window.innerWidth/Width\n * 1.1. gets CSS viewport @media (height/width) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientHeight/Width\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (height) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportHeight({document, innerHeight}: Window): number {\n return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);\n}\n\nexport function tuiGetViewportWidth({document, innerWidth}: Window): number {\n return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);\n}\n","import {\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n svgNodeFilter,\n} from '@taiga-ui/cdk/constants';\n\n/**\n * Creates a cloned range with its boundaries set at word boundaries\n *\n * @param currentRange a range to clone\n * @return modified range\n */\nexport function tuiGetWordRange(currentRange: Range): Range {\n const range = currentRange.cloneRange();\n const {startContainer, startOffset, endContainer, endOffset} = range;\n const {ownerDocument} = startContainer;\n\n if (!ownerDocument) {\n return range;\n }\n\n const treeWalker = ownerDocument.createTreeWalker(\n ownerDocument.body,\n NodeFilter.SHOW_TEXT,\n svgNodeFilter,\n );\n\n treeWalker.currentNode = startContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === startContainer\n ? textContent.slice(0, Math.max(0, startOffset + 1))\n : textContent;\n const offset =\n Math.max(\n content.lastIndexOf(' '),\n content.lastIndexOf('\\n'),\n content.lastIndexOf(CHAR_NO_BREAK_SPACE),\n content.lastIndexOf(CHAR_ZERO_WIDTH_SPACE),\n ) + 1;\n\n range.setStart(container, 0);\n\n if (offset) {\n range.setStart(container, offset);\n break;\n }\n } while (treeWalker.previousNode());\n\n treeWalker.currentNode = endContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === endContainer ? textContent.slice(endOffset + 1) : textContent;\n const offset = [\n content.indexOf(' '),\n content.lastIndexOf('\\n'),\n content.indexOf(CHAR_NO_BREAK_SPACE),\n content.indexOf(CHAR_ZERO_WIDTH_SPACE),\n ].reduce(\n (result, item) =>\n result === -1 || item === -1\n ? Math.max(result, item)\n : Math.min(result, item),\n -1,\n );\n\n range.setEnd(container, textContent.length);\n\n if (offset !== -1) {\n range.setEnd(container, offset + textContent.length - content.length);\n break;\n }\n } while (treeWalker.nextNode());\n\n return range;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-utils-dom.mjs","sources":["../../../projects/core/utils/dom/check-fixed-position.ts","../../../projects/core/utils/dom/get-viewport.ts","../../../projects/core/utils/dom/get-word-range.ts","../../../projects/core/utils/dom/taiga-ui-core-utils-dom.ts"],"sourcesContent":["export function tuiCheckFixedPosition(element?: HTMLElement | null): boolean {\n return (\n !!element && (isFixed(element) || tuiCheckFixedPosition(element.parentElement))\n );\n}\n\nfunction isFixed(element: HTMLElement): boolean {\n return (\n element.ownerDocument.defaultView\n ?.getComputedStyle(element)\n .getPropertyValue('position') === 'fixed'\n );\n}\n","/**\n * @description:\n * Cross-browser @media (height/width)\n *\n * 1. window.innerWidth/Width\n * 1.1. gets CSS viewport @media (height/width) which include scrollbars\n * 1.2. initial-scale and zoom variations may cause mobile values to\n * wrongly scale down to what PPK calls the visual\n * viewport and be smaller than the @media values\n * 1.3. zoom may cause values to be 1px off due to native rounding\n *\n * 2. document.documentElement.clientHeight/Width\n * 2.1. equals CSS viewport width minus scrollbar width\n * 2.2. matches @media (height) when there is no scrollbar\n * 2.3. available cross-browser\n * 2.4. inaccurate if doctype is missing\n */\nexport function tuiGetViewportHeight({document, innerHeight}: Window): number {\n return Math.max(document.documentElement.clientHeight || 0, innerHeight || 0);\n}\n\nexport function tuiGetViewportWidth({document, innerWidth}: Window): number {\n return Math.max(document.documentElement.clientWidth || 0, innerWidth || 0);\n}\n","import {\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_SPACE,\n svgNodeFilter,\n} from '@taiga-ui/cdk/constants';\n\n/**\n * Creates a cloned range with its boundaries set at word boundaries\n *\n * @param currentRange a range to clone\n * @return modified range\n */\nexport function tuiGetWordRange(currentRange: Range): Range {\n const range = currentRange.cloneRange();\n const {startContainer, startOffset, endContainer, endOffset} = range;\n const {ownerDocument} = startContainer;\n\n if (!ownerDocument) {\n return range;\n }\n\n const treeWalker = ownerDocument.createTreeWalker(\n ownerDocument.body,\n NodeFilter.SHOW_TEXT,\n svgNodeFilter,\n );\n\n treeWalker.currentNode = startContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === startContainer\n ? textContent.slice(0, Math.max(0, startOffset + 1))\n : textContent;\n const offset =\n Math.max(\n content.lastIndexOf(' '),\n content.lastIndexOf('\\n'),\n content.lastIndexOf(CHAR_NO_BREAK_SPACE),\n content.lastIndexOf(CHAR_ZERO_WIDTH_SPACE),\n ) + 1;\n\n range.setStart(container, 0);\n\n if (offset) {\n range.setStart(container, offset);\n break;\n }\n } while (treeWalker.previousNode());\n\n treeWalker.currentNode = endContainer;\n\n do {\n const container = treeWalker.currentNode;\n const textContent = container.textContent || '';\n const content =\n container === endContainer ? textContent.slice(endOffset + 1) : textContent;\n const offset = [\n content.indexOf(' '),\n content.lastIndexOf('\\n'),\n content.indexOf(CHAR_NO_BREAK_SPACE),\n content.indexOf(CHAR_ZERO_WIDTH_SPACE),\n ].reduce(\n (result, item) =>\n result === -1 || item === -1\n ? Math.max(result, item)\n : Math.min(result, item),\n -1,\n );\n\n range.setEnd(container, textContent.length);\n\n if (offset !== -1) {\n range.setEnd(container, offset + textContent.length - content.length);\n break;\n }\n } while (treeWalker.nextNode());\n\n return range;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-utils-format.mjs","sources":["../../../projects/core/utils/format/number-to-string-without-exp.ts","../../../projects/core/utils/format/get-fractional-part-padded.ts","../../../projects/core/utils/format/format-number.ts","../../../projects/core/utils/format/string-hash-to-hsl.ts","../../../projects/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nexport function tuiNumberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split('e-');\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart = ''] = numberPart?.split('.') ?? [];\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n","import {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiNumberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\nexport function tuiGetFractionPartPadded(\n value: number,\n precision?: number | null,\n): string {\n const [, fractionPartPadded = ''] = tuiNumberToStringWithoutExp(value).split('.');\n\n return tuiIsNumber(precision)\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk/constants';\nimport {tuiRoundWith} from '@taiga-ui/cdk/utils/math';\nimport {\n TUI_DEFAULT_NUMBER_FORMAT,\n type TuiNumberFormatSettings,\n} from '@taiga-ui/core/tokens';\n\nimport {tuiGetFractionPartPadded} from './get-fractional-part-padded';\n\n/**\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param settings See {@link TuiNumberFormatSettings}\n * @return the formatted string\n */\nexport function tuiFormatNumber(\n value: number,\n settings: Partial<TuiNumberFormatSettings> = {},\n): string {\n const {precision, decimalSeparator, thousandSeparator, decimalMode, rounding} = {\n ...TUI_DEFAULT_NUMBER_FORMAT,\n decimalMode: 'always',\n precision: Infinity,\n ...settings,\n };\n\n const rounded = Number.isFinite(precision)\n ? tuiRoundWith({value, precision, method: rounding})\n : value;\n const integerPartString = String(Math.floor(Math.abs(rounded)));\n\n let fractionPartPadded = tuiGetFractionPartPadded(rounded, precision);\n const hasFraction = Number(fractionPartPadded) > 0;\n\n if (Number.isFinite(precision)) {\n if (decimalMode === 'always' || (hasFraction && decimalMode === 'pad')) {\n const zeroPaddingSize: number = Math.max(\n precision - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = '0'.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, '');\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : '';\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n","/**\n * Converts a string to an HSL color\n * @param value string to convert\n * @return HSL color string\n */\n// @bad TODO: convert stringHashToHsl to stringHashToRgb\nexport function tuiStringHashToHsl(value: string): string {\n if (value === '') {\n return '';\n }\n\n let hash = 0;\n\n for (let i = 0; i < value.length; i++) {\n hash = value.charCodeAt(i) + ((hash << 5) - hash);\n hash &= hash;\n }\n\n const hue = hash % 360;\n const saturation = 60 + (hash % 5);\n const lightness = 80 + (hash % 5);\n\n return `hsl(${hue},${saturation}%,${lightness}%)`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-utils-format.mjs","sources":["../../../projects/core/utils/format/number-to-string-without-exp.ts","../../../projects/core/utils/format/get-fractional-part-padded.ts","../../../projects/core/utils/format/format-number.ts","../../../projects/core/utils/format/string-hash-to-hsl.ts","../../../projects/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nexport function tuiNumberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split('e-');\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart = ''] = numberPart?.split('.') ?? [];\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n","import {tuiIsNumber} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiNumberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\nexport function tuiGetFractionPartPadded(\n value: number,\n precision?: number | null,\n): string {\n const [, fractionPartPadded = ''] = tuiNumberToStringWithoutExp(value).split('.');\n\n return tuiIsNumber(precision)\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk/constants';\nimport {tuiRoundWith} from '@taiga-ui/cdk/utils/math';\nimport {\n TUI_DEFAULT_NUMBER_FORMAT,\n type TuiNumberFormatSettings,\n} from '@taiga-ui/core/tokens';\n\nimport {tuiGetFractionPartPadded} from './get-fractional-part-padded';\n\n/**\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param settings See {@link TuiNumberFormatSettings}\n * @return the formatted string\n */\nexport function tuiFormatNumber(\n value: number,\n settings: Partial<TuiNumberFormatSettings> = {},\n): string {\n const {precision, decimalSeparator, thousandSeparator, decimalMode, rounding} = {\n ...TUI_DEFAULT_NUMBER_FORMAT,\n decimalMode: 'always',\n precision: Infinity,\n ...settings,\n };\n\n const rounded = Number.isFinite(precision)\n ? tuiRoundWith({value, precision, method: rounding})\n : value;\n const integerPartString = String(Math.floor(Math.abs(rounded)));\n\n let fractionPartPadded = tuiGetFractionPartPadded(rounded, precision);\n const hasFraction = Number(fractionPartPadded) > 0;\n\n if (Number.isFinite(precision)) {\n if (decimalMode === 'always' || (hasFraction && decimalMode === 'pad')) {\n const zeroPaddingSize: number = Math.max(\n precision - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = '0'.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, '');\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : '';\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n","/**\n * Converts a string to an HSL color\n * @param value string to convert\n * @return HSL color string\n */\n// @bad TODO: convert stringHashToHsl to stringHashToRgb\nexport function tuiStringHashToHsl(value: string): string {\n if (value === '') {\n return '';\n }\n\n let hash = 0;\n\n for (let i = 0; i < value.length; i++) {\n hash = value.charCodeAt(i) + ((hash << 5) - hash);\n hash &= hash;\n }\n\n const hue = hash % 360;\n const saturation = 60 + (hash % 5);\n const lightness = 80 + (hash % 5);\n\n return `hsl(${hue},${saturation}%,${lightness}%)`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { inject } from '@angular/core';
2
+ import { inject, InjectionToken, provideAppInitializer, effect } from '@angular/core';
3
3
  import { TUI_FONT_SIZE_HANDLER } from '@taiga-ui/cdk/directives/font-size';
4
4
  import { tuiClamp } from '@taiga-ui/cdk/utils/math';
5
5
  import { tuiGetElementObscures } from '@taiga-ui/cdk/utils/dom';
6
- import { TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
6
+ import { REMOVE_STYLES_ON_COMPONENT_DESTROY } from '@angular/platform-browser';
7
+ import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
8
+ import { TUI_DARK_MODE, TUI_ANIMATIONS_SPEED } from '@taiga-ui/core/tokens';
9
+ import { provideEventPlugins } from '@taiga-ui/event-plugins';
7
10
 
8
11
  function tuiEnableFontScaling() {
9
12
  return {
@@ -48,6 +51,49 @@ function tuiOverrideOptions(override, fallback) {
48
51
  };
49
52
  }
50
53
 
54
+ const DEFAULT = {
55
+ apis: 'stable',
56
+ fontScaling: true,
57
+ scrollbars: 'custom',
58
+ };
59
+ const TUI_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_OPTIONS' : '');
60
+ function provideTaiga(config = {}) {
61
+ const options = { ...DEFAULT, ...config };
62
+ const providers = [
63
+ {
64
+ provide: REMOVE_STYLES_ON_COMPONENT_DESTROY,
65
+ useValue: false,
66
+ },
67
+ {
68
+ provide: TUI_OPTIONS,
69
+ useValue: options,
70
+ },
71
+ provideEventPlugins(),
72
+ provideAppInitializer(() => {
73
+ const doc = inject(DOCUMENT);
74
+ const mode = inject(TUI_DARK_MODE);
75
+ if (options.scrollbars === 'custom') {
76
+ doc.documentElement.classList.add('tui-zero-scrollbar');
77
+ }
78
+ if (tuiIsPresent(options.mode)) {
79
+ mode.set(options.mode === 'dark');
80
+ }
81
+ effect(() => {
82
+ if (mode()) {
83
+ doc.body.setAttribute('tuiTheme', 'dark');
84
+ }
85
+ else {
86
+ doc.body.removeAttribute('tuiTheme');
87
+ }
88
+ });
89
+ }),
90
+ ];
91
+ if (options.fontScaling) {
92
+ providers.push(tuiEnableFontScaling());
93
+ }
94
+ return providers;
95
+ }
96
+
51
97
  const SIZES = {
52
98
  xxs: 0,
53
99
  xs: 1,
@@ -85,5 +131,5 @@ function tuiGetDuration(speed) {
85
131
  * Generated bundle index. Do not edit.
86
132
  */
87
133
 
88
- export { TUI_ANIMATIONS_DEFAULT_DURATION, tuiEnableFontScaling, tuiGetDuration, tuiIsEditingKey, tuiIsObscured, tuiOverrideOptions, tuiSizeBigger, tuiToAnimationOptions };
134
+ export { TUI_ANIMATIONS_DEFAULT_DURATION, TUI_OPTIONS, provideTaiga, tuiEnableFontScaling, tuiGetDuration, tuiIsEditingKey, tuiIsObscured, tuiOverrideOptions, tuiSizeBigger, tuiToAnimationOptions };
89
135
  //# sourceMappingURL=taiga-ui-core-utils-miscellaneous.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-utils-miscellaneous.mjs","sources":["../../../projects/core/utils/miscellaneous/font-scaling.ts","../../../projects/core/utils/miscellaneous/is-editing-key.ts","../../../projects/core/utils/miscellaneous/is-obscured.ts","../../../projects/core/utils/miscellaneous/override-options.ts","../../../projects/core/utils/miscellaneous/size-bigger.ts","../../../projects/core/utils/miscellaneous/to-animation-options.ts","../../../projects/core/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, type Provider} from '@angular/core';\nimport {TUI_FONT_SIZE_HANDLER} from '@taiga-ui/cdk/directives/font-size';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\n\nexport function tuiEnableFontScaling(): Provider {\n return {\n provide: TUI_FONT_SIZE_HANDLER,\n useFactory:\n ({documentElement} = inject(DOCUMENT)) =>\n (size: number): void =>\n documentElement.style.setProperty(\n '--tui-font-offset',\n `${tuiClamp(size, 17, 28) - 17}px`,\n ),\n };\n}\n","const KEYS: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n\n/**\n * Check if pressed key is interactive in terms of input field\n */\nexport function tuiIsEditingKey(key = ''): boolean {\n return key.length === 1 || KEYS.includes(key);\n}\n","import {tuiGetElementObscures} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * @internal\n */\nexport function tuiIsObscured(el: HTMLElement, exceptSelector = 'tui-hints'): boolean {\n return !!tuiGetElementObscures(el)?.some((el) => !el.closest(exceptSelector));\n}\n","export function tuiOverrideOptions<T>(\n override: Partial<T>,\n fallback: T,\n): (directive: T | null, options: T | null) => T {\n return (directive, options) => {\n const result: T = directive || {...(options || fallback)};\n\n Object.keys(override).forEach((key) => {\n // Update directive props with new defaults before inputs are processed\n (result as Record<string, unknown>)[key] = override[key as keyof T];\n });\n\n return result;\n };\n}\n","import {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nconst SIZES: Record<TuiSizeXXL | TuiSizeXXS, number> = {\n xxs: 0,\n xs: 1,\n s: 2,\n m: 3,\n l: 4,\n xl: 5,\n xxl: 6,\n};\n\n/**\n * Compares size constants to determine if first size is bigger than the second\n *\n * @param size size that we need to compare\n * @param biggerThanSize size to compare with, 's' by default\n */\nexport function tuiSizeBigger(\n size: TuiSizeXXL | TuiSizeXXS,\n biggerThanSize: TuiSizeXXL | TuiSizeXXS = 's',\n): boolean {\n return SIZES[size] > SIZES[biggerThanSize];\n}\n","import {type AnimationOptions} from '@angular/animations';\nimport {inject} from '@angular/core';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\n\nexport const TUI_ANIMATIONS_DEFAULT_DURATION = 300;\n\nexport function tuiToAnimationOptions(\n speed: number = inject(TUI_ANIMATIONS_SPEED),\n easing?: string,\n): AnimationOptions {\n return {\n value: '',\n params: {\n duration: tuiGetDuration(speed),\n easing,\n },\n } as unknown as AnimationOptions;\n}\n\nexport function tuiGetDuration(speed: number): number {\n return speed && TUI_ANIMATIONS_DEFAULT_DURATION / speed;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;SAKgB,oBAAoB,GAAA;IAChC,OAAO;AACH,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,UAAU,EACN,CAAC,EAAC,eAAe,EAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KACrC,CAAC,IAAY,KACT,eAAe,CAAC,KAAK,CAAC,WAAW,CAC7B,mBAAmB,EACnB,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CACrC;KACZ,CAAC;AACN;;AChBA,MAAM,IAAI,GAAsB;IAC5B,UAAU;IACV,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;CACT,CAAC;AAEF;;AAEG;AACa,SAAA,eAAe,CAAC,GAAG,GAAG,EAAE,EAAA;AACpC,IAAA,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClD;;ACfA;;AAEG;SACa,aAAa,CAAC,EAAe,EAAE,cAAc,GAAG,WAAW,EAAA;IACvE,OAAO,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AAClF;;ACPgB,SAAA,kBAAkB,CAC9B,QAAoB,EACpB,QAAW,EAAA;AAEX,IAAA,OAAO,CAAC,SAAS,EAAE,OAAO,KAAI;AAC1B,QAAA,MAAM,MAAM,GAAM,SAAS,IAAI,EAAC,IAAI,OAAO,IAAI,QAAQ,CAAC,EAAC,CAAC;QAE1D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;;YAEjC,MAAkC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAc,CAAC,CAAC;AACxE,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC;AAClB,KAAC,CAAC;AACN;;ACZA,MAAM,KAAK,GAA4C;AACnD,IAAA,GAAG,EAAE,CAAC;AACN,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,EAAE,EAAE,CAAC;AACL,IAAA,GAAG,EAAE,CAAC;CACT,CAAC;AAEF;;;;;AAKG;SACa,aAAa,CACzB,IAA6B,EAC7B,iBAA0C,GAAG,EAAA;IAE7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;AAC/C;;ACnBO,MAAM,+BAA+B,GAAG,IAAI;AAE7C,SAAU,qBAAqB,CACjC,KAAA,GAAgB,MAAM,CAAC,oBAAoB,CAAC,EAC5C,MAAe,EAAA;IAEf,OAAO;AACH,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,MAAM,EAAE;AACJ,YAAA,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC;YAC/B,MAAM;AACT,SAAA;KAC2B,CAAC;AACrC,CAAC;AAEK,SAAU,cAAc,CAAC,KAAa,EAAA;AACxC,IAAA,OAAO,KAAK,IAAI,+BAA+B,GAAG,KAAK,CAAC;AAC5D;;ACrBA;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-utils-miscellaneous.mjs","sources":["../../../projects/core/utils/miscellaneous/font-scaling.ts","../../../projects/core/utils/miscellaneous/is-editing-key.ts","../../../projects/core/utils/miscellaneous/is-obscured.ts","../../../projects/core/utils/miscellaneous/override-options.ts","../../../projects/core/utils/miscellaneous/provide-taiga.ts","../../../projects/core/utils/miscellaneous/size-bigger.ts","../../../projects/core/utils/miscellaneous/to-animation-options.ts","../../../projects/core/utils/miscellaneous/taiga-ui-core-utils-miscellaneous.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {inject, type Provider} from '@angular/core';\nimport {TUI_FONT_SIZE_HANDLER} from '@taiga-ui/cdk/directives/font-size';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\n\nexport function tuiEnableFontScaling(): Provider {\n return {\n provide: TUI_FONT_SIZE_HANDLER,\n useFactory:\n ({documentElement} = inject(DOCUMENT)) =>\n (size: number): void =>\n documentElement.style.setProperty(\n '--tui-font-offset',\n `${tuiClamp(size, 17, 28) - 17}px`,\n ),\n };\n}\n","const KEYS: readonly string[] = [\n 'Spacebar',\n 'Backspace',\n 'Delete',\n 'ArrowLeft',\n 'ArrowRight',\n 'Left',\n 'Right',\n 'End',\n 'Home',\n];\n\n/**\n * Check if pressed key is interactive in terms of input field\n */\nexport function tuiIsEditingKey(key = ''): boolean {\n return key.length === 1 || KEYS.includes(key);\n}\n","import {tuiGetElementObscures} from '@taiga-ui/cdk/utils/dom';\n\n/**\n * @internal\n */\nexport function tuiIsObscured(el: HTMLElement, exceptSelector = 'tui-hints'): boolean {\n return !!tuiGetElementObscures(el)?.some((el) => !el.closest(exceptSelector));\n}\n","export function tuiOverrideOptions<T>(\n override: Partial<T>,\n fallback: T,\n): (directive: T | null, options: T | null) => T {\n return (directive, options) => {\n const result: T = directive || {...(options || fallback)};\n\n Object.keys(override).forEach((key) => {\n // Update directive props with new defaults before inputs are processed\n (result as Record<string, unknown>)[key] = override[key as keyof T];\n });\n\n return result;\n };\n}\n","import {DOCUMENT} from '@angular/common';\nimport {\n effect,\n type EnvironmentProviders,\n inject,\n InjectionToken,\n provideAppInitializer,\n type Provider,\n} from '@angular/core';\nimport {REMOVE_STYLES_ON_COMPONENT_DESTROY} from '@angular/platform-browser';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DARK_MODE} from '@taiga-ui/core/tokens';\nimport {provideEventPlugins} from '@taiga-ui/event-plugins';\n\nimport {tuiEnableFontScaling} from './font-scaling';\n\ninterface ExperimentalAPIs {\n readonly all: boolean;\n}\n\nexport interface TuiOptions {\n readonly mode?: 'dark' | 'light';\n readonly apis: Partial<ExperimentalAPIs> | 'stable';\n readonly fontScaling: boolean;\n readonly scrollbars: 'custom' | 'native';\n}\n\nconst DEFAULT: TuiOptions = {\n apis: 'stable',\n fontScaling: true,\n scrollbars: 'custom',\n};\n\nexport const TUI_OPTIONS = new InjectionToken<TuiOptions>(ngDevMode ? 'TUI_OPTIONS' : '');\n\nexport function provideTaiga(\n config: Partial<TuiOptions> = {},\n): Array<EnvironmentProviders | Provider> {\n const options = {...DEFAULT, ...config};\n const providers: Array<EnvironmentProviders | Provider> = [\n {\n provide: REMOVE_STYLES_ON_COMPONENT_DESTROY,\n useValue: false,\n },\n {\n provide: TUI_OPTIONS,\n useValue: options,\n },\n provideEventPlugins(),\n provideAppInitializer(() => {\n const doc = inject(DOCUMENT);\n const mode = inject(TUI_DARK_MODE);\n\n if (options.scrollbars === 'custom') {\n doc.documentElement.classList.add('tui-zero-scrollbar');\n }\n\n if (tuiIsPresent(options.mode)) {\n mode.set(options.mode === 'dark');\n }\n\n effect(() => {\n if (mode()) {\n doc.body.setAttribute('tuiTheme', 'dark');\n } else {\n doc.body.removeAttribute('tuiTheme');\n }\n });\n }),\n ];\n\n if (options.fontScaling) {\n providers.push(tuiEnableFontScaling());\n }\n\n return providers;\n}\n","import {type TuiSizeXXL, type TuiSizeXXS} from '@taiga-ui/core/types';\n\nconst SIZES: Record<TuiSizeXXL | TuiSizeXXS, number> = {\n xxs: 0,\n xs: 1,\n s: 2,\n m: 3,\n l: 4,\n xl: 5,\n xxl: 6,\n};\n\n/**\n * Compares size constants to determine if first size is bigger than the second\n *\n * @param size size that we need to compare\n * @param biggerThanSize size to compare with, 's' by default\n */\nexport function tuiSizeBigger(\n size: TuiSizeXXL | TuiSizeXXS,\n biggerThanSize: TuiSizeXXL | TuiSizeXXS = 's',\n): boolean {\n return SIZES[size] > SIZES[biggerThanSize];\n}\n","import {type AnimationOptions} from '@angular/animations';\nimport {inject} from '@angular/core';\nimport {TUI_ANIMATIONS_SPEED} from '@taiga-ui/core/tokens';\n\nexport const TUI_ANIMATIONS_DEFAULT_DURATION = 300;\n\nexport function tuiToAnimationOptions(\n speed: number = inject(TUI_ANIMATIONS_SPEED),\n easing?: string,\n): AnimationOptions {\n return {\n value: '',\n params: {\n duration: tuiGetDuration(speed),\n easing,\n },\n } as unknown as AnimationOptions;\n}\n\nexport function tuiGetDuration(speed: number): number {\n return speed && TUI_ANIMATIONS_DEFAULT_DURATION / speed;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}