@tailng-ui/primitives 0.12.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 (273) hide show
  1. package/package.json +12 -6
  2. package/src/lib/feedback/empty/tng-empty.d.ts +11 -0
  3. package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -1
  4. package/src/lib/feedback/empty/tng-empty.js +76 -66
  5. package/src/lib/feedback/empty/tng-empty.js.map +1 -1
  6. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts +5 -0
  7. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
  8. package/src/lib/feedback/progress-bar/tng-progress-bar.js +50 -54
  9. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
  10. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts +3 -0
  11. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
  12. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +35 -41
  13. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
  14. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +3 -0
  15. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
  16. package/src/lib/feedback/skeleton/tng-skeleton.js +30 -32
  17. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
  18. package/src/lib/feedback/toast/tng-toast.d.ts +5 -0
  19. package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -1
  20. package/src/lib/feedback/toast/tng-toast.js +51 -49
  21. package/src/lib/feedback/toast/tng-toast.js.map +1 -1
  22. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts +3 -0
  23. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts.map +1 -1
  24. package/src/lib/form/_shared/id/tng-unique-id.service.js +9 -7
  25. package/src/lib/form/_shared/id/tng-unique-id.service.js.map +1 -1
  26. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts +3 -0
  27. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -1
  28. package/src/lib/form/_shared/select/tng-select.overlay.shared.js +22 -20
  29. package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -1
  30. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts +9 -0
  31. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts.map +1 -1
  32. package/src/lib/form/_shared/select/tng-select.parts.shared.js +106 -98
  33. package/src/lib/form/_shared/select/tng-select.parts.shared.js.map +1 -1
  34. package/src/lib/form/autocomplete/tng-autocomplete.d.ts +3 -0
  35. package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -1
  36. package/src/lib/form/autocomplete/tng-autocomplete.js +40 -38
  37. package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -1
  38. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts +6 -0
  39. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -1
  40. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +54 -46
  41. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -1
  42. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts +3 -0
  43. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -1
  44. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +22 -20
  45. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -1
  46. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts +9 -0
  47. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts.map +1 -1
  48. package/src/lib/form/autocomplete/tng-autocomplete.parts.js +109 -101
  49. package/src/lib/form/autocomplete/tng-autocomplete.parts.js.map +1 -1
  50. package/src/lib/form/button-toggle/tng-button-toggle.d.ts +5 -0
  51. package/src/lib/form/button-toggle/tng-button-toggle.d.ts.map +1 -1
  52. package/src/lib/form/button-toggle/tng-button-toggle.js +121 -155
  53. package/src/lib/form/button-toggle/tng-button-toggle.js.map +1 -1
  54. package/src/lib/form/checkbox/tng-checkbox.d.ts +3 -0
  55. package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -1
  56. package/src/lib/form/checkbox/tng-checkbox.js +95 -107
  57. package/src/lib/form/checkbox/tng-checkbox.js.map +1 -1
  58. package/src/lib/form/chips/tng-chips.d.ts +7 -0
  59. package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
  60. package/src/lib/form/chips/tng-chips.js +107 -115
  61. package/src/lib/form/chips/tng-chips.js.map +1 -1
  62. package/src/lib/form/combobox/tng-combobox.d.ts +3 -0
  63. package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -1
  64. package/src/lib/form/combobox/tng-combobox.js +16 -14
  65. package/src/lib/form/combobox/tng-combobox.js.map +1 -1
  66. package/src/lib/form/input/tng-input.d.ts +9 -0
  67. package/src/lib/form/input/tng-input.d.ts.map +1 -1
  68. package/src/lib/form/input/tng-input.js +161 -141
  69. package/src/lib/form/input/tng-input.js.map +1 -1
  70. package/src/lib/form/input-otp/tng-input-otp.d.ts +3 -0
  71. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
  72. package/src/lib/form/input-otp/tng-input-otp.js +58 -70
  73. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
  74. package/src/lib/form/label/tng-label.d.ts +3 -0
  75. package/src/lib/form/label/tng-label.d.ts.map +1 -1
  76. package/src/lib/form/label/tng-label.js +24 -26
  77. package/src/lib/form/label/tng-label.js.map +1 -1
  78. package/src/lib/form/listbox/listbox.directive.d.ts +3 -0
  79. package/src/lib/form/listbox/listbox.directive.d.ts.map +1 -1
  80. package/src/lib/form/listbox/listbox.directive.js +45 -43
  81. package/src/lib/form/listbox/listbox.directive.js.map +1 -1
  82. package/src/lib/form/listbox/option.directive.d.ts +3 -0
  83. package/src/lib/form/listbox/option.directive.d.ts.map +1 -1
  84. package/src/lib/form/listbox/option.directive.js +40 -38
  85. package/src/lib/form/listbox/option.directive.js.map +1 -1
  86. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts +3 -0
  87. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts.map +1 -1
  88. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js +23 -21
  89. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js.map +1 -1
  90. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts +3 -0
  91. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts.map +1 -1
  92. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js +25 -23
  93. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js.map +1 -1
  94. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts +3 -0
  95. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts.map +1 -1
  96. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js +35 -33
  97. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js.map +1 -1
  98. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts +6 -0
  99. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts.map +1 -1
  100. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js +57 -46
  101. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js.map +1 -1
  102. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts +3 -0
  103. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -1
  104. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +16 -14
  105. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -1
  106. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +3 -0
  107. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
  108. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +52 -50
  109. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
  110. package/src/lib/form/multi-select/tng-multi-select.d.ts +3 -0
  111. package/src/lib/form/multi-select/tng-multi-select.d.ts.map +1 -1
  112. package/src/lib/form/multi-select/tng-multi-select.js +41 -36
  113. package/src/lib/form/multi-select/tng-multi-select.js.map +1 -1
  114. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts +6 -0
  115. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts.map +1 -1
  116. package/src/lib/form/multi-select/tng-multi-select.listbox.js +50 -45
  117. package/src/lib/form/multi-select/tng-multi-select.listbox.js.map +1 -1
  118. package/src/lib/form/multiselect/tng-multiselect.d.ts +3 -0
  119. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -1
  120. package/src/lib/form/multiselect/tng-multiselect.js +16 -14
  121. package/src/lib/form/multiselect/tng-multiselect.js.map +1 -1
  122. package/src/lib/form/radio/tng-radio.d.ts +3 -0
  123. package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
  124. package/src/lib/form/radio/tng-radio.js +91 -101
  125. package/src/lib/form/radio/tng-radio.js.map +1 -1
  126. package/src/lib/form/select/tng-select.d.ts +3 -0
  127. package/src/lib/form/select/tng-select.d.ts.map +1 -1
  128. package/src/lib/form/select/tng-select.js +41 -36
  129. package/src/lib/form/select/tng-select.js.map +1 -1
  130. package/src/lib/form/select/tng-select.listbox.d.ts +6 -0
  131. package/src/lib/form/select/tng-select.listbox.d.ts.map +1 -1
  132. package/src/lib/form/select/tng-select.listbox.js +50 -45
  133. package/src/lib/form/select/tng-select.listbox.js.map +1 -1
  134. package/src/lib/form/slider/tng-slider.d.ts +3 -0
  135. package/src/lib/form/slider/tng-slider.d.ts.map +1 -1
  136. package/src/lib/form/slider/tng-slider.js +42 -50
  137. package/src/lib/form/slider/tng-slider.js.map +1 -1
  138. package/src/lib/form/switch/tng-switch.d.ts +3 -0
  139. package/src/lib/form/switch/tng-switch.d.ts.map +1 -1
  140. package/src/lib/form/switch/tng-switch.js +44 -48
  141. package/src/lib/form/switch/tng-switch.js.map +1 -1
  142. package/src/lib/form/textarea/tng-textarea.d.ts +4 -0
  143. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
  144. package/src/lib/form/textarea/tng-textarea.js +40 -41
  145. package/src/lib/form/textarea/tng-textarea.js.map +1 -1
  146. package/src/lib/form/toggle/tng-toggle.d.ts +3 -0
  147. package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -1
  148. package/src/lib/form/toggle/tng-toggle.js +71 -75
  149. package/src/lib/form/toggle/tng-toggle.js.map +1 -1
  150. package/src/lib/form/toggle-group/tng-toggle-group.d.ts +3 -0
  151. package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -1
  152. package/src/lib/form/toggle-group/tng-toggle-group.js +48 -50
  153. package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -1
  154. package/src/lib/layout/accordion/tng-accordion.d.ts +9 -0
  155. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
  156. package/src/lib/layout/accordion/tng-accordion.js +143 -155
  157. package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
  158. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts +3 -0
  159. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -1
  160. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +16 -14
  161. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -1
  162. package/src/lib/layout/card/tng-card.d.ts +21 -0
  163. package/src/lib/layout/card/tng-card.d.ts.map +1 -1
  164. package/src/lib/layout/card/tng-card.js +151 -131
  165. package/src/lib/layout/card/tng-card.js.map +1 -1
  166. package/src/lib/layout/collapsible/tng-collapsible.d.ts +7 -0
  167. package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -1
  168. package/src/lib/layout/collapsible/tng-collapsible.js +82 -86
  169. package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -1
  170. package/src/lib/layout/drawer/tng-drawer.d.ts +13 -0
  171. package/src/lib/layout/drawer/tng-drawer.d.ts.map +1 -1
  172. package/src/lib/layout/drawer/tng-drawer.js +217 -226
  173. package/src/lib/layout/drawer/tng-drawer.js.map +1 -1
  174. package/src/lib/layout/grid/tng-grid.d.ts +3 -0
  175. package/src/lib/layout/grid/tng-grid.d.ts.map +1 -1
  176. package/src/lib/layout/grid/tng-grid.js +16 -14
  177. package/src/lib/layout/grid/tng-grid.js.map +1 -1
  178. package/src/lib/layout/separator/tng-separator.d.ts +3 -0
  179. package/src/lib/layout/separator/tng-separator.d.ts.map +1 -1
  180. package/src/lib/layout/separator/tng-separator.js +30 -30
  181. package/src/lib/layout/separator/tng-separator.js.map +1 -1
  182. package/src/lib/layout/stepper/tng-stepper.d.ts +3 -0
  183. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
  184. package/src/lib/layout/stepper/tng-stepper.js +16 -14
  185. package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
  186. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts +3 -0
  187. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -1
  188. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +54 -11
  189. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -1
  190. package/src/lib/layout/tree/tng-tree-group.d.ts +3 -0
  191. package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -1
  192. package/src/lib/layout/tree/tng-tree-group.js +19 -17
  193. package/src/lib/layout/tree/tng-tree-group.js.map +1 -1
  194. package/src/lib/layout/tree/tng-tree-indicator.d.ts +3 -0
  195. package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -1
  196. package/src/lib/layout/tree/tng-tree-indicator.js +22 -20
  197. package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -1
  198. package/src/lib/layout/tree/tng-tree-item.d.ts +3 -0
  199. package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -1
  200. package/src/lib/layout/tree/tng-tree-item.js +47 -53
  201. package/src/lib/layout/tree/tng-tree-item.js.map +1 -1
  202. package/src/lib/layout/tree/tng-tree.d.ts +3 -0
  203. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
  204. package/src/lib/layout/tree/tng-tree.js +39 -43
  205. package/src/lib/layout/tree/tng-tree.js.map +1 -1
  206. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts +11 -0
  207. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -1
  208. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +79 -69
  209. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -1
  210. package/src/lib/navigation/context-menu/tng-context-menu.d.ts +5 -0
  211. package/src/lib/navigation/context-menu/tng-context-menu.d.ts.map +1 -1
  212. package/src/lib/navigation/context-menu/tng-context-menu.js +44 -42
  213. package/src/lib/navigation/context-menu/tng-context-menu.js.map +1 -1
  214. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts +3 -0
  215. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -1
  216. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +16 -14
  217. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -1
  218. package/src/lib/navigation/menu/tng-menu.d.ts +13 -0
  219. package/src/lib/navigation/menu/tng-menu.d.ts.map +1 -1
  220. package/src/lib/navigation/menu/tng-menu.js +184 -186
  221. package/src/lib/navigation/menu/tng-menu.js.map +1 -1
  222. package/src/lib/navigation/menubar/tng-menubar.d.ts +5 -0
  223. package/src/lib/navigation/menubar/tng-menubar.d.ts.map +1 -1
  224. package/src/lib/navigation/menubar/tng-menubar.js +72 -70
  225. package/src/lib/navigation/menubar/tng-menubar.js.map +1 -1
  226. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts +3 -0
  227. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -1
  228. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +16 -14
  229. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -1
  230. package/src/lib/navigation/tabs/tng-tabs.d.ts +13 -0
  231. package/src/lib/navigation/tabs/tng-tabs.d.ts.map +1 -1
  232. package/src/lib/navigation/tabs/tng-tabs.js +234 -258
  233. package/src/lib/navigation/tabs/tng-tabs.js.map +1 -1
  234. package/src/lib/navigation/toolbar/tng-toolbar.d.ts +3 -0
  235. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -1
  236. package/src/lib/navigation/toolbar/tng-toolbar.js +16 -14
  237. package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -1
  238. package/src/lib/overlay/dialog/tng-dialog.d.ts +19 -0
  239. package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -1
  240. package/src/lib/overlay/dialog/tng-dialog.js +249 -255
  241. package/src/lib/overlay/dialog/tng-dialog.js.map +1 -1
  242. package/src/lib/overlay/popover/tng-popover.d.ts +9 -0
  243. package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -1
  244. package/src/lib/overlay/popover/tng-popover.js +152 -170
  245. package/src/lib/overlay/popover/tng-popover.js.map +1 -1
  246. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +7 -0
  247. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
  248. package/src/lib/overlay/tooltip/tng-tooltip.js +124 -130
  249. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
  250. package/src/lib/utility/avatar/tng-avatar.d.ts +7 -0
  251. package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -1
  252. package/src/lib/utility/avatar/tng-avatar.js +46 -40
  253. package/src/lib/utility/avatar/tng-avatar.js.map +1 -1
  254. package/src/lib/utility/badge/tng-badge.d.ts +3 -0
  255. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
  256. package/src/lib/utility/badge/tng-badge.js +26 -40
  257. package/src/lib/utility/badge/tng-badge.js.map +1 -1
  258. package/src/lib/utility/code-block/tng-code-block.d.ts +11 -0
  259. package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -1
  260. package/src/lib/utility/code-block/tng-code-block.js +76 -66
  261. package/src/lib/utility/code-block/tng-code-block.js.map +1 -1
  262. package/src/lib/utility/copy/tng-copy.d.ts +3 -0
  263. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
  264. package/src/lib/utility/copy/tng-copy.js +44 -52
  265. package/src/lib/utility/copy/tng-copy.js.map +1 -1
  266. package/src/lib/utility/press/tng-press.d.ts +3 -0
  267. package/src/lib/utility/press/tng-press.d.ts.map +1 -1
  268. package/src/lib/utility/press/tng-press.js +55 -61
  269. package/src/lib/utility/press/tng-press.js.map +1 -1
  270. package/src/lib/utility/tag/tng-tag.d.ts +7 -0
  271. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
  272. package/src/lib/utility/tag/tng-tag.js +94 -96
  273. package/src/lib/utility/tag/tng-tag.js.map +1 -1
