@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-button-toggle.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/button-toggle/tng-button-toggle.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n booleanAttribute,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { createTngIdFactory } from '@tailng-ui/cdk';\n\ntype TngButtonToggleDirection = 'ltr' | 'rtl' | 'auto';\ntype TngButtonToggleOrientation = 'horizontal' | 'vertical';\ntype TngButtonToggleActivationMode = 'auto' | 'manual';\ntype TngButtonToggleType = 'single' | 'multiple';\ntype TngButtonToggleFocusMove = 'next' | 'prev' | 'first' | 'last';\ntype TngButtonToggleActionTrigger = 'pointer' | 'keyboard' | 'programmatic';\ntype TngButtonToggleFocusTrigger = 'pointer' | 'keyboard' | 'programmatic';\n\nexport type TngButtonToggleValue = string | number;\n\nexport type TngButtonToggleChangeEvent = Readonly<{\n value: TngButtonToggleValue;\n selected: boolean;\n previousValue: TngButtonToggleValue | null;\n previousValues: readonly TngButtonToggleValue[];\n values: readonly TngButtonToggleValue[];\n trigger: TngButtonToggleActionTrigger;\n}>;\n\nexport type TngButtonToggleFocusChangeEvent = Readonly<{\n value: TngButtonToggleValue;\n previousValue: TngButtonToggleValue | null;\n trigger: TngButtonToggleFocusTrigger;\n}>;\n\nconst createToggleId = createTngIdFactory('tng-button-toggle-item');\nlet nextRegistrationOrder = 0;\n\nfunction normalizeDirectionInput(value: unknown): TngButtonToggleDirection {\n if (value === 'ltr' || value === 'rtl' || value === 'auto') {\n return value;\n }\n\n return 'auto';\n}\n\nfunction normalizeOrientationInput(value: unknown): TngButtonToggleOrientation {\n return value === 'vertical' ? 'vertical' : 'horizontal';\n}\n\nfunction normalizeActivationInput(value: unknown): TngButtonToggleActivationMode {\n return value === 'manual' ? 'manual' : 'auto';\n}\n\nfunction normalizeTypeInput(value: unknown): TngButtonToggleType {\n return value === 'multiple' ? 'multiple' : 'single';\n}\n\nfunction normalizeOptionalValueInput(value: unknown): TngButtonToggleValue | 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 normalizeValueArrayInput(value: unknown): readonly TngButtonToggleValue[] {\n if (value === null || value === undefined) {\n return [];\n }\n\n if (Array.isArray(value)) {\n return value\n .map((item) => normalizeOptionalValueInput(item))\n .filter((item): item is TngButtonToggleValue => item !== null && item !== undefined);\n }\n\n if (value instanceof Set) {\n return Array.from(value)\n .map((item) => normalizeOptionalValueInput(item))\n .filter((item): item is TngButtonToggleValue => item !== null && item !== undefined);\n }\n\n const normalized = normalizeOptionalValueInput(value);\n if (normalized === null || normalized === undefined) {\n return [];\n }\n\n return [normalized];\n}\n\nfunction normalizeOptionalValueArrayInput(\n value: unknown,\n): readonly TngButtonToggleValue[] | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return normalizeValueArrayInput(value);\n}\n\nfunction uniqueValues(values: readonly TngButtonToggleValue[]): readonly TngButtonToggleValue[] {\n const unique = new Set<TngButtonToggleValue>();\n for (const value of values) {\n unique.add(value);\n }\n\n return Array.from(unique);\n}\n\nfunction valuesEqual(a: TngButtonToggleValue | null, b: TngButtonToggleValue | 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\nfunction setsEqual(\n a: ReadonlySet<TngButtonToggleValue>,\n b: ReadonlySet<TngButtonToggleValue>,\n): boolean {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const value of a) {\n if (!b.has(value)) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function resolveTngButtonToggleAriaPressed(pressed: boolean): 'false' | 'true' {\n return pressed ? 'true' : 'false';\n}\n\nexport function resolveTngButtonToggleDataState(pressed: boolean): 'off' | 'on' {\n return pressed ? 'on' : 'off';\n}\n\n@Directive({\n selector: '[tngButtonToggleGroup]',\n exportAs: 'tngButtonToggleGroup',\n standalone: true,\n})\nexport class TngButtonToggleGroup {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly toggles = new Set<TngButtonToggle>();\n\n private initializedType: TngButtonToggleType | null = null;\n private uncontrolledSingleValue: TngButtonToggleValue | null = null;\n private uncontrolledMultipleValues = new Set<TngButtonToggleValue>();\n private focusedValue: TngButtonToggleValue | null = null;\n private hasSingleUserSelection = false;\n private hasMultipleUserSelection = false;\n\n readonly type = input<TngButtonToggleType, unknown>('single', {\n transform: normalizeTypeInput,\n });\n readonly controlledValueInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleValue',\n transform: normalizeOptionalValueInput,\n },\n );\n readonly controlledValuesInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleValues',\n transform: normalizeOptionalValueArrayInput,\n },\n );\n readonly defaultValueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'tngButtonToggleDefaultValue',\n transform: normalizeOptionalValueInput,\n });\n readonly defaultValuesInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleDefaultValues',\n transform: normalizeOptionalValueArrayInput,\n },\n );\n readonly value = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueInput,\n });\n readonly values = input<readonly TngButtonToggleValue[] | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueArrayInput,\n });\n readonly defaultValue = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueInput,\n });\n readonly defaultValues = input<readonly TngButtonToggleValue[], unknown>([], {\n transform: normalizeValueArrayInput,\n });\n readonly allowEmpty = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n readonly orientation = input<TngButtonToggleOrientation, unknown>('horizontal', {\n transform: normalizeOrientationInput,\n });\n readonly loop = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n readonly activation = input<TngButtonToggleActivationMode, unknown>('auto', {\n transform: normalizeActivationInput,\n });\n readonly dir = input<TngButtonToggleDirection, unknown>('auto', {\n transform: normalizeDirectionInput,\n });\n\n readonly valueChange = output<TngButtonToggleValue | null>();\n readonly valuesChange = output<readonly TngButtonToggleValue[]>();\n readonly toggleChange = output<TngButtonToggleChangeEvent>();\n readonly focusChange = output<TngButtonToggleFocusChangeEvent>();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'button-toggle-group' as const;\n\n @HostBinding('attr.data-type')\n protected get dataType(): TngButtonToggleType {\n return this.type();\n }\n\n @HostBinding('attr.data-orientation')\n protected get dataOrientation(): TngButtonToggleOrientation {\n return this.orientation();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n @HostBinding('attr.role')\n protected get roleAttr(): 'radiogroup' | 'group' {\n return this.type() === 'single' ? 'radiogroup' : 'group';\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-orientation')\n protected get ariaOrientation(): TngButtonToggleOrientation {\n return this.orientation();\n }\n\n ngDoCheck(): void {\n this.syncStateFromRegistry();\n }\n\n registerToggle(toggle: TngButtonToggle): void {\n this.toggles.add(toggle);\n }\n\n unregisterToggle(toggle: TngButtonToggle): void {\n const orderedToggles = this.getOrderedToggles();\n const removedIndex = orderedToggles.indexOf(toggle);\n const removedValue = toggle.getValue();\n\n const selectedSingleValue = this.getEffectiveSingleSelectedValue();\n const focusedValue = this.resolveCurrentTabStopValue();\n\n this.toggles.delete(toggle);\n\n if (\n this.type() === 'single' &&\n !this.isSingleControlled() &&\n selectedSingleValue !== null &&\n valuesEqual(selectedSingleValue, removedValue)\n ) {\n this.uncontrolledSingleValue = this.allowEmpty()\n ? null\n : this.resolveNeighborValueOnRemoval(orderedToggles, removedIndex);\n }\n\n if (this.type() === 'multiple' && !this.isMultipleControlled()) {\n this.uncontrolledMultipleValues.delete(removedValue);\n }\n\n if (focusedValue !== null && valuesEqual(focusedValue, removedValue)) {\n this.focusedValue = this.resolveNeighborValueOnRemoval(orderedToggles, removedIndex);\n }\n\n this.syncStateFromRegistry();\n }\n\n notifyToggleMutated(toggle: TngButtonToggle): void {\n void toggle;\n this.syncStateFromRegistry();\n }\n\n isDisabled(): boolean {\n return this.disabled();\n }\n\n getToggleRole(): 'radio' | null {\n return this.type() === 'single' ? 'radio' : null;\n }\n\n getToggleTabIndex(toggle: TngButtonToggle): string {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return '-1';\n }\n\n const tabStop = this.resolveCurrentTabStopValue();\n if (tabStop === null) {\n return '-1';\n }\n\n return valuesEqual(tabStop, toggle.getValue()) ? '0' : '-1';\n }\n\n getToggleAriaChecked(toggle: TngButtonToggle): 'true' | 'false' | null {\n if (this.type() !== 'single') {\n return null;\n }\n\n return this.isToggleSelected(toggle) ? 'true' : 'false';\n }\n\n getToggleAriaPressed(toggle: TngButtonToggle): 'true' | 'false' | null {\n if (this.type() !== 'multiple') {\n return null;\n }\n\n return resolveTngButtonToggleAriaPressed(this.isToggleSelected(toggle));\n }\n\n isToggleSelected(toggle: TngButtonToggle): boolean {\n if (this.type() === 'single') {\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (selectedValue === null) {\n return false;\n }\n\n return valuesEqual(selectedValue, toggle.getValue());\n }\n\n const selectedValues = this.getEffectiveMultipleSelectedValues();\n return selectedValues.has(toggle.getValue());\n }\n\n isToggleFocused(toggle: TngButtonToggle): boolean {\n const tabStop = this.resolveCurrentTabStopValue();\n if (tabStop === null) {\n return false;\n }\n\n return valuesEqual(tabStop, toggle.getValue());\n }\n\n onToggleFocused(toggle: TngButtonToggle, trigger: TngButtonToggleFocusTrigger): void {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(toggle.getValue(), trigger);\n }\n\n activateToggle(toggle: TngButtonToggle, trigger: TngButtonToggleActionTrigger): void {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(toggle.getValue(), trigger === 'programmatic' ? 'programmatic' : 'pointer');\n\n if (this.type() === 'single') {\n this.requestSingleToggle(toggle.getValue(), trigger);\n return;\n }\n\n this.requestMultipleToggle(toggle.getValue(), trigger);\n }\n\n handleToggleKeydown(toggle: TngButtonToggle, event: KeyboardEvent): void {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return;\n }\n\n const focusMove = this.resolveFocusMove(event.key);\n if (focusMove !== null) {\n event.preventDefault();\n this.moveFocusByAction(toggle, focusMove, 'keyboard');\n return;\n }\n\n if (event.key !== 'Enter' && event.key !== ' ' && event.key !== 'Spacebar') {\n return;\n }\n\n event.preventDefault();\n this.activateToggle(toggle, 'keyboard');\n }\n\n select(value: TngButtonToggleValue): void {\n const targetToggle = this.findEnabledToggleByValue(value);\n if (targetToggle === null) {\n return;\n }\n\n if (this.type() === 'single') {\n this.requestSingleSelection(value, 'programmatic');\n return;\n }\n\n this.requestMultipleSelection(value, true, 'programmatic');\n }\n\n deselect(value: TngButtonToggleValue): void {\n if (this.type() === 'single') {\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (\n selectedValue === null ||\n !valuesEqual(selectedValue, value) ||\n (!this.allowEmpty() && this.findEnabledToggleByValue(value) !== null)\n ) {\n return;\n }\n\n this.applySingleSelection(null, value, false, 'programmatic');\n return;\n }\n\n this.requestMultipleSelection(value, false, 'programmatic');\n }\n\n toggle(value: TngButtonToggleValue): void {\n if (this.type() === 'single') {\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (selectedValue !== null && valuesEqual(selectedValue, value) && this.allowEmpty()) {\n this.applySingleSelection(null, value, false, 'programmatic');\n return;\n }\n\n this.requestSingleSelection(value, 'programmatic');\n return;\n }\n\n this.requestMultipleToggle(value, 'programmatic');\n }\n\n focus(value: TngButtonToggleValue): void {\n const targetToggle = this.findEnabledToggleByValue(value);\n if (targetToggle === null) {\n return;\n }\n\n this.moveFocusToToggle(targetToggle, 'programmatic');\n }\n\n next(): void {\n this.moveFocusFromCurrentToggle('next', 'programmatic');\n }\n\n prev(): void {\n this.moveFocusFromCurrentToggle('prev', 'programmatic');\n }\n\n private requestSingleSelection(\n nextValue: TngButtonToggleValue,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const targetToggle = this.findEnabledToggleByValue(nextValue);\n if (targetToggle === null) {\n return;\n }\n\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (selectedValue !== null && valuesEqual(selectedValue, nextValue)) {\n return;\n }\n\n this.applySingleSelection(nextValue, nextValue, true, trigger);\n }\n\n private requestSingleToggle(\n nextValue: TngButtonToggleValue,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const targetToggle = this.findEnabledToggleByValue(nextValue);\n if (targetToggle === null) {\n return;\n }\n\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (selectedValue !== null && valuesEqual(selectedValue, nextValue)) {\n if (!this.allowEmpty()) {\n return;\n }\n\n this.applySingleSelection(null, nextValue, false, trigger);\n return;\n }\n\n this.applySingleSelection(nextValue, nextValue, true, trigger);\n }\n\n private applySingleSelection(\n nextValue: TngButtonToggleValue | null,\n toggledValue: TngButtonToggleValue,\n selected: boolean,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const previousValue = this.getEffectiveSingleSelectedValue();\n if (valuesEqual(previousValue, nextValue)) {\n return;\n }\n\n if (!this.isSingleControlled()) {\n this.uncontrolledSingleValue = nextValue;\n this.hasSingleUserSelection = true;\n }\n\n this.valueChange.emit(nextValue);\n this.toggleChange.emit({\n value: toggledValue,\n selected,\n previousValue,\n previousValues: previousValue === null ? [] : [previousValue],\n values: nextValue === null ? [] : [nextValue],\n trigger,\n });\n\n this.syncStateFromRegistry();\n }\n\n private requestMultipleSelection(\n value: TngButtonToggleValue,\n shouldSelect: boolean,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const targetToggle = this.findEnabledToggleByValue(value);\n if (targetToggle === null) {\n return;\n }\n\n const previousSelection = this.getEffectiveMultipleSelectedValues();\n const nextSelection = new Set(previousSelection);\n\n if (shouldSelect) {\n nextSelection.add(value);\n } else {\n nextSelection.delete(value);\n }\n\n if (setsEqual(previousSelection, nextSelection)) {\n return;\n }\n\n this.applyMultipleSelection(nextSelection, value, shouldSelect, trigger);\n }\n\n private requestMultipleToggle(\n value: TngButtonToggleValue,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const targetToggle = this.findEnabledToggleByValue(value);\n if (targetToggle === null) {\n return;\n }\n\n const previousSelection = this.getEffectiveMultipleSelectedValues();\n const nextSelection = new Set(previousSelection);\n const selected = !nextSelection.has(value);\n\n if (selected) {\n nextSelection.add(value);\n } else {\n nextSelection.delete(value);\n }\n\n this.applyMultipleSelection(nextSelection, value, selected, trigger);\n }\n\n private applyMultipleSelection(\n nextSelection: ReadonlySet<TngButtonToggleValue>,\n toggledValue: TngButtonToggleValue,\n selected: boolean,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const previousSelection = this.getEffectiveMultipleSelectedValues();\n if (setsEqual(previousSelection, nextSelection)) {\n return;\n }\n\n if (!this.isMultipleControlled()) {\n this.uncontrolledMultipleValues = new Set(nextSelection);\n this.hasMultipleUserSelection = true;\n }\n\n const previousValues = this.getSelectedValuesInDomOrder(previousSelection);\n const values = this.getSelectedValuesInDomOrder(nextSelection);\n\n this.valuesChange.emit(values);\n this.toggleChange.emit({\n value: toggledValue,\n selected,\n previousValue: null,\n previousValues,\n values,\n trigger,\n });\n\n this.syncStateFromRegistry();\n }\n\n private resolveFocusMove(key: string): TngButtonToggleFocusMove | 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 sourceToggle: TngButtonToggle,\n action: TngButtonToggleFocusMove,\n trigger: TngButtonToggleFocusTrigger,\n ): void {\n const enabledToggles = this.getEnabledToggles();\n if (enabledToggles.length === 0) {\n return;\n }\n\n const currentIndex = enabledToggles.indexOf(sourceToggle);\n if (currentIndex < 0) {\n return;\n }\n\n const nextToggle = this.resolveFocusTarget(enabledToggles, currentIndex, action);\n if (nextToggle === null) {\n return;\n }\n\n this.moveFocusToToggle(nextToggle, trigger);\n\n if (this.activation() === 'auto' && this.type() === 'single') {\n this.requestSingleSelection(nextToggle.getValue(), trigger === 'programmatic' ? 'programmatic' : 'keyboard');\n }\n }\n\n private moveFocusToToggle(\n toggle: TngButtonToggle,\n trigger: TngButtonToggleFocusTrigger,\n ): void {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(toggle.getValue(), trigger);\n toggle.focusSelf();\n }\n\n private moveFocusFromCurrentToggle(\n direction: 'next' | 'prev',\n trigger: TngButtonToggleFocusTrigger,\n ): void {\n const enabledToggles = this.getEnabledToggles();\n if (enabledToggles.length === 0) {\n return;\n }\n\n const activeElement = this.hostRef.nativeElement.ownerDocument?.activeElement ?? null;\n const activeToggle = this.findToggleContainingElement(activeElement);\n const currentToggle =\n activeToggle ?? this.findEnabledToggleByValue(this.resolveCurrentTabStopValue(), enabledToggles);\n\n if (currentToggle === null) {\n return;\n }\n\n const currentIndex = enabledToggles.indexOf(currentToggle);\n if (currentIndex < 0) {\n return;\n }\n\n const nextToggle = this.resolveFocusTarget(enabledToggles, currentIndex, direction);\n if (nextToggle === null) {\n return;\n }\n\n this.moveFocusToToggle(nextToggle, trigger);\n\n if (this.activation() === 'auto' && this.type() === 'single') {\n this.requestSingleSelection(nextToggle.getValue(), trigger === 'programmatic' ? 'programmatic' : 'keyboard');\n }\n }\n\n private resolveFocusTarget(\n enabledToggles: readonly TngButtonToggle[],\n currentIndex: number,\n action: TngButtonToggleFocusMove,\n ): TngButtonToggle | null {\n if (enabledToggles.length === 0 || currentIndex < 0) {\n return null;\n }\n\n if (action === 'first') {\n return enabledToggles[0] ?? null;\n }\n\n if (action === 'last') {\n return enabledToggles[enabledToggles.length - 1] ?? null;\n }\n\n if (action === 'next') {\n if (currentIndex + 1 < enabledToggles.length) {\n return enabledToggles[currentIndex + 1] ?? null;\n }\n\n return this.loop()\n ? (enabledToggles[0] ?? null)\n : (enabledToggles[currentIndex] ?? null);\n }\n\n if (currentIndex - 1 >= 0) {\n return enabledToggles[currentIndex - 1] ?? null;\n }\n\n return this.loop()\n ? (enabledToggles[enabledToggles.length - 1] ?? null)\n : (enabledToggles[currentIndex] ?? null);\n }\n\n private setFocusedValue(\n value: TngButtonToggleValue,\n trigger: TngButtonToggleFocusTrigger,\n ): 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 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 syncStateFromRegistry(): void {\n const currentType = this.type();\n const enabledToggles = this.getEnabledToggles();\n\n if (this.initializedType !== currentType) {\n this.initializedType = currentType;\n this.focusedValue = null;\n this.hasSingleUserSelection = false;\n this.hasMultipleUserSelection = false;\n\n if (currentType === 'single') {\n this.uncontrolledMultipleValues.clear();\n if (!this.isSingleControlled()) {\n this.uncontrolledSingleValue = this.resolveInitialSingleValue(enabledToggles);\n }\n } else {\n this.uncontrolledSingleValue = null;\n if (!this.isMultipleControlled()) {\n this.uncontrolledMultipleValues = new Set(\n this.resolveInitialMultipleValues(enabledToggles),\n );\n }\n }\n }\n\n if (enabledToggles.length === 0) {\n if (currentType === 'single' && !this.isSingleControlled()) {\n this.uncontrolledSingleValue = null;\n }\n\n if (currentType === 'multiple' && !this.isMultipleControlled()) {\n this.uncontrolledMultipleValues.clear();\n }\n\n this.focusedValue = null;\n return;\n }\n\n if (currentType === 'single') {\n this.syncSingleState(enabledToggles);\n } else {\n this.syncMultipleState(enabledToggles);\n }\n\n this.focusedValue = this.resolveCurrentTabStopValue(enabledToggles);\n }\n\n private syncSingleState(enabledToggles: readonly TngButtonToggle[]): void {\n if (this.isSingleControlled()) {\n return;\n }\n\n const currentValue = this.uncontrolledSingleValue;\n const hasEnabledCurrentValue =\n currentValue !== null && this.findEnabledToggleByValue(currentValue, enabledToggles) !== null;\n\n if (hasEnabledCurrentValue) {\n return;\n }\n\n this.uncontrolledSingleValue = this.allowEmpty()\n ? null\n : (enabledToggles[0]?.getValue() ?? null);\n }\n\n private syncMultipleState(enabledToggles: readonly TngButtonToggle[]): void {\n if (this.isMultipleControlled()) {\n return;\n }\n\n const enabledSet = new Set(enabledToggles.map((toggle) => toggle.getValue()));\n\n const nextValues = new Set<TngButtonToggleValue>();\n for (const value of this.uncontrolledMultipleValues) {\n if (enabledSet.has(value)) {\n nextValues.add(value);\n }\n }\n\n this.uncontrolledMultipleValues = nextValues;\n }\n\n private resolveInitialSingleValue(\n enabledToggles: readonly TngButtonToggle[],\n ): TngButtonToggleValue | null {\n if (enabledToggles.length === 0) {\n return null;\n }\n\n const defaultValue = this.getDefaultSingleValueInput();\n if (\n defaultValue !== undefined &&\n defaultValue !== null &&\n this.findEnabledToggleByValue(defaultValue, enabledToggles) !== null\n ) {\n return defaultValue;\n }\n\n if (this.allowEmpty()) {\n return null;\n }\n\n return enabledToggles[0]?.getValue() ?? null;\n }\n\n private resolveInitialMultipleValues(\n enabledToggles: readonly TngButtonToggle[],\n ): readonly TngButtonToggleValue[] {\n if (enabledToggles.length === 0) {\n return [];\n }\n\n const defaultValues = new Set(uniqueValues(this.getDefaultMultipleValuesInput()));\n if (defaultValues.size === 0) {\n return [];\n }\n\n const selectedValues: TngButtonToggleValue[] = [];\n for (const toggle of enabledToggles) {\n const value = toggle.getValue();\n if (defaultValues.has(value)) {\n selectedValues.push(value);\n }\n }\n\n return selectedValues;\n }\n\n private resolveNeighborValueOnRemoval(\n orderedToggles: readonly TngButtonToggle[],\n removedIndex: number,\n ): TngButtonToggleValue | null {\n if (removedIndex < 0) {\n return this.getEnabledToggles()[0]?.getValue() ?? null;\n }\n\n for (let index = removedIndex + 1; index < orderedToggles.length; index += 1) {\n const candidate = orderedToggles[index];\n if (candidate !== undefined && !candidate.isSelfDisabled()) {\n return candidate.getValue();\n }\n }\n\n for (let index = removedIndex - 1; index >= 0; index -= 1) {\n const candidate = orderedToggles[index];\n if (candidate !== undefined && !candidate.isSelfDisabled()) {\n return candidate.getValue();\n }\n }\n\n return null;\n }\n\n private resolveNeighborForUnavailableToggle(toggle: TngButtonToggle): TngButtonToggleValue | null {\n const orderedToggles = this.getOrderedToggles();\n const currentIndex = orderedToggles.indexOf(toggle);\n\n if (currentIndex < 0) {\n return this.getEnabledToggles()[0]?.getValue() ?? null;\n }\n\n for (let index = currentIndex + 1; index < orderedToggles.length; index += 1) {\n const candidate = orderedToggles[index];\n if (candidate !== undefined && !candidate.isSelfDisabled()) {\n return candidate.getValue();\n }\n }\n\n for (let index = currentIndex - 1; index >= 0; index -= 1) {\n const candidate = orderedToggles[index];\n if (candidate !== undefined && !candidate.isSelfDisabled()) {\n return candidate.getValue();\n }\n }\n\n return null;\n }\n\n private isSingleControlled(): boolean {\n if (this.type() !== 'single') {\n return false;\n }\n\n return this.getControlledSingleValueInput() !== undefined;\n }\n\n private isMultipleControlled(): boolean {\n if (this.type() !== 'multiple') {\n return false;\n }\n\n return this.getControlledMultipleValuesInput() !== undefined;\n }\n\n private getEffectiveSingleSelectedValue(\n enabledToggles = this.getEnabledToggles(),\n ): TngButtonToggleValue | null {\n if (this.type() !== 'single' || enabledToggles.length === 0) {\n return null;\n }\n\n let selectedValue = this.isSingleControlled()\n ? ((this.getControlledSingleValueInput() ?? null) as TngButtonToggleValue | null)\n : this.uncontrolledSingleValue;\n\n if (!this.isSingleControlled() && !this.hasSingleUserSelection) {\n const defaultValue = this.getDefaultSingleValueInput();\n if (\n defaultValue !== undefined &&\n defaultValue !== null &&\n this.findEnabledToggleByValue(defaultValue, enabledToggles) !== null\n ) {\n selectedValue = defaultValue;\n } else if (defaultValue === null) {\n selectedValue = null;\n }\n }\n\n if (\n selectedValue !== null &&\n this.findEnabledToggleByValue(selectedValue, enabledToggles) !== null\n ) {\n return selectedValue;\n }\n\n if (this.allowEmpty()) {\n return null;\n }\n\n return enabledToggles[0]?.getValue() ?? null;\n }\n\n private getEffectiveMultipleSelectedValues(\n enabledToggles = this.getEnabledToggles(),\n ): ReadonlySet<TngButtonToggleValue> {\n if (this.type() !== 'multiple' || enabledToggles.length === 0) {\n return new Set<TngButtonToggleValue>();\n }\n\n const sourceValues = this.isMultipleControlled()\n ? uniqueValues(this.getControlledMultipleValuesInput() ?? [])\n : (!this.hasMultipleUserSelection\n ? uniqueValues(this.getDefaultMultipleValuesInput())\n : Array.from(this.uncontrolledMultipleValues));\n\n const sourceSet = new Set(sourceValues);\n const selectedSet = new Set<TngButtonToggleValue>();\n\n for (const toggle of enabledToggles) {\n const value = toggle.getValue();\n if (sourceSet.has(value)) {\n selectedSet.add(value);\n }\n }\n\n return selectedSet;\n }\n\n private resolveCurrentTabStopValue(\n enabledToggles = this.getEnabledToggles(),\n ): TngButtonToggleValue | null {\n if (enabledToggles.length === 0) {\n return null;\n }\n\n if (\n this.focusedValue !== null &&\n this.findEnabledToggleByValue(this.focusedValue, enabledToggles) !== null\n ) {\n return this.focusedValue;\n }\n\n if (this.type() === 'single') {\n const selectedValue = this.getEffectiveSingleSelectedValue(enabledToggles);\n if (selectedValue !== null) {\n return selectedValue;\n }\n\n return enabledToggles[0]?.getValue() ?? null;\n }\n\n const selectedValues = this.getEffectiveMultipleSelectedValues(enabledToggles);\n for (const toggle of enabledToggles) {\n const value = toggle.getValue();\n if (selectedValues.has(value)) {\n return value;\n }\n }\n\n return enabledToggles[0]?.getValue() ?? null;\n }\n\n private getSelectedValuesInDomOrder(\n selectedValues: ReadonlySet<TngButtonToggleValue>,\n orderedToggles = this.getOrderedToggles(),\n ): readonly TngButtonToggleValue[] {\n if (selectedValues.size === 0) {\n return [];\n }\n\n const values: TngButtonToggleValue[] = [];\n for (const toggle of orderedToggles) {\n const value = toggle.getValue();\n if (selectedValues.has(value) && !toggle.isSelfDisabled()) {\n values.push(value);\n }\n }\n\n return values;\n }\n\n private getOrderedToggles(): TngButtonToggle[] {\n const toggles = Array.from(this.toggles);\n toggles.sort((a, b) =>\n compareByDomPosition(\n a.getHostElement(),\n b.getHostElement(),\n a.getRegistrationOrder(),\n b.getRegistrationOrder(),\n ),\n );\n\n return toggles;\n }\n\n private getEnabledToggles(): TngButtonToggle[] {\n return this.getOrderedToggles().filter((toggle) => !toggle.isSelfDisabled());\n }\n\n private findEnabledToggleByValue(\n value: TngButtonToggleValue | null,\n enabledToggles: readonly TngButtonToggle[] = this.getEnabledToggles(),\n ): TngButtonToggle | null {\n if (value === null) {\n return null;\n }\n\n return enabledToggles.find((toggle) => valuesEqual(toggle.getValue(), value)) ?? null;\n }\n\n private findToggleContainingElement(element: Element | null): TngButtonToggle | null {\n if (element === null) {\n return null;\n }\n\n const toggles = this.getOrderedToggles();\n return (\n toggles.find((toggle) => {\n const host = toggle.getHostElement();\n return host === element || host.contains(element);\n }) ?? null\n );\n }\n\n private getControlledSingleValueInput(): TngButtonToggleValue | null | undefined {\n const explicit = this.controlledValueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.value();\n }\n\n private getControlledMultipleValuesInput(): readonly TngButtonToggleValue[] | undefined {\n const explicit = this.controlledValuesInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.values();\n }\n\n private getDefaultSingleValueInput(): TngButtonToggleValue | null | undefined {\n const explicit = this.defaultValueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.defaultValue();\n }\n\n private getDefaultMultipleValuesInput(): readonly TngButtonToggleValue[] {\n const explicit = this.defaultValuesInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.defaultValues();\n }\n}\n\n@Directive({\n selector: 'button[tngButtonToggle]',\n exportAs: 'tngButtonToggle',\n standalone: true,\n})\nexport class TngButtonToggle {\n private readonly hostRef = inject<ElementRef<HTMLButtonElement>>(ElementRef);\n private readonly group = inject(TngButtonToggleGroup, { optional: true });\n private resolvedId = createToggleId();\n private readonly registrationOrder = nextRegistrationOrder++;\n private lastKnownValue: TngButtonToggleValue | null = null;\n private lastKnownDisabled = false;\n\n readonly toggleValueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'tngButtonToggleValue',\n transform: normalizeOptionalValueInput,\n });\n readonly valueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'value',\n transform: normalizeOptionalValueInput,\n });\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly pressedInput = input<boolean, unknown>(false, {\n alias: 'pressed',\n transform: booleanAttribute,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'button-toggle' as const;\n\n @HostBinding('attr.id')\n protected get id(): string {\n return this.resolvedId;\n }\n\n @HostBinding('attr.type')\n protected readonly typeAttr = 'button' as const;\n\n @HostBinding('attr.role')\n protected get roleAttr(): 'radio' | null {\n return this.group?.getToggleRole() ?? null;\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndexAttr(): string | null {\n if (this.group === null) {\n return null;\n }\n\n return this.group.getToggleTabIndex(this);\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'true' | 'false' | null {\n if (this.group === null) {\n return null;\n }\n\n return this.group.getToggleAriaChecked(this);\n }\n\n @HostBinding('attr.aria-pressed')\n protected get ariaPressedAttr(): 'true' | 'false' | null {\n if (this.group !== null) {\n return this.group.getToggleAriaPressed(this);\n }\n\n return resolveTngButtonToggleAriaPressed(this.pressedInput());\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabledAttr(): 'true' | null {\n return this.isDisabledInContext() ? 'true' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): 'true' | 'false' {\n return this.isDisabledInContext() ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): 'true' | 'false' {\n if (this.group === null) {\n return 'false';\n }\n\n return this.group.isToggleFocused(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-selected')\n protected get dataSelectedAttr(): 'true' | 'false' {\n if (this.group === null) {\n return this.pressedInput() ? 'true' : 'false';\n }\n\n return this.group.isToggleSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'on' | 'off' {\n return resolveTngButtonToggleDataState(this.dataSelectedAttr === 'true');\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.isDisabledInContext() ? '' : null;\n }\n\n constructor() {\n this.group?.registerToggle(this);\n }\n\n ngOnInit(): void {\n this.syncResolvedIdFromHost();\n this.lastKnownValue = this.getValue();\n this.lastKnownDisabled = this.isDisabledInContext();\n this.group?.notifyToggleMutated(this);\n }\n\n ngDoCheck(): void {\n this.syncResolvedIdFromHost();\n this.lastKnownValue = this.getValue();\n this.lastKnownDisabled = this.isDisabledInContext();\n }\n\n ngOnDestroy(): void {\n this.group?.unregisterToggle(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 if (this.group === null) {\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.group.activateToggle(this, 'pointer');\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n if (this.group === null || this.isDisabledInContext()) {\n return;\n }\n\n this.group.onToggleFocused(this, 'pointer');\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.group?.handleToggleKeydown(this, event);\n }\n\n getRegistrationOrder(): number {\n return this.registrationOrder;\n }\n\n getHostElement(): HTMLButtonElement {\n return this.hostRef.nativeElement;\n }\n\n getValue(): TngButtonToggleValue {\n const explicitValue = this.toggleValueInput() ?? this.valueInput();\n if (explicitValue !== undefined && explicitValue !== null) {\n return explicitValue;\n }\n\n const hostPropertyValue = this.hostRef.nativeElement.value;\n if (typeof hostPropertyValue === 'string' && hostPropertyValue.length > 0) {\n return hostPropertyValue;\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 isDisabledInContext(): boolean {\n if (this.group?.isDisabled()) {\n return true;\n }\n\n return this.disabledInput();\n }\n\n isSelfDisabled(): boolean {\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"]}
1
+ {"version":3,"file":"tng-button-toggle.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/button-toggle/tng-button-toggle.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n booleanAttribute,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { createTngIdFactory } from '@tailng-ui/cdk';\n\ntype TngButtonToggleDirection = 'ltr' | 'rtl' | 'auto';\ntype TngButtonToggleOrientation = 'horizontal' | 'vertical';\ntype TngButtonToggleActivationMode = 'auto' | 'manual';\ntype TngButtonToggleType = 'single' | 'multiple';\ntype TngButtonToggleFocusMove = 'next' | 'prev' | 'first' | 'last';\ntype TngButtonToggleActionTrigger = 'pointer' | 'keyboard' | 'programmatic';\ntype TngButtonToggleFocusTrigger = 'pointer' | 'keyboard' | 'programmatic';\n\nexport type TngButtonToggleValue = string | number;\n\nexport type TngButtonToggleChangeEvent = Readonly<{\n value: TngButtonToggleValue;\n selected: boolean;\n previousValue: TngButtonToggleValue | null;\n previousValues: readonly TngButtonToggleValue[];\n values: readonly TngButtonToggleValue[];\n trigger: TngButtonToggleActionTrigger;\n}>;\n\nexport type TngButtonToggleFocusChangeEvent = Readonly<{\n value: TngButtonToggleValue;\n previousValue: TngButtonToggleValue | null;\n trigger: TngButtonToggleFocusTrigger;\n}>;\n\nconst createToggleId = createTngIdFactory('tng-button-toggle-item');\nlet nextRegistrationOrder = 0;\n\nfunction normalizeDirectionInput(value: unknown): TngButtonToggleDirection {\n if (value === 'ltr' || value === 'rtl' || value === 'auto') {\n return value;\n }\n\n return 'auto';\n}\n\nfunction normalizeOrientationInput(value: unknown): TngButtonToggleOrientation {\n return value === 'vertical' ? 'vertical' : 'horizontal';\n}\n\nfunction normalizeActivationInput(value: unknown): TngButtonToggleActivationMode {\n return value === 'manual' ? 'manual' : 'auto';\n}\n\nfunction normalizeTypeInput(value: unknown): TngButtonToggleType {\n return value === 'multiple' ? 'multiple' : 'single';\n}\n\nfunction normalizeOptionalValueInput(value: unknown): TngButtonToggleValue | 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 normalizeValueArrayInput(value: unknown): readonly TngButtonToggleValue[] {\n if (value === null || value === undefined) {\n return [];\n }\n\n if (Array.isArray(value)) {\n return value\n .map((item) => normalizeOptionalValueInput(item))\n .filter((item): item is TngButtonToggleValue => item !== null && item !== undefined);\n }\n\n if (value instanceof Set) {\n return Array.from(value)\n .map((item) => normalizeOptionalValueInput(item))\n .filter((item): item is TngButtonToggleValue => item !== null && item !== undefined);\n }\n\n const normalized = normalizeOptionalValueInput(value);\n if (normalized === null || normalized === undefined) {\n return [];\n }\n\n return [normalized];\n}\n\nfunction normalizeOptionalValueArrayInput(\n value: unknown,\n): readonly TngButtonToggleValue[] | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n return normalizeValueArrayInput(value);\n}\n\nfunction uniqueValues(values: readonly TngButtonToggleValue[]): readonly TngButtonToggleValue[] {\n const unique = new Set<TngButtonToggleValue>();\n for (const value of values) {\n unique.add(value);\n }\n\n return Array.from(unique);\n}\n\nfunction valuesEqual(a: TngButtonToggleValue | null, b: TngButtonToggleValue | 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\nfunction setsEqual(\n a: ReadonlySet<TngButtonToggleValue>,\n b: ReadonlySet<TngButtonToggleValue>,\n): boolean {\n if (a.size !== b.size) {\n return false;\n }\n\n for (const value of a) {\n if (!b.has(value)) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function resolveTngButtonToggleAriaPressed(pressed: boolean): 'false' | 'true' {\n return pressed ? 'true' : 'false';\n}\n\nexport function resolveTngButtonToggleDataState(pressed: boolean): 'off' | 'on' {\n return pressed ? 'on' : 'off';\n}\n\n@Directive({\n selector: '[tngButtonToggleGroup]',\n exportAs: 'tngButtonToggleGroup',\n standalone: true,\n})\nexport class TngButtonToggleGroup {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly toggles = new Set<TngButtonToggle>();\n\n private initializedType: TngButtonToggleType | null = null;\n private uncontrolledSingleValue: TngButtonToggleValue | null = null;\n private uncontrolledMultipleValues = new Set<TngButtonToggleValue>();\n private focusedValue: TngButtonToggleValue | null = null;\n private hasSingleUserSelection = false;\n private hasMultipleUserSelection = false;\n\n readonly type = input<TngButtonToggleType, unknown>('single', {\n transform: normalizeTypeInput,\n });\n readonly controlledValueInput = input<TngButtonToggleValue | null | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleValue',\n transform: normalizeOptionalValueInput,\n },\n );\n readonly controlledValuesInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleValues',\n transform: normalizeOptionalValueArrayInput,\n },\n );\n readonly defaultValueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'tngButtonToggleDefaultValue',\n transform: normalizeOptionalValueInput,\n });\n readonly defaultValuesInput = input<readonly TngButtonToggleValue[] | undefined, unknown>(\n undefined,\n {\n alias: 'tngButtonToggleDefaultValues',\n transform: normalizeOptionalValueArrayInput,\n },\n );\n readonly value = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueInput,\n });\n readonly values = input<readonly TngButtonToggleValue[] | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueArrayInput,\n });\n readonly defaultValue = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n transform: normalizeOptionalValueInput,\n });\n readonly defaultValues = input<readonly TngButtonToggleValue[], unknown>([], {\n transform: normalizeValueArrayInput,\n });\n readonly allowEmpty = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n readonly disabled = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n readonly orientation = input<TngButtonToggleOrientation, unknown>('horizontal', {\n transform: normalizeOrientationInput,\n });\n readonly loop = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n readonly activation = input<TngButtonToggleActivationMode, unknown>('auto', {\n transform: normalizeActivationInput,\n });\n readonly dir = input<TngButtonToggleDirection, unknown>('auto', {\n transform: normalizeDirectionInput,\n });\n\n readonly valueChange = output<TngButtonToggleValue | null>();\n readonly valuesChange = output<readonly TngButtonToggleValue[]>();\n readonly toggleChange = output<TngButtonToggleChangeEvent>();\n readonly focusChange = output<TngButtonToggleFocusChangeEvent>();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'button-toggle-group' as const;\n\n @HostBinding('attr.data-type')\n protected get dataType(): TngButtonToggleType {\n return this.type();\n }\n\n @HostBinding('attr.data-orientation')\n protected get dataOrientation(): TngButtonToggleOrientation {\n return this.orientation();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n @HostBinding('attr.role')\n protected get roleAttr(): 'radiogroup' | 'group' {\n return this.type() === 'single' ? 'radiogroup' : 'group';\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-orientation')\n protected get ariaOrientation(): TngButtonToggleOrientation {\n return this.orientation();\n }\n\n ngDoCheck(): void {\n this.syncStateFromRegistry();\n }\n\n registerToggle(toggle: TngButtonToggle): void {\n this.toggles.add(toggle);\n }\n\n unregisterToggle(toggle: TngButtonToggle): void {\n const orderedToggles = this.getOrderedToggles();\n const removedIndex = orderedToggles.indexOf(toggle);\n const removedValue = toggle.getValue();\n\n const selectedSingleValue = this.getEffectiveSingleSelectedValue();\n const focusedValue = this.resolveCurrentTabStopValue();\n\n this.toggles.delete(toggle);\n\n if (\n this.type() === 'single' &&\n !this.isSingleControlled() &&\n selectedSingleValue !== null &&\n valuesEqual(selectedSingleValue, removedValue)\n ) {\n this.uncontrolledSingleValue = this.allowEmpty()\n ? null\n : this.resolveNeighborValueOnRemoval(orderedToggles, removedIndex);\n }\n\n if (this.type() === 'multiple' && !this.isMultipleControlled()) {\n this.uncontrolledMultipleValues.delete(removedValue);\n }\n\n if (focusedValue !== null && valuesEqual(focusedValue, removedValue)) {\n this.focusedValue = this.resolveNeighborValueOnRemoval(orderedToggles, removedIndex);\n }\n\n this.syncStateFromRegistry();\n }\n\n notifyToggleMutated(toggle: TngButtonToggle): void {\n void toggle;\n this.syncStateFromRegistry();\n }\n\n isDisabled(): boolean {\n return this.disabled();\n }\n\n getToggleRole(): 'radio' | null {\n return this.type() === 'single' ? 'radio' : null;\n }\n\n getToggleTabIndex(toggle: TngButtonToggle): string {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return '-1';\n }\n\n const tabStop = this.resolveCurrentTabStopValue();\n if (tabStop === null) {\n return '-1';\n }\n\n return valuesEqual(tabStop, toggle.getValue()) ? '0' : '-1';\n }\n\n getToggleAriaChecked(toggle: TngButtonToggle): 'true' | 'false' | null {\n if (this.type() !== 'single') {\n return null;\n }\n\n return this.isToggleSelected(toggle) ? 'true' : 'false';\n }\n\n getToggleAriaPressed(toggle: TngButtonToggle): 'true' | 'false' | null {\n if (this.type() !== 'multiple') {\n return null;\n }\n\n return resolveTngButtonToggleAriaPressed(this.isToggleSelected(toggle));\n }\n\n isToggleSelected(toggle: TngButtonToggle): boolean {\n if (this.type() === 'single') {\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (selectedValue === null) {\n return false;\n }\n\n return valuesEqual(selectedValue, toggle.getValue());\n }\n\n const selectedValues = this.getEffectiveMultipleSelectedValues();\n return selectedValues.has(toggle.getValue());\n }\n\n isToggleFocused(toggle: TngButtonToggle): boolean {\n const tabStop = this.resolveCurrentTabStopValue();\n if (tabStop === null) {\n return false;\n }\n\n return valuesEqual(tabStop, toggle.getValue());\n }\n\n onToggleFocused(toggle: TngButtonToggle, trigger: TngButtonToggleFocusTrigger): void {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(toggle.getValue(), trigger);\n }\n\n activateToggle(toggle: TngButtonToggle, trigger: TngButtonToggleActionTrigger): void {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(toggle.getValue(), trigger === 'programmatic' ? 'programmatic' : 'pointer');\n\n if (this.type() === 'single') {\n this.requestSingleToggle(toggle.getValue(), trigger);\n return;\n }\n\n this.requestMultipleToggle(toggle.getValue(), trigger);\n }\n\n handleToggleKeydown(toggle: TngButtonToggle, event: KeyboardEvent): void {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return;\n }\n\n const focusMove = this.resolveFocusMove(event.key);\n if (focusMove !== null) {\n event.preventDefault();\n this.moveFocusByAction(toggle, focusMove, 'keyboard');\n return;\n }\n\n if (event.key !== 'Enter' && event.key !== ' ' && event.key !== 'Spacebar') {\n return;\n }\n\n event.preventDefault();\n this.activateToggle(toggle, 'keyboard');\n }\n\n select(value: TngButtonToggleValue): void {\n const targetToggle = this.findEnabledToggleByValue(value);\n if (targetToggle === null) {\n return;\n }\n\n if (this.type() === 'single') {\n this.requestSingleSelection(value, 'programmatic');\n return;\n }\n\n this.requestMultipleSelection(value, true, 'programmatic');\n }\n\n deselect(value: TngButtonToggleValue): void {\n if (this.type() === 'single') {\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (\n selectedValue === null ||\n !valuesEqual(selectedValue, value) ||\n (!this.allowEmpty() && this.findEnabledToggleByValue(value) !== null)\n ) {\n return;\n }\n\n this.applySingleSelection(null, value, false, 'programmatic');\n return;\n }\n\n this.requestMultipleSelection(value, false, 'programmatic');\n }\n\n toggle(value: TngButtonToggleValue): void {\n if (this.type() === 'single') {\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (selectedValue !== null && valuesEqual(selectedValue, value) && this.allowEmpty()) {\n this.applySingleSelection(null, value, false, 'programmatic');\n return;\n }\n\n this.requestSingleSelection(value, 'programmatic');\n return;\n }\n\n this.requestMultipleToggle(value, 'programmatic');\n }\n\n focus(value: TngButtonToggleValue): void {\n const targetToggle = this.findEnabledToggleByValue(value);\n if (targetToggle === null) {\n return;\n }\n\n this.moveFocusToToggle(targetToggle, 'programmatic');\n }\n\n next(): void {\n this.moveFocusFromCurrentToggle('next', 'programmatic');\n }\n\n prev(): void {\n this.moveFocusFromCurrentToggle('prev', 'programmatic');\n }\n\n private requestSingleSelection(\n nextValue: TngButtonToggleValue,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const targetToggle = this.findEnabledToggleByValue(nextValue);\n if (targetToggle === null) {\n return;\n }\n\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (selectedValue !== null && valuesEqual(selectedValue, nextValue)) {\n return;\n }\n\n this.applySingleSelection(nextValue, nextValue, true, trigger);\n }\n\n private requestSingleToggle(\n nextValue: TngButtonToggleValue,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const targetToggle = this.findEnabledToggleByValue(nextValue);\n if (targetToggle === null) {\n return;\n }\n\n const selectedValue = this.getEffectiveSingleSelectedValue();\n if (selectedValue !== null && valuesEqual(selectedValue, nextValue)) {\n if (!this.allowEmpty()) {\n return;\n }\n\n this.applySingleSelection(null, nextValue, false, trigger);\n return;\n }\n\n this.applySingleSelection(nextValue, nextValue, true, trigger);\n }\n\n private applySingleSelection(\n nextValue: TngButtonToggleValue | null,\n toggledValue: TngButtonToggleValue,\n selected: boolean,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const previousValue = this.getEffectiveSingleSelectedValue();\n if (valuesEqual(previousValue, nextValue)) {\n return;\n }\n\n if (!this.isSingleControlled()) {\n this.uncontrolledSingleValue = nextValue;\n this.hasSingleUserSelection = true;\n }\n\n this.valueChange.emit(nextValue);\n this.toggleChange.emit({\n value: toggledValue,\n selected,\n previousValue,\n previousValues: previousValue === null ? [] : [previousValue],\n values: nextValue === null ? [] : [nextValue],\n trigger,\n });\n\n this.syncStateFromRegistry();\n }\n\n private requestMultipleSelection(\n value: TngButtonToggleValue,\n shouldSelect: boolean,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const targetToggle = this.findEnabledToggleByValue(value);\n if (targetToggle === null) {\n return;\n }\n\n const previousSelection = this.getEffectiveMultipleSelectedValues();\n const nextSelection = new Set(previousSelection);\n\n if (shouldSelect) {\n nextSelection.add(value);\n } else {\n nextSelection.delete(value);\n }\n\n if (setsEqual(previousSelection, nextSelection)) {\n return;\n }\n\n this.applyMultipleSelection(nextSelection, value, shouldSelect, trigger);\n }\n\n private requestMultipleToggle(\n value: TngButtonToggleValue,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const targetToggle = this.findEnabledToggleByValue(value);\n if (targetToggle === null) {\n return;\n }\n\n const previousSelection = this.getEffectiveMultipleSelectedValues();\n const nextSelection = new Set(previousSelection);\n const selected = !nextSelection.has(value);\n\n if (selected) {\n nextSelection.add(value);\n } else {\n nextSelection.delete(value);\n }\n\n this.applyMultipleSelection(nextSelection, value, selected, trigger);\n }\n\n private applyMultipleSelection(\n nextSelection: ReadonlySet<TngButtonToggleValue>,\n toggledValue: TngButtonToggleValue,\n selected: boolean,\n trigger: TngButtonToggleActionTrigger,\n ): void {\n const previousSelection = this.getEffectiveMultipleSelectedValues();\n if (setsEqual(previousSelection, nextSelection)) {\n return;\n }\n\n if (!this.isMultipleControlled()) {\n this.uncontrolledMultipleValues = new Set(nextSelection);\n this.hasMultipleUserSelection = true;\n }\n\n const previousValues = this.getSelectedValuesInDomOrder(previousSelection);\n const values = this.getSelectedValuesInDomOrder(nextSelection);\n\n this.valuesChange.emit(values);\n this.toggleChange.emit({\n value: toggledValue,\n selected,\n previousValue: null,\n previousValues,\n values,\n trigger,\n });\n\n this.syncStateFromRegistry();\n }\n\n private resolveFocusMove(key: string): TngButtonToggleFocusMove | 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 sourceToggle: TngButtonToggle,\n action: TngButtonToggleFocusMove,\n trigger: TngButtonToggleFocusTrigger,\n ): void {\n const enabledToggles = this.getEnabledToggles();\n if (enabledToggles.length === 0) {\n return;\n }\n\n const currentIndex = enabledToggles.indexOf(sourceToggle);\n if (currentIndex < 0) {\n return;\n }\n\n const nextToggle = this.resolveFocusTarget(enabledToggles, currentIndex, action);\n if (nextToggle === null) {\n return;\n }\n\n this.moveFocusToToggle(nextToggle, trigger);\n\n if (this.activation() === 'auto' && this.type() === 'single') {\n this.requestSingleSelection(nextToggle.getValue(), trigger === 'programmatic' ? 'programmatic' : 'keyboard');\n }\n }\n\n private moveFocusToToggle(\n toggle: TngButtonToggle,\n trigger: TngButtonToggleFocusTrigger,\n ): void {\n if (this.disabled() || toggle.isDisabledInContext()) {\n return;\n }\n\n this.setFocusedValue(toggle.getValue(), trigger);\n toggle.focusSelf();\n }\n\n private moveFocusFromCurrentToggle(\n direction: 'next' | 'prev',\n trigger: TngButtonToggleFocusTrigger,\n ): void {\n const enabledToggles = this.getEnabledToggles();\n if (enabledToggles.length === 0) {\n return;\n }\n\n const activeElement = this.hostRef.nativeElement.ownerDocument?.activeElement ?? null;\n const activeToggle = this.findToggleContainingElement(activeElement);\n const currentToggle =\n activeToggle ?? this.findEnabledToggleByValue(this.resolveCurrentTabStopValue(), enabledToggles);\n\n if (currentToggle === null) {\n return;\n }\n\n const currentIndex = enabledToggles.indexOf(currentToggle);\n if (currentIndex < 0) {\n return;\n }\n\n const nextToggle = this.resolveFocusTarget(enabledToggles, currentIndex, direction);\n if (nextToggle === null) {\n return;\n }\n\n this.moveFocusToToggle(nextToggle, trigger);\n\n if (this.activation() === 'auto' && this.type() === 'single') {\n this.requestSingleSelection(nextToggle.getValue(), trigger === 'programmatic' ? 'programmatic' : 'keyboard');\n }\n }\n\n private resolveFocusTarget(\n enabledToggles: readonly TngButtonToggle[],\n currentIndex: number,\n action: TngButtonToggleFocusMove,\n ): TngButtonToggle | null {\n if (enabledToggles.length === 0 || currentIndex < 0) {\n return null;\n }\n\n if (action === 'first') {\n return enabledToggles[0] ?? null;\n }\n\n if (action === 'last') {\n return enabledToggles[enabledToggles.length - 1] ?? null;\n }\n\n if (action === 'next') {\n if (currentIndex + 1 < enabledToggles.length) {\n return enabledToggles[currentIndex + 1] ?? null;\n }\n\n return this.loop()\n ? (enabledToggles[0] ?? null)\n : (enabledToggles[currentIndex] ?? null);\n }\n\n if (currentIndex - 1 >= 0) {\n return enabledToggles[currentIndex - 1] ?? null;\n }\n\n return this.loop()\n ? (enabledToggles[enabledToggles.length - 1] ?? null)\n : (enabledToggles[currentIndex] ?? null);\n }\n\n private setFocusedValue(\n value: TngButtonToggleValue,\n trigger: TngButtonToggleFocusTrigger,\n ): 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 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 syncStateFromRegistry(): void {\n const currentType = this.type();\n const enabledToggles = this.getEnabledToggles();\n\n if (this.initializedType !== currentType) {\n this.initializedType = currentType;\n this.focusedValue = null;\n this.hasSingleUserSelection = false;\n this.hasMultipleUserSelection = false;\n\n if (currentType === 'single') {\n this.uncontrolledMultipleValues.clear();\n if (!this.isSingleControlled()) {\n this.uncontrolledSingleValue = this.resolveInitialSingleValue(enabledToggles);\n }\n } else {\n this.uncontrolledSingleValue = null;\n if (!this.isMultipleControlled()) {\n this.uncontrolledMultipleValues = new Set(\n this.resolveInitialMultipleValues(enabledToggles),\n );\n }\n }\n }\n\n if (enabledToggles.length === 0) {\n if (currentType === 'single' && !this.isSingleControlled()) {\n this.uncontrolledSingleValue = null;\n }\n\n if (currentType === 'multiple' && !this.isMultipleControlled()) {\n this.uncontrolledMultipleValues.clear();\n }\n\n this.focusedValue = null;\n return;\n }\n\n if (currentType === 'single') {\n this.syncSingleState(enabledToggles);\n } else {\n this.syncMultipleState(enabledToggles);\n }\n\n this.focusedValue = this.resolveCurrentTabStopValue(enabledToggles);\n }\n\n private syncSingleState(enabledToggles: readonly TngButtonToggle[]): void {\n if (this.isSingleControlled()) {\n return;\n }\n\n const currentValue = this.uncontrolledSingleValue;\n const hasEnabledCurrentValue =\n currentValue !== null && this.findEnabledToggleByValue(currentValue, enabledToggles) !== null;\n\n if (hasEnabledCurrentValue) {\n return;\n }\n\n this.uncontrolledSingleValue = this.allowEmpty()\n ? null\n : (enabledToggles[0]?.getValue() ?? null);\n }\n\n private syncMultipleState(enabledToggles: readonly TngButtonToggle[]): void {\n if (this.isMultipleControlled()) {\n return;\n }\n\n const enabledSet = new Set(enabledToggles.map((toggle) => toggle.getValue()));\n\n const nextValues = new Set<TngButtonToggleValue>();\n for (const value of this.uncontrolledMultipleValues) {\n if (enabledSet.has(value)) {\n nextValues.add(value);\n }\n }\n\n this.uncontrolledMultipleValues = nextValues;\n }\n\n private resolveInitialSingleValue(\n enabledToggles: readonly TngButtonToggle[],\n ): TngButtonToggleValue | null {\n if (enabledToggles.length === 0) {\n return null;\n }\n\n const defaultValue = this.getDefaultSingleValueInput();\n if (\n defaultValue !== undefined &&\n defaultValue !== null &&\n this.findEnabledToggleByValue(defaultValue, enabledToggles) !== null\n ) {\n return defaultValue;\n }\n\n if (this.allowEmpty()) {\n return null;\n }\n\n return enabledToggles[0]?.getValue() ?? null;\n }\n\n private resolveInitialMultipleValues(\n enabledToggles: readonly TngButtonToggle[],\n ): readonly TngButtonToggleValue[] {\n if (enabledToggles.length === 0) {\n return [];\n }\n\n const defaultValues = new Set(uniqueValues(this.getDefaultMultipleValuesInput()));\n if (defaultValues.size === 0) {\n return [];\n }\n\n const selectedValues: TngButtonToggleValue[] = [];\n for (const toggle of enabledToggles) {\n const value = toggle.getValue();\n if (defaultValues.has(value)) {\n selectedValues.push(value);\n }\n }\n\n return selectedValues;\n }\n\n private resolveNeighborValueOnRemoval(\n orderedToggles: readonly TngButtonToggle[],\n removedIndex: number,\n ): TngButtonToggleValue | null {\n if (removedIndex < 0) {\n return this.getEnabledToggles()[0]?.getValue() ?? null;\n }\n\n for (let index = removedIndex + 1; index < orderedToggles.length; index += 1) {\n const candidate = orderedToggles[index];\n if (candidate !== undefined && !candidate.isSelfDisabled()) {\n return candidate.getValue();\n }\n }\n\n for (let index = removedIndex - 1; index >= 0; index -= 1) {\n const candidate = orderedToggles[index];\n if (candidate !== undefined && !candidate.isSelfDisabled()) {\n return candidate.getValue();\n }\n }\n\n return null;\n }\n\n private resolveNeighborForUnavailableToggle(toggle: TngButtonToggle): TngButtonToggleValue | null {\n const orderedToggles = this.getOrderedToggles();\n const currentIndex = orderedToggles.indexOf(toggle);\n\n if (currentIndex < 0) {\n return this.getEnabledToggles()[0]?.getValue() ?? null;\n }\n\n for (let index = currentIndex + 1; index < orderedToggles.length; index += 1) {\n const candidate = orderedToggles[index];\n if (candidate !== undefined && !candidate.isSelfDisabled()) {\n return candidate.getValue();\n }\n }\n\n for (let index = currentIndex - 1; index >= 0; index -= 1) {\n const candidate = orderedToggles[index];\n if (candidate !== undefined && !candidate.isSelfDisabled()) {\n return candidate.getValue();\n }\n }\n\n return null;\n }\n\n private isSingleControlled(): boolean {\n if (this.type() !== 'single') {\n return false;\n }\n\n return this.getControlledSingleValueInput() !== undefined;\n }\n\n private isMultipleControlled(): boolean {\n if (this.type() !== 'multiple') {\n return false;\n }\n\n return this.getControlledMultipleValuesInput() !== undefined;\n }\n\n private getEffectiveSingleSelectedValue(\n enabledToggles = this.getEnabledToggles(),\n ): TngButtonToggleValue | null {\n if (this.type() !== 'single' || enabledToggles.length === 0) {\n return null;\n }\n\n let selectedValue = this.isSingleControlled()\n ? ((this.getControlledSingleValueInput() ?? null) as TngButtonToggleValue | null)\n : this.uncontrolledSingleValue;\n\n if (!this.isSingleControlled() && !this.hasSingleUserSelection) {\n const defaultValue = this.getDefaultSingleValueInput();\n if (\n defaultValue !== undefined &&\n defaultValue !== null &&\n this.findEnabledToggleByValue(defaultValue, enabledToggles) !== null\n ) {\n selectedValue = defaultValue;\n } else if (defaultValue === null) {\n selectedValue = null;\n }\n }\n\n if (\n selectedValue !== null &&\n this.findEnabledToggleByValue(selectedValue, enabledToggles) !== null\n ) {\n return selectedValue;\n }\n\n if (this.allowEmpty()) {\n return null;\n }\n\n return enabledToggles[0]?.getValue() ?? null;\n }\n\n private getEffectiveMultipleSelectedValues(\n enabledToggles = this.getEnabledToggles(),\n ): ReadonlySet<TngButtonToggleValue> {\n if (this.type() !== 'multiple' || enabledToggles.length === 0) {\n return new Set<TngButtonToggleValue>();\n }\n\n const sourceValues = this.isMultipleControlled()\n ? uniqueValues(this.getControlledMultipleValuesInput() ?? [])\n : (!this.hasMultipleUserSelection\n ? uniqueValues(this.getDefaultMultipleValuesInput())\n : Array.from(this.uncontrolledMultipleValues));\n\n const sourceSet = new Set(sourceValues);\n const selectedSet = new Set<TngButtonToggleValue>();\n\n for (const toggle of enabledToggles) {\n const value = toggle.getValue();\n if (sourceSet.has(value)) {\n selectedSet.add(value);\n }\n }\n\n return selectedSet;\n }\n\n private resolveCurrentTabStopValue(\n enabledToggles = this.getEnabledToggles(),\n ): TngButtonToggleValue | null {\n if (enabledToggles.length === 0) {\n return null;\n }\n\n if (\n this.focusedValue !== null &&\n this.findEnabledToggleByValue(this.focusedValue, enabledToggles) !== null\n ) {\n return this.focusedValue;\n }\n\n if (this.type() === 'single') {\n const selectedValue = this.getEffectiveSingleSelectedValue(enabledToggles);\n if (selectedValue !== null) {\n return selectedValue;\n }\n\n return enabledToggles[0]?.getValue() ?? null;\n }\n\n const selectedValues = this.getEffectiveMultipleSelectedValues(enabledToggles);\n for (const toggle of enabledToggles) {\n const value = toggle.getValue();\n if (selectedValues.has(value)) {\n return value;\n }\n }\n\n return enabledToggles[0]?.getValue() ?? null;\n }\n\n private getSelectedValuesInDomOrder(\n selectedValues: ReadonlySet<TngButtonToggleValue>,\n orderedToggles = this.getOrderedToggles(),\n ): readonly TngButtonToggleValue[] {\n if (selectedValues.size === 0) {\n return [];\n }\n\n const values: TngButtonToggleValue[] = [];\n for (const toggle of orderedToggles) {\n const value = toggle.getValue();\n if (selectedValues.has(value) && !toggle.isSelfDisabled()) {\n values.push(value);\n }\n }\n\n return values;\n }\n\n private getOrderedToggles(): TngButtonToggle[] {\n const toggles = Array.from(this.toggles);\n toggles.sort((a, b) =>\n compareByDomPosition(\n a.getHostElement(),\n b.getHostElement(),\n a.getRegistrationOrder(),\n b.getRegistrationOrder(),\n ),\n );\n\n return toggles;\n }\n\n private getEnabledToggles(): TngButtonToggle[] {\n return this.getOrderedToggles().filter((toggle) => !toggle.isSelfDisabled());\n }\n\n private findEnabledToggleByValue(\n value: TngButtonToggleValue | null,\n enabledToggles: readonly TngButtonToggle[] = this.getEnabledToggles(),\n ): TngButtonToggle | null {\n if (value === null) {\n return null;\n }\n\n return enabledToggles.find((toggle) => valuesEqual(toggle.getValue(), value)) ?? null;\n }\n\n private findToggleContainingElement(element: Element | null): TngButtonToggle | null {\n if (element === null) {\n return null;\n }\n\n const toggles = this.getOrderedToggles();\n return (\n toggles.find((toggle) => {\n const host = toggle.getHostElement();\n return host === element || host.contains(element);\n }) ?? null\n );\n }\n\n private getControlledSingleValueInput(): TngButtonToggleValue | null | undefined {\n const explicit = this.controlledValueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.value();\n }\n\n private getControlledMultipleValuesInput(): readonly TngButtonToggleValue[] | undefined {\n const explicit = this.controlledValuesInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.values();\n }\n\n private getDefaultSingleValueInput(): TngButtonToggleValue | null | undefined {\n const explicit = this.defaultValueInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.defaultValue();\n }\n\n private getDefaultMultipleValuesInput(): readonly TngButtonToggleValue[] {\n const explicit = this.defaultValuesInput();\n if (explicit !== undefined) {\n return explicit;\n }\n\n return this.defaultValues();\n }\n}\n\n@Directive({\n selector: 'button[tngButtonToggle]',\n exportAs: 'tngButtonToggle',\n standalone: true,\n})\nexport class TngButtonToggle {\n private readonly hostRef = inject<ElementRef<HTMLButtonElement>>(ElementRef);\n private readonly group = inject(TngButtonToggleGroup, { optional: true });\n private resolvedId = createToggleId();\n private readonly registrationOrder = nextRegistrationOrder++;\n private lastKnownValue: TngButtonToggleValue | null = null;\n private lastKnownDisabled = false;\n\n readonly toggleValueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'tngButtonToggleValue',\n transform: normalizeOptionalValueInput,\n });\n readonly valueInput = input<TngButtonToggleValue | null | undefined, unknown>(undefined, {\n alias: 'value',\n transform: normalizeOptionalValueInput,\n });\n readonly disabledInput = input<boolean, unknown>(false, {\n alias: 'disabled',\n transform: booleanAttribute,\n });\n readonly pressedInput = input<boolean, unknown>(false, {\n alias: 'pressed',\n transform: booleanAttribute,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'button-toggle' as const;\n\n @HostBinding('attr.id')\n protected get id(): string {\n return this.resolvedId;\n }\n\n @HostBinding('attr.type')\n protected readonly typeAttr = 'button' as const;\n\n @HostBinding('attr.role')\n protected get roleAttr(): 'radio' | null {\n return this.group?.getToggleRole() ?? null;\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndexAttr(): string | null {\n if (this.group === null) {\n return null;\n }\n\n return this.group.getToggleTabIndex(this);\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'true' | 'false' | null {\n if (this.group === null) {\n return null;\n }\n\n return this.group.getToggleAriaChecked(this);\n }\n\n @HostBinding('attr.aria-pressed')\n protected get ariaPressedAttr(): 'true' | 'false' | null {\n if (this.group !== null) {\n return this.group.getToggleAriaPressed(this);\n }\n\n return resolveTngButtonToggleAriaPressed(this.pressedInput());\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabledAttr(): 'true' | null {\n return this.isDisabledInContext() ? 'true' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): 'true' | 'false' {\n return this.isDisabledInContext() ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): 'true' | 'false' {\n if (this.group === null) {\n return 'false';\n }\n\n return this.group.isToggleFocused(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-selected')\n protected get dataSelectedAttr(): 'true' | 'false' {\n if (this.group === null) {\n return this.pressedInput() ? 'true' : 'false';\n }\n\n return this.group.isToggleSelected(this) ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'on' | 'off' {\n return resolveTngButtonToggleDataState(this.dataSelectedAttr === 'true');\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.isDisabledInContext() ? '' : null;\n }\n\n constructor() {\n this.group?.registerToggle(this);\n }\n\n ngOnInit(): void {\n this.syncResolvedIdFromHost();\n this.lastKnownValue = this.getValue();\n this.lastKnownDisabled = this.isDisabledInContext();\n this.group?.notifyToggleMutated(this);\n }\n\n ngDoCheck(): void {\n this.syncResolvedIdFromHost();\n this.lastKnownValue = this.getValue();\n this.lastKnownDisabled = this.isDisabledInContext();\n }\n\n ngOnDestroy(): void {\n this.group?.unregisterToggle(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 if (this.group === null) {\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.group.activateToggle(this, 'pointer');\n }\n\n @HostListener('focus')\n protected onFocus(): void {\n if (this.group === null || this.isDisabledInContext()) {\n return;\n }\n\n this.group.onToggleFocused(this, 'pointer');\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n this.group?.handleToggleKeydown(this, event);\n }\n\n getRegistrationOrder(): number {\n return this.registrationOrder;\n }\n\n getHostElement(): HTMLButtonElement {\n return this.hostRef.nativeElement;\n }\n\n getValue(): TngButtonToggleValue {\n const explicitValue = this.toggleValueInput() ?? this.valueInput();\n if (explicitValue !== undefined && explicitValue !== null) {\n return explicitValue;\n }\n\n const hostPropertyValue = this.hostRef.nativeElement.value;\n if (typeof hostPropertyValue === 'string' && hostPropertyValue.length > 0) {\n return hostPropertyValue;\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 isDisabledInContext(): boolean {\n if (this.group?.isDisabled()) {\n return true;\n }\n\n return this.disabledInput();\n }\n\n isSelfDisabled(): boolean {\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"]}
@@ -1,3 +1,4 @@
1
+ import * as i0 from "@angular/core";
1
2
  type NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;
2
3
  export declare function coerceTngCheckboxNullableBoolean(value: NullableBooleanInput): boolean | null;
3
4
  export declare function resolveTngCheckboxAriaChecked(checked: boolean, indeterminate: boolean): 'false' | 'mixed' | 'true';
@@ -43,6 +44,8 @@ export declare class TngCheckbox {
43
44
  onFocus(): void;
44
45
  onReadonlyChange(): void;
45
46
  private isInvalid;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngCheckbox, never>;
48
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngCheckbox, "input[tngCheckbox]", ["tngCheckbox"], { "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "ariaInvalid": { "alias": "ariaInvalid"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
46
49
  }
47
50
  export {};
48
51
  //# sourceMappingURL=tng-checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-checkbox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/checkbox/tng-checkbox.ts"],"names":[],"mappings":"AAUA,KAAK,oBAAoB,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAW/E,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,GAAG,IAAI,CAc5F;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,OAAO,GAAG,OAAO,GAAG,MAAM,CAM5B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,SAAS,GAAG,OAAO,GAAG,WAAW,CAMnC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,WAAW,EAAE,OAAO,GAAG,IAAI,GAC1B,OAAO,CAUT;AAED,qBAIa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoD;IAC/E,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAE7B,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,WAAW,yFAExB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,yFAEpB;IACH,SAAgB,aAAa,8EAE1B;IACH,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,qDAA8B;IACnD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAGlD,SAAS,KAAK,WAAW,IAAI,OAAO,CAEnC;IAGD,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAEzC;IAGD,SAAS,KAAK,eAAe,IAAI,OAAO,GAAG,OAAO,GAAG,MAAM,CAE1D;IAGD,SAAS,KAAK,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEjD;IAGD,SAAS,KAAK,eAAe,IAAI,MAAM,GAAG,IAAI,CAE7C;IAGD,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAE9C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,oBAAoB,IAAI,EAAE,GAAG,IAAI,CAE9C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,aAAa,IAAI,EAAE,GAAG,IAAI,CAEvC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,aAAa,IAAI,SAAS,GAAG,OAAO,GAAG,WAAW,CAE/D;IAGD,SAAS,KAAK,iBAAiB,IAAI,EAAE,GAAG,IAAI,CAE3C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,UAAU,CAEvC;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,CAEvC;IAGM,MAAM,IAAI,IAAI;IAMd,OAAO,IAAI,IAAI;IAMf,gBAAgB,IAAI,IAAI;IAU/B,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"tng-checkbox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/checkbox/tng-checkbox.ts"],"names":[],"mappings":";AAUA,KAAK,oBAAoB,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAW/E,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,GAAG,IAAI,CAc5F;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,OAAO,GAAG,OAAO,GAAG,MAAM,CAM5B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,SAAS,GAAG,OAAO,GAAG,WAAW,CAMnC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,WAAW,EAAE,OAAO,GAAG,IAAI,GAC1B,OAAO,CAUT;AAED,qBAKa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoD;IAC/E,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAE7B,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,WAAW,yFAExB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,yFAEpB;IACH,SAAgB,aAAa,8EAE1B;IACH,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,qDAA8B;IACnD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAGlD,SAAS,KAAK,WAAW,IAAI,OAAO,CAEnC;IAGD,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAEzC;IAGD,SAAS,KAAK,eAAe,IAAI,OAAO,GAAG,OAAO,GAAG,MAAM,CAE1D;IAGD,SAAS,KAAK,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEjD;IAGD,SAAS,KAAK,eAAe,IAAI,MAAM,GAAG,IAAI,CAE7C;IAGD,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAE9C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,oBAAoB,IAAI,EAAE,GAAG,IAAI,CAE9C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,aAAa,IAAI,EAAE,GAAG,IAAI,CAEvC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,aAAa,IAAI,SAAS,GAAG,OAAO,GAAG,WAAW,CAE/D;IAGD,SAAS,KAAK,iBAAiB,IAAI,EAAE,GAAG,IAAI,CAE3C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,UAAU,CAEvC;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,CAEvC;IAGM,MAAM,IAAI,IAAI;IAMd,OAAO,IAAI,IAAI;IAMf,gBAAgB,IAAI,IAAI;IAU/B,OAAO,CAAC,SAAS;yCA/JN,WAAW;2CAAX,WAAW;CAkKvB"}