@tailng-ui/primitives 0.13.0 → 0.15.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 (244) hide show
  1. package/package.json +3 -2
  2. package/src/index.d.ts +1 -0
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +1 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -1
  7. package/src/lib/feedback/empty/tng-empty.js +0 -5
  8. package/src/lib/feedback/empty/tng-empty.js.map +1 -1
  9. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
  10. package/src/lib/feedback/progress-bar/tng-progress-bar.js +0 -2
  11. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
  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 +0 -1
  14. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
  15. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
  16. package/src/lib/feedback/skeleton/tng-skeleton.js +0 -1
  17. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
  18. package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -1
  19. package/src/lib/feedback/toast/tng-toast.js +0 -2
  20. package/src/lib/feedback/toast/tng-toast.js.map +1 -1
  21. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -1
  22. package/src/lib/form/_shared/select/tng-select.overlay.shared.js +0 -1
  23. package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -1
  24. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts.map +1 -1
  25. package/src/lib/form/_shared/select/tng-select.parts.shared.js +0 -4
  26. package/src/lib/form/_shared/select/tng-select.parts.shared.js.map +1 -1
  27. package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -1
  28. package/src/lib/form/autocomplete/tng-autocomplete.js +0 -1
  29. package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -1
  30. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -1
  31. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +0 -2
  32. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -1
  33. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -1
  34. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +0 -1
  35. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -1
  36. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts.map +1 -1
  37. package/src/lib/form/autocomplete/tng-autocomplete.parts.js +0 -4
  38. package/src/lib/form/autocomplete/tng-autocomplete.parts.js.map +1 -1
  39. package/src/lib/form/button-toggle/tng-button-toggle.d.ts.map +1 -1
  40. package/src/lib/form/button-toggle/tng-button-toggle.js +0 -2
  41. package/src/lib/form/button-toggle/tng-button-toggle.js.map +1 -1
  42. package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -1
  43. package/src/lib/form/checkbox/tng-checkbox.js +0 -1
  44. package/src/lib/form/checkbox/tng-checkbox.js.map +1 -1
  45. package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
  46. package/src/lib/form/chips/tng-chips.js +0 -3
  47. package/src/lib/form/chips/tng-chips.js.map +1 -1
  48. package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -1
  49. package/src/lib/form/combobox/tng-combobox.js +0 -1
  50. package/src/lib/form/combobox/tng-combobox.js.map +1 -1
  51. package/src/lib/form/datepicker/__tests__/tng-datepicker.test-helpers.d.ts +25 -0
  52. package/src/lib/form/datepicker/__tests__/tng-datepicker.test-helpers.d.ts.map +1 -0
  53. package/src/lib/form/datepicker/__tests__/tng-datepicker.test-helpers.js +105 -0
  54. package/src/lib/form/datepicker/__tests__/tng-datepicker.test-helpers.js.map +1 -0
  55. package/src/lib/form/datepicker/datepicker.adapters.d.ts +5 -0
  56. package/src/lib/form/datepicker/datepicker.adapters.d.ts.map +1 -0
  57. package/src/lib/form/datepicker/datepicker.adapters.js +194 -0
  58. package/src/lib/form/datepicker/datepicker.adapters.js.map +1 -0
  59. package/src/lib/form/datepicker/datepicker.state.d.ts +10 -0
  60. package/src/lib/form/datepicker/datepicker.state.d.ts.map +1 -0
  61. package/src/lib/form/datepicker/datepicker.state.js +97 -0
  62. package/src/lib/form/datepicker/datepicker.state.js.map +1 -0
  63. package/src/lib/form/datepicker/datepicker.types.d.ts +269 -0
  64. package/src/lib/form/datepicker/datepicker.types.d.ts.map +1 -0
  65. package/src/lib/form/datepicker/datepicker.types.js +1 -0
  66. package/src/lib/form/datepicker/datepicker.types.js.map +1 -0
  67. package/src/lib/form/datepicker/datepicker.utils.d.ts +75 -0
  68. package/src/lib/form/datepicker/datepicker.utils.d.ts.map +1 -0
  69. package/src/lib/form/datepicker/datepicker.utils.js +238 -0
  70. package/src/lib/form/datepicker/datepicker.utils.js.map +1 -0
  71. package/src/lib/form/datepicker/index.d.ts +3 -0
  72. package/src/lib/form/datepicker/index.d.ts.map +1 -0
  73. package/src/lib/form/datepicker/index.js +3 -0
  74. package/src/lib/form/datepicker/index.js.map +1 -0
  75. package/src/lib/form/datepicker/tng-datepicker.d.ts +5 -0
  76. package/src/lib/form/datepicker/tng-datepicker.d.ts.map +1 -0
  77. package/src/lib/form/datepicker/tng-datepicker.js +1948 -0
  78. package/src/lib/form/datepicker/tng-datepicker.js.map +1 -0
  79. package/src/lib/form/datepicker/tng-datepicker.overlay.d.ts +60 -0
  80. package/src/lib/form/datepicker/tng-datepicker.overlay.d.ts.map +1 -0
  81. package/src/lib/form/datepicker/tng-datepicker.overlay.js +275 -0
  82. package/src/lib/form/datepicker/tng-datepicker.overlay.js.map +1 -0
  83. package/src/lib/form/input/tng-input.d.ts.map +1 -1
  84. package/src/lib/form/input/tng-input.js +0 -4
  85. package/src/lib/form/input/tng-input.js.map +1 -1
  86. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
  87. package/src/lib/form/input-otp/tng-input-otp.js +0 -1
  88. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
  89. package/src/lib/form/label/tng-label.d.ts.map +1 -1
  90. package/src/lib/form/label/tng-label.js +0 -1
  91. package/src/lib/form/label/tng-label.js.map +1 -1
  92. package/src/lib/form/listbox/listbox.directive.d.ts.map +1 -1
  93. package/src/lib/form/listbox/listbox.directive.js +0 -1
  94. package/src/lib/form/listbox/listbox.directive.js.map +1 -1
  95. package/src/lib/form/listbox/option.directive.d.ts.map +1 -1
  96. package/src/lib/form/listbox/option.directive.js +0 -1
  97. package/src/lib/form/listbox/option.directive.js.map +1 -1
  98. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts.map +1 -1
  99. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js +0 -1
  100. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js.map +1 -1
  101. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts.map +1 -1
  102. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js +0 -1
  103. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js.map +1 -1
  104. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts.map +1 -1
  105. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js +0 -1
  106. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js.map +1 -1
  107. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts.map +1 -1
  108. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js +0 -2
  109. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js.map +1 -1
  110. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -1
  111. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +0 -1
  112. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -1
  113. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
  114. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +0 -1
  115. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
  116. package/src/lib/form/multi-select/tng-multi-select.d.ts.map +1 -1
  117. package/src/lib/form/multi-select/tng-multi-select.js +0 -1
  118. package/src/lib/form/multi-select/tng-multi-select.js.map +1 -1
  119. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts.map +1 -1
  120. package/src/lib/form/multi-select/tng-multi-select.listbox.js +0 -2
  121. package/src/lib/form/multi-select/tng-multi-select.listbox.js.map +1 -1
  122. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -1
  123. package/src/lib/form/multiselect/tng-multiselect.js +0 -1
  124. package/src/lib/form/multiselect/tng-multiselect.js.map +1 -1
  125. package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
  126. package/src/lib/form/radio/tng-radio.js +0 -1
  127. package/src/lib/form/radio/tng-radio.js.map +1 -1
  128. package/src/lib/form/select/tng-select.d.ts.map +1 -1
  129. package/src/lib/form/select/tng-select.js +0 -1
  130. package/src/lib/form/select/tng-select.js.map +1 -1
  131. package/src/lib/form/select/tng-select.listbox.d.ts.map +1 -1
  132. package/src/lib/form/select/tng-select.listbox.js +0 -2
  133. package/src/lib/form/select/tng-select.listbox.js.map +1 -1
  134. package/src/lib/form/slider/tng-slider.d.ts.map +1 -1
  135. package/src/lib/form/slider/tng-slider.js +0 -1
  136. package/src/lib/form/slider/tng-slider.js.map +1 -1
  137. package/src/lib/form/switch/tng-switch.d.ts.map +1 -1
  138. package/src/lib/form/switch/tng-switch.js +0 -1
  139. package/src/lib/form/switch/tng-switch.js.map +1 -1
  140. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
  141. package/src/lib/form/textarea/tng-textarea.js +0 -1
  142. package/src/lib/form/textarea/tng-textarea.js.map +1 -1
  143. package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -1
  144. package/src/lib/form/toggle/tng-toggle.js +0 -1
  145. package/src/lib/form/toggle/tng-toggle.js.map +1 -1
  146. package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -1
  147. package/src/lib/form/toggle-group/tng-toggle-group.js +0 -1
  148. package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -1
  149. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
  150. package/src/lib/layout/accordion/tng-accordion.js +0 -4
  151. package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
  152. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -1
  153. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +0 -1
  154. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -1
  155. package/src/lib/layout/card/tng-card.d.ts.map +1 -1
  156. package/src/lib/layout/card/tng-card.js +0 -10
  157. package/src/lib/layout/card/tng-card.js.map +1 -1
  158. package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -1
  159. package/src/lib/layout/collapsible/tng-collapsible.js +0 -3
  160. package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -1
  161. package/src/lib/layout/drawer/tng-drawer.d.ts.map +1 -1
  162. package/src/lib/layout/drawer/tng-drawer.js +0 -6
  163. package/src/lib/layout/drawer/tng-drawer.js.map +1 -1
  164. package/src/lib/layout/grid/__tests__/tng-grid.test-harness.d.ts +32 -0
  165. package/src/lib/layout/grid/__tests__/tng-grid.test-harness.d.ts.map +1 -0
  166. package/src/lib/layout/grid/__tests__/tng-grid.test-harness.js +312 -0
  167. package/src/lib/layout/grid/__tests__/tng-grid.test-harness.js.map +1 -0
  168. package/src/lib/layout/grid/tng-grid.d.ts +144 -2
  169. package/src/lib/layout/grid/tng-grid.d.ts.map +1 -1
  170. package/src/lib/layout/grid/tng-grid.js +669 -3
  171. package/src/lib/layout/grid/tng-grid.js.map +1 -1
  172. package/src/lib/layout/separator/tng-separator.d.ts.map +1 -1
  173. package/src/lib/layout/separator/tng-separator.js +0 -1
  174. package/src/lib/layout/separator/tng-separator.js.map +1 -1
  175. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
  176. package/src/lib/layout/stepper/tng-stepper.js +0 -1
  177. package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
  178. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -1
  179. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +0 -1
  180. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -1
  181. package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -1
  182. package/src/lib/layout/tree/tng-tree-group.js +0 -1
  183. package/src/lib/layout/tree/tng-tree-group.js.map +1 -1
  184. package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -1
  185. package/src/lib/layout/tree/tng-tree-indicator.js +0 -1
  186. package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -1
  187. package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -1
  188. package/src/lib/layout/tree/tng-tree-item.js +0 -1
  189. package/src/lib/layout/tree/tng-tree-item.js.map +1 -1
  190. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
  191. package/src/lib/layout/tree/tng-tree.js +0 -1
  192. package/src/lib/layout/tree/tng-tree.js.map +1 -1
  193. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -1
  194. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +0 -5
  195. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -1
  196. package/src/lib/navigation/context-menu/tng-context-menu.d.ts.map +1 -1
  197. package/src/lib/navigation/context-menu/tng-context-menu.js +0 -2
  198. package/src/lib/navigation/context-menu/tng-context-menu.js.map +1 -1
  199. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -1
  200. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +0 -1
  201. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -1
  202. package/src/lib/navigation/menu/tng-menu.d.ts.map +1 -1
  203. package/src/lib/navigation/menu/tng-menu.js +0 -6
  204. package/src/lib/navigation/menu/tng-menu.js.map +1 -1
  205. package/src/lib/navigation/menubar/tng-menubar.d.ts.map +1 -1
  206. package/src/lib/navigation/menubar/tng-menubar.js +0 -2
  207. package/src/lib/navigation/menubar/tng-menubar.js.map +1 -1
  208. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -1
  209. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +0 -1
  210. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -1
  211. package/src/lib/navigation/tabs/tng-tabs.d.ts +13 -6
  212. package/src/lib/navigation/tabs/tng-tabs.d.ts.map +1 -1
  213. package/src/lib/navigation/tabs/tng-tabs.js +77 -41
  214. package/src/lib/navigation/tabs/tng-tabs.js.map +1 -1
  215. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -1
  216. package/src/lib/navigation/toolbar/tng-toolbar.js +0 -1
  217. package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -1
  218. package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -1
  219. package/src/lib/overlay/dialog/tng-dialog.js +0 -9
  220. package/src/lib/overlay/dialog/tng-dialog.js.map +1 -1
  221. package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -1
  222. package/src/lib/overlay/popover/tng-popover.js +0 -4
  223. package/src/lib/overlay/popover/tng-popover.js.map +1 -1
  224. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
  225. package/src/lib/overlay/tooltip/tng-tooltip.js +0 -3
  226. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
  227. package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -1
  228. package/src/lib/utility/avatar/tng-avatar.js +0 -3
  229. package/src/lib/utility/avatar/tng-avatar.js.map +1 -1
  230. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
  231. package/src/lib/utility/badge/tng-badge.js +0 -1
  232. package/src/lib/utility/badge/tng-badge.js.map +1 -1
  233. package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -1
  234. package/src/lib/utility/code-block/tng-code-block.js +0 -5
  235. package/src/lib/utility/code-block/tng-code-block.js.map +1 -1
  236. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
  237. package/src/lib/utility/copy/tng-copy.js +0 -1
  238. package/src/lib/utility/copy/tng-copy.js.map +1 -1
  239. package/src/lib/utility/press/tng-press.d.ts.map +1 -1
  240. package/src/lib/utility/press/tng-press.js +0 -1
  241. package/src/lib/utility/press/tng-press.js.map +1 -1
  242. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
  243. package/src/lib/utility/tag/tng-tag.js +0 -3
  244. 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})\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})\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 +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,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"}
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;yCA/JN,WAAW;2CAAX,WAAW;CAkKvB"}
@@ -145,7 +145,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
145
145
  args: [{
146
146
  selector: 'input[tngCheckbox]',
147
147
  exportAs: 'tngCheckbox',
148
- standalone: true,
149
148
  }]