@@ -1,9 +1,9 @@
1
- import { __decorate } from "tslib";
2
1
  import { DestroyRef, Directive, ElementRef, HostBinding, HostListener, inject } from '@angular/core';
3
2
  import { createTngIdFactory } from '@tailng-ui/cdk';
4
3
  import { ensureActiveAndSync, handleComboboxKeydown } from '../../../internal/combobox';
5
4
  import { TNG_SELECT_HOST } from './tng-select.tokens.shared';
6
- let TngSelectTrigger = class TngSelectTrigger {
5
+ import * as i0 from "@angular/core";
6
+ export class TngSelectTrigger {
7
7
  host = inject(TNG_SELECT_HOST);
8
8
  el = inject((ElementRef));
9
9
  get listbox() {
@@ -80,84 +80,90 @@ let TngSelectTrigger = class TngSelectTrigger {
80
80
  multiSelect: this.host.multiple(),
81
81
  });
82
82
  }
83
- };
84
- __decorate([
85
- HostBinding('attr.data-slot')
86
- ], TngSelectTrigger.prototype, "dataSlot", void 0);
87
- __decorate([
88
- HostBinding('attr.role')
89
- ], TngSelectTrigger.prototype, "role", void 0);
90
- __decorate([
91
- HostBinding('attr.aria-haspopup')
92
- ], TngSelectTrigger.prototype, "haspopup", void 0);
93
- __decorate([
94
- HostBinding('attr.aria-expanded')
95
- ], TngSelectTrigger.prototype, "ariaExpanded", null);
96
- __decorate([
97
- HostBinding('attr.aria-disabled')
98
- ], TngSelectTrigger.prototype, "ariaDisabled", null);
99
- __decorate([
100
- HostBinding('attr.aria-controls')
101
- ], TngSelectTrigger.prototype, "ariaControls", null);
102
- __decorate([
103
- HostBinding('attr.aria-activedescendant')
104
- ], TngSelectTrigger.prototype, "ariaActiveDescendant", null);
105
- __decorate([
106
- HostBinding('attr.tabindex')
107
- ], TngSelectTrigger.prototype, "tabindex", null);
108
- __decorate([
109
- HostBinding('attr.aria-invalid')
110
- ], TngSelectTrigger.prototype, "ariaInvalid", null);
111
- __decorate([
112
- HostBinding('attr.aria-labelledby')
113
- ], TngSelectTrigger.prototype, "ariaLabelledby", null);
114
- __decorate([
115
- HostBinding('attr.aria-describedby')
116
- ], TngSelectTrigger.prototype, "ariaDescribedby", null);
117
- __decorate([
118
- HostListener('pointerdown', ['$event'])
119
- ], TngSelectTrigger.prototype, "onPointerDown", null);
120
- __decorate([
121
- HostListener('keydown', ['$event'])
122
- ], TngSelectTrigger.prototype, "onKeydown", null);
123
- TngSelectTrigger = __decorate([
124
- Directive({
125
- selector: '[tngSelectTrigger]',
126
- exportAs: 'tngSelectTrigger',
127
- standalone: true,
128
- })
129
- ], TngSelectTrigger);
130
- export { TngSelectTrigger };
131
- let TngSelectValue = class TngSelectValue {
83
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
84
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngSelectTrigger, isStandalone: true, selector: "[tngSelectTrigger]", host: { listeners: { "pointerdown": "onPointerDown($event)", "keydown": "onKeydown($event)" }, properties: { "attr.data-slot": "this.dataSlot", "attr.role": "this.role", "attr.aria-haspopup": "this.haspopup", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-disabled": "this.ariaDisabled", "attr.aria-controls": "this.ariaControls", "attr.aria-activedescendant": "this.ariaActiveDescendant", "attr.tabindex": "this.tabindex", "attr.aria-invalid": "this.ariaInvalid", "attr.aria-labelledby": "this.ariaLabelledby", "attr.aria-describedby": "this.ariaDescribedby" } }, exportAs: ["tngSelectTrigger"], ngImport: i0 });
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectTrigger, decorators: [{
87
+ type: Directive,
88
+ args: [{
89
+ selector: '[tngSelectTrigger]',
90
+ exportAs: 'tngSelectTrigger',
91
+ standalone: true,
92
+ }]
93
+ }], propDecorators: { dataSlot: [{
94
+ type: HostBinding,
95
+ args: ['attr.data-slot']
96
+ }], role: [{
97
+ type: HostBinding,
98
+ args: ['attr.role']
99
+ }], haspopup: [{
100
+ type: HostBinding,
101
+ args: ['attr.aria-haspopup']
102
+ }], ariaExpanded: [{
103
+ type: HostBinding,
104
+ args: ['attr.aria-expanded']
105
+ }], ariaDisabled: [{
106
+ type: HostBinding,
107
+ args: ['attr.aria-disabled']
108
+ }], ariaControls: [{
109
+ type: HostBinding,
110
+ args: ['attr.aria-controls']
111
+ }], ariaActiveDescendant: [{
112
+ type: HostBinding,
113
+ args: ['attr.aria-activedescendant']
114
+ }], tabindex: [{
115
+ type: HostBinding,
116
+ args: ['attr.tabindex']
117
+ }], ariaInvalid: [{
118
+ type: HostBinding,
119
+ args: ['attr.aria-invalid']
120
+ }], ariaLabelledby: [{
121
+ type: HostBinding,
122
+ args: ['attr.aria-labelledby']
123
+ }], ariaDescribedby: [{
124
+ type: HostBinding,
125
+ args: ['attr.aria-describedby']
126
+ }], onPointerDown: [{
127
+ type: HostListener,
128
+ args: ['pointerdown', ['$event']]
129
+ }], onKeydown: [{
130
+ type: HostListener,
131
+ args: ['keydown', ['$event']]
132
+ }] } });
133
+ export class TngSelectValue {
132
134
  dataSlot = 'select-value';
133
- };
134
- __decorate([
135
- HostBinding('attr.data-slot')
136
- ], TngSelectValue.prototype, "dataSlot", void 0);
137
- TngSelectValue = __decorate([
138
- Directive({
139
- selector: '[tngSelectValue]',
140
- exportAs: 'tngSelectValue',
141
- standalone: true,
142
- })
143
- ], TngSelectValue);
144
- export { TngSelectValue };
145
- let TngSelectIcon = class TngSelectIcon {
135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectValue, deps: [], target: i0.ɵɵFactoryTarget.Directive });
136
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngSelectValue, isStandalone: true, selector: "[tngSelectValue]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, exportAs: ["tngSelectValue"], ngImport: i0 });
137
+ }
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectValue, decorators: [{
139
+ type: Directive,
140
+ args: [{
141
+ selector: '[tngSelectValue]',
142
+ exportAs: 'tngSelectValue',
143
+ standalone: true,
144
+ }]
145
+ }], propDecorators: { dataSlot: [{
146
+ type: HostBinding,
147
+ args: ['attr.data-slot']
148
+ }] } });
149
+ export class TngSelectIcon {
146
150
  dataSlot = 'select-icon';
147
- };
148
- __decorate([
149
- HostBinding('attr.data-slot')
150
- ], TngSelectIcon.prototype, "dataSlot", void 0);
151
- TngSelectIcon = __decorate([
152
- Directive({
153
- selector: '[tngSelectIcon]',
154
- exportAs: 'tngSelectIcon',
155
- standalone: true,
156
- })
157
- ], TngSelectIcon);
158
- export { TngSelectIcon };
151
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
152
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngSelectIcon, isStandalone: true, selector: "[tngSelectIcon]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, exportAs: ["tngSelectIcon"], ngImport: i0 });
153
+ }
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectIcon, decorators: [{
155
+ type: Directive,
156
+ args: [{
157
+ selector: '[tngSelectIcon]',
158
+ exportAs: 'tngSelectIcon',
159
+ standalone: true,
160
+ }]
161
+ }], propDecorators: { dataSlot: [{
162
+ type: HostBinding,
163
+ args: ['attr.data-slot']
164
+ }] } });
159
165
  const createContentId = createTngIdFactory('tng-select-content');
