@tailng-ui/primitives 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/package.json +12 -6
  2. package/src/lib/feedback/empty/tng-empty.d.ts +11 -0
  3. package/src/lib/feedback/empty/tng-empty.d.ts.map +1 -1
  4. package/src/lib/feedback/empty/tng-empty.js +76 -66
  5. package/src/lib/feedback/empty/tng-empty.js.map +1 -1
  6. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts +5 -0
  7. package/src/lib/feedback/progress-bar/tng-progress-bar.d.ts.map +1 -1
  8. package/src/lib/feedback/progress-bar/tng-progress-bar.js +50 -54
  9. package/src/lib/feedback/progress-bar/tng-progress-bar.js.map +1 -1
  10. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts +3 -0
  11. package/src/lib/feedback/progress-spinner/tng-progress-spinner.d.ts.map +1 -1
  12. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js +35 -41
  13. package/src/lib/feedback/progress-spinner/tng-progress-spinner.js.map +1 -1
  14. package/src/lib/feedback/skeleton/tng-skeleton.d.ts +3 -0
  15. package/src/lib/feedback/skeleton/tng-skeleton.d.ts.map +1 -1
  16. package/src/lib/feedback/skeleton/tng-skeleton.js +30 -32
  17. package/src/lib/feedback/skeleton/tng-skeleton.js.map +1 -1
  18. package/src/lib/feedback/toast/tng-toast.d.ts +5 -0
  19. package/src/lib/feedback/toast/tng-toast.d.ts.map +1 -1
  20. package/src/lib/feedback/toast/tng-toast.js +51 -49
  21. package/src/lib/feedback/toast/tng-toast.js.map +1 -1
  22. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts +3 -0
  23. package/src/lib/form/_shared/id/tng-unique-id.service.d.ts.map +1 -1
  24. package/src/lib/form/_shared/id/tng-unique-id.service.js +9 -7
  25. package/src/lib/form/_shared/id/tng-unique-id.service.js.map +1 -1
  26. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts +3 -0
  27. package/src/lib/form/_shared/select/tng-select.overlay.shared.d.ts.map +1 -1
  28. package/src/lib/form/_shared/select/tng-select.overlay.shared.js +22 -20
  29. package/src/lib/form/_shared/select/tng-select.overlay.shared.js.map +1 -1
  30. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts +9 -0
  31. package/src/lib/form/_shared/select/tng-select.parts.shared.d.ts.map +1 -1
  32. package/src/lib/form/_shared/select/tng-select.parts.shared.js +106 -98
  33. package/src/lib/form/_shared/select/tng-select.parts.shared.js.map +1 -1
  34. package/src/lib/form/autocomplete/tng-autocomplete.d.ts +3 -0
  35. package/src/lib/form/autocomplete/tng-autocomplete.d.ts.map +1 -1
  36. package/src/lib/form/autocomplete/tng-autocomplete.js +40 -38
  37. package/src/lib/form/autocomplete/tng-autocomplete.js.map +1 -1
  38. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts +6 -0
  39. package/src/lib/form/autocomplete/tng-autocomplete.listbox.d.ts.map +1 -1
  40. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js +54 -46
  41. package/src/lib/form/autocomplete/tng-autocomplete.listbox.js.map +1 -1
  42. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts +3 -0
  43. package/src/lib/form/autocomplete/tng-autocomplete.overlay.d.ts.map +1 -1
  44. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js +22 -20
  45. package/src/lib/form/autocomplete/tng-autocomplete.overlay.js.map +1 -1
  46. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts +9 -0
  47. package/src/lib/form/autocomplete/tng-autocomplete.parts.d.ts.map +1 -1
  48. package/src/lib/form/autocomplete/tng-autocomplete.parts.js +109 -101
  49. package/src/lib/form/autocomplete/tng-autocomplete.parts.js.map +1 -1
  50. package/src/lib/form/button-toggle/tng-button-toggle.d.ts +5 -0
  51. package/src/lib/form/button-toggle/tng-button-toggle.d.ts.map +1 -1
  52. package/src/lib/form/button-toggle/tng-button-toggle.js +121 -155
  53. package/src/lib/form/button-toggle/tng-button-toggle.js.map +1 -1
  54. package/src/lib/form/checkbox/tng-checkbox.d.ts +3 -0
  55. package/src/lib/form/checkbox/tng-checkbox.d.ts.map +1 -1
  56. package/src/lib/form/checkbox/tng-checkbox.js +95 -107
  57. package/src/lib/form/checkbox/tng-checkbox.js.map +1 -1
  58. package/src/lib/form/chips/tng-chips.d.ts +7 -0
  59. package/src/lib/form/chips/tng-chips.d.ts.map +1 -1
  60. package/src/lib/form/chips/tng-chips.js +107 -115
  61. package/src/lib/form/chips/tng-chips.js.map +1 -1
  62. package/src/lib/form/combobox/tng-combobox.d.ts +3 -0
  63. package/src/lib/form/combobox/tng-combobox.d.ts.map +1 -1
  64. package/src/lib/form/combobox/tng-combobox.js +16 -14
  65. package/src/lib/form/combobox/tng-combobox.js.map +1 -1
  66. package/src/lib/form/input/tng-input.d.ts +9 -0
  67. package/src/lib/form/input/tng-input.d.ts.map +1 -1
  68. package/src/lib/form/input/tng-input.js +161 -141
  69. package/src/lib/form/input/tng-input.js.map +1 -1
  70. package/src/lib/form/input-otp/tng-input-otp.d.ts +3 -0
  71. package/src/lib/form/input-otp/tng-input-otp.d.ts.map +1 -1
  72. package/src/lib/form/input-otp/tng-input-otp.js +58 -70
  73. package/src/lib/form/input-otp/tng-input-otp.js.map +1 -1
  74. package/src/lib/form/label/tng-label.d.ts +3 -0
  75. package/src/lib/form/label/tng-label.d.ts.map +1 -1
  76. package/src/lib/form/label/tng-label.js +24 -26
  77. package/src/lib/form/label/tng-label.js.map +1 -1
  78. package/src/lib/form/listbox/listbox.directive.d.ts +3 -0
  79. package/src/lib/form/listbox/listbox.directive.d.ts.map +1 -1
  80. package/src/lib/form/listbox/listbox.directive.js +45 -43
  81. package/src/lib/form/listbox/listbox.directive.js.map +1 -1
  82. package/src/lib/form/listbox/option.directive.d.ts +3 -0
  83. package/src/lib/form/listbox/option.directive.d.ts.map +1 -1
  84. package/src/lib/form/listbox/option.directive.js +40 -38
  85. package/src/lib/form/listbox/option.directive.js.map +1 -1
  86. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts +3 -0
  87. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.d.ts.map +1 -1
  88. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js +23 -21
  89. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.chip.js.map +1 -1
  90. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts +3 -0
  91. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.d.ts.map +1 -1
  92. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js +25 -23
  93. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.content.js.map +1 -1
  94. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts +3 -0
  95. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.d.ts.map +1 -1
  96. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js +35 -33
  97. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.js.map +1 -1
  98. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts +6 -0
  99. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.d.ts.map +1 -1
  100. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js +57 -46
  101. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.listbox.js.map +1 -1
  102. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts +3 -0
  103. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.d.ts.map +1 -1
  104. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js +16 -14
  105. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.overlay.js.map +1 -1
  106. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts +3 -0
  107. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.d.ts.map +1 -1
  108. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js +52 -50
  109. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.trigger.js.map +1 -1
  110. package/src/lib/form/multi-select/tng-multi-select.d.ts +3 -0
  111. package/src/lib/form/multi-select/tng-multi-select.d.ts.map +1 -1
  112. package/src/lib/form/multi-select/tng-multi-select.js +41 -36
  113. package/src/lib/form/multi-select/tng-multi-select.js.map +1 -1
  114. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts +6 -0
  115. package/src/lib/form/multi-select/tng-multi-select.listbox.d.ts.map +1 -1
  116. package/src/lib/form/multi-select/tng-multi-select.listbox.js +50 -45
  117. package/src/lib/form/multi-select/tng-multi-select.listbox.js.map +1 -1
  118. package/src/lib/form/multiselect/tng-multiselect.d.ts +3 -0
  119. package/src/lib/form/multiselect/tng-multiselect.d.ts.map +1 -1
  120. package/src/lib/form/multiselect/tng-multiselect.js +16 -14
  121. package/src/lib/form/multiselect/tng-multiselect.js.map +1 -1
  122. package/src/lib/form/radio/tng-radio.d.ts +3 -0
  123. package/src/lib/form/radio/tng-radio.d.ts.map +1 -1
  124. package/src/lib/form/radio/tng-radio.js +91 -101
  125. package/src/lib/form/radio/tng-radio.js.map +1 -1
  126. package/src/lib/form/select/tng-select.d.ts +3 -0
  127. package/src/lib/form/select/tng-select.d.ts.map +1 -1
  128. package/src/lib/form/select/tng-select.js +41 -36
  129. package/src/lib/form/select/tng-select.js.map +1 -1
  130. package/src/lib/form/select/tng-select.listbox.d.ts +6 -0
  131. package/src/lib/form/select/tng-select.listbox.d.ts.map +1 -1
  132. package/src/lib/form/select/tng-select.listbox.js +50 -45
  133. package/src/lib/form/select/tng-select.listbox.js.map +1 -1
  134. package/src/lib/form/slider/tng-slider.d.ts +3 -0
  135. package/src/lib/form/slider/tng-slider.d.ts.map +1 -1
  136. package/src/lib/form/slider/tng-slider.js +42 -50
  137. package/src/lib/form/slider/tng-slider.js.map +1 -1
  138. package/src/lib/form/switch/tng-switch.d.ts +3 -0
  139. package/src/lib/form/switch/tng-switch.d.ts.map +1 -1
  140. package/src/lib/form/switch/tng-switch.js +44 -48
  141. package/src/lib/form/switch/tng-switch.js.map +1 -1
  142. package/src/lib/form/textarea/tng-textarea.d.ts +4 -0
  143. package/src/lib/form/textarea/tng-textarea.d.ts.map +1 -1
  144. package/src/lib/form/textarea/tng-textarea.js +40 -41
  145. package/src/lib/form/textarea/tng-textarea.js.map +1 -1
  146. package/src/lib/form/toggle/tng-toggle.d.ts +3 -0
  147. package/src/lib/form/toggle/tng-toggle.d.ts.map +1 -1
  148. package/src/lib/form/toggle/tng-toggle.js +71 -75
  149. package/src/lib/form/toggle/tng-toggle.js.map +1 -1
  150. package/src/lib/form/toggle-group/tng-toggle-group.d.ts +3 -0
  151. package/src/lib/form/toggle-group/tng-toggle-group.d.ts.map +1 -1
  152. package/src/lib/form/toggle-group/tng-toggle-group.js +48 -50
  153. package/src/lib/form/toggle-group/tng-toggle-group.js.map +1 -1
  154. package/src/lib/layout/accordion/tng-accordion.d.ts +9 -0
  155. package/src/lib/layout/accordion/tng-accordion.d.ts.map +1 -1
  156. package/src/lib/layout/accordion/tng-accordion.js +143 -155
  157. package/src/lib/layout/accordion/tng-accordion.js.map +1 -1
  158. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts +3 -0
  159. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.d.ts.map +1 -1
  160. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js +16 -14
  161. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.js.map +1 -1
  162. package/src/lib/layout/card/tng-card.d.ts +21 -0
  163. package/src/lib/layout/card/tng-card.d.ts.map +1 -1
  164. package/src/lib/layout/card/tng-card.js +151 -131
  165. package/src/lib/layout/card/tng-card.js.map +1 -1
  166. package/src/lib/layout/collapsible/tng-collapsible.d.ts +7 -0
  167. package/src/lib/layout/collapsible/tng-collapsible.d.ts.map +1 -1
  168. package/src/lib/layout/collapsible/tng-collapsible.js +82 -86
  169. package/src/lib/layout/collapsible/tng-collapsible.js.map +1 -1
  170. package/src/lib/layout/drawer/tng-drawer.d.ts +13 -0
  171. package/src/lib/layout/drawer/tng-drawer.d.ts.map +1 -1
  172. package/src/lib/layout/drawer/tng-drawer.js +217 -226
  173. package/src/lib/layout/drawer/tng-drawer.js.map +1 -1
  174. package/src/lib/layout/grid/tng-grid.d.ts +3 -0
  175. package/src/lib/layout/grid/tng-grid.d.ts.map +1 -1
  176. package/src/lib/layout/grid/tng-grid.js +16 -14
  177. package/src/lib/layout/grid/tng-grid.js.map +1 -1
  178. package/src/lib/layout/separator/tng-separator.d.ts +3 -0
  179. package/src/lib/layout/separator/tng-separator.d.ts.map +1 -1
  180. package/src/lib/layout/separator/tng-separator.js +30 -30
  181. package/src/lib/layout/separator/tng-separator.js.map +1 -1
  182. package/src/lib/layout/stepper/tng-stepper.d.ts +3 -0
  183. package/src/lib/layout/stepper/tng-stepper.d.ts.map +1 -1
  184. package/src/lib/layout/stepper/tng-stepper.js +16 -14
  185. package/src/lib/layout/stepper/tng-stepper.js.map +1 -1
  186. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts +3 -0
  187. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.d.ts.map +1 -1
  188. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js +54 -11
  189. package/src/lib/layout/tree/__tests__/tng-tree.test-harness.js.map +1 -1
  190. package/src/lib/layout/tree/tng-tree-group.d.ts +3 -0
  191. package/src/lib/layout/tree/tng-tree-group.d.ts.map +1 -1
  192. package/src/lib/layout/tree/tng-tree-group.js +19 -17
  193. package/src/lib/layout/tree/tng-tree-group.js.map +1 -1
  194. package/src/lib/layout/tree/tng-tree-indicator.d.ts +3 -0
  195. package/src/lib/layout/tree/tng-tree-indicator.d.ts.map +1 -1
  196. package/src/lib/layout/tree/tng-tree-indicator.js +22 -20
  197. package/src/lib/layout/tree/tng-tree-indicator.js.map +1 -1
  198. package/src/lib/layout/tree/tng-tree-item.d.ts +3 -0
  199. package/src/lib/layout/tree/tng-tree-item.d.ts.map +1 -1
  200. package/src/lib/layout/tree/tng-tree-item.js +47 -53
  201. package/src/lib/layout/tree/tng-tree-item.js.map +1 -1
  202. package/src/lib/layout/tree/tng-tree.d.ts +3 -0
  203. package/src/lib/layout/tree/tng-tree.d.ts.map +1 -1
  204. package/src/lib/layout/tree/tng-tree.js +39 -43
  205. package/src/lib/layout/tree/tng-tree.js.map +1 -1
  206. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts +11 -0
  207. package/src/lib/navigation/breadcrumb/tng-breadcrumb.d.ts.map +1 -1
  208. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js +79 -69
  209. package/src/lib/navigation/breadcrumb/tng-breadcrumb.js.map +1 -1
  210. package/src/lib/navigation/context-menu/tng-context-menu.d.ts +5 -0
  211. package/src/lib/navigation/context-menu/tng-context-menu.d.ts.map +1 -1
  212. package/src/lib/navigation/context-menu/tng-context-menu.js +44 -42
  213. package/src/lib/navigation/context-menu/tng-context-menu.js.map +1 -1
  214. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts +3 -0
  215. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.d.ts.map +1 -1
  216. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js +16 -14
  217. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.js.map +1 -1
  218. package/src/lib/navigation/menu/tng-menu.d.ts +13 -0
  219. package/src/lib/navigation/menu/tng-menu.d.ts.map +1 -1
  220. package/src/lib/navigation/menu/tng-menu.js +184 -186
  221. package/src/lib/navigation/menu/tng-menu.js.map +1 -1
  222. package/src/lib/navigation/menubar/tng-menubar.d.ts +5 -0
  223. package/src/lib/navigation/menubar/tng-menubar.d.ts.map +1 -1
  224. package/src/lib/navigation/menubar/tng-menubar.js +72 -70
  225. package/src/lib/navigation/menubar/tng-menubar.js.map +1 -1
  226. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts +3 -0
  227. package/src/lib/navigation/navigation-menu/tng-navigation-menu.d.ts.map +1 -1
  228. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js +16 -14
  229. package/src/lib/navigation/navigation-menu/tng-navigation-menu.js.map +1 -1
  230. package/src/lib/navigation/tabs/tng-tabs.d.ts +13 -0
  231. package/src/lib/navigation/tabs/tng-tabs.d.ts.map +1 -1
  232. package/src/lib/navigation/tabs/tng-tabs.js +234 -258
  233. package/src/lib/navigation/tabs/tng-tabs.js.map +1 -1
  234. package/src/lib/navigation/toolbar/tng-toolbar.d.ts +3 -0
  235. package/src/lib/navigation/toolbar/tng-toolbar.d.ts.map +1 -1
  236. package/src/lib/navigation/toolbar/tng-toolbar.js +16 -14
  237. package/src/lib/navigation/toolbar/tng-toolbar.js.map +1 -1
  238. package/src/lib/overlay/dialog/tng-dialog.d.ts +19 -0
  239. package/src/lib/overlay/dialog/tng-dialog.d.ts.map +1 -1
  240. package/src/lib/overlay/dialog/tng-dialog.js +249 -255
  241. package/src/lib/overlay/dialog/tng-dialog.js.map +1 -1
  242. package/src/lib/overlay/popover/tng-popover.d.ts +9 -0
  243. package/src/lib/overlay/popover/tng-popover.d.ts.map +1 -1
  244. package/src/lib/overlay/popover/tng-popover.js +152 -170
  245. package/src/lib/overlay/popover/tng-popover.js.map +1 -1
  246. package/src/lib/overlay/tooltip/tng-tooltip.d.ts +7 -0
  247. package/src/lib/overlay/tooltip/tng-tooltip.d.ts.map +1 -1
  248. package/src/lib/overlay/tooltip/tng-tooltip.js +124 -130
  249. package/src/lib/overlay/tooltip/tng-tooltip.js.map +1 -1
  250. package/src/lib/utility/avatar/tng-avatar.d.ts +7 -0
  251. package/src/lib/utility/avatar/tng-avatar.d.ts.map +1 -1
  252. package/src/lib/utility/avatar/tng-avatar.js +46 -40
  253. package/src/lib/utility/avatar/tng-avatar.js.map +1 -1
  254. package/src/lib/utility/badge/tng-badge.d.ts +3 -0
  255. package/src/lib/utility/badge/tng-badge.d.ts.map +1 -1
  256. package/src/lib/utility/badge/tng-badge.js +26 -40
  257. package/src/lib/utility/badge/tng-badge.js.map +1 -1
  258. package/src/lib/utility/code-block/tng-code-block.d.ts +11 -0
  259. package/src/lib/utility/code-block/tng-code-block.d.ts.map +1 -1
  260. package/src/lib/utility/code-block/tng-code-block.js +76 -66
  261. package/src/lib/utility/code-block/tng-code-block.js.map +1 -1
  262. package/src/lib/utility/copy/tng-copy.d.ts +3 -0
  263. package/src/lib/utility/copy/tng-copy.d.ts.map +1 -1
  264. package/src/lib/utility/copy/tng-copy.js +44 -52
  265. package/src/lib/utility/copy/tng-copy.js.map +1 -1
  266. package/src/lib/utility/press/tng-press.d.ts +3 -0
  267. package/src/lib/utility/press/tng-press.d.ts.map +1 -1
  268. package/src/lib/utility/press/tng-press.js +55 -61
  269. package/src/lib/utility/press/tng-press.js.map +1 -1
  270. package/src/lib/utility/tag/tng-tag.d.ts +7 -0
  271. package/src/lib/utility/tag/tng-tag.d.ts.map +1 -1
  272. package/src/lib/utility/tag/tng-tag.js +94 -96
  273. package/src/lib/utility/tag/tng-tag.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tng-drawer.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/drawer/tng-drawer.ts"],"names":[],"mappings":"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","sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n forwardRef,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { createScrollLockManager, createTngIdFactory } from '@tailng-ui/cdk';\n\nconst createDrawerContainerId = createTngIdFactory('tng-drawer-container');\nconst createDrawerId = createTngIdFactory('tng-drawer');\n\nconst FOCUSABLE_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n '[contenteditable=\"true\"]',\n].join(',');\n\nexport type TngDrawerAutoBoolean = 'auto' | boolean;\nexport type TngDrawerDirection = 'ltr' | 'rtl' | 'auto';\nexport type TngDrawerMode = 'overlay' | 'push' | 'side';\nexport type TngDrawerPosition = 'start' | 'end';\nexport type TngDrawerRole = 'navigation' | 'dialog' | 'complementary' | 'region';\nexport type TngDrawerAutoFocus = 'drawer' | 'first-focusable' | 'none';\ntype TngResolvedDrawerSide = 'left' | 'right';\ntype TngDrawerLifecycleTransition = 'opening' | 'closing';\ntype TngDrawerOpenSource = 'external' | 'imperative' | 'interaction' | 'initial';\ntype TngDrawerCloseReason = 'imperative' | 'outside' | 'escape' | 'tab' | 'destroy' | 'external';\n\n@Directive({\n selector: '[tngDrawerContainer]',\n exportAs: 'tngDrawerContainer',\n standalone: true,\n})\nexport class TngDrawerContainer {\n private readonly documentRef = inject(DOCUMENT, { optional: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly resolvedId =\n this.hostRef.nativeElement.getAttribute('id') ?? createDrawerContainerId();\n private readonly drawers = new Set<TngDrawer>();\n private readonly contentElements = new Set<TngDrawerContent>();\n private readonly scrollLockManager = createScrollLockManager({\n documentRef: this.documentRef ?? undefined,\n getScrollbarWidth: () => {\n if (this.documentRef === null) {\n return 0;\n }\n\n const windowRef = this.documentRef.defaultView;\n if (windowRef === null) {\n return 0;\n }\n\n const rootWidth = this.documentRef.documentElement?.clientWidth ?? 0;\n return Math.max(0, windowRef.innerWidth - rootWidth);\n },\n });\n\n readonly hasBackdrop = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly closeOthersOnOpen = input<boolean, boolean | string | null | undefined>(true, {\n transform: normalizeBooleanInput,\n });\n readonly animate = input<boolean, boolean | string | null | undefined>(true, {\n transform: normalizeBooleanInput,\n });\n readonly lockScroll = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly dir = input<TngDrawerDirection, TngDrawerDirection | string | null | undefined>('auto', {\n transform: normalizeDirectionInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'drawer-container' as const;\n\n @HostBinding('attr.id')\n readonly id = this.resolvedId;\n\n @HostBinding('attr.data-content-count')\n protected get dataContentCount(): string {\n return String(this.contentElements.size);\n }\n\n @HostBinding('attr.data-content-conflict')\n protected get dataContentConflict(): 'true' | null {\n return this.contentElements.size > 1 ? 'true' : null;\n }\n\n @HostBinding('attr.data-direction')\n protected get dataDirection(): 'ltr' | 'rtl' {\n return this.resolveDirection();\n }\n\n ngDoCheck(): void {\n this.syncDerivedState();\n }\n\n ngOnDestroy(): void {\n this.scrollLockManager.clear();\n }\n\n registerDrawer(drawer: TngDrawer): void {\n this.drawers.add(drawer);\n this.syncDerivedState();\n }\n\n unregisterDrawer(drawer: TngDrawer): void {\n this.drawers.delete(drawer);\n this.syncDerivedState();\n }\n\n registerContent(content: TngDrawerContent): void {\n this.contentElements.add(content);\n this.syncDerivedState();\n }\n\n unregisterContent(content: TngDrawerContent): void {\n this.contentElements.delete(content);\n this.syncDerivedState();\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n containsTarget(target: Node | null): boolean {\n if (target === null) {\n return false;\n }\n\n return this.hostRef.nativeElement.contains(target);\n }\n\n resolveDirection(): 'ltr' | 'rtl' {\n const configuredDirection = this.dir();\n if (configuredDirection !== 'auto') {\n return configuredDirection;\n }\n\n const host = this.hostRef.nativeElement;\n const nearestDirection =\n host.closest<HTMLElement>('[dir]')?.getAttribute('dir') ??\n host.ownerDocument?.documentElement?.getAttribute('dir');\n\n return nearestDirection?.toLowerCase() === 'rtl' ? 'rtl' : 'ltr';\n }\n\n resolveSide(position: TngDrawerPosition): TngResolvedDrawerSide {\n return resolveSideFromDirection(position, this.resolveDirection());\n }\n\n shouldRenderBackdrop(drawer: TngDrawer): boolean {\n const drawerBackdrop = drawer.backdrop();\n if (drawerBackdrop !== 'auto') {\n return drawerBackdrop;\n }\n\n const containerBackdrop = this.hasBackdrop();\n if (containerBackdrop !== 'auto') {\n return containerBackdrop;\n }\n\n return drawer.mode() === 'overlay';\n }\n\n shouldLockScroll(drawer: TngDrawer): boolean {\n const lockPolicy = this.lockScroll();\n if (lockPolicy !== 'auto') {\n return lockPolicy;\n }\n\n return drawer.mode() === 'overlay' && !drawer.resolveAllowBodyScroll();\n }\n\n onDrawerOpenRequest(drawer: TngDrawer): void {\n if (!this.closeOthersOnOpen()) {\n return;\n }\n\n for (const registeredDrawer of this.drawers) {\n if (registeredDrawer === drawer || !registeredDrawer.isOpen()) {\n continue;\n }\n\n registeredDrawer.closeFromContainer();\n }\n }\n\n onDrawerStateChanged(): void {\n this.syncDerivedState();\n }\n\n private syncDerivedState(): void {\n this.syncContentOffsets();\n this.syncContentInertState();\n this.syncBodyScrollLock();\n }\n\n private getOpenDrawers(): readonly TngDrawer[] {\n return Array.from(this.drawers).filter((drawer) => drawer.isOpen());\n }\n\n private syncBodyScrollLock(): void {\n const shouldLock = this.getOpenDrawers().some((drawer) => this.shouldLockScroll(drawer));\n if (shouldLock) {\n this.scrollLockManager.acquire(this.id);\n return;\n }\n\n this.scrollLockManager.release(this.id);\n }\n\n private syncContentInertState(): void {\n const shouldInert = this.getOpenDrawers().some((drawer) => drawer.shouldInertContent());\n for (const content of this.contentElements) {\n content.setInert(shouldInert);\n }\n }\n\n private syncContentOffsets(): void {\n let leftOffset = 0;\n let rightOffset = 0;\n\n for (const drawer of this.getOpenDrawers()) {\n if (!drawer.participatesInContentOffset()) {\n continue;\n }\n\n const side = this.resolveSide(drawer.position());\n const width = drawer.getMeasuredWidth();\n\n if (side === 'left') {\n leftOffset += width;\n } else {\n rightOffset += width;\n }\n }\n\n for (const content of this.contentElements) {\n content.applyOffsets(leftOffset, rightOffset);\n }\n }\n}\n\n@Directive({\n selector: '[tngDrawer]',\n exportAs: 'tngDrawer',\n standalone: true,\n})\nexport class TngDrawer {\n private readonly documentRef = inject(DOCUMENT, { optional: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly container = inject(TngDrawerContainer, { optional: true, host: true });\n private readonly resolvedId = this.hostRef.nativeElement.getAttribute('id') ?? createDrawerId();\n private backdropElement: HTMLElement | null = null;\n private backdropPointerdownListener: ((event: PointerEvent) => void) | null = null;\n private globalPointerdownListener: ((event: PointerEvent) => void) | null = null;\n private globalKeydownListener: ((event: KeyboardEvent) => void) | null = null;\n private lifecycleFallbackHandle: ReturnType<typeof setTimeout> | null = null;\n private pendingLifecycle: TngDrawerLifecycleTransition | null = null;\n private openState = false;\n private lastKnownPosition: TngDrawerPosition = 'start';\n private lastKnownMode: TngDrawerMode = 'overlay';\n private restoreFocusTarget: HTMLElement | null = null;\n private restoreFocusFallback: HTMLElement | null = null;\n private swipeStartX: number | null = null;\n private swipeLastX: number | null = null;\n private swipeStartY: number | null = null;\n private swipeLastY: number | null = null;\n\n readonly openedInput = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'opened',\n transform: normalizeOptionalBooleanInput,\n });\n readonly defaultOpened = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly mode = input<TngDrawerMode, TngDrawerMode | string | null | undefined>('overlay', {\n transform: normalizeModeInput,\n });\n readonly position = input<TngDrawerPosition, TngDrawerPosition | string | null | undefined>('start', {\n transform: normalizePositionInput,\n });\n readonly disabled = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly backdrop = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly closeOnOutsideClickInput = input<boolean | undefined, boolean | string | null | undefined>(\n undefined,\n {\n alias: 'closeOnOutsideClick',\n transform: normalizeOptionalBooleanInput,\n },\n );\n readonly closeOnEscape = input<boolean, boolean | string | null | undefined>(true, {\n transform: normalizeBooleanInput,\n });\n readonly restoreFocus = input<boolean, boolean | string | null | undefined>(true, {\n transform: normalizeBooleanInput,\n });\n readonly autoFocus = input<TngDrawerAutoFocus, TngDrawerAutoFocus | string | null | undefined>(\n 'drawer',\n { transform: normalizeAutoFocusInput },\n );\n readonly trapFocus = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly inertContent = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly allowBodyScrollInput = input<boolean | undefined, boolean | string | null | undefined>(\n undefined,\n {\n alias: 'allowBodyScroll',\n transform: normalizeOptionalBooleanInput,\n },\n );\n readonly closeOnTab = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly role = input<TngDrawerRole, TngDrawerRole | string | null | undefined>('navigation', {\n transform: normalizeRoleInput,\n });\n readonly fixedInViewport = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly fixedTopGap = input<number, number | string | null | undefined>(0, {\n transform: normalizeNumberInput,\n });\n readonly fixedBottomGap = input<number, number | string | null | undefined>(0, {\n transform: normalizeNumberInput,\n });\n readonly swipeToClose = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly openedChange = output<boolean>();\n readonly tngDrawerOpened = output<void>();\n readonly tngDrawerClosed = output<void>();\n readonly openStart = output<void>();\n readonly closeStart = output<void>();\n readonly backdropClick = output<void>();\n readonly positionChange = output<TngDrawerPosition>();\n\n ngOnInit(): void {\n this.container?.registerDrawer(this);\n this.lastKnownPosition = this.position();\n this.lastKnownMode = this.mode();\n\n const controlledValue = this.openedInput();\n this.openState = controlledValue ?? this.defaultOpened();\n\n if (this.openState) {\n this.attachGlobalListeners();\n this.renderBackdropIfNeeded();\n this.container?.onDrawerStateChanged();\n this.queueLifecycleEnd('opening', false);\n }\n }\n\n ngAfterViewInit(): void {\n if (this.openState) {\n this.applyAutoFocus();\n }\n }\n\n ngDoCheck(): void {\n this.syncControlledState();\n this.syncPositionChange();\n this.syncModeChange();\n if (this.openState) {\n this.renderBackdropIfNeeded();\n this.container?.onDrawerStateChanged();\n }\n }\n\n ngOnDestroy(): void {\n if (this.openState) {\n this.performClose({\n emitOpenedChange: false,\n emitLifecycle: true,\n restoreFocus: false,\n reason: 'destroy',\n });\n }\n\n this.teardownInteractions();\n this.container?.unregisterDrawer(this);\n }\n\n isOpen(): boolean {\n return this.openState;\n }\n\n participatesInContentOffset(): boolean {\n const mode = this.mode();\n return mode === 'push' || mode === 'side';\n }\n\n shouldInertContent(): boolean {\n if (!this.openState) {\n return false;\n }\n\n return resolveAutoBoolean(this.inertContent(), this.mode() === 'overlay');\n }\n\n resolveAllowBodyScroll(): boolean {\n const configured = this.allowBodyScrollInput();\n if (configured !== undefined) {\n return configured;\n }\n\n return this.mode() !== 'overlay';\n }\n\n getMeasuredWidth(): number {\n const host = this.hostRef.nativeElement;\n const widthAttr = Number.parseFloat(host.getAttribute('data-width') ?? '');\n if (Number.isFinite(widthAttr) && widthAttr > 0) {\n return widthAttr;\n }\n\n const rectWidth = host.getBoundingClientRect().width;\n if (rectWidth > 0) {\n return rectWidth;\n }\n\n const inlineWidth = Number.parseFloat(host.style.width);\n if (Number.isFinite(inlineWidth) && inlineWidth > 0) {\n return inlineWidth;\n }\n\n return 0;\n }\n\n closeFromContainer(): void {\n this.requestOpenState(false, 'interaction', 'outside');\n }\n\n setRestoreFocusFallback(target: HTMLElement | null): void {\n this.restoreFocusFallback = target;\n }\n\n setRestoreFocusTarget(target: HTMLElement | null): void {\n this.restoreFocusTarget = target;\n }\n\n open(): void {\n this.requestOpenState(true, 'imperative', 'imperative');\n }\n\n close(): void {\n this.requestOpenState(false, 'imperative', 'imperative');\n }\n\n toggle(force?: boolean): void {\n if (force === undefined) {\n this.requestOpenState(!this.openState, 'imperative', 'imperative');\n return;\n }\n\n this.requestOpenState(force, 'imperative', 'imperative');\n }\n\n @HostListener('transitionend', ['$event'])\n protected onTransitionEnd(event: Event): void {\n if (event.target !== this.hostRef.nativeElement) {\n return;\n }\n\n this.flushPendingLifecycle();\n }\n\n @HostListener('pointerdown', ['$event'])\n protected onHostPointerDown(event: PointerEvent): void {\n if (!this.openState || !this.swipeToClose() || this.mode() !== 'overlay') {\n return;\n }\n\n this.swipeStartX = event.clientX;\n this.swipeLastX = event.clientX;\n this.swipeStartY = event.clientY;\n this.swipeLastY = event.clientY;\n }\n\n @HostListener('pointermove', ['$event'])\n protected onHostPointerMove(event: PointerEvent): void {\n if (this.swipeStartX === null) {\n return;\n }\n\n this.swipeLastX = event.clientX;\n this.swipeLastY = event.clientY;\n }\n\n @HostListener('pointerup')\n protected onHostPointerUp(): void {\n if (\n this.swipeStartX === null ||\n this.swipeLastX === null ||\n this.swipeStartY === null ||\n this.swipeLastY === null\n ) {\n this.resetSwipeState();\n return;\n }\n\n const deltaX = this.swipeLastX - this.swipeStartX;\n const deltaY = this.swipeLastY - this.swipeStartY;\n const side = this.resolveEffectiveSide();\n const isHorizontalGesture = Math.abs(deltaX) >= Math.abs(deltaY);\n const shouldClose =\n isHorizontalGesture && ((side === 'left' && deltaX <= -40) || (side === 'right' && deltaX >= 40));\n\n this.resetSwipeState();\n\n if (shouldClose) {\n this.requestOpenState(false, 'interaction', 'outside');\n }\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'drawer' as const;\n\n @HostBinding('attr.id')\n protected readonly id = this.resolvedId;\n\n @HostBinding('attr.role')\n protected get roleAttr(): TngDrawerRole {\n return this.role();\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndexAttr(): string {\n return this.hostRef.nativeElement.getAttribute('tabindex') ?? '-1';\n }\n\n @HostBinding('attr.data-mode')\n protected get dataMode(): TngDrawerMode {\n return this.mode();\n }\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n return this.openState ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-open')\n protected get dataOpen(): 'true' | 'false' {\n return this.openState ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-position')\n protected get dataPosition(): TngDrawerPosition {\n return this.position();\n }\n\n @HostBinding('attr.data-effective-position')\n protected get dataEffectivePosition(): TngResolvedDrawerSide {\n return this.resolveEffectiveSide();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.data-container-id')\n protected get dataContainerId(): string | null {\n return this.container?.id ?? null;\n }\n\n @HostBinding('attr.data-container-missing')\n protected get dataContainerMissing(): 'true' | null {\n return this.container === null ? 'true' : null;\n }\n\n @HostBinding('attr.hidden')\n protected get hiddenAttr(): '' | null {\n return this.openState ? null : '';\n }\n\n @HostBinding('attr.aria-modal')\n protected get ariaModal(): 'true' | null {\n if (this.role() !== 'dialog' || this.mode() !== 'overlay' || !this.openState) {\n return null;\n }\n\n return 'true';\n }\n\n @HostBinding('style.position')\n protected get positionStyle(): 'fixed' | null {\n return this.fixedInViewport() ? 'fixed' : null;\n }\n\n @HostBinding('style.top')\n protected get topStyle(): string | null {\n if (!this.fixedInViewport()) {\n return null;\n }\n\n return `${Math.max(0, this.fixedTopGap())}px`;\n }\n\n @HostBinding('style.bottom')\n protected get bottomStyle(): string | null {\n if (!this.fixedInViewport()) {\n return null;\n }\n\n return `${Math.max(0, this.fixedBottomGap())}px`;\n }\n\n @HostBinding('style.left')\n protected get leftStyle(): string | null {\n if (!this.fixedInViewport() || this.resolveEffectiveSide() !== 'left') {\n return null;\n }\n\n return '0px';\n }\n\n @HostBinding('style.right')\n protected get rightStyle(): string | null {\n if (!this.fixedInViewport() || this.resolveEffectiveSide() !== 'right') {\n return null;\n }\n\n return '0px';\n }\n\n private syncControlledState(): void {\n const controlledValue = this.openedInput();\n if (controlledValue === undefined || controlledValue === this.openState) {\n return;\n }\n\n if (controlledValue) {\n this.performOpen({\n emitOpenedChange: false,\n emitLifecycle: true,\n source: 'external',\n });\n return;\n }\n\n this.performClose({\n emitOpenedChange: false,\n emitLifecycle: true,\n restoreFocus: false,\n reason: 'external',\n });\n }\n\n private syncPositionChange(): void {\n const currentPosition = this.position();\n if (currentPosition === this.lastKnownPosition) {\n return;\n }\n\n this.lastKnownPosition = currentPosition;\n this.positionChange.emit(currentPosition);\n this.container?.onDrawerStateChanged();\n }\n\n private syncModeChange(): void {\n const currentMode = this.mode();\n if (currentMode === this.lastKnownMode) {\n return;\n }\n\n this.lastKnownMode = currentMode;\n if (this.openState) {\n this.renderBackdropIfNeeded();\n }\n this.container?.onDrawerStateChanged();\n }\n\n private requestOpenState(nextOpen: boolean, source: TngDrawerOpenSource, reason: TngDrawerCloseReason): void {\n if (nextOpen && this.disabled()) {\n return;\n }\n\n if (this.openedInput() !== undefined) {\n const currentControlledValue = this.openedInput() ?? false;\n if (source !== 'external' && currentControlledValue !== nextOpen) {\n this.openedChange.emit(nextOpen);\n }\n return;\n }\n\n if (nextOpen === this.openState) {\n return;\n }\n\n if (nextOpen) {\n this.performOpen({\n emitOpenedChange: source !== 'initial' && source !== 'external',\n emitLifecycle: source !== 'initial',\n source,\n });\n return;\n }\n\n this.performClose({\n emitOpenedChange: source !== 'initial' && source !== 'external',\n emitLifecycle: source !== 'initial',\n restoreFocus: reason !== 'tab',\n reason,\n });\n }\n\n private performOpen(options: Readonly<{\n emitOpenedChange: boolean;\n emitLifecycle: boolean;\n source: TngDrawerOpenSource;\n }>): void {\n if (this.openState) {\n return;\n }\n\n this.container?.onDrawerOpenRequest(this);\n\n this.captureRestoreFocusTarget();\n this.openState = true;\n this.attachGlobalListeners();\n this.renderBackdropIfNeeded();\n this.container?.onDrawerStateChanged();\n\n if (options.emitOpenedChange) {\n this.openedChange.emit(true);\n }\n\n if (options.emitLifecycle) {\n this.startLifecycle('opening');\n }\n\n if (options.source !== 'external') {\n this.applyAutoFocus();\n }\n }\n\n private performClose(options: Readonly<{\n emitOpenedChange: boolean;\n emitLifecycle: boolean;\n restoreFocus: boolean;\n reason: TngDrawerCloseReason;\n }>): void {\n if (!this.openState) {\n return;\n }\n\n this.openState = false;\n this.teardownInteractions();\n this.container?.onDrawerStateChanged();\n\n if (options.emitOpenedChange) {\n this.openedChange.emit(false);\n }\n\n if (options.emitLifecycle) {\n this.startLifecycle('closing');\n }\n\n if (options.restoreFocus && this.restoreFocus()) {\n this.restoreFocusToTarget();\n }\n }\n\n private captureRestoreFocusTarget(): void {\n const activeElement = this.documentRef?.activeElement;\n this.restoreFocusTarget = activeElement instanceof HTMLElement ? activeElement : null;\n }\n\n private restoreFocusToTarget(): void {\n if (this.restoreFocusTarget?.isConnected) {\n this.restoreFocusTarget.focus();\n return;\n }\n\n if (this.restoreFocusFallback?.isConnected) {\n this.restoreFocusFallback.focus();\n return;\n }\n\n this.documentRef?.body?.focus?.();\n }\n\n private applyAutoFocus(): void {\n const strategy = this.autoFocus();\n if (strategy === 'none') {\n return;\n }\n\n if (strategy === 'first-focusable') {\n const firstFocusable = this.getFocusableElements()[0];\n if (firstFocusable !== undefined) {\n firstFocusable.focus();\n return;\n }\n }\n\n this.hostRef.nativeElement.focus();\n }\n\n private getFocusableElements(): readonly HTMLElement[] {\n const host = this.hostRef.nativeElement;\n const candidates = Array.from(host.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR));\n return candidates.filter((element) => !element.hasAttribute('disabled') && element.tabIndex >= 0);\n }\n\n private resolveEffectiveSide(): TngResolvedDrawerSide {\n return this.container?.resolveSide(this.position()) ?? resolveSideFromDirection(this.position(), 'ltr');\n }\n\n private startLifecycle(transition: TngDrawerLifecycleTransition): void {\n this.clearPendingLifecycle();\n\n if (transition === 'opening') {\n this.openStart.emit();\n } else {\n this.closeStart.emit();\n }\n\n if (!this.container?.animate()) {\n if (transition === 'opening') {\n this.tngDrawerOpened.emit();\n } else {\n this.tngDrawerClosed.emit();\n }\n return;\n }\n\n this.queueLifecycleEnd(transition, true);\n }\n\n private queueLifecycleEnd(transition: TngDrawerLifecycleTransition, withFallback: boolean): void {\n this.pendingLifecycle = transition;\n\n if (!withFallback) {\n return;\n }\n\n this.lifecycleFallbackHandle = setTimeout(() => {\n this.flushPendingLifecycle();\n }, 60);\n }\n\n private flushPendingLifecycle(): void {\n if (this.pendingLifecycle === null) {\n return;\n }\n\n const transition = this.pendingLifecycle;\n this.clearPendingLifecycle();\n\n if (transition === 'opening') {\n this.tngDrawerOpened.emit();\n return;\n }\n\n this.tngDrawerClosed.emit();\n }\n\n private clearPendingLifecycle(): void {\n this.pendingLifecycle = null;\n\n if (this.lifecycleFallbackHandle !== null) {\n clearTimeout(this.lifecycleFallbackHandle);\n this.lifecycleFallbackHandle = null;\n }\n }\n\n private attachGlobalListeners(): void {\n if (this.documentRef === null) {\n return;\n }\n\n if (this.globalPointerdownListener === null) {\n this.globalPointerdownListener = (event: PointerEvent): void => this.handleDocumentPointerDown(event);\n this.documentRef.addEventListener('pointerdown', this.globalPointerdownListener, true);\n }\n\n if (this.globalKeydownListener === null) {\n this.globalKeydownListener = (event: KeyboardEvent): void => this.handleDocumentKeydown(event);\n this.documentRef.addEventListener('keydown', this.globalKeydownListener, true);\n }\n }\n\n private teardownInteractions(): void {\n this.detachGlobalListeners();\n this.destroyBackdrop();\n this.clearPendingLifecycle();\n this.resetSwipeState();\n }\n\n private detachGlobalListeners(): void {\n if (this.documentRef === null) {\n return;\n }\n\n if (this.globalPointerdownListener !== null) {\n this.documentRef.removeEventListener('pointerdown', this.globalPointerdownListener, true);\n this.globalPointerdownListener = null;\n }\n\n if (this.globalKeydownListener !== null) {\n this.documentRef.removeEventListener('keydown', this.globalKeydownListener, true);\n this.globalKeydownListener = null;\n }\n }\n\n private renderBackdropIfNeeded(): void {\n if (!this.openState || !this.resolveBackdropEnabled()) {\n this.destroyBackdrop();\n return;\n }\n\n if (this.backdropElement !== null) {\n return;\n }\n\n const targetHost = this.container?.getHostElement() ?? this.hostRef.nativeElement.parentElement;\n if (targetHost === null) {\n return;\n }\n\n const backdrop = this.documentRef?.createElement('div');\n if (backdrop === undefined || backdrop === null) {\n return;\n }\n\n backdrop.setAttribute('data-slot', 'drawer-backdrop');\n backdrop.setAttribute('data-owner', this.id);\n backdrop.setAttribute('role', 'presentation');\n backdrop.setAttribute('tabindex', '-1');\n backdrop.setAttribute('aria-hidden', 'true');\n backdrop.setAttribute('data-open', 'true');\n\n this.backdropPointerdownListener = (event: PointerEvent): void => {\n this.backdropClick.emit();\n\n if (this.resolveCloseOnOutsideClick()) {\n this.requestOpenState(false, 'interaction', 'outside');\n }\n\n event.preventDefault();\n event.stopPropagation();\n };\n backdrop.addEventListener('pointerdown', this.backdropPointerdownListener);\n\n targetHost.insertBefore(backdrop, this.hostRef.nativeElement);\n this.backdropElement = backdrop;\n }\n\n private destroyBackdrop(): void {\n if (this.backdropElement === null) {\n return;\n }\n\n if (this.backdropPointerdownListener !== null) {\n this.backdropElement.removeEventListener('pointerdown', this.backdropPointerdownListener);\n this.backdropPointerdownListener = null;\n }\n\n this.backdropElement.remove();\n this.backdropElement = null;\n }\n\n private resolveBackdropEnabled(): boolean {\n if (this.container !== null) {\n return this.container.shouldRenderBackdrop(this);\n }\n\n return resolveAutoBoolean(this.backdrop(), this.mode() === 'overlay');\n }\n\n private resolveCloseOnOutsideClick(): boolean {\n const configured = this.closeOnOutsideClickInput();\n if (configured !== undefined) {\n return configured;\n }\n\n return this.mode() === 'overlay';\n }\n\n private resolveTrapFocus(): boolean {\n return resolveAutoBoolean(this.trapFocus(), this.mode() === 'overlay');\n }\n\n private handleDocumentPointerDown(event: PointerEvent): void {\n if (!this.openState || !this.resolveCloseOnOutsideClick()) {\n return;\n }\n\n const target = event.target;\n if (!(target instanceof Node)) {\n return;\n }\n\n if (this.hostRef.nativeElement.contains(target)) {\n return;\n }\n\n if (this.backdropElement?.contains(target) === true) {\n return;\n }\n\n if (this.container?.containsTarget(target) === true) {\n return;\n }\n\n if (this.isScrollbarPointerDown(event, target)) {\n return;\n }\n\n this.requestOpenState(false, 'interaction', 'outside');\n }\n\n private handleDocumentKeydown(event: KeyboardEvent): void {\n if (!this.openState) {\n return;\n }\n\n if (event.key === 'Escape') {\n if (!this.closeOnEscape()) {\n return;\n }\n\n event.preventDefault();\n this.requestOpenState(false, 'interaction', 'escape');\n return;\n }\n\n if (event.key !== 'Tab') {\n return;\n }\n\n if (this.resolveTrapFocus()) {\n this.handleTrappedTab(event);\n return;\n }\n\n if (this.closeOnTab()) {\n this.requestOpenState(false, 'interaction', 'tab');\n }\n }\n\n private handleTrappedTab(event: KeyboardEvent): void {\n const focusable = this.getFocusableElements();\n const host = this.hostRef.nativeElement;\n if (focusable.length === 0) {\n event.preventDefault();\n host.focus();\n return;\n }\n\n const currentActive = this.documentRef?.activeElement;\n const currentIndex = currentActive instanceof HTMLElement ? focusable.indexOf(currentActive) : -1;\n\n const nextIndex = event.shiftKey\n ? currentIndex <= 0\n ? focusable.length - 1\n : currentIndex - 1\n : currentIndex < 0 || currentIndex >= focusable.length - 1\n ? 0\n : currentIndex + 1;\n\n event.preventDefault();\n focusable[nextIndex]?.focus();\n }\n\n private resetSwipeState(): void {\n this.swipeStartX = null;\n this.swipeLastX = null;\n this.swipeStartY = null;\n this.swipeLastY = null;\n }\n\n private isScrollbarPointerDown(event: PointerEvent, target: Node): boolean {\n if (this.documentRef === null) {\n return false;\n }\n\n const root = this.documentRef.documentElement;\n if (target !== root && target !== this.documentRef.body) {\n return false;\n }\n\n const viewportWidth = root.clientWidth;\n const viewportHeight = root.clientHeight;\n const onVerticalScrollbar = event.clientX >= viewportWidth && event.clientX > 0;\n const onHorizontalScrollbar = event.clientY >= viewportHeight && event.clientY > 0;\n\n return onVerticalScrollbar || onHorizontalScrollbar;\n }\n}\n\n@Directive({\n selector: '[tngDrawerContent]',\n exportAs: 'tngDrawerContent',\n standalone: true,\n})\nexport class TngDrawerContent {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly container = inject(TngDrawerContainer, { optional: true, host: true });\n\n ngOnInit(): void {\n this.container?.registerContent(this);\n }\n\n ngOnDestroy(): void {\n this.container?.unregisterContent(this);\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'drawer-content' as const;\n\n @HostBinding('attr.data-container-id')\n protected get dataContainerId(): string | null {\n return this.container?.id ?? null;\n }\n\n @HostBinding('attr.data-container-missing')\n protected get dataContainerMissing(): 'true' | null {\n return this.container === null ? 'true' : null;\n }\n\n applyOffsets(leftOffset: number, rightOffset: number): void {\n const host = this.hostRef.nativeElement;\n host.style.marginLeft = leftOffset > 0 ? `${leftOffset}px` : '';\n host.style.marginRight = rightOffset > 0 ? `${rightOffset}px` : '';\n host.setAttribute('data-offset-left', String(leftOffset));\n host.setAttribute('data-offset-right', String(rightOffset));\n host.setAttribute('data-shifted', leftOffset > 0 || rightOffset > 0 ? 'true' : 'false');\n }\n\n setInert(nextInert: boolean): void {\n const host = this.hostRef.nativeElement;\n if (nextInert) {\n host.setAttribute('inert', '');\n host.setAttribute('aria-hidden', 'true');\n try {\n (host as HTMLElement & { inert?: boolean }).inert = true;\n } catch {\n // noop: inert is not writable in some environments.\n }\n return;\n }\n\n host.removeAttribute('inert');\n host.removeAttribute('aria-hidden');\n try {\n (host as HTMLElement & { inert?: boolean }).inert = false;\n } catch {\n // noop: inert is not writable in some environments.\n }\n }\n}\n\n@Directive({\n selector: '[tngSidenavContainer]',\n exportAs: 'tngSidenavContainer',\n standalone: true,\n providers: [\n {\n provide: TngDrawerContainer,\n useExisting: forwardRef(() => TngSidenavContainer),\n },\n ],\n})\nexport class TngSidenavContainer extends TngDrawerContainer {}\n\n@Directive({\n selector: '[tngSidenav]',\n exportAs: 'tngSidenav',\n standalone: true,\n providers: [\n {\n provide: TngDrawer,\n useExisting: forwardRef(() => TngSidenav),\n },\n ],\n})\nexport class TngSidenav extends TngDrawer {}\n\n@Directive({\n selector: '[tngSidenavContent]',\n exportAs: 'tngSidenavContent',\n standalone: true,\n providers: [\n {\n provide: TngDrawerContent,\n useExisting: forwardRef(() => TngSidenavContent),\n },\n ],\n})\nexport class TngSidenavContent extends TngDrawerContent {}\n\nfunction normalizeBooleanInput(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === '' || normalized === 'true') {\n return true;\n }\n if (normalized === 'false') {\n return false;\n }\n }\n\n return Boolean(value);\n}\n\nfunction normalizeOptionalBooleanInput(value: unknown): boolean | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return normalizeBooleanInput(value);\n}\n\nfunction normalizeAutoBooleanInput(value: unknown): TngDrawerAutoBoolean {\n if (typeof value === 'string' && value.trim().toLowerCase() === 'auto') {\n return 'auto';\n }\n\n if (value === undefined || value === null) {\n return 'auto';\n }\n\n return normalizeBooleanInput(value);\n}\n\nfunction resolveAutoBoolean(value: TngDrawerAutoBoolean, fallbackWhenAuto: boolean): boolean {\n return value === 'auto' ? fallbackWhenAuto : value;\n}\n\nfunction normalizeModeInput(value: unknown): TngDrawerMode {\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === 'push' || normalized === 'side' || normalized === 'overlay') {\n return normalized;\n }\n }\n\n return 'overlay';\n}\n\nfunction normalizePositionInput(value: unknown): TngDrawerPosition {\n if (typeof value === 'string' && value.trim().toLowerCase() === 'end') {\n return 'end';\n }\n\n return 'start';\n}\n\nfunction normalizeDirectionInput(value: unknown): TngDrawerDirection {\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === 'rtl' || normalized === 'ltr' || normalized === 'auto') {\n return normalized;\n }\n }\n\n return 'auto';\n}\n\nfunction normalizeRoleInput(value: unknown): TngDrawerRole {\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (\n normalized === 'dialog' ||\n normalized === 'complementary' ||\n normalized === 'navigation' ||\n normalized === 'region'\n ) {\n return normalized;\n }\n }\n\n return 'navigation';\n}\n\nfunction normalizeAutoFocusInput(value: unknown): TngDrawerAutoFocus {\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === 'first-focusable') {\n return 'first-focusable';\n }\n if (normalized === 'none') {\n return 'none';\n }\n }\n\n return 'drawer';\n}\n\nfunction normalizeNumberInput(value: unknown): number {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return value;\n }\n\n if (typeof value === 'string') {\n const parsed = Number.parseFloat(value);\n if (Number.isFinite(parsed)) {\n return parsed;\n }\n }\n\n return 0;\n}\n\nfunction resolveSideFromDirection(position: TngDrawerPosition, direction: 'ltr' | 'rtl'): TngResolvedDrawerSide {\n if (position === 'start') {\n return direction === 'rtl' ? 'right' : 'left';\n }\n\n return direction === 'rtl' ? 'left' : 'right';\n}\n"]}
1
+ {"version":3,"file":"tng-drawer.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/drawer/tng-drawer.ts"],"names":[],"mappings":"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","sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n forwardRef,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { createScrollLockManager, createTngIdFactory } from '@tailng-ui/cdk';\n\nconst createDrawerContainerId = createTngIdFactory('tng-drawer-container');\nconst createDrawerId = createTngIdFactory('tng-drawer');\n\nconst FOCUSABLE_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n '[contenteditable=\"true\"]',\n].join(',');\n\nexport type TngDrawerAutoBoolean = 'auto' | boolean;\nexport type TngDrawerDirection = 'ltr' | 'rtl' | 'auto';\nexport type TngDrawerMode = 'overlay' | 'push' | 'side';\nexport type TngDrawerPosition = 'start' | 'end';\nexport type TngDrawerRole = 'navigation' | 'dialog' | 'complementary' | 'region';\nexport type TngDrawerAutoFocus = 'drawer' | 'first-focusable' | 'none';\ntype TngResolvedDrawerSide = 'left' | 'right';\ntype TngDrawerLifecycleTransition = 'opening' | 'closing';\ntype TngDrawerOpenSource = 'external' | 'imperative' | 'interaction' | 'initial';\ntype TngDrawerCloseReason = 'imperative' | 'outside' | 'escape' | 'tab' | 'destroy' | 'external';\n\n@Directive({\n selector: '[tngDrawerContainer]',\n exportAs: 'tngDrawerContainer',\n standalone: true,\n})\nexport class TngDrawerContainer {\n private readonly documentRef = inject(DOCUMENT, { optional: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly resolvedId =\n this.hostRef.nativeElement.getAttribute('id') ?? createDrawerContainerId();\n private readonly drawers = new Set<TngDrawer>();\n private readonly contentElements = new Set<TngDrawerContent>();\n private readonly scrollLockManager = createScrollLockManager({\n documentRef: this.documentRef ?? undefined,\n getScrollbarWidth: () => {\n if (this.documentRef === null) {\n return 0;\n }\n\n const windowRef = this.documentRef.defaultView;\n if (windowRef === null) {\n return 0;\n }\n\n const rootWidth = this.documentRef.documentElement?.clientWidth ?? 0;\n return Math.max(0, windowRef.innerWidth - rootWidth);\n },\n });\n\n readonly hasBackdrop = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly closeOthersOnOpen = input<boolean, boolean | string | null | undefined>(true, {\n transform: normalizeBooleanInput,\n });\n readonly animate = input<boolean, boolean | string | null | undefined>(true, {\n transform: normalizeBooleanInput,\n });\n readonly lockScroll = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly dir = input<TngDrawerDirection, TngDrawerDirection | string | null | undefined>('auto', {\n transform: normalizeDirectionInput,\n });\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'drawer-container' as const;\n\n @HostBinding('attr.id')\n readonly id = this.resolvedId;\n\n @HostBinding('attr.data-content-count')\n protected get dataContentCount(): string {\n return String(this.contentElements.size);\n }\n\n @HostBinding('attr.data-content-conflict')\n protected get dataContentConflict(): 'true' | null {\n return this.contentElements.size > 1 ? 'true' : null;\n }\n\n @HostBinding('attr.data-direction')\n protected get dataDirection(): 'ltr' | 'rtl' {\n return this.resolveDirection();\n }\n\n ngDoCheck(): void {\n this.syncDerivedState();\n }\n\n ngOnDestroy(): void {\n this.scrollLockManager.clear();\n }\n\n registerDrawer(drawer: TngDrawer): void {\n this.drawers.add(drawer);\n this.syncDerivedState();\n }\n\n unregisterDrawer(drawer: TngDrawer): void {\n this.drawers.delete(drawer);\n this.syncDerivedState();\n }\n\n registerContent(content: TngDrawerContent): void {\n this.contentElements.add(content);\n this.syncDerivedState();\n }\n\n unregisterContent(content: TngDrawerContent): void {\n this.contentElements.delete(content);\n this.syncDerivedState();\n }\n\n getHostElement(): HTMLElement {\n return this.hostRef.nativeElement;\n }\n\n containsTarget(target: Node | null): boolean {\n if (target === null) {\n return false;\n }\n\n return this.hostRef.nativeElement.contains(target);\n }\n\n resolveDirection(): 'ltr' | 'rtl' {\n const configuredDirection = this.dir();\n if (configuredDirection !== 'auto') {\n return configuredDirection;\n }\n\n const host = this.hostRef.nativeElement;\n const nearestDirection =\n host.closest<HTMLElement>('[dir]')?.getAttribute('dir') ??\n host.ownerDocument?.documentElement?.getAttribute('dir');\n\n return nearestDirection?.toLowerCase() === 'rtl' ? 'rtl' : 'ltr';\n }\n\n resolveSide(position: TngDrawerPosition): TngResolvedDrawerSide {\n return resolveSideFromDirection(position, this.resolveDirection());\n }\n\n shouldRenderBackdrop(drawer: TngDrawer): boolean {\n const drawerBackdrop = drawer.backdrop();\n if (drawerBackdrop !== 'auto') {\n return drawerBackdrop;\n }\n\n const containerBackdrop = this.hasBackdrop();\n if (containerBackdrop !== 'auto') {\n return containerBackdrop;\n }\n\n return drawer.mode() === 'overlay';\n }\n\n shouldLockScroll(drawer: TngDrawer): boolean {\n const lockPolicy = this.lockScroll();\n if (lockPolicy !== 'auto') {\n return lockPolicy;\n }\n\n return drawer.mode() === 'overlay' && !drawer.resolveAllowBodyScroll();\n }\n\n onDrawerOpenRequest(drawer: TngDrawer): void {\n if (!this.closeOthersOnOpen()) {\n return;\n }\n\n for (const registeredDrawer of this.drawers) {\n if (registeredDrawer === drawer || !registeredDrawer.isOpen()) {\n continue;\n }\n\n registeredDrawer.closeFromContainer();\n }\n }\n\n onDrawerStateChanged(): void {\n this.syncDerivedState();\n }\n\n private syncDerivedState(): void {\n this.syncContentOffsets();\n this.syncContentInertState();\n this.syncBodyScrollLock();\n }\n\n private getOpenDrawers(): readonly TngDrawer[] {\n return Array.from(this.drawers).filter((drawer) => drawer.isOpen());\n }\n\n private syncBodyScrollLock(): void {\n const shouldLock = this.getOpenDrawers().some((drawer) => this.shouldLockScroll(drawer));\n if (shouldLock) {\n this.scrollLockManager.acquire(this.id);\n return;\n }\n\n this.scrollLockManager.release(this.id);\n }\n\n private syncContentInertState(): void {\n const shouldInert = this.getOpenDrawers().some((drawer) => drawer.shouldInertContent());\n for (const content of this.contentElements) {\n content.setInert(shouldInert);\n }\n }\n\n private syncContentOffsets(): void {\n let leftOffset = 0;\n let rightOffset = 0;\n\n for (const drawer of this.getOpenDrawers()) {\n if (!drawer.participatesInContentOffset()) {\n continue;\n }\n\n const side = this.resolveSide(drawer.position());\n const width = drawer.getMeasuredWidth();\n\n if (side === 'left') {\n leftOffset += width;\n } else {\n rightOffset += width;\n }\n }\n\n for (const content of this.contentElements) {\n content.applyOffsets(leftOffset, rightOffset);\n }\n }\n}\n\n@Directive({\n selector: '[tngDrawer]',\n exportAs: 'tngDrawer',\n standalone: true,\n})\nexport class TngDrawer {\n private readonly documentRef = inject(DOCUMENT, { optional: true });\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly container = inject(TngDrawerContainer, { optional: true, host: true });\n private readonly resolvedId = this.hostRef.nativeElement.getAttribute('id') ?? createDrawerId();\n private backdropElement: HTMLElement | null = null;\n private backdropPointerdownListener: ((event: PointerEvent) => void) | null = null;\n private globalPointerdownListener: ((event: PointerEvent) => void) | null = null;\n private globalKeydownListener: ((event: KeyboardEvent) => void) | null = null;\n private lifecycleFallbackHandle: ReturnType<typeof setTimeout> | null = null;\n private pendingLifecycle: TngDrawerLifecycleTransition | null = null;\n private openState = false;\n private lastKnownPosition: TngDrawerPosition = 'start';\n private lastKnownMode: TngDrawerMode = 'overlay';\n private restoreFocusTarget: HTMLElement | null = null;\n private restoreFocusFallback: HTMLElement | null = null;\n private swipeStartX: number | null = null;\n private swipeLastX: number | null = null;\n private swipeStartY: number | null = null;\n private swipeLastY: number | null = null;\n\n readonly openedInput = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'opened',\n transform: normalizeOptionalBooleanInput,\n });\n readonly defaultOpened = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly mode = input<TngDrawerMode, TngDrawerMode | string | null | undefined>('overlay', {\n transform: normalizeModeInput,\n });\n readonly position = input<TngDrawerPosition, TngDrawerPosition | string | null | undefined>('start', {\n transform: normalizePositionInput,\n });\n readonly disabled = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly backdrop = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly closeOnOutsideClickInput = input<boolean | undefined, boolean | string | null | undefined>(\n undefined,\n {\n alias: 'closeOnOutsideClick',\n transform: normalizeOptionalBooleanInput,\n },\n );\n readonly closeOnEscape = input<boolean, boolean | string | null | undefined>(true, {\n transform: normalizeBooleanInput,\n });\n readonly restoreFocus = input<boolean, boolean | string | null | undefined>(true, {\n transform: normalizeBooleanInput,\n });\n readonly autoFocus = input<TngDrawerAutoFocus, TngDrawerAutoFocus | string | null | undefined>(\n 'drawer',\n { transform: normalizeAutoFocusInput },\n );\n readonly trapFocus = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly inertContent = input<TngDrawerAutoBoolean, TngDrawerAutoBoolean | string | null | undefined>(\n 'auto',\n { transform: normalizeAutoBooleanInput },\n );\n readonly allowBodyScrollInput = input<boolean | undefined, boolean | string | null | undefined>(\n undefined,\n {\n alias: 'allowBodyScroll',\n transform: normalizeOptionalBooleanInput,\n },\n );\n readonly closeOnTab = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly role = input<TngDrawerRole, TngDrawerRole | string | null | undefined>('navigation', {\n transform: normalizeRoleInput,\n });\n readonly fixedInViewport = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly fixedTopGap = input<number, number | string | null | undefined>(0, {\n transform: normalizeNumberInput,\n });\n readonly fixedBottomGap = input<number, number | string | null | undefined>(0, {\n transform: normalizeNumberInput,\n });\n readonly swipeToClose = input<boolean, boolean | string | null | undefined>(false, {\n transform: normalizeBooleanInput,\n });\n readonly openedChange = output<boolean>();\n readonly tngDrawerOpened = output<void>();\n readonly tngDrawerClosed = output<void>();\n readonly openStart = output<void>();\n readonly closeStart = output<void>();\n readonly backdropClick = output<void>();\n readonly positionChange = output<TngDrawerPosition>();\n\n ngOnInit(): void {\n this.container?.registerDrawer(this);\n this.lastKnownPosition = this.position();\n this.lastKnownMode = this.mode();\n\n const controlledValue = this.openedInput();\n this.openState = controlledValue ?? this.defaultOpened();\n\n if (this.openState) {\n this.attachGlobalListeners();\n this.renderBackdropIfNeeded();\n this.container?.onDrawerStateChanged();\n this.queueLifecycleEnd('opening', false);\n }\n }\n\n ngAfterViewInit(): void {\n if (this.openState) {\n this.applyAutoFocus();\n }\n }\n\n ngDoCheck(): void {\n this.syncControlledState();\n this.syncPositionChange();\n this.syncModeChange();\n if (this.openState) {\n this.renderBackdropIfNeeded();\n this.container?.onDrawerStateChanged();\n }\n }\n\n ngOnDestroy(): void {\n if (this.openState) {\n this.performClose({\n emitOpenedChange: false,\n emitLifecycle: true,\n restoreFocus: false,\n reason: 'destroy',\n });\n }\n\n this.teardownInteractions();\n this.container?.unregisterDrawer(this);\n }\n\n isOpen(): boolean {\n return this.openState;\n }\n\n participatesInContentOffset(): boolean {\n const mode = this.mode();\n return mode === 'push' || mode === 'side';\n }\n\n shouldInertContent(): boolean {\n if (!this.openState) {\n return false;\n }\n\n return resolveAutoBoolean(this.inertContent(), this.mode() === 'overlay');\n }\n\n resolveAllowBodyScroll(): boolean {\n const configured = this.allowBodyScrollInput();\n if (configured !== undefined) {\n return configured;\n }\n\n return this.mode() !== 'overlay';\n }\n\n getMeasuredWidth(): number {\n const host = this.hostRef.nativeElement;\n const widthAttr = Number.parseFloat(host.getAttribute('data-width') ?? '');\n if (Number.isFinite(widthAttr) && widthAttr > 0) {\n return widthAttr;\n }\n\n const rectWidth = host.getBoundingClientRect().width;\n if (rectWidth > 0) {\n return rectWidth;\n }\n\n const inlineWidth = Number.parseFloat(host.style.width);\n if (Number.isFinite(inlineWidth) && inlineWidth > 0) {\n return inlineWidth;\n }\n\n return 0;\n }\n\n closeFromContainer(): void {\n this.requestOpenState(false, 'interaction', 'outside');\n }\n\n setRestoreFocusFallback(target: HTMLElement | null): void {\n this.restoreFocusFallback = target;\n }\n\n setRestoreFocusTarget(target: HTMLElement | null): void {\n this.restoreFocusTarget = target;\n }\n\n open(): void {\n this.requestOpenState(true, 'imperative', 'imperative');\n }\n\n close(): void {\n this.requestOpenState(false, 'imperative', 'imperative');\n }\n\n toggle(force?: boolean): void {\n if (force === undefined) {\n this.requestOpenState(!this.openState, 'imperative', 'imperative');\n return;\n }\n\n this.requestOpenState(force, 'imperative', 'imperative');\n }\n\n @HostListener('transitionend', ['$event'])\n protected onTransitionEnd(event: Event): void {\n if (event.target !== this.hostRef.nativeElement) {\n return;\n }\n\n this.flushPendingLifecycle();\n }\n\n @HostListener('pointerdown', ['$event'])\n protected onHostPointerDown(event: PointerEvent): void {\n if (!this.openState || !this.swipeToClose() || this.mode() !== 'overlay') {\n return;\n }\n\n this.swipeStartX = event.clientX;\n this.swipeLastX = event.clientX;\n this.swipeStartY = event.clientY;\n this.swipeLastY = event.clientY;\n }\n\n @HostListener('pointermove', ['$event'])\n protected onHostPointerMove(event: PointerEvent): void {\n if (this.swipeStartX === null) {\n return;\n }\n\n this.swipeLastX = event.clientX;\n this.swipeLastY = event.clientY;\n }\n\n @HostListener('pointerup')\n protected onHostPointerUp(): void {\n if (\n this.swipeStartX === null ||\n this.swipeLastX === null ||\n this.swipeStartY === null ||\n this.swipeLastY === null\n ) {\n this.resetSwipeState();\n return;\n }\n\n const deltaX = this.swipeLastX - this.swipeStartX;\n const deltaY = this.swipeLastY - this.swipeStartY;\n const side = this.resolveEffectiveSide();\n const isHorizontalGesture = Math.abs(deltaX) >= Math.abs(deltaY);\n const shouldClose =\n isHorizontalGesture && ((side === 'left' && deltaX <= -40) || (side === 'right' && deltaX >= 40));\n\n this.resetSwipeState();\n\n if (shouldClose) {\n this.requestOpenState(false, 'interaction', 'outside');\n }\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'drawer' as const;\n\n @HostBinding('attr.id')\n protected readonly id = this.resolvedId;\n\n @HostBinding('attr.role')\n protected get roleAttr(): TngDrawerRole {\n return this.role();\n }\n\n @HostBinding('attr.tabindex')\n protected get tabIndexAttr(): string {\n return this.hostRef.nativeElement.getAttribute('tabindex') ?? '-1';\n }\n\n @HostBinding('attr.data-mode')\n protected get dataMode(): TngDrawerMode {\n return this.mode();\n }\n\n @HostBinding('attr.data-state')\n protected get dataState(): 'open' | 'closed' {\n return this.openState ? 'open' : 'closed';\n }\n\n @HostBinding('attr.data-open')\n protected get dataOpen(): 'true' | 'false' {\n return this.openState ? 'true' : 'false';\n }\n\n @HostBinding('attr.data-position')\n protected get dataPosition(): TngDrawerPosition {\n return this.position();\n }\n\n @HostBinding('attr.data-effective-position')\n protected get dataEffectivePosition(): TngResolvedDrawerSide {\n return this.resolveEffectiveSide();\n }\n\n @HostBinding('attr.data-disabled')\n protected get dataDisabled(): 'true' | 'false' {\n return this.disabled() ? 'true' : 'false';\n }\n\n @HostBinding('attr.aria-disabled')\n protected get ariaDisabled(): 'true' | null {\n return this.disabled() ? 'true' : null;\n }\n\n @HostBinding('attr.data-container-id')\n protected get dataContainerId(): string | null {\n return this.container?.id ?? null;\n }\n\n @HostBinding('attr.data-container-missing')\n protected get dataContainerMissing(): 'true' | null {\n return this.container === null ? 'true' : null;\n }\n\n @HostBinding('attr.hidden')\n protected get hiddenAttr(): '' | null {\n return this.openState ? null : '';\n }\n\n @HostBinding('attr.aria-modal')\n protected get ariaModal(): 'true' | null {\n if (this.role() !== 'dialog' || this.mode() !== 'overlay' || !this.openState) {\n return null;\n }\n\n return 'true';\n }\n\n @HostBinding('style.position')\n protected get positionStyle(): 'fixed' | null {\n return this.fixedInViewport() ? 'fixed' : null;\n }\n\n @HostBinding('style.top')\n protected get topStyle(): string | null {\n if (!this.fixedInViewport()) {\n return null;\n }\n\n return `${Math.max(0, this.fixedTopGap())}px`;\n }\n\n @HostBinding('style.bottom')\n protected get bottomStyle(): string | null {\n if (!this.fixedInViewport()) {\n return null;\n }\n\n return `${Math.max(0, this.fixedBottomGap())}px`;\n }\n\n @HostBinding('style.left')\n protected get leftStyle(): string | null {\n if (!this.fixedInViewport() || this.resolveEffectiveSide() !== 'left') {\n return null;\n }\n\n return '0px';\n }\n\n @HostBinding('style.right')\n protected get rightStyle(): string | null {\n if (!this.fixedInViewport() || this.resolveEffectiveSide() !== 'right') {\n return null;\n }\n\n return '0px';\n }\n\n private syncControlledState(): void {\n const controlledValue = this.openedInput();\n if (controlledValue === undefined || controlledValue === this.openState) {\n return;\n }\n\n if (controlledValue) {\n this.performOpen({\n emitOpenedChange: false,\n emitLifecycle: true,\n source: 'external',\n });\n return;\n }\n\n this.performClose({\n emitOpenedChange: false,\n emitLifecycle: true,\n restoreFocus: false,\n reason: 'external',\n });\n }\n\n private syncPositionChange(): void {\n const currentPosition = this.position();\n if (currentPosition === this.lastKnownPosition) {\n return;\n }\n\n this.lastKnownPosition = currentPosition;\n this.positionChange.emit(currentPosition);\n this.container?.onDrawerStateChanged();\n }\n\n private syncModeChange(): void {\n const currentMode = this.mode();\n if (currentMode === this.lastKnownMode) {\n return;\n }\n\n this.lastKnownMode = currentMode;\n if (this.openState) {\n this.renderBackdropIfNeeded();\n }\n this.container?.onDrawerStateChanged();\n }\n\n private requestOpenState(nextOpen: boolean, source: TngDrawerOpenSource, reason: TngDrawerCloseReason): void {\n if (nextOpen && this.disabled()) {\n return;\n }\n\n if (this.openedInput() !== undefined) {\n const currentControlledValue = this.openedInput() ?? false;\n if (source !== 'external' && currentControlledValue !== nextOpen) {\n this.openedChange.emit(nextOpen);\n }\n return;\n }\n\n if (nextOpen === this.openState) {\n return;\n }\n\n if (nextOpen) {\n this.performOpen({\n emitOpenedChange: source !== 'initial' && source !== 'external',\n emitLifecycle: source !== 'initial',\n source,\n });\n return;\n }\n\n this.performClose({\n emitOpenedChange: source !== 'initial' && source !== 'external',\n emitLifecycle: source !== 'initial',\n restoreFocus: reason !== 'tab',\n reason,\n });\n }\n\n private performOpen(options: Readonly<{\n emitOpenedChange: boolean;\n emitLifecycle: boolean;\n source: TngDrawerOpenSource;\n }>): void {\n if (this.openState) {\n return;\n }\n\n this.container?.onDrawerOpenRequest(this);\n\n this.captureRestoreFocusTarget();\n this.openState = true;\n this.attachGlobalListeners();\n this.renderBackdropIfNeeded();\n this.container?.onDrawerStateChanged();\n\n if (options.emitOpenedChange) {\n this.openedChange.emit(true);\n }\n\n if (options.emitLifecycle) {\n this.startLifecycle('opening');\n }\n\n if (options.source !== 'external') {\n this.applyAutoFocus();\n }\n }\n\n private performClose(options: Readonly<{\n emitOpenedChange: boolean;\n emitLifecycle: boolean;\n restoreFocus: boolean;\n reason: TngDrawerCloseReason;\n }>): void {\n if (!this.openState) {\n return;\n }\n\n this.openState = false;\n this.teardownInteractions();\n this.container?.onDrawerStateChanged();\n\n if (options.emitOpenedChange) {\n this.openedChange.emit(false);\n }\n\n if (options.emitLifecycle) {\n this.startLifecycle('closing');\n }\n\n if (options.restoreFocus && this.restoreFocus()) {\n this.restoreFocusToTarget();\n }\n }\n\n private captureRestoreFocusTarget(): void {\n const activeElement = this.documentRef?.activeElement;\n this.restoreFocusTarget = activeElement instanceof HTMLElement ? activeElement : null;\n }\n\n private restoreFocusToTarget(): void {\n if (this.restoreFocusTarget?.isConnected) {\n this.restoreFocusTarget.focus();\n return;\n }\n\n if (this.restoreFocusFallback?.isConnected) {\n this.restoreFocusFallback.focus();\n return;\n }\n\n this.documentRef?.body?.focus?.();\n }\n\n private applyAutoFocus(): void {\n const strategy = this.autoFocus();\n if (strategy === 'none') {\n return;\n }\n\n if (strategy === 'first-focusable') {\n const firstFocusable = this.getFocusableElements()[0];\n if (firstFocusable !== undefined) {\n firstFocusable.focus();\n return;\n }\n }\n\n this.hostRef.nativeElement.focus();\n }\n\n private getFocusableElements(): readonly HTMLElement[] {\n const host = this.hostRef.nativeElement;\n const candidates = Array.from(host.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR));\n return candidates.filter((element) => !element.hasAttribute('disabled') && element.tabIndex >= 0);\n }\n\n private resolveEffectiveSide(): TngResolvedDrawerSide {\n return this.container?.resolveSide(this.position()) ?? resolveSideFromDirection(this.position(), 'ltr');\n }\n\n private startLifecycle(transition: TngDrawerLifecycleTransition): void {\n this.clearPendingLifecycle();\n\n if (transition === 'opening') {\n this.openStart.emit();\n } else {\n this.closeStart.emit();\n }\n\n if (!this.container?.animate()) {\n if (transition === 'opening') {\n this.tngDrawerOpened.emit();\n } else {\n this.tngDrawerClosed.emit();\n }\n return;\n }\n\n this.queueLifecycleEnd(transition, true);\n }\n\n private queueLifecycleEnd(transition: TngDrawerLifecycleTransition, withFallback: boolean): void {\n this.pendingLifecycle = transition;\n\n if (!withFallback) {\n return;\n }\n\n this.lifecycleFallbackHandle = setTimeout(() => {\n this.flushPendingLifecycle();\n }, 60);\n }\n\n private flushPendingLifecycle(): void {\n if (this.pendingLifecycle === null) {\n return;\n }\n\n const transition = this.pendingLifecycle;\n this.clearPendingLifecycle();\n\n if (transition === 'opening') {\n this.tngDrawerOpened.emit();\n return;\n }\n\n this.tngDrawerClosed.emit();\n }\n\n private clearPendingLifecycle(): void {\n this.pendingLifecycle = null;\n\n if (this.lifecycleFallbackHandle !== null) {\n clearTimeout(this.lifecycleFallbackHandle);\n this.lifecycleFallbackHandle = null;\n }\n }\n\n private attachGlobalListeners(): void {\n if (this.documentRef === null) {\n return;\n }\n\n if (this.globalPointerdownListener === null) {\n this.globalPointerdownListener = (event: PointerEvent): void => this.handleDocumentPointerDown(event);\n this.documentRef.addEventListener('pointerdown', this.globalPointerdownListener, true);\n }\n\n if (this.globalKeydownListener === null) {\n this.globalKeydownListener = (event: KeyboardEvent): void => this.handleDocumentKeydown(event);\n this.documentRef.addEventListener('keydown', this.globalKeydownListener, true);\n }\n }\n\n private teardownInteractions(): void {\n this.detachGlobalListeners();\n this.destroyBackdrop();\n this.clearPendingLifecycle();\n this.resetSwipeState();\n }\n\n private detachGlobalListeners(): void {\n if (this.documentRef === null) {\n return;\n }\n\n if (this.globalPointerdownListener !== null) {\n this.documentRef.removeEventListener('pointerdown', this.globalPointerdownListener, true);\n this.globalPointerdownListener = null;\n }\n\n if (this.globalKeydownListener !== null) {\n this.documentRef.removeEventListener('keydown', this.globalKeydownListener, true);\n this.globalKeydownListener = null;\n }\n }\n\n private renderBackdropIfNeeded(): void {\n if (!this.openState || !this.resolveBackdropEnabled()) {\n this.destroyBackdrop();\n return;\n }\n\n if (this.backdropElement !== null) {\n return;\n }\n\n const targetHost = this.container?.getHostElement() ?? this.hostRef.nativeElement.parentElement;\n if (targetHost === null) {\n return;\n }\n\n const backdrop = this.documentRef?.createElement('div');\n if (backdrop === undefined || backdrop === null) {\n return;\n }\n\n backdrop.setAttribute('data-slot', 'drawer-backdrop');\n backdrop.setAttribute('data-owner', this.id);\n backdrop.setAttribute('role', 'presentation');\n backdrop.setAttribute('tabindex', '-1');\n backdrop.setAttribute('aria-hidden', 'true');\n backdrop.setAttribute('data-open', 'true');\n\n this.backdropPointerdownListener = (event: PointerEvent): void => {\n this.backdropClick.emit();\n\n if (this.resolveCloseOnOutsideClick()) {\n this.requestOpenState(false, 'interaction', 'outside');\n }\n\n event.preventDefault();\n event.stopPropagation();\n };\n backdrop.addEventListener('pointerdown', this.backdropPointerdownListener);\n\n targetHost.insertBefore(backdrop, this.hostRef.nativeElement);\n this.backdropElement = backdrop;\n }\n\n private destroyBackdrop(): void {\n if (this.backdropElement === null) {\n return;\n }\n\n if (this.backdropPointerdownListener !== null) {\n this.backdropElement.removeEventListener('pointerdown', this.backdropPointerdownListener);\n this.backdropPointerdownListener = null;\n }\n\n this.backdropElement.remove();\n this.backdropElement = null;\n }\n\n private resolveBackdropEnabled(): boolean {\n if (this.container !== null) {\n return this.container.shouldRenderBackdrop(this);\n }\n\n return resolveAutoBoolean(this.backdrop(), this.mode() === 'overlay');\n }\n\n private resolveCloseOnOutsideClick(): boolean {\n const configured = this.closeOnOutsideClickInput();\n if (configured !== undefined) {\n return configured;\n }\n\n return this.mode() === 'overlay';\n }\n\n private resolveTrapFocus(): boolean {\n return resolveAutoBoolean(this.trapFocus(), this.mode() === 'overlay');\n }\n\n private handleDocumentPointerDown(event: PointerEvent): void {\n if (!this.openState || !this.resolveCloseOnOutsideClick()) {\n return;\n }\n\n const target = event.target;\n if (!(target instanceof Node)) {\n return;\n }\n\n if (this.hostRef.nativeElement.contains(target)) {\n return;\n }\n\n if (this.backdropElement?.contains(target) === true) {\n return;\n }\n\n if (this.container?.containsTarget(target) === true) {\n return;\n }\n\n if (this.isScrollbarPointerDown(event, target)) {\n return;\n }\n\n this.requestOpenState(false, 'interaction', 'outside');\n }\n\n private handleDocumentKeydown(event: KeyboardEvent): void {\n if (!this.openState) {\n return;\n }\n\n if (event.key === 'Escape') {\n if (!this.closeOnEscape()) {\n return;\n }\n\n event.preventDefault();\n this.requestOpenState(false, 'interaction', 'escape');\n return;\n }\n\n if (event.key !== 'Tab') {\n return;\n }\n\n if (this.resolveTrapFocus()) {\n this.handleTrappedTab(event);\n return;\n }\n\n if (this.closeOnTab()) {\n this.requestOpenState(false, 'interaction', 'tab');\n }\n }\n\n private handleTrappedTab(event: KeyboardEvent): void {\n const focusable = this.getFocusableElements();\n const host = this.hostRef.nativeElement;\n if (focusable.length === 0) {\n event.preventDefault();\n host.focus();\n return;\n }\n\n const currentActive = this.documentRef?.activeElement;\n const currentIndex = currentActive instanceof HTMLElement ? focusable.indexOf(currentActive) : -1;\n\n const nextIndex = event.shiftKey\n ? currentIndex <= 0\n ? focusable.length - 1\n : currentIndex - 1\n : currentIndex < 0 || currentIndex >= focusable.length - 1\n ? 0\n : currentIndex + 1;\n\n event.preventDefault();\n focusable[nextIndex]?.focus();\n }\n\n private resetSwipeState(): void {\n this.swipeStartX = null;\n this.swipeLastX = null;\n this.swipeStartY = null;\n this.swipeLastY = null;\n }\n\n private isScrollbarPointerDown(event: PointerEvent, target: Node): boolean {\n if (this.documentRef === null) {\n return false;\n }\n\n const root = this.documentRef.documentElement;\n if (target !== root && target !== this.documentRef.body) {\n return false;\n }\n\n const viewportWidth = root.clientWidth;\n const viewportHeight = root.clientHeight;\n const onVerticalScrollbar = event.clientX >= viewportWidth && event.clientX > 0;\n const onHorizontalScrollbar = event.clientY >= viewportHeight && event.clientY > 0;\n\n return onVerticalScrollbar || onHorizontalScrollbar;\n }\n}\n\n@Directive({\n selector: '[tngDrawerContent]',\n exportAs: 'tngDrawerContent',\n standalone: true,\n})\nexport class TngDrawerContent {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly container = inject(TngDrawerContainer, { optional: true, host: true });\n\n ngOnInit(): void {\n this.container?.registerContent(this);\n }\n\n ngOnDestroy(): void {\n this.container?.unregisterContent(this);\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'drawer-content' as const;\n\n @HostBinding('attr.data-container-id')\n protected get dataContainerId(): string | null {\n return this.container?.id ?? null;\n }\n\n @HostBinding('attr.data-container-missing')\n protected get dataContainerMissing(): 'true' | null {\n return this.container === null ? 'true' : null;\n }\n\n applyOffsets(leftOffset: number, rightOffset: number): void {\n const host = this.hostRef.nativeElement;\n host.style.marginLeft = leftOffset > 0 ? `${leftOffset}px` : '';\n host.style.marginRight = rightOffset > 0 ? `${rightOffset}px` : '';\n host.setAttribute('data-offset-left', String(leftOffset));\n host.setAttribute('data-offset-right', String(rightOffset));\n host.setAttribute('data-shifted', leftOffset > 0 || rightOffset > 0 ? 'true' : 'false');\n }\n\n setInert(nextInert: boolean): void {\n const host = this.hostRef.nativeElement;\n if (nextInert) {\n host.setAttribute('inert', '');\n host.setAttribute('aria-hidden', 'true');\n try {\n (host as HTMLElement & { inert?: boolean }).inert = true;\n } catch {\n // noop: inert is not writable in some environments.\n }\n return;\n }\n\n host.removeAttribute('inert');\n host.removeAttribute('aria-hidden');\n try {\n (host as HTMLElement & { inert?: boolean }).inert = false;\n } catch {\n // noop: inert is not writable in some environments.\n }\n }\n}\n\n@Directive({\n selector: '[tngSidenavContainer]',\n exportAs: 'tngSidenavContainer',\n standalone: true,\n providers: [\n {\n provide: TngDrawerContainer,\n useExisting: forwardRef(() => TngSidenavContainer),\n },\n ],\n})\nexport class TngSidenavContainer extends TngDrawerContainer {}\n\n@Directive({\n selector: '[tngSidenav]',\n exportAs: 'tngSidenav',\n standalone: true,\n providers: [\n {\n provide: TngDrawer,\n useExisting: forwardRef(() => TngSidenav),\n },\n ],\n})\nexport class TngSidenav extends TngDrawer {}\n\n@Directive({\n selector: '[tngSidenavContent]',\n exportAs: 'tngSidenavContent',\n standalone: true,\n providers: [\n {\n provide: TngDrawerContent,\n useExisting: forwardRef(() => TngSidenavContent),\n },\n ],\n})\nexport class TngSidenavContent extends TngDrawerContent {}\n\nfunction normalizeBooleanInput(value: unknown): boolean {\n if (typeof value === 'boolean') {\n return value;\n }\n\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === '' || normalized === 'true') {\n return true;\n }\n if (normalized === 'false') {\n return false;\n }\n }\n\n return Boolean(value);\n}\n\nfunction normalizeOptionalBooleanInput(value: unknown): boolean | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n return normalizeBooleanInput(value);\n}\n\nfunction normalizeAutoBooleanInput(value: unknown): TngDrawerAutoBoolean {\n if (typeof value === 'string' && value.trim().toLowerCase() === 'auto') {\n return 'auto';\n }\n\n if (value === undefined || value === null) {\n return 'auto';\n }\n\n return normalizeBooleanInput(value);\n}\n\nfunction resolveAutoBoolean(value: TngDrawerAutoBoolean, fallbackWhenAuto: boolean): boolean {\n return value === 'auto' ? fallbackWhenAuto : value;\n}\n\nfunction normalizeModeInput(value: unknown): TngDrawerMode {\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === 'push' || normalized === 'side' || normalized === 'overlay') {\n return normalized;\n }\n }\n\n return 'overlay';\n}\n\nfunction normalizePositionInput(value: unknown): TngDrawerPosition {\n if (typeof value === 'string' && value.trim().toLowerCase() === 'end') {\n return 'end';\n }\n\n return 'start';\n}\n\nfunction normalizeDirectionInput(value: unknown): TngDrawerDirection {\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === 'rtl' || normalized === 'ltr' || normalized === 'auto') {\n return normalized;\n }\n }\n\n return 'auto';\n}\n\nfunction normalizeRoleInput(value: unknown): TngDrawerRole {\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (\n normalized === 'dialog' ||\n normalized === 'complementary' ||\n normalized === 'navigation' ||\n normalized === 'region'\n ) {\n return normalized;\n }\n }\n\n return 'navigation';\n}\n\nfunction normalizeAutoFocusInput(value: unknown): TngDrawerAutoFocus {\n if (typeof value === 'string') {\n const normalized = value.trim().toLowerCase();\n if (normalized === 'first-focusable') {\n return 'first-focusable';\n }\n if (normalized === 'none') {\n return 'none';\n }\n }\n\n return 'drawer';\n}\n\nfunction normalizeNumberInput(value: unknown): number {\n if (typeof value === 'number' && Number.isFinite(value)) {\n return value;\n }\n\n if (typeof value === 'string') {\n const parsed = Number.parseFloat(value);\n if (Number.isFinite(parsed)) {\n return parsed;\n }\n }\n\n return 0;\n}\n\nfunction resolveSideFromDirection(position: TngDrawerPosition, direction: 'ltr' | 'rtl'): TngResolvedDrawerSide {\n if (position === 'start') {\n return direction === 'rtl' ? 'right' : 'left';\n }\n\n return direction === 'rtl' ? 'left' : 'right';\n}\n"]}
@@ -1,4 +1,7 @@
1
+ import * as i0 from "@angular/core";
1
2
  export declare class TngGrid {
2
3
  protected readonly dataSlot: "grid";
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngGrid, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngGrid, "[tngGrid]", ["tngGrid"], {}, {}, never, never, true, never>;
3
6
  }
4
7
  //# sourceMappingURL=tng-grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-grid.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/grid/tng-grid.ts"],"names":[],"mappings":"AAEA,qBAKa,OAAO;IAElB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;CAC/C"}
1
+ {"version":3,"file":"tng-grid.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/grid/tng-grid.ts"],"names":[],"mappings":";AAEA,qBAKa,OAAO;IAElB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,MAAM,CAAU;yCAFnC,OAAO;2CAAP,OAAO;CAGnB"}
@@ -1,17 +1,19 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, HostBinding } from '@angular/core';
3
- let TngGrid = class TngGrid {
2
+ import * as i0 from "@angular/core";
3
+ export class TngGrid {
4
4
  dataSlot = 'grid';
5
- };
6
- __decorate([
7
- HostBinding('attr.data-slot')
8
- ], TngGrid.prototype, "dataSlot", void 0);
9
- TngGrid = __decorate([
10
- Directive({
11
- selector: '[tngGrid]',
12
- exportAs: 'tngGrid',
13
- standalone: true,
14
- })
15
- ], TngGrid);
16
- export { TngGrid };
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngGrid, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngGrid, isStandalone: true, selector: "[tngGrid]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, exportAs: ["tngGrid"], ngImport: i0 });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngGrid, decorators: [{
9
+ type: Directive,
10
+ args: [{
11
+ selector: '[tngGrid]',
12
+ exportAs: 'tngGrid',
13
+ standalone: true,
14
+ }]
15
+ }], propDecorators: { dataSlot: [{
16
+ type: HostBinding,
17
+ args: ['attr.data-slot']
18
+ }] } });
17
19
  //# sourceMappingURL=tng-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-grid.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/grid/tng-grid.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOhD,IAAM,OAAO,GAAb,MAAM,OAAO;IAEC,QAAQ,GAAG,MAAe,CAAC;CAC/C,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;yCACgB;AAFnC,OAAO;IALnB,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,OAAO,CAGnB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngGrid]',\n exportAs: 'tngGrid',\n standalone: true,\n})\nexport class TngGrid {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'grid' as const;\n}\n"]}
1
+ {"version":3,"file":"tng-grid.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/grid/tng-grid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;;AAOvD,MAAM,OAAO,OAAO;IAEC,QAAQ,GAAG,MAAe,CAAC;uGAFnC,OAAO;2FAAP,OAAO;;2FAAP,OAAO;kBALnB,SAAS;mBAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,QAAQ,EAAE,SAAS;oBACnB,UAAU,EAAE,IAAI;iBACjB;;sBAEE,WAAW;uBAAC,gBAAgB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngGrid]',\n exportAs: 'tngGrid',\n standalone: true,\n})\nexport class TngGrid {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'grid' as const;\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import * as i0 from "@angular/core";
1
2
  export type TngSeparatorOrientation = 'horizontal' | 'vertical';
2
3
  export declare class TngSeparator {
3
4
  readonly decorative: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
@@ -7,5 +8,7 @@ export declare class TngSeparator {
7
8
  protected get dataOrientationAttr(): TngSeparatorOrientation;
8
9
  protected readonly dataSlot: "separator";
9
10
  protected get roleAttr(): 'separator' | null;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngSeparator, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngSeparator, "[tngSeparator]", ["tngSeparator"], { "decorative": { "alias": "decorative"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
10
13
  }
11
14
  //# sourceMappingURL=tng-separator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-separator.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/separator/tng-separator.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,UAAU,CAAC;AAEhE,qBAKa,YAAY;IACvB,SAAgB,UAAU,8EAEvB;IACH,SAAgB,WAAW,+DAAgD;IAG3E,SAAS,KAAK,cAAc,IAAI,MAAM,GAAG,IAAI,CAE5C;IAGD,SAAS,KAAK,mBAAmB,IAAI,uBAAuB,GAAG,IAAI,CAMlE;IAGD,SAAS,KAAK,mBAAmB,IAAI,uBAAuB,CAE3D;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAU;IAGnD,SAAS,KAAK,QAAQ,IAAI,WAAW,GAAG,IAAI,CAE3C;CACF"}
1
+ {"version":3,"file":"tng-separator.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/separator/tng-separator.ts"],"names":[],"mappings":";AAEA,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,UAAU,CAAC;AAEhE,qBAKa,YAAY;IACvB,SAAgB,UAAU,8EAEvB;IACH,SAAgB,WAAW,+DAAgD;IAG3E,SAAS,KAAK,cAAc,IAAI,MAAM,GAAG,IAAI,CAE5C;IAGD,SAAS,KAAK,mBAAmB,IAAI,uBAAuB,GAAG,IAAI,CAMlE;IAGD,SAAS,KAAK,mBAAmB,IAAI,uBAAuB,CAE3D;IAGD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,WAAW,CAAU;IAGnD,SAAS,KAAK,QAAQ,IAAI,WAAW,GAAG,IAAI,CAE3C;yCA/BU,YAAY;2CAAZ,YAAY;CAgCxB"}
@@ -1,10 +1,8 @@
1
- import { __decorate } from "tslib";
2
1
  import { booleanAttribute, Directive, HostBinding, input } from '@angular/core';
3
- let TngSeparator = class TngSeparator {
4
- decorative = input(true, {
5
- transform: booleanAttribute,
6
- });
7
- orientation = input('horizontal');
2
+ import * as i0 from "@angular/core";
3
+ export class TngSeparator {
4
+ decorative = input(true, { ...(ngDevMode ? { debugName: "decorative" } : {}), transform: booleanAttribute });
5
+ orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
8
6
  get ariaHiddenAttr() {
9
7
  return this.decorative() ? 'true' : null;
10
8
  }
@@ -21,28 +19,30 @@ let TngSeparator = class TngSeparator {
21
19
  get roleAttr() {
22
20
  return this.decorative() ? null : 'separator';
23
21
  }
24
- };
25
- __decorate([
26
- HostBinding('attr.aria-hidden')
27
- ], TngSeparator.prototype, "ariaHiddenAttr", null);
28
- __decorate([
29
- HostBinding('attr.aria-orientation')
30
- ], TngSeparator.prototype, "ariaOrientationAttr", null);
31
- __decorate([
32
- HostBinding('attr.data-orientation')
33
- ], TngSeparator.prototype, "dataOrientationAttr", null);
34
- __decorate([
35
- HostBinding('attr.data-slot')
36
- ], TngSeparator.prototype, "dataSlot", void 0);
37
- __decorate([
38
- HostBinding('attr.role')
39
- ], TngSeparator.prototype, "roleAttr", null);
40
- TngSeparator = __decorate([
41
- Directive({
42
- selector: '[tngSeparator]',
43
- exportAs: 'tngSeparator',
44
- standalone: true,
45
- })
46
- ], TngSeparator);
47
- export { TngSeparator };
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSeparator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.1", type: TngSeparator, isStandalone: true, selector: "[tngSeparator]", inputs: { decorative: { classPropertyName: "decorative", publicName: "decorative", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-hidden": "this.ariaHiddenAttr", "attr.aria-orientation": "this.ariaOrientationAttr", "attr.data-orientation": "this.dataOrientationAttr", "attr.data-slot": "this.dataSlot", "attr.role": "this.roleAttr" } }, exportAs: ["tngSeparator"], ngImport: i0 });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngSeparator, decorators: [{
26
+ type: Directive,
27
+ args: [{
28
+ selector: '[tngSeparator]',
29
+ exportAs: 'tngSeparator',
30
+ standalone: true,
31
+ }]
32
+ }], propDecorators: { decorative: [{ type: i0.Input, args: [{ isSignal: true, alias: "decorative", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], ariaHiddenAttr: [{
33
+ type: HostBinding,
34
+ args: ['attr.aria-hidden']
35
+ }], ariaOrientationAttr: [{
36
+ type: HostBinding,
37
+ args: ['attr.aria-orientation']
38
+ }], dataOrientationAttr: [{
39
+ type: HostBinding,
40
+ args: ['attr.data-orientation']
41
+ }], dataSlot: [{
42
+ type: HostBinding,
43
+ args: ['attr.data-slot']
44
+ }], roleAttr: [{
45
+ type: HostBinding,
46
+ args: ['attr.role']
47
+ }] } });
48
48
  //# sourceMappingURL=tng-separator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-separator.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/separator/tng-separator.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AASzE,IAAM,YAAY,GAAlB,MAAM,YAAY;IACP,UAAU,GAAG,KAAK,CAA4B,IAAI,EAAE;QAClE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,WAAW,GAAG,KAAK,CAA0B,YAAY,CAAC,CAAC;IAG3E,IAAc,cAAc;QAC1B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAGD,IAAc,mBAAmB;QAC/B,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAGD,IAAc,mBAAmB;QAC/B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAGkB,QAAQ,GAAG,WAAoB,CAAC;IAGnD,IAAc,QAAQ;QACpB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IAChD,CAAC;CACF,CAAA;AAzBC;IADC,WAAW,CAAC,kBAAkB,CAAC;kDAG/B;AAGD;IADC,WAAW,CAAC,uBAAuB,CAAC;uDAOpC;AAGD;IADC,WAAW,CAAC,uBAAuB,CAAC;uDAGpC;AAGkB;IADlB,WAAW,CAAC,gBAAgB,CAAC;8CACqB;AAGnD;IADC,WAAW,CAAC,WAAW,CAAC;4CAGxB;AA/BU,YAAY;IALxB,SAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,cAAc;QACxB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,YAAY,CAgCxB","sourcesContent":["import { booleanAttribute, Directive, HostBinding, input } from '@angular/core';\n\nexport type TngSeparatorOrientation = 'horizontal' | 'vertical';\n\n@Directive({\n selector: '[tngSeparator]',\n exportAs: 'tngSeparator',\n standalone: true,\n})\nexport class TngSeparator {\n public readonly decorative = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly orientation = input<TngSeparatorOrientation>('horizontal');\n\n @HostBinding('attr.aria-hidden')\n protected get ariaHiddenAttr(): 'true' | null {\n return this.decorative() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-orientation')\n protected get ariaOrientationAttr(): TngSeparatorOrientation | null {\n if (this.decorative()) {\n return null;\n }\n\n return this.orientation();\n }\n\n @HostBinding('attr.data-orientation')\n protected get dataOrientationAttr(): TngSeparatorOrientation {\n return this.orientation();\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'separator' as const;\n\n @HostBinding('attr.role')\n protected get roleAttr(): 'separator' | null {\n return this.decorative() ? null : 'separator';\n }\n}\n"]}
1
+ {"version":3,"file":"tng-separator.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/separator/tng-separator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;;AAShF,MAAM,OAAO,YAAY;IACP,UAAU,GAAG,KAAK,CAA4B,IAAI,uDAChE,SAAS,EAAE,gBAAgB,GAC3B,CAAC;IACa,WAAW,GAAG,KAAK,CAA0B,YAAY,uDAAC,CAAC;IAE3E,IACc,cAAc;QAC1B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,IACc,mBAAmB;QAC/B,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,IACc,mBAAmB;QAC/B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAGkB,QAAQ,GAAG,WAAoB,CAAC;IAEnD,IACc,QAAQ;QACpB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IAChD,CAAC;uGA/BU,YAAY;2FAAZ,YAAY;;2FAAZ,YAAY;kBALxB,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,QAAQ,EAAE,cAAc;oBACxB,UAAU,EAAE,IAAI;iBACjB;;sBAOE,WAAW;uBAAC,kBAAkB;;sBAK9B,WAAW;uBAAC,uBAAuB;;sBASnC,WAAW;uBAAC,uBAAuB;;sBAKnC,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,WAAW","sourcesContent":["import { booleanAttribute, Directive, HostBinding, input } from '@angular/core';\n\nexport type TngSeparatorOrientation = 'horizontal' | 'vertical';\n\n@Directive({\n selector: '[tngSeparator]',\n exportAs: 'tngSeparator',\n standalone: true,\n})\nexport class TngSeparator {\n public readonly decorative = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly orientation = input<TngSeparatorOrientation>('horizontal');\n\n @HostBinding('attr.aria-hidden')\n protected get ariaHiddenAttr(): 'true' | null {\n return this.decorative() ? 'true' : null;\n }\n\n @HostBinding('attr.aria-orientation')\n protected get ariaOrientationAttr(): TngSeparatorOrientation | null {\n if (this.decorative()) {\n return null;\n }\n\n return this.orientation();\n }\n\n @HostBinding('attr.data-orientation')\n protected get dataOrientationAttr(): TngSeparatorOrientation {\n return this.orientation();\n }\n\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'separator' as const;\n\n @HostBinding('attr.role')\n protected get roleAttr(): 'separator' | null {\n return this.decorative() ? null : 'separator';\n }\n}\n"]}
@@ -1,4 +1,7 @@
1
+ import * as i0 from "@angular/core";
1
2
  export declare class TngStepper {
2
3
  protected readonly dataSlot: "stepper";
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngStepper, never>;
5
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TngStepper, "[tngStepper]", ["tngStepper"], {}, {}, never, never, true, never>;
3
6
  }
4
7
  //# sourceMappingURL=tng-stepper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-stepper.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/stepper/tng-stepper.ts"],"names":[],"mappings":"AAEA,qBAKa,UAAU;IAErB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;CAClD"}
1
+ {"version":3,"file":"tng-stepper.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/stepper/tng-stepper.ts"],"names":[],"mappings":";AAEA,qBAKa,UAAU;IAErB,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;yCAFtC,UAAU;2CAAV,UAAU;CAGtB"}
@@ -1,17 +1,19 @@
1
- import { __decorate } from "tslib";
2
1
  import { Directive, HostBinding } from '@angular/core';
3
- let TngStepper = class TngStepper {
2
+ import * as i0 from "@angular/core";
3
+ export class TngStepper {
4
4
  dataSlot = 'stepper';
5
- };
6
- __decorate([
7
- HostBinding('attr.data-slot')
8
- ], TngStepper.prototype, "dataSlot", void 0);
9
- TngStepper = __decorate([
10
- Directive({
11
- selector: '[tngStepper]',
12
- exportAs: 'tngStepper',
13
- standalone: true,
14
- })
15
- ], TngStepper);
16
- export { TngStepper };
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngStepper, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.1", type: TngStepper, isStandalone: true, selector: "[tngStepper]", host: { properties: { "attr.data-slot": "this.dataSlot" } }, exportAs: ["tngStepper"], ngImport: i0 });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngStepper, decorators: [{
9
+ type: Directive,
10
+ args: [{
11
+ selector: '[tngStepper]',
12
+ exportAs: 'tngStepper',
13
+ standalone: true,
14
+ }]
15
+ }], propDecorators: { dataSlot: [{
16
+ type: HostBinding,
17
+ args: ['attr.data-slot']
18
+ }] } });
17
19
  //# sourceMappingURL=tng-stepper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-stepper.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/stepper/tng-stepper.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOhD,IAAM,UAAU,GAAhB,MAAM,UAAU;IAEF,QAAQ,GAAG,SAAkB,CAAC;CAClD,CAAA;AADoB;IADlB,WAAW,CAAC,gBAAgB,CAAC;4CACmB;AAFtC,UAAU;IALtB,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,IAAI;KACjB,CAAC;GACW,UAAU,CAGtB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngStepper]',\n exportAs: 'tngStepper',\n standalone: true,\n})\nexport class TngStepper {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'stepper' as const;\n}\n"]}
