ngwr 14.10.0 → 14.12.0

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 (722) hide show
  1. package/card/styles/_rules.scss +1 -1
  2. package/event-calendar/styles/_index.scss +14 -0
  3. package/fesm2022/ngwr-action-sheet-testing.mjs +111 -310
  4. package/fesm2022/ngwr-action-sheet-testing.mjs.map +1 -1
  5. package/fesm2022/ngwr-action-sheet.mjs +209 -89
  6. package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
  7. package/fesm2022/ngwr-affix.mjs +122 -140
  8. package/fesm2022/ngwr-affix.mjs.map +1 -1
  9. package/fesm2022/ngwr-alert.mjs +204 -107
  10. package/fesm2022/ngwr-alert.mjs.map +1 -1
  11. package/fesm2022/ngwr-anchor.mjs +171 -113
  12. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  13. package/fesm2022/ngwr-aurora.mjs +278 -198
  14. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  15. package/fesm2022/ngwr-avatar.mjs +191 -190
  16. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  17. package/fesm2022/ngwr-back-top.mjs +140 -95
  18. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  19. package/fesm2022/ngwr-badge.mjs +339 -204
  20. package/fesm2022/ngwr-badge.mjs.map +1 -1
  21. package/fesm2022/ngwr-bar-chart-testing.mjs +56 -120
  22. package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
  23. package/fesm2022/ngwr-bar-chart.mjs +204 -113
  24. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  25. package/fesm2022/ngwr-blur-text-testing.mjs +44 -198
  26. package/fesm2022/ngwr-blur-text-testing.mjs.map +1 -1
  27. package/fesm2022/ngwr-blur-text.mjs +322 -202
  28. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  29. package/fesm2022/ngwr-border-glow-testing.mjs +134 -318
  30. package/fesm2022/ngwr-border-glow-testing.mjs.map +1 -1
  31. package/fesm2022/ngwr-border-glow.mjs +440 -277
  32. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  33. package/fesm2022/ngwr-breadcrumbs.mjs +256 -120
  34. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  35. package/fesm2022/ngwr-burger.mjs +115 -63
  36. package/fesm2022/ngwr-burger.mjs.map +1 -1
  37. package/fesm2022/ngwr-button-testing.mjs +39 -94
  38. package/fesm2022/ngwr-button-testing.mjs.map +1 -1
  39. package/fesm2022/ngwr-button.mjs +404 -354
  40. package/fesm2022/ngwr-button.mjs.map +1 -1
  41. package/fesm2022/ngwr-calendar-heatmap-testing.mjs +50 -96
  42. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -1
  43. package/fesm2022/ngwr-calendar-heatmap.mjs +360 -264
  44. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  45. package/fesm2022/ngwr-calendar-testing.mjs +181 -378
  46. package/fesm2022/ngwr-calendar-testing.mjs.map +1 -1
  47. package/fesm2022/ngwr-calendar.mjs +612 -790
  48. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  49. package/fesm2022/ngwr-card.mjs +216 -98
  50. package/fesm2022/ngwr-card.mjs.map +1 -1
  51. package/fesm2022/ngwr-carousel-testing.mjs +131 -374
  52. package/fesm2022/ngwr-carousel-testing.mjs.map +1 -1
  53. package/fesm2022/ngwr-carousel.mjs +459 -332
  54. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  55. package/fesm2022/ngwr-cascader-testing.mjs +227 -600
  56. package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
  57. package/fesm2022/ngwr-cascader.mjs +482 -418
  58. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  59. package/fesm2022/ngwr-checkbox-testing.mjs +45 -99
  60. package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
  61. package/fesm2022/ngwr-checkbox.mjs +461 -354
  62. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  63. package/fesm2022/ngwr-circular-text-testing.mjs +56 -223
  64. package/fesm2022/ngwr-circular-text-testing.mjs.map +1 -1
  65. package/fesm2022/ngwr-circular-text.mjs +226 -186
  66. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  67. package/fesm2022/ngwr-click-spark.mjs +303 -199
  68. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  69. package/fesm2022/ngwr-clipboard.mjs +95 -163
  70. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  71. package/fesm2022/ngwr-collapse-testing.mjs +118 -365
  72. package/fesm2022/ngwr-collapse-testing.mjs.map +1 -1
  73. package/fesm2022/ngwr-collapse.mjs +287 -227
  74. package/fesm2022/ngwr-collapse.mjs.map +1 -1
  75. package/fesm2022/ngwr-color-picker-testing.mjs +223 -461
  76. package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -1
  77. package/fesm2022/ngwr-color-picker.mjs +952 -976
  78. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  79. package/fesm2022/ngwr-command-palette-testing.mjs +236 -585
  80. package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -1
  81. package/fesm2022/ngwr-command-palette.mjs +512 -443
  82. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  83. package/fesm2022/ngwr-compare.mjs +252 -225
  84. package/fesm2022/ngwr-compare.mjs.map +1 -1
  85. package/fesm2022/ngwr-confetti.mjs +163 -181
  86. package/fesm2022/ngwr-confetti.mjs.map +1 -1
  87. package/fesm2022/ngwr-config.mjs +31 -106
  88. package/fesm2022/ngwr-config.mjs.map +1 -1
  89. package/fesm2022/ngwr-context-menu-testing.mjs +233 -642
  90. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
  91. package/fesm2022/ngwr-context-menu.mjs +837 -1167
  92. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  93. package/fesm2022/ngwr-cookie.mjs +103 -140
  94. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  95. package/fesm2022/ngwr-counter.mjs +646 -460
  96. package/fesm2022/ngwr-counter.mjs.map +1 -1
  97. package/fesm2022/ngwr-date-adapters-fns.mjs +173 -266
  98. package/fesm2022/ngwr-date-adapters-fns.mjs.map +1 -1
  99. package/fesm2022/ngwr-date-adapters-luxon.mjs +164 -236
  100. package/fesm2022/ngwr-date-adapters-luxon.mjs.map +1 -1
  101. package/fesm2022/ngwr-date-picker-testing.mjs +340 -700
  102. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
  103. package/fesm2022/ngwr-date-picker.mjs +2581 -2416
  104. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  105. package/fesm2022/ngwr-date.mjs +606 -861
  106. package/fesm2022/ngwr-date.mjs.map +1 -1
  107. package/fesm2022/ngwr-decrypt-text-testing.mjs +57 -256
  108. package/fesm2022/ngwr-decrypt-text-testing.mjs.map +1 -1
  109. package/fesm2022/ngwr-decrypt-text.mjs +489 -409
  110. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  111. package/fesm2022/ngwr-density.mjs +157 -154
  112. package/fesm2022/ngwr-density.mjs.map +1 -1
  113. package/fesm2022/ngwr-descriptions.mjs +188 -90
  114. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  115. package/fesm2022/ngwr-dialog-testing.mjs +44 -87
  116. package/fesm2022/ngwr-dialog-testing.mjs.map +1 -1
  117. package/fesm2022/ngwr-dialog.mjs +391 -522
  118. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  119. package/fesm2022/ngwr-directives.mjs +354 -271
  120. package/fesm2022/ngwr-directives.mjs.map +1 -1
  121. package/fesm2022/ngwr-divider.mjs +151 -133
  122. package/fesm2022/ngwr-divider.mjs.map +1 -1
  123. package/fesm2022/ngwr-donut-chart-testing.mjs +48 -111
  124. package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
  125. package/fesm2022/ngwr-donut-chart.mjs +295 -190
  126. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  127. package/fesm2022/ngwr-drag-drop.mjs +411 -301
  128. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  129. package/fesm2022/ngwr-drawer-testing.mjs +97 -248
  130. package/fesm2022/ngwr-drawer-testing.mjs.map +1 -1
  131. package/fesm2022/ngwr-drawer.mjs +862 -889
  132. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  133. package/fesm2022/ngwr-dropdown-testing.mjs +125 -288
  134. package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -1
  135. package/fesm2022/ngwr-dropdown.mjs +613 -641
  136. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  137. package/fesm2022/ngwr-editor-testing.mjs +194 -640
  138. package/fesm2022/ngwr-editor-testing.mjs.map +1 -1
  139. package/fesm2022/ngwr-editor.mjs +2062 -2541
  140. package/fesm2022/ngwr-editor.mjs.map +1 -1
  141. package/fesm2022/ngwr-empty.mjs +117 -72
  142. package/fesm2022/ngwr-empty.mjs.map +1 -1
  143. package/fesm2022/ngwr-event-calendar-testing.mjs +217 -439
  144. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -1
  145. package/fesm2022/ngwr-event-calendar.mjs +906 -822
  146. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  147. package/fesm2022/ngwr-falling-text-testing.mjs +52 -216
  148. package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -1
  149. package/fesm2022/ngwr-falling-text.mjs +375 -342
  150. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  151. package/fesm2022/ngwr-file-upload-testing.mjs +138 -320
  152. package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -1
  153. package/fesm2022/ngwr-file-upload.mjs +475 -328
  154. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  155. package/fesm2022/ngwr-form-testing.mjs +145 -452
  156. package/fesm2022/ngwr-form-testing.mjs.map +1 -1
  157. package/fesm2022/ngwr-form.mjs +512 -590
  158. package/fesm2022/ngwr-form.mjs.map +1 -1
  159. package/fesm2022/ngwr-fuzzy-text-testing.mjs +36 -132
  160. package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +1 -1
  161. package/fesm2022/ngwr-fuzzy-text.mjs +635 -421
  162. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  163. package/fesm2022/ngwr-gauge-testing.mjs +49 -98
  164. package/fesm2022/ngwr-gauge-testing.mjs.map +1 -1
  165. package/fesm2022/ngwr-gauge.mjs +297 -129
  166. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  167. package/fesm2022/ngwr-glitch-text-testing.mjs +61 -213
  168. package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -1
  169. package/fesm2022/ngwr-glitch-text.mjs +170 -73
  170. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  171. package/fesm2022/ngwr-gradient-text-testing.mjs +82 -251
  172. package/fesm2022/ngwr-gradient-text-testing.mjs.map +1 -1
  173. package/fesm2022/ngwr-gradient-text.mjs +215 -114
  174. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  175. package/fesm2022/ngwr-graph-testing.mjs +65 -233
  176. package/fesm2022/ngwr-graph-testing.mjs.map +1 -1
  177. package/fesm2022/ngwr-graph.mjs +882 -1046
  178. package/fesm2022/ngwr-graph.mjs.map +1 -1
  179. package/fesm2022/ngwr-hotkey.mjs +307 -285
  180. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  181. package/fesm2022/ngwr-i18n-ar.mjs +374 -464
  182. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
  183. package/fesm2022/ngwr-i18n-cs.mjs +374 -434
  184. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
  185. package/fesm2022/ngwr-i18n-de.mjs +374 -453
  186. package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
  187. package/fesm2022/ngwr-i18n-en.mjs +374 -561
  188. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  189. package/fesm2022/ngwr-i18n-es.mjs +374 -434
  190. package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
  191. package/fesm2022/ngwr-i18n-fr.mjs +374 -458
  192. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
  193. package/fesm2022/ngwr-i18n-he.mjs +374 -457
  194. package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
  195. package/fesm2022/ngwr-i18n-hi.mjs +374 -434
  196. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
  197. package/fesm2022/ngwr-i18n-id.mjs +374 -434
  198. package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
  199. package/fesm2022/ngwr-i18n-it.mjs +374 -453
  200. package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
  201. package/fesm2022/ngwr-i18n-ja.mjs +374 -438
  202. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
  203. package/fesm2022/ngwr-i18n-ko.mjs +374 -446
  204. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
  205. package/fesm2022/ngwr-i18n-nl.mjs +374 -450
  206. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
  207. package/fesm2022/ngwr-i18n-pl.mjs +374 -460
  208. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
  209. package/fesm2022/ngwr-i18n-pt.mjs +374 -443
  210. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
  211. package/fesm2022/ngwr-i18n-ru.mjs +374 -447
  212. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  213. package/fesm2022/ngwr-i18n-sv.mjs +374 -434
  214. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
  215. package/fesm2022/ngwr-i18n-tr.mjs +374 -458
  216. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
  217. package/fesm2022/ngwr-i18n-uk.mjs +374 -455
  218. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
  219. package/fesm2022/ngwr-i18n-vi.mjs +374 -451
  220. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
  221. package/fesm2022/ngwr-i18n-zh-TW.mjs +374 -442
  222. package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
  223. package/fesm2022/ngwr-i18n-zh.mjs +374 -433
  224. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
  225. package/fesm2022/ngwr-i18n.mjs +415 -683
  226. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  227. package/fesm2022/ngwr-icon-adapters-feather.mjs +28 -77
  228. package/fesm2022/ngwr-icon-adapters-feather.mjs.map +1 -1
  229. package/fesm2022/ngwr-icon-adapters-lucide.mjs +32 -94
  230. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -1
  231. package/fesm2022/ngwr-icon.mjs +371 -690
  232. package/fesm2022/ngwr-icon.mjs.map +1 -1
  233. package/fesm2022/ngwr-image-cropper-testing.mjs +84 -227
  234. package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -1
  235. package/fesm2022/ngwr-image-cropper.mjs +577 -639
  236. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  237. package/fesm2022/ngwr-input-number-testing.mjs +108 -305
  238. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
  239. package/fesm2022/ngwr-input-number.mjs +511 -361
  240. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  241. package/fesm2022/ngwr-input-otp-testing.mjs +172 -420
  242. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
  243. package/fesm2022/ngwr-input-otp.mjs +400 -352
  244. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  245. package/fesm2022/ngwr-input-testing.mjs +52 -100
  246. package/fesm2022/ngwr-input-testing.mjs.map +1 -1
  247. package/fesm2022/ngwr-input.mjs +356 -303
  248. package/fesm2022/ngwr-input.mjs.map +1 -1
  249. package/fesm2022/ngwr-keyboard.mjs +63 -45
  250. package/fesm2022/ngwr-keyboard.mjs.map +1 -1
  251. package/fesm2022/ngwr-knob-testing.mjs +101 -223
  252. package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
  253. package/fesm2022/ngwr-knob.mjs +436 -303
  254. package/fesm2022/ngwr-knob.mjs.map +1 -1
  255. package/fesm2022/ngwr-layout.mjs +362 -207
  256. package/fesm2022/ngwr-layout.mjs.map +1 -1
  257. package/fesm2022/ngwr-lightbox-testing.mjs +100 -221
  258. package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -1
  259. package/fesm2022/ngwr-lightbox.mjs +335 -268
  260. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  261. package/fesm2022/ngwr-line-chart-testing.mjs +65 -133
  262. package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -1
  263. package/fesm2022/ngwr-line-chart.mjs +356 -281
  264. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  265. package/fesm2022/ngwr-list.mjs +251 -134
  266. package/fesm2022/ngwr-list.mjs.map +1 -1
  267. package/fesm2022/ngwr-loading-bar-router.mjs +26 -68
  268. package/fesm2022/ngwr-loading-bar-router.mjs.map +1 -1
  269. package/fesm2022/ngwr-loading-bar.mjs +173 -186
  270. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  271. package/fesm2022/ngwr-markdown-testing.mjs +174 -505
  272. package/fesm2022/ngwr-markdown-testing.mjs.map +1 -1
  273. package/fesm2022/ngwr-markdown.mjs +1578 -2219
  274. package/fesm2022/ngwr-markdown.mjs.map +1 -1
  275. package/fesm2022/ngwr-marquee-testing.mjs +118 -331
  276. package/fesm2022/ngwr-marquee-testing.mjs.map +1 -1
  277. package/fesm2022/ngwr-marquee.mjs +411 -230
  278. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  279. package/fesm2022/ngwr-media.mjs +100 -127
  280. package/fesm2022/ngwr-media.mjs.map +1 -1
  281. package/fesm2022/ngwr-mention-testing.mjs +179 -506
  282. package/fesm2022/ngwr-mention-testing.mjs.map +1 -1
  283. package/fesm2022/ngwr-mention.mjs +668 -732
  284. package/fesm2022/ngwr-mention.mjs.map +1 -1
  285. package/fesm2022/ngwr-meta.mjs +257 -329
  286. package/fesm2022/ngwr-meta.mjs.map +1 -1
  287. package/fesm2022/ngwr-meter-group-testing.mjs +56 -101
  288. package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -1
  289. package/fesm2022/ngwr-meter-group.mjs +206 -114
  290. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  291. package/fesm2022/ngwr-overlay.mjs +264 -576
  292. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  293. package/fesm2022/ngwr-page-header.mjs +107 -67
  294. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  295. package/fesm2022/ngwr-pagination-testing.mjs +125 -388
  296. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
  297. package/fesm2022/ngwr-pagination.mjs +505 -335
  298. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  299. package/fesm2022/ngwr-pipes.mjs +343 -382
  300. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  301. package/fesm2022/ngwr-platform.mjs +182 -221
  302. package/fesm2022/ngwr-platform.mjs.map +1 -1
  303. package/fesm2022/ngwr-popconfirm-testing.mjs +112 -307
  304. package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -1
  305. package/fesm2022/ngwr-popconfirm.mjs +474 -277
  306. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  307. package/fesm2022/ngwr-popover-testing.mjs +114 -332
  308. package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
  309. package/fesm2022/ngwr-popover.mjs +1106 -1311
  310. package/fesm2022/ngwr-popover.mjs.map +1 -1
  311. package/fesm2022/ngwr-progress.mjs +124 -68
  312. package/fesm2022/ngwr-progress.mjs.map +1 -1
  313. package/fesm2022/ngwr-pull-to-refresh.mjs +198 -185
  314. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
  315. package/fesm2022/ngwr-qr.mjs +1179 -1100
  316. package/fesm2022/ngwr-qr.mjs.map +1 -1
  317. package/fesm2022/ngwr-radio-testing.mjs +138 -389
  318. package/fesm2022/ngwr-radio-testing.mjs.map +1 -1
  319. package/fesm2022/ngwr-radio.mjs +351 -239
  320. package/fesm2022/ngwr-radio.mjs.map +1 -1
  321. package/fesm2022/ngwr-rating-testing.mjs +153 -390
  322. package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
  323. package/fesm2022/ngwr-rating.mjs +296 -247
  324. package/fesm2022/ngwr-rating.mjs.map +1 -1
  325. package/fesm2022/ngwr-result.mjs +359 -114
  326. package/fesm2022/ngwr-result.mjs.map +1 -1
  327. package/fesm2022/ngwr-rotating-text-testing.mjs +45 -215
  328. package/fesm2022/ngwr-rotating-text-testing.mjs.map +1 -1
  329. package/fesm2022/ngwr-rotating-text.mjs +402 -272
  330. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  331. package/fesm2022/ngwr-schema-form.mjs +384 -213
  332. package/fesm2022/ngwr-schema-form.mjs.map +1 -1
  333. package/fesm2022/ngwr-scroll.mjs +95 -105
  334. package/fesm2022/ngwr-scroll.mjs.map +1 -1
  335. package/fesm2022/ngwr-segmented-testing.mjs +184 -593
  336. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
  337. package/fesm2022/ngwr-segmented.mjs +238 -251
  338. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  339. package/fesm2022/ngwr-select-testing.mjs +139 -284
  340. package/fesm2022/ngwr-select-testing.mjs.map +1 -1
  341. package/fesm2022/ngwr-select.mjs +1810 -2098
  342. package/fesm2022/ngwr-select.mjs.map +1 -1
  343. package/fesm2022/ngwr-shiny-text-testing.mjs +83 -228
  344. package/fesm2022/ngwr-shiny-text-testing.mjs.map +1 -1
  345. package/fesm2022/ngwr-shiny-text.mjs +304 -131
  346. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  347. package/fesm2022/ngwr-sidebar.mjs +256 -205
  348. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  349. package/fesm2022/ngwr-skeleton.mjs +101 -72
  350. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  351. package/fesm2022/ngwr-slider-testing.mjs +191 -473
  352. package/fesm2022/ngwr-slider-testing.mjs.map +1 -1
  353. package/fesm2022/ngwr-slider.mjs +444 -443
  354. package/fesm2022/ngwr-slider.mjs.map +1 -1
  355. package/fesm2022/ngwr-sparkline-testing.mjs +37 -74
  356. package/fesm2022/ngwr-sparkline-testing.mjs.map +1 -1
  357. package/fesm2022/ngwr-sparkline.mjs +311 -196
  358. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  359. package/fesm2022/ngwr-speed-dial-testing.mjs +135 -278
  360. package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -1
  361. package/fesm2022/ngwr-speed-dial.mjs +242 -140
  362. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  363. package/fesm2022/ngwr-spinner.mjs +97 -60
  364. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  365. package/fesm2022/ngwr-splash-cursor-testing.mjs +23 -87
  366. package/fesm2022/ngwr-splash-cursor-testing.mjs.map +1 -1
  367. package/fesm2022/ngwr-splash-cursor.mjs +980 -725
  368. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  369. package/fesm2022/ngwr-split-text-testing.mjs +48 -218
  370. package/fesm2022/ngwr-split-text-testing.mjs.map +1 -1
  371. package/fesm2022/ngwr-split-text.mjs +365 -220
  372. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  373. package/fesm2022/ngwr-splitter-testing.mjs +107 -241
  374. package/fesm2022/ngwr-splitter-testing.mjs.map +1 -1
  375. package/fesm2022/ngwr-splitter.mjs +222 -184
  376. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  377. package/fesm2022/ngwr-spotlight-card-testing.mjs +105 -360
  378. package/fesm2022/ngwr-spotlight-card-testing.mjs.map +1 -1
  379. package/fesm2022/ngwr-spotlight-card.mjs +217 -135
  380. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  381. package/fesm2022/ngwr-squircle.mjs +410 -326
  382. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  383. package/fesm2022/ngwr-star-border-testing.mjs +53 -168
  384. package/fesm2022/ngwr-star-border-testing.mjs.map +1 -1
  385. package/fesm2022/ngwr-star-border.mjs +160 -70
  386. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  387. package/fesm2022/ngwr-statistic.mjs +570 -389
  388. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  389. package/fesm2022/ngwr-stepper-testing.mjs +158 -471
  390. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
  391. package/fesm2022/ngwr-stepper.mjs +336 -215
  392. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  393. package/fesm2022/ngwr-storage.mjs +217 -330
  394. package/fesm2022/ngwr-storage.mjs.map +1 -1
  395. package/fesm2022/ngwr-switch-testing.mjs +42 -75
  396. package/fesm2022/ngwr-switch-testing.mjs.map +1 -1
  397. package/fesm2022/ngwr-switch.mjs +212 -114
  398. package/fesm2022/ngwr-switch.mjs.map +1 -1
  399. package/fesm2022/ngwr-table-testing.mjs +238 -572
  400. package/fesm2022/ngwr-table-testing.mjs.map +1 -1
  401. package/fesm2022/ngwr-table.mjs +1879 -1446
  402. package/fesm2022/ngwr-table.mjs.map +1 -1
  403. package/fesm2022/ngwr-tabs-router.mjs +84 -153
  404. package/fesm2022/ngwr-tabs-router.mjs.map +1 -1
  405. package/fesm2022/ngwr-tabs-testing.mjs +217 -617
  406. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
  407. package/fesm2022/ngwr-tabs.mjs +402 -425
  408. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  409. package/fesm2022/ngwr-textarea-testing.mjs +84 -236
  410. package/fesm2022/ngwr-textarea-testing.mjs.map +1 -1
  411. package/fesm2022/ngwr-textarea.mjs +388 -264
  412. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  413. package/fesm2022/ngwr-theme.mjs +247 -443
  414. package/fesm2022/ngwr-theme.mjs.map +1 -1
  415. package/fesm2022/ngwr-tilt-card-testing.mjs +79 -186
  416. package/fesm2022/ngwr-tilt-card-testing.mjs.map +1 -1
  417. package/fesm2022/ngwr-tilt-card.mjs +257 -168
  418. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  419. package/fesm2022/ngwr-timeline.mjs +157 -70
  420. package/fesm2022/ngwr-timeline.mjs.map +1 -1
  421. package/fesm2022/ngwr-toast-testing.mjs +59 -99
  422. package/fesm2022/ngwr-toast-testing.mjs.map +1 -1
  423. package/fesm2022/ngwr-toast.mjs +769 -691
  424. package/fesm2022/ngwr-toast.mjs.map +1 -1
  425. package/fesm2022/ngwr-toolbar.mjs +73 -58
  426. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  427. package/fesm2022/ngwr-tour-testing.mjs +75 -171
  428. package/fesm2022/ngwr-tour-testing.mjs.map +1 -1
  429. package/fesm2022/ngwr-tour.mjs +333 -347
  430. package/fesm2022/ngwr-tour.mjs.map +1 -1
  431. package/fesm2022/ngwr-transfer-testing.mjs +195 -534
  432. package/fesm2022/ngwr-transfer-testing.mjs.map +1 -1
  433. package/fesm2022/ngwr-transfer.mjs +444 -322
  434. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  435. package/fesm2022/ngwr-tree-testing.mjs +277 -754
  436. package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
  437. package/fesm2022/ngwr-tree.mjs +884 -906
  438. package/fesm2022/ngwr-tree.mjs.map +1 -1
  439. package/fesm2022/ngwr-typewriter-testing.mjs +50 -237
  440. package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -1
  441. package/fesm2022/ngwr-typewriter.mjs +461 -242
  442. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  443. package/fesm2022/ngwr-typography.mjs +142 -81
  444. package/fesm2022/ngwr-typography.mjs.map +1 -1
  445. package/fesm2022/ngwr-utils.mjs +304 -613
  446. package/fesm2022/ngwr-utils.mjs.map +1 -1
  447. package/fesm2022/ngwr-validators.mjs +179 -361
  448. package/fesm2022/ngwr-validators.mjs.map +1 -1
  449. package/fesm2022/ngwr-version.mjs +17 -47
  450. package/fesm2022/ngwr-version.mjs.map +1 -1
  451. package/fesm2022/ngwr-virtual-scroll.mjs +259 -125
  452. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  453. package/fesm2022/ngwr-waves-testing.mjs +34 -125
  454. package/fesm2022/ngwr-waves-testing.mjs.map +1 -1
  455. package/fesm2022/ngwr-waves.mjs +816 -373
  456. package/fesm2022/ngwr-waves.mjs.map +1 -1
  457. package/fesm2022/ngwr-window-testing.mjs +171 -366
  458. package/fesm2022/ngwr-window-testing.mjs.map +1 -1
  459. package/fesm2022/ngwr-window.mjs +1437 -1351
  460. package/fesm2022/ngwr-window.mjs.map +1 -1
  461. package/fesm2022/ngwr.mjs +0 -4
  462. package/i18n/ar.json +0 -1
  463. package/i18n/cs.json +0 -1
  464. package/i18n/de.json +0 -1
  465. package/i18n/en.json +0 -1
  466. package/i18n/es.json +0 -1
  467. package/i18n/fr.json +0 -1
  468. package/i18n/he.json +0 -1
  469. package/i18n/hi.json +0 -1
  470. package/i18n/id.json +0 -1
  471. package/i18n/it.json +0 -1
  472. package/i18n/ja.json +0 -1
  473. package/i18n/ko.json +0 -1
  474. package/i18n/nl.json +0 -1
  475. package/i18n/pl.json +0 -1
  476. package/i18n/pt.json +0 -1
  477. package/i18n/ru.json +0 -1
  478. package/i18n/sv.json +0 -1
  479. package/i18n/tr.json +0 -1
  480. package/i18n/uk.json +0 -1
  481. package/i18n/vi.json +0 -1
  482. package/i18n/zh-TW.json +0 -1
  483. package/i18n/zh.json +0 -1
  484. package/input-number/styles/_index.scss +33 -35
  485. package/llms-full.txt +3 -3
  486. package/loading-bar/styles/_rules.scss +1 -1
  487. package/package.json +2 -2
  488. package/segmented/styles/_index.scss +10 -3
  489. package/theme/_index.scss +84 -0
  490. package/theme/styles/_contrast.scss +1 -1
  491. package/theme/styles/_dark.scss +59 -3
  492. package/types/ngwr-action-sheet-testing.d.ts +174 -200
  493. package/types/ngwr-action-sheet.d.ts +83 -45
  494. package/types/ngwr-affix.d.ts +27 -22
  495. package/types/ngwr-alert.d.ts +93 -59
  496. package/types/ngwr-anchor.d.ts +52 -35
  497. package/types/ngwr-aurora.d.ts +53 -35
  498. package/types/ngwr-avatar.d.ts +97 -81
  499. package/types/ngwr-back-top.d.ts +36 -23
  500. package/types/ngwr-badge.d.ts +160 -105
  501. package/types/ngwr-bar-chart-testing.d.ts +40 -58
  502. package/types/ngwr-bar-chart.d.ts +86 -60
  503. package/types/ngwr-blur-text-testing.d.ts +103 -121
  504. package/types/ngwr-blur-text.d.ts +99 -60
  505. package/types/ngwr-border-glow-testing.d.ts +155 -173
  506. package/types/ngwr-border-glow.d.ts +93 -45
  507. package/types/ngwr-breadcrumbs.d.ts +60 -32
  508. package/types/ngwr-burger.d.ts +38 -23
  509. package/types/ngwr-button-testing.d.ts +41 -59
  510. package/types/ngwr-button.d.ts +213 -163
  511. package/types/ngwr-calendar-heatmap-testing.d.ts +38 -56
  512. package/types/ngwr-calendar-heatmap.d.ts +151 -105
  513. package/types/ngwr-calendar-testing.d.ts +198 -224
  514. package/types/ngwr-calendar.d.ts +285 -246
  515. package/types/ngwr-card.d.ts +41 -23
  516. package/types/ngwr-carousel-testing.d.ts +196 -214
  517. package/types/ngwr-carousel.d.ts +173 -122
  518. package/types/ngwr-cascader-testing.d.ts +338 -372
  519. package/types/ngwr-cascader.d.ts +235 -161
  520. package/types/ngwr-checkbox-testing.d.ts +45 -63
  521. package/types/ngwr-checkbox.d.ts +252 -183
  522. package/types/ngwr-circular-text-testing.d.ts +108 -126
  523. package/types/ngwr-circular-text.d.ts +53 -41
  524. package/types/ngwr-click-spark.d.ts +82 -50
  525. package/types/ngwr-clipboard.d.ts +40 -44
  526. package/types/ngwr-collapse-testing.d.ts +193 -219
  527. package/types/ngwr-collapse.d.ts +82 -71
  528. package/types/ngwr-color-picker-testing.d.ts +211 -237
  529. package/types/ngwr-color-picker.d.ts +353 -300
  530. package/types/ngwr-command-palette-testing.d.ts +311 -345
  531. package/types/ngwr-command-palette.d.ts +257 -197
  532. package/types/ngwr-compare.d.ts +102 -67
  533. package/types/ngwr-confetti.d.ts +51 -55
  534. package/types/ngwr-config.d.ts +44 -71
  535. package/types/ngwr-context-menu-testing.d.ts +301 -327
  536. package/types/ngwr-context-menu.d.ts +350 -310
  537. package/types/ngwr-cookie.d.ts +37 -41
  538. package/types/ngwr-counter.d.ts +223 -128
  539. package/types/ngwr-date-adapters-fns.d.ts +40 -59
  540. package/types/ngwr-date-adapters-luxon.d.ts +61 -72
  541. package/types/ngwr-date-picker-testing.d.ts +295 -339
  542. package/types/ngwr-date-picker.d.ts +771 -583
  543. package/types/ngwr-date.d.ts +229 -258
  544. package/types/ngwr-decrypt-text-testing.d.ts +140 -158
  545. package/types/ngwr-decrypt-text.d.ts +104 -62
  546. package/types/ngwr-density.d.ts +42 -57
  547. package/types/ngwr-descriptions.d.ts +50 -27
  548. package/types/ngwr-dialog-testing.d.ts +36 -54
  549. package/types/ngwr-dialog.d.ts +166 -190
  550. package/types/ngwr-directives.d.ts +82 -60
  551. package/types/ngwr-divider.d.ts +78 -62
  552. package/types/ngwr-donut-chart-testing.d.ts +36 -54
  553. package/types/ngwr-donut-chart.d.ts +102 -66
  554. package/types/ngwr-drag-drop.d.ts +139 -106
  555. package/types/ngwr-drawer-testing.d.ts +141 -159
  556. package/types/ngwr-drawer.d.ts +374 -316
  557. package/types/ngwr-dropdown-testing.d.ts +128 -154
  558. package/types/ngwr-dropdown.d.ts +260 -166
  559. package/types/ngwr-editor-testing.d.ts +312 -330
  560. package/types/ngwr-editor.d.ts +435 -344
  561. package/types/ngwr-empty.d.ts +41 -28
  562. package/types/ngwr-event-calendar-testing.d.ts +221 -243
  563. package/types/ngwr-event-calendar.d.ts +340 -298
  564. package/types/ngwr-falling-text-testing.d.ts +108 -126
  565. package/types/ngwr-falling-text.d.ts +57 -35
  566. package/types/ngwr-file-upload-testing.d.ts +134 -151
  567. package/types/ngwr-file-upload.d.ts +210 -128
  568. package/types/ngwr-form-testing.d.ts +255 -282
  569. package/types/ngwr-form.d.ts +324 -306
  570. package/types/ngwr-fuzzy-text-testing.d.ts +63 -81
  571. package/types/ngwr-fuzzy-text.d.ts +152 -65
  572. package/types/ngwr-gauge-testing.d.ts +43 -61
  573. package/types/ngwr-gauge.d.ts +113 -61
  574. package/types/ngwr-glitch-text-testing.d.ts +125 -143
  575. package/types/ngwr-glitch-text.d.ts +47 -24
  576. package/types/ngwr-gradient-text-testing.d.ts +114 -132
  577. package/types/ngwr-gradient-text.d.ts +51 -24
  578. package/types/ngwr-graph-testing.d.ts +89 -115
  579. package/types/ngwr-graph.d.ts +137 -124
  580. package/types/ngwr-hotkey.d.ts +85 -75
  581. package/types/ngwr-i18n-ar.d.ts +2 -5
  582. package/types/ngwr-i18n-cs.d.ts +2 -5
  583. package/types/ngwr-i18n-de.d.ts +2 -5
  584. package/types/ngwr-i18n-en.d.ts +2 -5
  585. package/types/ngwr-i18n-es.d.ts +2 -5
  586. package/types/ngwr-i18n-fr.d.ts +2 -5
  587. package/types/ngwr-i18n-he.d.ts +2 -5
  588. package/types/ngwr-i18n-hi.d.ts +2 -5
  589. package/types/ngwr-i18n-id.d.ts +2 -5
  590. package/types/ngwr-i18n-it.d.ts +2 -5
  591. package/types/ngwr-i18n-ja.d.ts +2 -5
  592. package/types/ngwr-i18n-ko.d.ts +2 -5
  593. package/types/ngwr-i18n-nl.d.ts +2 -5
  594. package/types/ngwr-i18n-pl.d.ts +2 -5
  595. package/types/ngwr-i18n-pt.d.ts +2 -5
  596. package/types/ngwr-i18n-ru.d.ts +2 -5
  597. package/types/ngwr-i18n-sv.d.ts +2 -5
  598. package/types/ngwr-i18n-tr.d.ts +2 -5
  599. package/types/ngwr-i18n-uk.d.ts +2 -5
  600. package/types/ngwr-i18n-vi.d.ts +2 -5
  601. package/types/ngwr-i18n-zh-TW.d.ts +2 -5
  602. package/types/ngwr-i18n-zh.d.ts +2 -5
  603. package/types/ngwr-i18n.d.ts +202 -246
  604. package/types/ngwr-icon-adapters-feather.d.ts +2 -11
  605. package/types/ngwr-icon-adapters-lucide.d.ts +2 -12
  606. package/types/ngwr-icon.d.ts +62 -84
  607. package/types/ngwr-image-cropper-testing.d.ts +116 -134
  608. package/types/ngwr-image-cropper.d.ts +287 -252
  609. package/types/ngwr-input-number-testing.d.ts +164 -182
  610. package/types/ngwr-input-number.d.ts +238 -150
  611. package/types/ngwr-input-otp-testing.d.ts +210 -244
  612. package/types/ngwr-input-otp.d.ts +175 -123
  613. package/types/ngwr-input-testing.d.ts +42 -60
  614. package/types/ngwr-input.d.ts +118 -94
  615. package/types/ngwr-keyboard.d.ts +14 -12
  616. package/types/ngwr-knob-testing.d.ts +106 -124
  617. package/types/ngwr-knob.d.ts +203 -129
  618. package/types/ngwr-layout.d.ts +57 -40
  619. package/types/ngwr-lightbox-testing.d.ts +101 -119
  620. package/types/ngwr-lightbox.d.ts +140 -87
  621. package/types/ngwr-line-chart-testing.d.ts +51 -69
  622. package/types/ngwr-line-chart.d.ts +171 -134
  623. package/types/ngwr-list.d.ts +55 -27
  624. package/types/ngwr-loading-bar-router.d.ts +2 -12
  625. package/types/ngwr-loading-bar.d.ts +45 -39
  626. package/types/ngwr-markdown-testing.d.ts +323 -350
  627. package/types/ngwr-markdown.d.ts +432 -318
  628. package/types/ngwr-marquee-testing.d.ts +190 -216
  629. package/types/ngwr-marquee.d.ts +127 -75
  630. package/types/ngwr-media.d.ts +25 -39
  631. package/types/ngwr-mention-testing.d.ts +274 -300
  632. package/types/ngwr-mention.d.ts +249 -164
  633. package/types/ngwr-meta.d.ts +93 -108
  634. package/types/ngwr-meter-group-testing.d.ts +33 -51
  635. package/types/ngwr-meter-group.d.ts +86 -60
  636. package/types/ngwr-overlay.d.ts +57 -132
  637. package/types/ngwr-page-header.d.ts +32 -19
  638. package/types/ngwr-pagination-testing.d.ts +215 -233
  639. package/types/ngwr-pagination.d.ts +213 -141
  640. package/types/ngwr-pipes.d.ts +67 -84
  641. package/types/ngwr-platform.d.ts +52 -57
  642. package/types/ngwr-popconfirm-testing.d.ts +181 -199
  643. package/types/ngwr-popconfirm.d.ts +151 -82
  644. package/types/ngwr-popover-testing.d.ts +183 -201
  645. package/types/ngwr-popover.d.ts +291 -207
  646. package/types/ngwr-progress.d.ts +38 -25
  647. package/types/ngwr-pull-to-refresh.d.ts +55 -40
  648. package/types/ngwr-qr.d.ts +79 -37
  649. package/types/ngwr-radio-testing.d.ts +208 -234
  650. package/types/ngwr-radio.d.ts +171 -125
  651. package/types/ngwr-rating-testing.d.ts +218 -244
  652. package/types/ngwr-rating.d.ts +154 -111
  653. package/types/ngwr-result.d.ts +85 -41
  654. package/types/ngwr-rotating-text-testing.d.ts +107 -125
  655. package/types/ngwr-rotating-text.d.ts +96 -52
  656. package/types/ngwr-schema-form.d.ts +57 -49
  657. package/types/ngwr-scroll.d.ts +27 -31
  658. package/types/ngwr-segmented-testing.d.ts +333 -359
  659. package/types/ngwr-segmented.d.ts +189 -165
  660. package/types/ngwr-select-testing.d.ts +128 -154
  661. package/types/ngwr-select.d.ts +1103 -906
  662. package/types/ngwr-shiny-text-testing.d.ts +82 -100
  663. package/types/ngwr-shiny-text.d.ts +83 -36
  664. package/types/ngwr-sidebar.d.ts +108 -93
  665. package/types/ngwr-skeleton.d.ts +34 -26
  666. package/types/ngwr-slider-testing.d.ts +228 -254
  667. package/types/ngwr-slider.d.ts +244 -186
  668. package/types/ngwr-sparkline-testing.d.ts +29 -47
  669. package/types/ngwr-sparkline.d.ts +130 -88
  670. package/types/ngwr-speed-dial-testing.d.ts +129 -155
  671. package/types/ngwr-speed-dial.d.ts +92 -57
  672. package/types/ngwr-spinner.d.ts +30 -23
  673. package/types/ngwr-splash-cursor-testing.d.ts +42 -60
  674. package/types/ngwr-splash-cursor.d.ts +129 -61
  675. package/types/ngwr-split-text-testing.d.ts +119 -137
  676. package/types/ngwr-split-text.d.ts +120 -71
  677. package/types/ngwr-splitter-testing.d.ts +114 -132
  678. package/types/ngwr-splitter.d.ts +85 -55
  679. package/types/ngwr-spotlight-card-testing.d.ts +177 -203
  680. package/types/ngwr-spotlight-card.d.ts +50 -32
  681. package/types/ngwr-squircle.d.ts +112 -70
  682. package/types/ngwr-star-border-testing.d.ts +74 -92
  683. package/types/ngwr-star-border.d.ts +42 -20
  684. package/types/ngwr-statistic.d.ts +210 -130
  685. package/types/ngwr-stepper-testing.d.ts +258 -284
  686. package/types/ngwr-stepper.d.ts +112 -75
  687. package/types/ngwr-storage.d.ts +96 -118
  688. package/types/ngwr-switch-testing.d.ts +26 -44
  689. package/types/ngwr-switch.d.ts +99 -62
  690. package/types/ngwr-table-testing.d.ts +291 -333
  691. package/types/ngwr-table.d.ts +930 -707
  692. package/types/ngwr-tabs-router.d.ts +21 -24
  693. package/types/ngwr-tabs-testing.d.ts +354 -380
  694. package/types/ngwr-tabs.d.ts +169 -155
  695. package/types/ngwr-textarea-testing.d.ts +123 -141
  696. package/types/ngwr-textarea.d.ts +166 -105
  697. package/types/ngwr-theme.d.ts +81 -163
  698. package/types/ngwr-tilt-card-testing.d.ts +94 -112
  699. package/types/ngwr-tilt-card.d.ts +64 -35
  700. package/types/ngwr-timeline.d.ts +36 -19
  701. package/types/ngwr-toast-testing.d.ts +37 -55
  702. package/types/ngwr-toast.d.ts +165 -209
  703. package/types/ngwr-toolbar.d.ts +17 -14
  704. package/types/ngwr-tour-testing.d.ts +84 -102
  705. package/types/ngwr-tour.d.ts +142 -144
  706. package/types/ngwr-transfer-testing.d.ts +293 -328
  707. package/types/ngwr-transfer.d.ts +228 -159
  708. package/types/ngwr-tree-testing.d.ts +428 -454
  709. package/types/ngwr-tree.d.ts +407 -296
  710. package/types/ngwr-typewriter-testing.d.ts +125 -143
  711. package/types/ngwr-typewriter.d.ts +137 -63
  712. package/types/ngwr-typography.d.ts +49 -27
  713. package/types/ngwr-utils.d.ts +100 -107
  714. package/types/ngwr-validators.d.ts +94 -104
  715. package/types/ngwr-version.d.ts +3 -14
  716. package/types/ngwr-virtual-scroll.d.ts +86 -58
  717. package/types/ngwr-waves-testing.d.ts +61 -79
  718. package/types/ngwr-waves.d.ts +116 -63
  719. package/types/ngwr-window-testing.d.ts +178 -204
  720. package/types/ngwr-window.d.ts +299 -325
  721. package/types/ngwr.d.ts +1 -2
  722. package/fesm2022/ngwr.mjs.map +0 -1
