@tailng-ui/primitives 0.1.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 (374) hide show
  1. package/README.md +36 -0
  2. package/package.json +13 -0
  3. package/src/index.d.ts +55 -0
  4. package/src/index.d.ts.map +1 -0
  5. package/src/index.js +61 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/feedback/empty/tng-empty.d.ts +16 -0
  8. package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -0
  9. package/src/lib/feedback/empty/tng-empty.js +68 -0
  10. package/src/lib/feedback/empty/tng-empty.js.map +1 -0
  11. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts +24 -0
  12. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -0
  13. package/src/lib/feedback/progress-bar/tng-progress-bar.js +100 -0
  14. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -0
  15. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts +21 -0
  16. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -0
  17. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +87 -0
  18. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -0
  19. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +11 -0
  20. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -0
  21. package/src/lib/feedback/skeleton/tng-skeleton.js +44 -0
  22. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -0
  23. package/src/lib/feedback/toast/tng-toast.d.ts +20 -0
  24. package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -0
  25. package/src/lib/feedback/toast/tng-toast.js +79 -0
  26. package/src/lib/feedback/toast/tng-toast.js.map +1 -0
  27. package/src/lib/form/_shared/id/index.d.ts +4 -0
  28. package/src/lib/form/_shared/id/index.d.ts.map +1 -0
  29. package/src/lib/form/_shared/id/index.js +4 -0
  30. package/src/lib/form/_shared/id/index.js.map +1 -0
  31. package/src/lib/form/_shared/id/tng-unique-id.provider.d.ts +11 -0
  32. package/src/lib/form/_shared/id/tng-unique-id.provider.d.ts.map +1 -0
  33. package/src/lib/form/_shared/id/tng-unique-id.provider.js +15 -0
  34. package/src/lib/form/_shared/id/tng-unique-id.provider.js.map +1 -0
  35. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts +9 -0
  36. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts.map +1 -0
  37. package/src/lib/form/_shared/id/tng-unique-id.service.js +18 -0
  38. package/src/lib/form/_shared/id/tng-unique-id.service.js.map +1 -0
  39. package/src/lib/form/_shared/id/tng-unique-id.token.d.ts +8 -0
  40. package/src/lib/form/_shared/id/tng-unique-id.token.d.ts.map +1 -0
  41. package/src/lib/form/_shared/id/tng-unique-id.token.js +13 -0
  42. package/src/lib/form/_shared/id/tng-unique-id.token.js.map +1 -0
  43. package/src/lib/form/_shared/select/tng-select.host-api.d.ts +28 -0
  44. package/src/lib/form/_shared/select/tng-select.host-api.d.ts.map +1 -0
  45. package/src/lib/form/_shared/select/tng-select.host-api.js +1 -0
  46. package/src/lib/form/_shared/select/tng-select.host-api.js.map +1 -0
  47. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts +38 -0
  48. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -0
  49. package/src/lib/form/_shared/select/tng-select.overlay.shared.js +226 -0
  50. package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -0
  51. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts +35 -0
  52. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts.map +1 -0
  53. package/src/lib/form/_shared/select/tng-select.parts.shared.js +199 -0
  54. package/src/lib/form/_shared/select/tng-select.parts.shared.js.map +1 -0
  55. package/src/lib/form/_shared/select/tng-select.tokens.shared.d.ts +8 -0
  56. package/src/lib/form/_shared/select/tng-select.tokens.shared.d.ts.map +1 -0
  57. package/src/lib/form/_shared/select/tng-select.tokens.shared.js +7 -0
  58. package/src/lib/form/_shared/select/tng-select.tokens.shared.js.map +1 -0
  59. package/src/lib/form/autocomplete/index.d.ts +7 -0
  60. package/src/lib/form/autocomplete/index.d.ts.map +1 -0
  61. package/src/lib/form/autocomplete/index.js +6 -0
  62. package/src/lib/form/autocomplete/index.js.map +1 -0
  63. package/src/lib/form/autocomplete/tng-autocomplete.d.ts +52 -0
  64. package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -0
  65. package/src/lib/form/autocomplete/tng-autocomplete.js +95 -0
  66. package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -0
  67. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts +19 -0
  68. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -0
  69. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +123 -0
  70. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -0
  71. package/src/lib/form/autocomplete/tng-autocomplete.listbox.tokens.d.ts +4 -0
  72. package/src/lib/form/autocomplete/tng-autocomplete.listbox.tokens.d.ts.map +1 -0
  73. package/src/lib/form/autocomplete/tng-autocomplete.listbox.tokens.js +3 -0
  74. package/src/lib/form/autocomplete/tng-autocomplete.listbox.tokens.js.map +1 -0
  75. package/src/lib/form/autocomplete/tng-autocomplete.listbox.types.d.ts +4 -0
  76. package/src/lib/form/autocomplete/tng-autocomplete.listbox.types.d.ts.map +1 -0
  77. package/src/lib/form/autocomplete/tng-autocomplete.listbox.types.js +1 -0
  78. package/src/lib/form/autocomplete/tng-autocomplete.listbox.types.js.map +1 -0
  79. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts +40 -0
  80. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -0
  81. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +236 -0
  82. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -0
  83. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts +38 -0
  84. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts.map +1 -0
  85. package/src/lib/form/autocomplete/tng-autocomplete.parts.js +252 -0
  86. package/src/lib/form/autocomplete/tng-autocomplete.parts.js.map +1 -0
  87. package/src/lib/form/autocomplete/tng-autocomplete.tokens.d.ts +4 -0
  88. package/src/lib/form/autocomplete/tng-autocomplete.tokens.d.ts.map +1 -0
  89. package/src/lib/form/autocomplete/tng-autocomplete.tokens.js +3 -0
  90. package/src/lib/form/autocomplete/tng-autocomplete.tokens.js.map +1 -0
  91. package/src/lib/form/button-toggle/tng-button-toggle.d.ts +164 -0
  92. package/src/lib/form/button-toggle/tng-button-toggle.d.ts.map +1 -0
  93. package/src/lib/form/button-toggle/tng-button-toggle.js +1097 -0
  94. package/src/lib/form/button-toggle/tng-button-toggle.js.map +1 -0
  95. package/src/lib/form/checkbox/tng-checkbox.d.ts +48 -0
  96. package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -0
  97. package/src/lib/form/checkbox/tng-checkbox.js +234 -0
  98. package/src/lib/form/checkbox/tng-checkbox.js.map +1 -0
  99. package/src/lib/form/chips/tng-chips.d.ts +4 -0
  100. package/src/lib/form/chips/tng-chips.d.ts.map +1 -0
  101. package/src/lib/form/chips/tng-chips.js +16 -0
  102. package/src/lib/form/chips/tng-chips.js.map +1 -0
  103. package/src/lib/form/combobox/tng-combobox.d.ts +4 -0
  104. package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -0
  105. package/src/lib/form/combobox/tng-combobox.js +16 -0
  106. package/src/lib/form/combobox/tng-combobox.js.map +1 -0
  107. package/src/lib/form/input/tng-input.d.ts +87 -0
  108. package/src/lib/form/input/tng-input.d.ts.map +1 -0
  109. package/src/lib/form/input/tng-input.js +393 -0
  110. package/src/lib/form/input/tng-input.js.map +1 -0
  111. package/src/lib/form/input-otp/tng-input-otp.d.ts +7 -0
  112. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -0
  113. package/src/lib/form/input-otp/tng-input-otp.js +33 -0
  114. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -0
  115. package/src/lib/form/label/tng-label.d.ts +6 -0
  116. package/src/lib/form/label/tng-label.d.ts.map +1 -0
  117. package/src/lib/form/label/tng-label.js +25 -0
  118. package/src/lib/form/label/tng-label.js.map +1 -0
  119. package/src/lib/form/listbox/listbox.directive.d.ts +51 -0
  120. package/src/lib/form/listbox/listbox.directive.d.ts.map +1 -0
  121. package/src/lib/form/listbox/listbox.directive.js +439 -0
  122. package/src/lib/form/listbox/listbox.directive.js.map +1 -0
  123. package/src/lib/form/listbox/option.directive.d.ts +22 -0
  124. package/src/lib/form/listbox/option.directive.d.ts.map +1 -0
  125. package/src/lib/form/listbox/option.directive.js +109 -0
  126. package/src/lib/form/listbox/option.directive.js.map +1 -0
  127. package/src/lib/form/listbox/tokens.d.ts +14 -0
  128. package/src/lib/form/listbox/tokens.d.ts.map +1 -0
  129. package/src/lib/form/listbox/tokens.js +13 -0
  130. package/src/lib/form/listbox/tokens.js.map +1 -0
  131. package/src/lib/form/multi-autocomplete/index.d.ts +10 -0
  132. package/src/lib/form/multi-autocomplete/index.d.ts.map +1 -0
  133. package/src/lib/form/multi-autocomplete/index.js +10 -0
  134. package/src/lib/form/multi-autocomplete/index.js.map +1 -0
  135. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts +11 -0
  136. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts.map +1 -0
  137. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js +98 -0
  138. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js.map +1 -0
  139. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts +10 -0
  140. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts.map +1 -0
  141. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js +45 -0
  142. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js.map +1 -0
  143. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts +43 -0
  144. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts.map +1 -0
  145. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js +150 -0
  146. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js.map +1 -0
  147. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts +20 -0
  148. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts.map +1 -0
  149. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js +138 -0
  150. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js.map +1 -0
  151. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.tokens.d.ts +4 -0
  152. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.tokens.d.ts.map +1 -0
  153. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.tokens.js +3 -0
  154. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.tokens.js.map +1 -0
  155. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.types.d.ts +18 -0
  156. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.types.d.ts.map +1 -0
  157. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.types.js +2 -0
  158. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.types.js.map +1 -0
  159. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts +4 -0
  160. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -0
  161. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +17 -0
  162. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -0
  163. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.tokens.d.ts +4 -0
  164. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.tokens.d.ts.map +1 -0
  165. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.tokens.js +3 -0
  166. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.tokens.js.map +1 -0
  167. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +21 -0
  168. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -0
  169. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +241 -0
  170. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -0
  171. package/src/lib/form/multi-select/index.d.ts +7 -0
  172. package/src/lib/form/multi-select/index.d.ts.map +1 -0
  173. package/src/lib/form/multi-select/index.js +6 -0
  174. package/src/lib/form/multi-select/index.js.map +1 -0
  175. package/src/lib/form/multi-select/tng-multi-select.d.ts +45 -0
  176. package/src/lib/form/multi-select/tng-multi-select.d.ts.map +1 -0
  177. package/src/lib/form/multi-select/tng-multi-select.js +136 -0
  178. package/src/lib/form/multi-select/tng-multi-select.js.map +1 -0
  179. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts +21 -0
  180. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts.map +1 -0
  181. package/src/lib/form/multi-select/tng-multi-select.listbox.js +107 -0
  182. package/src/lib/form/multi-select/tng-multi-select.listbox.js.map +1 -0
  183. package/src/lib/form/multi-select/tng-multi-select.listbox.tokens.d.ts +3 -0
  184. package/src/lib/form/multi-select/tng-multi-select.listbox.tokens.d.ts.map +1 -0
  185. package/src/lib/form/multi-select/tng-multi-select.listbox.tokens.js +3 -0
  186. package/src/lib/form/multi-select/tng-multi-select.listbox.tokens.js.map +1 -0
  187. package/src/lib/form/multi-select/tng-multi-select.listbox.types.d.ts +3 -0
  188. package/src/lib/form/multi-select/tng-multi-select.listbox.types.d.ts.map +1 -0
  189. package/src/lib/form/multi-select/tng-multi-select.listbox.types.js +1 -0
  190. package/src/lib/form/multi-select/tng-multi-select.listbox.types.js.map +1 -0
  191. package/src/lib/form/multi-select/tng-multi-select.overlay.d.ts +5 -0
  192. package/src/lib/form/multi-select/tng-multi-select.overlay.d.ts.map +1 -0
  193. package/src/lib/form/multi-select/tng-multi-select.overlay.js +5 -0
  194. package/src/lib/form/multi-select/tng-multi-select.overlay.js.map +1 -0
  195. package/src/lib/form/multi-select/tng-multi-select.parts.d.ts +5 -0
  196. package/src/lib/form/multi-select/tng-multi-select.parts.d.ts.map +1 -0
  197. package/src/lib/form/multi-select/tng-multi-select.parts.js +5 -0
  198. package/src/lib/form/multi-select/tng-multi-select.parts.js.map +1 -0
  199. package/src/lib/form/multi-select/tng-multi-select.tokens.d.ts +4 -0
  200. package/src/lib/form/multi-select/tng-multi-select.tokens.d.ts.map +1 -0
  201. package/src/lib/form/multi-select/tng-multi-select.tokens.js +3 -0
  202. package/src/lib/form/multi-select/tng-multi-select.tokens.js.map +1 -0
  203. package/src/lib/form/multiselect/tng-multiselect.d.ts +4 -0
  204. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -0
  205. package/src/lib/form/multiselect/tng-multiselect.js +16 -0
  206. package/src/lib/form/multiselect/tng-multiselect.js.map +1 -0
  207. package/src/lib/form/radio/tng-radio.d.ts +20 -0
  208. package/src/lib/form/radio/tng-radio.d.ts.map +1 -0
  209. package/src/lib/form/radio/tng-radio.js +86 -0
  210. package/src/lib/form/radio/tng-radio.js.map +1 -0
  211. package/src/lib/form/select/tng-select.d.ts +38 -0
  212. package/src/lib/form/select/tng-select.d.ts.map +1 -0
  213. package/src/lib/form/select/tng-select.js +106 -0
  214. package/src/lib/form/select/tng-select.js.map +1 -0
  215. package/src/lib/form/select/tng-select.listbox.d.ts +20 -0
  216. package/src/lib/form/select/tng-select.listbox.d.ts.map +1 -0
  217. package/src/lib/form/select/tng-select.listbox.js +123 -0
  218. package/src/lib/form/select/tng-select.listbox.js.map +1 -0
  219. package/src/lib/form/select/tng-select.listbox.tokens.d.ts +3 -0
  220. package/src/lib/form/select/tng-select.listbox.tokens.d.ts.map +1 -0
  221. package/src/lib/form/select/tng-select.listbox.tokens.js +3 -0
  222. package/src/lib/form/select/tng-select.listbox.tokens.js.map +1 -0
  223. package/src/lib/form/select/tng-select.listbox.types.d.ts +4 -0
  224. package/src/lib/form/select/tng-select.listbox.types.d.ts.map +1 -0
  225. package/src/lib/form/select/tng-select.listbox.types.js +1 -0
  226. package/src/lib/form/select/tng-select.listbox.types.js.map +1 -0
  227. package/src/lib/form/select/tng-select.overlay.d.ts +5 -0
  228. package/src/lib/form/select/tng-select.overlay.d.ts.map +1 -0
  229. package/src/lib/form/select/tng-select.overlay.js +5 -0
  230. package/src/lib/form/select/tng-select.overlay.js.map +1 -0
  231. package/src/lib/form/select/tng-select.parts.d.ts +5 -0
  232. package/src/lib/form/select/tng-select.parts.d.ts.map +1 -0
  233. package/src/lib/form/select/tng-select.parts.js +5 -0
  234. package/src/lib/form/select/tng-select.parts.js.map +1 -0
  235. package/src/lib/form/select/tng-select.tokens.d.ts +4 -0
  236. package/src/lib/form/select/tng-select.tokens.d.ts.map +1 -0
  237. package/src/lib/form/select/tng-select.tokens.js +3 -0
  238. package/src/lib/form/select/tng-select.tokens.js.map +1 -0
  239. package/src/lib/form/slider/tng-slider.d.ts +19 -0
  240. package/src/lib/form/slider/tng-slider.d.ts.map +1 -0
  241. package/src/lib/form/slider/tng-slider.js +84 -0
  242. package/src/lib/form/slider/tng-slider.js.map +1 -0
  243. package/src/lib/form/switch/tng-switch.d.ts +19 -0
  244. package/src/lib/form/switch/tng-switch.d.ts.map +1 -0
  245. package/src/lib/form/switch/tng-switch.js +79 -0
  246. package/src/lib/form/switch/tng-switch.js.map +1 -0
  247. package/src/lib/form/textarea/tng-textarea.d.ts +23 -0
  248. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -0
  249. package/src/lib/form/textarea/tng-textarea.js +119 -0
  250. package/src/lib/form/textarea/tng-textarea.js.map +1 -0
  251. package/src/lib/form/toggle/tng-toggle.d.ts +44 -0
  252. package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -0
  253. package/src/lib/form/toggle/tng-toggle.js +203 -0
  254. package/src/lib/form/toggle/tng-toggle.js.map +1 -0
  255. package/src/lib/form/toggle-group/tng-toggle-group.d.ts +35 -0
  256. package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -0
  257. package/src/lib/form/toggle-group/tng-toggle-group.js +156 -0
  258. package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -0
  259. package/src/lib/internal/combobox/combobox.active.d.ts +17 -0
  260. package/src/lib/internal/combobox/combobox.active.d.ts.map +1 -0
  261. package/src/lib/internal/combobox/combobox.active.js +19 -0
  262. package/src/lib/internal/combobox/combobox.active.js.map +1 -0
  263. package/src/lib/internal/combobox/combobox.commit.d.ts +20 -0
  264. package/src/lib/internal/combobox/combobox.commit.d.ts.map +1 -0
  265. package/src/lib/internal/combobox/combobox.commit.js +34 -0
  266. package/src/lib/internal/combobox/combobox.commit.js.map +1 -0
  267. package/src/lib/internal/combobox/combobox.keyboard.d.ts +39 -0
  268. package/src/lib/internal/combobox/combobox.keyboard.d.ts.map +1 -0
  269. package/src/lib/internal/combobox/combobox.keyboard.js +88 -0
  270. package/src/lib/internal/combobox/combobox.keyboard.js.map +1 -0
  271. package/src/lib/internal/combobox/combobox.listbox-api.d.ts +19 -0
  272. package/src/lib/internal/combobox/combobox.listbox-api.d.ts.map +1 -0
  273. package/src/lib/internal/combobox/combobox.listbox-api.js +5 -0
  274. package/src/lib/internal/combobox/combobox.listbox-api.js.map +1 -0
  275. package/src/lib/internal/combobox/index.d.ts +5 -0
  276. package/src/lib/internal/combobox/index.d.ts.map +1 -0
  277. package/src/lib/internal/combobox/index.js +4 -0
  278. package/src/lib/internal/combobox/index.js.map +1 -0
  279. package/src/lib/layout/accordion/tng-accordion.d.ts +150 -0
  280. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -0
  281. package/src/lib/layout/accordion/tng-accordion.js +852 -0
  282. package/src/lib/layout/accordion/tng-accordion.js.map +1 -0
  283. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts +4 -0
  284. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -0
  285. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +16 -0
  286. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -0
  287. package/src/lib/layout/card/tng-card.d.ts +31 -0
  288. package/src/lib/layout/card/tng-card.d.ts.map +1 -0
  289. package/src/lib/layout/card/tng-card.js +133 -0
  290. package/src/lib/layout/card/tng-card.js.map +1 -0
  291. package/src/lib/layout/collapsible/tng-collapsible.d.ts +28 -0
  292. package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -0
  293. package/src/lib/layout/collapsible/tng-collapsible.js +123 -0
  294. package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -0
  295. package/src/lib/layout/drawer/tng-drawer.d.ts +177 -0
  296. package/src/lib/layout/drawer/tng-drawer.d.ts.map +1 -0
  297. package/src/lib/layout/drawer/tng-drawer.js +1147 -0
  298. package/src/lib/layout/drawer/tng-drawer.js.map +1 -0
  299. package/src/lib/layout/grid/tng-grid.d.ts +4 -0
  300. package/src/lib/layout/grid/tng-grid.d.ts.map +1 -0
  301. package/src/lib/layout/grid/tng-grid.js +16 -0
  302. package/src/lib/layout/grid/tng-grid.js.map +1 -0
  303. package/src/lib/layout/separator/tng-separator.d.ts +11 -0
  304. package/src/lib/layout/separator/tng-separator.d.ts.map +1 -0
  305. package/src/lib/layout/separator/tng-separator.js +47 -0
  306. package/src/lib/layout/separator/tng-separator.js.map +1 -0
  307. package/src/lib/layout/stepper/tng-stepper.d.ts +4 -0
  308. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -0
  309. package/src/lib/layout/stepper/tng-stepper.js +16 -0
  310. package/src/lib/layout/stepper/tng-stepper.js.map +1 -0
  311. package/src/lib/layout/tree/tng-tree.d.ts +4 -0
  312. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -0
  313. package/src/lib/layout/tree/tng-tree.js +16 -0
  314. package/src/lib/layout/tree/tng-tree.js.map +1 -0
  315. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts +17 -0
  316. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -0
  317. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +72 -0
  318. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -0
  319. package/src/lib/navigation/context-menu/tng-context-menu.d.ts +36 -0
  320. package/src/lib/navigation/context-menu/tng-context-menu.d.ts.map +1 -0
  321. package/src/lib/navigation/context-menu/tng-context-menu.js +159 -0
  322. package/src/lib/navigation/context-menu/tng-context-menu.js.map +1 -0
  323. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts +4 -0
  324. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -0
  325. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +16 -0
  326. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -0
  327. package/src/lib/navigation/menu/tng-menu.d.ts +173 -0
  328. package/src/lib/navigation/menu/tng-menu.d.ts.map +1 -0
  329. package/src/lib/navigation/menu/tng-menu.js +1026 -0
  330. package/src/lib/navigation/menu/tng-menu.js.map +1 -0
  331. package/src/lib/navigation/menubar/tng-menubar.d.ts +64 -0
  332. package/src/lib/navigation/menubar/tng-menubar.d.ts.map +1 -0
  333. package/src/lib/navigation/menubar/tng-menubar.js +478 -0
  334. package/src/lib/navigation/menubar/tng-menubar.js.map +1 -0
  335. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts +4 -0
  336. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -0
  337. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +16 -0
  338. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -0
  339. package/src/lib/navigation/tabs/tng-tabs.d.ts +234 -0
  340. package/src/lib/navigation/tabs/tng-tabs.d.ts.map +1 -0
  341. package/src/lib/navigation/tabs/tng-tabs.js +1350 -0
  342. package/src/lib/navigation/tabs/tng-tabs.js.map +1 -0
  343. package/src/lib/navigation/toolbar/tng-toolbar.d.ts +4 -0
  344. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -0
  345. package/src/lib/navigation/toolbar/tng-toolbar.js +16 -0
  346. package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -0
  347. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +25 -0
  348. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -0
  349. package/src/lib/overlay/tooltip/tng-tooltip.js +99 -0
  350. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -0
  351. package/src/lib/utility/avatar/tng-avatar.d.ts +10 -0
  352. package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -0
  353. package/src/lib/utility/avatar/tng-avatar.js +42 -0
  354. package/src/lib/utility/avatar/tng-avatar.js.map +1 -0
  355. package/src/lib/utility/badge/tng-badge.d.ts +63 -0
  356. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -0
  357. package/src/lib/utility/badge/tng-badge.js +345 -0
  358. package/src/lib/utility/badge/tng-badge.js.map +1 -0
  359. package/src/lib/utility/code-block/tng-code-block.d.ts +16 -0
  360. package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -0
  361. package/src/lib/utility/code-block/tng-code-block.js +68 -0
  362. package/src/lib/utility/code-block/tng-code-block.js.map +1 -0
  363. package/src/lib/utility/copy/tng-copy.d.ts +75 -0
  364. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -0
  365. package/src/lib/utility/copy/tng-copy.js +544 -0
  366. package/src/lib/utility/copy/tng-copy.js.map +1 -0
  367. package/src/lib/utility/press/tng-press.d.ts +33 -0
  368. package/src/lib/utility/press/tng-press.d.ts.map +1 -0
  369. package/src/lib/utility/press/tng-press.js +207 -0
  370. package/src/lib/utility/press/tng-press.js.map +1 -0
  371. package/src/lib/utility/tag/tng-tag.d.ts +4 -0
  372. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -0
  373. package/src/lib/utility/tag/tng-tag.js +16 -0
  374. package/src/lib/utility/tag/tng-tag.js.map +1 -0