160
- let TngSelectContent = class TngSelectContent {
166
+ export class TngSelectContent {
161
167
  host = inject(TNG_SELECT_HOST);
162
168
  destroyRef = inject(DestroyRef);
163
169
  id = createContentId();
@@ -175,25 +181,27 @@ let TngSelectContent = class TngSelectContent {
175
181
  this.host.setContentId(null);
176
182
  });
177
183
  }
178
- };
179
- __decorate([
180
- HostBinding('attr.id')
181
- ], TngSelectContent.prototype, "id", void 0);
182
- __decorate([
183
- HostBinding('attr.data-slot')
184
- ], TngSelectContent.prototype, "dataSlot", void 0);
185
- __decorate([
186
- HostBinding('attr.hidden')
187
- ], TngSelectContent.prototype, "hidden", null);
188
- __decorate([
189
- HostBinding('attr.aria-busy')
190
- ], TngSelectContent.prototype, "ariaBusy", null);
191
- TngSelectContent = __decorate([
192
- Directive({
193
- selector: '[tngSelectContent]',
194
- exportAs: 'tngSelectContent',
195
- standalone: true,
196
- })
197
- ], TngSelectContent);
198
- export { TngSelectContent };
184
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
185
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngSelectContent, isStandalone: true, selector: "[tngSelectContent]", host: { properties: { "attr.id": "this.id", "attr.data-slot": "this.dataSlot", "attr.hidden": "this.hidden", "attr.aria-busy": "this.ariaBusy" } }, exportAs: ["tngSelectContent"], ngImport: i0 });
186
+ }
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectContent, decorators: [{
188
+ type: Directive,
189
+ args: [{
190
+ selector: '[tngSelectContent]',
191
+ exportAs: 'tngSelectContent',
192
+ standalone: true,
193
+ }]
194
+ }], ctorParameters: () => [], propDecorators: { id: [{
195
+ type: HostBinding,
196
+ args: ['attr.id']
197
+ }], dataSlot: [{
198
+ type: HostBinding,
199
+ args: ['attr.data-slot']
200
+ }], hidden: [{
201
+ type: HostBinding,
202
+ args: ['attr.hidden']
203
+ }], ariaBusy: [{
204
+ type: HostBinding,
205
+ args: ['attr.aria-busy']
206
+ }] } });
199
207
  //# sourceMappingURL=tng-select.parts.shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-select.parts.shared.js","sourceRoot":"","sources":["../../../../../../../../../libs/tailng-ui/primitives/src/lib/form/_shared/select/tng-select.parts.shared.ts"],"names":[],"mappings":"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","sourcesContent":["import { DestroyRef, Directive, ElementRef, HostBinding, HostListener, inject } from '@angular/core';\nimport { createTngIdFactory } from '@tailng-ui/cdk';\nimport { ensureActiveAndSync, handleComboboxKeydown } from '../../../internal/combobox';\nimport type { TngSelectHostApi } from './tng-select.host-api';\nimport { TNG_SELECT_HOST } from './tng-select.tokens.shared';\n\n@Directive({\n selector: '[tngSelectTrigger]',\n exportAs: 'tngSelectTrigger',\n standalone: true,\n})\nexport class TngSelectTrigger {\n private readonly host = inject<TngSelectHostApi>(TNG_SELECT_HOST);\n private readonly el = inject(ElementRef<HTMLElement>);\n\n private get listbox() {\n return this.host.getListboxApi();\n }\n private readonly authorTabindex = this.el.nativeElement.getAttribute('tabindex') !== null;\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-trigger' = 'select-trigger';\n\n @HostBinding('attr.role') protected readonly role: 'combobox' = 'combobox';\n @HostBinding('attr.aria-haspopup') protected readonly haspopup: 'listbox' = 'listbox';\n\n @HostBinding('attr.aria-expanded')\n protected get ariaExpanded(): 'true' | 'false' {\n return this.host.open() ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.host.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-controls')\n protected get ariaControls(): string | null {\n if (!this.host.open()) return null;\n return this.host.getContentId() ?? this.host.getListboxId();\n }\n\n @HostBinding('attr.aria-activedescendant')\n protected get ariaActiveDescendant(): string | null {\n return this.host.open() ? this.host.getActiveDescendantId() : null;\n }\n\n @HostBinding('attr.tabindex')\n protected get tabindex(): '0' | null {\n const node = this.el.nativeElement;\n const isNaturallyFocusable =\n node instanceof HTMLButtonElement ||\n node instanceof HTMLInputElement ||\n node instanceof HTMLSelectElement ||\n node instanceof HTMLTextAreaElement;\n return isNaturallyFocusable || this.authorTabindex ? null : '0';\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalid(): 'true' | null {\n return this.host.invalid() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledby(): string | null {\n const node = this.el.nativeElement;\n if (node.hasAttribute('aria-label')) return null;\n return this.host.labelId();\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedby(): string | null {\n const ids: string[] = [];\n const desc = this.host.descriptionId();\n if (desc) ids.push(desc);\n if (this.host.invalid()) {\n const err = this.host.errorId();\n if (err) ids.push(err);\n }\n return ids.length ? ids.join(' ') : null;\n }\n\n @HostListener('pointerdown', ['$event'])\n protected onPointerDown(event: PointerEvent): void {\n if (this.host.disabled()) return;\n const btn = event.button ?? 0;\n if (btn !== 0) return;\n\n event.preventDefault();\n this.el.nativeElement.focus();\n this.host.toggle();\n\n if (this.host.open()) {\n ensureActiveAndSync(this.listbox, (id) => this.host.setActiveDescendantId(id));\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n handleComboboxKeydown(event, {\n disabled: this.host.disabled(),\n open: this.host.open(),\n openSelect: () => this.host.openSelect(),\n close: () => this.host.close(),\n listbox: this.listbox,\n setActiveDescendantId: (id) => this.host.setActiveDescendantId(id),\n multiSelect: this.host.multiple(),\n });\n }\n}\n\n@Directive({\n selector: '[tngSelectValue]',\n exportAs: 'tngSelectValue',\n standalone: true,\n})\nexport class TngSelectValue {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-value' = 'select-value';\n}\n\n@Directive({\n selector: '[tngSelectIcon]',\n exportAs: 'tngSelectIcon',\n standalone: true,\n})\nexport class TngSelectIcon {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-icon' = 'select-icon';\n}\n\nconst createContentId = createTngIdFactory('tng-select-content');\n\n@Directive({\n selector: '[tngSelectContent]',\n exportAs: 'tngSelectContent',\n standalone: true,\n})\nexport class TngSelectContent {\n private readonly host = inject<TngSelectHostApi>(TNG_SELECT_HOST);\n private readonly destroyRef = inject(DestroyRef);\n\n @HostBinding('attr.id')\n readonly id = createContentId();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-content' = 'select-content';\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n return this.host.open() ? null : '';\n }\n\n @HostBinding('attr.aria-busy')\n protected get ariaBusy(): 'true' | null {\n return this.host.loading() ? 'true' : null;\n }\n\n constructor() {\n this.host.setContentId(this.id);\n this.destroyRef.onDestroy(() => {\n if (this.host.getContentId() === this.id) this.host.setContentId(null);\n });\n }\n}\n"]}
