@tailng-ui/primitives 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.md +97 -11
  2. package/package.json +12 -6
  3. package/src/lib/feedback/empty/tng-empty.d.ts +11 -0
  4. package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -1
  5. package/src/lib/feedback/empty/tng-empty.js +76 -61
  6. package/src/lib/feedback/empty/tng-empty.js.map +1 -1
  7. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts +5 -0
  8. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
  9. package/src/lib/feedback/progress-bar/tng-progress-bar.js +50 -52
  10. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
  11. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts +3 -0
  12. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
  13. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +35 -40
  14. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
  15. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +3 -0
  16. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
  17. package/src/lib/feedback/skeleton/tng-skeleton.js +30 -31
  18. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
  19. package/src/lib/feedback/toast/tng-toast.d.ts +5 -0
  20. package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -1
  21. package/src/lib/feedback/toast/tng-toast.js +51 -47
  22. package/src/lib/feedback/toast/tng-toast.js.map +1 -1
  23. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts +3 -0
  24. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts.map +1 -1
  25. package/src/lib/form/_shared/id/tng-unique-id.service.js +9 -7
  26. package/src/lib/form/_shared/id/tng-unique-id.service.js.map +1 -1
  27. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts +3 -0
  28. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -1
  29. package/src/lib/form/_shared/select/tng-select.overlay.shared.js +22 -20
  30. package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -1
  31. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts +9 -0
  32. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts.map +1 -1
  33. package/src/lib/form/_shared/select/tng-select.parts.shared.js +106 -98
  34. package/src/lib/form/_shared/select/tng-select.parts.shared.js.map +1 -1
  35. package/src/lib/form/autocomplete/tng-autocomplete.d.ts +3 -0
  36. package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -1
  37. package/src/lib/form/autocomplete/tng-autocomplete.js +40 -38
  38. package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -1
  39. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts +6 -0
  40. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -1
  41. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +54 -46
  42. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -1
  43. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts +3 -0
  44. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -1
  45. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +22 -20
  46. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -1
  47. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts +9 -0
  48. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts.map +1 -1
  49. package/src/lib/form/autocomplete/tng-autocomplete.parts.js +109 -101
  50. package/src/lib/form/autocomplete/tng-autocomplete.parts.js.map +1 -1
  51. package/src/lib/form/button-toggle/tng-button-toggle.d.ts +5 -0
  52. package/src/lib/form/button-toggle/tng-button-toggle.d.ts.map +1 -1
  53. package/src/lib/form/button-toggle/tng-button-toggle.js +121 -155
  54. package/src/lib/form/button-toggle/tng-button-toggle.js.map +1 -1
  55. package/src/lib/form/checkbox/tng-checkbox.d.ts +3 -0
  56. package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -1
  57. package/src/lib/form/checkbox/tng-checkbox.js +95 -106
  58. package/src/lib/form/checkbox/tng-checkbox.js.map +1 -1
  59. package/src/lib/form/chips/tng-chips.d.ts +7 -0
  60. package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
  61. package/src/lib/form/chips/tng-chips.js +107 -112
  62. package/src/lib/form/chips/tng-chips.js.map +1 -1
  63. package/src/lib/form/combobox/tng-combobox.d.ts +3 -0
  64. package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -1
  65. package/src/lib/form/combobox/tng-combobox.js +16 -13
  66. package/src/lib/form/combobox/tng-combobox.js.map +1 -1
  67. package/src/lib/form/input/tng-input.d.ts +9 -0
  68. package/src/lib/form/input/tng-input.d.ts.map +1 -1
  69. package/src/lib/form/input/tng-input.js +161 -141
  70. package/src/lib/form/input/tng-input.js.map +1 -1
  71. package/src/lib/form/input-otp/tng-input-otp.d.ts +3 -0
  72. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
  73. package/src/lib/form/input-otp/tng-input-otp.js +58 -69
  74. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
  75. package/src/lib/form/label/tng-label.d.ts +3 -0
  76. package/src/lib/form/label/tng-label.d.ts.map +1 -1
  77. package/src/lib/form/label/tng-label.js +24 -25
  78. package/src/lib/form/label/tng-label.js.map +1 -1
  79. package/src/lib/form/listbox/listbox.directive.d.ts +3 -0
  80. package/src/lib/form/listbox/listbox.directive.d.ts.map +1 -1
  81. package/src/lib/form/listbox/listbox.directive.js +45 -43
  82. package/src/lib/form/listbox/listbox.directive.js.map +1 -1
  83. package/src/lib/form/listbox/option.directive.d.ts +3 -0
  84. package/src/lib/form/listbox/option.directive.d.ts.map +1 -1
  85. package/src/lib/form/listbox/option.directive.js +40 -38
  86. package/src/lib/form/listbox/option.directive.js.map +1 -1
  87. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts +3 -0
  88. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts.map +1 -1
  89. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js +23 -21
  90. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js.map +1 -1
  91. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts +3 -0
  92. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts.map +1 -1
  93. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js +25 -23
  94. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js.map +1 -1
  95. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts +3 -0
  96. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts.map +1 -1
  97. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js +35 -33
  98. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js.map +1 -1
  99. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts +6 -0
  100. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts.map +1 -1
  101. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js +57 -46
  102. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js.map +1 -1
  103. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts +3 -0
  104. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -1
  105. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +16 -14
  106. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -1
  107. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +3 -0
  108. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
  109. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +52 -50
  110. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
  111. package/src/lib/form/multi-select/tng-multi-select.d.ts +3 -0
  112. package/src/lib/form/multi-select/tng-multi-select.d.ts.map +1 -1
  113. package/src/lib/form/multi-select/tng-multi-select.js +41 -36
  114. package/src/lib/form/multi-select/tng-multi-select.js.map +1 -1
  115. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts +6 -0
  116. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts.map +1 -1
  117. package/src/lib/form/multi-select/tng-multi-select.listbox.js +50 -45
  118. package/src/lib/form/multi-select/tng-multi-select.listbox.js.map +1 -1
  119. package/src/lib/form/multiselect/tng-multiselect.d.ts +3 -0
  120. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -1
  121. package/src/lib/form/multiselect/tng-multiselect.js +16 -13
  122. package/src/lib/form/multiselect/tng-multiselect.js.map +1 -1
  123. package/src/lib/form/radio/tng-radio.d.ts +3 -0
  124. package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
  125. package/src/lib/form/radio/tng-radio.js +91 -100
  126. package/src/lib/form/radio/tng-radio.js.map +1 -1
  127. package/src/lib/form/select/tng-select.d.ts +3 -0
  128. package/src/lib/form/select/tng-select.d.ts.map +1 -1
  129. package/src/lib/form/select/tng-select.js +41 -36
  130. package/src/lib/form/select/tng-select.js.map +1 -1
  131. package/src/lib/form/select/tng-select.listbox.d.ts +6 -0
  132. package/src/lib/form/select/tng-select.listbox.d.ts.map +1 -1
  133. package/src/lib/form/select/tng-select.listbox.js +50 -45
  134. package/src/lib/form/select/tng-select.listbox.js.map +1 -1
  135. package/src/lib/form/slider/tng-slider.d.ts +3 -0
  136. package/src/lib/form/slider/tng-slider.d.ts.map +1 -1
  137. package/src/lib/form/slider/tng-slider.js +42 -49
  138. package/src/lib/form/slider/tng-slider.js.map +1 -1
  139. package/src/lib/form/switch/tng-switch.d.ts +3 -0
  140. package/src/lib/form/switch/tng-switch.d.ts.map +1 -1
  141. package/src/lib/form/switch/tng-switch.js +44 -47
  142. package/src/lib/form/switch/tng-switch.js.map +1 -1
  143. package/src/lib/form/textarea/tng-textarea.d.ts +4 -0
  144. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
  145. package/src/lib/form/textarea/tng-textarea.js +40 -41
  146. package/src/lib/form/textarea/tng-textarea.js.map +1 -1
  147. package/src/lib/form/toggle/tng-toggle.d.ts +3 -0
  148. package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -1
  149. package/src/lib/form/toggle/tng-toggle.js +71 -74
  150. package/src/lib/form/toggle/tng-toggle.js.map +1 -1
  151. package/src/lib/form/toggle-group/tng-toggle-group.d.ts +3 -0
  152. package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -1
  153. package/src/lib/form/toggle-group/tng-toggle-group.js +48 -49
  154. package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -1
  155. package/src/lib/layout/accordion/tng-accordion.d.ts +9 -0
  156. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
  157. package/src/lib/layout/accordion/tng-accordion.js +143 -155
  158. package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
  159. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts +3 -0
  160. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -1
  161. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +16 -13
  162. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -1
  163. package/src/lib/layout/card/tng-card.d.ts +21 -0
  164. package/src/lib/layout/card/tng-card.d.ts.map +1 -1
  165. package/src/lib/layout/card/tng-card.js +151 -121
  166. package/src/lib/layout/card/tng-card.js.map +1 -1
  167. package/src/lib/layout/collapsible/tng-collapsible.d.ts +7 -0
  168. package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -1
  169. package/src/lib/layout/collapsible/tng-collapsible.js +82 -83
  170. package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -1
  171. package/src/lib/layout/drawer/tng-drawer.d.ts +13 -0
  172. package/src/lib/layout/drawer/tng-drawer.d.ts.map +1 -1
  173. package/src/lib/layout/drawer/tng-drawer.js +217 -226
  174. package/src/lib/layout/drawer/tng-drawer.js.map +1 -1
  175. package/src/lib/layout/grid/tng-grid.d.ts +3 -0
  176. package/src/lib/layout/grid/tng-grid.d.ts.map +1 -1
  177. package/src/lib/layout/grid/tng-grid.js +16 -13
  178. package/src/lib/layout/grid/tng-grid.js.map +1 -1
  179. package/src/lib/layout/separator/tng-separator.d.ts +3 -0
  180. package/src/lib/layout/separator/tng-separator.d.ts.map +1 -1
  181. package/src/lib/layout/separator/tng-separator.js +30 -29
  182. package/src/lib/layout/separator/tng-separator.js.map +1 -1
  183. package/src/lib/layout/stepper/tng-stepper.d.ts +3 -0
  184. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
  185. package/src/lib/layout/stepper/tng-stepper.js +16 -13
  186. package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
  187. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts +3 -0
  188. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -1
  189. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +54 -11
  190. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -1
  191. package/src/lib/layout/tree/tng-tree-group.d.ts +3 -0
  192. package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -1
  193. package/src/lib/layout/tree/tng-tree-group.js +19 -17
  194. package/src/lib/layout/tree/tng-tree-group.js.map +1 -1
  195. package/src/lib/layout/tree/tng-tree-indicator.d.ts +3 -0
  196. package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -1
  197. package/src/lib/layout/tree/tng-tree-indicator.js +22 -20
  198. package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -1
  199. package/src/lib/layout/tree/tng-tree-item.d.ts +3 -0
  200. package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -1
  201. package/src/lib/layout/tree/tng-tree-item.js +47 -53
  202. package/src/lib/layout/tree/tng-tree-item.js.map +1 -1
  203. package/src/lib/layout/tree/tng-tree.d.ts +3 -0
  204. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
  205. package/src/lib/layout/tree/tng-tree.js +39 -43
  206. package/src/lib/layout/tree/tng-tree.js.map +1 -1
  207. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts +11 -0
  208. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -1
  209. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +79 -64
  210. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -1
  211. package/src/lib/navigation/context-menu/tng-context-menu.d.ts +5 -0
  212. package/src/lib/navigation/context-menu/tng-context-menu.d.ts.map +1 -1
  213. package/src/lib/navigation/context-menu/tng-context-menu.js +44 -42
  214. package/src/lib/navigation/context-menu/tng-context-menu.js.map +1 -1
  215. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts +3 -0
  216. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -1
  217. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +16 -13
  218. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -1
  219. package/src/lib/navigation/menu/tng-menu.d.ts +13 -0
  220. package/src/lib/navigation/menu/tng-menu.d.ts.map +1 -1
  221. package/src/lib/navigation/menu/tng-menu.js +184 -186
  222. package/src/lib/navigation/menu/tng-menu.js.map +1 -1
  223. package/src/lib/navigation/menubar/tng-menubar.d.ts +5 -0
  224. package/src/lib/navigation/menubar/tng-menubar.d.ts.map +1 -1
  225. package/src/lib/navigation/menubar/tng-menubar.js +72 -70
  226. package/src/lib/navigation/menubar/tng-menubar.js.map +1 -1
  227. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts +3 -0
  228. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -1
  229. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +16 -13
  230. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -1
  231. package/src/lib/navigation/tabs/tng-tabs.d.ts +13 -0
  232. package/src/lib/navigation/tabs/tng-tabs.d.ts.map +1 -1
  233. package/src/lib/navigation/tabs/tng-tabs.js +234 -258
  234. package/src/lib/navigation/tabs/tng-tabs.js.map +1 -1
  235. package/src/lib/navigation/toolbar/tng-toolbar.d.ts +3 -0
  236. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -1
  237. package/src/lib/navigation/toolbar/tng-toolbar.js +16 -13
  238. package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -1
  239. package/src/lib/overlay/dialog/tng-dialog.d.ts +19 -0
  240. package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -1
  241. package/src/lib/overlay/dialog/tng-dialog.js +249 -255
  242. package/src/lib/overlay/dialog/tng-dialog.js.map +1 -1
  243. package/src/lib/overlay/popover/tng-popover.d.ts +9 -0
  244. package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -1
  245. package/src/lib/overlay/popover/tng-popover.js +152 -170
  246. package/src/lib/overlay/popover/tng-popover.js.map +1 -1
  247. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +7 -0
  248. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
  249. package/src/lib/overlay/tooltip/tng-tooltip.js +124 -127
  250. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
  251. package/src/lib/utility/avatar/tng-avatar.d.ts +7 -0
  252. package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -1
  253. package/src/lib/utility/avatar/tng-avatar.js +46 -37
  254. package/src/lib/utility/avatar/tng-avatar.js.map +1 -1
  255. package/src/lib/utility/badge/tng-badge.d.ts +3 -0
  256. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
  257. package/src/lib/utility/badge/tng-badge.js +26 -39
  258. package/src/lib/utility/badge/tng-badge.js.map +1 -1
  259. package/src/lib/utility/code-block/tng-code-block.d.ts +11 -0
  260. package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -1
  261. package/src/lib/utility/code-block/tng-code-block.js +76 -61
  262. package/src/lib/utility/code-block/tng-code-block.js.map +1 -1
  263. package/src/lib/utility/copy/tng-copy.d.ts +3 -0
  264. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
  265. package/src/lib/utility/copy/tng-copy.js +44 -51
  266. package/src/lib/utility/copy/tng-copy.js.map +1 -1
  267. package/src/lib/utility/press/tng-press.d.ts +3 -0
  268. package/src/lib/utility/press/tng-press.d.ts.map +1 -1
  269. package/src/lib/utility/press/tng-press.js +55 -60
  270. package/src/lib/utility/press/tng-press.js.map +1 -1
  271. package/src/lib/utility/tag/tng-tag.d.ts +7 -0
  272. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
  273. package/src/lib/utility/tag/tng-tag.js +94 -93
  274. package/src/lib/utility/tag/tng-tag.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tng-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
