@tailng-ui/primitives 0.12.0 → 0.14.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 +71 -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 +48 -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 +34 -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 +29 -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 +49 -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 +21 -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 +102 -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 +39 -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 +52 -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 +21 -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 +105 -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 +119 -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 +94 -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 +104 -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 +15 -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 +157 -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 +57 -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 +23 -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 +44 -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 +39 -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 +22 -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 +24 -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 +34 -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 +55 -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 +15 -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 +51 -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 +40 -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 +48 -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 +15 -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 +90 -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 +40 -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 +48 -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 +41 -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 +43 -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 +39 -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 +70 -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 +47 -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 +139 -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 +15 -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 +141 -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 +79 -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 +211 -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 +15 -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 +29 -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 +15 -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 +18 -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 +21 -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 +46 -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 +38 -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 +74 -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 +42 -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 +15 -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 +178 -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 +70 -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 +15 -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 +228 -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 +15 -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 +240 -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 +148 -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 +121 -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 +43 -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 +25 -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 +71 -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 +43 -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 +54 -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 +91 -96
  273. package/src/lib/utility/tag/tng-tag.js.map +1 -1
@@ -1,5 +1,5 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, ElementRef, HostBinding, HostListener, booleanAttribute, inject, input, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
3
  export function normalizeTngRadioStringValue(value) {
4
4
  if (value === undefined || value === null) {
5
5
  return null;
@@ -31,31 +31,19 @@ export function resolveTngRadioInvalidState(invalid, ariaInvalid) {
31
31
  }
32
32
  return false;
33
33
  }
34
- let TngRadio = class TngRadio {
34
+ export class TngRadio {
35
35
  elementRef = inject(ElementRef);
36
36
  focused = false;
37
37
  focusVisible = false;
38
- ariaDescribedBy = input(null);
39
- ariaInvalid = input(null, {
40
- transform: coerceTngRadioNullableBoolean,
41
- });
42
- checked = input(false, {
43
- transform: booleanAttribute,
44
- });
45
- disabled = input(false, {
46
- transform: booleanAttribute,
47
- });
48
- invalid = input(null, {
49
- transform: coerceTngRadioNullableBoolean,
50
- });
51
- name = input(null);
52
- readonly = input(false, {
53
- transform: booleanAttribute,
54
- });
55
- required = input(false, {
56
- transform: booleanAttribute,
57
- });
58
- value = input(null);
38
+ ariaDescribedBy = input(null, ...(ngDevMode ? [{ debugName: "ariaDescribedBy" }] : []));
39
+ ariaInvalid = input(null, { ...(ngDevMode ? { debugName: "ariaInvalid" } : {}), transform: coerceTngRadioNullableBoolean });
40
+ checked = input(false, { ...(ngDevMode ? { debugName: "checked" } : {}), transform: booleanAttribute });
41
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
42
+ invalid = input(null, { ...(ngDevMode ? { debugName: "invalid" } : {}), transform: coerceTngRadioNullableBoolean });
43
+ name = input(null, ...(ngDevMode ? [{ debugName: "name" }] : []));
44
+ readonly = input(false, { ...(ngDevMode ? { debugName: "readonly" } : {}), transform: booleanAttribute });
45
+ required = input(false, { ...(ngDevMode ? { debugName: "required" } : {}), transform: booleanAttribute });
46
+ value = input(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
59
47
  typeAttr = 'radio';
60
48
  get checkedProp() {
61
49
  return this.checked();
@@ -134,82 +122,83 @@ let TngRadio = class TngRadio {
134
122
  isInvalid() {
135
123
  return resolveTngRadioInvalidState(this.invalid(), this.ariaInvalid());
136
124
  }
137
- };
138
- __decorate([
139
- HostBinding('checked')
140
- ], TngRadio.prototype, "checkedProp", null);
141
- __decorate([
142
- HostBinding('attr.aria-checked')
143
- ], TngRadio.prototype, "ariaCheckedAttr", null);
144
- __decorate([
145
- HostBinding('attr.aria-disabled')
146
- ], TngRadio.prototype, "ariaDisabledAttr", null);
147
- __decorate([
148
- HostBinding('attr.aria-describedby')
149
- ], TngRadio.prototype, "ariaDescribedByAttr", null);
150
- __decorate([
151
- HostBinding('attr.aria-invalid')
152
- ], TngRadio.prototype, "ariaInvalidAttr", null);
153
- __decorate([
154
- HostBinding('attr.aria-readonly')
155
- ], TngRadio.prototype, "ariaReadonlyAttr", null);
156
- __decorate([
157
- HostBinding('attr.data-checked')
158
- ], TngRadio.prototype, "dataCheckedAttr", null);
159
- __decorate([
160
- HostBinding('attr.data-disabled')
161
- ], TngRadio.prototype, "dataDisabledAttr", null);
162
- __decorate([
163
- HostBinding('attr.data-focused')
164
- ], TngRadio.prototype, "dataFocusedAttr", null);
165
- __decorate([
166
- HostBinding('attr.data-focus-visible')
167
- ], TngRadio.prototype, "dataFocusVisibleAttr", null);
168
- __decorate([
169
- HostBinding('attr.data-invalid')
170
- ], TngRadio.prototype, "dataInvalidAttr", null);
171
- __decorate([
172
- HostBinding('attr.data-readonly')
173
- ], TngRadio.prototype, "dataReadonlyAttr", null);
174
- __decorate([
175
- HostBinding('attr.data-required')
176
- ], TngRadio.prototype, "dataRequiredAttr", null);
177
- __decorate([
178
- HostBinding('attr.data-state')
179
- ], TngRadio.prototype, "dataStateAttr", null);
180
- __decorate([
181
- HostBinding('attr.data-unchecked')
182
- ], TngRadio.prototype, "dataUncheckedAttr", null);
183
- __decorate([
184
- HostBinding('attr.disabled')
185
- ], TngRadio.prototype, "disabledAttr", null);
186
- __decorate([
187
- HostBinding('attr.name')
188
- ], TngRadio.prototype, "nameAttr", null);
189
- __decorate([
190
- HostBinding('attr.required')
191
- ], TngRadio.prototype, "requiredAttr", null);
192
- __decorate([
193
- HostBinding('attr.type')
194
- ], TngRadio.prototype, "hostTypeAttr", null);
195
- __decorate([
196
- HostBinding('attr.value')
197
- ], TngRadio.prototype, "valueAttr", null);
198
- __decorate([
199
- HostListener('blur')
200
- ], TngRadio.prototype, "onBlur", null);
201
- __decorate([
202
- HostListener('focus')
203
- ], TngRadio.prototype, "onFocus", null);
204
- __decorate([
205
- HostListener('change')
206
- ], TngRadio.prototype, "onReadonlyChange", null);
207
- TngRadio = __decorate([
208
- Directive({
209
- selector: 'input[tngRadio]',
210
- exportAs: 'tngRadio',
211
- standalone: true,
212
- })
213
- ], TngRadio);
214
- export { TngRadio };
125
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngRadio, deps: [], target: i0.ɵɵFactoryTarget.Directive });
126
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.1", type: TngRadio, isStandalone: true, selector: "input[tngRadio]", inputs: { ariaDescribedBy: { classPropertyName: "ariaDescribedBy", publicName: "ariaDescribedBy", isSignal: true, isRequired: false, transformFunction: null }, ariaInvalid: { classPropertyName: "ariaInvalid", publicName: "ariaInvalid", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", 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 }, name: { classPropertyName: "name", publicName: "name", 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 }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "blur": "onBlur()", "focus": "onFocus()", "change": "onReadonlyChange()" }, properties: { "checked": "this.checkedProp", "attr.aria-checked": "this.ariaCheckedAttr", "attr.aria-disabled": "this.ariaDisabledAttr", "attr.aria-describedby": "this.ariaDescribedByAttr", "attr.aria-invalid": "this.ariaInvalidAttr", "attr.aria-readonly": "this.ariaReadonlyAttr", "attr.data-checked": "this.dataCheckedAttr", "attr.data-disabled": "this.dataDisabledAttr", "attr.data-focused": "this.dataFocusedAttr", "attr.data-focus-visible": "this.dataFocusVisibleAttr", "attr.data-invalid": "this.dataInvalidAttr", "attr.data-readonly": "this.dataReadonlyAttr", "attr.data-required": "this.dataRequiredAttr", "attr.data-state": "this.dataStateAttr", "attr.data-unchecked": "this.dataUncheckedAttr", "attr.disabled": "this.disabledAttr", "attr.name": "this.nameAttr", "attr.required": "this.requiredAttr", "attr.type": "this.hostTypeAttr", "attr.value": "this.valueAttr" } }, exportAs: ["tngRadio"], ngImport: i0 });
127
+ }
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngRadio, decorators: [{
129
+ type: Directive,
130
+ args: [{
131
+ selector: 'input[tngRadio]',
132
+ exportAs: 'tngRadio',
133
+ }]
134
+ }], propDecorators: { ariaDescribedBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaDescribedBy", required: false }] }], ariaInvalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaInvalid", required: false }] }], checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], checkedProp: [{
135
+ type: HostBinding,
136
+ args: ['checked']
137
+ }], ariaCheckedAttr: [{
138
+ type: HostBinding,
139
+ args: ['attr.aria-checked']
140
+ }], ariaDisabledAttr: [{
141
+ type: HostBinding,
142
+ args: ['attr.aria-disabled']
143
+ }], ariaDescribedByAttr: [{
144
+ type: HostBinding,
145
+ args: ['attr.aria-describedby']
146
+ }], ariaInvalidAttr: [{
147
+ type: HostBinding,
148
+ args: ['attr.aria-invalid']
149
+ }], ariaReadonlyAttr: [{
150
+ type: HostBinding,
151
+ args: ['attr.aria-readonly']
152
+ }], dataCheckedAttr: [{
153
+ type: HostBinding,
154
+ args: ['attr.data-checked']
155
+ }], dataDisabledAttr: [{
156
+ type: HostBinding,
157
+ args: ['attr.data-disabled']
158
+ }], dataFocusedAttr: [{
159
+ type: HostBinding,
160
+ args: ['attr.data-focused']
161
+ }], dataFocusVisibleAttr: [{
162
+ type: HostBinding,
163
+ args: ['attr.data-focus-visible']
164
+ }], dataInvalidAttr: [{
165
+ type: HostBinding,
166
+ args: ['attr.data-invalid']
167
+ }], dataReadonlyAttr: [{
168
+ type: HostBinding,
169
+ args: ['attr.data-readonly']
170
+ }], dataRequiredAttr: [{
171
+ type: HostBinding,
172
+ args: ['attr.data-required']
173
+ }], dataStateAttr: [{
174
+ type: HostBinding,
175
+ args: ['attr.data-state']
176
+ }], dataUncheckedAttr: [{
177
+ type: HostBinding,
178
+ args: ['attr.data-unchecked']
179
+ }], disabledAttr: [{
180
+ type: HostBinding,
181
+ args: ['attr.disabled']
182
+ }], nameAttr: [{
183
+ type: HostBinding,
184
+ args: ['attr.name']
185
+ }], requiredAttr: [{
186
+ type: HostBinding,
187
+ args: ['attr.required']
188
+ }], hostTypeAttr: [{
189
+ type: HostBinding,
190
+ args: ['attr.type']
191
+ }], valueAttr: [{
192
+ type: HostBinding,
193
+ args: ['attr.value']
194
+ }], onBlur: [{
195
+ type: HostListener,
196
+ args: ['blur']
197
+ }], onFocus: [{
198
+ type: HostListener,
199
+ args: ['focus']
200
+ }], onReadonlyChange: [{
201
+ type: HostListener,
202
+ args: ['change']
203
+ }] } });
215
204
  //# sourceMappingURL=tng-radio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-radio.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/radio/tng-radio.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\ntype NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;\n\nexport function normalizeTngRadioStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function coerceTngRadioNullableBoolean(value: NullableBooleanInput): boolean | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n if (value === '' || value === true || value === 'true') {\n return true;\n }\n\n if (value === false || value === 'false') {\n return false;\n }\n\n return null;\n}\n\nexport function resolveTngRadioDataState(checked: boolean): 'checked' | 'unchecked' {\n return checked ? 'checked' : 'unchecked';\n}\n\nexport function resolveTngRadioInvalidState(\n invalid: boolean | null,\n ariaInvalid: boolean | null,\n): boolean {\n if (invalid !== null) {\n return invalid;\n }\n\n if (ariaInvalid !== null) {\n return ariaInvalid;\n }\n\n return false;\n}\n\n@Directive({\n selector: 'input[tngRadio]',\n exportAs: 'tngRadio',\n standalone: true,\n})\nexport class TngRadio {\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private focused = false;\n private focusVisible = false;\n\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngRadioNullableBoolean,\n });\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngRadioNullableBoolean,\n });\n public readonly name = input<string | null>(null);\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string | null>(null);\n protected readonly typeAttr = 'radio' as const;\n\n @HostBinding('checked')\n protected get checkedProp(): boolean {\n return this.checked();\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'false' | 'true' {\n return this.checked() ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabledAttr(): 'true' | null {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedByAttr(): string | null {\n return normalizeTngRadioStringValue(this.ariaDescribedBy());\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalidAttr(): 'true' | null {\n return this.isInvalid() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-readonly')\n protected get ariaReadonlyAttr(): 'true' | null {\n return this.readonly() ? 'true' : null;\n }\n\n @HostBinding('attr.data-checked')\n protected get dataCheckedAttr(): '' | null {\n return this.checked() ? '' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisibleAttr(): '' | null {\n return this.focusVisible ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalidAttr(): '' | null {\n return this.isInvalid() ? '' : null;\n }\n\n @HostBinding('attr.data-readonly')\n protected get dataReadonlyAttr(): '' | null {\n return this.readonly() ? '' : null;\n }\n\n @HostBinding('attr.data-required')\n protected get dataRequiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'checked' | 'unchecked' {\n return resolveTngRadioDataState(this.checked());\n }\n\n @HostBinding('attr.data-unchecked')\n protected get dataUncheckedAttr(): '' | null {\n return this.checked() ? null : '';\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.name')\n protected get nameAttr(): string | null {\n return normalizeTngRadioStringValue(this.name());\n }\n\n @HostBinding('attr.required')\n protected get requiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get hostTypeAttr(): 'radio' {\n return this.typeAttr;\n }\n\n @HostBinding('attr.value')\n protected get valueAttr(): string | null {\n return normalizeTngRadioStringValue(this.value());\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.focused = false;\n this.focusVisible = false;\n }\n\n @HostListener('focus')\n public onFocus(): void {\n this.focused = true;\n this.focusVisible = this.elementRef.nativeElement.matches(':focus-visible');\n }\n\n @HostListener('change')\n public onReadonlyChange(): void {\n if (!this.readonly() || this.disabled()) {\n return;\n }\n\n this.elementRef.nativeElement.checked = this.checked();\n }\n\n private isInvalid(): boolean {\n return resolveTngRadioInvalidState(this.invalid(), this.ariaInvalid());\n }\n}\n"]}