1
+ {"version":3,"file":"tng-select.parts.shared.js","sourceRoot":"","sources":["../../../../../../../../../libs/tailng-ui/primitives/src/lib/form/_shared/select/tng-select.parts.shared.ts"],"names":[],"mappings":"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","sourcesContent":["import { DestroyRef, Directive, ElementRef, HostBinding, HostListener, inject } from '@angular/core';\nimport { createTngIdFactory } from '@tailng-ui/cdk';\nimport { ensureActiveAndSync, handleComboboxKeydown } from '../../../internal/combobox';\nimport type { TngSelectHostApi } from './tng-select.host-api';\nimport { TNG_SELECT_HOST } from './tng-select.tokens.shared';\n\n@Directive({\n selector: '[tngSelectTrigger]',\n exportAs: 'tngSelectTrigger',\n standalone: true,\n})\nexport class TngSelectTrigger {\n private readonly host = inject<TngSelectHostApi>(TNG_SELECT_HOST);\n private readonly el = inject(ElementRef<HTMLElement>);\n\n private get listbox() {\n return this.host.getListboxApi();\n }\n private readonly authorTabindex = this.el.nativeElement.getAttribute('tabindex') !== null;\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-trigger' = 'select-trigger';\n\n @HostBinding('attr.role') protected readonly role: 'combobox' = 'combobox';\n @HostBinding('attr.aria-haspopup') protected readonly haspopup: 'listbox' = 'listbox';\n\n @HostBinding('attr.aria-expanded')\n protected get ariaExpanded(): 'true' | 'false' {\n return this.host.open() ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.host.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-controls')\n protected get ariaControls(): string | null {\n if (!this.host.open()) return null;\n return this.host.getContentId() ?? this.host.getListboxId();\n }\n\n @HostBinding('attr.aria-activedescendant')\n protected get ariaActiveDescendant(): string | null {\n return this.host.open() ? this.host.getActiveDescendantId() : null;\n }\n\n @HostBinding('attr.tabindex')\n protected get tabindex(): '0' | null {\n const node = this.el.nativeElement;\n const isNaturallyFocusable =\n node instanceof HTMLButtonElement ||\n node instanceof HTMLInputElement ||\n node instanceof HTMLSelectElement ||\n node instanceof HTMLTextAreaElement;\n return isNaturallyFocusable || this.authorTabindex ? null : '0';\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalid(): 'true' | null {\n return this.host.invalid() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-labelledby')\n protected get ariaLabelledby(): string | null {\n const node = this.el.nativeElement;\n if (node.hasAttribute('aria-label')) return null;\n return this.host.labelId();\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedby(): string | null {\n const ids: string[] = [];\n const desc = this.host.descriptionId();\n if (desc) ids.push(desc);\n if (this.host.invalid()) {\n const err = this.host.errorId();\n if (err) ids.push(err);\n }\n return ids.length ? ids.join(' ') : null;\n }\n\n @HostListener('pointerdown', ['$event'])\n protected onPointerDown(event: PointerEvent): void {\n if (this.host.disabled()) return;\n const btn = event.button ?? 0;\n if (btn !== 0) return;\n\n event.preventDefault();\n this.el.nativeElement.focus();\n this.host.toggle();\n\n if (this.host.open()) {\n ensureActiveAndSync(this.listbox, (id) => this.host.setActiveDescendantId(id));\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n handleComboboxKeydown(event, {\n disabled: this.host.disabled(),\n open: this.host.open(),\n openSelect: () => this.host.openSelect(),\n close: () => this.host.close(),\n listbox: this.listbox,\n setActiveDescendantId: (id) => this.host.setActiveDescendantId(id),\n multiSelect: this.host.multiple(),\n });\n }\n}\n\n@Directive({\n selector: '[tngSelectValue]',\n exportAs: 'tngSelectValue',\n standalone: true,\n})\nexport class TngSelectValue {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-value' = 'select-value';\n}\n\n@Directive({\n selector: '[tngSelectIcon]',\n exportAs: 'tngSelectIcon',\n standalone: true,\n})\nexport class TngSelectIcon {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-icon' = 'select-icon';\n}\n\nconst createContentId = createTngIdFactory('tng-select-content');\n\n@Directive({\n selector: '[tngSelectContent]',\n exportAs: 'tngSelectContent',\n standalone: true,\n})\nexport class TngSelectContent {\n private readonly host = inject<TngSelectHostApi>(TNG_SELECT_HOST);\n private readonly destroyRef = inject(DestroyRef);\n\n @HostBinding('attr.id')\n readonly id = createContentId();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-content' = 'select-content';\n\n @HostBinding('attr.hidden')\n protected get hidden(): '' | null {\n return this.host.open() ? null : '';\n }\n\n @HostBinding('attr.aria-busy')\n protected get ariaBusy(): 'true' | null {\n return this.host.loading() ? 'true' : null;\n }\n\n constructor() {\n this.host.setContentId(this.id);\n this.destroyRef.onDestroy(() => {\n if (this.host.getContentId() === this.id) this.host.setContentId(null);\n });\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { TngAutocompleteListboxApi } from './tng-autocomplete.listbox.types';
2
+ import * as i0 from "@angular/core";
2
3
  /** Emitted when user commits a free-form value (Enter with no active option). */
3
4
  export interface TngAutocompleteCreateEvent {
4
5
  query: string;
@@ -48,5 +49,7 @@ export declare class TngAutocomplete<T = unknown> {
48
49
  selectValue(value: T): void;
49
50
  setListboxApi(api: TngAutocompleteListboxApi | null): void;
50
51
  getListboxApi(): TngAutocompleteListboxApi | null;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngAutocomplete<any>, never>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngAutocomplete<any>, "[tngAutocomplete]", ["tngAutocomplete"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "allowCreate": { "alias": "allowCreate"; "required": false; "isSignal": true; }; "strict": { "alias": "strict"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "labelId": { "alias": "labelId"; "required": false; "isSignal": true; }; "descriptionId": { "alias": "descriptionId"; "required": false; "isSignal": true; }; "errorId": { "alias": "errorId"; "required": false; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "value": "valueChange"; "create": "create"; "query": "queryChange"; "queryChange": "queryChange"; }, never, never, true, never>;
51
54
  }
52
55
  //# sourceMappingURL=tng-autocomplete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-autocomplete.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/autocomplete/tng-autocomplete.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,iFAAiF;AACjF,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAMa,eAAe,CAAC,CAAC,GAAG,OAAO;IACtC,QAAQ,CAAC,WAAW,MAAiD;IAErE,SAAgB,IAAI,+CAAyB;IAC7C,SAAgB,QAAQ,+CAAyB;IACjD,oCAAoC;IACpC,SAAgB,KAAK,gDAAyB;IAC9C,+DAA+D;IAC/D,SAAgB,WAAW,+CAAyB;IACpD,2EAA2E;IAC3E,SAAgB,MAAM,+CAAyB;IAC/C,yFAAyF;IACzF,SAAgB,MAAM,uEAAwC;IAE9D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAA0C;IAC7D,mFAAmF;IACnF,eAAe,UAAS;IACxB,4GAA4G;IAC5G,kBAAkB,UAAS;IAE3B,SAAgB,OAAO,+CAAyB;IAChD,SAAgB,OAAO,+CAAyB;IAChD,SAAgB,OAAO,qDAA8B;IACrD,SAAgB,aAAa,qDAA8B;IAC3D,SAAgB,OAAO,qDAA8B;IAEnD,gDAAgD;IAClD,SAAgB,KAAK,8CAAqB;IAE1C,uEAAuE;IACvE,SAAgB,WAAW,mDAAoB;IAG/C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAU;IAGtD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,QAAQ,CAE3C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,WAAW,IAAI,EAAE,GAAG,IAAI,CAErC;IAGD,SAAS,KAAK,WAAW,IAAI,EAAE,GAAG,IAAI,CAErC;IAED,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACrC,YAAY,IAAI,MAAM,GAAG,IAAI;IAC7B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACrC,YAAY,IAAI,MAAM,GAAG,IAAI;IAC7B,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAC9C,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAEtC,UAAU,IAAI,IAAI;IAKlB,KAAK,IAAI,IAAI;IAEb,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAM3B,aAAa,CAAC,GAAG,EAAE,yBAAyB,GAAG,IAAI,GAAG,IAAI;IAI1D,aAAa,IAAI,yBAAyB,GAAG,IAAI;CAGlD"}
1
+ {"version":3,"file":"tng-autocomplete.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/autocomplete/tng-autocomplete.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;;AAElF,iFAAiF;AACjF,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAMa,eAAe,CAAC,CAAC,GAAG,OAAO;IACtC,QAAQ,CAAC,WAAW,MAAiD;IAErE,SAAgB,IAAI,+CAAyB;IAC7C,SAAgB,QAAQ,+CAAyB;IACjD,oCAAoC;IACpC,SAAgB,KAAK,gDAAyB;IAC9C,+DAA+D;IAC/D,SAAgB,WAAW,+CAAyB;IACpD,2EAA2E;IAC3E,SAAgB,MAAM,+CAAyB;IAC/C,yFAAyF;IACzF,SAAgB,MAAM,uEAAwC;IAE9D,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAA0C;IAC7D,mFAAmF;IACnF,eAAe,UAAS;IACxB,4GAA4G;IAC5G,kBAAkB,UAAS;IAE3B,SAAgB,OAAO,+CAAyB;IAChD,SAAgB,OAAO,+CAAyB;IAChD,SAAgB,OAAO,qDAA8B;IACrD,SAAgB,aAAa,qDAA8B;IAC3D,SAAgB,OAAO,qDAA8B;IAEnD,gDAAgD;IAClD,SAAgB,KAAK,8CAAqB;IAE1C,uEAAuE;IACvE,SAAgB,WAAW,mDAAoB;IAG/C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,cAAc,CAAU;IAGtD,SAAS,KAAK,SAAS,IAAI,MAAM,GAAG,QAAQ,CAE3C;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,WAAW,IAAI,EAAE,GAAG,IAAI,CAErC;IAGD,SAAS,KAAK,WAAW,IAAI,EAAE,GAAG,IAAI,CAErC;IAED,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACrC,YAAY,IAAI,MAAM,GAAG,IAAI;IAC7B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACrC,YAAY,IAAI,MAAM,GAAG,IAAI;IAC7B,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAC9C,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAEtC,UAAU,IAAI,IAAI;IAKlB,KAAK,IAAI,IAAI;IAEb,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAM3B,aAAa,CAAC,GAAG,EAAE,yBAAyB,GAAG,IAAI,GAAG,IAAI;IAI1D,aAAa,IAAI,yBAAyB,GAAG,IAAI;yCAlFtC,eAAe;2CAAf,eAAe;CAqF3B"}
@@ -1,16 +1,16 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, ElementRef, HostBinding, inject, input, model, output, } from '@angular/core';
3
2
  import { TNG_AUTOCOMPLETE } from './tng-autocomplete.tokens';
4
- let TngAutocomplete = class TngAutocomplete {
3
+ import * as i0 from "@angular/core";
4
+ export class TngAutocomplete {
5
5
  hostElement = inject((ElementRef)).nativeElement;
6
- open = model(false);
7
- disabled = input(false);
6
+ open = model(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
7
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
8
8
  /** Value of the selected option. */
9
- value = model(null);
9
+ value = model(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
10
10
  /** Allow free-form create when Enter with no active option. */
11
- allowCreate = input(false);
11
+ allowCreate = input(false, ...(ngDevMode ? [{ debugName: "allowCreate" }] : []));
12
12
  /** When true, blocks free-form create (strict = must select from list). */
13
- strict = input(false);
13
+ strict = input(false, ...(ngDevMode ? [{ debugName: "strict" }] : []));
14
14
  /** Emitted when user presses Enter with no active option and allowCreate and !strict. */
15
15
  create = output();
16
16
  _contentId = null;
@@ -21,13 +21,13 @@ let TngAutocomplete = class TngAutocomplete {
21
21
  _restoringFocus = false;
22
22
  /** Set by trigger when create is emitted; listbox effect skips sync to avoid overwriting consumer value. */
23
23
  _createJustEmitted = false;
24
- loading = input(false);
25
- invalid = input(false);
26
- labelId = input(null);
27
- descriptionId = input(null);
28
- errorId = input(null);
24
+ loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
25
+ invalid = input(false, ...(ngDevMode ? [{ debugName: "invalid" }] : []));
26
+ labelId = input(null, ...(ngDevMode ? [{ debugName: "labelId" }] : []));
27
+ descriptionId = input(null, ...(ngDevMode ? [{ debugName: "descriptionId" }] : []));
28
+ errorId = input(null, ...(ngDevMode ? [{ debugName: "errorId" }] : []));
29
29
  /** Current input query (used for filtering). */
30
- query = model('');
30
+ query = model('', ...(ngDevMode ? [{ debugName: "query" }] : []));
31
31
  /** Emitted when query changes (typing OR open-on-focus empty emit). */
32
32
  queryChange = output();
33
33
  dataSlot = 'autocomplete';
@@ -67,29 +67,31 @@ let TngAutocomplete = class TngAutocomplete {
67
67
  getListboxApi() {
68
68
  return this._listboxApi;
69
69
  }
70
- };
71
- __decorate([
72
- HostBinding('attr.data-slot')
73
- ], TngAutocomplete.prototype, "dataSlot", void 0);
74
- __decorate([
75
- HostBinding('attr.data-state')
76
- ], TngAutocomplete.prototype, "dataState", null);
77
- __decorate([
78
- HostBinding('attr.data-disabled')
79
- ], TngAutocomplete.prototype, "dataDisabled", null);
80
- __decorate([
81
- HostBinding('attr.data-loading')
82
- ], TngAutocomplete.prototype, "dataLoading", null);
83
- __decorate([
84
- HostBinding('attr.data-invalid')
85
- ], TngAutocomplete.prototype, "dataInvalid", null);
86
- TngAutocomplete = __decorate([
87
- Directive({
88
- selector: '[tngAutocomplete]',
89
- exportAs: 'tngAutocomplete',
90
- standalone: true,
91
- providers: [{ provide: TNG_AUTOCOMPLETE, useExisting: TngAutocomplete }],
92
- })
93
- ], TngAutocomplete);
94
- export { TngAutocomplete };
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngAutocomplete, deps: [], target: i0.ɵɵFactoryTarget.Directive });
71
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.1", type: TngAutocomplete, isStandalone: true, selector: "[tngAutocomplete]", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, allowCreate: { classPropertyName: "allowCreate", publicName: "allowCreate", isSignal: true, isRequired: false, transformFunction: null }, strict: { classPropertyName: "strict", publicName: "strict", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, labelId: { classPropertyName: "labelId", publicName: "labelId", isSignal: true, isRequired: false, transformFunction: null }, descriptionId: { classPropertyName: "descriptionId", publicName: "descriptionId", isSignal: true, isRequired: false, transformFunction: null }, errorId: { classPropertyName: "errorId", publicName: "errorId", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", value: "valueChange", create: "create", query: "queryChange", queryChange: "queryChange" }, host: { properties: { "attr.data-slot": "this.dataSlot", "attr.data-state": "this.dataState", "attr.data-disabled": "this.dataDisabled", "attr.data-loading": "this.dataLoading", "attr.data-invalid": "this.dataInvalid" } }, providers: [{ provide: TNG_AUTOCOMPLETE, useExisting: TngAutocomplete }], exportAs: ["tngAutocomplete"], ngImport: i0 });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngAutocomplete, decorators: [{
74
+ type: Directive,
75
+ args: [{
76
+ selector: '[tngAutocomplete]',
77
+ exportAs: 'tngAutocomplete',
78
+ standalone: true,
79
+ providers: [{ provide: TNG_AUTOCOMPLETE, useExisting: TngAutocomplete }],
80
+ }]
81
+ }], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], allowCreate: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowCreate", required: false }] }], strict: [{ type: i0.Input, args: [{ isSignal: true, alias: "strict", required: false }] }], create: [{ type: i0.Output, args: ["create"] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], labelId: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelId", required: false }] }], descriptionId: [{ type: i0.Input, args: [{ isSignal: true, alias: "descriptionId", required: false }] }], errorId: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorId", required: false }] }], query: [{ type: i0.Input, args: [{ isSignal: true, alias: "query", required: false }] }, { type: i0.Output, args: ["queryChange"] }], queryChange: [{ type: i0.Output, args: ["queryChange"] }], dataSlot: [{
82
+ type: HostBinding,
83
+ args: ['attr.data-slot']
84
+ }], dataState: [{
85
+ type: HostBinding,
86
+ args: ['attr.data-state']
87
+ }], dataDisabled: [{
88
+ type: HostBinding,
89
+ args: ['attr.data-disabled']
90
+ }], dataLoading: [{
91
+ type: HostBinding,
92
+ args: ['attr.data-loading']
93
+ }], dataInvalid: [{
94
+ type: HostBinding,
95
+ args: ['attr.data-invalid']
96
+ }] } });
95
97
  //# sourceMappingURL=tng-autocomplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-autocomplete.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/autocomplete/tng-autocomplete.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\nimport { TNG_AUTOCOMPLETE } from './tng-autocomplete.tokens';\nimport type { TngAutocompleteListboxApi } from './tng-autocomplete.listbox.types';\n\n/** Emitted when user commits a free-form value (Enter with no active option). */\nexport interface TngAutocompleteCreateEvent {\n query: string;\n}\n\n@Directive({\n selector: '[tngAutocomplete]',\n exportAs: 'tngAutocomplete',\n standalone: true,\n providers: [{ provide: TNG_AUTOCOMPLETE, useExisting: TngAutocomplete }],\n})\nexport class TngAutocomplete<T = unknown> {\n readonly hostElement = inject(ElementRef<HTMLElement>).nativeElement;\n\n public readonly open = model<boolean>(false);\n public readonly disabled = input<boolean>(false);\n /** Value of the selected option. */\n public readonly value = model<T | null>(null);\n /** Allow free-form create when Enter with no active option. */\n public readonly allowCreate = input<boolean>(false);\n /** When true, blocks free-form create (strict = must select from list). */\n public readonly strict = input<boolean>(false);\n /** Emitted when user presses Enter with no active option and allowCreate and !strict. */\n public readonly create = output<TngAutocompleteCreateEvent>();\n\n private _contentId: string | null = null;\n private _listboxId: string | null = null;\n private _activeId: string | null = null;\n private _listboxApi: TngAutocompleteListboxApi | null = null;\n /** Set by overlay before programmatic focus restore to prevent reopen-on-focus. */\n _restoringFocus = false;\n /** Set by trigger when create is emitted; listbox effect skips sync to avoid overwriting consumer value. */\n _createJustEmitted = false;\n\n public readonly loading = input<boolean>(false);\n public readonly invalid = input<boolean>(false);\n public readonly labelId = input<string | null>(null);\n public readonly descriptionId = input<string | null>(null);\n public readonly errorId = input<string | null>(null);\n\n /** Current input query (used for filtering). */\n public readonly query = model<string>('');\n\n /** Emitted when query changes (typing OR open-on-focus empty emit). */\n public readonly queryChange = output<string>();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'autocomplete' as const;\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n return this.open() ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-loading')\n protected get dataLoading(): '' | null {\n return this.loading() ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalid(): '' | null {\n return this.invalid() ? '' : null;\n }\n\n setContentId(id: string | null): void { this._contentId = id; }\n getContentId(): string | null { return this._contentId; }\n setListboxId(id: string | null): void { this._listboxId = id; }\n getListboxId(): string | null { return this._listboxId; }\n setActiveDescendantId(id: string | null): void { this._activeId = id; }\n getActiveDescendantId(): string | null { return this._activeId; }\n\n openSelect(): void {\n if (this.disabled()) return;\n this.open.set(true);\n }\n\n close(): void { this.open.set(false); }\n\n selectValue(value: T): void {\n if (this.disabled()) return;\n this.value.set(value);\n this.close();\n }\n\n setListboxApi(api: TngAutocompleteListboxApi | null): void {\n this._listboxApi = api;\n }\n\n getListboxApi(): TngAutocompleteListboxApi | null {\n return this._listboxApi;\n }\n}\n"]}
