@tailng-ui/primitives 0.11.0 → 0.13.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 (274) hide show
  1. package/README.md +97 -11
  2. package/package.json +12 -6
  3. package/src/lib/feedback/empty/tng-empty.d.ts +11 -0
  4. package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -1
  5. package/src/lib/feedback/empty/tng-empty.js +76 -61
  6. package/src/lib/feedback/empty/tng-empty.js.map +1 -1
  7. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts +5 -0
  8. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
  9. package/src/lib/feedback/progress-bar/tng-progress-bar.js +50 -52
  10. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
  11. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts +3 -0
  12. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
  13. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +35 -40
  14. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
  15. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +3 -0
  16. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
  17. package/src/lib/feedback/skeleton/tng-skeleton.js +30 -31
  18. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
  19. package/src/lib/feedback/toast/tng-toast.d.ts +5 -0
  20. package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -1
  21. package/src/lib/feedback/toast/tng-toast.js +51 -47
  22. package/src/lib/feedback/toast/tng-toast.js.map +1 -1
  23. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts +3 -0
  24. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts.map +1 -1
  25. package/src/lib/form/_shared/id/tng-unique-id.service.js +9 -7
  26. package/src/lib/form/_shared/id/tng-unique-id.service.js.map +1 -1
  27. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts +3 -0
  28. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -1
  29. package/src/lib/form/_shared/select/tng-select.overlay.shared.js +22 -20
  30. package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -1
  31. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts +9 -0
  32. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts.map +1 -1
  33. package/src/lib/form/_shared/select/tng-select.parts.shared.js +106 -98
  34. package/src/lib/form/_shared/select/tng-select.parts.shared.js.map +1 -1
  35. package/src/lib/form/autocomplete/tng-autocomplete.d.ts +3 -0
  36. package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -1
  37. package/src/lib/form/autocomplete/tng-autocomplete.js +40 -38
  38. package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -1
  39. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts +6 -0
  40. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -1
  41. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +54 -46
  42. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -1
  43. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts +3 -0
  44. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -1
  45. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +22 -20
  46. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -1
  47. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts +9 -0
  48. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts.map +1 -1
  49. package/src/lib/form/autocomplete/tng-autocomplete.parts.js +109 -101
  50. package/src/lib/form/autocomplete/tng-autocomplete.parts.js.map +1 -1
  51. package/src/lib/form/button-toggle/tng-button-toggle.d.ts +5 -0
  52. package/src/lib/form/button-toggle/tng-button-toggle.d.ts.map +1 -1
  53. package/src/lib/form/button-toggle/tng-button-toggle.js +121 -155
  54. package/src/lib/form/button-toggle/tng-button-toggle.js.map +1 -1
  55. package/src/lib/form/checkbox/tng-checkbox.d.ts +3 -0
  56. package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -1
  57. package/src/lib/form/checkbox/tng-checkbox.js +95 -106
  58. package/src/lib/form/checkbox/tng-checkbox.js.map +1 -1
  59. package/src/lib/form/chips/tng-chips.d.ts +7 -0
  60. package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
  61. package/src/lib/form/chips/tng-chips.js +107 -112
  62. package/src/lib/form/chips/tng-chips.js.map +1 -1
  63. package/src/lib/form/combobox/tng-combobox.d.ts +3 -0
  64. package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -1
  65. package/src/lib/form/combobox/tng-combobox.js +16 -13
  66. package/src/lib/form/combobox/tng-combobox.js.map +1 -1
  67. package/src/lib/form/input/tng-input.d.ts +9 -0
  68. package/src/lib/form/input/tng-input.d.ts.map +1 -1
  69. package/src/lib/form/input/tng-input.js +161 -141
  70. package/src/lib/form/input/tng-input.js.map +1 -1
  71. package/src/lib/form/input-otp/tng-input-otp.d.ts +3 -0
  72. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
  73. package/src/lib/form/input-otp/tng-input-otp.js +58 -69
  74. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
  75. package/src/lib/form/label/tng-label.d.ts +3 -0
  76. package/src/lib/form/label/tng-label.d.ts.map +1 -1
  77. package/src/lib/form/label/tng-label.js +24 -25
  78. package/src/lib/form/label/tng-label.js.map +1 -1
  79. package/src/lib/form/listbox/listbox.directive.d.ts +3 -0
  80. package/src/lib/form/listbox/listbox.directive.d.ts.map +1 -1
  81. package/src/lib/form/listbox/listbox.directive.js +45 -43
  82. package/src/lib/form/listbox/listbox.directive.js.map +1 -1
  83. package/src/lib/form/listbox/option.directive.d.ts +3 -0
  84. package/src/lib/form/listbox/option.directive.d.ts.map +1 -1
  85. package/src/lib/form/listbox/option.directive.js +40 -38
  86. package/src/lib/form/listbox/option.directive.js.map +1 -1
  87. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts +3 -0
  88. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts.map +1 -1
  89. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js +23 -21
  90. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js.map +1 -1
  91. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts +3 -0
  92. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts.map +1 -1
  93. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js +25 -23
  94. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js.map +1 -1
  95. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts +3 -0
  96. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts.map +1 -1
  97. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js +35 -33
  98. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js.map +1 -1
  99. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts +6 -0
  100. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts.map +1 -1
  101. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js +57 -46
  102. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js.map +1 -1
  103. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts +3 -0
  104. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -1
  105. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +16 -14
  106. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -1
  107. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +3 -0
  108. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
  109. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +52 -50
  110. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
  111. package/src/lib/form/multi-select/tng-multi-select.d.ts +3 -0
  112. package/src/lib/form/multi-select/tng-multi-select.d.ts.map +1 -1
  113. package/src/lib/form/multi-select/tng-multi-select.js +41 -36
  114. package/src/lib/form/multi-select/tng-multi-select.js.map +1 -1
  115. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts +6 -0
  116. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts.map +1 -1
  117. package/src/lib/form/multi-select/tng-multi-select.listbox.js +50 -45
  118. package/src/lib/form/multi-select/tng-multi-select.listbox.js.map +1 -1
  119. package/src/lib/form/multiselect/tng-multiselect.d.ts +3 -0
  120. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -1
  121. package/src/lib/form/multiselect/tng-multiselect.js +16 -13
  122. package/src/lib/form/multiselect/tng-multiselect.js.map +1 -1
  123. package/src/lib/form/radio/tng-radio.d.ts +3 -0
  124. package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
  125. package/src/lib/form/radio/tng-radio.js +91 -100
  126. package/src/lib/form/radio/tng-radio.js.map +1 -1
  127. package/src/lib/form/select/tng-select.d.ts +3 -0
  128. package/src/lib/form/select/tng-select.d.ts.map +1 -1
  129. package/src/lib/form/select/tng-select.js +41 -36
  130. package/src/lib/form/select/tng-select.js.map +1 -1
  131. package/src/lib/form/select/tng-select.listbox.d.ts +6 -0
  132. package/src/lib/form/select/tng-select.listbox.d.ts.map +1 -1
  133. package/src/lib/form/select/tng-select.listbox.js +50 -45
  134. package/src/lib/form/select/tng-select.listbox.js.map +1 -1
  135. package/src/lib/form/slider/tng-slider.d.ts +3 -0
  136. package/src/lib/form/slider/tng-slider.d.ts.map +1 -1
  137. package/src/lib/form/slider/tng-slider.js +42 -49
  138. package/src/lib/form/slider/tng-slider.js.map +1 -1
  139. package/src/lib/form/switch/tng-switch.d.ts +3 -0
  140. package/src/lib/form/switch/tng-switch.d.ts.map +1 -1
  141. package/src/lib/form/switch/tng-switch.js +44 -47
  142. package/src/lib/form/switch/tng-switch.js.map +1 -1
  143. package/src/lib/form/textarea/tng-textarea.d.ts +4 -0
  144. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
  145. package/src/lib/form/textarea/tng-textarea.js +40 -41
  146. package/src/lib/form/textarea/tng-textarea.js.map +1 -1
  147. package/src/lib/form/toggle/tng-toggle.d.ts +3 -0
  148. package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -1
  149. package/src/lib/form/toggle/tng-toggle.js +71 -74
  150. package/src/lib/form/toggle/tng-toggle.js.map +1 -1
  151. package/src/lib/form/toggle-group/tng-toggle-group.d.ts +3 -0
  152. package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -1
  153. package/src/lib/form/toggle-group/tng-toggle-group.js +48 -49
  154. package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -1
  155. package/src/lib/layout/accordion/tng-accordion.d.ts +9 -0
  156. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
  157. package/src/lib/layout/accordion/tng-accordion.js +143 -155
  158. package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
  159. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts +3 -0
  160. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -1
  161. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +16 -13
  162. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -1
  163. package/src/lib/layout/card/tng-card.d.ts +21 -0
  164. package/src/lib/layout/card/tng-card.d.ts.map +1 -1
  165. package/src/lib/layout/card/tng-card.js +151 -121
  166. package/src/lib/layout/card/tng-card.js.map +1 -1
  167. package/src/lib/layout/collapsible/tng-collapsible.d.ts +7 -0
  168. package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -1
  169. package/src/lib/layout/collapsible/tng-collapsible.js +82 -83
  170. package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -1
  171. package/src/lib/layout/drawer/tng-drawer.d.ts +13 -0
  172. package/src/lib/layout/drawer/tng-drawer.d.ts.map +1 -1
  173. package/src/lib/layout/drawer/tng-drawer.js +217 -226
  174. package/src/lib/layout/drawer/tng-drawer.js.map +1 -1
  175. package/src/lib/layout/grid/tng-grid.d.ts +3 -0
  176. package/src/lib/layout/grid/tng-grid.d.ts.map +1 -1
  177. package/src/lib/layout/grid/tng-grid.js +16 -13
  178. package/src/lib/layout/grid/tng-grid.js.map +1 -1
  179. package/src/lib/layout/separator/tng-separator.d.ts +3 -0
  180. package/src/lib/layout/separator/tng-separator.d.ts.map +1 -1
  181. package/src/lib/layout/separator/tng-separator.js +30 -29
  182. package/src/lib/layout/separator/tng-separator.js.map +1 -1
  183. package/src/lib/layout/stepper/tng-stepper.d.ts +3 -0
  184. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
  185. package/src/lib/layout/stepper/tng-stepper.js +16 -13
  186. package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
  187. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts +3 -0
  188. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -1
  189. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +54 -11
  190. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -1
  191. package/src/lib/layout/tree/tng-tree-group.d.ts +3 -0
  192. package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -1
  193. package/src/lib/layout/tree/tng-tree-group.js +19 -17
  194. package/src/lib/layout/tree/tng-tree-group.js.map +1 -1
  195. package/src/lib/layout/tree/tng-tree-indicator.d.ts +3 -0
  196. package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -1
  197. package/src/lib/layout/tree/tng-tree-indicator.js +22 -20
  198. package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -1
  199. package/src/lib/layout/tree/tng-tree-item.d.ts +3 -0
  200. package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -1
  201. package/src/lib/layout/tree/tng-tree-item.js +47 -53
  202. package/src/lib/layout/tree/tng-tree-item.js.map +1 -1
  203. package/src/lib/layout/tree/tng-tree.d.ts +3 -0
  204. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
  205. package/src/lib/layout/tree/tng-tree.js +39 -43
  206. package/src/lib/layout/tree/tng-tree.js.map +1 -1
  207. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts +11 -0
  208. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -1
  209. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +79 -64
  210. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -1
  211. package/src/lib/navigation/context-menu/tng-context-menu.d.ts +5 -0
  212. package/src/lib/navigation/context-menu/tng-context-menu.d.ts.map +1 -1
  213. package/src/lib/navigation/context-menu/tng-context-menu.js +44 -42
  214. package/src/lib/navigation/context-menu/tng-context-menu.js.map +1 -1
  215. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts +3 -0
  216. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -1
  217. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +16 -13
  218. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -1
  219. package/src/lib/navigation/menu/tng-menu.d.ts +13 -0
  220. package/src/lib/navigation/menu/tng-menu.d.ts.map +1 -1
  221. package/src/lib/navigation/menu/tng-menu.js +184 -186
  222. package/src/lib/navigation/menu/tng-menu.js.map +1 -1
  223. package/src/lib/navigation/menubar/tng-menubar.d.ts +5 -0
  224. package/src/lib/navigation/menubar/tng-menubar.d.ts.map +1 -1
  225. package/src/lib/navigation/menubar/tng-menubar.js +72 -70
  226. package/src/lib/navigation/menubar/tng-menubar.js.map +1 -1
  227. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts +3 -0
  228. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -1
  229. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +16 -13
  230. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -1
  231. package/src/lib/navigation/tabs/tng-tabs.d.ts +13 -0
  232. package/src/lib/navigation/tabs/tng-tabs.d.ts.map +1 -1
  233. package/src/lib/navigation/tabs/tng-tabs.js +234 -258
  234. package/src/lib/navigation/tabs/tng-tabs.js.map +1 -1
  235. package/src/lib/navigation/toolbar/tng-toolbar.d.ts +3 -0
  236. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -1
  237. package/src/lib/navigation/toolbar/tng-toolbar.js +16 -13
  238. package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -1
  239. package/src/lib/overlay/dialog/tng-dialog.d.ts +19 -0
  240. package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -1
  241. package/src/lib/overlay/dialog/tng-dialog.js +249 -255
  242. package/src/lib/overlay/dialog/tng-dialog.js.map +1 -1
  243. package/src/lib/overlay/popover/tng-popover.d.ts +9 -0
  244. package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -1
  245. package/src/lib/overlay/popover/tng-popover.js +152 -170
  246. package/src/lib/overlay/popover/tng-popover.js.map +1 -1
  247. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +7 -0
  248. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
  249. package/src/lib/overlay/tooltip/tng-tooltip.js +124 -127
  250. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
  251. package/src/lib/utility/avatar/tng-avatar.d.ts +7 -0
  252. package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -1
  253. package/src/lib/utility/avatar/tng-avatar.js +46 -37
  254. package/src/lib/utility/avatar/tng-avatar.js.map +1 -1
  255. package/src/lib/utility/badge/tng-badge.d.ts +3 -0
  256. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
  257. package/src/lib/utility/badge/tng-badge.js +26 -39
  258. package/src/lib/utility/badge/tng-badge.js.map +1 -1
  259. package/src/lib/utility/code-block/tng-code-block.d.ts +11 -0
  260. package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -1
  261. package/src/lib/utility/code-block/tng-code-block.js +76 -61
  262. package/src/lib/utility/code-block/tng-code-block.js.map +1 -1
  263. package/src/lib/utility/copy/tng-copy.d.ts +3 -0
  264. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
  265. package/src/lib/utility/copy/tng-copy.js +44 -51
  266. package/src/lib/utility/copy/tng-copy.js.map +1 -1
  267. package/src/lib/utility/press/tng-press.d.ts +3 -0
  268. package/src/lib/utility/press/tng-press.d.ts.map +1 -1
  269. package/src/lib/utility/press/tng-press.js +55 -60
  270. package/src/lib/utility/press/tng-press.js.map +1 -1
  271. package/src/lib/utility/tag/tng-tag.d.ts +7 -0
  272. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
  273. package/src/lib/utility/tag/tng-tag.js +94 -93
  274. package/src/lib/utility/tag/tng-tag.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tabs.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/navigation/tabs/tng-tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { createTngIdFactory } from '@tailng-ui/cdk';\n\ntype TngTabsDirection = 'ltr' | 'rtl' | 'auto';\ntype TngTabsOrientation = 'horizontal' | 'vertical';\ntype TngTabsActivationMode = 'auto' | 'manual';\ntype TngTabsScrollButtonsMode = 'auto' | 'off' | 'on';\ntype TngTabsFocusMove = 'next' | 'prev' | 'first' | 'last';\ntype TngTabsFocusTrigger = 'pointer' | 'keyboard' | 'programmatic';\ntype TngTabsSelectionTrigger = 'pointer' | 'keyboard' | 'programmatic';\n\nexport type TngTabsValue = string | number;\n\nexport type TngTabChangeEvent = Readonly<{\n value: TngTabsValue;\n previousValue: TngTabsValue | null;\n trigger: TngTabsSelectionTrigger;\n}>;\n\nexport type TngTabsFocusChangeEvent = Readonly<{\n value: TngTabsValue;\n previousValue: TngTabsValue | null;\n trigger: TngTabsFocusTrigger;\n}>;\n\nconst createTabId = createTngIdFactory('tng-tab');\nconst createPanelId = createTngIdFactory('tng-tab-panel');\nlet nextRegistrationOrder = 0;\n\nfunction normalizeBooleanInput(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === '' || normalized === 'true') {\n return true;\n }\n\n if (normalized === 'false') {\n return false;\n }\n }\n\n return false;\n}\n\nfunction normalizeOptionalBooleanInput(value: unknown): boolean | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return normalizeBooleanInput(value);\n}\n\nfunction normalizeDirectionInput(value: unknown): TngTabsDirection {\n if (value === 'ltr' || value === 'rtl' || value === 'auto') {\n return value;\n }\n\n return 'auto';\n}\n\nfunction normalizeOrientationInput(value: unknown): TngTabsOrientation {\n return value === 'vertical' ? 'vertical' : 'horizontal';\n}\n\nfunction normalizeActivationInput(value: unknown): TngTabsActivationMode {\n return value === 'manual' ? 'manual' : 'auto';\n}\n\nfunction normalizeScrollButtonsInput(value: unknown): TngTabsScrollButtonsMode {\n if (value === 'auto' || value === 'on' || value === 'off') {\n return value;\n }\n\n if (value === '' || value === true || value === 'true') {\n return 'auto';\n }\n\n return 'off';\n}\n\nfunction normalizeOptionalValueInput(value: unknown): TngTabsValue | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number' || typeof value === 'string') {\n return value;\n }\n\n return String(value);\n}\n\nfunction normalizeOptionalStringInput(value: unknown): string | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n return String(value);\n}\n\nfunction valuesEqual(a: TngTabsValue | null, b: TngTabsValue | null): boolean {\n return a === b;\n}\n\nfunction compareByDomPosition(\n aElement: HTMLElement,\n bElement: HTMLElement,\n aOrder: number,\n bOrder: number,\n): number {\n if (aElement === bElement) {\n return 0;\n }\n\n const relativePosition = aElement.compareDocumentPosition(bElement);\n if (relativePosition & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1;\n }\n\n if (relativePosition & Node.DOCUMENT_POSITION_PRECEDING) {\n return 1;\n }\n\n return aOrder - bOrder;\n}\n\nfunction isFocusableInteractiveElement(element: Element): boolean {\n return (\n element.matches('a[href]') ||\n element.matches('button') ||\n element.matches('input') ||\n element.matches('select') ||\n element.matches('textarea') ||\n element.matches('[tabindex]') ||\n element.matches('[contenteditable=\"true\"]')\n );\n}\n\n@Directive({\n selector: '[tngTabs]',\n exportAs: 'tngTabs',\n standalone: true,\n})\nexport class TngTabs {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tabs = new Set<TngTab>();\n private readonly panels = new Set<TngTabPanel>();\n private tabList: TngTabList | null = null;\n private scrollPrevControl: TngTabsScrollButtonPrev | null = null;\n private scrollNextControl: TngTabsScrollButtonNext | null = null;\n private uncontrolledValue: TngTabsValue | null = null;\n private focusedValue: TngTabsValue | null = null;\n private hasUserSelection = false;\n private initialized = false;\n\n readonly value = input<TngTabsValue | null | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueInput,\n });\n readonly defaultValue = input<TngTabsValue | null | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueInput,\n });\n readonly activation = input<TngTabsActivationMode, unknown>('auto', {\n transform: normalizeActivationInput,\n });\n readonly orientation = input<TngTabsOrientation, unknown>('horizontal', {\n transform: normalizeOrientationInput,\n });\n readonly scrollButtons = input<TngTabsScrollButtonsMode, unknown>('off', {\n transform: normalizeScrollButtonsInput,\n });\n readonly loop = input<boolean, unknown>(true, {\n transform: normalizeBooleanInput,\n });\n readonly dir = input<TngTabsDirection, unknown>('auto', {\n transform: normalizeDirectionInput,\n });\n readonly disabled = input<boolean, unknown>(false, {\n transform: normalizeBooleanInput,\n });\n readonly lazy = input<boolean | undefined, unknown>(undefined, {\n transform: normalizeOptionalBooleanInput,\n });\n readonly keepAlive = input<boolean | undefined, unknown>(undefined, {\n transform: normalizeOptionalBooleanInput,\n });\n\n readonly valueChange = output<TngTabsValue | null>();\n readonly tabChange = output<TngTabChangeEvent>();\n readonly focusChange = output<TngTabsFocusChangeEvent>();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tabs' as const;\n\n @HostBinding('attr.data-orientation')\n protected get dataOrientation(): TngTabsOrientation {\n return this.orientation();\n }\n\n @HostBinding('attr.data-activation')\n protected get dataActivation(): TngTabsActivationMode {\n return this.activation();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n ngDoCheck(): void {\n this.syncStateFromRegistry();\n }\n\n isDisabled(): boolean {\n return this.disabled();\n }\n\n isKeepAliveEnabled(): boolean {\n return this.keepAlive() ?? true;\n }\n\n isLazyEnabled(): boolean {\n return this.lazy() ?? false;\n }\n\n select(value: TngTabsValue): void {\n const targetTab = this.findEnabledTabByValue(value);\n if (targetTab === null) {\n return;\n }\n\n this.requestSelection(targetTab, 'programmatic');\n }\n\n focus(value: TngTabsValue): void {\n const targetTab = this.findEnabledTabByValue(value);\n if (targetTab === null) {\n return;\n }\n\n this.moveFocusToTab(targetTab, 'programmatic');\n if (this.activation() === 'auto') {\n this.requestSelection(targetTab, 'programmatic');\n }\n }\n\n next(): void {\n this.moveFocusFromCurrentTab('next', 'programmatic');\n }\n\n prev(): void {\n this.moveFocusFromCurrentTab('prev', 'programmatic');\n }\n\n registerTab(tab: TngTab): void {\n this.tabs.add(tab);\n }\n\n unregisterTab(tab: TngTab): void {\n const orderedTabs = this.getOrderedTabs();\n const removedIndex = orderedTabs.indexOf(tab);\n const removedValue = tab.getValue();\n const selectedValue = this.getEffectiveSelectedValue();\n const focusedValue = this.resolveCurrentTabStopValue();\n\n this.tabs.delete(tab);\n\n if (selectedValue !== null && valuesEqual(selectedValue, removedValue)) {\n const nextSelectedValue = this.resolveNeighborValueOnRemoval(orderedTabs, removedIndex);\n this.applyLifecycleSelection(nextSelectedValue);\n }\n\n if (focusedValue !== null && valuesEqual(focusedValue, removedValue)) {\n const nextFocusedValue = this.resolveNeighborValueOnRemoval(orderedTabs, removedIndex);\n this.focusedValue = nextFocusedValue;\n }\n\n this.syncStateFromRegistry();\n }\n\n notifyTabMutated(tab: TngTab): void {\n const selectedValue = this.getEffectiveSelectedValue();\n if (selectedValue !== null && valuesEqual(selectedValue, tab.getValue()) && tab.isDisabledInContext()) {\n const replacement = this.resolveNeighborForDisabledTab(tab);\n this.applyLifecycleSelection(replacement);\n }\n\n const focusedValue = this.resolveCurrentTabStopValue();\n if (focusedValue !== null && valuesEqual(focusedValue, tab.getValue()) && tab.isDisabledInContext()) {\n this.focusedValue = this.resolveNeighborForDisabledTab(tab);\n }\n\n this.syncStateFromRegistry();\n }\n\n registerPanel(panel: TngTabPanel): void {\n this.panels.add(panel);\n }\n\n unregisterPanel(panel: TngTabPanel): void {\n this.panels.delete(panel);\n this.syncStateFromRegistry();\n }\n\n notifyPanelMutated(): void {\n this.syncStateFromRegistry();\n }\n\n registerScrollPrevControl(control: TngTabsScrollButtonPrev): void {\n this.scrollPrevControl = control;\n }\n\n unregisterScrollPrevControl(control: TngTabsScrollButtonPrev): void {\n if (this.scrollPrevControl === control) {\n this.scrollPrevControl = null;\n }\n }\n\n registerScrollNextControl(control: TngTabsScrollButtonNext): void {\n this.scrollNextControl = control;\n }\n\n unregisterScrollNextControl(control: TngTabsScrollButtonNext): void {\n if (this.scrollNextControl === control) {\n this.scrollNextControl = null;\n }\n }\n\n registerTabList(tabList: TngTabList): void {\n this.tabList = tabList;\n }\n\n unregisterTabList(tabList: TngTabList): void {\n if (this.tabList !== tabList) {\n return;\n }\n\n this.tabList = null;\n }\n\n onTabListScrolled(): void {}\n\n onTabListFocused(): void {\n if (this.disabled()) {\n return;\n }\n\n const enabledTabs = this.getEnabledTabs();\n if (enabledTabs.length === 0) {\n return;\n }\n\n const currentTabStopValue = this.resolveCurrentTabStopValue(enabledTabs);\n const currentTab =\n this.findEnabledTabByValue(currentTabStopValue, enabledTabs) ??\n enabledTabs[0] ??\n null;\n if (currentTab === null) {\n return;\n }\n\n currentTab.focusSelf();\n }\n\n handleTabListWheel(event: WheelEvent): void {\n if (this.orientation() !== 'horizontal') {\n return;\n }\n\n if (!this.isTabListOverflowing()) {\n return;\n }\n\n const dominantDelta = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY;\n if (dominantDelta === 0) {\n return;\n }\n\n event.preventDefault();\n this.scrollTabListBy(dominantDelta);\n }\n\n isScrollButtonHidden(): boolean {\n return !this.shouldShowScrollButtons();\n }\n\n isScrollButtonDisabled(direction: 'next' | 'prev'): boolean {\n if (this.isScrollButtonHidden()) {\n return true;\n }\n\n const tabListElement = this.getTabListElement();\n if (tabListElement === null) {\n return true;\n }\n\n const maxScrollLeft = Math.max(0, tabListElement.scrollWidth - tabListElement.clientWidth);\n if (direction === 'prev') {\n return tabListElement.scrollLeft <= 0;\n }\n\n return tabListElement.scrollLeft >= maxScrollLeft;\n }\n\n onScrollButtonClick(direction: 'next' | 'prev', event: MouseEvent): void {\n if (this.isScrollButtonDisabled(direction)) {\n event.preventDefault();\n return;\n }\n\n const delta = direction === 'prev' ? -this.resolveTabListScrollStep() : this.resolveTabListScrollStep();\n this.scrollTabListBy(delta);\n event.preventDefault();\n }\n\n getTabIndex(tab: TngTab): string {\n if (this.disabled() || tab.isDisabledInContext()) {\n return '-1';\n }\n\n const tabStop = this.resolveCurrentTabStopValue();\n if (tabStop === null) {\n return '-1';\n }\n\n return valuesEqual(tabStop, tab.getValue()) ? '0' : '-1';\n }\n\n isTabSelected(tab: TngTab): boolean {\n const selectedValue = this.getEffectiveSelectedValue();\n if (selectedValue === null) {\n return false;\n }\n\n return valuesEqual(selectedValue, tab.getValue());\n }\n\n isTabFocused(tab: TngTab): boolean {\n const tabStop = this.resolveCurrentTabStopValue();\n return tabStop !== null && valuesEqual(tabStop, tab.getValue());\n }\n\n getPanelIdForTab(tab: TngTab): string | null {\n const explicitPanelId = tab.getExplicitPanelId();\n if (explicitPanelId !== null) {\n return explicitPanelId;\n }\n\n const matchedPanel = this.findPanelByValue(tab.getValue());\n if (matchedPanel !== null) {\n return matchedPanel.getPanelId();\n }\n\n const tabs = this.getOrderedTabs();\n const panels = this.getOrderedPanels();\n const tabIndex = tabs.indexOf(tab);\n if (tabIndex < 0) {\n return null;\n }\n\n return panels[tabIndex]?.getPanelId() ?? null;\n }\n\n getTabIdForPanel(panel: TngTabPanel): string | null {\n const explicitLabelledById = panel.getExplicitLabelledById();\n if (explicitLabelledById !== null) {\n return explicitLabelledById;\n }\n\n const matchedTab = this.findTabByValue(panel.getValue());\n if (matchedTab !== null) {\n return matchedTab.getItemId();\n }\n\n const tabs = this.getOrderedTabs();\n const panels = this.getOrderedPanels();\n const panelIndex = panels.indexOf(panel);\n if (panelIndex < 0) {\n return null;\n }\n\n return tabs[panelIndex]?.getItemId() ?? null;\n }\n\n isPanelActive(panel: TngTabPanel): boolean {\n const selectedValue = this.getEffectiveSelectedValue();\n if (selectedValue === null) {\n return false;\n }\n\n return valuesEqual(selectedValue, panel.getValue());\n }\n\n isPanelMounted(panel: TngTabPanel): boolean {\n if (this.isPanelActive(panel)) {\n panel.markActivated();\n return true;\n }\n\n const keepAlive = panel.unmountOnExit() ? false : this.isKeepAliveEnabled();\n if (!keepAlive) {\n return false;\n }\n\n if (!this.isLazyEnabled()) {\n return true;\n }\n\n return panel.hasActivated();\n }\n\n onTabFocused(tab: TngTab, trigger: TngTabsFocusTrigger): void {\n if (this.disabled() || tab.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(tab.getValue(), trigger);\n this.scrollTabIntoView(tab);\n }\n\n requestSelection(tab: TngTab, trigger: TngTabsSelectionTrigger): void {\n if (this.disabled() || tab.isDisabledInContext()) {\n return;\n }\n\n const nextValue = tab.getValue();\n const previousValue = this.getEffectiveSelectedValue();\n if (previousValue !== null && valuesEqual(previousValue, nextValue)) {\n return;\n }\n\n if (!this.isControlled()) {\n this.uncontrolledValue = nextValue;\n this.hasUserSelection = true;\n }\n\n this.focusedValue = nextValue;\n this.valueChange.emit(nextValue);\n this.tabChange.emit({\n value: nextValue,\n previousValue,\n trigger,\n });\n\n this.scrollTabIntoView(tab);\n this.syncStateFromRegistry();\n }\n\n handleTabKeydown(tab: TngTab, event: KeyboardEvent): void {\n if (this.disabled() || tab.isDisabledInContext()) {\n return;\n }\n\n const focusMove = this.resolveFocusMove(event.key);\n if (focusMove !== null) {\n event.preventDefault();\n this.moveFocusByAction(tab, focusMove, 'keyboard');\n return;\n }\n\n if (event.key !== 'Enter' && event.key !== ' ' && event.key !== 'Spacebar') {\n return;\n }\n\n if (this.activation() === 'manual' || this.activation() === 'auto') {\n event.preventDefault();\n this.requestSelection(tab, 'keyboard');\n }\n }\n\n private resolveFocusMove(key: string): TngTabsFocusMove | null {\n if (key === 'Home') {\n return 'first';\n }\n\n if (key === 'End') {\n return 'last';\n }\n\n if (this.orientation() === 'vertical') {\n if (key === 'ArrowDown') {\n return 'next';\n }\n\n if (key === 'ArrowUp') {\n return 'prev';\n }\n\n return null;\n }\n\n if (key !== 'ArrowLeft' && key !== 'ArrowRight') {\n return null;\n }\n\n const isRtl = this.resolveDirection() === 'rtl';\n const moveToNext = key === (isRtl ? 'ArrowLeft' : 'ArrowRight');\n return moveToNext ? 'next' : 'prev';\n }\n\n private moveFocusByAction(\n sourceTab: TngTab,\n action: TngTabsFocusMove,\n trigger: TngTabsFocusTrigger,\n ): void {\n const enabledTabs = this.getEnabledTabs();\n if (enabledTabs.length === 0) {\n return;\n }\n\n const currentIndex = enabledTabs.indexOf(sourceTab);\n if (currentIndex < 0) {\n return;\n }\n\n const nextTab = this.resolveFocusTarget(enabledTabs, currentIndex, action);\n if (nextTab === null) {\n return;\n }\n\n this.moveFocusToTab(nextTab, trigger);\n if (this.activation() === 'auto') {\n this.requestSelection(nextTab, trigger === 'programmatic' ? 'programmatic' : 'keyboard');\n }\n }\n\n private moveFocusToTab(tab: TngTab, trigger: TngTabsFocusTrigger): void {\n if (this.disabled() || tab.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(tab.getValue(), trigger);\n tab.focusSelf();\n }\n\n private moveFocusFromCurrentTab(\n direction: 'next' | 'prev',\n trigger: TngTabsFocusTrigger,\n ): void {\n const enabledTabs = this.getEnabledTabs();\n if (enabledTabs.length === 0) {\n return;\n }\n\n const activeElement = this.hostRef.nativeElement.ownerDocument?.activeElement ?? null;\n const activeTab = this.findTabContainingElement(activeElement);\n const currentTab = activeTab ?? this.findEnabledTabByValue(this.resolveCurrentTabStopValue(), enabledTabs);\n if (currentTab === null) {\n return;\n }\n\n const currentIndex = enabledTabs.indexOf(currentTab);\n if (currentIndex < 0) {\n return;\n }\n\n const nextTab = this.resolveFocusTarget(enabledTabs, currentIndex, direction);\n if (nextTab === null) {\n return;\n }\n\n this.moveFocusToTab(nextTab, trigger);\n if (this.activation() === 'auto') {\n this.requestSelection(nextTab, trigger === 'programmatic' ? 'programmatic' : 'keyboard');\n }\n }\n\n private resolveFocusTarget(\n enabledTabs: readonly TngTab[],\n currentIndex: number,\n action: TngTabsFocusMove,\n ): TngTab | null {\n if (enabledTabs.length === 0 || currentIndex < 0) {\n return null;\n }\n\n if (action === 'first') {\n return enabledTabs[0] ?? null;\n }\n\n if (action === 'last') {\n return enabledTabs[enabledTabs.length - 1] ?? null;\n }\n\n if (action === 'next') {\n if (currentIndex + 1 < enabledTabs.length) {\n return enabledTabs[currentIndex + 1] ?? null;\n }\n\n return this.loop() ? (enabledTabs[0] ?? null) : (enabledTabs[currentIndex] ?? null);\n }\n\n if (currentIndex - 1 >= 0) {\n return enabledTabs[currentIndex - 1] ?? null;\n }\n\n return this.loop()\n ? (enabledTabs[enabledTabs.length - 1] ?? null)\n : (enabledTabs[currentIndex] ?? null);\n }\n\n private setFocusedValue(value: TngTabsValue, trigger: TngTabsFocusTrigger): void {\n const previousValue = this.focusedValue;\n if (previousValue !== null && valuesEqual(previousValue, value)) {\n return;\n }\n\n this.focusedValue = value;\n this.focusChange.emit({\n value,\n previousValue,\n trigger,\n });\n }\n\n private applyLifecycleSelection(nextValue: TngTabsValue | null): void {\n if (this.isControlled()) {\n return;\n }\n\n this.uncontrolledValue = nextValue;\n if (nextValue !== null) {\n this.focusedValue = nextValue;\n }\n }\n\n private resolveDirection(): 'ltr' | 'rtl' {\n const configuredDirection = this.dir();\n if (configuredDirection !== 'auto') {\n return configuredDirection;\n }\n\n const host = this.hostRef.nativeElement;\n const nearestDirection =\n host.closest<HTMLElement>('[dir]')?.getAttribute('dir') ??\n host.ownerDocument?.documentElement.getAttribute('dir');\n\n return nearestDirection?.toLowerCase() === 'rtl' ? 'rtl' : 'ltr';\n }\n\n private getSelectedValue(): TngTabsValue | null {\n if (this.isControlled()) {\n return this.value() as TngTabsValue;\n }\n\n return this.uncontrolledValue;\n }\n\n private getEffectiveSelectedValue(enabledTabs = this.getEnabledTabs()): TngTabsValue | null {\n if (enabledTabs.length === 0) {\n return null;\n }\n\n const selectedValue = this.getSelectedValue();\n if (selectedValue !== null && this.findEnabledTabByValue(selectedValue, enabledTabs) !== null) {\n return selectedValue;\n }\n\n return enabledTabs[0]?.getValue() ?? null;\n }\n\n private resolveCurrentTabStopValue(enabledTabs = this.getEnabledTabs()): TngTabsValue | null {\n if (enabledTabs.length === 0) {\n return null;\n }\n\n if (this.focusedValue !== null && this.findEnabledTabByValue(this.focusedValue, enabledTabs) !== null) {\n return this.focusedValue;\n }\n\n const selectedValue = this.getEffectiveSelectedValue(enabledTabs);\n if (selectedValue !== null) {\n return selectedValue;\n }\n\n return enabledTabs[0]?.getValue() ?? null;\n }\n\n private syncStateFromRegistry(): void {\n const enabledTabs = this.getEnabledTabs();\n\n if (!this.initialized) {\n this.initialized = true;\n if (!this.isControlled()) {\n const defaultValue = this.defaultValue();\n if (defaultValue !== undefined && defaultValue !== null) {\n this.uncontrolledValue = this.findEnabledTabByValue(defaultValue, enabledTabs)?.getValue() ?? null;\n } else {\n this.uncontrolledValue = enabledTabs[0]?.getValue() ?? null;\n }\n }\n }\n\n if (enabledTabs.length === 0) {\n if (!this.isControlled()) {\n this.uncontrolledValue = null;\n }\n this.focusedValue = null;\n return;\n }\n\n if (!this.isControlled()) {\n const defaultValue = this.defaultValue();\n if (!this.hasUserSelection && defaultValue !== undefined && defaultValue !== null) {\n const defaultTab = this.findEnabledTabByValue(defaultValue, enabledTabs);\n if (defaultTab !== null) {\n this.uncontrolledValue = defaultTab.getValue();\n } else if (this.uncontrolledValue === null) {\n this.uncontrolledValue = enabledTabs[0]?.getValue() ?? null;\n }\n } else {\n const current = this.uncontrolledValue;\n if (current === null || this.findEnabledTabByValue(current, enabledTabs) === null) {\n this.uncontrolledValue = enabledTabs[0]?.getValue() ?? null;\n }\n }\n }\n\n const selectedValue = this.getEffectiveSelectedValue(enabledTabs);\n if (selectedValue !== null) {\n this.findPanelByValue(selectedValue)?.markActivated();\n }\n\n this.focusedValue = this.resolveCurrentTabStopValue(enabledTabs);\n }\n\n private resolveNeighborValueOnRemoval(\n orderedTabs: readonly TngTab[],\n removedIndex: number,\n ): TngTabsValue | null {\n if (removedIndex < 0) {\n return this.getEnabledTabs()[0]?.getValue() ?? null;\n }\n\n for (let index = removedIndex + 1; index < orderedTabs.length; index += 1) {\n const candidate = orderedTabs[index];\n if (candidate !== undefined && !candidate.isDisabledInContext()) {\n return candidate.getValue();\n }\n }\n\n for (let index = removedIndex - 1; index >= 0; index -= 1) {\n const candidate = orderedTabs[index];\n if (candidate !== undefined && !candidate.isDisabledInContext()) {\n return candidate.getValue();\n }\n }\n\n return null;\n }\n\n private resolveNeighborForDisabledTab(tab: TngTab): TngTabsValue | null {\n const orderedTabs = this.getOrderedTabs();\n const currentIndex = orderedTabs.indexOf(tab);\n if (currentIndex < 0) {\n return this.getEnabledTabs()[0]?.getValue() ?? null;\n }\n\n for (let index = currentIndex - 1; index >= 0; index -= 1) {\n const candidate = orderedTabs[index];\n if (candidate !== undefined && !candidate.isDisabledInContext()) {\n return candidate.getValue();\n }\n }\n\n for (let index = currentIndex + 1; index < orderedTabs.length; index += 1) {\n const candidate = orderedTabs[index];\n if (candidate !== undefined && !candidate.isDisabledInContext()) {\n return candidate.getValue();\n }\n }\n\n return null;\n }\n\n private isControlled(): boolean {\n const value = this.value();\n return value !== undefined && value !== null;\n }\n\n private getOrderedTabs(): TngTab[] {\n const tabs = Array.from(this.tabs);\n tabs.sort((a, b) =>\n compareByDomPosition(\n a.getHostElement(),\n b.getHostElement(),\n a.getRegistrationOrder(),\n b.getRegistrationOrder(),\n ),\n );\n return tabs;\n }\n\n private getEnabledTabs(): TngTab[] {\n return this.getOrderedTabs().filter((tab) => !tab.isDisabledInContext());\n }\n\n private getOrderedPanels(): TngTabPanel[] {\n const panels = Array.from(this.panels);\n panels.sort((a, b) =>\n compareByDomPosition(\n a.getHostElement(),\n b.getHostElement(),\n a.getRegistrationOrder(),\n b.getRegistrationOrder(),\n ),\n );\n return panels;\n }\n\n private findTabByValue(value: TngTabsValue | null): TngTab | null {\n if (value === null) {\n return null;\n }\n\n const tabs = this.getOrderedTabs();\n return tabs.find((tab) => valuesEqual(tab.getValue(), value)) ?? null;\n }\n\n private findEnabledTabByValue(\n value: TngTabsValue | null,\n enabledTabs = this.getEnabledTabs(),\n ): TngTab | null {\n if (value === null) {\n return null;\n }\n\n return enabledTabs.find((tab) => valuesEqual(tab.getValue(), value)) ?? null;\n }\n\n private findPanelByValue(value: TngTabsValue | null): TngTabPanel | null {\n if (value === null) {\n return null;\n }\n\n const panels = this.getOrderedPanels();\n return panels.find((panel) => valuesEqual(panel.getValue(), value)) ?? null;\n }\n\n private findTabContainingElement(element: Element | null): TngTab | null {\n if (element === null) {\n return null;\n }\n\n const tabs = this.getOrderedTabs();\n return (\n tabs.find((tab) => {\n const host = tab.getHostElement();\n return host === element || host.contains(element);\n }) ?? null\n );\n }\n\n private getTabListElement(): HTMLElement | null {\n return this.tabList?.getHostElement() ?? null;\n }\n\n private isTabListOverflowing(): boolean {\n const tabListElement = this.getTabListElement();\n if (tabListElement === null) {\n return false;\n }\n\n return tabListElement.scrollWidth > tabListElement.clientWidth;\n }\n\n private shouldShowScrollButtons(): boolean {\n if (this.scrollPrevControl === null && this.scrollNextControl === null) {\n return false;\n }\n\n const mode = this.scrollButtons();\n if (mode === 'on') {\n return true;\n }\n\n if (mode !== 'auto') {\n return false;\n }\n\n return this.isTabListOverflowing();\n }\n\n private resolveTabListScrollStep(): number {\n const tabListElement = this.getTabListElement();\n if (tabListElement === null) {\n return 120;\n }\n\n return Math.max(80, Math.round(tabListElement.clientWidth * 0.7));\n }\n\n private scrollTabListBy(delta: number): void {\n const tabListElement = this.getTabListElement();\n if (tabListElement === null || delta === 0) {\n return;\n }\n\n tabListElement.scrollLeft += delta;\n }\n\n private scrollTabIntoView(tab: TngTab): void {\n if (!this.isTabListOverflowing()) {\n return;\n }\n\n const host = tab.getHostElement();\n const scrollIntoView = host.scrollIntoView as\n | ((options?: ScrollIntoViewOptions) => void)\n | undefined;\n if (typeof scrollIntoView !== 'function') {\n return;\n }\n\n scrollIntoView.call(host, {\n block: 'nearest',\n inline: 'nearest',\n });\n }\n}\n\n@Directive({\n selector: '[tngTabList]',\n exportAs: 'tngTabList',\n standalone: true,\n})\nexport class TngTabList {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tabs = inject(TngTabs, { host: true });\n\n readonly ariaLabel = input<string | null | undefined, unknown>(undefined, {\n alias: 'ariaLabel',\n transform: normalizeOptionalStringInput,\n });\n readonly ariaLabelledby = input<string | null | undefined, unknown>(undefined, {\n alias: 'ariaLabelledby',\n transform: normalizeOptionalStringInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tab-list' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'tablist' as const;\n\n @HostBinding('attr.tabindex')\n protected readonly tabIndex = '-1' as const;\n\n @HostBinding('attr.aria-orientation')\n protected get ariaOrientation(): TngTabsOrientation {\n return this.tabs.orientation();\n }\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string | null {\n return this.ariaLabel() ?? null;\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get hostAriaLabelledby(): string | null {\n return this.ariaLabelledby() ?? null;\n }\n\n constructor() {\n this.tabs.registerTabList(this);\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterTabList(this);\n }\n\n @HostListener('wheel', ['$event'])\n protected onWheel(event: WheelEvent): void {\n this.tabs.handleTabListWheel(event);\n }\n\n @HostListener('scroll')\n protected onScroll(): void {\n this.tabs.onTabListScrolled();\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n this.tabs.onTabListFocused();\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n}\n\n@Directive({\n selector: '[tngTabsScrollButtonPrev]',\n exportAs: 'tngTabsScrollButtonPrev',\n standalone: true,\n})\nexport class TngTabsScrollButtonPrev {\n private readonly tabs = inject(TngTabs, { host: true });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tabs-scroll-button-prev' as const;\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n return this.tabs.isScrollButtonHidden() ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabled(): '' | null {\n return this.tabs.isScrollButtonDisabled('prev') ? '' : null;\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.tabs.isScrollButtonDisabled('prev') ? 'true' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.tabs.isScrollButtonDisabled('prev') ? 'true' : 'false';\n }\n\n constructor() {\n this.tabs.registerScrollPrevControl(this);\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterScrollPrevControl(this);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n this.tabs.onScrollButtonClick('prev', event);\n }\n}\n\n@Directive({\n selector: '[tngTabsScrollButtonNext]',\n exportAs: 'tngTabsScrollButtonNext',\n standalone: true,\n})\nexport class TngTabsScrollButtonNext {\n private readonly tabs = inject(TngTabs, { host: true });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tabs-scroll-button-next' as const;\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n return this.tabs.isScrollButtonHidden() ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabled(): '' | null {\n return this.tabs.isScrollButtonDisabled('next') ? '' : null;\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.tabs.isScrollButtonDisabled('next') ? 'true' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.tabs.isScrollButtonDisabled('next') ? 'true' : 'false';\n }\n\n constructor() {\n this.tabs.registerScrollNextControl(this);\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterScrollNextControl(this);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n this.tabs.onScrollButtonClick('next', event);\n }\n}\n\n@Directive({\n selector: '[tngTab]',\n exportAs: 'tngTab',\n standalone: true,\n})\nexport class TngTab {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tabs = inject(TngTabs, { host: true });\n private resolvedId = createTabId();\n private readonly registrationOrder = nextRegistrationOrder++;\n private lastKnownValue: TngTabsValue | null = null;\n private lastKnownDisabled = false;\n\n readonly valueInput = input<TngTabsValue | null | undefined, unknown>(undefined, {\n alias: 'value',\n transform: normalizeOptionalValueInput,\n });\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: normalizeBooleanInput,\n });\n readonly panelId = input<string | null | undefined, unknown>(undefined, {\n alias: 'panelId',\n transform: normalizeOptionalStringInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tab' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'tab' as const;\n\n @HostBinding('attr.id')\n protected get id(): string {\n return this.resolvedId;\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndex(): string {\n return this.tabs.getTabIndex(this);\n }\n\n @HostBinding('attr.aria-selected')\n protected get ariaSelected(): 'true' | 'false' {\n return this.tabs.isTabSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-controls')\n protected get ariaControls(): string | null {\n return this.tabs.getPanelIdForTab(this);\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.isDisabledInContext() ? 'true' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get hostDisabled(): '' | null {\n return this.isDisabledInContext() ? '' : null;\n }\n\n @HostBinding('attr.data-selected')\n protected get dataSelected(): 'true' | 'false' {\n return this.tabs.isTabSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocused(): 'true' | 'false' {\n return this.tabs.isTabFocused(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.isDisabledInContext() ? 'true' : 'false';\n }\n\n constructor() {\n this.tabs.registerTab(this);\n }\n\n ngOnInit(): void {\n this.syncResolvedIdFromHost();\n this.lastKnownValue = this.getValue();\n this.lastKnownDisabled = this.isDisabledInContext();\n }\n\n ngDoCheck(): void {\n const idChanged = this.syncResolvedIdFromHost();\n const currentValue = this.getValue();\n const currentDisabled = this.isDisabledInContext();\n\n if (\n idChanged ||\n !valuesEqual(this.lastKnownValue, currentValue) ||\n this.lastKnownDisabled !== currentDisabled\n ) {\n this.lastKnownValue = currentValue;\n this.lastKnownDisabled = currentDisabled;\n this.tabs.notifyTabMutated(this);\n }\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterTab(this);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n if (this.isDisabledInContext()) {\n event.preventDefault();\n return;\n }\n\n const target = event.target;\n if (target instanceof Element && target !== this.hostRef.nativeElement) {\n if (isFocusableInteractiveElement(target) && this.hostRef.nativeElement.contains(target)) {\n return;\n }\n }\n\n this.focusSelf();\n this.tabs.requestSelection(this, 'pointer');\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n if (this.isDisabledInContext()) {\n return;\n }\n\n this.tabs.onTabFocused(this, 'pointer');\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.tabs.handleTabKeydown(this, event);\n }\n\n getRegistrationOrder(): number {\n return this.registrationOrder;\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n getItemId(): string {\n return this.resolvedId;\n }\n\n getValue(): TngTabsValue {\n const explicitValue = this.valueInput();\n if (explicitValue !== undefined && explicitValue !== null) {\n return explicitValue;\n }\n\n const hostValue = this.hostRef.nativeElement.getAttribute('value');\n if (hostValue !== null && hostValue.length > 0) {\n return hostValue;\n }\n\n return this.resolvedId;\n }\n\n getExplicitPanelId(): string | null {\n return this.panelId() ?? null;\n }\n\n isDisabledInContext(): boolean {\n if (this.tabs.isDisabled()) {\n return true;\n }\n\n return this.disabledInput();\n }\n\n focusSelf(): void {\n this.hostRef.nativeElement.focus();\n }\n\n private syncResolvedIdFromHost(): boolean {\n const hostId = this.hostRef.nativeElement.getAttribute('id');\n if (hostId === null || hostId.length === 0 || hostId === this.resolvedId) {\n return false;\n }\n\n this.resolvedId = hostId;\n return true;\n }\n}\n\n@Directive({\n selector: '[tngTabPanel]',\n exportAs: 'tngTabPanel',\n standalone: true,\n})\nexport class TngTabPanel {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tabs = inject(TngTabs, { host: true });\n private resolvedId = createPanelId();\n private readonly registrationOrder = nextRegistrationOrder++;\n private mounted = true;\n private activated = false;\n private anchor: Comment | null = null;\n private lastKnownValue: TngTabsValue | null = null;\n\n readonly valueInput = input<TngTabsValue | null | undefined, unknown>(undefined, {\n alias: 'value',\n transform: normalizeOptionalValueInput,\n });\n readonly labelledById = input<string | null | undefined, unknown>(undefined, {\n alias: 'labelledById',\n transform: normalizeOptionalStringInput,\n });\n readonly unmountOnExit = input<boolean, unknown>(false, {\n alias: 'unmountOnExit',\n transform: normalizeBooleanInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tab-panel' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'tabpanel' as const;\n\n @HostBinding('attr.id')\n protected get id(): string {\n return this.resolvedId;\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledby(): string | null {\n return this.getExplicitLabelledById() ?? this.tabs.getTabIdForPanel(this);\n }\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n if (this.tabs.isPanelActive(this)) {\n this.markActivated();\n return null;\n }\n\n return '';\n }\n\n @HostBinding('attr.data-active')\n protected get dataActive(): 'true' | 'false' {\n return this.tabs.isPanelActive(this) ? 'true' : 'false';\n }\n\n constructor() {\n this.tabs.registerPanel(this);\n }\n\n ngOnInit(): void {\n this.syncResolvedIdFromHost();\n this.lastKnownValue = this.getValue();\n this.syncMountState();\n }\n\n ngDoCheck(): void {\n const idChanged = this.syncResolvedIdFromHost();\n const currentValue = this.getValue();\n if (idChanged || !valuesEqual(this.lastKnownValue, currentValue)) {\n this.lastKnownValue = currentValue;\n this.tabs.notifyPanelMutated();\n }\n\n this.syncMountState();\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterPanel(this);\n this.removeAnchor();\n }\n\n getRegistrationOrder(): number {\n return this.registrationOrder;\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n getPanelId(): string {\n return this.resolvedId;\n }\n\n getValue(): TngTabsValue {\n const explicitValue = this.valueInput();\n if (explicitValue !== undefined && explicitValue !== null) {\n return explicitValue;\n }\n\n const hostValue = this.hostRef.nativeElement.getAttribute('value');\n if (hostValue !== null && hostValue.length > 0) {\n return hostValue;\n }\n\n return this.resolvedId;\n }\n\n getExplicitLabelledById(): string | null {\n return this.labelledById() ?? null;\n }\n\n hasActivated(): boolean {\n return this.activated;\n }\n\n markActivated(): void {\n this.activated = true;\n }\n\n private syncMountState(): void {\n const shouldMount = this.tabs.isPanelMounted(this);\n if (shouldMount) {\n this.mountHost();\n return;\n }\n\n this.unmountHost();\n }\n\n private mountHost(): void {\n if (this.mounted) {\n return;\n }\n\n const anchor = this.ensureAnchor();\n const parent = anchor.parentNode;\n if (parent === null) {\n return;\n }\n\n parent.insertBefore(this.hostRef.nativeElement, anchor);\n this.mounted = true;\n }\n\n private unmountHost(): void {\n if (!this.mounted) {\n return;\n }\n\n const host = this.hostRef.nativeElement;\n const parent = host.parentNode;\n if (parent === null) {\n return;\n }\n\n const anchor = this.ensureAnchor();\n if (anchor.parentNode !== parent) {\n parent.insertBefore(anchor, host);\n }\n\n parent.removeChild(host);\n this.mounted = false;\n\n if (!this.tabs.isKeepAliveEnabled() || this.unmountOnExit()) {\n this.resetTransientFormState();\n }\n }\n\n private ensureAnchor(): Comment {\n if (this.anchor !== null) {\n return this.anchor;\n }\n\n this.anchor = this.hostRef.nativeElement.ownerDocument.createComment('tng-tab-panel');\n return this.anchor;\n }\n\n private removeAnchor(): void {\n if (this.anchor === null) {\n return;\n }\n\n this.anchor.parentNode?.removeChild(this.anchor);\n this.anchor = null;\n }\n\n private resetTransientFormState(): void {\n const controls = this.hostRef.nativeElement.querySelectorAll<\n HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\n >('input, textarea, select');\n\n controls.forEach((control) => {\n if (control instanceof HTMLInputElement) {\n if (control.type === 'checkbox' || control.type === 'radio') {\n control.checked = control.defaultChecked;\n } else {\n control.value = '';\n }\n return;\n }\n\n if (control instanceof HTMLTextAreaElement) {\n control.value = '';\n return;\n }\n\n control.selectedIndex = -1;\n });\n }\n\n private syncResolvedIdFromHost(): boolean {\n const hostId = this.hostRef.nativeElement.getAttribute('id');\n if (hostId === null || hostId.length === 0 || hostId === this.resolvedId) {\n return false;\n }\n\n this.resolvedId = hostId;\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"tng-tabs.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/navigation/tabs/tng-tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { createTngIdFactory } from '@tailng-ui/cdk';\n\ntype TngTabsDirection = 'ltr' | 'rtl' | 'auto';\ntype TngTabsOrientation = 'horizontal' | 'vertical';\ntype TngTabsActivationMode = 'auto' | 'manual';\ntype TngTabsScrollButtonsMode = 'auto' | 'off' | 'on';\ntype TngTabsFocusMove = 'next' | 'prev' | 'first' | 'last';\ntype TngTabsFocusTrigger = 'pointer' | 'keyboard' | 'programmatic';\ntype TngTabsSelectionTrigger = 'pointer' | 'keyboard' | 'programmatic';\n\nexport type TngTabsValue = string | number;\n\nexport type TngTabChangeEvent = Readonly<{\n value: TngTabsValue;\n previousValue: TngTabsValue | null;\n trigger: TngTabsSelectionTrigger;\n}>;\n\nexport type TngTabsFocusChangeEvent = Readonly<{\n value: TngTabsValue;\n previousValue: TngTabsValue | null;\n trigger: TngTabsFocusTrigger;\n}>;\n\nconst createTabId = createTngIdFactory('tng-tab');\nconst createPanelId = createTngIdFactory('tng-tab-panel');\nlet nextRegistrationOrder = 0;\n\nfunction normalizeBooleanInput(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === '' || normalized === 'true') {\n return true;\n }\n\n if (normalized === 'false') {\n return false;\n }\n }\n\n return false;\n}\n\nfunction normalizeOptionalBooleanInput(value: unknown): boolean | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return normalizeBooleanInput(value);\n}\n\nfunction normalizeDirectionInput(value: unknown): TngTabsDirection {\n if (value === 'ltr' || value === 'rtl' || value === 'auto') {\n return value;\n }\n\n return 'auto';\n}\n\nfunction normalizeOrientationInput(value: unknown): TngTabsOrientation {\n return value === 'vertical' ? 'vertical' : 'horizontal';\n}\n\nfunction normalizeActivationInput(value: unknown): TngTabsActivationMode {\n return value === 'manual' ? 'manual' : 'auto';\n}\n\nfunction normalizeScrollButtonsInput(value: unknown): TngTabsScrollButtonsMode {\n if (value === 'auto' || value === 'on' || value === 'off') {\n return value;\n }\n\n if (value === '' || value === true || value === 'true') {\n return 'auto';\n }\n\n return 'off';\n}\n\nfunction normalizeOptionalValueInput(value: unknown): TngTabsValue | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n if (typeof value === 'number' || typeof value === 'string') {\n return value;\n }\n\n return String(value);\n}\n\nfunction normalizeOptionalStringInput(value: unknown): string | null | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n if (value === null) {\n return null;\n }\n\n return String(value);\n}\n\nfunction valuesEqual(a: TngTabsValue | null, b: TngTabsValue | null): boolean {\n return a === b;\n}\n\nfunction compareByDomPosition(\n aElement: HTMLElement,\n bElement: HTMLElement,\n aOrder: number,\n bOrder: number,\n): number {\n if (aElement === bElement) {\n return 0;\n }\n\n const relativePosition = aElement.compareDocumentPosition(bElement);\n if (relativePosition & Node.DOCUMENT_POSITION_FOLLOWING) {\n return -1;\n }\n\n if (relativePosition & Node.DOCUMENT_POSITION_PRECEDING) {\n return 1;\n }\n\n return aOrder - bOrder;\n}\n\nfunction isFocusableInteractiveElement(element: Element): boolean {\n return (\n element.matches('a[href]') ||\n element.matches('button') ||\n element.matches('input') ||\n element.matches('select') ||\n element.matches('textarea') ||\n element.matches('[tabindex]') ||\n element.matches('[contenteditable=\"true\"]')\n );\n}\n\n@Directive({\n selector: '[tngTabs]',\n exportAs: 'tngTabs',\n standalone: true,\n})\nexport class TngTabs {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tabs = new Set<TngTab>();\n private readonly panels = new Set<TngTabPanel>();\n private tabList: TngTabList | null = null;\n private scrollPrevControl: TngTabsScrollButtonPrev | null = null;\n private scrollNextControl: TngTabsScrollButtonNext | null = null;\n private uncontrolledValue: TngTabsValue | null = null;\n private focusedValue: TngTabsValue | null = null;\n private hasUserSelection = false;\n private initialized = false;\n\n readonly value = input<TngTabsValue | null | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueInput,\n });\n readonly defaultValue = input<TngTabsValue | null | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueInput,\n });\n readonly activation = input<TngTabsActivationMode, unknown>('auto', {\n transform: normalizeActivationInput,\n });\n readonly orientation = input<TngTabsOrientation, unknown>('horizontal', {\n transform: normalizeOrientationInput,\n });\n readonly scrollButtons = input<TngTabsScrollButtonsMode, unknown>('off', {\n transform: normalizeScrollButtonsInput,\n });\n readonly loop = input<boolean, unknown>(true, {\n transform: normalizeBooleanInput,\n });\n readonly dir = input<TngTabsDirection, unknown>('auto', {\n transform: normalizeDirectionInput,\n });\n readonly disabled = input<boolean, unknown>(false, {\n transform: normalizeBooleanInput,\n });\n readonly lazy = input<boolean | undefined, unknown>(undefined, {\n transform: normalizeOptionalBooleanInput,\n });\n readonly keepAlive = input<boolean | undefined, unknown>(undefined, {\n transform: normalizeOptionalBooleanInput,\n });\n\n readonly valueChange = output<TngTabsValue | null>();\n readonly tabChange = output<TngTabChangeEvent>();\n readonly focusChange = output<TngTabsFocusChangeEvent>();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tabs' as const;\n\n @HostBinding('attr.data-orientation')\n protected get dataOrientation(): TngTabsOrientation {\n return this.orientation();\n }\n\n @HostBinding('attr.data-activation')\n protected get dataActivation(): TngTabsActivationMode {\n return this.activation();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n ngDoCheck(): void {\n this.syncStateFromRegistry();\n }\n\n isDisabled(): boolean {\n return this.disabled();\n }\n\n isKeepAliveEnabled(): boolean {\n return this.keepAlive() ?? true;\n }\n\n isLazyEnabled(): boolean {\n return this.lazy() ?? false;\n }\n\n select(value: TngTabsValue): void {\n const targetTab = this.findEnabledTabByValue(value);\n if (targetTab === null) {\n return;\n }\n\n this.requestSelection(targetTab, 'programmatic');\n }\n\n focus(value: TngTabsValue): void {\n const targetTab = this.findEnabledTabByValue(value);\n if (targetTab === null) {\n return;\n }\n\n this.moveFocusToTab(targetTab, 'programmatic');\n if (this.activation() === 'auto') {\n this.requestSelection(targetTab, 'programmatic');\n }\n }\n\n next(): void {\n this.moveFocusFromCurrentTab('next', 'programmatic');\n }\n\n prev(): void {\n this.moveFocusFromCurrentTab('prev', 'programmatic');\n }\n\n registerTab(tab: TngTab): void {\n this.tabs.add(tab);\n }\n\n unregisterTab(tab: TngTab): void {\n const orderedTabs = this.getOrderedTabs();\n const removedIndex = orderedTabs.indexOf(tab);\n const removedValue = tab.getValue();\n const selectedValue = this.getEffectiveSelectedValue();\n const focusedValue = this.resolveCurrentTabStopValue();\n\n this.tabs.delete(tab);\n\n if (selectedValue !== null && valuesEqual(selectedValue, removedValue)) {\n const nextSelectedValue = this.resolveNeighborValueOnRemoval(orderedTabs, removedIndex);\n this.applyLifecycleSelection(nextSelectedValue);\n }\n\n if (focusedValue !== null && valuesEqual(focusedValue, removedValue)) {\n const nextFocusedValue = this.resolveNeighborValueOnRemoval(orderedTabs, removedIndex);\n this.focusedValue = nextFocusedValue;\n }\n\n this.syncStateFromRegistry();\n }\n\n notifyTabMutated(tab: TngTab): void {\n const selectedValue = this.getEffectiveSelectedValue();\n if (selectedValue !== null && valuesEqual(selectedValue, tab.getValue()) && tab.isDisabledInContext()) {\n const replacement = this.resolveNeighborForDisabledTab(tab);\n this.applyLifecycleSelection(replacement);\n }\n\n const focusedValue = this.resolveCurrentTabStopValue();\n if (focusedValue !== null && valuesEqual(focusedValue, tab.getValue()) && tab.isDisabledInContext()) {\n this.focusedValue = this.resolveNeighborForDisabledTab(tab);\n }\n\n this.syncStateFromRegistry();\n }\n\n registerPanel(panel: TngTabPanel): void {\n this.panels.add(panel);\n }\n\n unregisterPanel(panel: TngTabPanel): void {\n this.panels.delete(panel);\n this.syncStateFromRegistry();\n }\n\n notifyPanelMutated(): void {\n this.syncStateFromRegistry();\n }\n\n registerScrollPrevControl(control: TngTabsScrollButtonPrev): void {\n this.scrollPrevControl = control;\n }\n\n unregisterScrollPrevControl(control: TngTabsScrollButtonPrev): void {\n if (this.scrollPrevControl === control) {\n this.scrollPrevControl = null;\n }\n }\n\n registerScrollNextControl(control: TngTabsScrollButtonNext): void {\n this.scrollNextControl = control;\n }\n\n unregisterScrollNextControl(control: TngTabsScrollButtonNext): void {\n if (this.scrollNextControl === control) {\n this.scrollNextControl = null;\n }\n }\n\n registerTabList(tabList: TngTabList): void {\n this.tabList = tabList;\n }\n\n unregisterTabList(tabList: TngTabList): void {\n if (this.tabList !== tabList) {\n return;\n }\n\n this.tabList = null;\n }\n\n onTabListScrolled(): void {}\n\n onTabListFocused(): void {\n if (this.disabled()) {\n return;\n }\n\n const enabledTabs = this.getEnabledTabs();\n if (enabledTabs.length === 0) {\n return;\n }\n\n const currentTabStopValue = this.resolveCurrentTabStopValue(enabledTabs);\n const currentTab =\n this.findEnabledTabByValue(currentTabStopValue, enabledTabs) ??\n enabledTabs[0] ??\n null;\n if (currentTab === null) {\n return;\n }\n\n currentTab.focusSelf();\n }\n\n handleTabListWheel(event: WheelEvent): void {\n if (this.orientation() !== 'horizontal') {\n return;\n }\n\n if (!this.isTabListOverflowing()) {\n return;\n }\n\n const dominantDelta = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY;\n if (dominantDelta === 0) {\n return;\n }\n\n event.preventDefault();\n this.scrollTabListBy(dominantDelta);\n }\n\n isScrollButtonHidden(): boolean {\n return !this.shouldShowScrollButtons();\n }\n\n isScrollButtonDisabled(direction: 'next' | 'prev'): boolean {\n if (this.isScrollButtonHidden()) {\n return true;\n }\n\n const tabListElement = this.getTabListElement();\n if (tabListElement === null) {\n return true;\n }\n\n const maxScrollLeft = Math.max(0, tabListElement.scrollWidth - tabListElement.clientWidth);\n if (direction === 'prev') {\n return tabListElement.scrollLeft <= 0;\n }\n\n return tabListElement.scrollLeft >= maxScrollLeft;\n }\n\n onScrollButtonClick(direction: 'next' | 'prev', event: MouseEvent): void {\n if (this.isScrollButtonDisabled(direction)) {\n event.preventDefault();\n return;\n }\n\n const delta = direction === 'prev' ? -this.resolveTabListScrollStep() : this.resolveTabListScrollStep();\n this.scrollTabListBy(delta);\n event.preventDefault();\n }\n\n getTabIndex(tab: TngTab): string {\n if (this.disabled() || tab.isDisabledInContext()) {\n return '-1';\n }\n\n const tabStop = this.resolveCurrentTabStopValue();\n if (tabStop === null) {\n return '-1';\n }\n\n return valuesEqual(tabStop, tab.getValue()) ? '0' : '-1';\n }\n\n isTabSelected(tab: TngTab): boolean {\n const selectedValue = this.getEffectiveSelectedValue();\n if (selectedValue === null) {\n return false;\n }\n\n return valuesEqual(selectedValue, tab.getValue());\n }\n\n isTabFocused(tab: TngTab): boolean {\n const tabStop = this.resolveCurrentTabStopValue();\n return tabStop !== null && valuesEqual(tabStop, tab.getValue());\n }\n\n getPanelIdForTab(tab: TngTab): string | null {\n const explicitPanelId = tab.getExplicitPanelId();\n if (explicitPanelId !== null) {\n return explicitPanelId;\n }\n\n const matchedPanel = this.findPanelByValue(tab.getValue());\n if (matchedPanel !== null) {\n return matchedPanel.getPanelId();\n }\n\n const tabs = this.getOrderedTabs();\n const panels = this.getOrderedPanels();\n const tabIndex = tabs.indexOf(tab);\n if (tabIndex < 0) {\n return null;\n }\n\n return panels[tabIndex]?.getPanelId() ?? null;\n }\n\n getTabIdForPanel(panel: TngTabPanel): string | null {\n const explicitLabelledById = panel.getExplicitLabelledById();\n if (explicitLabelledById !== null) {\n return explicitLabelledById;\n }\n\n const matchedTab = this.findTabByValue(panel.getValue());\n if (matchedTab !== null) {\n return matchedTab.getItemId();\n }\n\n const tabs = this.getOrderedTabs();\n const panels = this.getOrderedPanels();\n const panelIndex = panels.indexOf(panel);\n if (panelIndex < 0) {\n return null;\n }\n\n return tabs[panelIndex]?.getItemId() ?? null;\n }\n\n isPanelActive(panel: TngTabPanel): boolean {\n const selectedValue = this.getEffectiveSelectedValue();\n if (selectedValue === null) {\n return false;\n }\n\n return valuesEqual(selectedValue, panel.getValue());\n }\n\n isPanelMounted(panel: TngTabPanel): boolean {\n if (this.isPanelActive(panel)) {\n panel.markActivated();\n return true;\n }\n\n const keepAlive = panel.unmountOnExit() ? false : this.isKeepAliveEnabled();\n if (!keepAlive) {\n return false;\n }\n\n if (!this.isLazyEnabled()) {\n return true;\n }\n\n return panel.hasActivated();\n }\n\n onTabFocused(tab: TngTab, trigger: TngTabsFocusTrigger): void {\n if (this.disabled() || tab.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(tab.getValue(), trigger);\n this.scrollTabIntoView(tab);\n }\n\n requestSelection(tab: TngTab, trigger: TngTabsSelectionTrigger): void {\n if (this.disabled() || tab.isDisabledInContext()) {\n return;\n }\n\n const nextValue = tab.getValue();\n const previousValue = this.getEffectiveSelectedValue();\n if (previousValue !== null && valuesEqual(previousValue, nextValue)) {\n return;\n }\n\n if (!this.isControlled()) {\n this.uncontrolledValue = nextValue;\n this.hasUserSelection = true;\n }\n\n this.focusedValue = nextValue;\n this.valueChange.emit(nextValue);\n this.tabChange.emit({\n value: nextValue,\n previousValue,\n trigger,\n });\n\n this.scrollTabIntoView(tab);\n this.syncStateFromRegistry();\n }\n\n handleTabKeydown(tab: TngTab, event: KeyboardEvent): void {\n if (this.disabled() || tab.isDisabledInContext()) {\n return;\n }\n\n const focusMove = this.resolveFocusMove(event.key);\n if (focusMove !== null) {\n event.preventDefault();\n this.moveFocusByAction(tab, focusMove, 'keyboard');\n return;\n }\n\n if (event.key !== 'Enter' && event.key !== ' ' && event.key !== 'Spacebar') {\n return;\n }\n\n if (this.activation() === 'manual' || this.activation() === 'auto') {\n event.preventDefault();\n this.requestSelection(tab, 'keyboard');\n }\n }\n\n private resolveFocusMove(key: string): TngTabsFocusMove | null {\n if (key === 'Home') {\n return 'first';\n }\n\n if (key === 'End') {\n return 'last';\n }\n\n if (this.orientation() === 'vertical') {\n if (key === 'ArrowDown') {\n return 'next';\n }\n\n if (key === 'ArrowUp') {\n return 'prev';\n }\n\n return null;\n }\n\n if (key !== 'ArrowLeft' && key !== 'ArrowRight') {\n return null;\n }\n\n const isRtl = this.resolveDirection() === 'rtl';\n const moveToNext = key === (isRtl ? 'ArrowLeft' : 'ArrowRight');\n return moveToNext ? 'next' : 'prev';\n }\n\n private moveFocusByAction(\n sourceTab: TngTab,\n action: TngTabsFocusMove,\n trigger: TngTabsFocusTrigger,\n ): void {\n const enabledTabs = this.getEnabledTabs();\n if (enabledTabs.length === 0) {\n return;\n }\n\n const currentIndex = enabledTabs.indexOf(sourceTab);\n if (currentIndex < 0) {\n return;\n }\n\n const nextTab = this.resolveFocusTarget(enabledTabs, currentIndex, action);\n if (nextTab === null) {\n return;\n }\n\n this.moveFocusToTab(nextTab, trigger);\n if (this.activation() === 'auto') {\n this.requestSelection(nextTab, trigger === 'programmatic' ? 'programmatic' : 'keyboard');\n }\n }\n\n private moveFocusToTab(tab: TngTab, trigger: TngTabsFocusTrigger): void {\n if (this.disabled() || tab.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(tab.getValue(), trigger);\n tab.focusSelf();\n }\n\n private moveFocusFromCurrentTab(\n direction: 'next' | 'prev',\n trigger: TngTabsFocusTrigger,\n ): void {\n const enabledTabs = this.getEnabledTabs();\n if (enabledTabs.length === 0) {\n return;\n }\n\n const activeElement = this.hostRef.nativeElement.ownerDocument?.activeElement ?? null;\n const activeTab = this.findTabContainingElement(activeElement);\n const currentTab = activeTab ?? this.findEnabledTabByValue(this.resolveCurrentTabStopValue(), enabledTabs);\n if (currentTab === null) {\n return;\n }\n\n const currentIndex = enabledTabs.indexOf(currentTab);\n if (currentIndex < 0) {\n return;\n }\n\n const nextTab = this.resolveFocusTarget(enabledTabs, currentIndex, direction);\n if (nextTab === null) {\n return;\n }\n\n this.moveFocusToTab(nextTab, trigger);\n if (this.activation() === 'auto') {\n this.requestSelection(nextTab, trigger === 'programmatic' ? 'programmatic' : 'keyboard');\n }\n }\n\n private resolveFocusTarget(\n enabledTabs: readonly TngTab[],\n currentIndex: number,\n action: TngTabsFocusMove,\n ): TngTab | null {\n if (enabledTabs.length === 0 || currentIndex < 0) {\n return null;\n }\n\n if (action === 'first') {\n return enabledTabs[0] ?? null;\n }\n\n if (action === 'last') {\n return enabledTabs[enabledTabs.length - 1] ?? null;\n }\n\n if (action === 'next') {\n if (currentIndex + 1 < enabledTabs.length) {\n return enabledTabs[currentIndex + 1] ?? null;\n }\n\n return this.loop() ? (enabledTabs[0] ?? null) : (enabledTabs[currentIndex] ?? null);\n }\n\n if (currentIndex - 1 >= 0) {\n return enabledTabs[currentIndex - 1] ?? null;\n }\n\n return this.loop()\n ? (enabledTabs[enabledTabs.length - 1] ?? null)\n : (enabledTabs[currentIndex] ?? null);\n }\n\n private setFocusedValue(value: TngTabsValue, trigger: TngTabsFocusTrigger): void {\n const previousValue = this.focusedValue;\n if (previousValue !== null && valuesEqual(previousValue, value)) {\n return;\n }\n\n this.focusedValue = value;\n this.focusChange.emit({\n value,\n previousValue,\n trigger,\n });\n }\n\n private applyLifecycleSelection(nextValue: TngTabsValue | null): void {\n if (this.isControlled()) {\n return;\n }\n\n this.uncontrolledValue = nextValue;\n if (nextValue !== null) {\n this.focusedValue = nextValue;\n }\n }\n\n private resolveDirection(): 'ltr' | 'rtl' {\n const configuredDirection = this.dir();\n if (configuredDirection !== 'auto') {\n return configuredDirection;\n }\n\n const host = this.hostRef.nativeElement;\n const nearestDirection =\n host.closest<HTMLElement>('[dir]')?.getAttribute('dir') ??\n host.ownerDocument?.documentElement.getAttribute('dir');\n\n return nearestDirection?.toLowerCase() === 'rtl' ? 'rtl' : 'ltr';\n }\n\n private getSelectedValue(): TngTabsValue | null {\n if (this.isControlled()) {\n return this.value() as TngTabsValue;\n }\n\n return this.uncontrolledValue;\n }\n\n private getEffectiveSelectedValue(enabledTabs = this.getEnabledTabs()): TngTabsValue | null {\n if (enabledTabs.length === 0) {\n return null;\n }\n\n const selectedValue = this.getSelectedValue();\n if (selectedValue !== null && this.findEnabledTabByValue(selectedValue, enabledTabs) !== null) {\n return selectedValue;\n }\n\n return enabledTabs[0]?.getValue() ?? null;\n }\n\n private resolveCurrentTabStopValue(enabledTabs = this.getEnabledTabs()): TngTabsValue | null {\n if (enabledTabs.length === 0) {\n return null;\n }\n\n if (this.focusedValue !== null && this.findEnabledTabByValue(this.focusedValue, enabledTabs) !== null) {\n return this.focusedValue;\n }\n\n const selectedValue = this.getEffectiveSelectedValue(enabledTabs);\n if (selectedValue !== null) {\n return selectedValue;\n }\n\n return enabledTabs[0]?.getValue() ?? null;\n }\n\n private syncStateFromRegistry(): void {\n const enabledTabs = this.getEnabledTabs();\n\n if (!this.initialized) {\n this.initialized = true;\n if (!this.isControlled()) {\n const defaultValue = this.defaultValue();\n if (defaultValue !== undefined && defaultValue !== null) {\n this.uncontrolledValue = this.findEnabledTabByValue(defaultValue, enabledTabs)?.getValue() ?? null;\n } else {\n this.uncontrolledValue = enabledTabs[0]?.getValue() ?? null;\n }\n }\n }\n\n if (enabledTabs.length === 0) {\n if (!this.isControlled()) {\n this.uncontrolledValue = null;\n }\n this.focusedValue = null;\n return;\n }\n\n if (!this.isControlled()) {\n const defaultValue = this.defaultValue();\n if (!this.hasUserSelection && defaultValue !== undefined && defaultValue !== null) {\n const defaultTab = this.findEnabledTabByValue(defaultValue, enabledTabs);\n if (defaultTab !== null) {\n this.uncontrolledValue = defaultTab.getValue();\n } else if (this.uncontrolledValue === null) {\n this.uncontrolledValue = enabledTabs[0]?.getValue() ?? null;\n }\n } else {\n const current = this.uncontrolledValue;\n if (current === null || this.findEnabledTabByValue(current, enabledTabs) === null) {\n this.uncontrolledValue = enabledTabs[0]?.getValue() ?? null;\n }\n }\n }\n\n const selectedValue = this.getEffectiveSelectedValue(enabledTabs);\n if (selectedValue !== null) {\n this.findPanelByValue(selectedValue)?.markActivated();\n }\n\n this.focusedValue = this.resolveCurrentTabStopValue(enabledTabs);\n }\n\n private resolveNeighborValueOnRemoval(\n orderedTabs: readonly TngTab[],\n removedIndex: number,\n ): TngTabsValue | null {\n if (removedIndex < 0) {\n return this.getEnabledTabs()[0]?.getValue() ?? null;\n }\n\n for (let index = removedIndex + 1; index < orderedTabs.length; index += 1) {\n const candidate = orderedTabs[index];\n if (candidate !== undefined && !candidate.isDisabledInContext()) {\n return candidate.getValue();\n }\n }\n\n for (let index = removedIndex - 1; index >= 0; index -= 1) {\n const candidate = orderedTabs[index];\n if (candidate !== undefined && !candidate.isDisabledInContext()) {\n return candidate.getValue();\n }\n }\n\n return null;\n }\n\n private resolveNeighborForDisabledTab(tab: TngTab): TngTabsValue | null {\n const orderedTabs = this.getOrderedTabs();\n const currentIndex = orderedTabs.indexOf(tab);\n if (currentIndex < 0) {\n return this.getEnabledTabs()[0]?.getValue() ?? null;\n }\n\n for (let index = currentIndex - 1; index >= 0; index -= 1) {\n const candidate = orderedTabs[index];\n if (candidate !== undefined && !candidate.isDisabledInContext()) {\n return candidate.getValue();\n }\n }\n\n for (let index = currentIndex + 1; index < orderedTabs.length; index += 1) {\n const candidate = orderedTabs[index];\n if (candidate !== undefined && !candidate.isDisabledInContext()) {\n return candidate.getValue();\n }\n }\n\n return null;\n }\n\n private isControlled(): boolean {\n const value = this.value();\n return value !== undefined && value !== null;\n }\n\n private getOrderedTabs(): TngTab[] {\n const tabs = Array.from(this.tabs);\n tabs.sort((a, b) =>\n compareByDomPosition(\n a.getHostElement(),\n b.getHostElement(),\n a.getRegistrationOrder(),\n b.getRegistrationOrder(),\n ),\n );\n return tabs;\n }\n\n private getEnabledTabs(): TngTab[] {\n return this.getOrderedTabs().filter((tab) => !tab.isDisabledInContext());\n }\n\n private getOrderedPanels(): TngTabPanel[] {\n const panels = Array.from(this.panels);\n panels.sort((a, b) =>\n compareByDomPosition(\n a.getHostElement(),\n b.getHostElement(),\n a.getRegistrationOrder(),\n b.getRegistrationOrder(),\n ),\n );\n return panels;\n }\n\n private findTabByValue(value: TngTabsValue | null): TngTab | null {\n if (value === null) {\n return null;\n }\n\n const tabs = this.getOrderedTabs();\n return tabs.find((tab) => valuesEqual(tab.getValue(), value)) ?? null;\n }\n\n private findEnabledTabByValue(\n value: TngTabsValue | null,\n enabledTabs = this.getEnabledTabs(),\n ): TngTab | null {\n if (value === null) {\n return null;\n }\n\n return enabledTabs.find((tab) => valuesEqual(tab.getValue(), value)) ?? null;\n }\n\n private findPanelByValue(value: TngTabsValue | null): TngTabPanel | null {\n if (value === null) {\n return null;\n }\n\n const panels = this.getOrderedPanels();\n return panels.find((panel) => valuesEqual(panel.getValue(), value)) ?? null;\n }\n\n private findTabContainingElement(element: Element | null): TngTab | null {\n if (element === null) {\n return null;\n }\n\n const tabs = this.getOrderedTabs();\n return (\n tabs.find((tab) => {\n const host = tab.getHostElement();\n return host === element || host.contains(element);\n }) ?? null\n );\n }\n\n private getTabListElement(): HTMLElement | null {\n return this.tabList?.getHostElement() ?? null;\n }\n\n private isTabListOverflowing(): boolean {\n const tabListElement = this.getTabListElement();\n if (tabListElement === null) {\n return false;\n }\n\n return tabListElement.scrollWidth > tabListElement.clientWidth;\n }\n\n private shouldShowScrollButtons(): boolean {\n if (this.scrollPrevControl === null && this.scrollNextControl === null) {\n return false;\n }\n\n const mode = this.scrollButtons();\n if (mode === 'on') {\n return true;\n }\n\n if (mode !== 'auto') {\n return false;\n }\n\n return this.isTabListOverflowing();\n }\n\n private resolveTabListScrollStep(): number {\n const tabListElement = this.getTabListElement();\n if (tabListElement === null) {\n return 120;\n }\n\n return Math.max(80, Math.round(tabListElement.clientWidth * 0.7));\n }\n\n private scrollTabListBy(delta: number): void {\n const tabListElement = this.getTabListElement();\n if (tabListElement === null || delta === 0) {\n return;\n }\n\n tabListElement.scrollLeft += delta;\n }\n\n private scrollTabIntoView(tab: TngTab): void {\n if (!this.isTabListOverflowing()) {\n return;\n }\n\n const host = tab.getHostElement();\n const scrollIntoView = host.scrollIntoView as\n | ((options?: ScrollIntoViewOptions) => void)\n | undefined;\n if (typeof scrollIntoView !== 'function') {\n return;\n }\n\n scrollIntoView.call(host, {\n block: 'nearest',\n inline: 'nearest',\n });\n }\n}\n\n@Directive({\n selector: '[tngTabList]',\n exportAs: 'tngTabList',\n standalone: true,\n})\nexport class TngTabList {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tabs = inject(TngTabs, { host: true });\n\n readonly ariaLabel = input<string | null | undefined, unknown>(undefined, {\n alias: 'ariaLabel',\n transform: normalizeOptionalStringInput,\n });\n readonly ariaLabelledby = input<string | null | undefined, unknown>(undefined, {\n alias: 'ariaLabelledby',\n transform: normalizeOptionalStringInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tab-list' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'tablist' as const;\n\n @HostBinding('attr.tabindex')\n protected readonly tabIndex = '-1' as const;\n\n @HostBinding('attr.aria-orientation')\n protected get ariaOrientation(): TngTabsOrientation {\n return this.tabs.orientation();\n }\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string | null {\n return this.ariaLabel() ?? null;\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get hostAriaLabelledby(): string | null {\n return this.ariaLabelledby() ?? null;\n }\n\n constructor() {\n this.tabs.registerTabList(this);\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterTabList(this);\n }\n\n @HostListener('wheel', ['$event'])\n protected onWheel(event: WheelEvent): void {\n this.tabs.handleTabListWheel(event);\n }\n\n @HostListener('scroll')\n protected onScroll(): void {\n this.tabs.onTabListScrolled();\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n this.tabs.onTabListFocused();\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n}\n\n@Directive({\n selector: '[tngTabsScrollButtonPrev]',\n exportAs: 'tngTabsScrollButtonPrev',\n standalone: true,\n})\nexport class TngTabsScrollButtonPrev {\n private readonly tabs = inject(TngTabs, { host: true });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tabs-scroll-button-prev' as const;\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n return this.tabs.isScrollButtonHidden() ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabled(): '' | null {\n return this.tabs.isScrollButtonDisabled('prev') ? '' : null;\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.tabs.isScrollButtonDisabled('prev') ? 'true' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.tabs.isScrollButtonDisabled('prev') ? 'true' : 'false';\n }\n\n constructor() {\n this.tabs.registerScrollPrevControl(this);\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterScrollPrevControl(this);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n this.tabs.onScrollButtonClick('prev', event);\n }\n}\n\n@Directive({\n selector: '[tngTabsScrollButtonNext]',\n exportAs: 'tngTabsScrollButtonNext',\n standalone: true,\n})\nexport class TngTabsScrollButtonNext {\n private readonly tabs = inject(TngTabs, { host: true });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tabs-scroll-button-next' as const;\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n return this.tabs.isScrollButtonHidden() ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabled(): '' | null {\n return this.tabs.isScrollButtonDisabled('next') ? '' : null;\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.tabs.isScrollButtonDisabled('next') ? 'true' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.tabs.isScrollButtonDisabled('next') ? 'true' : 'false';\n }\n\n constructor() {\n this.tabs.registerScrollNextControl(this);\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterScrollNextControl(this);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n this.tabs.onScrollButtonClick('next', event);\n }\n}\n\n@Directive({\n selector: '[tngTab]',\n exportAs: 'tngTab',\n standalone: true,\n})\nexport class TngTab {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tabs = inject(TngTabs, { host: true });\n private resolvedId = createTabId();\n private readonly registrationOrder = nextRegistrationOrder++;\n private lastKnownValue: TngTabsValue | null = null;\n private lastKnownDisabled = false;\n\n readonly valueInput = input<TngTabsValue | null | undefined, unknown>(undefined, {\n alias: 'value',\n transform: normalizeOptionalValueInput,\n });\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: normalizeBooleanInput,\n });\n readonly panelId = input<string | null | undefined, unknown>(undefined, {\n alias: 'panelId',\n transform: normalizeOptionalStringInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tab' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'tab' as const;\n\n @HostBinding('attr.id')\n protected get id(): string {\n return this.resolvedId;\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndex(): string {\n return this.tabs.getTabIndex(this);\n }\n\n @HostBinding('attr.aria-selected')\n protected get ariaSelected(): 'true' | 'false' {\n return this.tabs.isTabSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-controls')\n protected get ariaControls(): string | null {\n return this.tabs.getPanelIdForTab(this);\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.isDisabledInContext() ? 'true' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get hostDisabled(): '' | null {\n return this.isDisabledInContext() ? '' : null;\n }\n\n @HostBinding('attr.data-selected')\n protected get dataSelected(): 'true' | 'false' {\n return this.tabs.isTabSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocused(): 'true' | 'false' {\n return this.tabs.isTabFocused(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.isDisabledInContext() ? 'true' : 'false';\n }\n\n constructor() {\n this.tabs.registerTab(this);\n }\n\n ngOnInit(): void {\n this.syncResolvedIdFromHost();\n this.lastKnownValue = this.getValue();\n this.lastKnownDisabled = this.isDisabledInContext();\n }\n\n ngDoCheck(): void {\n const idChanged = this.syncResolvedIdFromHost();\n const currentValue = this.getValue();\n const currentDisabled = this.isDisabledInContext();\n\n if (\n idChanged ||\n !valuesEqual(this.lastKnownValue, currentValue) ||\n this.lastKnownDisabled !== currentDisabled\n ) {\n this.lastKnownValue = currentValue;\n this.lastKnownDisabled = currentDisabled;\n this.tabs.notifyTabMutated(this);\n }\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterTab(this);\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n if (this.isDisabledInContext()) {\n event.preventDefault();\n return;\n }\n\n const target = event.target;\n if (target instanceof Element && target !== this.hostRef.nativeElement) {\n if (isFocusableInteractiveElement(target) && this.hostRef.nativeElement.contains(target)) {\n return;\n }\n }\n\n this.focusSelf();\n this.tabs.requestSelection(this, 'pointer');\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n if (this.isDisabledInContext()) {\n return;\n }\n\n this.tabs.onTabFocused(this, 'pointer');\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.tabs.handleTabKeydown(this, event);\n }\n\n getRegistrationOrder(): number {\n return this.registrationOrder;\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n getItemId(): string {\n return this.resolvedId;\n }\n\n getValue(): TngTabsValue {\n const explicitValue = this.valueInput();\n if (explicitValue !== undefined && explicitValue !== null) {\n return explicitValue;\n }\n\n const hostValue = this.hostRef.nativeElement.getAttribute('value');\n if (hostValue !== null && hostValue.length > 0) {\n return hostValue;\n }\n\n return this.resolvedId;\n }\n\n getExplicitPanelId(): string | null {\n return this.panelId() ?? null;\n }\n\n isDisabledInContext(): boolean {\n if (this.tabs.isDisabled()) {\n return true;\n }\n\n return this.disabledInput();\n }\n\n focusSelf(): void {\n this.hostRef.nativeElement.focus();\n }\n\n private syncResolvedIdFromHost(): boolean {\n const hostId = this.hostRef.nativeElement.getAttribute('id');\n if (hostId === null || hostId.length === 0 || hostId === this.resolvedId) {\n return false;\n }\n\n this.resolvedId = hostId;\n return true;\n }\n}\n\n@Directive({\n selector: '[tngTabPanel]',\n exportAs: 'tngTabPanel',\n standalone: true,\n})\nexport class TngTabPanel {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tabs = inject(TngTabs, { host: true });\n private resolvedId = createPanelId();\n private readonly registrationOrder = nextRegistrationOrder++;\n private mounted = true;\n private activated = false;\n private anchor: Comment | null = null;\n private lastKnownValue: TngTabsValue | null = null;\n\n readonly valueInput = input<TngTabsValue | null | undefined, unknown>(undefined, {\n alias: 'value',\n transform: normalizeOptionalValueInput,\n });\n readonly labelledById = input<string | null | undefined, unknown>(undefined, {\n alias: 'labelledById',\n transform: normalizeOptionalStringInput,\n });\n readonly unmountOnExit = input<boolean, unknown>(false, {\n alias: 'unmountOnExit',\n transform: normalizeBooleanInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'tab-panel' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'tabpanel' as const;\n\n @HostBinding('attr.id')\n protected get id(): string {\n return this.resolvedId;\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledby(): string | null {\n return this.getExplicitLabelledById() ?? this.tabs.getTabIdForPanel(this);\n }\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n if (this.tabs.isPanelActive(this)) {\n this.markActivated();\n return null;\n }\n\n return '';\n }\n\n @HostBinding('attr.data-active')\n protected get dataActive(): 'true' | 'false' {\n return this.tabs.isPanelActive(this) ? 'true' : 'false';\n }\n\n constructor() {\n this.tabs.registerPanel(this);\n }\n\n ngOnInit(): void {\n this.syncResolvedIdFromHost();\n this.lastKnownValue = this.getValue();\n this.syncMountState();\n }\n\n ngDoCheck(): void {\n const idChanged = this.syncResolvedIdFromHost();\n const currentValue = this.getValue();\n if (idChanged || !valuesEqual(this.lastKnownValue, currentValue)) {\n this.lastKnownValue = currentValue;\n this.tabs.notifyPanelMutated();\n }\n\n this.syncMountState();\n }\n\n ngOnDestroy(): void {\n this.tabs.unregisterPanel(this);\n this.removeAnchor();\n }\n\n getRegistrationOrder(): number {\n return this.registrationOrder;\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n getPanelId(): string {\n return this.resolvedId;\n }\n\n getValue(): TngTabsValue {\n const explicitValue = this.valueInput();\n if (explicitValue !== undefined && explicitValue !== null) {\n return explicitValue;\n }\n\n const hostValue = this.hostRef.nativeElement.getAttribute('value');\n if (hostValue !== null && hostValue.length > 0) {\n return hostValue;\n }\n\n return this.resolvedId;\n }\n\n getExplicitLabelledById(): string | null {\n return this.labelledById() ?? null;\n }\n\n hasActivated(): boolean {\n return this.activated;\n }\n\n markActivated(): void {\n this.activated = true;\n }\n\n private syncMountState(): void {\n const shouldMount = this.tabs.isPanelMounted(this);\n if (shouldMount) {\n this.mountHost();\n return;\n }\n\n this.unmountHost();\n }\n\n private mountHost(): void {\n if (this.mounted) {\n return;\n }\n\n const anchor = this.ensureAnchor();\n const parent = anchor.parentNode;\n if (parent === null) {\n return;\n }\n\n parent.insertBefore(this.hostRef.nativeElement, anchor);\n this.mounted = true;\n }\n\n private unmountHost(): void {\n if (!this.mounted) {\n return;\n }\n\n const host = this.hostRef.nativeElement;\n const parent = host.parentNode;\n if (parent === null) {\n return;\n }\n\n const anchor = this.ensureAnchor();\n if (anchor.parentNode !== parent) {\n parent.insertBefore(anchor, host);\n }\n\n parent.removeChild(host);\n this.mounted = false;\n\n if (!this.tabs.isKeepAliveEnabled() || this.unmountOnExit()) {\n this.resetTransientFormState();\n }\n }\n\n private ensureAnchor(): Comment {\n if (this.anchor !== null) {\n return this.anchor;\n }\n\n this.anchor = this.hostRef.nativeElement.ownerDocument.createComment('tng-tab-panel');\n return this.anchor;\n }\n\n private removeAnchor(): void {\n if (this.anchor === null) {\n return;\n }\n\n this.anchor.parentNode?.removeChild(this.anchor);\n this.anchor = null;\n }\n\n private resetTransientFormState(): void {\n const controls = this.hostRef.nativeElement.querySelectorAll<\n HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\n >('input, textarea, select');\n\n controls.forEach((control) => {\n if (control instanceof HTMLInputElement) {\n if (control.type === 'checkbox' || control.type === 'radio') {\n control.checked = control.defaultChecked;\n } else {\n control.value = '';\n }\n return;\n }\n\n if (control instanceof HTMLTextAreaElement) {\n control.value = '';\n return;\n }\n\n control.selectedIndex = -1;\n });\n }\n\n private syncResolvedIdFromHost(): boolean {\n const hostId = this.hostRef.nativeElement.getAttribute('id');\n if (hostId === null || hostId.length === 0 || hostId === this.resolvedId) {\n return false;\n }\n\n this.resolvedId = hostId;\n return true;\n }\n}\n"]}
@@ -1,4 +1,7 @@
1
+ import * as i0 from "@angular/core";
1
2
  export declare class TngToolbar {
2
3
  protected readonly dataSlot: "toolbar";
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngToolbar, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngToolbar, "[tngToolbar]", ["tngToolbar"], {}, {}, never, never, true, never>;
3
6
  }
4
7
  //# sourceMappingURL=tng-toolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-toolbar.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/navigation/toolbar/tng-toolbar.ts"],"names":[],"mappings":"AAEA,qBAIa,UAAU;IAErB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;CAClD"}
1
+ {"version":3,"file":"tng-toolbar.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/navigation/toolbar/tng-toolbar.ts"],"names":[],"mappings":";AAEA,qBAKa,UAAU;IAErB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;yCAFtC,UAAU;2CAAV,UAAU;CAGtB"}
@@ -1,16 +1,19 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, HostBinding } from '@angular/core';
3
- let TngToolbar = class TngToolbar {
2
+ import * as i0 from "@angular/core";
3
+ export class TngToolbar {
4
4
  dataSlot = 'toolbar';
5
- };
6
- __decorate([
7
- HostBinding('attr.data-slot')
8
- ], TngToolbar.prototype, "dataSlot", void 0);
9
- TngToolbar = __decorate([
10
- Directive({
11
- selector: '[tngToolbar]',
12
- exportAs: 'tngToolbar',
13
- })
14
- ], TngToolbar);
15
- export { TngToolbar };
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngToolbar, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngToolbar, isStandalone: true, selector: "[tngToolbar]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, exportAs: ["tngToolbar"], ngImport: i0 });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngToolbar, decorators: [{
9
+ type: Directive,
10
+ args: [{
11
+ selector: '[tngToolbar]',
12
+ exportAs: 'tngToolbar',
13
+ standalone: true,
14
+ }]
15
+ }], propDecorators: { dataSlot: [{
16
+ type: HostBinding,
17
+ args: ['attr.data-slot']
18
+ }] } });
16
19
  //# sourceMappingURL=tng-toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-toolbar.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/navigation/toolbar/tng-toolbar.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAMhD,IAAM,UAAU,GAAhB,MAAM,UAAU;IAEF,QAAQ,GAAG,SAAkB,CAAC;CAClD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;4CACmB;AAFtC,UAAU;IAJtB,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,YAAY;KACvB,CAAC;GACW,UAAU,CAGtB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngToolbar]',\n exportAs: 'tngToolbar',\n})\nexport class TngToolbar {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'toolbar' as const;\n}\n"]}
1
+ {"version":3,"file":"tng-toolbar.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/navigation/toolbar/tng-toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;;AAOvD,MAAM,OAAO,UAAU;IAEF,QAAQ,GAAG,SAAkB,CAAC;uGAFtC,UAAU;2FAAV,UAAU;;2FAAV,UAAU;kBALtB,SAAS;mBAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,QAAQ,EAAE,YAAY;oBACtB,UAAU,EAAE,IAAI;iBACjB;;sBAEE,WAAW;uBAAC,gBAAgB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngToolbar]',\n exportAs: 'tngToolbar',\n standalone: true,\n})\nexport class TngToolbar {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'toolbar' as const;\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
2
3
  export type TngDialogAutoFocus = 'dialog' | 'first-focusable' | 'none';
3
4
  export type TngDialogCloseReason = 'backdrop' | 'close-button' | 'escape' | 'programmatic';
4
5
  export type TngDialogSize = 'lg' | 'md' | 'sm';
@@ -80,6 +81,8 @@ export declare class TngDialog implements OnDestroy, OnInit {
80
81
  private resolveFocusableMemberIds;
81
82
  private ensureElementId;
82
83
  private resolveElementById;
84
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialog, never>;
85
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngDialog, "[tngDialog]", ["tngDialog"], { "openInput": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "trapFocus": { "alias": "trapFocus"; "required": false; "isSignal": true; }; "lockScroll": { "alias": "lockScroll"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; "closed": "closed"; }, never, never, true, never>;
83
86
  }
84
87
  export declare class TngDialogPanel implements OnDestroy, OnInit {
85
88
  private readonly dialog;
@@ -101,6 +104,8 @@ export declare class TngDialogPanel implements OnDestroy, OnInit {
101
104
  ngOnDestroy(): void;
102
105
  protected onKeydown(event: KeyboardEvent): void;
103
106
  protected onFocusIn(target: unknown): void;
107
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialogPanel, never>;
108
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngDialogPanel, "[tngDialogPanel]", ["tngDialogPanel"], {}, {}, never, never, true, never>;
104
109
  }
105
110
  export declare class TngDialogBackdrop {
106
111
  private readonly dialog;
@@ -109,6 +114,8 @@ export declare class TngDialogBackdrop {
109
114
  protected get dataStateAttr(): 'closed' | 'open';
110
115
  protected get hiddenAttr(): '' | null;
111
116
  protected onPointerDown(event: PointerEvent): void;
117
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialogBackdrop, never>;
118
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngDialogBackdrop, "[tngDialogBackdrop]", ["tngDialogBackdrop"], {}, {}, never, never, true, never>;
112
119
  }
113
120
  export declare class TngDialogTrigger {
114
121
  private readonly parentDialog;
@@ -122,6 +129,8 @@ export declare class TngDialogTrigger {
122
129
  protected get dataDisabledAttr(): '' | null;
123
130
  protected onClick(): void;
124
131
  private resolveDialog;
132
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialogTrigger, never>;
133
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngDialogTrigger, "[tngDialogTrigger]", ["tngDialogTrigger"], { "dialogFor": { "alias": "tngDialogTrigger"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
125
134
  }
126
135
  export declare class TngDialogTitle implements OnDestroy, OnInit {
127
136
  private readonly dialog;
@@ -131,6 +140,8 @@ export declare class TngDialogTitle implements OnDestroy, OnInit {
131
140
  protected get idAttr(): string;
132
141
  ngOnInit(): void;
133
142
  ngOnDestroy(): void;
143
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialogTitle, never>;
144
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngDialogTitle, "[tngDialogTitle]", ["tngDialogTitle"], {}, {}, never, never, true, never>;
134
145
  }
135
146
  export declare class TngDialogDescription implements OnDestroy, OnInit {
136
147
  private readonly dialog;
@@ -140,12 +151,18 @@ export declare class TngDialogDescription implements OnDestroy, OnInit {
140
151
  protected get idAttr(): string;
141
152
  ngOnInit(): void;
142
153
  ngOnDestroy(): void;
154
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialogDescription, never>;
155
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngDialogDescription, "[tngDialogDescription]", ["tngDialogDescription"], {}, {}, never, never, true, never>;
143
156
  }
144
157
  export declare class TngDialogContent {
145
158
  protected readonly dataSlot = "dialog-content";
159
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialogContent, never>;
160
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngDialogContent, "[tngDialogContent]", ["tngDialogContent"], {}, {}, never, never, true, never>;
146
161
  }
147
162
  export declare class TngDialogActions {
148
163
  protected readonly dataSlot = "dialog-actions";
164
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialogActions, never>;
165
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngDialogActions, "[tngDialogActions]", ["tngDialogActions"], {}, {}, never, never, true, never>;
149
166
  }
150
167
  export declare class TngDialogClose {
151
168
  private readonly dialog;
@@ -153,6 +170,8 @@ export declare class TngDialogClose {
153
170
  protected readonly dataSlot = "dialog-close";
154
171
  protected onClick(): void;
155
172
  private resolveCloseReason;
173
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialogClose, never>;
174
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngDialogClose, "[tngDialogClose]", ["tngDialogClose"], { "closeReason": { "alias": "tngDialogClose"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
156
175
  }
157
176
  export {};
158
177
  //# sourceMappingURL=tng-dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-dialog.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/overlay/dialog/tng-dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tng-dialog.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/overlay/dialog/tng-dialog.ts"],"names":[],"mappings":"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"}