1
+ {"version":3,"file":"tng-radio.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/radio/tng-radio.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,KAAK,GACN,MAAM,eAAe,CAAC;;AAIvB,MAAM,UAAU,4BAA4B,CAAC,KAAgC;IAC3E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAA2B;IACvE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAAuB,EACvB,WAA2B;IAE3B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAMD,MAAM,OAAO,QAAQ;IACF,UAAU,GAAG,MAAM,CAA+B,UAAU,CAAC,CAAC;IACvE,OAAO,GAAG,KAAK,CAAC;IAChB,YAAY,GAAG,KAAK,CAAC;IAEb,eAAe,GAAG,KAAK,CAAgB,IAAI,2DAAC,CAAC;IAC7C,WAAW,GAAG,KAAK,CAAuC,IAAI,wDAC5E,SAAS,EAAE,6BAA6B,GACxC,CAAC;IACa,OAAO,GAAG,KAAK,CAA4B,KAAK,oDAC9D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,QAAQ,GAAG,KAAK,CAA4B,KAAK,qDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,OAAO,GAAG,KAAK,CAAuC,IAAI,oDACxE,SAAS,EAAE,6BAA6B,GACxC,CAAC;IACa,IAAI,GAAG,KAAK,CAAgB,IAAI,gDAAC,CAAC;IAClC,QAAQ,GAAG,KAAK,CAA4B,KAAK,qDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,QAAQ,GAAG,KAAK,CAA4B,KAAK,qDAC/D,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,KAAK,GAAG,KAAK,CAAgB,IAAI,iDAAC,CAAC;IAChC,QAAQ,GAAG,OAAgB,CAAC;IAE/C,IACc,WAAW;QACvB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,IACc,eAAe;QAC3B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3C,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,IACc,mBAAmB;QAC/B,OAAO,4BAA4B,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IACc,eAAe;QAC3B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,IACc,eAAe;QAC3B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IACc,eAAe;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,IACc,oBAAoB;QAChC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC;IAED,IACc,eAAe;QAC3B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IACc,gBAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IACc,aAAa;QACzB,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IACc,iBAAiB;QAC7B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,CAAC;IAED,IACc,YAAY;QACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IACc,QAAQ;QACpB,OAAO,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IACc,YAAY;QACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAED,IACc,YAAY;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IACc,SAAS;QACrB,OAAO,4BAA4B,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAGM,MAAM;QACX,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAGM,OAAO;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC9E,CAAC;IAGM,gBAAgB;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACzD,CAAC;IAEO,SAAS;QACf,OAAO,2BAA2B,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACzE,CAAC;uGAvJU,QAAQ;2FAAR,QAAQ;;2FAAR,QAAQ;kBAJpB,SAAS;mBAAC;oBACT,QAAQ,EAAE,iBAAiB;oBAC3B,QAAQ,EAAE,UAAU;iBACrB;;sBA6BE,WAAW;uBAAC,SAAS;;sBAKrB,WAAW;uBAAC,mBAAmB;;sBAK/B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,uBAAuB;;sBAKnC,WAAW;uBAAC,mBAAmB;;sBAK/B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,mBAAmB;;sBAK/B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,mBAAmB;;sBAK/B,WAAW;uBAAC,yBAAyB;;sBAKrC,WAAW;uBAAC,mBAAmB;;sBAK/B,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,oBAAoB;;sBAKhC,WAAW;uBAAC,iBAAiB;;sBAK7B,WAAW;uBAAC,qBAAqB;;sBAKjC,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,WAAW;;sBAKvB,WAAW;uBAAC,eAAe;;sBAK3B,WAAW;uBAAC,WAAW;;sBAKvB,WAAW;uBAAC,YAAY;;sBAKxB,YAAY;uBAAC,MAAM;;sBAMnB,YAAY;uBAAC,OAAO;;sBAMpB,YAAY;uBAAC,QAAQ","sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n booleanAttribute,\n inject,\n input,\n} from '@angular/core';\n\ntype NullableBooleanInput = '' | 'false' | 'true' | boolean | null | undefined;\n\nexport function normalizeTngRadioStringValue(value: string | null | undefined): string | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function coerceTngRadioNullableBoolean(value: NullableBooleanInput): boolean | null {\n if (value === undefined || value === null) {\n return null;\n }\n\n if (value === '' || value === true || value === 'true') {\n return true;\n }\n\n if (value === false || value === 'false') {\n return false;\n }\n\n return null;\n}\n\nexport function resolveTngRadioDataState(checked: boolean): 'checked' | 'unchecked' {\n return checked ? 'checked' : 'unchecked';\n}\n\nexport function resolveTngRadioInvalidState(\n invalid: boolean | null,\n ariaInvalid: boolean | null,\n): boolean {\n if (invalid !== null) {\n return invalid;\n }\n\n if (ariaInvalid !== null) {\n return ariaInvalid;\n }\n\n return false;\n}\n\n@Directive({\n selector: 'input[tngRadio]',\n exportAs: 'tngRadio',\n})\nexport class TngRadio {\n private readonly elementRef = inject<ElementRef<HTMLInputElement>>(ElementRef);\n private focused = false;\n private focusVisible = false;\n\n public readonly ariaDescribedBy = input<string | null>(null);\n public readonly ariaInvalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngRadioNullableBoolean,\n });\n public readonly checked = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly invalid = input<boolean | null, NullableBooleanInput>(null, {\n transform: coerceTngRadioNullableBoolean,\n });\n public readonly name = input<string | null>(null);\n public readonly readonly = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly required = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly value = input<string | null>(null);\n protected readonly typeAttr = 'radio' as const;\n\n @HostBinding('checked')\n protected get checkedProp(): boolean {\n return this.checked();\n }\n\n @HostBinding('attr.aria-checked')\n protected get ariaCheckedAttr(): 'false' | 'true' {\n return this.checked() ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabledAttr(): 'true' | null {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-describedby')\n protected get ariaDescribedByAttr(): string | null {\n return normalizeTngRadioStringValue(this.ariaDescribedBy());\n }\n\n @HostBinding('attr.aria-invalid')\n protected get ariaInvalidAttr(): 'true' | null {\n return this.isInvalid() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-readonly')\n protected get ariaReadonlyAttr(): 'true' | null {\n return this.readonly() ? 'true' : null;\n }\n\n @HostBinding('attr.data-checked')\n protected get dataCheckedAttr(): '' | null {\n return this.checked() ? '' : null;\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-focused')\n protected get dataFocusedAttr(): '' | null {\n return this.focused ? '' : null;\n }\n\n @HostBinding('attr.data-focus-visible')\n protected get dataFocusVisibleAttr(): '' | null {\n return this.focusVisible ? '' : null;\n }\n\n @HostBinding('attr.data-invalid')\n protected get dataInvalidAttr(): '' | null {\n return this.isInvalid() ? '' : null;\n }\n\n @HostBinding('attr.data-readonly')\n protected get dataReadonlyAttr(): '' | null {\n return this.readonly() ? '' : null;\n }\n\n @HostBinding('attr.data-required')\n protected get dataRequiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.data-state')\n protected get dataStateAttr(): 'checked' | 'unchecked' {\n return resolveTngRadioDataState(this.checked());\n }\n\n @HostBinding('attr.data-unchecked')\n protected get dataUncheckedAttr(): '' | null {\n return this.checked() ? null : '';\n }\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.name')\n protected get nameAttr(): string | null {\n return normalizeTngRadioStringValue(this.name());\n }\n\n @HostBinding('attr.required')\n protected get requiredAttr(): '' | null {\n return this.required() ? '' : null;\n }\n\n @HostBinding('attr.type')\n protected get hostTypeAttr(): 'radio' {\n return this.typeAttr;\n }\n\n @HostBinding('attr.value')\n protected get valueAttr(): string | null {\n return normalizeTngRadioStringValue(this.value());\n }\n\n @HostListener('blur')\n public onBlur(): void {\n this.focused = false;\n this.focusVisible = false;\n }\n\n @HostListener('focus')\n public onFocus(): void {\n this.focused = true;\n this.focusVisible = this.elementRef.nativeElement.matches(':focus-visible');\n }\n\n @HostListener('change')\n public onReadonlyChange(): void {\n if (!this.readonly() || this.disabled()) {\n return;\n }\n\n this.elementRef.nativeElement.checked = this.checked();\n }\n\n private isInvalid(): boolean {\n return resolveTngRadioInvalidState(this.invalid(), this.ariaInvalid());\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { TngSelectHostApi } from '../_shared/select/tng-select.host-api';
2
2
  import { TngSelectListboxApi } from './tng-select.listbox.types';
3
+ import * as i0 from "@angular/core";
3
4
  export declare class TngSelect<T = unknown> implements TngSelectHostApi {
4
5
  readonly hostElement: any;
5
6
  readonly open: import("@angular/core").ModelSignal<boolean>;
@@ -34,5 +35,7 @@ export declare class TngSelect<T = unknown> implements TngSelectHostApi {
34
35
  selectValue(value: T): void;
35
36
  setListboxApi(api: TngSelectListboxApi<T> | null): void;
36
37
  getListboxApi(): TngSelectListboxApi<T> | null;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngSelect<any>, never>;
39
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngSelect<any>, "[tngSelect]", ["tngSelect"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "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; }; }, { "open": "openChange"; "value": "valueChange"; }, never, never, true, never>;
37
40
  }
38
41
  //# sourceMappingURL=tng-select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-select.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,qBASa,SAAS,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,gBAAgB;IAC7D,QAAQ,CAAC,WAAW,MAAiD;IACrE,SAAgB,IAAI,+CAAyB;IAC7C,SAAgB,QAAQ,+CAAyB;IACjD,wDAAwD;IACxD,SAAgB,KAAK,gDAAyB;IAE9C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAuC;IAE1D,SAAgB,OAAO,+CAAyB;IAChD,SAAgB,OAAO,+CAAyB;IAChD,SAAgB,OAAO,qDAA8B;IACrD,SAAgB,aAAa,qDAA8B;IAC3D,SAAgB,OAAO,qDAA8B;IAGrD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAY;IAGjD,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,+DAA+D;IAC/D,SAAgB,QAAQ,QAAO,OAAO,CAAU;IAEzC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAGrC,YAAY,IAAI,MAAM,GAAG,IAAI;IAG7B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAGrC,YAAY,IAAI,MAAM,GAAG,IAAI;IAG7B,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAG9C,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAItC,UAAU,IAAI,IAAI;IAIlB,KAAK,IAAI,IAAI;IAGb,MAAM,IAAI,IAAI;IAKd,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAM3B,aAAa,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;IAGvD,aAAa,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;CAGtD"}
1
+ {"version":3,"file":"tng-select.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;;AAEjE,qBAQa,SAAS,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,gBAAgB;IAC7D,QAAQ,CAAC,WAAW,MAAiD;IACrE,SAAgB,IAAI,+CAAyB;IAC7C,SAAgB,QAAQ,+CAAyB;IACjD,wDAAwD;IACxD,SAAgB,KAAK,gDAAyB;IAE9C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAuC;IAE1D,SAAgB,OAAO,+CAAyB;IAChD,SAAgB,OAAO,+CAAyB;IAChD,SAAgB,OAAO,qDAA8B;IACrD,SAAgB,aAAa,qDAA8B;IAC3D,SAAgB,OAAO,qDAA8B;IAGrD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAY;IAGjD,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,+DAA+D;IAC/D,SAAgB,QAAQ,QAAO,OAAO,CAAU;IAEzC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAGrC,YAAY,IAAI,MAAM,GAAG,IAAI;IAG7B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAGrC,YAAY,IAAI,MAAM,GAAG,IAAI;IAG7B,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAG9C,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAItC,UAAU,IAAI,IAAI;IAIlB,KAAK,IAAI,IAAI;IAGb,MAAM,IAAI,IAAI;IAKd,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAM3B,aAAa,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;IAGvD,aAAa,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;yCApF1C,SAAS;2CAAT,SAAS;CAuFrB"}
@@ -1,22 +1,22 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, ElementRef, HostBinding, inject, input, model } from '@angular/core';
3
2
  import { TNG_SELECT } from './tng-select.tokens';
4
3
  import { TNG_SELECT_HOST } from '../_shared/select/tng-select.tokens.shared';
5
- let TngSelect = class TngSelect {
4
+ import * as i0 from "@angular/core";
5
+ export class TngSelect {
6
6
  hostElement = inject((ElementRef)).nativeElement;
7
- open = model(false);
8
- disabled = input(false);
7
+ open = model(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
8
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
9
9
  /** Value of the selected option. Single-select only. */
10
- value = model(null);
10
+ value = model(null, ...(ngDevMode ? [{ debugName: "value" }] : []));
11
11
  _contentId = null;
12
12
  _listboxId = null;
13
13
  _activeId = null;
14
14
  _listboxApi = null;
15
- loading = input(false);
16
- invalid = input(false);
17
- labelId = input(null);
18
- descriptionId = input(null);
19
- errorId = input(null);
15
+ loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
16
+ invalid = input(false, ...(ngDevMode ? [{ debugName: "invalid" }] : []));
17
+ labelId = input(null, ...(ngDevMode ? [{ debugName: "labelId" }] : []));
18
+ descriptionId = input(null, ...(ngDevMode ? [{ debugName: "descriptionId" }] : []));
19
+ errorId = input(null, ...(ngDevMode ? [{ debugName: "errorId" }] : []));
20
20
  dataSlot = 'select';
21
21
  get dataState() {
22
22
  return this.open() ? 'open' : 'closed';
@@ -75,32 +75,36 @@ let TngSelect = class TngSelect {
75
75
  getListboxApi() {
76
76
  return this._listboxApi;
77
77
  }
78
- };
79
- __decorate([
80
- HostBinding('attr.data-slot')
81
- ], TngSelect.prototype, "dataSlot", void 0);
82
- __decorate([
83
- HostBinding('attr.data-state')
84
- ], TngSelect.prototype, "dataState", null);
85
- __decorate([
86
- HostBinding('attr.data-disabled')
87
- ], TngSelect.prototype, "dataDisabled", null);
88
- __decorate([
89
- HostBinding('attr.data-loading')
90
- ], TngSelect.prototype, "dataLoading", null);
91
- __decorate([
92
- HostBinding('attr.data-invalid')
93
- ], TngSelect.prototype, "dataInvalid", null);
94
- TngSelect = __decorate([
95
- Directive({
96
- selector: '[tngSelect]',
97
- exportAs: 'tngSelect',
98
- standalone: true,
99
- providers: [
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelect, deps: [], target: i0.ɵɵFactoryTarget.Directive });
79
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.1", type: TngSelect, isStandalone: true, selector: "[tngSelect]", 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 }, 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 } }, outputs: { open: "openChange", value: "valueChange" }, 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: [
100
80
  { provide: TNG_SELECT, useExisting: TngSelect },
101
81
  { provide: TNG_SELECT_HOST, useExisting: TngSelect },
102
- ],
103
- })
104
- ], TngSelect);
105
- export { TngSelect };
82
+ ], exportAs: ["tngSelect"], ngImport: i0 });
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelect, decorators: [{
85
+ type: Directive,
86
+ args: [{
87
+ selector: '[tngSelect]',
88
+ exportAs: 'tngSelect',
89
+ providers: [
90
+ { provide: TNG_SELECT, useExisting: TngSelect },
91
+ { provide: TNG_SELECT_HOST, useExisting: TngSelect },
92
+ ],
93
+ }]
94
+ }], 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"] }], 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 }] }], dataSlot: [{
95
+ type: HostBinding,
96
+ args: ['attr.data-slot']
97
+ }], dataState: [{
98
+ type: HostBinding,
99
+ args: ['attr.data-state']
100
+ }], dataDisabled: [{
101
+ type: HostBinding,
102
+ args: ['attr.data-disabled']
103
+ }], dataLoading: [{
104
+ type: HostBinding,
105
+ args: ['attr.data-loading']
106
+ }], dataInvalid: [{
107
+ type: HostBinding,
108
+ args: ['attr.data-invalid']
109
+ }] } });
106
110
  //# sourceMappingURL=tng-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-select.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, ElementRef, HostBinding, inject, input, model } from '@angular/core';\nimport { TNG_SELECT } from './tng-select.tokens';\nimport { TNG_SELECT_HOST } from '../_shared/select/tng-select.tokens.shared';\nimport type { TngSelectHostApi } from '../_shared/select/tng-select.host-api';\nimport { TngSelectListboxApi } from './tng-select.listbox.types';\n\n@Directive({\n selector: '[tngSelect]',\n exportAs: 'tngSelect',\n standalone: true,\n providers: [\n { provide: TNG_SELECT, useExisting: TngSelect },\n { provide: TNG_SELECT_HOST, useExisting: TngSelect },\n ],\n})\nexport class TngSelect<T = unknown> implements TngSelectHostApi {\n readonly hostElement = inject(ElementRef<HTMLElement>).nativeElement;\n public readonly open = model<boolean>(false);\n public readonly disabled = input<boolean>(false);\n /** Value of the selected option. Single-select only. */\n public readonly value = model<T | null>(null);\n\n private _contentId: string | null = null;\n private _listboxId: string | null = null;\n private _activeId: string | null = null;\n private _listboxApi: TngSelectListboxApi<T> | null = null;\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 @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select' = 'select';\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 /** Single-select: always false. Satisfies TngSelectHostApi. */\n public readonly multiple = (): boolean => false;\n\n public setContentId(id: string | null): void {\n this._contentId = id;\n }\n public getContentId(): string | null {\n return this._contentId;\n }\n public setListboxId(id: string | null): void {\n this._listboxId = id;\n }\n public getListboxId(): string | null {\n return this._listboxId;\n }\n public setActiveDescendantId(id: string | null): void {\n this._activeId = id;\n }\n public getActiveDescendantId(): string | null {\n return this._activeId;\n }\n\n public openSelect(): void {\n if (this.disabled()) return;\n this.open.set(true);\n }\n public close(): void {\n this.open.set(false);\n }\n public toggle(): void {\n if (this.disabled()) return;\n this.open.set(!this.open());\n }\n\n public selectValue(value: T): void {\n if (this.disabled()) return;\n this.value.set(value);\n this.close();\n }\n\n public setListboxApi(api: TngSelectListboxApi<T> | null): void {\n this._listboxApi = api;\n }\n public getListboxApi(): TngSelectListboxApi<T> | null {\n return this._listboxApi;\n }\n}\n"]}
