@tailng-ui/primitives 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/README.md +36 -0
  2. package/package.json +13 -0
  3. package/src/index.d.ts +55 -0
  4. package/src/index.d.ts.map +1 -0
  5. package/src/index.js +61 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/feedback/empty/tng-empty.d.ts +16 -0
  8. package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -0
  9. package/src/lib/feedback/empty/tng-empty.js +68 -0
  10. package/src/lib/feedback/empty/tng-empty.js.map +1 -0
  11. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts +24 -0
  12. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -0
  13. package/src/lib/feedback/progress-bar/tng-progress-bar.js +100 -0
  14. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -0
  15. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts +21 -0
  16. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -0
  17. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +87 -0
  18. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -0
  19. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +11 -0
  20. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -0
  21. package/src/lib/feedback/skeleton/tng-skeleton.js +44 -0
  22. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -0
  23. package/src/lib/feedback/toast/tng-toast.d.ts +20 -0
  24. package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -0
  25. package/src/lib/feedback/toast/tng-toast.js +79 -0
  26. package/src/lib/feedback/toast/tng-toast.js.map +1 -0
  27. package/src/lib/form/_shared/id/index.d.ts +4 -0
  28. package/src/lib/form/_shared/id/index.d.ts.map +1 -0
  29. package/src/lib/form/_shared/id/index.js +4 -0
  30. package/src/lib/form/_shared/id/index.js.map +1 -0
  31. package/src/lib/form/_shared/id/tng-unique-id.provider.d.ts +11 -0
  32. package/src/lib/form/_shared/id/tng-unique-id.provider.d.ts.map +1 -0
  33. package/src/lib/form/_shared/id/tng-unique-id.provider.js +15 -0
  34. package/src/lib/form/_shared/id/tng-unique-id.provider.js.map +1 -0
  35. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts +9 -0
  36. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts.map +1 -0
  37. package/src/lib/form/_shared/id/tng-unique-id.service.js +18 -0
  38. package/src/lib/form/_shared/id/tng-unique-id.service.js.map +1 -0
  39. package/src/lib/form/_shared/id/tng-unique-id.token.d.ts +8 -0
  40. package/src/lib/form/_shared/id/tng-unique-id.token.d.ts.map +1 -0
  41. package/src/lib/form/_shared/id/tng-unique-id.token.js +13 -0
  42. package/src/lib/form/_shared/id/tng-unique-id.token.js.map +1 -0
  43. package/src/lib/form/_shared/select/tng-select.host-api.d.ts +28 -0
  44. package/src/lib/form/_shared/select/tng-select.host-api.d.ts.map +1 -0
  45. package/src/lib/form/_shared/select/tng-select.host-api.js +1 -0
  46. package/src/lib/form/_shared/select/tng-select.host-api.js.map +1 -0
  47. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts +38 -0
  48. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -0
  49. package/src/lib/form/_shared/select/tng-select.overlay.shared.js +226 -0
  50. package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -0
  51. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts +35 -0
  52. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts.map +1 -0
  53. package/src/lib/form/_shared/select/tng-select.parts.shared.js +199 -0
  54. package/src/lib/form/_shared/select/tng-select.parts.shared.js.map +1 -0
  55. package/src/lib/form/_shared/select/tng-select.tokens.shared.d.ts +8 -0
  56. package/src/lib/form/_shared/select/tng-select.tokens.shared.d.ts.map +1 -0
  57. package/src/lib/form/_shared/select/tng-select.tokens.shared.js +7 -0
  58. package/src/lib/form/_shared/select/tng-select.tokens.shared.js.map +1 -0
  59. package/src/lib/form/autocomplete/index.d.ts +7 -0
  60. package/src/lib/form/autocomplete/index.d.ts.map +1 -0
  61. package/src/lib/form/autocomplete/index.js +6 -0
  62. package/src/lib/form/autocomplete/index.js.map +1 -0
  63. package/src/lib/form/autocomplete/tng-autocomplete.d.ts +52 -0
  64. package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -0
  65. package/src/lib/form/autocomplete/tng-autocomplete.js +95 -0
  66. package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -0
  67. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts +19 -0
  68. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -0
  69. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +123 -0
  70. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -0
  71. package/src/lib/form/autocomplete/tng-autocomplete.listbox.tokens.d.ts +4 -0
  72. package/src/lib/form/autocomplete/tng-autocomplete.listbox.tokens.d.ts.map +1 -0
  73. package/src/lib/form/autocomplete/tng-autocomplete.listbox.tokens.js +3 -0
  74. package/src/lib/form/autocomplete/tng-autocomplete.listbox.tokens.js.map +1 -0
  75. package/src/lib/form/autocomplete/tng-autocomplete.listbox.types.d.ts +4 -0
  76. package/src/lib/form/autocomplete/tng-autocomplete.listbox.types.d.ts.map +1 -0
  77. package/src/lib/form/autocomplete/tng-autocomplete.listbox.types.js +1 -0
  78. package/src/lib/form/autocomplete/tng-autocomplete.listbox.types.js.map +1 -0
  79. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts +40 -0
  80. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -0
  81. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +236 -0
  82. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -0
  83. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts +38 -0
  84. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts.map +1 -0
  85. package/src/lib/form/autocomplete/tng-autocomplete.parts.js +252 -0
  86. package/src/lib/form/autocomplete/tng-autocomplete.parts.js.map +1 -0
  87. package/src/lib/form/autocomplete/tng-autocomplete.tokens.d.ts +4 -0
  88. package/src/lib/form/autocomplete/tng-autocomplete.tokens.d.ts.map +1 -0
  89. package/src/lib/form/autocomplete/tng-autocomplete.tokens.js +3 -0
  90. package/src/lib/form/autocomplete/tng-autocomplete.tokens.js.map +1 -0
  91. package/src/lib/form/button-toggle/tng-button-toggle.d.ts +164 -0
  92. package/src/lib/form/button-toggle/tng-button-toggle.d.ts.map +1 -0
  93. package/src/lib/form/button-toggle/tng-button-toggle.js +1097 -0
  94. package/src/lib/form/button-toggle/tng-button-toggle.js.map +1 -0
  95. package/src/lib/form/checkbox/tng-checkbox.d.ts +48 -0
  96. package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -0
  97. package/src/lib/form/checkbox/tng-checkbox.js +234 -0
  98. package/src/lib/form/checkbox/tng-checkbox.js.map +1 -0
  99. package/src/lib/form/chips/tng-chips.d.ts +4 -0
  100. package/src/lib/form/chips/tng-chips.d.ts.map +1 -0
  101. package/src/lib/form/chips/tng-chips.js +16 -0
  102. package/src/lib/form/chips/tng-chips.js.map +1 -0
  103. package/src/lib/form/combobox/tng-combobox.d.ts +4 -0
  104. package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -0
  105. package/src/lib/form/combobox/tng-combobox.js +16 -0
  106. package/src/lib/form/combobox/tng-combobox.js.map +1 -0
  107. package/src/lib/form/input/tng-input.d.ts +87 -0
  108. package/src/lib/form/input/tng-input.d.ts.map +1 -0
  109. package/src/lib/form/input/tng-input.js +393 -0
  110. package/src/lib/form/input/tng-input.js.map +1 -0
  111. package/src/lib/form/input-otp/tng-input-otp.d.ts +7 -0
  112. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -0
  113. package/src/lib/form/input-otp/tng-input-otp.js +33 -0
  114. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -0
  115. package/src/lib/form/label/tng-label.d.ts +6 -0
  116. package/src/lib/form/label/tng-label.d.ts.map +1 -0
  117. package/src/lib/form/label/tng-label.js +25 -0
  118. package/src/lib/form/label/tng-label.js.map +1 -0
  119. package/src/lib/form/listbox/listbox.directive.d.ts +51 -0
  120. package/src/lib/form/listbox/listbox.directive.d.ts.map +1 -0
  121. package/src/lib/form/listbox/listbox.directive.js +439 -0
  122. package/src/lib/form/listbox/listbox.directive.js.map +1 -0
  123. package/src/lib/form/listbox/option.directive.d.ts +22 -0
  124. package/src/lib/form/listbox/option.directive.d.ts.map +1 -0
  125. package/src/lib/form/listbox/option.directive.js +109 -0
  126. package/src/lib/form/listbox/option.directive.js.map +1 -0
  127. package/src/lib/form/listbox/tokens.d.ts +14 -0
  128. package/src/lib/form/listbox/tokens.d.ts.map +1 -0
  129. package/src/lib/form/listbox/tokens.js +13 -0
  130. package/src/lib/form/listbox/tokens.js.map +1 -0
  131. package/src/lib/form/multi-autocomplete/index.d.ts +10 -0
  132. package/src/lib/form/multi-autocomplete/index.d.ts.map +1 -0
  133. package/src/lib/form/multi-autocomplete/index.js +10 -0
  134. package/src/lib/form/multi-autocomplete/index.js.map +1 -0
  135. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts +11 -0
  136. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts.map +1 -0
  137. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js +98 -0
  138. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js.map +1 -0
  139. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts +10 -0
  140. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts.map +1 -0
  141. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js +45 -0
  142. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js.map +1 -0
  143. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts +43 -0
  144. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts.map +1 -0
  145. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js +150 -0
  146. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js.map +1 -0
  147. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts +20 -0
  148. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts.map +1 -0
  149. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js +138 -0
  150. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js.map +1 -0
  151. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.tokens.d.ts +4 -0
  152. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.tokens.d.ts.map +1 -0
  153. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.tokens.js +3 -0
  154. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.tokens.js.map +1 -0
  155. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.types.d.ts +18 -0
  156. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.types.d.ts.map +1 -0
  157. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.types.js +2 -0
  158. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.types.js.map +1 -0
  159. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts +4 -0
  160. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -0
  161. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +17 -0
  162. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -0
  163. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.tokens.d.ts +4 -0
  164. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.tokens.d.ts.map +1 -0
  165. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.tokens.js +3 -0
  166. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.tokens.js.map +1 -0
  167. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +21 -0
  168. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -0
  169. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +241 -0
  170. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -0
  171. package/src/lib/form/multi-select/index.d.ts +7 -0
  172. package/src/lib/form/multi-select/index.d.ts.map +1 -0
  173. package/src/lib/form/multi-select/index.js +6 -0
  174. package/src/lib/form/multi-select/index.js.map +1 -0
  175. package/src/lib/form/multi-select/tng-multi-select.d.ts +45 -0
  176. package/src/lib/form/multi-select/tng-multi-select.d.ts.map +1 -0
  177. package/src/lib/form/multi-select/tng-multi-select.js +136 -0
  178. package/src/lib/form/multi-select/tng-multi-select.js.map +1 -0
  179. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts +21 -0
  180. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts.map +1 -0
  181. package/src/lib/form/multi-select/tng-multi-select.listbox.js +107 -0
  182. package/src/lib/form/multi-select/tng-multi-select.listbox.js.map +1 -0
  183. package/src/lib/form/multi-select/tng-multi-select.listbox.tokens.d.ts +3 -0
  184. package/src/lib/form/multi-select/tng-multi-select.listbox.tokens.d.ts.map +1 -0
  185. package/src/lib/form/multi-select/tng-multi-select.listbox.tokens.js +3 -0
  186. package/src/lib/form/multi-select/tng-multi-select.listbox.tokens.js.map +1 -0
  187. package/src/lib/form/multi-select/tng-multi-select.listbox.types.d.ts +3 -0
  188. package/src/lib/form/multi-select/tng-multi-select.listbox.types.d.ts.map +1 -0
  189. package/src/lib/form/multi-select/tng-multi-select.listbox.types.js +1 -0
  190. package/src/lib/form/multi-select/tng-multi-select.listbox.types.js.map +1 -0
  191. package/src/lib/form/multi-select/tng-multi-select.overlay.d.ts +5 -0
  192. package/src/lib/form/multi-select/tng-multi-select.overlay.d.ts.map +1 -0
  193. package/src/lib/form/multi-select/tng-multi-select.overlay.js +5 -0
  194. package/src/lib/form/multi-select/tng-multi-select.overlay.js.map +1 -0
  195. package/src/lib/form/multi-select/tng-multi-select.parts.d.ts +5 -0
  196. package/src/lib/form/multi-select/tng-multi-select.parts.d.ts.map +1 -0
  197. package/src/lib/form/multi-select/tng-multi-select.parts.js +5 -0
  198. package/src/lib/form/multi-select/tng-multi-select.parts.js.map +1 -0
  199. package/src/lib/form/multi-select/tng-multi-select.tokens.d.ts +4 -0
  200. package/src/lib/form/multi-select/tng-multi-select.tokens.d.ts.map +1 -0
  201. package/src/lib/form/multi-select/tng-multi-select.tokens.js +3 -0
  202. package/src/lib/form/multi-select/tng-multi-select.tokens.js.map +1 -0
  203. package/src/lib/form/multiselect/tng-multiselect.d.ts +4 -0
  204. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -0
  205. package/src/lib/form/multiselect/tng-multiselect.js +16 -0
  206. package/src/lib/form/multiselect/tng-multiselect.js.map +1 -0
  207. package/src/lib/form/radio/tng-radio.d.ts +20 -0
  208. package/src/lib/form/radio/tng-radio.d.ts.map +1 -0
  209. package/src/lib/form/radio/tng-radio.js +86 -0
  210. package/src/lib/form/radio/tng-radio.js.map +1 -0
  211. package/src/lib/form/select/tng-select.d.ts +38 -0
  212. package/src/lib/form/select/tng-select.d.ts.map +1 -0
  213. package/src/lib/form/select/tng-select.js +106 -0
  214. package/src/lib/form/select/tng-select.js.map +1 -0
  215. package/src/lib/form/select/tng-select.listbox.d.ts +20 -0
  216. package/src/lib/form/select/tng-select.listbox.d.ts.map +1 -0
  217. package/src/lib/form/select/tng-select.listbox.js +123 -0
  218. package/src/lib/form/select/tng-select.listbox.js.map +1 -0
  219. package/src/lib/form/select/tng-select.listbox.tokens.d.ts +3 -0
  220. package/src/lib/form/select/tng-select.listbox.tokens.d.ts.map +1 -0
  221. package/src/lib/form/select/tng-select.listbox.tokens.js +3 -0
  222. package/src/lib/form/select/tng-select.listbox.tokens.js.map +1 -0
  223. package/src/lib/form/select/tng-select.listbox.types.d.ts +4 -0
  224. package/src/lib/form/select/tng-select.listbox.types.d.ts.map +1 -0
  225. package/src/lib/form/select/tng-select.listbox.types.js +1 -0
  226. package/src/lib/form/select/tng-select.listbox.types.js.map +1 -0
  227. package/src/lib/form/select/tng-select.overlay.d.ts +5 -0
  228. package/src/lib/form/select/tng-select.overlay.d.ts.map +1 -0
  229. package/src/lib/form/select/tng-select.overlay.js +5 -0
  230. package/src/lib/form/select/tng-select.overlay.js.map +1 -0
  231. package/src/lib/form/select/tng-select.parts.d.ts +5 -0
  232. package/src/lib/form/select/tng-select.parts.d.ts.map +1 -0
  233. package/src/lib/form/select/tng-select.parts.js +5 -0
  234. package/src/lib/form/select/tng-select.parts.js.map +1 -0
  235. package/src/lib/form/select/tng-select.tokens.d.ts +4 -0
  236. package/src/lib/form/select/tng-select.tokens.d.ts.map +1 -0
  237. package/src/lib/form/select/tng-select.tokens.js +3 -0
  238. package/src/lib/form/select/tng-select.tokens.js.map +1 -0
  239. package/src/lib/form/slider/tng-slider.d.ts +19 -0
  240. package/src/lib/form/slider/tng-slider.d.ts.map +1 -0
  241. package/src/lib/form/slider/tng-slider.js +84 -0
  242. package/src/lib/form/slider/tng-slider.js.map +1 -0
  243. package/src/lib/form/switch/tng-switch.d.ts +19 -0
  244. package/src/lib/form/switch/tng-switch.d.ts.map +1 -0
  245. package/src/lib/form/switch/tng-switch.js +79 -0
  246. package/src/lib/form/switch/tng-switch.js.map +1 -0
  247. package/src/lib/form/textarea/tng-textarea.d.ts +23 -0
  248. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -0
  249. package/src/lib/form/textarea/tng-textarea.js +119 -0
  250. package/src/lib/form/textarea/tng-textarea.js.map +1 -0
  251. package/src/lib/form/toggle/tng-toggle.d.ts +44 -0
  252. package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -0
  253. package/src/lib/form/toggle/tng-toggle.js +203 -0
  254. package/src/lib/form/toggle/tng-toggle.js.map +1 -0
  255. package/src/lib/form/toggle-group/tng-toggle-group.d.ts +35 -0
  256. package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -0
  257. package/src/lib/form/toggle-group/tng-toggle-group.js +156 -0
  258. package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -0
  259. package/src/lib/internal/combobox/combobox.active.d.ts +17 -0
  260. package/src/lib/internal/combobox/combobox.active.d.ts.map +1 -0
  261. package/src/lib/internal/combobox/combobox.active.js +19 -0
  262. package/src/lib/internal/combobox/combobox.active.js.map +1 -0
  263. package/src/lib/internal/combobox/combobox.commit.d.ts +20 -0
  264. package/src/lib/internal/combobox/combobox.commit.d.ts.map +1 -0
  265. package/src/lib/internal/combobox/combobox.commit.js +34 -0
  266. package/src/lib/internal/combobox/combobox.commit.js.map +1 -0
  267. package/src/lib/internal/combobox/combobox.keyboard.d.ts +39 -0
  268. package/src/lib/internal/combobox/combobox.keyboard.d.ts.map +1 -0
  269. package/src/lib/internal/combobox/combobox.keyboard.js +88 -0
  270. package/src/lib/internal/combobox/combobox.keyboard.js.map +1 -0
  271. package/src/lib/internal/combobox/combobox.listbox-api.d.ts +19 -0
  272. package/src/lib/internal/combobox/combobox.listbox-api.d.ts.map +1 -0
  273. package/src/lib/internal/combobox/combobox.listbox-api.js +5 -0
  274. package/src/lib/internal/combobox/combobox.listbox-api.js.map +1 -0
  275. package/src/lib/internal/combobox/index.d.ts +5 -0
  276. package/src/lib/internal/combobox/index.d.ts.map +1 -0
  277. package/src/lib/internal/combobox/index.js +4 -0
  278. package/src/lib/internal/combobox/index.js.map +1 -0
  279. package/src/lib/layout/accordion/tng-accordion.d.ts +150 -0
  280. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -0
  281. package/src/lib/layout/accordion/tng-accordion.js +852 -0
  282. package/src/lib/layout/accordion/tng-accordion.js.map +1 -0
  283. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts +4 -0
  284. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -0
  285. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +16 -0
  286. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -0
  287. package/src/lib/layout/card/tng-card.d.ts +31 -0
  288. package/src/lib/layout/card/tng-card.d.ts.map +1 -0
  289. package/src/lib/layout/card/tng-card.js +133 -0
  290. package/src/lib/layout/card/tng-card.js.map +1 -0
  291. package/src/lib/layout/collapsible/tng-collapsible.d.ts +28 -0
  292. package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -0
  293. package/src/lib/layout/collapsible/tng-collapsible.js +123 -0
  294. package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -0
  295. package/src/lib/layout/drawer/tng-drawer.d.ts +177 -0
  296. package/src/lib/layout/drawer/tng-drawer.d.ts.map +1 -0
  297. package/src/lib/layout/drawer/tng-drawer.js +1147 -0
  298. package/src/lib/layout/drawer/tng-drawer.js.map +1 -0
  299. package/src/lib/layout/grid/tng-grid.d.ts +4 -0
  300. package/src/lib/layout/grid/tng-grid.d.ts.map +1 -0
  301. package/src/lib/layout/grid/tng-grid.js +16 -0
  302. package/src/lib/layout/grid/tng-grid.js.map +1 -0
  303. package/src/lib/layout/separator/tng-separator.d.ts +11 -0
  304. package/src/lib/layout/separator/tng-separator.d.ts.map +1 -0
  305. package/src/lib/layout/separator/tng-separator.js +47 -0
  306. package/src/lib/layout/separator/tng-separator.js.map +1 -0
  307. package/src/lib/layout/stepper/tng-stepper.d.ts +4 -0
  308. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -0
  309. package/src/lib/layout/stepper/tng-stepper.js +16 -0
  310. package/src/lib/layout/stepper/tng-stepper.js.map +1 -0
  311. package/src/lib/layout/tree/tng-tree.d.ts +4 -0
  312. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -0
  313. package/src/lib/layout/tree/tng-tree.js +16 -0
  314. package/src/lib/layout/tree/tng-tree.js.map +1 -0
  315. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts +17 -0
  316. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -0
  317. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +72 -0
  318. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -0
  319. package/src/lib/navigation/context-menu/tng-context-menu.d.ts +36 -0
  320. package/src/lib/navigation/context-menu/tng-context-menu.d.ts.map +1 -0
  321. package/src/lib/navigation/context-menu/tng-context-menu.js +159 -0
  322. package/src/lib/navigation/context-menu/tng-context-menu.js.map +1 -0
  323. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts +4 -0
  324. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -0
  325. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +16 -0
  326. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -0
  327. package/src/lib/navigation/menu/tng-menu.d.ts +173 -0
  328. package/src/lib/navigation/menu/tng-menu.d.ts.map +1 -0
  329. package/src/lib/navigation/menu/tng-menu.js +1026 -0
  330. package/src/lib/navigation/menu/tng-menu.js.map +1 -0
  331. package/src/lib/navigation/menubar/tng-menubar.d.ts +64 -0
  332. package/src/lib/navigation/menubar/tng-menubar.d.ts.map +1 -0
  333. package/src/lib/navigation/menubar/tng-menubar.js +478 -0
  334. package/src/lib/navigation/menubar/tng-menubar.js.map +1 -0
  335. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts +4 -0
  336. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -0
  337. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +16 -0
  338. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -0
  339. package/src/lib/navigation/tabs/tng-tabs.d.ts +234 -0
  340. package/src/lib/navigation/tabs/tng-tabs.d.ts.map +1 -0
  341. package/src/lib/navigation/tabs/tng-tabs.js +1350 -0
  342. package/src/lib/navigation/tabs/tng-tabs.js.map +1 -0
  343. package/src/lib/navigation/toolbar/tng-toolbar.d.ts +4 -0
  344. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -0
  345. package/src/lib/navigation/toolbar/tng-toolbar.js +16 -0
  346. package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -0
  347. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +25 -0
  348. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -0
  349. package/src/lib/overlay/tooltip/tng-tooltip.js +99 -0
  350. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -0
  351. package/src/lib/utility/avatar/tng-avatar.d.ts +10 -0
  352. package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -0
  353. package/src/lib/utility/avatar/tng-avatar.js +42 -0
  354. package/src/lib/utility/avatar/tng-avatar.js.map +1 -0
  355. package/src/lib/utility/badge/tng-badge.d.ts +63 -0
  356. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -0
  357. package/src/lib/utility/badge/tng-badge.js +345 -0
  358. package/src/lib/utility/badge/tng-badge.js.map +1 -0
  359. package/src/lib/utility/code-block/tng-code-block.d.ts +16 -0
  360. package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -0
  361. package/src/lib/utility/code-block/tng-code-block.js +68 -0
  362. package/src/lib/utility/code-block/tng-code-block.js.map +1 -0
  363. package/src/lib/utility/copy/tng-copy.d.ts +75 -0
  364. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -0
  365. package/src/lib/utility/copy/tng-copy.js +544 -0
  366. package/src/lib/utility/copy/tng-copy.js.map +1 -0
  367. package/src/lib/utility/press/tng-press.d.ts +33 -0
  368. package/src/lib/utility/press/tng-press.d.ts.map +1 -0
  369. package/src/lib/utility/press/tng-press.js +207 -0
  370. package/src/lib/utility/press/tng-press.js.map +1 -0
  371. package/src/lib/utility/tag/tng-tag.d.ts +4 -0
  372. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -0
  373. package/src/lib/utility/tag/tng-tag.js +16 -0
  374. package/src/lib/utility/tag/tng-tag.js.map +1 -0