1
+ {"version":3,"file":"tng-stepper.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/primitives/src/lib/layout/stepper/tng-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;;AAOvD,MAAM,OAAO,UAAU;IAEF,QAAQ,GAAG,SAAkB,CAAC;uGAFtC,UAAU;2FAAV,UAAU;;2FAAV,UAAU;kBALtB,SAAS;mBAAC;oBACT,QAAQ,EAAE,cAAc;oBACxB,QAAQ,EAAE,YAAY;oBACtB,UAAU,EAAE,IAAI;iBACjB;;sBAEE,WAAW;uBAAC,gBAAgB","sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[tngStepper]',\n exportAs: 'tngStepper',\n standalone: true,\n})\nexport class TngStepper {\n @HostBinding('attr.data-slot')\n protected readonly dataSlot = 'stepper' as const;\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { type ComponentFixture } from '@angular/core/testing';
2
2
  import { type TngTreeOrientation, type TngTreeSelectionMode, type TngTreeValue } from '../index';
3
+ import * as i0 from "@angular/core";
3
4
  export declare class TngTreeHarnessComponent {
4
5
  readonly valueChanges: Array<TngTreeValue | readonly TngTreeValue[] | null>;
5
6
  defaultValue: TngTreeValue | readonly TngTreeValue[] | null | undefined;
@@ -9,6 +10,8 @@ export declare class TngTreeHarnessComponent {
9
10
  value: TngTreeValue | readonly TngTreeValue[] | null | undefined;
10
11
  onValueChange(value: TngTreeValue | readonly TngTreeValue[] | null): void;
11
12
  resetValueChanges(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngTreeHarnessComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngTreeHarnessComponent, "ng-component", never, {}, {}, never, never, true, never>;
12
15
  }
13
16
  type TreeHarnessInitialState = Partial<Pick<TngTreeHarnessComponent, 'defaultValue' | 'orientation' | 'rootExpanded' | 'selectionMode' | 'value'>>;
14
17
  export declare function createTreeHarnessFixture(initialState?: TreeHarnessInitialState): ComponentFixture<TngTreeHarnessComponent>;