1
+ {"version":3,"file":"tng-select.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, ElementRef, HostBinding, inject, input, model } from '@angular/core';\nimport { TNG_SELECT } from './tng-select.tokens';\nimport { TNG_SELECT_HOST } from '../_shared/select/tng-select.tokens.shared';\nimport type { TngSelectHostApi } from '../_shared/select/tng-select.host-api';\nimport { TngSelectListboxApi } from './tng-select.listbox.types';\n\n@Directive({\n selector: '[tngSelect]',\n exportAs: 'tngSelect',\n providers: [\n { provide: TNG_SELECT, useExisting: TngSelect },\n { provide: TNG_SELECT_HOST, useExisting: TngSelect },\n ],\n})\nexport class TngSelect<T = unknown> implements TngSelectHostApi {\n readonly hostElement = inject(ElementRef<HTMLElement>).nativeElement;\n public readonly open = model<boolean>(false);\n public readonly disabled = input<boolean>(false);\n /** Value of the selected option. Single-select only. */\n public readonly value = model<T | null>(null);\n\n private _contentId: string | null = null;\n private _listboxId: string | null = null;\n private _activeId: string | null = null;\n private _listboxApi: TngSelectListboxApi<T> | null = null;\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 @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select' = 'select';\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 /** Single-select: always false. Satisfies TngSelectHostApi. */\n public readonly multiple = (): boolean => false;\n\n public setContentId(id: string | null): void {\n this._contentId = id;\n }\n public getContentId(): string | null {\n return this._contentId;\n }\n public setListboxId(id: string | null): void {\n this._listboxId = id;\n }\n public getListboxId(): string | null {\n return this._listboxId;\n }\n public setActiveDescendantId(id: string | null): void {\n this._activeId = id;\n }\n public getActiveDescendantId(): string | null {\n return this._activeId;\n }\n\n public openSelect(): void {\n if (this.disabled()) return;\n this.open.set(true);\n }\n public close(): void {\n this.open.set(false);\n }\n public toggle(): void {\n if (this.disabled()) return;\n this.open.set(!this.open());\n }\n\n public selectValue(value: T): void {\n if (this.disabled()) return;\n this.value.set(value);\n this.close();\n }\n\n public setListboxApi(api: TngSelectListboxApi<T> | null): void {\n this._listboxApi = api;\n }\n public getListboxApi(): TngSelectListboxApi<T> | null {\n return this._listboxApi;\n }\n}\n"]}
@@ -1,4 +1,6 @@
1
1
  import { TngSelectListboxApi } from './tng-select.listbox.types';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@tailng-ui/primitives";