@@ -0,0 +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"]}
@@ -0,0 +1,48 @@
1
+ type NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;
2
+ export declare function coerceTngCheckboxNullableBoolean(value: NullableBooleanInput): boolean | null;
3
+ export declare function resolveTngCheckboxAriaChecked(checked: boolean, indeterminate: boolean): 'false' | 'mixed' | 'true';
4
+ export declare function resolveTngCheckboxDataState(checked: boolean, indeterminate: boolean): 'checked' | 'mixed' | 'unchecked';
5
+ export declare function resolveTngCheckboxInvalidState(invalid: boolean | null, ariaInvalid: boolean | null): boolean;
6
+ export declare class TngCheckbox {
7
+ private readonly elementRef;
8
+ private focused;
9
+ private focusVisible;
10
+ readonly ariaDescribedBy: import("@angular/core").InputSignal<string | null>;
11
+ readonly ariaInvalid: import("@angular/core").InputSignalWithTransform<boolean | null, NullableBooleanInput>;
12
+ readonly checked: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
13
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
14
+ readonly invalid: import("@angular/core").InputSignalWithTransform<boolean | null, NullableBooleanInput>;
15
+ readonly indeterminate: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
16
+ readonly name: import("@angular/core").InputSignal<string | null>;
17
+ readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
18
+ readonly required: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
19
+ readonly value: import("@angular/core").InputSignal<string | null>;
20
+ protected readonly typeAttr: "checkbox";
21
+ protected get checkedProp(): boolean;
22
+ protected get indeterminateProp(): boolean;
23
+ protected get ariaCheckedAttr(): 'false' | 'mixed' | 'true';
24
+ protected get ariaDescribedByAttr(): string | null;
25
+ protected get ariaInvalidAttr(): 'true' | null;
26
+ protected get ariaReadonlyAttr(): 'true' | null;
27
+ protected get dataCheckedAttr(): '' | null;
28
+ protected get dataDisabledAttr(): '' | null;
29
+ protected get dataFocusedAttr(): '' | null;
30
+ protected get dataFocusVisibleAttr(): '' | null;
31
+ protected get dataInvalidAttr(): '' | null;
32
+ protected get dataMixedAttr(): '' | null;
33
+ protected get dataReadonlyAttr(): '' | null;
34
+ protected get dataRequiredAttr(): '' | null;
35
+ protected get dataStateAttr(): 'checked' | 'mixed' | 'unchecked';
36
+ protected get dataUncheckedAttr(): '' | null;
37
+ protected get disabledAttr(): '' | null;
38
+ protected get nameAttr(): string | null;
39
+ protected get requiredAttr(): '' | null;
40
+ protected get hostTypeAttr(): 'checkbox';
41
+ protected get valueAttr(): string | null;
42
+ onBlur(): void;
43
+ onFocus(): void;
44
+ onReadonlyChange(): void;
45
+ private isInvalid;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=tng-checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-checkbox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/checkbox/tng-checkbox.ts"],"names":[],"mappings":"AAUA,KAAK,oBAAoB,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAW/E,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,GAAG,IAAI,CAc5F;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,OAAO,GAAG,OAAO,GAAG,MAAM,CAM5B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,OAAO,GACrB,SAAS,GAAG,OAAO,GAAG,WAAW,CAMnC;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,WAAW,EAAE,OAAO,GAAG,IAAI,GAC1B,OAAO,CAUT;AAED,qBAIa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoD;IAC/E,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAE7B,SAAgB,eAAe,qDAA8B;IAC7D,SAAgB,WAAW,yFAExB;IACH,SAAgB,OAAO,8EAEpB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,OAAO,yFAEpB;IACH,SAAgB,aAAa,8EAE1B;IACH,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,qDAA8B;IACnD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;IAGlD,SAAS,KAAK,WAAW,IAAI,OAAO,CAEnC;IAGD,SAAS,KAAK,iBAAiB,IAAI,OAAO,CAEzC;IAGD,SAAS,KAAK,eAAe,IAAI,OAAO,GAAG,OAAO,GAAG,MAAM,CAE1D;IAGD,SAAS,KAAK,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEjD;IAGD,SAAS,KAAK,eAAe,IAAI,MAAM,GAAG,IAAI,CAE7C;IAGD,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAE9C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,oBAAoB,IAAI,EAAE,GAAG,IAAI,CAE9C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,aAAa,IAAI,EAAE,GAAG,IAAI,CAEvC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,aAAa,IAAI,SAAS,GAAG,OAAO,GAAG,WAAW,CAE/D;IAGD,SAAS,KAAK,iBAAiB,IAAI,EAAE,GAAG,IAAI,CAE3C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,UAAU,CAEvC;IAGD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,CAEvC;IAGM,MAAM,IAAI,IAAI;IAMd,OAAO,IAAI,IAAI;IAMf,gBAAgB,IAAI,IAAI;IAU/B,OAAO,CAAC,SAAS;CAGlB"}
@@ -0,0 +1,234 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, ElementRef, HostBinding, HostListener, booleanAttribute, inject, input, } from '@angular/core';
3
+ function normalizeStringValue(value) {
4
+ if (value === undefined || value === null) {
5
+ return null;
6
+ }
7
+ const normalized = value.trim();
8
+ return normalized.length > 0 ? normalized : null;
9
+ }
10
+ export function coerceTngCheckboxNullableBoolean(value) {
11
+ if (value === undefined || value === null) {
12
+ return null;
13
+ }
14
+ if (value === '' || value === true || value === 'true') {
15
+ return true;
16
+ }
17
+ if (value === false || value === 'false') {
18
+ return false;
19
+ }
20
+ return null;
21
+ }
22
+ export function resolveTngCheckboxAriaChecked(checked, indeterminate) {
23
+ if (indeterminate) {
24
+ return 'mixed';
25
+ }
26
+ return checked ? 'true' : 'false';
27
+ }
28
+ export function resolveTngCheckboxDataState(checked, indeterminate) {
29
+ if (indeterminate) {
30
+ return 'mixed';
31
+ }
32
+ return checked ? 'checked' : 'unchecked';
33
+ }
34
+ export function resolveTngCheckboxInvalidState(invalid, ariaInvalid) {
35
+ if (invalid !== null) {
36
+ return invalid;
37
+ }
38
+ if (ariaInvalid !== null) {
39
+ return ariaInvalid;
40
+ }
41
+ return false;
42
+ }
43
+ let TngCheckbox = class TngCheckbox {
44
+ elementRef = inject(ElementRef);
45
+ focused = false;
46
+ focusVisible = false;
47
+ ariaDescribedBy = input(null);
48
+ ariaInvalid = input(null, {
49
+ transform: coerceTngCheckboxNullableBoolean,
50
+ });
51
+ checked = input(false, {
52
+ transform: booleanAttribute,
53
+ });
54
+ disabled = input(false, {
55
+ transform: booleanAttribute,
56
+ });
57
+ invalid = input(null, {
58
+ transform: coerceTngCheckboxNullableBoolean,
59
+ });
60
+ indeterminate = input(false, {
61
+ transform: booleanAttribute,
62
+ });
63
+ name = input(null);
64
+ readonly = input(false, {
65
+ transform: booleanAttribute,
66
+ });
67
+ required = input(false, {
68
+ transform: booleanAttribute,
69
+ });
70
+ value = input(null);
71
+ typeAttr = 'checkbox';
72
+ get checkedProp() {
73
+ return this.checked();
74
+ }
75
+ get indeterminateProp() {
76
+ return this.indeterminate();
77
+ }
78
+ get ariaCheckedAttr() {
79
+ return resolveTngCheckboxAriaChecked(this.checked(), this.indeterminate());
80
+ }
81
+ get ariaDescribedByAttr() {
82
+ return normalizeStringValue(this.ariaDescribedBy());
83
+ }
84
+ get ariaInvalidAttr() {
85
+ return this.isInvalid() ? 'true' : null;
86
+ }
87
+ get ariaReadonlyAttr() {
88
+ return this.readonly() ? 'true' : null;
89
+ }
90
+ get dataCheckedAttr() {
91
+ return this.checked() && !this.indeterminate() ? '' : null;
92
+ }
93
+ get dataDisabledAttr() {
94
+ return this.disabled() ? '' : null;
95
+ }
96
+ get dataFocusedAttr() {
97
+ return this.focused ? '' : null;
98
+ }
99
+ get dataFocusVisibleAttr() {
100
+ return this.focusVisible ? '' : null;
101
+ }
102
+ get dataInvalidAttr() {
103
+ return this.isInvalid() ? '' : null;
104
+ }
105
+ get dataMixedAttr() {
106
+ return this.indeterminate() ? '' : null;
107
+ }
108
+ get dataReadonlyAttr() {
109
+ return this.readonly() ? '' : null;
110
+ }
111
+ get dataRequiredAttr() {
112
+ return this.required() ? '' : null;
113
+ }
114
+ get dataStateAttr() {
115
+ return resolveTngCheckboxDataState(this.checked(), this.indeterminate());
116
+ }
117
+ get dataUncheckedAttr() {
118
+ return !this.checked() && !this.indeterminate() ? '' : null;
119
+ }
120
+ get disabledAttr() {
121
+ return this.disabled() ? '' : null;
122
+ }
123
+ get nameAttr() {
124
+ return normalizeStringValue(this.name());
125
+ }
126
+ get requiredAttr() {
127
+ return this.required() ? '' : null;
128
+ }
129
+ get hostTypeAttr() {
130
+ return this.typeAttr;
131
+ }
132
+ get valueAttr() {
133
+ return normalizeStringValue(this.value());
134
+ }
135
+ onBlur() {
136
+ this.focused = false;
137
+ this.focusVisible = false;
138
+ }
139
+ onFocus() {
140
+ this.focused = true;
141
+ this.focusVisible = this.elementRef.nativeElement.matches(':focus-visible');
142
+ }
143
+ onReadonlyChange() {
144
+ if (!this.readonly() || this.disabled()) {
145
+ return;
146
+ }
147
+ const hostElement = this.elementRef.nativeElement;
148
+ hostElement.checked = this.checked();
149
+ hostElement.indeterminate = this.indeterminate();
150
+ }
151
+ isInvalid() {
152
+ return resolveTngCheckboxInvalidState(this.invalid(), this.ariaInvalid());
153
+ }
154
+ };
155
+ __decorate([
156
+ HostBinding('checked')
157
+ ], TngCheckbox.prototype, "checkedProp", null);
158
+ __decorate([
159
+ HostBinding('indeterminate')
160
+ ], TngCheckbox.prototype, "indeterminateProp", null);
161
+ __decorate([
162
+ HostBinding('attr.aria-checked')
163
+ ], TngCheckbox.prototype, "ariaCheckedAttr", null);
164
+ __decorate([
165
+ HostBinding('attr.aria-describedby')
166
+ ], TngCheckbox.prototype, "ariaDescribedByAttr", null);
167
+ __decorate([
168
+ HostBinding('attr.aria-invalid')
169
+ ], TngCheckbox.prototype, "ariaInvalidAttr", null);
170
+ __decorate([
171
+ HostBinding('attr.aria-readonly')
172
+ ], TngCheckbox.prototype, "ariaReadonlyAttr", null);
173
+ __decorate([
174
+ HostBinding('attr.data-checked')
175
+ ], TngCheckbox.prototype, "dataCheckedAttr", null);
176
+ __decorate([
177
+ HostBinding('attr.data-disabled')
178
+ ], TngCheckbox.prototype, "dataDisabledAttr", null);
179
+ __decorate([
180
+ HostBinding('attr.data-focused')
181
+ ], TngCheckbox.prototype, "dataFocusedAttr", null);
182
+ __decorate([
183
+ HostBinding('attr.data-focus-visible')
184
+ ], TngCheckbox.prototype, "dataFocusVisibleAttr", null);
185
+ __decorate([
186
+ HostBinding('attr.data-invalid')
187
+ ], TngCheckbox.prototype, "dataInvalidAttr", null);
188
+ __decorate([
189
+ HostBinding('attr.data-mixed')
190
+ ], TngCheckbox.prototype, "dataMixedAttr", null);
191
+ __decorate([
192
+ HostBinding('attr.data-readonly')
193
+ ], TngCheckbox.prototype, "dataReadonlyAttr", null);
194
+ __decorate([
195
+ HostBinding('attr.data-required')
196
+ ], TngCheckbox.prototype, "dataRequiredAttr", null);
197
+ __decorate([
198
+ HostBinding('attr.data-state')
199
+ ], TngCheckbox.prototype, "dataStateAttr", null);
200
+ __decorate([
201
+ HostBinding('attr.data-unchecked')
202
+ ], TngCheckbox.prototype, "dataUncheckedAttr", null);
203
+ __decorate([
204
+ HostBinding('attr.disabled')
205
+ ], TngCheckbox.prototype, "disabledAttr", null);
206
+ __decorate([
207
+ HostBinding('attr.name')
208
+ ], TngCheckbox.prototype, "nameAttr", null);
209
+ __decorate([
210
+ HostBinding('attr.required')
211
+ ], TngCheckbox.prototype, "requiredAttr", null);
212
+ __decorate([
213
+ HostBinding('attr.type')
214
+ ], TngCheckbox.prototype, "hostTypeAttr", null);
215
+ __decorate([
216
+ HostBinding('attr.value')
217
+ ], TngCheckbox.prototype, "valueAttr", null);
218
+ __decorate([
219
+ HostListener('blur')
220
+ ], TngCheckbox.prototype, "onBlur", null);
221
+ __decorate([
222
+ HostListener('focus')
223
+ ], TngCheckbox.prototype, "onFocus", null);
224
+ __decorate([
225
+ HostListener('change')
226
+ ], TngCheckbox.prototype, "onReadonlyChange", null);
227
+ TngCheckbox = __decorate([
228
+ Directive({
229
+ selector: 'input[tngCheckbox]',
230
+ exportAs: 'tngCheckbox',
231
+ })
232
+ ], TngCheckbox);
233
+ export { TngCheckbox };
234
+ //# sourceMappingURL=tng-checkbox.js.map
@@ -0,0 +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})\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"]}
@@ -0,0 +1,4 @@
1
+ export declare class TngChips {
2
+ protected readonly dataSlot: "chips";
3
+ }
4
+ //# sourceMappingURL=tng-chips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-chips.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":"AAEA,qBAIa,QAAQ;IAEnB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;CAChD"}
@@ -0,0 +1,16 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, HostBinding } from '@angular/core';
3
+ let TngChips = class TngChips {
4
+ dataSlot = 'chips';
5
+ };
6
+ __decorate([
7
+ HostBinding('attr.data-slot')
8
+ ], TngChips.prototype, "dataSlot", void 0);
9
+ TngChips = __decorate([
10
+ Directive({
11
+ selector: '[tngChips]',
12
+ exportAs: 'tngChips',
13
+ })
14
+ ], TngChips);
15
+ export { TngChips };
16
+ //# sourceMappingURL=tng-chips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-chips.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/chips/tng-chips.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAMhD,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAEA,QAAQ,GAAG,OAAgB,CAAC;CAChD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;0CACiB;AAFpC,QAAQ;IAJpB,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,QAAQ,EAAE,UAAU;KACrB,CAAC;GACW,QAAQ,CAGpB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngChips]',\n exportAs: 'tngChips',\n})\nexport class TngChips {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'chips' as const;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export declare class TngCombobox {
2
+ protected readonly dataSlot: "combobox";
3
+ }
4
+ //# sourceMappingURL=tng-combobox.d.ts.map
@@ -0,0 +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,qBAIa,WAAW;IAEtB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;CACnD"}
@@ -0,0 +1,16 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, HostBinding } from '@angular/core';
3
+ let TngCombobox = class TngCombobox {
4
+ dataSlot = 'combobox';
5
+ };
6
+ __decorate([
7
+ HostBinding('attr.data-slot')
8
+ ], TngCombobox.prototype, "dataSlot", void 0);
9
+ TngCombobox = __decorate([
10
+ Directive({
11
+ selector: '[tngCombobox]',
12
+ exportAs: 'tngCombobox',
13
+ })
14
+ ], TngCombobox);
15
+ export { TngCombobox };
16
+ //# sourceMappingURL=tng-combobox.js.map
@@ -0,0 +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;AAMhD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEH,QAAQ,GAAG,UAAmB,CAAC;CACnD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;6CACoB;AAFvC,WAAW;IAJvB,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,aAAa;KACxB,CAAC;GACW,WAAW,CAGvB","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"]}