1
+ {"version":3,"file":"tng-autocomplete.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/autocomplete/tng-autocomplete.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,MAAM,EACN,KAAK,EACL,KAAK,EACL,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;;AAc7D,MAAM,OAAO,eAAe;IACjB,WAAW,GAAG,MAAM,CAAC,CAAA,UAAuB,CAAA,CAAC,CAAC,aAAa,CAAC;IAErD,IAAI,GAAG,KAAK,CAAU,KAAK,gDAAC,CAAC;IAC7B,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC,CAAC;IACjD,oCAAoC;IACpB,KAAK,GAAG,KAAK,CAAW,IAAI,iDAAC,CAAC;IAC9C,+DAA+D;IAC/C,WAAW,GAAG,KAAK,CAAU,KAAK,uDAAC,CAAC;IACpD,2EAA2E;IAC3D,MAAM,GAAG,KAAK,CAAU,KAAK,kDAAC,CAAC;IAC/C,yFAAyF;IACzE,MAAM,GAAG,MAAM,EAA8B,CAAC;IAEtD,UAAU,GAAkB,IAAI,CAAC;IACjC,UAAU,GAAkB,IAAI,CAAC;IACjC,SAAS,GAAkB,IAAI,CAAC;IAChC,WAAW,GAAqC,IAAI,CAAC;IAC7D,mFAAmF;IACnF,eAAe,GAAG,KAAK,CAAC;IACxB,4GAA4G;IAC5G,kBAAkB,GAAG,KAAK,CAAC;IAEX,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC,CAAC;IAChC,OAAO,GAAG,KAAK,CAAU,KAAK,mDAAC,CAAC;IAChC,OAAO,GAAG,KAAK,CAAgB,IAAI,mDAAC,CAAC;IACrC,aAAa,GAAG,KAAK,CAAgB,IAAI,yDAAC,CAAC;IAC3C,OAAO,GAAG,KAAK,CAAgB,IAAI,mDAAC,CAAC;IAEnD,gDAAgD;IAClC,KAAK,GAAG,KAAK,CAAS,EAAE,iDAAC,CAAC;IAE1C,uEAAuE;IACvD,WAAW,GAAG,MAAM,EAAU,CAAC;IAG5B,QAAQ,GAAG,cAAuB,CAAC;IAEtD,IACc,SAAS;QACrB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzC,CAAC;IAED,IACc,YAAY;QACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IACc,WAAW;QACvB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IAED,IACc,WAAW;QACvB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,EAAiB,IAAU,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/D,YAAY,KAAoB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,YAAY,CAAC,EAAiB,IAAU,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/D,YAAY,KAAoB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,qBAAqB,CAAC,EAAiB,IAAU,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;IACvE,qBAAqB,KAAoB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,UAAU;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;QAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,KAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEvC,WAAW,CAAC,KAAQ;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,aAAa,CAAC,GAAqC;QACjD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;uGApFU,eAAe;2FAAf,eAAe,yxDAFf,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;;2FAE7D,eAAe;kBAN3B,SAAS;mBAAC;oBACT,QAAQ,EAAE,mBAAmB;oBAC7B,QAAQ,EAAE,iBAAiB;oBAC3B,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,iBAAiB,EAAE,CAAC;iBACzE;;sBAoCE,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,iBAAiB;;sBAK7B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,mBAAmB;;sBAK/B,WAAW;uBAAC,mBAAmB","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\nimport { TNG_AUTOCOMPLETE } from './tng-autocomplete.tokens';\nimport type { TngAutocompleteListboxApi } from './tng-autocomplete.listbox.types';\n\n/** Emitted when user commits a free-form value (Enter with no active option). */\nexport interface TngAutocompleteCreateEvent {\n query: string;\n}\n\n@Directive({\n selector: '[tngAutocomplete]',\n exportAs: 'tngAutocomplete',\n standalone: true,\n providers: [{ provide: TNG_AUTOCOMPLETE, useExisting: TngAutocomplete }],\n})\nexport class TngAutocomplete<T = unknown> {\n readonly hostElement = inject(ElementRef<HTMLElement>).nativeElement;\n\n public readonly open = model<boolean>(false);\n public readonly disabled = input<boolean>(false);\n /** Value of the selected option. */\n public readonly value = model<T | null>(null);\n /** Allow free-form create when Enter with no active option. */\n public readonly allowCreate = input<boolean>(false);\n /** When true, blocks free-form create (strict = must select from list). */\n public readonly strict = input<boolean>(false);\n /** Emitted when user presses Enter with no active option and allowCreate and !strict. */\n public readonly create = output<TngAutocompleteCreateEvent>();\n\n private _contentId: string | null = null;\n private _listboxId: string | null = null;\n private _activeId: string | null = null;\n private _listboxApi: TngAutocompleteListboxApi | null = null;\n /** Set by overlay before programmatic focus restore to prevent reopen-on-focus. */\n _restoringFocus = false;\n /** Set by trigger when create is emitted; listbox effect skips sync to avoid overwriting consumer value. */\n _createJustEmitted = false;\n\n public readonly loading = input<boolean>(false);\n public readonly invalid = input<boolean>(false);\n public readonly labelId = input<string | null>(null);\n public readonly descriptionId = input<string | null>(null);\n public readonly errorId = input<string | null>(null);\n\n /** Current input query (used for filtering). */\n public readonly query = model<string>('');\n\n /** Emitted when query changes (typing OR open-on-focus empty emit). */\n public readonly queryChange = output<string>();\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'autocomplete' as const;\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n return this.open() ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-loading')\n protected get dataLoading(): '' | null {\n return this.loading() ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalid(): '' | null {\n return this.invalid() ? '' : null;\n }\n\n setContentId(id: string | null): void { this._contentId = id; }\n getContentId(): string | null { return this._contentId; }\n setListboxId(id: string | null): void { this._listboxId = id; }\n getListboxId(): string | null { return this._listboxId; }\n setActiveDescendantId(id: string | null): void { this._activeId = id; }\n getActiveDescendantId(): string | null { return this._activeId; }\n\n openSelect(): void {\n if (this.disabled()) return;\n this.open.set(true);\n }\n\n close(): void { this.open.set(false); }\n\n selectValue(value: T): void {\n if (this.disabled()) return;\n this.value.set(value);\n this.close();\n }\n\n setListboxApi(api: TngAutocompleteListboxApi | null): void {\n this._listboxApi = api;\n }\n\n getListboxApi(): TngAutocompleteListboxApi | null {\n return this._listboxApi;\n }\n}\n"]}
@@ -1,4 +1,6 @@
1
1
  import { TngAutocompleteListboxApi } from './tng-autocomplete.listbox.types';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@tailng-ui/primitives";