2
4
  export declare class TngSelectListbox<T = unknown> implements TngSelectListboxApi<T> {
3
5
  private readonly select;
4
6
  private readonly destroyRef;
@@ -13,8 +15,12 @@ export declare class TngSelectListbox<T = unknown> implements TngSelectListboxAp
13
15
  typeahead(key: string): boolean;
14
16
  commitActive(): void;
15
17
  protected onListboxValueChange(value: T | readonly T[] | null): void;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngSelectListbox<any>, never>;
19
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngSelectListbox<any>, "[tngSelectListbox]", never, {}, {}, never, never, true, [{ directive: typeof i1.TngListboxDirective; inputs: { "orientation": "orientation"; "direction": "direction"; "disabled": "disabled"; "loop": "loop"; "value": "value"; }; outputs: { "valueChange": "valueChange"; }; }]>;
16
20
  }
17
21
  export declare class TngSelectOption<T> {
18
22
  protected readonly dataSlot: 'select-option';
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngSelectOption<any>, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngSelectOption<any>, "[tngSelectOption]", never, {}, {}, never, never, true, [{ directive: typeof i1.TngOptionDirective; inputs: { "tngValue": "tngValue"; "disabled": "disabled"; }; outputs: {}; }]>;
19
25
  }
20
26
  //# sourceMappingURL=tng-select.listbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-select.listbox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.listbox.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAIjE,qBAYa,gBAAgB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAG1E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAoB;IAGjE,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAqB;;IA6B1C,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,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI/B,YAAY,IAAI,IAAI;IAOpB,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI;CAwBrE;AAED,qBAUa,eAAe,CAAC,CAAC;IAE5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAmB;CAChE"}