150
149
  }], propDecorators: { ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], ariaInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaInvalid", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], checkedProp: [{
151
150
  type: HostBinding,
@@ -1 +1 @@
1
- {"version":3,"file":"tng-checkbox.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/checkbox/tng-checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\ntype NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;\n\nfunction normalizeStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function coerceTngCheckboxNullableBoolean(value: NullableBooleanInput): boolean | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n if (value === '' || value === true || value === 'true') {\n return true;\n }\n\n if (value === false || value === 'false') {\n return false;\n }\n\n return null;\n}\n\nexport function resolveTngCheckboxAriaChecked(\n checked: boolean,\n indeterminate: boolean,\n): 'false' | 'mixed' | 'true' {\n if (indeterminate) {\n return 'mixed';\n }\n\n return checked ? 'true' : 'false';\n}\n\nexport function resolveTngCheckboxDataState(\n checked: boolean,\n indeterminate: boolean,\n): 'checked' | 'mixed' | 'unchecked' {\n if (indeterminate) {\n return 'mixed';\n }\n\n return checked ? 'checked' : 'unchecked';\n}\n\nexport function resolveTngCheckboxInvalidState(\n invalid: boolean | null,\n ariaInvalid: boolean | null,\n): boolean {\n if (invalid !== null) {\n return invalid;\n }\n\n if (ariaInvalid !== null) {\n return ariaInvalid;\n }\n\n return false;\n}\n\n@Directive({\n selector: 'input[tngCheckbox]',\n exportAs: 'tngCheckbox',\n standalone: true,\n})\nexport class TngCheckbox {\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private focused = false;\n private focusVisible = false;\n\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngCheckboxNullableBoolean,\n });\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngCheckboxNullableBoolean,\n });\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly name = input<string | null>(null);\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string | null>(null);\n protected readonly typeAttr = 'checkbox' as const;\n\n @HostBinding('checked')\n protected get checkedProp(): boolean {\n return this.checked();\n }\n\n @HostBinding('indeterminate')\n protected get indeterminateProp(): boolean {\n return this.indeterminate();\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'false' | 'mixed' | 'true' {\n return resolveTngCheckboxAriaChecked(this.checked(), this.indeterminate());\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedByAttr(): string | null {\n return normalizeStringValue(this.ariaDescribedBy());\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalidAttr(): 'true' | null {\n return this.isInvalid() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-readonly')\n protected get ariaReadonlyAttr(): 'true' | null {\n return this.readonly() ? 'true' : null;\n }\n\n @HostBinding('attr.data-checked')\n protected get dataCheckedAttr(): '' | null {\n return this.checked() && !this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisibleAttr(): '' | null {\n return this.focusVisible ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalidAttr(): '' | null {\n return this.isInvalid() ? '' : null;\n }\n\n @HostBinding('attr.data-mixed')\n protected get dataMixedAttr(): '' | null {\n return this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-readonly')\n protected get dataReadonlyAttr(): '' | null {\n return this.readonly() ? '' : null;\n }\n\n @HostBinding('attr.data-required')\n protected get dataRequiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'checked' | 'mixed' | 'unchecked' {\n return resolveTngCheckboxDataState(this.checked(), this.indeterminate());\n }\n\n @HostBinding('attr.data-unchecked')\n protected get dataUncheckedAttr(): '' | null {\n return !this.checked() && !this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.name')\n protected get nameAttr(): string | null {\n return normalizeStringValue(this.name());\n }\n\n @HostBinding('attr.required')\n protected get requiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get hostTypeAttr(): 'checkbox' {\n return this.typeAttr;\n }\n\n @HostBinding('attr.value')\n protected get valueAttr(): string | null {\n return normalizeStringValue(this.value());\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.focused = false;\n this.focusVisible = false;\n }\n\n @HostListener('focus')\n public onFocus(): void {\n this.focused = true;\n this.focusVisible = this.elementRef.nativeElement.matches(':focus-visible');\n }\n\n @HostListener('change')\n public onReadonlyChange(): void {\n if (!this.readonly() || this.disabled()) {\n return;\n }\n\n const hostElement = this.elementRef.nativeElement;\n hostElement.checked = this.checked();\n hostElement.indeterminate = this.indeterminate();\n }\n\n private isInvalid(): boolean {\n return resolveTngCheckboxInvalidState(this.invalid(), this.ariaInvalid());\n }\n}\n"]}
1
+ {"version":3,"file":"tng-checkbox.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/checkbox/tng-checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\ntype NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;\n\nfunction normalizeStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function coerceTngCheckboxNullableBoolean(value: NullableBooleanInput): boolean | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n if (value === '' || value === true || value === 'true') {\n return true;\n }\n\n if (value === false || value === 'false') {\n return false;\n }\n\n return null;\n}\n\nexport function resolveTngCheckboxAriaChecked(\n checked: boolean,\n indeterminate: boolean,\n): 'false' | 'mixed' | 'true' {\n if (indeterminate) {\n return 'mixed';\n }\n\n return checked ? 'true' : 'false';\n}\n\nexport function resolveTngCheckboxDataState(\n checked: boolean,\n indeterminate: boolean,\n): 'checked' | 'mixed' | 'unchecked' {\n if (indeterminate) {\n return 'mixed';\n }\n\n return checked ? 'checked' : 'unchecked';\n}\n\nexport function resolveTngCheckboxInvalidState(\n invalid: boolean | null,\n ariaInvalid: boolean | null,\n): boolean {\n if (invalid !== null) {\n return invalid;\n }\n\n if (ariaInvalid !== null) {\n return ariaInvalid;\n }\n\n return false;\n}\n\n@Directive({\n selector: 'input[tngCheckbox]',\n exportAs: 'tngCheckbox',\n})\nexport class TngCheckbox {\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private focused = false;\n private focusVisible = false;\n\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngCheckboxNullableBoolean,\n });\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngCheckboxNullableBoolean,\n });\n public readonly indeterminate = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly name = input<string | null>(null);\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string | null>(null);\n protected readonly typeAttr = 'checkbox' as const;\n\n @HostBinding('checked')\n protected get checkedProp(): boolean {\n return this.checked();\n }\n\n @HostBinding('indeterminate')\n protected get indeterminateProp(): boolean {\n return this.indeterminate();\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'false' | 'mixed' | 'true' {\n return resolveTngCheckboxAriaChecked(this.checked(), this.indeterminate());\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedByAttr(): string | null {\n return normalizeStringValue(this.ariaDescribedBy());\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalidAttr(): 'true' | null {\n return this.isInvalid() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-readonly')\n protected get ariaReadonlyAttr(): 'true' | null {\n return this.readonly() ? 'true' : null;\n }\n\n @HostBinding('attr.data-checked')\n protected get dataCheckedAttr(): '' | null {\n return this.checked() && !this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisibleAttr(): '' | null {\n return this.focusVisible ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalidAttr(): '' | null {\n return this.isInvalid() ? '' : null;\n }\n\n @HostBinding('attr.data-mixed')\n protected get dataMixedAttr(): '' | null {\n return this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.data-readonly')\n protected get dataReadonlyAttr(): '' | null {\n return this.readonly() ? '' : null;\n }\n\n @HostBinding('attr.data-required')\n protected get dataRequiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'checked' | 'mixed' | 'unchecked' {\n return resolveTngCheckboxDataState(this.checked(), this.indeterminate());\n }\n\n @HostBinding('attr.data-unchecked')\n protected get dataUncheckedAttr(): '' | null {\n return !this.checked() && !this.indeterminate() ? '' : null;\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.name')\n protected get nameAttr(): string | null {\n return normalizeStringValue(this.name());\n }\n\n @HostBinding('attr.required')\n protected get requiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get hostTypeAttr(): 'checkbox' {\n return this.typeAttr;\n }\n\n @HostBinding('attr.value')\n protected get valueAttr(): string | null {\n return normalizeStringValue(this.value());\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.focused = false;\n this.focusVisible = false;\n }\n\n @HostListener('focus')\n public onFocus(): void {\n this.focused = true;\n this.focusVisible = this.elementRef.nativeElement.matches(':focus-visible');\n }\n\n @HostListener('change')\n public onReadonlyChange(): void {\n if (!this.readonly() || this.disabled()) {\n return;\n }\n\n const hostElement = this.elementRef.nativeElement;\n hostElement.checked = this.checked();\n hostElement.indeterminate = this.indeterminate();\n }\n\n private isInvalid(): boolean {\n return resolveTngCheckboxInvalidState(this.invalid(), this.ariaInvalid());\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-chips.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,EAMP,MAAM,eAAe,CAAC;;AAoCvB,qBAKa,QAAS,YAAW,MAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IAEjE,SAAgB,MAAM,sEAEnB;IACH,SAAgB,aAAa,0DAE1B;IACH,SAAgB,QAAQ,8EAGrB;IACH,SAAgB,SAAS,qDAEtB;IAEH,SAAgB,UAAU,oDAAqB;IAC/C,SAAgB,YAAY,+DAAgC;IAErD,QAAQ,IAAI,IAAI;IAIhB,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAsB3C,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IASrB,SAAS,KAAK,aAAa,IAAI,MAAM,GAAG,IAAI,CAE3C;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAG/C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;yCA5E/B,QAAQ;2CAAR,QAAQ;CA6EpB;AAED,qBAKa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,SAAgB,KAAK,+CAAmD;IACxE,SAAgB,KAAK,qDAAyD;IAC9E,SAAgB,QAAQ,8EAGrB;IACH,SAAgB,SAAS,8EAGtB;IAEH,SAAgB,UAAU,oDAAqB;IAExC,UAAU,IAAI,OAAO;IAIrB,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,MAAM;IAUvB,aAAa,IAAI,OAAO;IAY/B,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAe/C,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IAG9C,SAAS,KAAK,aAAa,IAAI,MAAM,GAAG,IAAI,CAE3C;IAGD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;yCA1EnC,OAAO;2CAAP,OAAO;CA2EnB;AAED,qBAKa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+C;IAC1E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAElC,SAAgB,SAAS,qDAEtB;IAEH,OAAO,CAAC,UAAU;IAKlB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAkB1C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,UAAU,IAAI,IAAI;IAK5B,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAuB/C,SAAS,KAAK,aAAa,IAAI,MAAM,CAapC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAGrD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAExC;yCAxGU,aAAa;2CAAb,aAAa;CAyGzB"}
1
+ {"version":3,"file":"tng-chips.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,MAAM,EAMP,MAAM,eAAe,CAAC;;AAoCvB,qBAIa,QAAS,YAAW,MAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IAEjE,SAAgB,MAAM,sEAEnB;IACH,SAAgB,aAAa,0DAE1B;IACH,SAAgB,QAAQ,8EAGrB;IACH,SAAgB,SAAS,qDAEtB;IAEH,SAAgB,UAAU,oDAAqB;IAC/C,SAAgB,YAAY,+DAAgC;IAErD,QAAQ,IAAI,IAAI;IAIhB,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAsB3C,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IASrB,SAAS,KAAK,aAAa,IAAI,MAAM,GAAG,IAAI,CAE3C;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAG/C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;yCA5E/B,QAAQ;2CAAR,QAAQ;CA6EpB;AAED,qBAIa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,SAAgB,KAAK,+CAAmD;IACxE,SAAgB,KAAK,qDAAyD;IAC9E,SAAgB,QAAQ,8EAGrB;IACH,SAAgB,SAAS,8EAGtB;IAEH,SAAgB,UAAU,oDAAqB;IAExC,UAAU,IAAI,OAAO;IAIrB,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,MAAM;IAUvB,aAAa,IAAI,OAAO;IAY/B,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAe/C,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;IAG9C,SAAS,KAAK,aAAa,IAAI,MAAM,GAAG,IAAI,CAE3C;IAGD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;yCA1EnC,OAAO;2CAAP,OAAO;CA2EnB;AAED,qBAIa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+C;IAC1E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;IAElC,SAAgB,SAAS,qDAEtB;IAEH,OAAO,CAAC,UAAU;IAKlB,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAkB1C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,UAAU,IAAI,IAAI;IAK5B,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAuB/C,SAAS,KAAK,aAAa,IAAI,MAAM,CAapC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAGrD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAExC;yCAxGU,aAAa;2CAAb,aAAa;CAyGzB"}
@@ -83,7 +83,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
83
83
  args: [{
84
84
  selector: '[tngChips]',
85
85
  exportAs: 'tngChips',
86
- standalone: true,
87
86
  }]