@@ -1,433 +1,410 @@
1
- import { Directionality } from '@angular/cdk/bidi';
2
- import { NgTemplateOutlet } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { InjectionToken, input, viewChild, TemplateRef, inject, DestroyRef, computed, ViewEncapsulation, Component, model, contentChildren, signal, effect, afterNextRender, forwardRef } from '@angular/core';
5
- import { coerceBooleanProperty } from '@angular/cdk/coercion';
6
- import { randomId } from 'ngwr/utils';
7
-
8
- /**
9
- * @license
10
- *
11
- * Use of this source code is governed by an MIT-style license that can be
12
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
13
- */
14
- /**
15
- * Token a `<wr-tab>` injects to register itself with — and read the active
16
- * key from — its parent `<wr-tabs>` host.
17
- *
18
- * @internal
19
- */
20
- const WR_TABS = new InjectionToken('WR_TABS');
21
-
1
+ import { Directionality } from "@angular/cdk/bidi";
2
+ import { NgTemplateOutlet } from "@angular/common";
3
+ import * as i0 from "@angular/core";
4
+ import { Component, DestroyRef, InjectionToken, TemplateRef, ViewEncapsulation, afterNextRender, computed, contentChildren, effect, forwardRef, inject, input, model, signal, viewChild } from "@angular/core";
5
+ import { coerceBooleanProperty } from "@angular/cdk/coercion";
6
+ import { randomId } from "ngwr/utils";
22
7
  /**
23
- * @license
24
- *
25
- * Use of this source code is governed by an MIT-style license that can be
26
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
27
- */
8
+ * @license
9
+ *
10
+ * Use of this source code is governed by an MIT-style license that can be
11
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
12
+ */
13
+ const WR_TABS = new InjectionToken("WR_TABS");
28
14
  /**
29
- * Token a `<wr-tabs>` reads to find out whether router tabs are usable. Provided
30
- * by the `WrTabsRouting` directive from `ngwr/tabs/router`; absent by default,
31
- * which is what keeps `@angular/router` out of a content-only strip.
32
- */
33
- const WR_TABS_ROUTING = new InjectionToken('WR_TABS_ROUTING');
34
-
35
- /**
36
- * @license
37
- *
38
- * Use of this source code is governed by an MIT-style license that can be
39
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
40
- */
41
- /**
42
- * Single tab. Two modes, decided by inputs:
43
- *
44
- * - **Content tab** — projected children render in the parent's content
45
- * panel when this tab is active.
46
- * - **Router tab** — set `routerLink` and the tab becomes a link; the
47
- * parent skips its content panel and the consumer drops a
48
- * `<router-outlet>` below the tab strip. Router mode needs the
49
- * `WrTabsRouting` directive from `ngwr/tabs/router` in the same
50
- * `imports: []`; without it a strip carrying a `routerLink` throws.
51
- */
52
- class WrTab {
53
- /** Visible label on the tab strip. */
54
- title = input.required(/* @ts-ignore */
55
- ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
56
- /**
57
- * Stable identifier used by the parent to track the active tab.
58
- * Auto-generated if omitted.
59
- */
60
- key = input(randomId('wr-tab'), /* @ts-ignore */
61
- ...(ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []));
62
- /** Router target — when set, the tab becomes a `[routerLink]` link. */
63
- routerLink = input(null, /* @ts-ignore */
64
- ...(ngDevMode ? [{ debugName: "routerLink" }] : /* istanbul ignore next */ []));
65
- /** Disable the tab. */
66
- disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: coerceBooleanProperty });
67
- /** Tab content template; portaled into the parent's panel area. @internal */
68
- contentTpl = viewChild.required(TemplateRef, /* @ts-ignore */
69
- ...(ngDevMode ? [{ debugName: "contentTpl" }] : /* istanbul ignore next */ []));
70
- parent = inject(WR_TABS, { optional: true });
71
- destroyRef = inject(DestroyRef);
72
- /**
73
- * The routing adapter published by `WrTabsRouting` on the parent `<wr-tabs>`
74
- * element. A `<wr-tab>` is DECLARED inside `<wr-tabs>` in the consumer's
75
- * template — content projection moves where it renders, not where it injects
76
- * — so the parent's element injector is this one's, the same walk that
77
- * resolves `WR_TABS` above.
78
- */
79
- routing = inject(WR_TABS_ROUTING, { optional: true });
80
- isRouter = computed(() => this.routerLink() !== null, /* @ts-ignore */
81
- ...(ngDevMode ? [{ debugName: "isRouter" }] : /* istanbul ignore next */ []));
82
- /**
83
- * Resolved href for a router tab — `null` for a content tab, and for a
84
- * disabled one, which is how the anchor stops navigating at all.
85
- * @internal
86
- */
87
- routerHref = computed(() => {
88
- const link = this.routerLink();
89
- if (link === null || this.disabled())
90
- return null;
91
- return this.routing?.href(link) ?? null;
92
- }, /* @ts-ignore */
93
- ...(ngDevMode ? [{ debugName: "routerHref" }] : /* istanbul ignore next */ []));
94
- /**
95
- * Whether the current route selects this tab. The strip publishes it as BOTH
96
- * `aria-selected` and the `--active` class, off this one read, so the
97
- * announced selection and the painted one cannot drift apart.
98
- * @internal
99
- */
100
- routerActive = computed(() => {
101
- const link = this.routerLink();
102
- if (link === null || this.disabled())
103
- return false;
104
- return this.routing?.isActive(link) ?? false;
105
- }, /* @ts-ignore */
106
- ...(ngDevMode ? [{ debugName: "routerActive" }] : /* istanbul ignore next */ []));
107
- /** Hand a click on this tab's anchor to the routing adapter. @internal */
108
- navigate(event) {
109
- const link = this.routerLink();
110
- if (link === null || this.disabled())
111
- return;
112
- this.routing?.navigate(link, event);
113
- }
114
- constructor() {
115
- if (this.parent) {
116
- // Both calls run with the input signals still on their defaults — a
117
- // constructor is too early for `key()` to be the consumer's value. The
118
- // parent tracks tabs through `contentChildren` and seeds `active` from
119
- // there; these stay as the declared lifecycle contract.
120
- this.parent.register({ key: this.key(), routerLink: this.routerLink() });
121
- this.destroyRef.onDestroy(() => this.parent?.unregister(this.key()));
122
- }
123
- }
124
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: WrTab, deps: [], target: i0.ɵɵFactoryTarget.Component });
125
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.7", type: WrTab, isStandalone: true, selector: "wr-tab", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, key: { classPropertyName: "key", publicName: "key", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "'none'" } }, viewQueries: [{ propertyName: "contentTpl", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], ngImport: i0, template: `<ng-template><ng-content /></ng-template>`, isInline: true, encapsulation: i0.ViewEncapsulation.None });
126
- }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: WrTab, decorators: [{
128
- type: Component,
129
- args: [{
130
- selector: 'wr-tab',
131
- template: `<ng-template><ng-content /></ng-template>`,
132
- encapsulation: ViewEncapsulation.None,
133
- // A BOUND display rather than a static `style` attribute: Angular writes a
134
- // binding through `style.setProperty`, which no CSP governs, while a real
135
- // `style="…"` attribute is refused under `style-src 'self'` — and this host
136
- // would then lay out an empty box in the middle of the content.
137
- host: { '[style.display]': "'none'" },
138
- }]
139
- }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], key: [{ type: i0.Input, args: [{ isSignal: true, alias: "key", required: false }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], contentTpl: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
140
-
15
+ * @license
16
+ *
17
+ * Use of this source code is governed by an MIT-style license that can be
18
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
19
+ */
20
+ const WR_TABS_ROUTING = new InjectionToken("WR_TABS_ROUTING");
141
21
  /**
142
- * @license
143
- *
144
- * Use of this source code is governed by an MIT-style license that can be
145
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
146
- */
22
+ * @license
23
+ *
24
+ * Use of this source code is governed by an MIT-style license that can be
25
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
26
+ */
27
+ var WrTab = class WrTab {
28
+ title = input.required(...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
29
+ key = input(randomId("wr-tab"), ...ngDevMode ? [{ debugName: "key" }] : /* istanbul ignore next */ []);
30
+ routerLink = input(null, ...ngDevMode ? [{ debugName: "routerLink" }] : /* istanbul ignore next */ []);
31
+ disabled = input(false, {
32
+ ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
33
+ transform: coerceBooleanProperty
34
+ });
35
+ contentTpl = viewChild.required(TemplateRef, ...ngDevMode ? [{ debugName: "contentTpl" }] : /* istanbul ignore next */ []);
36
+ parent = inject(WR_TABS, { optional: true });
37
+ destroyRef = inject(DestroyRef);
38
+ routing = inject(WR_TABS_ROUTING, { optional: true });
39
+ isRouter = computed(() => this.routerLink() !== null, ...ngDevMode ? [{ debugName: "isRouter" }] : /* istanbul ignore next */ []);
40
+ routerHref = computed(() => {
41
+ const link = this.routerLink();
42
+ if (link === null || this.disabled()) return null;
43
+ return this.routing?.href(link) ?? null;
44
+ }, ...ngDevMode ? [{ debugName: "routerHref" }] : /* istanbul ignore next */ []);
45
+ routerActive = computed(() => {
46
+ const link = this.routerLink();
47
+ if (link === null || this.disabled()) return false;
48
+ return this.routing?.isActive(link) ?? false;
49
+ }, ...ngDevMode ? [{ debugName: "routerActive" }] : /* istanbul ignore next */ []);
50
+ navigate(event) {
51
+ const link = this.routerLink();
52
+ if (link === null || this.disabled()) return;
53
+ this.routing?.navigate(link, event);
54
+ }
55
+ constructor() {
56
+ if (this.parent) {
57
+ this.parent.register({
58
+ key: this.key(),
59
+ routerLink: this.routerLink()
60
+ });
61
+ this.destroyRef.onDestroy(() => this.parent?.unregister(this.key()));
62
+ }
63
+ }
64
+ static ɵfac = i0.ɵɵngDeclareFactory({
65
+ minVersion: "12.0.0",
66
+ version: "22.2.3",
67
+ ngImport: i0,
68
+ type: WrTab,
69
+ deps: [],
70
+ target: i0.ɵɵFactoryTarget.Component
71
+ });
72
+ static ɵcmp = i0.ɵɵngDeclareComponent({
73
+ minVersion: "17.2.0",
74
+ version: "22.2.3",
75
+ type: WrTab,
76
+ isStandalone: true,
77
+ selector: "wr-tab",
78
+ inputs: {
79
+ title: {
80
+ classPropertyName: "title",
81
+ publicName: "title",
82
+ isSignal: true,
83
+ isRequired: true,
84
+ transformFunction: null
85
+ },
86
+ key: {
87
+ classPropertyName: "key",
88
+ publicName: "key",
89
+ isSignal: true,
90
+ isRequired: false,
91
+ transformFunction: null
92
+ },
93
+ routerLink: {
94
+ classPropertyName: "routerLink",
95
+ publicName: "routerLink",
96
+ isSignal: true,
97
+ isRequired: false,
98
+ transformFunction: null
99
+ },
100
+ disabled: {
101
+ classPropertyName: "disabled",
102
+ publicName: "disabled",
103
+ isSignal: true,
104
+ isRequired: false,
105
+ transformFunction: null
106
+ }
107
+ },
108
+ host: { properties: { "style.display": "'none'" } },
109
+ viewQueries: [{
110
+ propertyName: "contentTpl",
111
+ first: true,
112
+ predicate: TemplateRef,
113
+ descendants: true,
114
+ isSignal: true
115
+ }],
116
+ ngImport: i0,
117
+ template: `<ng-template><ng-content /></ng-template>`,
118
+ isInline: true,
119
+ encapsulation: i0.ViewEncapsulation.None
120
+ });
121
+ };
122
+ i0.ɵɵngDeclareClassMetadata({
123
+ minVersion: "12.0.0",
124
+ version: "22.2.3",
125
+ ngImport: i0,
126
+ type: WrTab,
127
+ decorators: [{
128
+ type: Component,
129
+ args: [{
130
+ selector: "wr-tab",
131
+ template: `<ng-template><ng-content /></ng-template>`,
132
+ encapsulation: ViewEncapsulation.None,
133
+ host: { "[style.display]": "'none'" }
134
+ }]
135
+ }],
136
+ ctorParameters: () => [],
137
+ propDecorators: {
138
+ title: [{
139
+ type: i0.Input,
140
+ args: [{
141
+ isSignal: true,
142
+ alias: "title",
143
+ required: true
144
+ }]
145
+ }],
146
+ key: [{
147
+ type: i0.Input,
148
+ args: [{
149
+ isSignal: true,
150
+ alias: "key",
151
+ required: false
152
+ }]
153
+ }],
154
+ routerLink: [{
155
+ type: i0.Input,
156
+ args: [{
157
+ isSignal: true,
158
+ alias: "routerLink",
159
+ required: false
160
+ }]
161
+ }],
162
+ disabled: [{
163
+ type: i0.Input,
164
+ args: [{
165
+ isSignal: true,
166
+ alias: "disabled",
167
+ required: false
168
+ }]
169
+ }],
170
+ contentTpl: [{
171
+ type: i0.ViewChild,
172
+ args: [i0.forwardRef(() => TemplateRef), { isSignal: true }]
173
+ }]
174
+ }
175
+ });
147
176
  /**
148
- * Instance counter for the header / panel ids. Deterministic under prerender,
149
- * unlike `randomId()` — the same reason `wr-sidebar` and `wr-mention` count.
150
- *
151
- * The ids used to be built from the tab key alone, so two `<wr-tabs>` on one
152
- * page that both name a tab `key="overview"` emitted the same
153
- * `wr-tab-overview-header` twice, and the second group's `aria-labelledby`
154
- * resolved to the FIRST group's tab. A key is documented as parent-scoped, so
155
- * it is the parent that has to make it unique document-wide.
156
- */
177
+ * @license
178
+ *
179
+ * Use of this source code is governed by an MIT-style license that can be
180
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
181
+ */
157
182
  let tabsUid = 0;
158
- /**
159
- * A tab key as an id fragment: anything outside `[A-Za-z0-9_-]` becomes `-`.
160
- * These ids land in `aria-controls` / `aria-labelledby`, which are
161
- * space-separated IDREF lists — `key="my tab"` emitted
162
- * `aria-controls="wr-tab-my tab-panel"`, two tokens, neither of which resolves.
163
- *
164
- * Two keys differing only outside that set collapse to one fragment; the
165
- * instance counter keeps that inside a single group, where the keys are the
166
- * consumer's own to keep apart.
167
- */
168
183
  function idFragment(key) {
169
- return key.replace(/[^A-Za-z0-9_-]/g, '-');
170
- }
171
- /**
172
- * Tabbed container. Two modes depending on the child `<wr-tab>`
173
- * definitions:
174
- *
175
- * - **Content** — children project body content; the parent renders an
176
- * active-tab panel automatically.
177
- * - **Router** — any child with `routerLink` switches the whole strip
178
- * into router mode; the parent skips its panel so the consumer can
179
- * drop a `<router-outlet>` after it. That mode needs the `WrTabsRouting`
180
- * directive from `ngwr/tabs/router` alongside `WrTabs` in `imports: []`
181
- * — the strip itself names no `@angular/router` symbol, which is what
182
- * keeps a content-only strip free of the router.
183
- *
184
- * @example
185
- * ```html
186
- * <!-- content tabs -->
187
- * <wr-tabs [(active)]="key">
188
- * <wr-tab key="one" title="One">First panel</wr-tab>
189
- * <wr-tab key="two" title="Two">Second panel</wr-tab>
190
- * </wr-tabs>
191
- *
192
- * <!-- router tabs: imports: [WrTabs, WrTab, WrTabsRouting] -->
193
- * <wr-tabs>
194
- * <wr-tab title="Overview" routerLink="overview" />
195
- * <wr-tab title="Details" routerLink="details" />
196
- * </wr-tabs>
197
- * <router-outlet />
198
- * ```
199
- *
200
- * @see https://ngwr.dev/reference/components/tabs
201
- */
202
- class WrTabs {
203
- /** Two-way bindable active tab key (content mode). */
204
- active = model(null, /* @ts-ignore */
205
- ...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
206
- /** Visual size variant. */
207
- size = input('md', /* @ts-ignore */
208
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
209
- tabs = contentChildren(WrTab, /* @ts-ignore */
210
- ...(ngDevMode ? [{ debugName: "tabs" }] : /* istanbul ignore next */ []));
211
- dir = inject(Directionality, { optional: true });
212
- /**
213
- * Reading direction of the strip. `Directionality` is root-provided, so this
214
- * always resolves — `optional` only guards a consumer who has deliberately
215
- * torn the provider out. It reads the document once at construction; a
216
- * subtree that overrides the direction does it with the CDK's `Dir`
217
- * directive, which writes `valueSignal`, so the read stays reactive.
218
- */
219
- isRtl = computed(() => this.dir?.valueSignal() === 'rtl', /* @ts-ignore */
220
- ...(ngDevMode ? [{ debugName: "isRtl" }] : /* istanbul ignore next */ []));
221
- /**
222
- * The routing adapter, when `WrTabsRouting` from `ngwr/tabs/router` is in the
223
- * consumer's `imports`. `null` is the default and the whole point: the strip
224
- * has no `@angular/router` import of its own, so a content-only tab strip
225
- * costs no router bytes.
226
- */
227
- routing = inject(WR_TABS_ROUTING, { optional: true });
228
- /**
229
- * When any child has a routerLink, the whole strip switches to router mode.
230
- *
231
- * Throws rather than degrading when the adapter is missing. Falling back to
232
- * content mode would render the tabs as `<button>`s that navigate nowhere and
233
- * open an empty panel — a strip that looks right and does nothing, with the
234
- * one missing import unnamed. The route is what selects a tab here, so there
235
- * is no half of this that still works.
236
- */
237
- isRouter = computed(() => {
238
- const isRouter = this.tabs().some(t => t.routerLink() !== null);
239
- if (isRouter && !this.routing) {
240
- throw new Error('<wr-tabs>: a <wr-tab> sets `routerLink`, but no routing adapter is provided. ' +
241
- "Add `WrTabsRouting` from 'ngwr/tabs/router' to the `imports` of the component that " +
242
- 'declares this strip.');
243
- }
244
- return isRouter;
245
- }, /* @ts-ignore */
246
- ...(ngDevMode ? [{ debugName: "isRouter" }] : /* istanbul ignore next */ []));
247
- /** Content-mode: the tab whose key matches `active()` (or the first tab if none yet). */
248
- activeTab = computed(() => {
249
- const key = this.active();
250
- const tabs = this.tabs();
251
- if (tabs.length === 0)
252
- return null;
253
- return tabs.find(t => t.key() === key) ?? tabs[0];
254
- }, /* @ts-ignore */
255
- ...(ngDevMode ? [{ debugName: "activeTab" }] : /* istanbul ignore next */ []));
256
- // WrTabsContext
257
- activate(key) {
258
- this.active.set(key);
259
- }
260
- register() {
261
- // Deliberately a no-op. A `WrTab` calls this from its own constructor,
262
- // where its `key` signal input is not bound yet — so it would report the
263
- // generated default and this parent would write THAT into `active`. The
264
- // effect below seeds from `tabs()`, by which point the inputs are real.
265
- }
266
- unregister() {
267
- // No-op: contentChildren handles removal.
268
- }
269
- // Template handlers
270
- stripRef = viewChild('strip', /* @ts-ignore */
271
- ...(ngDevMode ? [{ debugName: "stripRef" }] : /* istanbul ignore next */ []));
272
- /** Whether the strip is scrolled away from its start / end — drives the edge fades. */
273
- canScrollStart = signal(false, /* @ts-ignore */
274
- ...(ngDevMode ? [{ debugName: "canScrollStart" }] : /* istanbul ignore next */ []));
275
- canScrollEnd = signal(false, /* @ts-ignore */
276
- ...(ngDevMode ? [{ debugName: "canScrollEnd" }] : /* istanbul ignore next */ []));
277
- constructor() {
278
- // Seed `active` with the first tab's key, once the content children exist
279
- // and their inputs are bound. Without this the model writes back a
280
- // generated id like `wr-tab-b1crta5aix0v`: the strip still highlighted the
281
- // right tab, because `activeTab()` falls back to `tabs[0]`, so the only
282
- // visible symptom was a two-way binding holding a key the consumer had
283
- // never heard of.
284
- effect(() => {
285
- const tabs = this.tabs();
286
- if (tabs.length > 0 && this.active() === null)
287
- this.active.set(tabs[0].key());
288
- });
289
- const destroyRef = inject(DestroyRef);
290
- afterNextRender(() => {
291
- this.updateFades();
292
- const el = this.stripRef()?.nativeElement;
293
- if (!el || typeof ResizeObserver === 'undefined')
294
- return;
295
- // Re-evaluate when the strip's width changes (e.g. the container narrows
296
- // and the tabs start overflowing).
297
- const ro = new ResizeObserver(() => this.updateFades());
298
- ro.observe(el);
299
- destroyRef.onDestroy(() => ro.disconnect());
300
- });
301
- }
302
- /** Recompute which edges can scroll, from the strip's scroll metrics. @internal */
303
- updateFades() {
304
- const el = this.stripRef()?.nativeElement;
305
- if (!el)
306
- return;
307
- const max = el.scrollWidth - el.clientWidth;
308
- // Distance from the INLINE start, which is what the two fades mean.
309
- // `scrollLeft` is 0 at the inline start in BOTH directions and counts away
310
- // from it — up in LTR, DOWN into negatives under `dir="rtl"` (the CSSOM
311
- // model every engine Angular 22 supports now implements; the legacy
312
- // "reversed"/"normal" RTL conventions are gone). Read raw, the RTL value
313
- // said "never scrolled from the start, always more to come" at every
314
- // position: the end fade was pinned on and the start fade never appeared.
315
- //
316
- // Clamped rather than `Math.abs`, because an elastic overscroll reports a
317
- // value of the WRONG sign at the start edge — a rubber-band past the start
318
- // is still the start, and `abs` would light the start fade there in LTR too.
319
- const scrolled = this.isRtl() ? Math.max(-el.scrollLeft, 0) : Math.max(el.scrollLeft, 0);
320
- this.canScrollStart.set(scrolled > 1);
321
- this.canScrollEnd.set(max > 1 && scrolled < max - 1);
322
- }
323
- onTabClick(tab) {
324
- if (tab.disabled())
325
- return;
326
- if (!this.isRouter())
327
- this.activate(tab.key());
328
- }
329
- /**
330
- * Click on a router tab's anchor. The anchor carries a real `href`, so a
331
- * modified or middle click is left alone and the browser opens it the way it
332
- * opens any link; only a plain left click is turned into a navigation.
333
- */
334
- onRouterTabClick(tab, event) {
335
- tab.navigate(event);
336
- }
337
- /** Per-instance prefix, so keys only have to be unique within one group. */
338
- uid = ++tabsUid;
339
- /** Header id for `aria-labelledby` on the panel. @internal */
340
- headerId(key) {
341
- return `wr-tabs-${this.uid}-tab-${idFragment(key)}-header`;
342
- }
343
- /** Panel id for `aria-controls` on the tab header. @internal */
344
- panelId(key) {
345
- return `wr-tabs-${this.uid}-tab-${idFragment(key)}-panel`;
346
- }
347
- /** ArrowLeft/Right/Home/End keyboard navigation on the tab strip. */
348
- onStripKeydown(event) {
349
- const tabs = this.tabs().filter(t => !t.disabled());
350
- if (tabs.length === 0)
351
- return;
352
- // Step from where FOCUS is, not from what is active.
353
- //
354
- // In router mode nothing ever moves `active` — `onTabClick` and this
355
- // handler both gate `activate()` on `!isRouter()`, because the route is
356
- // what selects a tab there. Reading the neighbour off `activeTab()`
357
- // therefore recomputed the same `idx` on every press, and ArrowRight
358
- // walked from the first tab to the second and stayed there for the rest of
359
- // the session. In manual mode focus and activation move together, so the
360
- // two readings agree and nothing changes.
361
- const strip = this.stripRef()?.nativeElement;
362
- const focused = strip?.ownerDocument.activeElement;
363
- const focusedIdx = focused instanceof HTMLElement && strip?.contains(focused)
364
- ? tabs.findIndex(t => this.headerId(t.key()) === focused.id)
365
- : -1;
366
- const active = this.activeTab();
367
- const idx = focusedIdx >= 0 ? focusedIdx : active ? tabs.indexOf(active) : -1;
368
- // The two neighbours in DOM order, wrapping at the ends.
369
- const forward = idx < tabs.length - 1 ? idx + 1 : 0;
370
- const backward = idx > 0 ? idx - 1 : tabs.length - 1;
371
- const rtl = this.isRtl();
372
- let nextIdx;
373
- switch (event.key) {
374
- // Arrow keys follow VISUAL order (WAI-ARIA APG). The strip is mirrored
375
- // under `dir="rtl"`, so ArrowRight moves toward the visual right, which is
376
- // the PREVIOUS tab there.
377
- case 'ArrowRight':
378
- nextIdx = rtl ? backward : forward;
379
- break;
380
- case 'ArrowLeft':
381
- nextIdx = rtl ? forward : backward;
382
- break;
383
- // Home / End name a position in the tab list — first and last — not a
384
- // physical edge, so they read the same in both directions.
385
- case 'Home':
386
- nextIdx = 0;
387
- break;
388
- case 'End':
389
- nextIdx = tabs.length - 1;
390
- break;
391
- default:
392
- return;
393
- }
394
- event.preventDefault();
395
- const next = tabs[nextIdx];
396
- if (!this.isRouter())
397
- this.activate(next.key());
398
- // Move focus to the corresponding header element.
399
- const headerEl = this.stripRef()?.nativeElement.querySelector(`#${CSS.escape(this.headerId(next.key()))}`);
400
- headerEl?.focus();
401
- }
402
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: WrTabs, deps: [], target: i0.ɵɵFactoryTarget.Component });
403
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: WrTabs, isStandalone: true, selector: "wr-tabs", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange" }, host: { properties: { "class.wr-tabs--fade-start": "canScrollStart()", "class.wr-tabs--fade-end": "canScrollEnd()", "class.wr-tabs--sm": "size() === 'sm'", "class.wr-tabs--lg": "size() === 'lg'" }, classAttribute: "wr-tabs" }, providers: [
404
- {
405
- provide: WR_TABS,
406
- // eslint-disable-next-line @angular-eslint/no-forward-ref
407
- useExisting: forwardRef(() => WrTabs),
408
- },
409
- ], queries: [{ propertyName: "tabs", predicate: WrTab, isSignal: true }], viewQueries: [{ propertyName: "stripRef", first: true, predicate: ["strip"], descendants: true, isSignal: true }], ngImport: i0, template: "<!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->\n<div\n #strip\n class=\"wr-tabs__strip\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n (keydown)=\"onStripKeydown($event)\"\n (scroll)=\"updateFades()\"\n>\n @for (tab of tabs(); track tab.key()) {\n @if (tab.routerLink() !== null) {\n <!--\n `aria-selected` and `--active` come off the SAME `tab.routerActive()`, so the\n announced state and the painted one can never disagree. Without it a\n `role=\"tablist\"` shipped with no tab selected in any of them: the route decides\n here, and the class it paints is invisible to assistive tech.\n\n A real `href` rather than a `[routerLink]`: the directive would drag\n `@angular/router` into every content-only strip as well (see `WR_TABS_ROUTING`).\n The href, the active match and the click all come from the adapter the\n `ngwr/tabs/router` directive publishes, which is `RouterLink` doing the work.\n -->\n <a\n class=\"wr-tabs__tab\"\n role=\"tab\"\n [attr.id]=\"headerId(tab.key())\"\n [attr.href]=\"tab.routerHref()\"\n [class.wr-tabs__tab--active]=\"tab.routerActive()\"\n [class.wr-tabs__tab--disabled]=\"tab.disabled()\"\n [attr.aria-disabled]=\"tab.disabled() ? true : null\"\n [attr.aria-selected]=\"tab.routerActive()\"\n [attr.tabindex]=\"tab.disabled() ? -1 : 0\"\n (click)=\"onRouterTabClick(tab, $event)\"\n >\n {{ tab.title() }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"wr-tabs__tab\"\n role=\"tab\"\n [attr.id]=\"headerId(tab.key())\"\n [attr.aria-controls]=\"panelId(tab.key())\"\n [attr.tabindex]=\"tab === activeTab() && !tab.disabled() ? 0 : -1\"\n [class.wr-tabs__tab--active]=\"tab === activeTab()\"\n [class.wr-tabs__tab--disabled]=\"tab.disabled()\"\n [attr.aria-selected]=\"tab === activeTab()\"\n [disabled]=\"tab.disabled()\"\n (click)=\"onTabClick(tab)\"\n >\n {{ tab.title() }}\n </button>\n }\n }\n</div>\n\n@if (!isRouter() && activeTab(); as tab) {\n <div\n class=\"wr-tabs__panel\"\n role=\"tabpanel\"\n tabindex=\"0\"\n [attr.id]=\"panelId(tab.key())\"\n [attr.aria-labelledby]=\"headerId(tab.key())\"\n >\n <ng-container [ngTemplateOutlet]=\"tab.contentTpl()\" />\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
184
+ return key.replace(/[^A-Za-z0-9_-]/g, "-");
410
185
  }
411
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: WrTabs, decorators: [{
412
- type: Component,
413
- args: [{ selector: 'wr-tabs', encapsulation: ViewEncapsulation.None, host: {
414
- class: 'wr-tabs',
415
- '[class.wr-tabs--fade-start]': 'canScrollStart()',
416
- '[class.wr-tabs--fade-end]': 'canScrollEnd()',
417
- '[class.wr-tabs--sm]': "size() === 'sm'",
418
- '[class.wr-tabs--lg]': "size() === 'lg'",
419
- }, imports: [NgTemplateOutlet], providers: [
420
- {
421
- provide: WR_TABS,
422
- // eslint-disable-next-line @angular-eslint/no-forward-ref
423
- useExisting: forwardRef(() => WrTabs),
424
- },
425
- ], template: "<!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->\n<div\n #strip\n class=\"wr-tabs__strip\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n (keydown)=\"onStripKeydown($event)\"\n (scroll)=\"updateFades()\"\n>\n @for (tab of tabs(); track tab.key()) {\n @if (tab.routerLink() !== null) {\n <!--\n `aria-selected` and `--active` come off the SAME `tab.routerActive()`, so the\n announced state and the painted one can never disagree. Without it a\n `role=\"tablist\"` shipped with no tab selected in any of them: the route decides\n here, and the class it paints is invisible to assistive tech.\n\n A real `href` rather than a `[routerLink]`: the directive would drag\n `@angular/router` into every content-only strip as well (see `WR_TABS_ROUTING`).\n The href, the active match and the click all come from the adapter the\n `ngwr/tabs/router` directive publishes, which is `RouterLink` doing the work.\n -->\n <a\n class=\"wr-tabs__tab\"\n role=\"tab\"\n [attr.id]=\"headerId(tab.key())\"\n [attr.href]=\"tab.routerHref()\"\n [class.wr-tabs__tab--active]=\"tab.routerActive()\"\n [class.wr-tabs__tab--disabled]=\"tab.disabled()\"\n [attr.aria-disabled]=\"tab.disabled() ? true : null\"\n [attr.aria-selected]=\"tab.routerActive()\"\n [attr.tabindex]=\"tab.disabled() ? -1 : 0\"\n (click)=\"onRouterTabClick(tab, $event)\"\n >\n {{ tab.title() }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"wr-tabs__tab\"\n role=\"tab\"\n [attr.id]=\"headerId(tab.key())\"\n [attr.aria-controls]=\"panelId(tab.key())\"\n [attr.tabindex]=\"tab === activeTab() && !tab.disabled() ? 0 : -1\"\n [class.wr-tabs__tab--active]=\"tab === activeTab()\"\n [class.wr-tabs__tab--disabled]=\"tab.disabled()\"\n [attr.aria-selected]=\"tab === activeTab()\"\n [disabled]=\"tab.disabled()\"\n (click)=\"onTabClick(tab)\"\n >\n {{ tab.title() }}\n </button>\n }\n }\n</div>\n\n@if (!isRouter() && activeTab(); as tab) {\n <div\n class=\"wr-tabs__panel\"\n role=\"tabpanel\"\n tabindex=\"0\"\n [attr.id]=\"panelId(tab.key())\"\n [attr.aria-labelledby]=\"headerId(tab.key())\"\n >\n <ng-container [ngTemplateOutlet]=\"tab.contentTpl()\" />\n </div>\n}\n" }]
426
- }], ctorParameters: () => [], propDecorators: { active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }, { type: i0.Output, args: ["activeChange"] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], tabs: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => WrTab), { isSignal: true }] }], stripRef: [{ type: i0.ViewChild, args: ['strip', { isSignal: true }] }] } });
427
-
428
- /**
429
- * Generated bundle index. Do not edit.
430
- */
431
-
186
+ var WrTabs = class WrTabs {
187
+ active = model(null, ...ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []);
188
+ size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
189
+ tabs = contentChildren(WrTab, ...ngDevMode ? [{ debugName: "tabs" }] : /* istanbul ignore next */ []);
190
+ dir = inject(Directionality, { optional: true });
191
+ isRtl = computed(() => this.dir?.valueSignal() === "rtl", ...ngDevMode ? [{ debugName: "isRtl" }] : /* istanbul ignore next */ []);
192
+ routing = inject(WR_TABS_ROUTING, { optional: true });
193
+ isRouter = computed(() => {
194
+ const isRouter = this.tabs().some((t) => t.routerLink() !== null);
195
+ if (isRouter && !this.routing) throw new Error("<wr-tabs>: a <wr-tab> sets `routerLink`, but no routing adapter is provided. Add `WrTabsRouting` from 'ngwr/tabs/router' to the `imports` of the component that declares this strip.");
196
+ return isRouter;
197
+ }, ...ngDevMode ? [{ debugName: "isRouter" }] : /* istanbul ignore next */ []);
198
+ activeTab = computed(() => {
199
+ const key = this.active();
200
+ const tabs = this.tabs();
201
+ if (tabs.length === 0) return null;
202
+ return tabs.find((t) => t.key() === key) ?? tabs[0];
203
+ }, ...ngDevMode ? [{ debugName: "activeTab" }] : /* istanbul ignore next */ []);
204
+ activate(key) {
205
+ this.active.set(key);
206
+ }
207
+ register() {}
208
+ unregister() {}
209
+ stripRef = viewChild("strip", ...ngDevMode ? [{ debugName: "stripRef" }] : /* istanbul ignore next */ []);
210
+ canScrollStart = signal(false, ...ngDevMode ? [{ debugName: "canScrollStart" }] : /* istanbul ignore next */ []);
211
+ canScrollEnd = signal(false, ...ngDevMode ? [{ debugName: "canScrollEnd" }] : /* istanbul ignore next */ []);
212
+ constructor() {
213
+ effect(() => {
214
+ const tabs = this.tabs();
215
+ if (tabs.length > 0 && this.active() === null) this.active.set(tabs[0].key());
216
+ });
217
+ const destroyRef = inject(DestroyRef);
218
+ afterNextRender(() => {
219
+ this.updateFades();
220
+ const el = this.stripRef()?.nativeElement;
221
+ if (!el || typeof ResizeObserver === "undefined") return;
222
+ const ro = new ResizeObserver(() => this.updateFades());
223
+ ro.observe(el);
224
+ destroyRef.onDestroy(() => ro.disconnect());
225
+ });
226
+ }
227
+ updateFades() {
228
+ const el = this.stripRef()?.nativeElement;
229
+ if (!el) return;
230
+ const max = el.scrollWidth - el.clientWidth;
231
+ const scrolled = this.isRtl() ? Math.max(-el.scrollLeft, 0) : Math.max(el.scrollLeft, 0);
232
+ this.canScrollStart.set(scrolled > 1);
233
+ this.canScrollEnd.set(max > 1 && scrolled < max - 1);
234
+ }
235
+ onTabClick(tab) {
236
+ if (tab.disabled()) return;
237
+ if (!this.isRouter()) this.activate(tab.key());
238
+ }
239
+ onRouterTabClick(tab, event) {
240
+ tab.navigate(event);
241
+ }
242
+ uid = ++tabsUid;
243
+ headerId(key) {
244
+ return `wr-tabs-${this.uid}-tab-${idFragment(key)}-header`;
245
+ }
246
+ panelId(key) {
247
+ return `wr-tabs-${this.uid}-tab-${idFragment(key)}-panel`;
248
+ }
249
+ onStripKeydown(event) {
250
+ const tabs = this.tabs().filter((t) => !t.disabled());
251
+ if (tabs.length === 0) return;
252
+ const strip = this.stripRef()?.nativeElement;
253
+ const focused = strip?.ownerDocument.activeElement;
254
+ const focusedIdx = focused instanceof HTMLElement && strip?.contains(focused) ? tabs.findIndex((t) => this.headerId(t.key()) === focused.id) : -1;
255
+ const active = this.activeTab();
256
+ const idx = focusedIdx >= 0 ? focusedIdx : active ? tabs.indexOf(active) : -1;
257
+ const forward = idx < tabs.length - 1 ? idx + 1 : 0;
258
+ const backward = idx > 0 ? idx - 1 : tabs.length - 1;
259
+ const rtl = this.isRtl();
260
+ let nextIdx;
261
+ switch (event.key) {
262
+ case "ArrowRight":
263
+ nextIdx = rtl ? backward : forward;
264
+ break;
265
+ case "ArrowLeft":
266
+ nextIdx = rtl ? forward : backward;
267
+ break;
268
+ case "Home":
269
+ nextIdx = 0;
270
+ break;
271
+ case "End":
272
+ nextIdx = tabs.length - 1;
273
+ break;
274
+ default: return;
275
+ }
276
+ event.preventDefault();
277
+ const next = tabs[nextIdx];
278
+ if (!this.isRouter()) this.activate(next.key());
279
+ (this.stripRef()?.nativeElement.querySelector(`#${CSS.escape(this.headerId(next.key()))}`))?.focus();
280
+ }
281
+ static ɵfac = i0.ɵɵngDeclareFactory({
282
+ minVersion: "12.0.0",
283
+ version: "22.2.3",
284
+ ngImport: i0,
285
+ type: WrTabs,
286
+ deps: [],
287
+ target: i0.ɵɵFactoryTarget.Component
288
+ });
289
+ static ɵcmp = i0.ɵɵngDeclareComponent({
290
+ minVersion: "17.0.0",
291
+ version: "22.2.3",
292
+ type: WrTabs,
293
+ isStandalone: true,
294
+ selector: "wr-tabs",
295
+ inputs: {
296
+ active: {
297
+ classPropertyName: "active",
298
+ publicName: "active",
299
+ isSignal: true,
300
+ isRequired: false,
301
+ transformFunction: null
302
+ },
303
+ size: {
304
+ classPropertyName: "size",
305
+ publicName: "size",
306
+ isSignal: true,
307
+ isRequired: false,
308
+ transformFunction: null
309
+ }
310
+ },
311
+ outputs: { active: "activeChange" },
312
+ host: {
313
+ properties: {
314
+ "class.wr-tabs--fade-start": "canScrollStart()",
315
+ "class.wr-tabs--fade-end": "canScrollEnd()",
316
+ "class.wr-tabs--sm": "size() === 'sm'",
317
+ "class.wr-tabs--lg": "size() === 'lg'"
318
+ },
319
+ classAttribute: "wr-tabs"
320
+ },
321
+ providers: [{
322
+ provide: WR_TABS,
323
+ useExisting: forwardRef(() => WrTabs)
324
+ }],
325
+ queries: [{
326
+ propertyName: "tabs",
327
+ predicate: WrTab,
328
+ isSignal: true
329
+ }],
330
+ viewQueries: [{
331
+ propertyName: "stripRef",
332
+ first: true,
333
+ predicate: ["strip"],
334
+ descendants: true,
335
+ isSignal: true
336
+ }],
337
+ ngImport: i0,
338
+ template: "<!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->\n<div\n #strip\n class=\"wr-tabs__strip\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n (keydown)=\"onStripKeydown($event)\"\n (scroll)=\"updateFades()\"\n>\n @for (tab of tabs(); track tab.key()) {\n @if (tab.routerLink() !== null) {\n <!--\n `aria-selected` and `--active` come off the SAME `tab.routerActive()`, so the\n announced state and the painted one can never disagree. Without it a\n `role=\"tablist\"` shipped with no tab selected in any of them: the route decides\n here, and the class it paints is invisible to assistive tech.\n\n A real `href` rather than a `[routerLink]`: the directive would drag\n `@angular/router` into every content-only strip as well (see `WR_TABS_ROUTING`).\n The href, the active match and the click all come from the adapter the\n `ngwr/tabs/router` directive publishes, which is `RouterLink` doing the work.\n -->\n <a\n class=\"wr-tabs__tab\"\n role=\"tab\"\n [attr.id]=\"headerId(tab.key())\"\n [attr.href]=\"tab.routerHref()\"\n [class.wr-tabs__tab--active]=\"tab.routerActive()\"\n [class.wr-tabs__tab--disabled]=\"tab.disabled()\"\n [attr.aria-disabled]=\"tab.disabled() ? true : null\"\n [attr.aria-selected]=\"tab.routerActive()\"\n [attr.tabindex]=\"tab.disabled() ? -1 : 0\"\n (click)=\"onRouterTabClick(tab, $event)\"\n >\n {{ tab.title() }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"wr-tabs__tab\"\n role=\"tab\"\n [attr.id]=\"headerId(tab.key())\"\n [attr.aria-controls]=\"panelId(tab.key())\"\n [attr.tabindex]=\"tab === activeTab() && !tab.disabled() ? 0 : -1\"\n [class.wr-tabs__tab--active]=\"tab === activeTab()\"\n [class.wr-tabs__tab--disabled]=\"tab.disabled()\"\n [attr.aria-selected]=\"tab === activeTab()\"\n [disabled]=\"tab.disabled()\"\n (click)=\"onTabClick(tab)\"\n >\n {{ tab.title() }}\n </button>\n }\n }\n</div>\n\n@if (!isRouter() && activeTab(); as tab) {\n <div\n class=\"wr-tabs__panel\"\n role=\"tabpanel\"\n tabindex=\"0\"\n [attr.id]=\"panelId(tab.key())\"\n [attr.aria-labelledby]=\"headerId(tab.key())\"\n >\n <ng-container [ngTemplateOutlet]=\"tab.contentTpl()\" />\n </div>\n}\n",
339
+ dependencies: [{
340
+ kind: "directive",
341
+ type: NgTemplateOutlet,
342
+ selector: "[ngTemplateOutlet]",
343
+ inputs: [
344
+ "ngTemplateOutletContext",
345
+ "ngTemplateOutlet",
346
+ "ngTemplateOutletInjector"
347
+ ]
348
+ }],
349
+ encapsulation: i0.ViewEncapsulation.None
350
+ });
351
+ };
352
+ i0.ɵɵngDeclareClassMetadata({
353
+ minVersion: "12.0.0",
354
+ version: "22.2.3",
355
+ ngImport: i0,
356
+ type: WrTabs,
357
+ decorators: [{
358
+ type: Component,
359
+ args: [{
360
+ selector: "wr-tabs",
361
+ encapsulation: ViewEncapsulation.None,
362
+ host: {
363
+ class: "wr-tabs",
364
+ "[class.wr-tabs--fade-start]": "canScrollStart()",
365
+ "[class.wr-tabs--fade-end]": "canScrollEnd()",
366
+ "[class.wr-tabs--sm]": "size() === 'sm'",
367
+ "[class.wr-tabs--lg]": "size() === 'lg'"
368
+ },
369
+ imports: [NgTemplateOutlet],
370
+ providers: [{
371
+ provide: WR_TABS,
372
+ useExisting: forwardRef(() => WrTabs)
373
+ }],
374
+ template: "<!-- eslint-disable-next-line @angular-eslint/template/interactive-supports-focus -->\n<div\n #strip\n class=\"wr-tabs__strip\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n (keydown)=\"onStripKeydown($event)\"\n (scroll)=\"updateFades()\"\n>\n @for (tab of tabs(); track tab.key()) {\n @if (tab.routerLink() !== null) {\n <!--\n `aria-selected` and `--active` come off the SAME `tab.routerActive()`, so the\n announced state and the painted one can never disagree. Without it a\n `role=\"tablist\"` shipped with no tab selected in any of them: the route decides\n here, and the class it paints is invisible to assistive tech.\n\n A real `href` rather than a `[routerLink]`: the directive would drag\n `@angular/router` into every content-only strip as well (see `WR_TABS_ROUTING`).\n The href, the active match and the click all come from the adapter the\n `ngwr/tabs/router` directive publishes, which is `RouterLink` doing the work.\n -->\n <a\n class=\"wr-tabs__tab\"\n role=\"tab\"\n [attr.id]=\"headerId(tab.key())\"\n [attr.href]=\"tab.routerHref()\"\n [class.wr-tabs__tab--active]=\"tab.routerActive()\"\n [class.wr-tabs__tab--disabled]=\"tab.disabled()\"\n [attr.aria-disabled]=\"tab.disabled() ? true : null\"\n [attr.aria-selected]=\"tab.routerActive()\"\n [attr.tabindex]=\"tab.disabled() ? -1 : 0\"\n (click)=\"onRouterTabClick(tab, $event)\"\n >\n {{ tab.title() }}\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"wr-tabs__tab\"\n role=\"tab\"\n [attr.id]=\"headerId(tab.key())\"\n [attr.aria-controls]=\"panelId(tab.key())\"\n [attr.tabindex]=\"tab === activeTab() && !tab.disabled() ? 0 : -1\"\n [class.wr-tabs__tab--active]=\"tab === activeTab()\"\n [class.wr-tabs__tab--disabled]=\"tab.disabled()\"\n [attr.aria-selected]=\"tab === activeTab()\"\n [disabled]=\"tab.disabled()\"\n (click)=\"onTabClick(tab)\"\n >\n {{ tab.title() }}\n </button>\n }\n }\n</div>\n\n@if (!isRouter() && activeTab(); as tab) {\n <div\n class=\"wr-tabs__panel\"\n role=\"tabpanel\"\n tabindex=\"0\"\n [attr.id]=\"panelId(tab.key())\"\n [attr.aria-labelledby]=\"headerId(tab.key())\"\n >\n <ng-container [ngTemplateOutlet]=\"tab.contentTpl()\" />\n </div>\n}\n"
375
+ }]
376
+ }],
377
+ ctorParameters: () => [],
378
+ propDecorators: {
379
+ active: [{
380
+ type: i0.Input,
381
+ args: [{
382
+ isSignal: true,
383
+ alias: "active",
384
+ required: false
385
+ }]
386
+ }, {
387
+ type: i0.Output,
388
+ args: ["activeChange"]
389
+ }],
390
+ size: [{
391
+ type: i0.Input,
392
+ args: [{
393
+ isSignal: true,
394
+ alias: "size",
395
+ required: false
396
+ }]
397
+ }],
398
+ tabs: [{
399
+ type: i0.ContentChildren,
400
+ args: [i0.forwardRef(() => WrTab), { isSignal: true }]
401
+ }],
402
+ stripRef: [{
403
+ type: i0.ViewChild,
404
+ args: ["strip", { isSignal: true }]
405
+ }]
406
+ }
407
+ });
432
408
  export { WR_TABS, WR_TABS_ROUTING, WrTab, WrTabs };
433
- //# sourceMappingURL=ngwr-tabs.mjs.map
409
+
410
+ //# sourceMappingURL=ngwr-tabs.mjs.map