1
+ {"version":3,"file":"tng-select.listbox.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.listbox.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;;;AAIjE,qBAWa,gBAAgB,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkD;IAG1E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAoB;IAGjE,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAqB;;IA6B1C,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,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI/B,YAAY,IAAI,IAAI;IAOpB,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI,GAAG,IAAI;yCAjEzD,gBAAgB;2CAAhB,gBAAgB;CAyF5B;AAED,qBASa,eAAe,CAAC,CAAC;IAE5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAmB;yCAFpD,eAAe;2CAAf,eAAe;CAG3B"}
@@ -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 { normalizeToSingle } from '../../internal/combobox';
5
4
  import { TngListboxDirective, TngOptionDirective } from '@tailng-ui/primitives';
6
5
  import { TNG_SELECT } from './tng-select.tokens';
7
6
  import { TNG_SELECT_LISTBOX } from './tng-select.listbox.tokens';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@tailng-ui/primitives";
8
9
  const createListboxId = createTngIdFactory('tng-select-listbox');
9
- let TngSelectListbox = class TngSelectListbox {
10
+ export class TngSelectListbox {
10
11
  select = inject(TNG_SELECT);
11
12
  destroyRef = inject(DestroyRef);
12
13
  listbox = inject((TngListboxDirective), { self: true });
@@ -76,48 +77,50 @@ let TngSelectListbox = class TngSelectListbox {
76
77
  }
77
78
  this.select.selectValue(next);
78
79
  }
79
- };
80
- __decorate([
81
- HostBinding('attr.data-slot')
82
- ], TngSelectListbox.prototype, "dataSlot", void 0);
83
- __decorate([
84
- HostBinding('attr.id')
85
- ], TngSelectListbox.prototype, "id", void 0);
86
- __decorate([
87
- HostListener('valueChange', ['$event'])
88
- ], TngSelectListbox.prototype, "onListboxValueChange", null);
89
- TngSelectListbox = __decorate([
90
- Directive({
91
- selector: '[tngSelectListbox]',
92
- standalone: true,
93
- providers: [{ provide: TNG_SELECT_LISTBOX, useExisting: TngSelectListbox }],
94
- hostDirectives: [
95
- {
96
- directive: TngListboxDirective,
97
- inputs: ['orientation', 'direction', 'disabled', 'loop', 'value'],
98
- outputs: ['valueChange'],
99
- },
100
- ],
101
- })
102
- ], TngSelectListbox);
103
- export { TngSelectListbox };
104
- let TngSelectOption = class TngSelectOption {
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectListbox, deps: [], target: i0.ɵɵFactoryTarget.Directive });
81
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngSelectListbox, isStandalone: true, selector: "[tngSelectListbox]", host: { listeners: { "valueChange": "onListboxValueChange($event)" }, properties: { "attr.data-slot": "this.dataSlot", "attr.id": "this.id" } }, providers: [{ provide: TNG_SELECT_LISTBOX, useExisting: TngSelectListbox }], 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: TngSelectListbox, decorators: [{
84
+ type: Directive,
85
+ args: [{
86
+ selector: '[tngSelectListbox]',
87
+ providers: [{ provide: TNG_SELECT_LISTBOX, useExisting: TngSelectListbox }],
88
+ hostDirectives: [
89
+ {
90
+ directive: TngListboxDirective,
91
+ inputs: ['orientation', 'direction', 'disabled', 'loop', 'value'],
92
+ outputs: ['valueChange'],
93
+ },
94
+ ],
95
+ }]
96
+ }], ctorParameters: () => [], propDecorators: { dataSlot: [{
97
+ type: HostBinding,
98
+ args: ['attr.data-slot']
99
+ }], id: [{
100
+ type: HostBinding,
101
+ args: ['attr.id']
102
+ }], onListboxValueChange: [{
103
+ type: HostListener,
104
+ args: ['valueChange', ['$event']]
105
+ }] } });
106
+ export class TngSelectOption {
105
107
  dataSlot = 'select-option';
106
- };
107
- __decorate([
108
- HostBinding('attr.data-slot')
109
- ], TngSelectOption.prototype, "dataSlot", void 0);
110
- TngSelectOption = __decorate([
111
- Directive({
112
- selector: '[tngSelectOption]',
113
- standalone: true,
114
- hostDirectives: [
115
- {
116
- directive: TngOptionDirective,
117
- inputs: ['tngValue', 'disabled'],
118
- },
119
- ],
120
- })
121
- ], TngSelectOption);
122
- export { TngSelectOption };
108
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectOption, deps: [], target: i0.ɵɵFactoryTarget.Directive });
109
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngSelectOption, isStandalone: true, selector: "[tngSelectOption]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, hostDirectives: [{ directive: i1.TngOptionDirective, inputs: ["tngValue", "tngValue", "disabled", "disabled"] }], ngImport: i0 });
110
+ }
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSelectOption, decorators: [{
112
+ type: Directive,
113
+ args: [{
114
+ selector: '[tngSelectOption]',
115
+ hostDirectives: [
116
+ {
117
+ directive: TngOptionDirective,
118
+ inputs: ['tngValue', 'disabled'],
119
+ },
120
+ ],
121
+ }]
122
+ }], propDecorators: { dataSlot: [{
123
+ type: HostBinding,
124
+ args: ['attr.data-slot']
125
+ }] } });
123
126
  //# sourceMappingURL=tng-select.listbox.js.map