2
4
  export declare class TngAutocompleteListbox<T = unknown> implements TngAutocompleteListboxApi {
3
5
  private readonly autocomplete;
4
6
  private readonly destroyRef;
@@ -12,8 +14,12 @@ export declare class TngAutocompleteListbox<T = unknown> implements TngAutocompl
12
14
  handleKey(key: string, shiftKey?: boolean): boolean;
13
15
  commitActive(): void;
14
16
  protected onListboxValueChange(value: T | readonly T[] | null): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngAutocompleteListbox<any>, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngAutocompleteListbox<any>, "[tngAutocompleteListbox]", never, {}, {}, never, never, true, [{ directive: typeof i1.TngListboxDirective; inputs: { "orientation": "orientation"; "direction": "direction"; "disabled": "disabled"; "loop": "loop"; "value": "value"; }; outputs: { "valueChange": "valueChange"; }; }]>;
15
19
  }
16
20
  export declare class TngAutocompleteOption<T> {
17
21
  protected readonly dataSlot: "autocomplete-option";
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngAutocompleteOption<any>, never>;
23
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngAutocompleteOption<any>, "[tngAutocompleteOption]", never, {}, {}, never, never, true, [{ directive: typeof i1.TngOptionDirective; inputs: { "tngValue": "tngValue"; "disabled": "disabled"; }; outputs: {}; }]>;
18
24
  }