+ {"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,4 +1,7 @@
1
+ import * as i0 from "@angular/core";
1
2
  export declare class TngCombobox {
2
3
  protected readonly dataSlot: "combobox";
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngCombobox, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngCombobox, "[tngCombobox]", ["tngCombobox"], {}, {}, never, never, true, never>;
3
6
  }
4
7
  //# sourceMappingURL=tng-combobox.d.ts.map
@@ -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,qBAIa,WAAW;IAEtB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,UAAU,CAAU;CACnD"}
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,16 +1,19 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, HostBinding } from '@angular/core';
3
- let TngCombobox = class TngCombobox {
2
+ import * as i0 from "@angular/core";
3
+ export class TngCombobox {
4
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 };
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngCombobox, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngCombobox, isStandalone: true, selector: "[tngCombobox]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, exportAs: ["tngCombobox"], ngImport: i0 });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngCombobox, decorators: [{
9
+ type: Directive,
10
+ args: [{
11
+ selector: '[tngCombobox]',
12
+ exportAs: 'tngCombobox',
13
+ standalone: true,
14
+ }]
15
+ }], propDecorators: { dataSlot: [{
16
+ type: HostBinding,
17
+ args: ['attr.data-slot']
18
+ }] } });
16
19
  //# sourceMappingURL=tng-combobox.js.map