88
87
  }], propDecorators: { values: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngChipsValues", required: false }] }], defaultValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngChipsDefaultValues", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngChipsDisabled", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngChipsAriaLabel", required: false }] }], chipRemove: [{ type: i0.Output, args: ["chipRemove"] }], valuesChange: [{ type: i0.Output, args: ["valuesChange"] }], ariaLabelAttr: [{
89
88
  type: HostBinding,
@@ -157,7 +156,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
157
156
  args: [{
158
157
  selector: '[tngChip]',
159
158
  exportAs: 'tngChip',
160
- standalone: true,
161
159
  }]
162
160
  }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngChipValue", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngChipLabel", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngChipDisabled", required: false }] }], removable: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngChipRemovable", required: false }] }], chipRemove: [{ type: i0.Output, args: ["chipRemove"] }], onKeydown: [{
163
161
  type: HostListener,
@@ -255,7 +253,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
255
253
  args: [{
256
254
  selector: '[tngChipRemove]',
257
255
  exportAs: 'tngChipRemove',
258
- standalone: true,
259
256
  }]
260
257
  }], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "tngChipRemoveAriaLabel", required: false }] }], onClick: [{
261
258
  type: HostListener,
@@ -1 +1 @@
1
- {"version":3,"file":"tng-chips.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n OnInit,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nfunction normalizeString(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeValues(values: readonly unknown[] | null | undefined): readonly unknown[] {\n if (!Array.isArray(values) || values.length === 0) {\n return [];\n }\n\n return [...values];\n}\n\nfunction toDataValue(value: unknown): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n return String(value);\n}\n\nfunction removeFirstOccurrence(values: readonly unknown[], target: unknown): readonly unknown[] {\n const index = values.findIndex((item) => Object.is(item, target));\n if (index < 0) {\n return values;\n }\n\n return [...values.slice(0, index), ...values.slice(index + 1)];\n}\n\n@Directive({\n selector: '[tngChips]',\n exportAs: 'tngChips',\n standalone: true,\n})\nexport class TngChips implements OnInit {\n private readonly internalValues = signal<readonly unknown[]>([]);\n\n public readonly values = input<readonly unknown[] | undefined>(undefined, {\n alias: 'tngChipsValues',\n });\n public readonly defaultValues = input<readonly unknown[]>([], {\n alias: 'tngChipsDefaultValues',\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n alias: 'tngChipsDisabled',\n transform: booleanAttribute,\n });\n public readonly ariaLabel = input<string | null>(null, {\n alias: 'tngChipsAriaLabel',\n });\n\n public readonly chipRemove = output<unknown>();\n public readonly valuesChange = output<readonly unknown[]>();\n\n public ngOnInit(): void {\n this.internalValues.set(normalizeValues(this.defaultValues()));\n }\n\n public isDisabled(): boolean {\n return this.disabled();\n }\n\n public removeValue(value: unknown): boolean {\n if (this.disabled()) {\n return false;\n }\n\n this.chipRemove.emit(value);\n\n const currentValues = this.resolveValues();\n const nextValues = removeFirstOccurrence(currentValues, value);\n const changed = nextValues !== currentValues;\n if (!changed) {\n return true;\n }\n\n if (!this.isControlled()) {\n this.internalValues.set(nextValues);\n }\n\n this.valuesChange.emit(nextValues);\n return true;\n }\n\n private isControlled(): boolean {\n return this.values() !== undefined;\n }\n\n private resolveValues(): readonly unknown[] {\n if (this.isControlled()) {\n return normalizeValues(this.values());\n }\n\n return this.internalValues();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string | null {\n return normalizeString(this.ariaLabel());\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chips' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'list' as const;\n}\n\n@Directive({\n selector: '[tngChip]',\n exportAs: 'tngChip',\n standalone: true,\n})\nexport class TngChip {\n private readonly chips = inject(TngChips, { optional: true });\n\n public readonly value = input<unknown>(null, { alias: 'tngChipValue' });\n public readonly label = input<string | null>(null, { alias: 'tngChipLabel' });\n public readonly disabled = input<boolean, boolean | string>(false, {\n alias: 'tngChipDisabled',\n transform: booleanAttribute,\n });\n public readonly removable = input<boolean, boolean | string>(true, {\n alias: 'tngChipRemovable',\n transform: booleanAttribute,\n });\n\n public readonly chipRemove = output<unknown>();\n\n public isDisabled(): boolean {\n return this.disabled() || this.chips?.isDisabled() === true;\n }\n\n public isRemovable(): boolean {\n return this.removable() && !this.isDisabled();\n }\n\n public resolvedLabel(): string {\n const fromInput = normalizeString(this.label());\n if (fromInput !== null) {\n return fromInput;\n }\n\n const fromValue = toDataValue(this.value());\n return normalizeString(fromValue) ?? 'item';\n }\n\n public requestRemove(): boolean {\n if (!this.isRemovable()) {\n return false;\n }\n\n const chipValue = this.value();\n this.chipRemove.emit(chipValue);\n this.chips?.removeValue(chipValue);\n return true;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Delete' && event.key !== 'Backspace') {\n return;\n }\n\n if (!this.isRemovable()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.requestRemove();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chip' as const;\n\n @HostBinding('attr.data-value')\n protected get dataValueAttr(): string | null {\n return toDataValue(this.value());\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'listitem' as const;\n}\n\n@Directive({\n selector: '[tngChipRemove]',\n exportAs: 'tngChipRemove',\n standalone: true,\n})\nexport class TngChipRemove {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly chip = inject(TngChip, { optional: true });\n private readonly chips = inject(TngChips, { optional: true });\n\n private focused = false;\n private suppressNextClick = false;\n\n public readonly ariaLabel = input<string | null>(null, {\n alias: 'tngChipRemoveAriaLabel',\n });\n\n private isDisabled(): boolean {\n return this.chip?.isDisabled() === true || this.chips?.isDisabled() === true;\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n if (this.suppressNextClick) {\n this.suppressNextClick = false;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.chip?.requestRemove();\n }\n\n @HostListener('focusin')\n protected onFocusIn(): void {\n this.focused = true;\n }\n\n @HostListener('focusout')\n protected onFocusOut(): void {\n this.focused = false;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' && event.key !== ' ') {\n return;\n }\n\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.suppressNextClick = true;\n setTimeout(() => {\n this.suppressNextClick = false;\n });\n\n this.chip?.requestRemove();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string {\n const explicit = normalizeString(this.ariaLabel());\n if (explicit !== null) {\n return explicit;\n }\n\n const hostDefined = normalizeString(this.elementRef.nativeElement.getAttribute('aria-label'));\n if (hostDefined !== null) {\n return hostDefined;\n }\n\n const label = this.chip?.resolvedLabel() ?? 'item';\n return `Remove ${label}`;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chip-remove' as const;\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get typeAttr(): 'button' | null {\n return this.elementRef.nativeElement.tagName === 'BUTTON' ? 'button' : null;\n }\n}\n"]}
1
+ {"version":3,"file":"tng-chips.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n OnInit,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\n\nfunction normalizeString(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nfunction normalizeValues(values: readonly unknown[] | null | undefined): readonly unknown[] {\n if (!Array.isArray(values) || values.length === 0) {\n return [];\n }\n\n return [...values];\n}\n\nfunction toDataValue(value: unknown): string | null {\n if (value === null || value === undefined) {\n return null;\n }\n\n return String(value);\n}\n\nfunction removeFirstOccurrence(values: readonly unknown[], target: unknown): readonly unknown[] {\n const index = values.findIndex((item) => Object.is(item, target));\n if (index < 0) {\n return values;\n }\n\n return [...values.slice(0, index), ...values.slice(index + 1)];\n}\n\n@Directive({\n selector: '[tngChips]',\n exportAs: 'tngChips',\n})\nexport class TngChips implements OnInit {\n private readonly internalValues = signal<readonly unknown[]>([]);\n\n public readonly values = input<readonly unknown[] | undefined>(undefined, {\n alias: 'tngChipsValues',\n });\n public readonly defaultValues = input<readonly unknown[]>([], {\n alias: 'tngChipsDefaultValues',\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n alias: 'tngChipsDisabled',\n transform: booleanAttribute,\n });\n public readonly ariaLabel = input<string | null>(null, {\n alias: 'tngChipsAriaLabel',\n });\n\n public readonly chipRemove = output<unknown>();\n public readonly valuesChange = output<readonly unknown[]>();\n\n public ngOnInit(): void {\n this.internalValues.set(normalizeValues(this.defaultValues()));\n }\n\n public isDisabled(): boolean {\n return this.disabled();\n }\n\n public removeValue(value: unknown): boolean {\n if (this.disabled()) {\n return false;\n }\n\n this.chipRemove.emit(value);\n\n const currentValues = this.resolveValues();\n const nextValues = removeFirstOccurrence(currentValues, value);\n const changed = nextValues !== currentValues;\n if (!changed) {\n return true;\n }\n\n if (!this.isControlled()) {\n this.internalValues.set(nextValues);\n }\n\n this.valuesChange.emit(nextValues);\n return true;\n }\n\n private isControlled(): boolean {\n return this.values() !== undefined;\n }\n\n private resolveValues(): readonly unknown[] {\n if (this.isControlled()) {\n return normalizeValues(this.values());\n }\n\n return this.internalValues();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string | null {\n return normalizeString(this.ariaLabel());\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chips' as const;\n\n @HostBinding('attr.role')\n protected readonly role = 'list' as const;\n}\n\n@Directive({\n selector: '[tngChip]',\n exportAs: 'tngChip',\n})\nexport class TngChip {\n private readonly chips = inject(TngChips, { optional: true });\n\n public readonly value = input<unknown>(null, { alias: 'tngChipValue' });\n public readonly label = input<string | null>(null, { alias: 'tngChipLabel' });\n public readonly disabled = input<boolean, boolean | string>(false, {\n alias: 'tngChipDisabled',\n transform: booleanAttribute,\n });\n public readonly removable = input<boolean, boolean | string>(true, {\n alias: 'tngChipRemovable',\n transform: booleanAttribute,\n });\n\n public readonly chipRemove = output<unknown>();\n\n public isDisabled(): boolean {\n return this.disabled() || this.chips?.isDisabled() === true;\n }\n\n public isRemovable(): boolean {\n return this.removable() && !this.isDisabled();\n }\n\n public resolvedLabel(): string {\n const fromInput = normalizeString(this.label());\n if (fromInput !== null) {\n return fromInput;\n }\n\n const fromValue = toDataValue(this.value());\n return normalizeString(fromValue) ?? 'item';\n }\n\n public requestRemove(): boolean {\n if (!this.isRemovable()) {\n return false;\n }\n\n const chipValue = this.value();\n this.chipRemove.emit(chipValue);\n this.chips?.removeValue(chipValue);\n return true;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Delete' && event.key !== 'Backspace') {\n return;\n }\n\n if (!this.isRemovable()) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.requestRemove();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chip' as const;\n\n @HostBinding('attr.data-value')\n protected get dataValueAttr(): string | null {\n return toDataValue(this.value());\n }\n\n @HostBinding('attr.role')\n protected readonly role = 'listitem' as const;\n}\n\n@Directive({\n selector: '[tngChipRemove]',\n exportAs: 'tngChipRemove',\n})\nexport class TngChipRemove {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly chip = inject(TngChip, { optional: true });\n private readonly chips = inject(TngChips, { optional: true });\n\n private focused = false;\n private suppressNextClick = false;\n\n public readonly ariaLabel = input<string | null>(null, {\n alias: 'tngChipRemoveAriaLabel',\n });\n\n private isDisabled(): boolean {\n return this.chip?.isDisabled() === true || this.chips?.isDisabled() === true;\n }\n\n @HostListener('click', ['$event'])\n protected onClick(event: MouseEvent): void {\n if (this.suppressNextClick) {\n this.suppressNextClick = false;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n this.chip?.requestRemove();\n }\n\n @HostListener('focusin')\n protected onFocusIn(): void {\n this.focused = true;\n }\n\n @HostListener('focusout')\n protected onFocusOut(): void {\n this.focused = false;\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n if (event.key !== 'Enter' && event.key !== ' ') {\n return;\n }\n\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n this.suppressNextClick = true;\n setTimeout(() => {\n this.suppressNextClick = false;\n });\n\n this.chip?.requestRemove();\n }\n\n @HostBinding('attr.aria-label')\n protected get ariaLabelAttr(): string {\n const explicit = normalizeString(this.ariaLabel());\n if (explicit !== null) {\n return explicit;\n }\n\n const hostDefined = normalizeString(this.elementRef.nativeElement.getAttribute('aria-label'));\n if (hostDefined !== null) {\n return hostDefined;\n }\n\n const label = this.chip?.resolvedLabel() ?? 'item';\n return `Remove ${label}`;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chip-remove' as const;\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.isDisabled() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get typeAttr(): 'button' | null {\n return this.elementRef.nativeElement.tagName === 'BUTTON' ? 'button' : null;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-combobox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/combobox/tng-combobox.ts"],"names":[],"mappings":";AAEA,qBAKa,WAAW;IAEtB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;yCAFvC,WAAW;2CAAX,WAAW;CAGvB"}
1
+ {"version":3,"file":"tng-combobox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/combobox/tng-combobox.ts"],"names":[],"mappings":";AAEA,qBAIa,WAAW;IAEtB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;yCAFvC,WAAW;2CAAX,WAAW;CAGvB"}
@@ -10,7 +10,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImpor
10
10
  args: [{
11
11
  selector: '[tngCombobox]',
12
12
  exportAs: 'tngCombobox',
13
- standalone: true,
14
13
  }]