19
25
  //# sourceMappingURL=tng-autocomplete.listbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-autocomplete.listbox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/autocomplete/tng-autocomplete.listbox.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAK7E,qBAea,sBAAsB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,yBAAyB;IACnF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgD;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAG1E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,sBAAsB,CAAU;IAG9D,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAqB;;IA2B1C,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAI3C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO;IAInD,YAAY,IAAI,IAAI;IAOpB,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI;CAwBrE;AAED,qBAUa,qBAAqB,CAAC,CAAC;IAElC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,qBAAqB,CAAU;CAC9D"}
1
+ {"version":3,"file":"tng-autocomplete.listbox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/autocomplete/tng-autocomplete.listbox.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;;;AAK7E,qBAea,sBAAsB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,yBAAyB;IACnF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgD;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAG1E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,sBAAsB,CAAU;IAG9D,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAqB;;IA2B1C,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAI3C,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO;IAInD,YAAY,IAAI,IAAI;IAOpB,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI;yCA3DzD,sBAAsB;2CAAtB,sBAAsB;CAmFlC;AAED,qBAUa,qBAAqB,CAAC,CAAC;IAElC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,qBAAqB,CAAU;yCAFlD,qBAAqB;2CAArB,qBAAqB;CAGjC"}
@@ -1,12 +1,13 @@
1
- import { __decorate } from "tslib";
2
1
  import { DestroyRef, Directive, effect, HostBinding, HostListener, inject, untracked } from '@angular/core';