@@ -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;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"]}
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,4 +1,5 @@
1
1
  import { AfterContentInit, OnDestroy, QueryList } from '@angular/core';
2
+ import * as i0 from "@angular/core";
2
3
  type NullableBooleanInput = boolean | null | string | undefined;
3
4
  export type TngInputType = 'email' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'url';
4
5
  export declare function coerceTngInputNullableBoolean(value: NullableBooleanInput): boolean | null;
@@ -42,14 +43,20 @@ export declare class TngInput {
42
43
  protected get readonlyAttr(): '' | null;
43
44
  protected get requiredAttr(): '' | null;
44
45
  isInvalid(): boolean;
46
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngInput, never>;
47
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngInput, "input[tngInput], textarea[tngInput]", ["tngInput"], { "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; "isSignal": true; }; "ariaInvalid": { "alias": "ariaInvalid"; "required": false; "isSignal": true; }; "ariaRequired": { "alias": "ariaRequired"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
45
48
  }
46
49
  export declare class TngInputLeading {
47
50
  readonly hostElement: any;
48
51
  protected readonly dataSlot: "input-leading";
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngInputLeading, never>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngInputLeading, "[tngInputLeading]", ["tngInputLeading"], {}, {}, never, never, true, never>;
49
54
  }
50
55
  export declare class TngInputTrailing {
51
56
  readonly hostElement: any;
52
57
  protected readonly dataSlot: "input-trailing";
58
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngInputTrailing, never>;
59
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngInputTrailing, "[tngInputTrailing]", ["tngInputTrailing"], {}, {}, never, never, true, never>;
53
60
  }
54
61
  export declare class TngInputGroup implements AfterContentInit, OnDestroy {
55
62
  readonly hasLeading: import("@angular/core").InputSignal<boolean | null>;
@@ -82,6 +89,8 @@ export declare class TngInputGroup implements AfterContentInit, OnDestroy {
82
89
  protected effectiveHasTrailing(): boolean;
83
90
  protected primaryControl(): TngInput | null;
84
91
  protected primaryControlElement(): HTMLInputElement | HTMLTextAreaElement | null;
92
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngInputGroup, never>;
93
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngInputGroup, "tng-input-group, [tngInputGroup]", ["tngInputGroup"], { "hasLeading": { "alias": "hasLeading"; "required": false; "isSignal": true; }; "hasTrailing": { "alias": "hasTrailing"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "controlCount": { "alias": "controlCount"; "required": false; "isSignal": true; }; }, {}, ["controls", "leadingSlots", "trailingSlots"], ["[tngInputLeading], [data-tng-input-leading-proxy]", "input[tngInput], textarea[tngInput], [data-tng-input-control-proxy]", "[tngInputTrailing], [data-tng-input-trailing-proxy]"], true, never>;
85
94
  }
86
95
  export {};
87
96
  //# sourceMappingURL=tng-input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-input.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/input/tng-input.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAOhB,SAAS,EACT,SAAS,EAKV,MAAM,eAAe,CAAC;AAMvB,KAAK,oBAAoB,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/F,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,GAAG,IAAI,CAQzF;AA4BD,qBAKa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8D;IACzF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD,SAAgB,WAAW,MAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqE;IACtG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0E;IAChH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAErC;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAElE,kEAAkE;IAClE,SAAgB,eAAe,qDAA8B;IAE7D,SAAgB,SAAS,qDAA8B;IACvD,SAAgB,cAAc,qDAA8B;IAE5D,0EAA0E;IAC1E,SAAgB,WAAW,yFAExB;IAEH,SAAgB,YAAY,yFAEzB;IAEH,SAAgB,QAAQ,8EAA4E;IACpG,SAAgB,QAAQ,8EAA4E;IACpG,SAAgB,QAAQ,8EAA4E;IAGpG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAG/C,SAAS,KAAK,MAAM,IAAI,MAAM,CAG7B;IAGD,SAAS,KAAK,aAAa,IAAI,MAAM,GAAG,IAAI,CAK3C;IAGD,SAAS,KAAK,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAKhD;IAED;;;OAGG;IAEH,SAAS,KAAK,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAKjD;IAED;;;OAGG;IAEH,SAAS,KAAK,eAAe,IAAI,MAAM,GAAG,IAAI,CAE7C;IAGD,SAAS,KAAK,gBAAgB,IAAI,OAAO,GAAG,MAAM,GAAG,IAAI,CAGxD;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAEM,SAAS,IAAI,OAAO;CAO5B;AAED,qBAKa,eAAe;IAC1B,QAAQ,CAAC,WAAW,MAAiD;IAGrE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,eAAe,CAAU;CACxD;AAED,qBAKa,gBAAgB;IAC3B,QAAQ,CAAC,WAAW,MAAiD;IAGrE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,gBAAgB,CAAU;CACzD;AAED,qBAsBa,aAAc,YAAW,gBAAgB,EAAE,SAAS;IAC/D,SAAgB,UAAU,sDAA+B;IACzD,SAAgB,WAAW,sDAA+B;IAC1D,SAAgB,QAAQ,sDAA+B;IACvD,SAAgB,OAAO,sDAA+B;IACtD,SAAgB,QAAQ,sDAA+B;IACvD,SAAgB,YAAY,qDAA8B;IAG1D,SAAS,CAAC,QAAQ,EAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAGzC,SAAS,CAAC,YAAY,EAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAGpD,SAAS,CAAC,aAAa,EAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEtD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiD;IAE7E,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAElD,OAAO,CAAC,qBAAqB;IAiBtB,kBAAkB,IAAI,IAAI;IAQ1B,WAAW,IAAI,IAAI;IAM1B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,aAAa,CAAU;IAGrD,SAAS,KAAK,cAAc,IAAI,EAAE,GAAG,IAAI,CAExC;IAGD,SAAS,KAAK,eAAe,IAAI,EAAE,GAAG,IAAI,CAEzC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAUtC;IAGD,SAAS,KAAK,WAAW,IAAI,EAAE,GAAG,IAAI,CAWrC;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAUtC;IAGD,SAAS,KAAK,WAAW,IAAI,EAAE,GAAG,IAAI,CAErC;IAGD,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAO7C,SAAS,CAAC,cAAc,IAAI,OAAO;IAQnC,SAAS,CAAC,eAAe,IAAI,OAAO;IAQpC,SAAS,CAAC,mBAAmB,IAAI,OAAO;IAMxC,SAAS,CAAC,oBAAoB,IAAI,OAAO;IAMzC,SAAS,CAAC,cAAc,IAAI,QAAQ,GAAG,IAAI;IAK3C,SAAS,CAAC,qBAAqB,IAAI,gBAAgB,GAAG,mBAAmB,GAAG,IAAI;CAajF"}
1
+ {"version":3,"file":"tng-input.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/input/tng-input.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, ContentChildren, Directive, ElementRef, HostBinding, HostListener, booleanAttribute, inject, input, isDevMode, } from '@angular/core';
3
2
  import { Subject } from 'rxjs';
4
3
  import { takeUntil } from 'rxjs/operators';
5
4
  import { TngUniqueIdService } from '../_shared/id';
5
+ import * as i0 from "@angular/core";
6
6
  export function coerceTngInputNullableBoolean(value) {
7
7
  if (value === undefined || value === null)
8
8
  return null;
@@ -34,7 +34,7 @@ function hasProjectedContent(element) {
34
34
  return false;
35
35
  });
36
36
  }
37
- let TngInput = class TngInput {
37
+ export class TngInput {
38
38
  elementRef = inject((ElementRef));
39
39
  idService = inject(TngUniqueIdService);
40
40
  hostElement = this.elementRef.nativeElement;
@@ -43,19 +43,15 @@ let TngInput = class TngInput {
43
43
  initialAriaDescribedBy = normalizeStringValue(this.hostElement.getAttribute('aria-describedby'));
44
44
  generatedId = this.idService.nextId('tng-input');
45
45
  /** Canonical API for aria-describedby (whitespace normalized). */
46
- ariaDescribedBy = input(null);
47
- ariaLabel = input(null);
48
- ariaLabelledby = input(null);
46
+ ariaDescribedBy = input(null, ...(ngDevMode ? [{ debugName: "ariaDescribedBy" }] : []));
47
+ ariaLabel = input(null, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
48
+ ariaLabelledby = input(null, ...(ngDevMode ? [{ debugName: "ariaLabelledby" }] : []));
49
49
  /** If non-null, this value overrides native validity in `isInvalid()`. */
50
- ariaInvalid = input(null, {
51
- transform: coerceTngInputNullableBoolean,
52
- });
53
- ariaRequired = input(null, {
54
- transform: coerceTngInputNullableBoolean,
55
- });
56
- disabled = input(false, { transform: booleanAttribute });
57
- readonly = input(false, { transform: booleanAttribute });
58
- required = input(false, { transform: booleanAttribute });
50
+ ariaInvalid = input(null, { ...(ngDevMode ? { debugName: "ariaInvalid" } : {}), transform: coerceTngInputNullableBoolean });
51
+ ariaRequired = input(null, { ...(ngDevMode ? { debugName: "ariaRequired" } : {}), transform: coerceTngInputNullableBoolean });
52
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
53
+ readonly = input(false, { ...(ngDevMode ? { debugName: "readonly" } : {}), transform: booleanAttribute });
54
+ required = input(false, { ...(ngDevMode ? { debugName: "required" } : {}), transform: booleanAttribute });
59
55
  dataSlot = 'input';
60
56
  get idAttr() {
61
57
  const nativeId = normalizeStringValue(this.hostElement.getAttribute('id'));
@@ -120,91 +116,97 @@ let TngInput = class TngInput {
120
116
  // jsdom may not fully implement validity; this is still correct for browsers.
121
117
  return this.hostElement.matches(':invalid');
122
118
  }
123
- };
124
- __decorate([
125
- HostBinding('attr.data-slot')
126
- ], TngInput.prototype, "dataSlot", void 0);
127
- __decorate([
128
- HostBinding('attr.id')
129
- ], TngInput.prototype, "idAttr", null);
130
- __decorate([
131
- HostBinding('attr.aria-label')
132
- ], TngInput.prototype, "ariaLabelAttr", null);
133
- __decorate([
134
- HostBinding('attr.aria-labelledby')
135
- ], TngInput.prototype, "ariaLabelledbyAttr", null);
136
- __decorate([
137
- HostBinding('attr.aria-describedby')
138
- ], TngInput.prototype, "ariaDescribedByAttr", null);
139
- __decorate([
140
- HostBinding('attr.aria-invalid')
141
- ], TngInput.prototype, "ariaInvalidAttr", null);
142
- __decorate([
143
- HostBinding('attr.aria-required')
144
- ], TngInput.prototype, "ariaRequiredAttr", null);
145
- __decorate([
146
- HostBinding('attr.data-disabled')
147
- ], TngInput.prototype, "dataDisabledAttr", null);
148
- __decorate([
149
- HostBinding('attr.data-invalid')
150
- ], TngInput.prototype, "dataInvalidAttr", null);
151
- __decorate([
152
- HostBinding('attr.data-readonly')
153
- ], TngInput.prototype, "dataReadonlyAttr", null);
154
- __decorate([
155
- HostBinding('attr.disabled')
156
- ], TngInput.prototype, "disabledAttr", null);
157
- __decorate([
158
- HostBinding('attr.readonly')
159
- ], TngInput.prototype, "readonlyAttr", null);
160
- __decorate([
161
- HostBinding('attr.required')
162
- ], TngInput.prototype, "requiredAttr", null);
163
- TngInput = __decorate([
164
- Directive({
165
- selector: 'input[tngInput], textarea[tngInput]',
166
- exportAs: 'tngInput',
167
- standalone: true,
168
- })
169
- ], TngInput);
170
- export { TngInput };
171
- let TngInputLeading = class TngInputLeading {
119
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngInput, deps: [], target: i0.ɵɵFactoryTarget.Directive });
120
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.1", type: TngInput, isStandalone: true, selector: "input[tngInput], textarea[tngInput]", inputs: { ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "ariaDescribedBy", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaInvalid: { classPropertyName: "ariaInvalid", publicName: "ariaInvalid", isSignal: true, isRequired: false, transformFunction: null }, ariaRequired: { classPropertyName: "ariaRequired", publicName: "ariaRequired", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-slot": "this.dataSlot", "attr.id": "this.idAttr", "attr.aria-label": "this.ariaLabelAttr", "attr.aria-labelledby": "this.ariaLabelledbyAttr", "attr.aria-describedby": "this.ariaDescribedByAttr", "attr.aria-invalid": "this.ariaInvalidAttr", "attr.aria-required": "this.ariaRequiredAttr", "attr.data-disabled": "this.dataDisabledAttr", "attr.data-invalid": "this.dataInvalidAttr", "attr.data-readonly": "this.dataReadonlyAttr", "attr.disabled": "this.disabledAttr", "attr.readonly": "this.readonlyAttr", "attr.required": "this.requiredAttr" } }, exportAs: ["tngInput"], ngImport: i0 });
121
+ }
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngInput, decorators: [{
123
+ type: Directive,
124
+ args: [{
125
+ selector: 'input[tngInput], textarea[tngInput]',
126
+ exportAs: 'tngInput',
127
+ standalone: true,
128
+ }]
129
+ }], propDecorators: { ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledby", required: false }] }], ariaInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaInvalid", required: false }] }], ariaRequired: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaRequired", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], dataSlot: [{
130
+ type: HostBinding,
131
+ args: ['attr.data-slot']
132
+ }], idAttr: [{
133
+ type: HostBinding,
134
+ args: ['attr.id']
135
+ }], ariaLabelAttr: [{
136
+ type: HostBinding,
137
+ args: ['attr.aria-label']
138
+ }], ariaLabelledbyAttr: [{
139
+ type: HostBinding,
140
+ args: ['attr.aria-labelledby']
141
+ }], ariaDescribedByAttr: [{
142
+ type: HostBinding,
143
+ args: ['attr.aria-describedby']
144
+ }], ariaInvalidAttr: [{
145
+ type: HostBinding,
146
+ args: ['attr.aria-invalid']
147
+ }], ariaRequiredAttr: [{
148
+ type: HostBinding,
149
+ args: ['attr.aria-required']
150
+ }], dataDisabledAttr: [{
151
+ type: HostBinding,
152
+ args: ['attr.data-disabled']
153
+ }], dataInvalidAttr: [{
154
+ type: HostBinding,
155
+ args: ['attr.data-invalid']
156
+ }], dataReadonlyAttr: [{
157
+ type: HostBinding,
158
+ args: ['attr.data-readonly']
159
+ }], disabledAttr: [{
160
+ type: HostBinding,
161
+ args: ['attr.disabled']
162
+ }], readonlyAttr: [{
163
+ type: HostBinding,
164
+ args: ['attr.readonly']
165
+ }], requiredAttr: [{
166
+ type: HostBinding,
167
+ args: ['attr.required']
168
+ }] } });
169
+ export class TngInputLeading {
172
170
  hostElement = inject((ElementRef)).nativeElement;
173
171
  dataSlot = 'input-leading';
174
- };
175
- __decorate([
176
- HostBinding('attr.data-slot')
177
- ], TngInputLeading.prototype, "dataSlot", void 0);
178
- TngInputLeading = __decorate([
179
- Directive({
180
- selector: '[tngInputLeading]',
181
- exportAs: 'tngInputLeading',
182
- standalone: true,
183
- })
184
- ], TngInputLeading);
185
- export { TngInputLeading };
186
- let TngInputTrailing = class TngInputTrailing {
172
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngInputLeading, deps: [], target: i0.ɵɵFactoryTarget.Directive });
173
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngInputLeading, isStandalone: true, selector: "[tngInputLeading]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, exportAs: ["tngInputLeading"], ngImport: i0 });
174
+ }
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngInputLeading, decorators: [{
176
+ type: Directive,
177
+ args: [{
178
+ selector: '[tngInputLeading]',
179
+ exportAs: 'tngInputLeading',
180
+ standalone: true,
181
+ }]
182
+ }], propDecorators: { dataSlot: [{
183
+ type: HostBinding,
184
+ args: ['attr.data-slot']
185
+ }] } });
186
+ export class TngInputTrailing {
187
187
  hostElement = inject((ElementRef)).nativeElement;
188
188
  dataSlot = 'input-trailing';
189
- };
190
- __decorate([
191
- HostBinding('attr.data-slot')
192
- ], TngInputTrailing.prototype, "dataSlot", void 0);
193
- TngInputTrailing = __decorate([
194
- Directive({
195
- selector: '[tngInputTrailing]',
196
- exportAs: 'tngInputTrailing',
197
- standalone: true,
198
- })
199
- ], TngInputTrailing);
200
- export { TngInputTrailing };
201
- let TngInputGroup = class TngInputGroup {
202
- hasLeading = input(null);
203
- hasTrailing = input(null);
204
- disabled = input(null);
205
- invalid = input(null);
206
- readonly = input(null);
207
- controlCount = input(null);
189
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngInputTrailing, deps: [], target: i0.ɵɵFactoryTarget.Directive });
190
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngInputTrailing, isStandalone: true, selector: "[tngInputTrailing]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, exportAs: ["tngInputTrailing"], ngImport: i0 });
191
+ }
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngInputTrailing, decorators: [{
193
+ type: Directive,
194
+ args: [{
195
+ selector: '[tngInputTrailing]',
196
+ exportAs: 'tngInputTrailing',
197
+ standalone: true,
198
+ }]
199
+ }], propDecorators: { dataSlot: [{
200
+ type: HostBinding,
201
+ args: ['attr.data-slot']
202
+ }] } });
203
+ export class TngInputGroup {
204
+ hasLeading = input(null, ...(ngDevMode ? [{ debugName: "hasLeading" }] : []));
205
+ hasTrailing = input(null, ...(ngDevMode ? [{ debugName: "hasTrailing" }] : []));
206
+ disabled = input(null, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
207
+ invalid = input(null, ...(ngDevMode ? [{ debugName: "invalid" }] : []));
208
+ readonly = input(null, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
209
+ controlCount = input(null, ...(ngDevMode ? [{ debugName: "controlCount" }] : []));
208
210
  controls;
209
211
  leadingSlots;
210
212
  trailingSlots;
@@ -328,49 +330,32 @@ let TngInputGroup = class TngInputGroup {
328
330
  }
329
331
  return null;
330
332
  }
331
- };
332
- __decorate([
333
- ContentChildren(TngInput, { descendants: true })
334
- ], TngInputGroup.prototype, "controls", void 0);
335
- __decorate([
336
- ContentChildren(TngInputLeading, { descendants: true })
337
- ], TngInputGroup.prototype, "leadingSlots", void 0);
338
- __decorate([
339
- ContentChildren(TngInputTrailing, { descendants: true })
340
- ], TngInputGroup.prototype, "trailingSlots", void 0);
341
- __decorate([
342
- HostBinding('attr.data-slot')
343
- ], TngInputGroup.prototype, "dataSlot", void 0);
344
- __decorate([
345
- HostBinding('attr.data-has-leading')
346
- ], TngInputGroup.prototype, "dataHasLeading", null);
347
- __decorate([
348
- HostBinding('attr.data-has-trailing')
349
- ], TngInputGroup.prototype, "dataHasTrailing", null);
350
- __decorate([
351
- HostBinding('attr.data-disabled')
352
- ], TngInputGroup.prototype, "dataDisabled", null);
353
- __decorate([
354
- HostBinding('attr.data-invalid')
355
- ], TngInputGroup.prototype, "dataInvalid", null);
356
- __decorate([
357
- HostBinding('attr.data-readonly')
358
- ], TngInputGroup.prototype, "dataReadonly", null);
359
- __decorate([
360
- HostBinding('attr.data-focused')
361
- ], TngInputGroup.prototype, "dataFocused", null);
362
- __decorate([
363
- HostListener('focusin')
364
- ], TngInputGroup.prototype, "onFocusIn", null);
365
- __decorate([
366
- HostListener('focusout', ['$event'])
367
- ], TngInputGroup.prototype, "onFocusOut", null);
368
- TngInputGroup = __decorate([
369
- Component({
370
- selector: 'tng-input-group, [tngInputGroup]',
371
- exportAs: 'tngInputGroup',
372
- standalone: true,
373
- template: `
333
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngInputGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
334
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: TngInputGroup, isStandalone: true, selector: "tng-input-group, [tngInputGroup]", inputs: { hasLeading: { classPropertyName: "hasLeading", publicName: "hasLeading", isSignal: true, isRequired: false, transformFunction: null }, hasTrailing: { classPropertyName: "hasTrailing", publicName: "hasTrailing", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, controlCount: { classPropertyName: "controlCount", publicName: "controlCount", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "focusin": "onFocusIn()", "focusout": "onFocusOut($event)" }, properties: { "attr.data-slot": "this.dataSlot", "attr.data-has-leading": "this.dataHasLeading", "attr.data-has-trailing": "this.dataHasTrailing", "attr.data-disabled": "this.dataDisabled", "attr.data-invalid": "this.dataInvalid", "attr.data-readonly": "this.dataReadonly", "attr.data-focused": "this.dataFocused" } }, queries: [{ propertyName: "controls", predicate: TngInput, descendants: true }, { propertyName: "leadingSlots", predicate: TngInputLeading, descendants: true }, { propertyName: "trailingSlots", predicate: TngInputTrailing, descendants: true }], exportAs: ["tngInputGroup"], ngImport: i0, template: `
335
+ @if (hasLeadingSlot()) {
336
+ <span class="tng-input-group-leading" data-slot="input-group-leading">
337
+ <ng-content select="[tngInputLeading], [data-tng-input-leading-proxy]"></ng-content>
338
+ </span>
339
+ }
340
+
341
+ <span class="tng-input-group-control" data-slot="input-group-control">
342
+ <ng-content select="input[tngInput], textarea[tngInput], [data-tng-input-control-proxy]"></ng-content>
343
+ </span>
344
+
345
+ @if (hasTrailingSlot()) {
346
+ <span class="tng-input-group-trailing" data-slot="input-group-trailing">
347
+ <ng-content select="[tngInputTrailing], [data-tng-input-trailing-proxy]"></ng-content>
348
+ </span>
349
+ }
350
+ `, isInline: true });
351
+ }
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngInputGroup, decorators: [{
353
+ type: Component,
354
+ args: [{
355
+ selector: 'tng-input-group, [tngInputGroup]',
356
+ exportAs: 'tngInputGroup',
357
+ standalone: true,
358
+ template: `
374
359
  @if (hasLeadingSlot()) {
375
360
  <span class="tng-input-group-leading" data-slot="input-group-leading">
376
361
  <ng-content select="[tngInputLeading], [data-tng-input-leading-proxy]"></ng-content>
@@ -387,7 +372,42 @@ TngInputGroup = __decorate([
387
372
  </span>
388
373
  }
389
374
  `,
390
- })
391
- ], TngInputGroup);
392
- export { TngInputGroup };
375
+ }]
376
+ }], propDecorators: { hasLeading: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasLeading", required: false }] }], hasTrailing: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasTrailing", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], controlCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "controlCount", required: false }] }], controls: [{
377
+ type: ContentChildren,
378
+ args: [TngInput, { descendants: true }]
379
+ }], leadingSlots: [{
380
+ type: ContentChildren,
381
+ args: [TngInputLeading, { descendants: true }]
382
+ }], trailingSlots: [{
383
+ type: ContentChildren,
384
+ args: [TngInputTrailing, { descendants: true }]
385
+ }], dataSlot: [{
386
+ type: HostBinding,
387
+ args: ['attr.data-slot']
388
+ }], dataHasLeading: [{
389
+ type: HostBinding,
390
+ args: ['attr.data-has-leading']
391
+ }], dataHasTrailing: [{
392
+ type: HostBinding,
393
+ args: ['attr.data-has-trailing']
394
+ }], dataDisabled: [{
395
+ type: HostBinding,
396
+ args: ['attr.data-disabled']
397
+ }], dataInvalid: [{
398
+ type: HostBinding,
399
+ args: ['attr.data-invalid']
400
+ }], dataReadonly: [{
401
+ type: HostBinding,
402
+ args: ['attr.data-readonly']
403
+ }], dataFocused: [{
404
+ type: HostBinding,
405
+ args: ['attr.data-focused']
406
+ }], onFocusIn: [{
407
+ type: HostListener,
408
+ args: ['focusin']
409
+ }], onFocusOut: [{
410
+ type: HostListener,
411
+ args: ['focusout', ['$event']]
412
+ }] } });
393
413
  //# sourceMappingURL=tng-input.js.map