15
14
  }], propDecorators: { dataSlot: [{
16
15
  type: HostBinding,
@@ -1 +1 @@
1
- {"version":3,"file":"tng-combobox.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/combobox/tng-combobox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;;AAOvD,MAAM,OAAO,WAAW;IAEH,QAAQ,GAAG,UAAmB,CAAC;uGAFvC,WAAW;2FAAX,WAAW;;2FAAX,WAAW;kBALvB,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE,aAAa;oBACvB,UAAU,EAAE,IAAI;iBACjB;;sBAEE,WAAW;uBAAC,gBAAgB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngCombobox]',\n exportAs: 'tngCombobox',\n standalone: true,\n})\nexport class TngCombobox {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'combobox' as const;\n}\n"]}
1
+ {"version":3,"file":"tng-combobox.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/combobox/tng-combobox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;;AAMvD,MAAM,OAAO,WAAW;IAEH,QAAQ,GAAG,UAAmB,CAAC;uGAFvC,WAAW;2FAAX,WAAW;;2FAAX,WAAW;kBAJvB,SAAS;mBAAC;oBACT,QAAQ,EAAE,eAAe;oBACzB,QAAQ,EAAE,aAAa;iBACxB;;sBAEE,WAAW;uBAAC,gBAAgB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngCombobox]',\n exportAs: 'tngCombobox',\n})\nexport class TngCombobox {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'combobox' as const;\n}\n"]}