3
2
  import { createTngIdFactory } from '@tailng-ui/cdk';
4
3
  import { TNG_LISTBOX_FORCE_TYPEAHEAD, TngListboxDirective, TngOptionDirective } from '@tailng-ui/primitives';
5
4
  import { normalizeToSingle } from '../../internal/combobox';
6
5
  import { TNG_AUTOCOMPLETE_LISTBOX } from './tng-autocomplete.listbox.tokens';
7
6
  import { TNG_AUTOCOMPLETE } from './tng-autocomplete.tokens';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@tailng-ui/primitives";
8
9
  const createListboxId = createTngIdFactory('tng-autocomplete-listbox');
9
- let TngAutocompleteListbox = class TngAutocompleteListbox {
10
+ export class TngAutocompleteListbox {
10
11
  autocomplete = inject(TNG_AUTOCOMPLETE);
11
12
  destroyRef = inject(DestroyRef);
12
13
  listbox = inject((TngListboxDirective), { self: true });
@@ -73,51 +74,58 @@ let TngAutocompleteListbox = class TngAutocompleteListbox {
73
74
  }
74
75
  this.autocomplete.selectValue(next);
75
76
  }
76
- };
77
- __decorate([
78
- HostBinding('attr.data-slot')
79
- ], TngAutocompleteListbox.prototype, "dataSlot", void 0);
80
- __decorate([
81
- HostBinding('attr.id')
82
- ], TngAutocompleteListbox.prototype, "id", void 0);
83
- __decorate([
84
- HostListener('valueChange', ['$event'])
85
- ], TngAutocompleteListbox.prototype, "onListboxValueChange", null);
86
- TngAutocompleteListbox = __decorate([
87
- Directive({
88
- selector: '[tngAutocompleteListbox]',
89
- standalone: true,
90
- providers: [
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngAutocompleteListbox, deps: [], target: i0.ɵɵFactoryTarget.Directive });
78
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngAutocompleteListbox, isStandalone: true, selector: "[tngAutocompleteListbox]", host: { listeners: { "valueChange": "onListboxValueChange($event)" }, properties: { "attr.data-slot": "this.dataSlot", "attr.id": "this.id" } }, providers: [
91
79
  { provide: TNG_AUTOCOMPLETE_LISTBOX, useExisting: TngAutocompleteListbox },
92
80
  { provide: TNG_LISTBOX_FORCE_TYPEAHEAD, useValue: false }
93
- ],
94
- hostDirectives: [
95
- {
96
- directive: TngListboxDirective,
97
- inputs: ['orientation', 'direction', 'disabled', 'loop', 'value'],
98
- outputs: ['valueChange'],
99
- },
100
- ],
101
- })
102
- ], TngAutocompleteListbox);
103
- export { TngAutocompleteListbox };
104
- let TngAutocompleteOption = class TngAutocompleteOption {
81
+ ], hostDirectives: [{ directive: i1.TngListboxDirective, inputs: ["orientation", "orientation", "direction", "direction", "disabled", "disabled", "loop", "loop", "value", "value"], outputs: ["valueChange", "valueChange"] }], ngImport: i0 });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngAutocompleteListbox, decorators: [{
84
+ type: Directive,
85
+ args: [{
86
+ selector: '[tngAutocompleteListbox]',
87
+ standalone: true,
88
+ providers: [
89
+ { provide: TNG_AUTOCOMPLETE_LISTBOX, useExisting: TngAutocompleteListbox },
90
+ { provide: TNG_LISTBOX_FORCE_TYPEAHEAD, useValue: false }
91
+ ],
92
+ hostDirectives: [
93
+ {
94
+ directive: TngListboxDirective,
95
+ inputs: ['orientation', 'direction', 'disabled', 'loop', 'value'],
96
+ outputs: ['valueChange'],
97
+ },
98
+ ],
99
+ }]
100
+ }], ctorParameters: () => [], propDecorators: { dataSlot: [{
101
+ type: HostBinding,
102
+ args: ['attr.data-slot']
103
+ }], id: [{
104
+ type: HostBinding,
105
+ args: ['attr.id']
106
+ }], onListboxValueChange: [{
107
+ type: HostListener,
108
+ args: ['valueChange', ['$event']]
109
+ }] } });
110
+ export class TngAutocompleteOption {
105
111
  dataSlot = 'autocomplete-option';
106
- };
107
- __decorate([
108
- HostBinding('attr.data-slot')
109
- ], TngAutocompleteOption.prototype, "dataSlot", void 0);
110
- TngAutocompleteOption = __decorate([
111
- Directive({
112
- selector: '[tngAutocompleteOption]',
113
- standalone: true,
114
- hostDirectives: [
115
- {
116
- directive: TngOptionDirective,
117
- inputs: ['tngValue', 'disabled'],
118
- },
119
- ],
120
- })
121
- ], TngAutocompleteOption);
122
- export { TngAutocompleteOption };
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngAutocompleteOption, deps: [], target: i0.ɵɵFactoryTarget.Directive });
113
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngAutocompleteOption, isStandalone: true, selector: "[tngAutocompleteOption]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, hostDirectives: [{ directive: i1.TngOptionDirective, inputs: ["tngValue", "tngValue", "disabled", "disabled"] }], ngImport: i0 });
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngAutocompleteOption, decorators: [{
116
+ type: Directive,
117
+ args: [{
118
+ selector: '[tngAutocompleteOption]',
119
+ standalone: true,
120
+ hostDirectives: [
121
+ {
122
+ directive: TngOptionDirective,
123
+ inputs: ['tngValue', 'disabled'],
124
+ },
125
+ ],
126
+ }]
127
+ }], propDecorators: { dataSlot: [{
128
+ type: HostBinding,
129
+ args: ['attr.data-slot']
130
+ }] } });
123
131
  //# sourceMappingURL=tng-autocomplete.listbox.js.map