@@ -0,0 +1,38 @@
1
+ import type { TngSelectHostApi } from '../_shared/select/tng-select.host-api';
2
+ import { TngSelectListboxApi } from './tng-select.listbox.types';
3
+ export declare class TngSelect<T = unknown> implements TngSelectHostApi {
4
+ readonly hostElement: any;
5
+ readonly open: import("@angular/core").ModelSignal<boolean>;
6
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
7
+ /** Value of the selected option. Single-select only. */
8
+ readonly value: import("@angular/core").ModelSignal<T | null>;
9
+ private _contentId;
10
+ private _listboxId;
11
+ private _activeId;
12
+ private _listboxApi;
13
+ readonly loading: import("@angular/core").InputSignal<boolean>;
14
+ readonly invalid: import("@angular/core").InputSignal<boolean>;
15
+ readonly labelId: import("@angular/core").InputSignal<string | null>;
16
+ readonly descriptionId: import("@angular/core").InputSignal<string | null>;
17
+ readonly errorId: import("@angular/core").InputSignal<string | null>;
18
+ protected readonly dataSlot: 'select';
19
+ protected get dataState(): 'open' | 'closed';
20
+ protected get dataDisabled(): '' | null;
21
+ protected get dataLoading(): '' | null;
22
+ protected get dataInvalid(): '' | null;
23
+ /** Single-select: always false. Satisfies TngSelectHostApi. */
24
+ readonly multiple: () => boolean;
25
+ setContentId(id: string | null): void;
26
+ getContentId(): string | null;
27
+ setListboxId(id: string | null): void;
28
+ getListboxId(): string | null;
29
+ setActiveDescendantId(id: string | null): void;
30
+ getActiveDescendantId(): string | null;
31
+ openSelect(): void;
32
+ close(): void;
33
+ toggle(): void;
34
+ selectValue(value: T): void;
35
+ setListboxApi(api: TngSelectListboxApi<T> | null): void;
36
+ getListboxApi(): TngSelectListboxApi<T> | null;
37
+ }
38
+ //# sourceMappingURL=tng-select.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,106 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, ElementRef, HostBinding, inject, input, model } from '@angular/core';
3
+ import { TNG_SELECT } from './tng-select.tokens';
4
+ import { TNG_SELECT_HOST } from '../_shared/select/tng-select.tokens.shared';
5
+ let TngSelect = class TngSelect {
6
+ hostElement = inject((ElementRef)).nativeElement;
7
+ open = model(false);
8
+ disabled = input(false);
9
+ /** Value of the selected option. Single-select only. */
10
+ value = model(null);
11
+ _contentId = null;
12
+ _listboxId = null;
13
+ _activeId = null;
14
+ _listboxApi = null;
15
+ loading = input(false);
16
+ invalid = input(false);
17
+ labelId = input(null);
18
+ descriptionId = input(null);
19
+ errorId = input(null);
20
+ dataSlot = 'select';
21
+ get dataState() {
22
+ return this.open() ? 'open' : 'closed';
23
+ }
24
+ get dataDisabled() {
25
+ return this.disabled() ? '' : null;
26
+ }
27
+ get dataLoading() {
28
+ return this.loading() ? '' : null;
29
+ }
30
+ get dataInvalid() {
31
+ return this.invalid() ? '' : null;
32
+ }
33
+ /** Single-select: always false. Satisfies TngSelectHostApi. */
34
+ multiple = () => false;
35
+ setContentId(id) {
36
+ this._contentId = id;
37
+ }
38
+ getContentId() {
39
+ return this._contentId;
40
+ }
41
+ setListboxId(id) {
42
+ this._listboxId = id;
43
+ }
44
+ getListboxId() {
45
+ return this._listboxId;
46
+ }
47
+ setActiveDescendantId(id) {
48
+ this._activeId = id;
49
+ }
50
+ getActiveDescendantId() {
51
+ return this._activeId;
52
+ }
53
+ openSelect() {
54
+ if (this.disabled())
55
+ return;
56
+ this.open.set(true);
57
+ }
58
+ close() {
59
+ this.open.set(false);
60
+ }
61
+ toggle() {
62
+ if (this.disabled())
63
+ return;
64
+ this.open.set(!this.open());
65
+ }
66
+ selectValue(value) {
67
+ if (this.disabled())
68
+ return;
69
+ this.value.set(value);
70
+ this.close();
71
+ }
72
+ setListboxApi(api) {
73
+ this._listboxApi = api;
74
+ }
75
+ getListboxApi() {
76
+ return this._listboxApi;
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: [
100
+ { provide: TNG_SELECT, useExisting: TngSelect },
101
+ { provide: TNG_SELECT_HOST, useExisting: TngSelect },
102
+ ],
103
+ })
104
+ ], TngSelect);
105
+ export { TngSelect };
106
+ //# sourceMappingURL=tng-select.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,20 @@
1
+ import { TngSelectListboxApi } from './tng-select.listbox.types';
2
+ export declare class TngSelectListbox<T = unknown> implements TngSelectListboxApi<T> {
3
+ private readonly select;
4
+ private readonly destroyRef;
5
+ private readonly listbox;
6
+ protected readonly dataSlot: 'select-listbox';
7
+ protected readonly id: string;
8
+ constructor();
9
+ getHostId(): string | null;
10
+ getActiveId(): string | null;
11
+ ensureActive(pref?: 'first' | 'last'): void;
12
+ handleKey(key: string, shiftKey?: boolean): boolean;
13
+ typeahead(key: string): boolean;
14
+ commitActive(): void;
15
+ protected onListboxValueChange(value: T | readonly T[] | null): void;
16
+ }
17
+ export declare class TngSelectOption<T> {
18
+ protected readonly dataSlot: 'select-option';
19
+ }
20
+ //# sourceMappingURL=tng-select.listbox.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,123 @@
1
+ import { __decorate } from "tslib";
2
+ import { DestroyRef, Directive, effect, HostBinding, HostListener, inject, untracked } from '@angular/core';
3
+ import { createTngIdFactory } from '@tailng-ui/cdk';
4
+ import { normalizeToSingle } from '../../internal/combobox';
5
+ import { TngListboxDirective, TngOptionDirective } from '@tailng-ui/primitives';
6
+ import { TNG_SELECT } from './tng-select.tokens';
7
+ import { TNG_SELECT_LISTBOX } from './tng-select.listbox.tokens';
8
+ const createListboxId = createTngIdFactory('tng-select-listbox');
9
+ let TngSelectListbox = class TngSelectListbox {
10
+ select = inject(TNG_SELECT);
11
+ destroyRef = inject(DestroyRef);
12
+ listbox = inject((TngListboxDirective), { self: true });
13
+ dataSlot = 'select-listbox';
14
+ id = createListboxId();
15
+ constructor() {
16
+ // register id
17
+ this.select.setListboxId(this.id);
18
+ // register API into select (Mode-2 bridge)
19
+ this.select.setListboxApi(this);
20
+ // controlled sync from Select -> Listbox
21
+ effect(() => {
22
+ const v = this.select.value();
23
+ if (this.select.open())
24
+ return;
25
+ const current = untracked(this.listbox.value);
26
+ const currentSingle = normalizeToSingle(current);
27
+ if (Object.is(currentSingle, v))
28
+ return;
29
+ this.listbox.value.set(v);
30
+ });
31
+ this.destroyRef.onDestroy(() => {
32
+ this.select.setListboxId(null);
33
+ this.select.setListboxApi(null);
34
+ });
35
+ }
36
+ // ---------------- API ----------------
37
+ getHostId() {
38
+ return this.id ?? null;
39
+ }
40
+ getActiveId() {
41
+ return this.listbox.getActiveId();
42
+ }
43
+ ensureActive(pref) {
44
+ this.listbox.ensureActive(pref);
45
+ }
46
+ handleKey(key, shiftKey) {
47
+ return this.listbox.handleKeyFromCombobox(key, shiftKey);
48
+ }
49
+ typeahead(key) {
50
+ return this.listbox.typeaheadFromCombobox(key);
51
+ }
52
+ commitActive() {
53
+ const value = this.listbox.getActiveValue();
54
+ if (value === undefined)
55
+ return;
56
+ this.select.selectValue(value);
57
+ }
58
+ onListboxValueChange(value) {
59
+ if (this.select.disabled())
60
+ return;
61
+ const next = normalizeToSingle(value);
62
+ if (Object.is(next, this.select.value())) {
63
+ if (this.select.open() && next !== null) {
64
+ this.select.selectValue(next);
65
+ }
66
+ return;
67
+ }
68
+ if (!this.select.open()) {
69
+ this.select.value.set(next);
70
+ return;
71
+ }
72
+ if (next === null) {
73
+ this.select.value.set(null);
74
+ this.select.close();
75
+ return;
76
+ }
77
+ this.select.selectValue(next);
78
+ }
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 {
105
+ 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 };
123
+ //# sourceMappingURL=tng-select.listbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.listbox.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.listbox.ts"],"names":[],"mappings":"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","sourcesContent":["import { DestroyRef, Directive, effect, HostBinding, HostListener, inject, untracked } from '@angular/core';\nimport { createTngIdFactory } from '@tailng-ui/cdk';\nimport { normalizeToSingle } from '../../internal/combobox';\nimport { TngListboxDirective, TngOptionDirective } from '@tailng-ui/primitives';\nimport { TNG_SELECT } from './tng-select.tokens';\nimport type { TngSelect } from './tng-select';\nimport { TngSelectListboxApi } from './tng-select.listbox.types';\nimport { TNG_SELECT_LISTBOX } from './tng-select.listbox.tokens';\n\nconst createListboxId = createTngIdFactory('tng-select-listbox');\n@Directive({\n selector: '[tngSelectListbox]',\n standalone: true,\n providers: [{ provide: TNG_SELECT_LISTBOX, useExisting: TngSelectListbox }],\n hostDirectives: [\n {\n directive: TngListboxDirective,\n inputs: ['orientation', 'direction', 'disabled', 'loop', 'value'],\n outputs: ['valueChange'],\n },\n ],\n})\nexport class TngSelectListbox<T = unknown> implements TngSelectListboxApi<T> {\n private readonly select = inject<TngSelect<T>>(TNG_SELECT);\n private readonly destroyRef = inject(DestroyRef);\n private readonly listbox = inject(TngListboxDirective<T>, { self: true });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-listbox' = 'select-listbox';\n\n @HostBinding('attr.id')\n protected readonly id = createListboxId();\n\n constructor() {\n // register id\n this.select.setListboxId(this.id);\n\n // register API into select (Mode-2 bridge)\n this.select.setListboxApi(this);\n\n // controlled sync from Select -> Listbox\n effect(() => {\n const v = this.select.value();\n\n if (this.select.open()) return;\n\n const current = untracked(this.listbox.value);\n const currentSingle = normalizeToSingle(current);\n if (Object.is(currentSingle, v)) return;\n this.listbox.value.set(v as T | null);\n });\n\n this.destroyRef.onDestroy(() => {\n this.select.setListboxId(null);\n this.select.setListboxApi(null);\n });\n }\n\n // ---------------- API ----------------\n\n getHostId(): string | null {\n return this.id ?? null;\n }\n\n getActiveId(): string | null {\n return this.listbox.getActiveId();\n }\n\n ensureActive(pref?: 'first' | 'last'): void {\n this.listbox.ensureActive(pref);\n }\n\n handleKey(key: string, shiftKey?: boolean): boolean {\n return this.listbox.handleKeyFromCombobox(key, shiftKey);\n }\n\n typeahead(key: string): boolean {\n return this.listbox.typeaheadFromCombobox(key);\n }\n\n commitActive(): void {\n const value = this.listbox.getActiveValue();\n if (value === undefined) return;\n this.select.selectValue(value as T);\n }\n\n @HostListener('valueChange', ['$event'])\n protected onListboxValueChange(value: T | readonly T[] | null): void {\n if (this.select.disabled()) return;\n\n const next = normalizeToSingle(value);\n if (Object.is(next, this.select.value())) {\n if (this.select.open() && next !== null) {\n this.select.selectValue(next as T);\n }\n return;\n }\n\n if (!this.select.open()) {\n this.select.value.set(next as T | null);\n return;\n }\n\n if (next === null) {\n this.select.value.set(null);\n this.select.close();\n return;\n }\n\n this.select.selectValue(next);\n }\n}\n\n@Directive({\n selector: '[tngSelectOption]',\n standalone: true,\n hostDirectives: [\n {\n directive: TngOptionDirective,\n inputs: ['tngValue', 'disabled'],\n },\n ],\n})\nexport class TngSelectOption<T> {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot: 'select-option' = 'select-option';\n}"]}
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const TNG_SELECT_LISTBOX: InjectionToken<import("../../internal/combobox").ComboboxListboxApi>;
3
+ //# sourceMappingURL=tng-select.listbox.tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.listbox.tokens.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.listbox.tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,eAAO,MAAM,kBAAkB,sEAAgE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const TNG_SELECT_LISTBOX = new InjectionToken('TNG_SELECT_LISTBOX');
3
+ //# sourceMappingURL=tng-select.listbox.tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.listbox.tokens.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.listbox.tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAsB,oBAAoB,CAAC,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { TngSelectListboxApi } from './tng-select.listbox.types';\n\nexport const TNG_SELECT_LISTBOX = new InjectionToken<TngSelectListboxApi>('TNG_SELECT_LISTBOX');"]}
@@ -0,0 +1,4 @@
1
+ import type { ComboboxListboxApi } from '../../internal/combobox';
2
+ /** Select-specific alias. Uses shared ComboboxListboxApi from internal/combobox. */
3
+ export type TngSelectListboxApi<T = unknown> = ComboboxListboxApi;
4
+ //# sourceMappingURL=tng-select.listbox.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.listbox.types.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.listbox.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,oFAAoF;AACpF,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,OAAO,IAAI,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=tng-select.listbox.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.listbox.types.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.listbox.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ComboboxListboxApi } from '../../internal/combobox';\n\n/** Select-specific alias. Uses shared ComboboxListboxApi from internal/combobox. */\nexport type TngSelectListboxApi<T = unknown> = ComboboxListboxApi;\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Re-exports shared select overlay. Single-select uses shared implementation.
3
+ */
4
+ export { TngSelectOverlay } from '../_shared/select/tng-select.overlay.shared';
5
+ //# sourceMappingURL=tng-select.overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.overlay.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.overlay.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Re-exports shared select overlay. Single-select uses shared implementation.
3
+ */
4
+ export { TngSelectOverlay } from '../_shared/select/tng-select.overlay.shared';
5
+ //# sourceMappingURL=tng-select.overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.overlay.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.overlay.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC","sourcesContent":["/**\n * Re-exports shared select overlay. Single-select uses shared implementation.\n */\nexport { TngSelectOverlay } from '../_shared/select/tng-select.overlay.shared';\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Re-exports shared select parts. Single-select uses shared implementation.
3
+ */
4
+ export { TngSelectTrigger, TngSelectValue, TngSelectIcon, TngSelectContent, } from '../_shared/select/tng-select.parts.shared';
5
+ //# sourceMappingURL=tng-select.parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.parts.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.parts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,2CAA2C,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Re-exports shared select parts. Single-select uses shared implementation.
3
+ */
4
+ export { TngSelectTrigger, TngSelectValue, TngSelectIcon, TngSelectContent, } from '../_shared/select/tng-select.parts.shared';
5
+ //# sourceMappingURL=tng-select.parts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.parts.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.parts.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,2CAA2C,CAAC","sourcesContent":["/**\n * Re-exports shared select parts. Single-select uses shared implementation.\n */\nexport {\n TngSelectTrigger,\n TngSelectValue,\n TngSelectIcon,\n TngSelectContent,\n} from '../_shared/select/tng-select.parts.shared';\n"]}
@@ -0,0 +1,4 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import type { TngSelect } from './tng-select';
3
+ export declare const TNG_SELECT: InjectionToken<TngSelect<unknown>>;
4
+ //# sourceMappingURL=tng-select.tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.tokens.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,eAAO,MAAM,UAAU,oCAA8C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const TNG_SELECT = new InjectionToken('TNG_SELECT');
3
+ //# sourceMappingURL=tng-select.tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-select.tokens.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/select/tng-select.tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,cAAc,CAAY,YAAY,CAAC,CAAC","sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { TngSelect } from './tng-select';\n\nexport const TNG_SELECT = new InjectionToken<TngSelect>('TNG_SELECT');\n"]}
@@ -0,0 +1,19 @@
1
+ export declare function normalizeTngSliderMin(value: number): number;
2
+ export declare function normalizeTngSliderMax(value: number): number;
3
+ export declare function normalizeTngSliderStep(value: number): number;
4
+ export declare class TngSlider {
5
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
6
+ readonly max: import("@angular/core").InputSignalWithTransform<number, string | number>;
7
+ readonly min: import("@angular/core").InputSignalWithTransform<number, string | number>;
8
+ readonly step: import("@angular/core").InputSignalWithTransform<number, string | number>;
9
+ readonly value: import("@angular/core").InputSignalWithTransform<number, string | number>;
10
+ protected get dataDisabledAttr(): '' | null;
11
+ protected readonly dataSlot: "slider";
12
+ protected get disabledAttr(): '' | null;
13
+ protected get maxAttr(): string;
14
+ protected get minAttr(): string;
15
+ protected get stepAttr(): string;
16
+ protected readonly typeAttr: "range";
17
+ protected get valueAttr(): string;
18
+ }
19
+ //# sourceMappingURL=tng-slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-slider.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/slider/tng-slider.ts"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG5D;AAED,qBAIa,SAAS;IACpB,SAAgB,QAAQ,8EAErB;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,GAAG,4EAGhB;IACH,SAAgB,IAAI,4EAGjB;IACH,SAAgB,KAAK,4EAGlB;IAGH,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IAGhD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,KAAK,OAAO,IAAI,MAAM,CAE9B;IAGD,SAAS,KAAK,OAAO,IAAI,MAAM,CAE9B;IAGD,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAG/C,SAAS,KAAK,SAAS,IAAI,MAAM,CAEhC;CACF"}
@@ -0,0 +1,84 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, HostBinding, booleanAttribute, input } from '@angular/core';
3
+ function normalizeFiniteNumber(value, fallback) {
4
+ return Number.isFinite(value) ? value : fallback;
5
+ }
6
+ export function normalizeTngSliderMin(value) {
7
+ return normalizeFiniteNumber(value, 0);
8
+ }
9
+ export function normalizeTngSliderMax(value) {
10
+ return normalizeFiniteNumber(value, 100);
11
+ }
12
+ export function normalizeTngSliderStep(value) {
13
+ const normalized = normalizeFiniteNumber(value, 1);
14
+ return normalized > 0 ? normalized : 1;
15
+ }
16
+ let TngSlider = class TngSlider {
17
+ disabled = input(false, {
18
+ transform: booleanAttribute,
19
+ });
20
+ max = input(100, {
21
+ transform: (value) => normalizeTngSliderMax(typeof value === 'number' ? value : Number(value)),
22
+ });
23
+ min = input(0, {
24
+ transform: (value) => normalizeTngSliderMin(typeof value === 'number' ? value : Number(value)),
25
+ });
26
+ step = input(1, {
27
+ transform: (value) => normalizeTngSliderStep(typeof value === 'number' ? value : Number(value)),
28
+ });
29
+ value = input(0, {
30
+ transform: (value) => typeof value === 'number' ? value : Number(value),
31
+ });
32
+ get dataDisabledAttr() {
33
+ return this.disabled() ? '' : null;
34
+ }
35
+ dataSlot = 'slider';
36
+ get disabledAttr() {
37
+ return this.disabled() ? '' : null;
38
+ }
39
+ get maxAttr() {
40
+ return String(this.max());
41
+ }
42
+ get minAttr() {
43
+ return String(this.min());
44
+ }
45
+ get stepAttr() {
46
+ return String(this.step());
47
+ }
48
+ typeAttr = 'range';
49
+ get valueAttr() {
50
+ return String(this.value());
51
+ }
52
+ };
53
+ __decorate([
54
+ HostBinding('attr.data-disabled')
55
+ ], TngSlider.prototype, "dataDisabledAttr", null);
56
+ __decorate([
57
+ HostBinding('attr.data-slot')
58
+ ], TngSlider.prototype, "dataSlot", void 0);
59
+ __decorate([
60
+ HostBinding('attr.disabled')
61
+ ], TngSlider.prototype, "disabledAttr", null);
62
+ __decorate([
63
+ HostBinding('attr.max')
64
+ ], TngSlider.prototype, "maxAttr", null);
65
+ __decorate([
66
+ HostBinding('attr.min')
67
+ ], TngSlider.prototype, "minAttr", null);
68
+ __decorate([
69
+ HostBinding('attr.step')
70
+ ], TngSlider.prototype, "stepAttr", null);
71
+ __decorate([
72
+ HostBinding('attr.type')
73
+ ], TngSlider.prototype, "typeAttr", void 0);
74
+ __decorate([
75
+ HostBinding('attr.value')
76
+ ], TngSlider.prototype, "valueAttr", null);
77
+ TngSlider = __decorate([
78
+ Directive({
79
+ selector: 'input[tngSlider]',
80
+ exportAs: 'tngSlider',
81
+ })
82
+ ], TngSlider);
83
+ export { TngSlider };
84
+ //# sourceMappingURL=tng-slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-slider.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/slider/tng-slider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, HostBinding, booleanAttribute, input } from '@angular/core';\n\nfunction normalizeFiniteNumber(value: number, fallback: number): number {\n return Number.isFinite(value) ? value : fallback;\n}\n\nexport function normalizeTngSliderMin(value: number): number {\n return normalizeFiniteNumber(value, 0);\n}\n\nexport function normalizeTngSliderMax(value: number): number {\n return normalizeFiniteNumber(value, 100);\n}\n\nexport function normalizeTngSliderStep(value: number): number {\n const normalized = normalizeFiniteNumber(value, 1);\n return normalized > 0 ? normalized : 1;\n}\n\n@Directive({\n selector: 'input[tngSlider]',\n exportAs: 'tngSlider',\n})\nexport class TngSlider {\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly max = input<number, number | string>(100, {\n transform: (value: number | string): number =>\n normalizeTngSliderMax(typeof value === 'number' ? value : Number(value)),\n });\n public readonly min = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n normalizeTngSliderMin(typeof value === 'number' ? value : Number(value)),\n });\n public readonly step = input<number, number | string>(1, {\n transform: (value: number | string): number =>\n normalizeTngSliderStep(typeof value === 'number' ? value : Number(value)),\n });\n public readonly value = input<number, number | string>(0, {\n transform: (value: number | string): number =>\n typeof value === 'number' ? value : Number(value),\n });\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'slider' as const;\n\n @HostBinding('attr.disabled')\n protected get disabledAttr(): '' | null {\n return this.disabled() ? '' : null;\n }\n\n @HostBinding('attr.max')\n protected get maxAttr(): string {\n return String(this.max());\n }\n\n @HostBinding('attr.min')\n protected get minAttr(): string {\n return String(this.min());\n }\n\n @HostBinding('attr.step')\n protected get stepAttr(): string {\n return String(this.step());\n }\n\n @HostBinding('attr.type')\n protected readonly typeAttr = 'range' as const;\n\n @HostBinding('attr.value')\n protected get valueAttr(): string {\n return String(this.value());\n }\n}\n"]}
@@ -0,0 +1,19 @@
1
+ export declare function resolveTngSwitchAriaChecked(checked: boolean): 'false' | 'true';
2
+ export declare function resolveTngSwitchDataState(checked: boolean): 'checked' | 'unchecked';
3
+ export declare function resolveTngSwitchAriaRequired(required: boolean): 'true' | null;
4
+ export declare class TngSwitch {
5
+ readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
6
+ readonly checked: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
7
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
8
+ readonly required: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
9
+ protected get ariaCheckedAttr(): 'false' | 'true';
10
+ protected get ariaLabelAttr(): string | null;
11
+ protected get ariaRequiredAttr(): 'true' | null;
12
+ protected get dataDisabledAttr(): '' | null;
13
+ protected readonly dataSlot: "switch";
14
+ protected get dataStateAttr(): 'checked' | 'unchecked';
15
+ protected get disabledAttr(): '' | null;
16
+ protected readonly roleAttr: "switch";
17
+ protected readonly typeAttr: "button";
18
+ }
19
+ //# sourceMappingURL=tng-switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tng-switch.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/form/switch/tng-switch.ts"],"names":[],"mappings":"AAEA,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAE9E;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,CAEnF;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE7E;AAED,qBAIa,SAAS;IACpB,SAAgB,SAAS,qDAA8B;IACvD,SAAgB,OAAO,8EAEpB;IACH,SAAgB,QAAQ,8EAErB;IACH,SAAgB,QAAQ,8EAErB;IAGH,SAAS,KAAK,eAAe,IAAI,OAAO,GAAG,MAAM,CAEhD;IAGD,SAAS,KAAK,aAAa,IAAI,MAAM,GAAG,IAAI,CAE3C;IAGD,SAAS,KAAK,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAE9C;IAGD,SAAS,KAAK,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAE1C;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IAGhD,SAAS,KAAK,aAAa,IAAI,SAAS,GAAG,WAAW,CAErD;IAGD,SAAS,KAAK,YAAY,IAAI,EAAE,GAAG,IAAI,CAEtC;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IAGhD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;CACjD"}