@tailng-ui/components 0.17.0 → 0.18.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 (257) hide show
  1. package/package.json +16 -5
  2. package/src/lib/feedback/empty/tng-empty.component.d.ts +16 -1
  3. package/src/lib/feedback/empty/tng-empty.component.d.ts.map +1 -1
  4. package/src/lib/feedback/empty/tng-empty.component.js +47 -57
  5. package/src/lib/feedback/empty/tng-empty.component.js.map +1 -1
  6. package/src/lib/feedback/index.d.ts +0 -5
  7. package/src/lib/feedback/index.d.ts.map +1 -1
  8. package/src/lib/feedback/index.js +4 -5
  9. package/src/lib/feedback/index.js.map +1 -1
  10. package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts +4 -0
  11. package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts.map +1 -1
  12. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js +16 -26
  13. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js.map +1 -1
  14. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts +4 -0
  15. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts.map +1 -1
  16. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js +18 -32
  17. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js.map +1 -1
  18. package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts +4 -0
  19. package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts.map +1 -1
  20. package/src/lib/feedback/skeleton/tng-skeleton.component.js +14 -20
  21. package/src/lib/feedback/skeleton/tng-skeleton.component.js.map +1 -1
  22. package/src/lib/feedback/toast/tng-toast.component.d.ts +4 -1
  23. package/src/lib/feedback/toast/tng-toast.component.d.ts.map +1 -1
  24. package/src/lib/feedback/toast/tng-toast.component.js +17 -19
  25. package/src/lib/feedback/toast/tng-toast.component.js.map +1 -1
  26. package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts +4 -0
  27. package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts.map +1 -1
  28. package/src/lib/form/autocomplete/tng-autocomplete.component.js +46 -49
  29. package/src/lib/form/autocomplete/tng-autocomplete.component.js.map +1 -1
  30. package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts +3 -0
  31. package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts.map +1 -1
  32. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js +33 -58
  33. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js.map +1 -1
  34. package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts +3 -0
  35. package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts.map +1 -1
  36. package/src/lib/form/button-toggle/tng-button-toggle.component.js +15 -26
  37. package/src/lib/form/button-toggle/tng-button-toggle.component.js.map +1 -1
  38. package/src/lib/form/checkbox/tng-checkbox.component.d.ts +3 -0
  39. package/src/lib/form/checkbox/tng-checkbox.component.d.ts.map +1 -1
  40. package/src/lib/form/checkbox/tng-checkbox.component.js +32 -42
  41. package/src/lib/form/checkbox/tng-checkbox.component.js.map +1 -1
  42. package/src/lib/form/chips/tng-chips.component.d.ts +3 -0
  43. package/src/lib/form/chips/tng-chips.component.d.ts.map +1 -1
  44. package/src/lib/form/chips/tng-chips.component.js +14 -19
  45. package/src/lib/form/chips/tng-chips.component.js.map +1 -1
  46. package/src/lib/form/combobox/tng-combobox.component.d.ts +3 -0
  47. package/src/lib/form/combobox/tng-combobox.component.d.ts.map +1 -1
  48. package/src/lib/form/combobox/tng-combobox.component.js +10 -13
  49. package/src/lib/form/combobox/tng-combobox.component.js.map +1 -1
  50. package/src/lib/form/datepicker/tng-datepicker.component.d.ts +4 -1
  51. package/src/lib/form/datepicker/tng-datepicker.component.d.ts.map +1 -1
  52. package/src/lib/form/datepicker/tng-datepicker.component.js +58 -98
  53. package/src/lib/form/datepicker/tng-datepicker.component.js.map +1 -1
  54. package/src/lib/form/form-field/tng-form-field.component.d.ts +3 -0
  55. package/src/lib/form/form-field/tng-form-field.component.d.ts.map +1 -1
  56. package/src/lib/form/form-field/tng-form-field.component.js +28 -33
  57. package/src/lib/form/form-field/tng-form-field.component.js.map +1 -1
  58. package/src/lib/form/index.d.ts +0 -20
  59. package/src/lib/form/index.d.ts.map +1 -1
  60. package/src/lib/form/index.js +4 -20
  61. package/src/lib/form/index.js.map +1 -1
  62. package/src/lib/form/input/tng-input.component.d.ts +3 -0
  63. package/src/lib/form/input/tng-input.component.d.ts.map +1 -1
  64. package/src/lib/form/input/tng-input.component.js +49 -60
  65. package/src/lib/form/input/tng-input.component.js.map +1 -1
  66. package/src/lib/form/input-otp/tng-input-otp.component.d.ts +3 -0
  67. package/src/lib/form/input-otp/tng-input-otp.component.d.ts.map +1 -1
  68. package/src/lib/form/input-otp/tng-input-otp.component.js +55 -69
  69. package/src/lib/form/input-otp/tng-input-otp.component.js.map +1 -1
  70. package/src/lib/form/label/tng-label.component.d.ts +3 -0
  71. package/src/lib/form/label/tng-label.component.d.ts.map +1 -1
  72. package/src/lib/form/label/tng-label.component.js +12 -19
  73. package/src/lib/form/label/tng-label.component.js.map +1 -1
  74. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts +4 -0
  75. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts.map +1 -1
  76. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js +40 -43
  77. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js.map +1 -1
  78. package/src/lib/form/multiselect/tng-multiselect.component.d.ts +4 -0
  79. package/src/lib/form/multiselect/tng-multiselect.component.d.ts.map +1 -1
  80. package/src/lib/form/multiselect/tng-multiselect.component.js +49 -52
  81. package/src/lib/form/multiselect/tng-multiselect.component.js.map +1 -1
  82. package/src/lib/form/radio/tng-radio.component.d.ts +3 -0
  83. package/src/lib/form/radio/tng-radio.component.d.ts.map +1 -1
  84. package/src/lib/form/radio/tng-radio.component.js +18 -33
  85. package/src/lib/form/radio/tng-radio.component.js.map +1 -1
  86. package/src/lib/form/select/tng-select.component.d.ts +4 -0
  87. package/src/lib/form/select/tng-select.component.d.ts.map +1 -1
  88. package/src/lib/form/select/tng-select.component.js +52 -53
  89. package/src/lib/form/select/tng-select.component.js.map +1 -1
  90. package/src/lib/form/select/tng-select.slots.d.ts +5 -0
  91. package/src/lib/form/select/tng-select.slots.d.ts.map +1 -1
  92. package/src/lib/form/select/tng-select.slots.js +21 -17
  93. package/src/lib/form/select/tng-select.slots.js.map +1 -1
  94. package/src/lib/form/slider/tng-slider.component.d.ts +3 -0
  95. package/src/lib/form/slider/tng-slider.component.d.ts.map +1 -1
  96. package/src/lib/form/slider/tng-slider.component.js +14 -27
  97. package/src/lib/form/slider/tng-slider.component.js.map +1 -1
  98. package/src/lib/form/switch/tng-switch.component.d.ts +3 -0
  99. package/src/lib/form/switch/tng-switch.component.d.ts.map +1 -1
  100. package/src/lib/form/switch/tng-switch.component.js +15 -24
  101. package/src/lib/form/switch/tng-switch.component.js.map +1 -1
  102. package/src/lib/form/textarea/tng-textarea.component.d.ts +3 -0
  103. package/src/lib/form/textarea/tng-textarea.component.d.ts.map +1 -1
  104. package/src/lib/form/textarea/tng-textarea.component.js +19 -36
  105. package/src/lib/form/textarea/tng-textarea.component.js.map +1 -1
  106. package/src/lib/form/toggle/tng-toggle.component.d.ts +3 -0
  107. package/src/lib/form/toggle/tng-toggle.component.d.ts.map +1 -1
  108. package/src/lib/form/toggle/tng-toggle.component.js +41 -41
  109. package/src/lib/form/toggle/tng-toggle.component.js.map +1 -1
  110. package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts +4 -0
  111. package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts.map +1 -1
  112. package/src/lib/form/toggle-group/tng-toggle-group.component.js +28 -31
  113. package/src/lib/form/toggle-group/tng-toggle-group.component.js.map +1 -1
  114. package/src/lib/layout/accordion/tng-accordion.component.d.ts +10 -0
  115. package/src/lib/layout/accordion/tng-accordion.component.d.ts.map +1 -1
  116. package/src/lib/layout/accordion/tng-accordion.component.js +49 -148
  117. package/src/lib/layout/accordion/tng-accordion.component.js.map +1 -1
  118. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts +3 -0
  119. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts.map +1 -1
  120. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js +10 -13
  121. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js.map +1 -1
  122. package/src/lib/layout/card/tng-card.component.d.ts +21 -0
  123. package/src/lib/layout/card/tng-card.component.d.ts.map +1 -1
  124. package/src/lib/layout/card/tng-card.component.js +92 -136
  125. package/src/lib/layout/card/tng-card.component.js.map +1 -1
  126. package/src/lib/layout/collapsible/tng-collapsible.component.d.ts +3 -0
  127. package/src/lib/layout/collapsible/tng-collapsible.component.d.ts.map +1 -1
  128. package/src/lib/layout/collapsible/tng-collapsible.component.js +17 -24
  129. package/src/lib/layout/collapsible/tng-collapsible.component.js.map +1 -1
  130. package/src/lib/layout/drawer/tng-drawer.component.d.ts +4 -0
  131. package/src/lib/layout/drawer/tng-drawer.component.d.ts.map +1 -1
  132. package/src/lib/layout/drawer/tng-drawer.component.js +48 -51
  133. package/src/lib/layout/drawer/tng-drawer.component.js.map +1 -1
  134. package/src/lib/layout/grid/tng-grid.component.d.ts +8 -0
  135. package/src/lib/layout/grid/tng-grid.component.d.ts.map +1 -1
  136. package/src/lib/layout/grid/tng-grid.component.js +48 -110
  137. package/src/lib/layout/grid/tng-grid.component.js.map +1 -1
  138. package/src/lib/layout/index.d.ts +1 -8
  139. package/src/lib/layout/index.d.ts.map +1 -1
  140. package/src/lib/layout/index.js +5 -8
  141. package/src/lib/layout/index.js.map +1 -1
  142. package/src/lib/layout/separator/tng-separator.component.d.ts +3 -0
  143. package/src/lib/layout/separator/tng-separator.component.d.ts.map +1 -1
  144. package/src/lib/layout/separator/tng-separator.component.js +11 -16
  145. package/src/lib/layout/separator/tng-separator.component.js.map +1 -1
  146. package/src/lib/layout/stepper/tng-stepper.component.d.ts +3 -0
  147. package/src/lib/layout/stepper/tng-stepper.component.d.ts.map +1 -1
  148. package/src/lib/layout/stepper/tng-stepper.component.js +10 -13
  149. package/src/lib/layout/stepper/tng-stepper.component.js.map +1 -1
  150. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts +4 -0
  151. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts.map +1 -1
  152. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js +47 -49
  153. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js.map +1 -1
  154. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts +4 -0
  155. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts.map +1 -1
  156. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js +16 -18
  157. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js.map +1 -1
  158. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts +4 -0
  159. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts.map +1 -1
  160. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js +10 -12
  161. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js.map +1 -1
  162. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts +3 -0
  163. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts.map +1 -1
  164. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js +12 -10
  165. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js.map +1 -1
  166. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts +4 -0
  167. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts.map +1 -1
  168. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js +12 -14
  169. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js.map +1 -1
  170. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts +4 -0
  171. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts.map +1 -1
  172. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js +23 -25
  173. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js.map +1 -1
  174. package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts +5 -0
  175. package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts.map +1 -1
  176. package/src/lib/navigation/context-menu/tng-context-menu.component.js +24 -26
  177. package/src/lib/navigation/context-menu/tng-context-menu.component.js.map +1 -1
  178. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts +4 -0
  179. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts.map +1 -1
  180. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js +19 -23
  181. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js.map +1 -1
  182. package/src/lib/navigation/index.d.ts +0 -12
  183. package/src/lib/navigation/index.d.ts.map +1 -1
  184. package/src/lib/navigation/index.js +4 -12
  185. package/src/lib/navigation/index.js.map +1 -1
  186. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts +3 -0
  187. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts.map +1 -1
  188. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js +22 -20
  189. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js.map +1 -1
  190. package/src/lib/navigation/menu/tng-menu.component.d.ts +5 -0
  191. package/src/lib/navigation/menu/tng-menu.component.d.ts.map +1 -1
  192. package/src/lib/navigation/menu/tng-menu.component.js +21 -23
  193. package/src/lib/navigation/menu/tng-menu.component.js.map +1 -1
  194. package/src/lib/navigation/menubar/tng-menubar.component.d.ts +5 -0
  195. package/src/lib/navigation/menubar/tng-menubar.component.d.ts.map +1 -1
  196. package/src/lib/navigation/menubar/tng-menubar.component.js +20 -22
  197. package/src/lib/navigation/menubar/tng-menubar.component.js.map +1 -1
  198. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts +4 -0
  199. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts.map +1 -1
  200. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js +11 -13
  201. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js.map +1 -1
  202. package/src/lib/navigation/tabs/tng-tabs.component.d.ts +5 -0
  203. package/src/lib/navigation/tabs/tng-tabs.component.d.ts.map +1 -1
  204. package/src/lib/navigation/tabs/tng-tabs.component.js +32 -34
  205. package/src/lib/navigation/tabs/tng-tabs.component.js.map +1 -1
  206. package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts +4 -0
  207. package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts.map +1 -1
  208. package/src/lib/navigation/toolbar/tng-toolbar.component.js +11 -13
  209. package/src/lib/navigation/toolbar/tng-toolbar.component.js.map +1 -1
  210. package/src/lib/overlay/dialog/tng-dialog.component.d.ts +4 -0
  211. package/src/lib/overlay/dialog/tng-dialog.component.d.ts.map +1 -1
  212. package/src/lib/overlay/dialog/tng-dialog.component.js +18 -25
  213. package/src/lib/overlay/dialog/tng-dialog.component.js.map +1 -1
  214. package/src/lib/overlay/index.d.ts +0 -3
  215. package/src/lib/overlay/index.d.ts.map +1 -1
  216. package/src/lib/overlay/index.js +4 -3
  217. package/src/lib/overlay/index.js.map +1 -1
  218. package/src/lib/overlay/popover/tng-popover.component.d.ts +4 -0
  219. package/src/lib/overlay/popover/tng-popover.component.d.ts.map +1 -1
  220. package/src/lib/overlay/popover/tng-popover.component.js +23 -37
  221. package/src/lib/overlay/popover/tng-popover.component.js.map +1 -1
  222. package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts +4 -0
  223. package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts.map +1 -1
  224. package/src/lib/overlay/tooltip/tng-tooltip.component.js +17 -21
  225. package/src/lib/overlay/tooltip/tng-tooltip.component.js.map +1 -1
  226. package/src/lib/utility/avatar/tng-avatar.component.d.ts +4 -1
  227. package/src/lib/utility/avatar/tng-avatar.component.d.ts.map +1 -1
  228. package/src/lib/utility/avatar/tng-avatar.component.js +20 -22
  229. package/src/lib/utility/avatar/tng-avatar.component.js.map +1 -1
  230. package/src/lib/utility/badge/tng-badge.component.d.ts +4 -0
  231. package/src/lib/utility/badge/tng-badge.component.d.ts.map +1 -1
  232. package/src/lib/utility/badge/tng-badge.component.js +13 -10
  233. package/src/lib/utility/badge/tng-badge.component.js.map +1 -1
  234. package/src/lib/utility/button/tng-button.component.d.ts +4 -1
  235. package/src/lib/utility/button/tng-button.component.d.ts.map +1 -1
  236. package/src/lib/utility/button/tng-button.component.js +19 -29
  237. package/src/lib/utility/button/tng-button.component.js.map +1 -1
  238. package/src/lib/utility/code-block/tng-code-block.component.d.ts +4 -0
  239. package/src/lib/utility/code-block/tng-code-block.component.d.ts.map +1 -1
  240. package/src/lib/utility/code-block/tng-code-block.component.js +73 -103
  241. package/src/lib/utility/code-block/tng-code-block.component.js.map +1 -1
  242. package/src/lib/utility/copy-button/tng-copy-button.component.d.ts +4 -1
  243. package/src/lib/utility/copy-button/tng-copy-button.component.d.ts.map +1 -1
  244. package/src/lib/utility/copy-button/tng-copy-button.component.js +28 -36
  245. package/src/lib/utility/copy-button/tng-copy-button.component.js.map +1 -1
  246. package/src/lib/utility/index.d.ts +1 -9
  247. package/src/lib/utility/index.d.ts.map +1 -1
  248. package/src/lib/utility/index.js +5 -8
  249. package/src/lib/utility/index.js.map +1 -1
  250. package/src/lib/utility/tag/tng-tag.component.d.ts +4 -1
  251. package/src/lib/utility/tag/tng-tag.component.d.ts.map +1 -1
  252. package/src/lib/utility/tag/tng-tag.component.js +18 -24
  253. package/src/lib/utility/tag/tng-tag.component.js.map +1 -1
  254. package/src/lib/utility/tree/tng-tree.component.d.ts +4 -1
  255. package/src/lib/utility/tree/tng-tree.component.d.ts.map +1 -1
  256. package/src/lib/utility/tree/tng-tree.component.js +23 -25
  257. package/src/lib/utility/tree/tng-tree.component.js.map +1 -1
@@ -1,5 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@tailng-ui/primitives";
1
3
  export declare class TngMenubarComponent {
2
4
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
3
5
  protected get hostAriaLabel(): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngMenubarComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngMenubarComponent, "tng-menubar", ["tngMenubarComponent"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.TngMenubar; inputs: { "loop": "loop"; }; outputs: {}; }]>;
4
8
  }
9
+ export { TngMenubarComponent as TngMenubar };
5
10
  //# sourceMappingURL=tng-menubar.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-menubar.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menubar/tng-menubar.component.ts"],"names":[],"mappings":"AAGA,qBAYa,mBAAmB;IAC9B,QAAQ,CAAC,SAAS,8CAA4B;IAG9C,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;CACF"}
1
+ {"version":3,"file":"tng-menubar.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menubar/tng-menubar.component.ts"],"names":[],"mappings":";;AAGA,qBAYa,mBAAmB;IAC9B,QAAQ,CAAC,SAAS,8CAA4B;IAG9C,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;yCANU,mBAAmB;2CAAnB,mBAAmB;CAO/B;AACD,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,CAAC"}
@@ -1,28 +1,26 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, HostBinding, input } from '@angular/core';
3
2
  import { TngMenubar as TngMenubarPrimitive } from '@tailng-ui/primitives';
4
- let TngMenubarComponent = class TngMenubarComponent {
5
- ariaLabel = input('Menubar');
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@tailng-ui/primitives";
5
+ export class TngMenubarComponent {
6
+ ariaLabel = input('Menubar', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
6
7
  get hostAriaLabel() {
7
8
  return this.ariaLabel();
8
9
  }
9
- };
10
- __decorate([
11
- HostBinding('attr.aria-label')
12
- ], TngMenubarComponent.prototype, "hostAriaLabel", null);
13
- TngMenubarComponent = __decorate([
14
- Component({
15
- selector: 'tng-menubar',
16
- hostDirectives: [
17
- {
18
- directive: TngMenubarPrimitive,
19
- inputs: ['loop'],
20
- },
21
- ],
22
- templateUrl: './tng-menubar.component.html',
23
- styleUrl: './tng-menubar.component.css',
24
- exportAs: 'tngMenubarComponent',
25
- })
26
- ], TngMenubarComponent);
27
- export { TngMenubarComponent };
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngMenubarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: TngMenubarComponent, isStandalone: true, selector: "tng-menubar", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-label": "this.hostAriaLabel" } }, exportAs: ["tngMenubarComponent"], hostDirectives: [{ directive: i1.TngMenubar, inputs: ["loop", "loop"] }], ngImport: i0, template: "<ng-content />\n", styles: [":host {}\n"] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngMenubarComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'tng-menubar', hostDirectives: [
16
+ {
17
+ directive: TngMenubarPrimitive,
18
+ inputs: ['loop'],
19
+ },
20
+ ], exportAs: 'tngMenubarComponent', template: "<ng-content />\n", styles: [":host {}\n"] }]
21
+ }], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hostAriaLabel: [{
22
+ type: HostBinding,
23
+ args: ['attr.aria-label']
24
+ }] } });
25
+ export { TngMenubarComponent as TngMenubar };
28
26
  //# sourceMappingURL=tng-menubar.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-menubar.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menubar/tng-menubar.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAcnE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACrB,SAAS,GAAG,KAAK,CAAS,SAAS,CAAC,CAAC;IAG9C,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;CACF,CAAA;AAHC;IADC,WAAW,CAAC,iBAAiB,CAAC;wDAG9B;AANU,mBAAmB;IAZ/B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,mBAAmB;gBAC9B,MAAM,EAAE,CAAC,MAAM,CAAC;aACjB;SACF;QACD,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,6BAA6B;QACvC,QAAQ,EAAE,qBAAqB;KAChC,CAAC;GACW,mBAAmB,CAO/B","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport { TngMenubar as TngMenubarPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-menubar',\n hostDirectives: [\n {\n directive: TngMenubarPrimitive,\n inputs: ['loop'],\n },\n ],\n templateUrl: './tng-menubar.component.html',\n styleUrl: './tng-menubar.component.css',\n exportAs: 'tngMenubarComponent',\n})\nexport class TngMenubarComponent {\n readonly ariaLabel = input<string>('Menubar');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n}\n"]}
1
+ {"version":3,"file":"tng-menubar.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menubar/tng-menubar.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menubar/tng-menubar.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;;;AAc1E,MAAM,OAAO,mBAAmB;IACrB,SAAS,GAAG,KAAK,CAAS,SAAS,qDAAC,CAAC;IAE9C,IACc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;uGANU,mBAAmB;2FAAnB,mBAAmB,uYCfhC,kBACA;;2FDca,mBAAmB;kBAZ/B,SAAS;+BACE,aAAa,kBACP;wBACd;4BACE,SAAS,EAAE,mBAAmB;4BAC9B,MAAM,EAAE,CAAC,MAAM,CAAC;yBACjB;qBACF,YAGS,qBAAqB;;sBAK9B,WAAW;uBAAC,iBAAiB;;AAKhC,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,CAAC","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport { TngMenubar as TngMenubarPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-menubar',\n hostDirectives: [\n {\n directive: TngMenubarPrimitive,\n inputs: ['loop'],\n },\n ],\n templateUrl: './tng-menubar.component.html',\n styleUrl: './tng-menubar.component.css',\n exportAs: 'tngMenubarComponent',\n})\nexport class TngMenubarComponent {\n readonly ariaLabel = input<string>('Menubar');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n}\nexport { TngMenubarComponent as TngMenubar };\n","<ng-content />\n"]}
@@ -1,4 +1,8 @@
1
+ import * as i0 from "@angular/core";
1
2
  export declare class TngNavigationMenuComponent {
2
3
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngNavigationMenuComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngNavigationMenuComponent, "tng-navigation-menu", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
3
6
  }
7
+ export { TngNavigationMenuComponent as TngNavigationMenu };
4
8
  //# sourceMappingURL=tng-navigation-menu.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-navigation-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/navigation-menu/tng-navigation-menu.component.ts"],"names":[],"mappings":"AAGA,qBAMa,0BAA0B;IACrC,SAAgB,SAAS,8CAAoC;CAC9D"}
1
+ {"version":3,"file":"tng-navigation-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/navigation-menu/tng-navigation-menu.component.ts"],"names":[],"mappings":";AAGA,qBAMa,0BAA0B;IACrC,SAAgB,SAAS,8CAAoC;yCADlD,0BAA0B;2CAA1B,0BAA0B;CAEtC;AACD,OAAO,EAAE,0BAA0B,IAAI,iBAAiB,EAAE,CAAC"}
@@ -1,16 +1,14 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, input } from '@angular/core';
3
2
  import { TngNavigationMenu as TngNavigationMenuPrimitive } from '@tailng-ui/primitives';
4
- let TngNavigationMenuComponent = class TngNavigationMenuComponent {
5
- ariaLabel = input('Navigation Menu');
6
- };
7
- TngNavigationMenuComponent = __decorate([
8
- Component({
9
- selector: 'tng-navigation-menu',
10
- imports: [TngNavigationMenuPrimitive],
11
- templateUrl: './tng-navigation-menu.component.html',
12
- styleUrl: './tng-navigation-menu.component.css',
13
- })
14
- ], TngNavigationMenuComponent);
15
- export { TngNavigationMenuComponent };
3
+ import * as i0 from "@angular/core";
4
+ export class TngNavigationMenuComponent {
5
+ ariaLabel = input('Navigation Menu', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngNavigationMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: TngNavigationMenuComponent, isStandalone: true, selector: "tng-navigation-menu", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<section tngNavigationMenu class=\"tng-navigation-menu\" [attr.aria-label]=\"ariaLabel()\">\n <ng-content />\n</section>\n", styles: [":host {\n display: block;\n}\n\n.tng-navigation-menu {\n background: var(--tng-semantic-background-base);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.75rem;\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 0.5rem;\n padding: 0.9rem 1rem;\n}\n"], dependencies: [{ kind: "directive", type: TngNavigationMenuPrimitive, selector: "[tngNavigationMenu]", exportAs: ["tngNavigationMenu"] }] });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngNavigationMenuComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ selector: 'tng-navigation-menu', imports: [TngNavigationMenuPrimitive], template: "<section tngNavigationMenu class=\"tng-navigation-menu\" [attr.aria-label]=\"ariaLabel()\">\n <ng-content />\n</section>\n", styles: [":host {\n display: block;\n}\n\n.tng-navigation-menu {\n background: var(--tng-semantic-background-base);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.75rem;\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 0.5rem;\n padding: 0.9rem 1rem;\n}\n"] }]
12
+ }], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
13
+ export { TngNavigationMenuComponent as TngNavigationMenu };
16
14
  //# sourceMappingURL=tng-navigation-menu.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-navigation-menu.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/navigation-menu/tng-navigation-menu.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAQjF,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrB,SAAS,GAAG,KAAK,CAAS,iBAAiB,CAAC,CAAC;CAC9D,CAAA;AAFY,0BAA0B;IANtC,SAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,OAAO,EAAE,CAAC,0BAA0B,CAAC;QACrC,WAAW,EAAE,sCAAsC;QACnD,QAAQ,EAAE,qCAAqC;KAChD,CAAC;GACW,0BAA0B,CAEtC","sourcesContent":["import { Component, input } from '@angular/core';\nimport { TngNavigationMenu as TngNavigationMenuPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-navigation-menu',\n imports: [TngNavigationMenuPrimitive],\n templateUrl: './tng-navigation-menu.component.html',\n styleUrl: './tng-navigation-menu.component.css',\n})\nexport class TngNavigationMenuComponent {\n public readonly ariaLabel = input<string>('Navigation Menu');\n}\n"]}
1
+ {"version":3,"file":"tng-navigation-menu.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/navigation-menu/tng-navigation-menu.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/navigation/navigation-menu/tng-navigation-menu.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;;AAQxF,MAAM,OAAO,0BAA0B;IACrB,SAAS,GAAG,KAAK,CAAS,iBAAiB,qDAAC,CAAC;uGADlD,0BAA0B;2FAA1B,0BAA0B,+NCTvC,6HAGA,0WDEY,0BAA0B;;2FAIzB,0BAA0B;kBANtC,SAAS;+BACE,qBAAqB,WACtB,CAAC,0BAA0B,CAAC;;AAOvC,OAAO,EAAE,0BAA0B,IAAI,iBAAiB,EAAE,CAAC","sourcesContent":["import { Component, input } from '@angular/core';\nimport { TngNavigationMenu as TngNavigationMenuPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-navigation-menu',\n imports: [TngNavigationMenuPrimitive],\n templateUrl: './tng-navigation-menu.component.html',\n styleUrl: './tng-navigation-menu.component.css',\n})\nexport class TngNavigationMenuComponent {\n public readonly ariaLabel = input<string>('Navigation Menu');\n}\nexport { TngNavigationMenuComponent as TngNavigationMenu };\n","<section tngNavigationMenu class=\"tng-navigation-menu\" [attr.aria-label]=\"ariaLabel()\">\n <ng-content />\n</section>\n"]}
@@ -1,5 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@tailng-ui/primitives";
1
3
  export declare class TngTabsComponent {
2
4
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
3
5
  protected get hostAriaLabel(): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngTabsComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngTabsComponent, "tng-tabs", ["tngTabsComponent"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.TngTabs; inputs: { "value": "value"; "defaultValue": "defaultValue"; "activation": "activation"; "orientation": "orientation"; "scrollButtons": "scrollButtons"; "loop": "loop"; "dir": "dir"; "disabled": "disabled"; "lazy": "lazy"; "keepAlive": "keepAlive"; }; outputs: { "valueChange": "valueChange"; "tabChange": "tabChange"; "focusChange": "focusChange"; }; }]>;
4
8
  }
9
+ export { TngTabsComponent as TngTabs };
5
10
  //# sourceMappingURL=tng-tabs.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tabs.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/tabs/tng-tabs.component.ts"],"names":[],"mappings":"AAGA,qBAwBa,gBAAgB;IAC3B,QAAQ,CAAC,SAAS,8CAAyB;IAG3C,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;CACF"}
1
+ {"version":3,"file":"tng-tabs.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/tabs/tng-tabs.component.ts"],"names":[],"mappings":";;AAGA,qBAwBa,gBAAgB;IAC3B,QAAQ,CAAC,SAAS,8CAAyB;IAG3C,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;yCANU,gBAAgB;2CAAhB,gBAAgB;CAO5B;AACD,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,CAAC"}
@@ -1,40 +1,38 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, HostBinding, input } from '@angular/core';
3
2
  import { TngTabs as TngTabsPrimitive } from '@tailng-ui/primitives';
4
- let TngTabsComponent = class TngTabsComponent {
5
- ariaLabel = input('Tabs');
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@tailng-ui/primitives";
5
+ export class TngTabsComponent {
6
+ ariaLabel = input('Tabs', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
6
7
  get hostAriaLabel() {
7
8
  return this.ariaLabel();
8
9
  }
9
- };
10
- __decorate([
11
- HostBinding('attr.aria-label')
12
- ], TngTabsComponent.prototype, "hostAriaLabel", null);
13
- TngTabsComponent = __decorate([
14
- Component({
15
- selector: 'tng-tabs',
16
- hostDirectives: [
17
- {
18
- directive: TngTabsPrimitive,
19
- inputs: [
20
- 'value',
21
- 'defaultValue',
22
- 'activation',
23
- 'orientation',
24
- 'scrollButtons',
25
- 'loop',
26
- 'dir',
27
- 'disabled',
28
- 'lazy',
29
- 'keepAlive',
30
- ],
31
- outputs: ['valueChange', 'tabChange', 'focusChange'],
32
- },
33
- ],
34
- templateUrl: './tng-tabs.component.html',
35
- styleUrl: './tng-tabs.component.css',
36
- exportAs: 'tngTabsComponent',
37
- })
38
- ], TngTabsComponent);
39
- export { TngTabsComponent };
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: TngTabsComponent, isStandalone: true, selector: "tng-tabs", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-label": "this.hostAriaLabel" } }, exportAs: ["tngTabsComponent"], hostDirectives: [{ directive: i1.TngTabs, inputs: ["value", "value", "defaultValue", "defaultValue", "activation", "activation", "orientation", "orientation", "scrollButtons", "scrollButtons", "loop", "loop", "dir", "dir", "disabled", "disabled", "lazy", "lazy", "keepAlive", "keepAlive"], outputs: ["valueChange", "valueChange", "tabChange", "tabChange", "focusChange", "focusChange"] }], ngImport: i0, template: "<section class=\"tng-tabs\">\n <ng-content />\n</section>\n", styles: [":host {\n display: block;\n}\n\n.tng-tabs {\n background: var(--tng-semantic-background-base);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.75rem;\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 0.5rem;\n padding: 0.9rem 1rem;\n}\n"] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngTabsComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'tng-tabs', hostDirectives: [
16
+ {
17
+ directive: TngTabsPrimitive,
18
+ inputs: [
19
+ 'value',
20
+ 'defaultValue',
21
+ 'activation',
22
+ 'orientation',
23
+ 'scrollButtons',
24
+ 'loop',
25
+ 'dir',
26
+ 'disabled',
27
+ 'lazy',
28
+ 'keepAlive',
29
+ ],
30
+ outputs: ['valueChange', 'tabChange', 'focusChange'],
31
+ },
32
+ ], exportAs: 'tngTabsComponent', template: "<section class=\"tng-tabs\">\n <ng-content />\n</section>\n", styles: [":host {\n display: block;\n}\n\n.tng-tabs {\n background: var(--tng-semantic-background-base);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.75rem;\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 0.5rem;\n padding: 0.9rem 1rem;\n}\n"] }]
33
+ }], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hostAriaLabel: [{
34
+ type: HostBinding,
35
+ args: ['attr.aria-label']
36
+ }] } });
37
+ export { TngTabsComponent as TngTabs };
40
38
  //# sourceMappingURL=tng-tabs.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-tabs.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/tabs/tng-tabs.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA0B7D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAClB,SAAS,GAAG,KAAK,CAAS,MAAM,CAAC,CAAC;IAG3C,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;CACF,CAAA;AAHC;IADC,WAAW,CAAC,iBAAiB,CAAC;qDAG9B;AANU,gBAAgB;IAxB5B,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,gBAAgB;gBAC3B,MAAM,EAAE;oBACN,OAAO;oBACP,cAAc;oBACd,YAAY;oBACZ,aAAa;oBACb,eAAe;oBACf,MAAM;oBACN,KAAK;oBACL,UAAU;oBACV,MAAM;oBACN,WAAW;iBACZ;gBACD,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,aAAa,CAAC;aACrD;SACF;QACD,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE,kBAAkB;KAC7B,CAAC;GACW,gBAAgB,CAO5B","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport { TngTabs as TngTabsPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-tabs',\n hostDirectives: [\n {\n directive: TngTabsPrimitive,\n inputs: [\n 'value',\n 'defaultValue',\n 'activation',\n 'orientation',\n 'scrollButtons',\n 'loop',\n 'dir',\n 'disabled',\n 'lazy',\n 'keepAlive',\n ],\n outputs: ['valueChange', 'tabChange', 'focusChange'],\n },\n ],\n templateUrl: './tng-tabs.component.html',\n styleUrl: './tng-tabs.component.css',\n exportAs: 'tngTabsComponent',\n})\nexport class TngTabsComponent {\n readonly ariaLabel = input<string>('Tabs');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n}\n"]}
1
+ {"version":3,"file":"tng-tabs.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/tabs/tng-tabs.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/navigation/tabs/tng-tabs.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;;;AA0BpE,MAAM,OAAO,gBAAgB;IAClB,SAAS,GAAG,KAAK,CAAS,MAAM,qDAAC,CAAC;IAE3C,IACc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;uGANU,gBAAgB;2FAAhB,gBAAgB,6rBC3B7B,8DAGA;;2FDwBa,gBAAgB;kBAxB5B,SAAS;+BACE,UAAU,kBACJ;wBACd;4BACE,SAAS,EAAE,gBAAgB;4BAC3B,MAAM,EAAE;gCACN,OAAO;gCACP,cAAc;gCACd,YAAY;gCACZ,aAAa;gCACb,eAAe;gCACf,MAAM;gCACN,KAAK;gCACL,UAAU;gCACV,MAAM;gCACN,WAAW;6BACZ;4BACD,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,aAAa,CAAC;yBACrD;qBACF,YAGS,kBAAkB;;sBAK3B,WAAW;uBAAC,iBAAiB;;AAKhC,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,CAAC","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport { TngTabs as TngTabsPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-tabs',\n hostDirectives: [\n {\n directive: TngTabsPrimitive,\n inputs: [\n 'value',\n 'defaultValue',\n 'activation',\n 'orientation',\n 'scrollButtons',\n 'loop',\n 'dir',\n 'disabled',\n 'lazy',\n 'keepAlive',\n ],\n outputs: ['valueChange', 'tabChange', 'focusChange'],\n },\n ],\n templateUrl: './tng-tabs.component.html',\n styleUrl: './tng-tabs.component.css',\n exportAs: 'tngTabsComponent',\n})\nexport class TngTabsComponent {\n readonly ariaLabel = input<string>('Tabs');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n}\nexport { TngTabsComponent as TngTabs };\n","<section class=\"tng-tabs\">\n <ng-content />\n</section>\n"]}
@@ -1,4 +1,8 @@
1
+ import * as i0 from "@angular/core";
1
2
  export declare class TngToolbarComponent {
2
3
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngToolbarComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngToolbarComponent, "tng-toolbar", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
3
6
  }
7
+ export { TngToolbarComponent as TngToolbar };
4
8
  //# sourceMappingURL=tng-toolbar.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-toolbar.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/toolbar/tng-toolbar.component.ts"],"names":[],"mappings":"AAGA,qBAMa,mBAAmB;IAC9B,SAAgB,SAAS,8CAA4B;CACtD"}
1
+ {"version":3,"file":"tng-toolbar.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/toolbar/tng-toolbar.component.ts"],"names":[],"mappings":";AAGA,qBAMa,mBAAmB;IAC9B,SAAgB,SAAS,8CAA4B;yCAD1C,mBAAmB;2CAAnB,mBAAmB;CAE/B;AACD,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,CAAC"}
@@ -1,16 +1,14 @@
1
- import { __decorate } from "tslib";
2
1
  import { Component, input } from '@angular/core';
3
2
  import { TngToolbar as TngToolbarPrimitive } from '@tailng-ui/primitives';
4
- let TngToolbarComponent = class TngToolbarComponent {
5
- ariaLabel = input('Toolbar');
6
- };
7
- TngToolbarComponent = __decorate([
8
- Component({
9
- selector: 'tng-toolbar',
10
- imports: [TngToolbarPrimitive],
11
- templateUrl: './tng-toolbar.component.html',
12
- styleUrl: './tng-toolbar.component.css',
13
- })
14
- ], TngToolbarComponent);
15
- export { TngToolbarComponent };
3
+ import * as i0 from "@angular/core";
4
+ export class TngToolbarComponent {
5
+ ariaLabel = input('Toolbar', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: TngToolbarComponent, isStandalone: true, selector: "tng-toolbar", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<section tngToolbar class=\"tng-toolbar\" [attr.aria-label]=\"ariaLabel()\">\n <ng-content />\n</section>\n", styles: [":host {\n display: block;\n}\n\n.tng-toolbar {\n background: var(--tng-semantic-background-base);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.75rem;\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 0.5rem;\n padding: 0.9rem 1rem;\n}\n"], dependencies: [{ kind: "directive", type: TngToolbarPrimitive, selector: "[tngToolbar]", exportAs: ["tngToolbar"] }] });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngToolbarComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ selector: 'tng-toolbar', imports: [TngToolbarPrimitive], template: "<section tngToolbar class=\"tng-toolbar\" [attr.aria-label]=\"ariaLabel()\">\n <ng-content />\n</section>\n", styles: [":host {\n display: block;\n}\n\n.tng-toolbar {\n background: var(--tng-semantic-background-base);\n border: 1px solid var(--tng-semantic-border-subtle);\n border-radius: 0.75rem;\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 0.5rem;\n padding: 0.9rem 1rem;\n}\n"] }]
12
+ }], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
13
+ export { TngToolbarComponent as TngToolbar };
16
14
  //# sourceMappingURL=tng-toolbar.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-toolbar.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/toolbar/tng-toolbar.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAQnE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACd,SAAS,GAAG,KAAK,CAAS,SAAS,CAAC,CAAC;CACtD,CAAA;AAFY,mBAAmB;IAN/B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,6BAA6B;KACxC,CAAC;GACW,mBAAmB,CAE/B","sourcesContent":["import { Component, input } from '@angular/core';\nimport { TngToolbar as TngToolbarPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-toolbar',\n imports: [TngToolbarPrimitive],\n templateUrl: './tng-toolbar.component.html',\n styleUrl: './tng-toolbar.component.css',\n})\nexport class TngToolbarComponent {\n public readonly ariaLabel = input<string>('Toolbar');\n}\n"]}
1
+ {"version":3,"file":"tng-toolbar.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/toolbar/tng-toolbar.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/navigation/toolbar/tng-toolbar.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;;AAQ1E,MAAM,OAAO,mBAAmB;IACd,SAAS,GAAG,KAAK,CAAS,SAAS,qDAAC,CAAC;uGAD1C,mBAAmB;2FAAnB,mBAAmB,uNCThC,8GAGA,kWDEY,mBAAmB;;2FAIlB,mBAAmB;kBAN/B,SAAS;+BACE,aAAa,WACd,CAAC,mBAAmB,CAAC;;AAOhC,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,CAAC","sourcesContent":["import { Component, input } from '@angular/core';\nimport { TngToolbar as TngToolbarPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-toolbar',\n imports: [TngToolbarPrimitive],\n templateUrl: './tng-toolbar.component.html',\n styleUrl: './tng-toolbar.component.css',\n})\nexport class TngToolbarComponent {\n public readonly ariaLabel = input<string>('Toolbar');\n}\nexport { TngToolbarComponent as TngToolbar };\n","<section tngToolbar class=\"tng-toolbar\" [attr.aria-label]=\"ariaLabel()\">\n <ng-content />\n</section>\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
2
3
  export type TngDialogCloseReason = 'backdrop' | 'close-button' | 'escape' | 'programmatic';
3
4
  export type TngDialogSize = 'lg' | 'md' | 'sm';
4
5
  export declare class TngDialogComponent implements OnDestroy {
@@ -39,5 +40,8 @@ export declare class TngDialogComponent implements OnDestroy {
39
40
  private focusEdgeWhenOutsidePanel;
40
41
  private wrapTabAtEdges;
41
42
  private trapTabNavigation;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngDialogComponent, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngDialogComponent, "tng-dialog", never, { "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "openChange": "openChange"; }, never, ["*"], true, never>;
42
45
  }
46
+ export { TngDialogComponent as TngDialog };
43
47
  //# sourceMappingURL=tng-dialog.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-dialog.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/overlay/dialog/tng-dialog.component.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AA2B3D,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,GAAG,cAAc,CAAC;AAC3F,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAwE/C,qBAKa,kBAAmB,YAAW,SAAS;IAClD,SAAgB,eAAe,8EAE5B;IACH,SAAgB,aAAa,8EAE1B;IACH,SAAgB,WAAW,qDAA8B;IACzD,SAAgB,IAAI,8EAEjB;IACH,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,KAAK,8CAA2B;IAEhD,SAAgB,MAAM,iEAAkC;IACxD,SAAgB,UAAU,oDAAqB;IAE/C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqD;IACjF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkD;IAC3E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAExB;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,mBAAmB,CAA4B;IAEvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAO7B;;IAQI,KAAK,IAAI,IAAI;IAIb,WAAW,IAAI,IAAI;IAKnB,kBAAkB,IAAI,IAAI;IAI1B,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAW3C,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,iBAAiB;CAkB1B"}
1
+ {"version":3,"file":"tng-dialog.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/overlay/dialog/tng-dialog.component.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,eAAe,CAAC;;AA2B3D,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,GAAG,cAAc,CAAC;AAC3F,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAwE/C,qBAKa,kBAAmB,YAAW,SAAS;IAClD,SAAgB,eAAe,8EAE5B;IACH,SAAgB,aAAa,8EAE1B;IACH,SAAgB,WAAW,qDAA8B;IACzD,SAAgB,IAAI,8EAEjB;IACH,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,KAAK,8CAA2B;IAEhD,SAAgB,MAAM,iEAAkC;IACxD,SAAgB,UAAU,oDAAqB;IAE/C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqD;IACjF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkD;IAC3E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAExB;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,mBAAmB,CAA4B;IAEvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAO7B;;IAQI,KAAK,IAAI,IAAI;IAIb,WAAW,IAAI,IAAI;IAKnB,kBAAkB,IAAI,IAAI;IAI1B,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAW3C,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,iBAAiB;yCA7Od,kBAAkB;2CAAlB,kBAAkB;CA+P9B;AACD,OAAO,EAAE,kBAAkB,IAAI,SAAS,EAAE,CAAC"}
@@ -1,7 +1,7 @@
1
- import { __decorate } from "tslib";
2
1
  import { afterNextRender, booleanAttribute, Component, effect, inject, Injector, input, output, viewChild, } from '@angular/core';
3
2
  import { createOverlayScrollLockManager, createTngIdFactory, } from '@tailng-ui/cdk';
4
3
  import { tngOverlayRuntime } from '../tng-overlay-runtime';
4
+ import * as i0 from "@angular/core";
5
5
  const createDialogId = createTngIdFactory('tng-dialog');
6
6
  const focusableSelector = [
7
7
  'a[href]',
@@ -65,19 +65,13 @@ function toDialogCloseReason(reason) {
65
65
  }
66
66
  return null;
67
67
  }
68
- let TngDialogComponent = class TngDialogComponent {
69
- closeOnBackdrop = input(true, {
70
- transform: booleanAttribute,
71
- });
72
- closeOnEscape = input(true, {
73
- transform: booleanAttribute,
74
- });
75
- description = input(null);
76
- open = input(false, {
77
- transform: booleanAttribute,
78
- });
79
- size = input('md');
80
- title = input('Dialog');
68
+ export class TngDialogComponent {
69
+ closeOnBackdrop = input(true, { ...(ngDevMode ? { debugName: "closeOnBackdrop" } : {}), transform: booleanAttribute });
70
+ closeOnEscape = input(true, { ...(ngDevMode ? { debugName: "closeOnEscape" } : {}), transform: booleanAttribute });
71
+ description = input(null, ...(ngDevMode ? [{ debugName: "description" }] : []));
72
+ open = input(false, { ...(ngDevMode ? { debugName: "open" } : {}), transform: booleanAttribute });
73
+ size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : []));
74
+ title = input('Dialog', ...(ngDevMode ? [{ debugName: "title" }] : []));
81
75
  closed = output();
82
76
  openChange = output();
83
77
  descriptionId;
@@ -85,7 +79,7 @@ let TngDialogComponent = class TngDialogComponent {
85
79
  titleId;
86
80
  documentRef = typeof document === 'undefined' ? null : document;
87
81
  injector = inject(Injector);
88
- panelRef = viewChild('panelRef');
82
+ panelRef = viewChild('panelRef', ...(ngDevMode ? [{ debugName: "panelRef" }] : []));
89
83
  scrollLock = createOverlayScrollLockManager({
90
84
  documentRef: toScrollLockDocument(this.documentRef),
91
85
  });
@@ -99,7 +93,7 @@ let TngDialogComponent = class TngDialogComponent {
99
93
  return;
100
94
  }
101
95
  this.deactivateDialog();
102
- });
96
+ }, ...(ngDevMode ? [{ debugName: "openStateEffect" }] : []));
103
97
  constructor() {
104
98
  this.descriptionId = `${this.instanceId}-description`;
105
99
  this.panelId = `${this.instanceId}-panel`;
@@ -274,13 +268,12 @@ let TngDialogComponent = class TngDialogComponent {
274
268
  }
275
269
  this.wrapTabAtEdges(event, focusState);
276
270
  }
277
- };
278
- TngDialogComponent = __decorate([
279
- Component({
280
- selector: 'tng-dialog',
281
- templateUrl: './tng-dialog.component.html',
282
- styleUrl: './tng-dialog.component.css',
283
- })
284
- ], TngDialogComponent);
285
- export { TngDialogComponent };
271
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
272
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.1", type: TngDialogComponent, isStandalone: true, selector: "tng-dialog", inputs: { closeOnBackdrop: { classPropertyName: "closeOnBackdrop", publicName: "closeOnBackdrop", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", openChange: "openChange" }, viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (open()) {\n <div class=\"tng-dialog-backdrop\">\n <section\n #panelRef\n [id]=\"panelId\"\n role=\"dialog\"\n aria-modal=\"true\"\n class=\"tng-dialog-panel\"\n [attr.data-size]=\"size()\"\n [attr.aria-labelledby]=\"titleId\"\n [attr.aria-describedby]=\"description() ? descriptionId : null\"\n tabindex=\"-1\"\n (keydown)=\"onPanelKeydown($event)\"\n >\n <header class=\"tng-dialog-header\">\n <div class=\"tng-dialog-heading\">\n <h2 [id]=\"titleId\" class=\"tng-dialog-title\">{{ title() }}</h2>\n @if (description()) {\n <p [id]=\"descriptionId\" class=\"tng-dialog-description\">{{ description() }}</p>\n }\n </div>\n\n <button type=\"button\" class=\"tng-dialog-close\" aria-label=\"Close dialog\" (click)=\"onCloseButtonClick()\">\n \u00D7\n </button>\n </header>\n\n <div class=\"tng-dialog-content\">\n <ng-content />\n </div>\n </section>\n </div>\n}\n", styles: [":host {\n display: contents;\n}\n\n.tng-dialog-backdrop {\n align-items: center;\n background: color-mix(in srgb, var(--tng-semantic-foreground-primary) 28%, transparent);\n display: flex;\n inset: 0;\n justify-content: center;\n padding: 1rem;\n position: fixed;\n z-index: 70;\n}\n\n.tng-dialog-panel {\n background: var(--tng-semantic-background-surface);\n border: 1px solid var(--tng-semantic-border-strong);\n border-radius: 1rem;\n box-shadow: 0 20px 45px color-mix(in srgb, var(--tng-semantic-foreground-primary) 35%, transparent);\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 1rem;\n max-height: calc(100vh - 2rem);\n overflow: auto;\n width: min(92vw, 34rem);\n}\n\n.tng-dialog-panel[data-size='sm'] {\n width: min(92vw, 26rem);\n}\n\n.tng-dialog-panel[data-size='lg'] {\n width: min(92vw, 48rem);\n}\n\n.tng-dialog-header {\n align-items: flex-start;\n display: flex;\n gap: 1rem;\n justify-content: space-between;\n padding: 1.2rem 1.2rem 0;\n}\n\n.tng-dialog-heading {\n display: grid;\n gap: 0.35rem;\n}\n\n.tng-dialog-title {\n font-size: 1.1rem;\n font-weight: 700;\n line-height: 1.3;\n margin: 0;\n}\n\n.tng-dialog-description {\n color: var(--tng-semantic-foreground-muted);\n font-size: 0.92rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.tng-dialog-close {\n align-items: center;\n appearance: none;\n background: transparent;\n border: 1px solid var(--tng-semantic-border-strong);\n border-radius: 999px;\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n flex: 0 0 auto;\n font-size: 1.2rem;\n height: 2rem;\n justify-content: center;\n line-height: 1;\n width: 2rem;\n}\n\n.tng-dialog-close:focus-visible {\n box-shadow: 0 0 0 3px var(--tng-semantic-focus-ring);\n outline: none;\n}\n\n.tng-dialog-content {\n display: grid;\n gap: 1rem;\n padding: 0 1.2rem 1.2rem;\n}\n"] });
273
+ }
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TngDialogComponent, decorators: [{
275
+ type: Component,
276
+ args: [{ selector: 'tng-dialog', template: "@if (open()) {\n <div class=\"tng-dialog-backdrop\">\n <section\n #panelRef\n [id]=\"panelId\"\n role=\"dialog\"\n aria-modal=\"true\"\n class=\"tng-dialog-panel\"\n [attr.data-size]=\"size()\"\n [attr.aria-labelledby]=\"titleId\"\n [attr.aria-describedby]=\"description() ? descriptionId : null\"\n tabindex=\"-1\"\n (keydown)=\"onPanelKeydown($event)\"\n >\n <header class=\"tng-dialog-header\">\n <div class=\"tng-dialog-heading\">\n <h2 [id]=\"titleId\" class=\"tng-dialog-title\">{{ title() }}</h2>\n @if (description()) {\n <p [id]=\"descriptionId\" class=\"tng-dialog-description\">{{ description() }}</p>\n }\n </div>\n\n <button type=\"button\" class=\"tng-dialog-close\" aria-label=\"Close dialog\" (click)=\"onCloseButtonClick()\">\n \u00D7\n </button>\n </header>\n\n <div class=\"tng-dialog-content\">\n <ng-content />\n </div>\n </section>\n </div>\n}\n", styles: [":host {\n display: contents;\n}\n\n.tng-dialog-backdrop {\n align-items: center;\n background: color-mix(in srgb, var(--tng-semantic-foreground-primary) 28%, transparent);\n display: flex;\n inset: 0;\n justify-content: center;\n padding: 1rem;\n position: fixed;\n z-index: 70;\n}\n\n.tng-dialog-panel {\n background: var(--tng-semantic-background-surface);\n border: 1px solid var(--tng-semantic-border-strong);\n border-radius: 1rem;\n box-shadow: 0 20px 45px color-mix(in srgb, var(--tng-semantic-foreground-primary) 35%, transparent);\n color: var(--tng-semantic-foreground-primary);\n display: grid;\n gap: 1rem;\n max-height: calc(100vh - 2rem);\n overflow: auto;\n width: min(92vw, 34rem);\n}\n\n.tng-dialog-panel[data-size='sm'] {\n width: min(92vw, 26rem);\n}\n\n.tng-dialog-panel[data-size='lg'] {\n width: min(92vw, 48rem);\n}\n\n.tng-dialog-header {\n align-items: flex-start;\n display: flex;\n gap: 1rem;\n justify-content: space-between;\n padding: 1.2rem 1.2rem 0;\n}\n\n.tng-dialog-heading {\n display: grid;\n gap: 0.35rem;\n}\n\n.tng-dialog-title {\n font-size: 1.1rem;\n font-weight: 700;\n line-height: 1.3;\n margin: 0;\n}\n\n.tng-dialog-description {\n color: var(--tng-semantic-foreground-muted);\n font-size: 0.92rem;\n line-height: 1.4;\n margin: 0;\n}\n\n.tng-dialog-close {\n align-items: center;\n appearance: none;\n background: transparent;\n border: 1px solid var(--tng-semantic-border-strong);\n border-radius: 999px;\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n flex: 0 0 auto;\n font-size: 1.2rem;\n height: 2rem;\n justify-content: center;\n line-height: 1;\n width: 2rem;\n}\n\n.tng-dialog-close:focus-visible {\n box-shadow: 0 0 0 3px var(--tng-semantic-focus-ring);\n outline: none;\n}\n\n.tng-dialog-content {\n display: grid;\n gap: 1rem;\n padding: 0 1.2rem 1.2rem;\n}\n"] }]
277
+ }], ctorParameters: () => [], propDecorators: { closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }], closeOnEscape: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnEscape", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], openChange: [{ type: i0.Output, args: ["openChange"] }], panelRef: [{ type: i0.ViewChild, args: ['panelRef', { isSignal: true }] }] } });
278
+ export { TngDialogComponent as TngDialog };
286
279
  //# sourceMappingURL=tng-dialog.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tng-dialog.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/overlay/dialog/tng-dialog.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n afterNextRender,\n booleanAttribute,\n Component,\n effect,\n inject,\n Injector,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport type { ElementRef, OnDestroy } from '@angular/core';\nimport {\n createOverlayScrollLockManager,\n createTngIdFactory,\n type TngOverlayDismissReason,\n} from '@tailng-ui/cdk';\nimport type { TngScrollLockDocument } from '@tailng-ui/cdk/overlay';\nimport { tngOverlayRuntime } from '../tng-overlay-runtime';\n\nconst createDialogId = createTngIdFactory('tng-dialog');\n\nconst focusableSelector = [\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].join(',');\n\ntype TngFocusTrapState = Readonly<{\n activeElement: HTMLElement | null;\n first: HTMLElement;\n last: HTMLElement;\n panel: HTMLElement;\n}>;\n\nexport type TngDialogCloseReason = 'backdrop' | 'close-button' | 'escape' | 'programmatic';\nexport type TngDialogSize = 'lg' | 'md' | 'sm';\n\nfunction readKeyboardEvent(event: unknown): KeyboardEvent | null {\n return event instanceof KeyboardEvent ? event : null;\n}\n\nfunction resolveActiveElement(documentRef: unknown): HTMLElement | null {\n if (!(documentRef instanceof Document)) {\n return null;\n }\n\n const activeElement = documentRef.activeElement;\n return activeElement instanceof HTMLElement ? activeElement : null;\n}\n\nfunction resolveFocusableElements(container: unknown): readonly HTMLElement[] {\n if (!(container instanceof HTMLElement)) {\n return [];\n }\n\n const candidates = Array.from(container.querySelectorAll<HTMLElement>(focusableSelector));\n const focusableElements: HTMLElement[] = [];\n for (const candidate of candidates) {\n if (!candidate.hasAttribute('disabled')) {\n focusableElements.push(candidate);\n }\n }\n\n return focusableElements;\n}\n\nfunction resolveFirstFocusableWithin(container: unknown): HTMLElement | null {\n return resolveFocusableElements(container)[0] ?? null;\n}\n\nfunction resolveMarkedInitialElement(container: unknown): HTMLElement | null {\n if (!(container instanceof HTMLElement)) {\n return null;\n }\n\n const markedInitial = container.querySelector<HTMLElement>('[data-tng-dialog-initial-focus]');\n if (markedInitial === null) {\n return null;\n }\n\n if (resolveFocusableElements(container).includes(markedInitial)) {\n return markedInitial;\n }\n\n return resolveFirstFocusableWithin(markedInitial);\n}\n\nfunction toScrollLockDocument(documentRef: unknown): TngScrollLockDocument | null {\n if (!(documentRef instanceof Document)) {\n return null;\n }\n\n return documentRef as unknown as TngScrollLockDocument;\n}\n\nfunction toDialogCloseReason(reason: TngOverlayDismissReason): TngDialogCloseReason | null {\n if (reason === 'escape-key') {\n return 'escape';\n }\n\n if (reason === 'outside-pointer') {\n return 'backdrop';\n }\n\n return null;\n}\n\n@Component({\n selector: 'tng-dialog',\n templateUrl: './tng-dialog.component.html',\n styleUrl: './tng-dialog.component.css',\n})\nexport class TngDialogComponent implements OnDestroy {\n public readonly closeOnBackdrop = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly closeOnEscape = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly description = input<string | null>(null);\n public readonly open = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly size = input<TngDialogSize>('md');\n public readonly title = input<string>('Dialog');\n\n public readonly closed = output<TngDialogCloseReason>();\n public readonly openChange = output<boolean>();\n\n protected readonly descriptionId: string;\n protected readonly panelId: string;\n protected readonly titleId: string;\n\n private readonly documentRef = typeof document === 'undefined' ? null : document;\n private readonly injector = inject(Injector);\n private readonly panelRef = viewChild<ElementRef<HTMLElement>>('panelRef');\n private readonly scrollLock = createOverlayScrollLockManager({\n documentRef: toScrollLockDocument(this.documentRef),\n });\n private readonly instanceId = createDialogId();\n private isActive = false;\n private isLayerRegistered = false;\n private restoreFocusElement: HTMLElement | null = null;\n\n private readonly openStateEffect = effect((): void => {\n if (this.open()) {\n this.activateDialog();\n return;\n }\n\n this.deactivateDialog();\n });\n\n public constructor() {\n this.descriptionId = `${this.instanceId}-description`;\n this.panelId = `${this.instanceId}-panel`;\n this.titleId = `${this.instanceId}-title`;\n }\n\n public close(): void {\n this.requestClose('programmatic');\n }\n\n public ngOnDestroy(): void {\n this.openStateEffect.destroy();\n this.deactivateDialog();\n }\n\n public onCloseButtonClick(): void {\n this.requestClose('close-button');\n }\n\n public onPanelKeydown(event: unknown): void {\n const keyboardEvent = readKeyboardEvent(event);\n if (keyboardEvent === null) {\n return;\n }\n\n if (keyboardEvent.key === 'Tab') {\n this.trapTabNavigation(event);\n }\n }\n\n private activateDialog(): void {\n if (this.isActive) {\n return;\n }\n\n this.isActive = true;\n this.registerOverlayLayer();\n this.restoreFocusElement = resolveActiveElement(this.documentRef);\n this.scrollLock.acquire(this.instanceId);\n afterNextRender(\n (): void => {\n this.focusInitialElement();\n },\n { injector: this.injector },\n );\n }\n\n private deactivateDialog(): void {\n if (!this.isActive) {\n return;\n }\n\n this.isActive = false;\n this.unregisterOverlayLayer();\n this.scrollLock.release(this.instanceId);\n this.restoreFocusElement?.focus();\n this.restoreFocusElement = null;\n }\n\n private handleOverlayDismiss(reason: TngOverlayDismissReason): void {\n const closeReason = toDialogCloseReason(reason);\n if (closeReason === null) {\n return;\n }\n\n this.requestClose(closeReason);\n }\n\n private registerOverlayLayer(): void {\n if (this.isLayerRegistered) {\n return;\n }\n\n this.isLayerRegistered = true;\n tngOverlayRuntime.registerLayer({\n containsTarget: (target: unknown, path: readonly unknown[]): boolean => {\n const panel = this.panelRef()?.nativeElement;\n if (panel === undefined) {\n return false;\n }\n\n if (path.includes(panel)) {\n return true;\n }\n\n return target instanceof Node ? panel.contains(target) : false;\n },\n dismissOnEscape: this.closeOnEscape(),\n dismissOnOutsidePointer: this.closeOnBackdrop(),\n id: this.instanceId,\n modal: true,\n onDismiss: (reason: TngOverlayDismissReason): void => {\n this.handleOverlayDismiss(reason);\n },\n priority: 100,\n });\n }\n\n private unregisterOverlayLayer(): void {\n if (!this.isLayerRegistered) {\n return;\n }\n\n this.isLayerRegistered = false;\n tngOverlayRuntime.unregisterLayer(this.instanceId);\n }\n\n private focusInitialElement(): void {\n const panel = this.panelRef()?.nativeElement;\n if (panel === undefined) {\n return;\n }\n\n const markedInitial = resolveMarkedInitialElement(panel);\n if (markedInitial !== null) {\n markedInitial.focus();\n return;\n }\n\n const firstFocusable = resolveFirstFocusableWithin(panel);\n if (firstFocusable !== null) {\n firstFocusable.focus();\n return;\n }\n\n panel.focus();\n }\n\n private preventAndFocus(event: unknown, target: unknown): void {\n const keyboardEvent = readKeyboardEvent(event);\n if (keyboardEvent === null || !(target instanceof HTMLElement)) {\n return;\n }\n\n keyboardEvent.preventDefault();\n target.focus();\n }\n\n private requestClose(reason: TngDialogCloseReason): void {\n this.closed.emit(reason);\n this.openChange.emit(false);\n }\n\n private resolveFocusTrapState(panel: unknown): TngFocusTrapState | null {\n if (!(panel instanceof HTMLElement)) {\n return null;\n }\n\n const focusableElements = resolveFocusableElements(panel);\n const first = focusableElements[0];\n if (first === undefined) {\n return null;\n }\n\n return {\n activeElement: resolveActiveElement(this.documentRef),\n first,\n last: focusableElements[focusableElements.length - 1] ?? first,\n panel,\n };\n }\n\n private focusEdgeWhenOutsidePanel(event: unknown, focusState: unknown): boolean {\n const state = focusState as TngFocusTrapState;\n const activeElement = state.activeElement;\n if (activeElement !== null && state.panel.contains(activeElement)) {\n return false;\n }\n\n const keyboardEvent = readKeyboardEvent(event);\n if (keyboardEvent === null) {\n return true;\n }\n\n const edge = keyboardEvent.shiftKey ? state.last : state.first;\n this.preventAndFocus(keyboardEvent, edge);\n return true;\n }\n\n private wrapTabAtEdges(event: unknown, focusState: unknown): void {\n const state = focusState as TngFocusTrapState;\n const keyboardEvent = readKeyboardEvent(event);\n if (keyboardEvent === null) {\n return;\n }\n\n if (keyboardEvent.shiftKey && state.activeElement === state.first) {\n this.preventAndFocus(keyboardEvent, state.last);\n return;\n }\n\n if (!keyboardEvent.shiftKey && state.activeElement === state.last) {\n this.preventAndFocus(keyboardEvent, state.first);\n }\n }\n\n private trapTabNavigation(event: unknown): void {\n const panel = this.panelRef()?.nativeElement;\n if (panel === undefined) {\n return;\n }\n\n const focusState = this.resolveFocusTrapState(panel);\n if (focusState === null) {\n this.preventAndFocus(event, panel);\n return;\n }\n\n if (this.focusEdgeWhenOutsidePanel(event, focusState)) {\n return;\n }\n\n this.wrapTabAtEdges(event, focusState);\n }\n}\n"]}
1
+ {"version":3,"file":"tng-dialog.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/overlay/dialog/tng-dialog.component.ts","../../../../../../../../libs/tailng-ui/components/src/lib/overlay/dialog/tng-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n afterNextRender,\n booleanAttribute,\n Component,\n effect,\n inject,\n Injector,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport type { ElementRef, OnDestroy } from '@angular/core';\nimport {\n createOverlayScrollLockManager,\n createTngIdFactory,\n type TngOverlayDismissReason,\n} from '@tailng-ui/cdk';\nimport type { TngScrollLockDocument } from '@tailng-ui/cdk/overlay';\nimport { tngOverlayRuntime } from '../tng-overlay-runtime';\n\nconst createDialogId = createTngIdFactory('tng-dialog');\n\nconst focusableSelector = [\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].join(',');\n\ntype TngFocusTrapState = Readonly<{\n activeElement: HTMLElement | null;\n first: HTMLElement;\n last: HTMLElement;\n panel: HTMLElement;\n}>;\n\nexport type TngDialogCloseReason = 'backdrop' | 'close-button' | 'escape' | 'programmatic';\nexport type TngDialogSize = 'lg' | 'md' | 'sm';\n\nfunction readKeyboardEvent(event: unknown): KeyboardEvent | null {\n return event instanceof KeyboardEvent ? event : null;\n}\n\nfunction resolveActiveElement(documentRef: unknown): HTMLElement | null {\n if (!(documentRef instanceof Document)) {\n return null;\n }\n\n const activeElement = documentRef.activeElement;\n return activeElement instanceof HTMLElement ? activeElement : null;\n}\n\nfunction resolveFocusableElements(container: unknown): readonly HTMLElement[] {\n if (!(container instanceof HTMLElement)) {\n return [];\n }\n\n const candidates = Array.from(container.querySelectorAll<HTMLElement>(focusableSelector));\n const focusableElements: HTMLElement[] = [];\n for (const candidate of candidates) {\n if (!candidate.hasAttribute('disabled')) {\n focusableElements.push(candidate);\n }\n }\n\n return focusableElements;\n}\n\nfunction resolveFirstFocusableWithin(container: unknown): HTMLElement | null {\n return resolveFocusableElements(container)[0] ?? null;\n}\n\nfunction resolveMarkedInitialElement(container: unknown): HTMLElement | null {\n if (!(container instanceof HTMLElement)) {\n return null;\n }\n\n const markedInitial = container.querySelector<HTMLElement>('[data-tng-dialog-initial-focus]');\n if (markedInitial === null) {\n return null;\n }\n\n if (resolveFocusableElements(container).includes(markedInitial)) {\n return markedInitial;\n }\n\n return resolveFirstFocusableWithin(markedInitial);\n}\n\nfunction toScrollLockDocument(documentRef: unknown): TngScrollLockDocument | null {\n if (!(documentRef instanceof Document)) {\n return null;\n }\n\n return documentRef as unknown as TngScrollLockDocument;\n}\n\nfunction toDialogCloseReason(reason: TngOverlayDismissReason): TngDialogCloseReason | null {\n if (reason === 'escape-key') {\n return 'escape';\n }\n\n if (reason === 'outside-pointer') {\n return 'backdrop';\n }\n\n return null;\n}\n\n@Component({\n selector: 'tng-dialog',\n templateUrl: './tng-dialog.component.html',\n styleUrl: './tng-dialog.component.css',\n})\nexport class TngDialogComponent implements OnDestroy {\n public readonly closeOnBackdrop = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly closeOnEscape = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly description = input<string | null>(null);\n public readonly open = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly size = input<TngDialogSize>('md');\n public readonly title = input<string>('Dialog');\n\n public readonly closed = output<TngDialogCloseReason>();\n public readonly openChange = output<boolean>();\n\n protected readonly descriptionId: string;\n protected readonly panelId: string;\n protected readonly titleId: string;\n\n private readonly documentRef = typeof document === 'undefined' ? null : document;\n private readonly injector = inject(Injector);\n private readonly panelRef = viewChild<ElementRef<HTMLElement>>('panelRef');\n private readonly scrollLock = createOverlayScrollLockManager({\n documentRef: toScrollLockDocument(this.documentRef),\n });\n private readonly instanceId = createDialogId();\n private isActive = false;\n private isLayerRegistered = false;\n private restoreFocusElement: HTMLElement | null = null;\n\n private readonly openStateEffect = effect((): void => {\n if (this.open()) {\n this.activateDialog();\n return;\n }\n\n this.deactivateDialog();\n });\n\n public constructor() {\n this.descriptionId = `${this.instanceId}-description`;\n this.panelId = `${this.instanceId}-panel`;\n this.titleId = `${this.instanceId}-title`;\n }\n\n public close(): void {\n this.requestClose('programmatic');\n }\n\n public ngOnDestroy(): void {\n this.openStateEffect.destroy();\n this.deactivateDialog();\n }\n\n public onCloseButtonClick(): void {\n this.requestClose('close-button');\n }\n\n public onPanelKeydown(event: unknown): void {\n const keyboardEvent = readKeyboardEvent(event);\n if (keyboardEvent === null) {\n return;\n }\n\n if (keyboardEvent.key === 'Tab') {\n this.trapTabNavigation(event);\n }\n }\n\n private activateDialog(): void {\n if (this.isActive) {\n return;\n }\n\n this.isActive = true;\n this.registerOverlayLayer();\n this.restoreFocusElement = resolveActiveElement(this.documentRef);\n this.scrollLock.acquire(this.instanceId);\n afterNextRender(\n (): void => {\n this.focusInitialElement();\n },\n { injector: this.injector },\n );\n }\n\n private deactivateDialog(): void {\n if (!this.isActive) {\n return;\n }\n\n this.isActive = false;\n this.unregisterOverlayLayer();\n this.scrollLock.release(this.instanceId);\n this.restoreFocusElement?.focus();\n this.restoreFocusElement = null;\n }\n\n private handleOverlayDismiss(reason: TngOverlayDismissReason): void {\n const closeReason = toDialogCloseReason(reason);\n if (closeReason === null) {\n return;\n }\n\n this.requestClose(closeReason);\n }\n\n private registerOverlayLayer(): void {\n if (this.isLayerRegistered) {\n return;\n }\n\n this.isLayerRegistered = true;\n tngOverlayRuntime.registerLayer({\n containsTarget: (target: unknown, path: readonly unknown[]): boolean => {\n const panel = this.panelRef()?.nativeElement;\n if (panel === undefined) {\n return false;\n }\n\n if (path.includes(panel)) {\n return true;\n }\n\n return target instanceof Node ? panel.contains(target) : false;\n },\n dismissOnEscape: this.closeOnEscape(),\n dismissOnOutsidePointer: this.closeOnBackdrop(),\n id: this.instanceId,\n modal: true,\n onDismiss: (reason: TngOverlayDismissReason): void => {\n this.handleOverlayDismiss(reason);\n },\n priority: 100,\n });\n }\n\n private unregisterOverlayLayer(): void {\n if (!this.isLayerRegistered) {\n return;\n }\n\n this.isLayerRegistered = false;\n tngOverlayRuntime.unregisterLayer(this.instanceId);\n }\n\n private focusInitialElement(): void {\n const panel = this.panelRef()?.nativeElement;\n if (panel === undefined) {\n return;\n }\n\n const markedInitial = resolveMarkedInitialElement(panel);\n if (markedInitial !== null) {\n markedInitial.focus();\n return;\n }\n\n const firstFocusable = resolveFirstFocusableWithin(panel);\n if (firstFocusable !== null) {\n firstFocusable.focus();\n return;\n }\n\n panel.focus();\n }\n\n private preventAndFocus(event: unknown, target: unknown): void {\n const keyboardEvent = readKeyboardEvent(event);\n if (keyboardEvent === null || !(target instanceof HTMLElement)) {\n return;\n }\n\n keyboardEvent.preventDefault();\n target.focus();\n }\n\n private requestClose(reason: TngDialogCloseReason): void {\n this.closed.emit(reason);\n this.openChange.emit(false);\n }\n\n private resolveFocusTrapState(panel: unknown): TngFocusTrapState | null {\n if (!(panel instanceof HTMLElement)) {\n return null;\n }\n\n const focusableElements = resolveFocusableElements(panel);\n const first = focusableElements[0];\n if (first === undefined) {\n return null;\n }\n\n return {\n activeElement: resolveActiveElement(this.documentRef),\n first,\n last: focusableElements[focusableElements.length - 1] ?? first,\n panel,\n };\n }\n\n private focusEdgeWhenOutsidePanel(event: unknown, focusState: unknown): boolean {\n const state = focusState as TngFocusTrapState;\n const activeElement = state.activeElement;\n if (activeElement !== null && state.panel.contains(activeElement)) {\n return false;\n }\n\n const keyboardEvent = readKeyboardEvent(event);\n if (keyboardEvent === null) {\n return true;\n }\n\n const edge = keyboardEvent.shiftKey ? state.last : state.first;\n this.preventAndFocus(keyboardEvent, edge);\n return true;\n }\n\n private wrapTabAtEdges(event: unknown, focusState: unknown): void {\n const state = focusState as TngFocusTrapState;\n const keyboardEvent = readKeyboardEvent(event);\n if (keyboardEvent === null) {\n return;\n }\n\n if (keyboardEvent.shiftKey && state.activeElement === state.first) {\n this.preventAndFocus(keyboardEvent, state.last);\n return;\n }\n\n if (!keyboardEvent.shiftKey && state.activeElement === state.last) {\n this.preventAndFocus(keyboardEvent, state.first);\n }\n }\n\n private trapTabNavigation(event: unknown): void {\n const panel = this.panelRef()?.nativeElement;\n if (panel === undefined) {\n return;\n }\n\n const focusState = this.resolveFocusTrapState(panel);\n if (focusState === null) {\n this.preventAndFocus(event, panel);\n return;\n }\n\n if (this.focusEdgeWhenOutsidePanel(event, focusState)) {\n return;\n }\n\n this.wrapTabAtEdges(event, focusState);\n }\n}\nexport { TngDialogComponent as TngDialog };\n","@if (open()) {\n <div class=\"tng-dialog-backdrop\">\n <section\n #panelRef\n [id]=\"panelId\"\n role=\"dialog\"\n aria-modal=\"true\"\n class=\"tng-dialog-panel\"\n [attr.data-size]=\"size()\"\n [attr.aria-labelledby]=\"titleId\"\n [attr.aria-describedby]=\"description() ? descriptionId : null\"\n tabindex=\"-1\"\n (keydown)=\"onPanelKeydown($event)\"\n >\n <header class=\"tng-dialog-header\">\n <div class=\"tng-dialog-heading\">\n <h2 [id]=\"titleId\" class=\"tng-dialog-title\">{{ title() }}</h2>\n @if (description()) {\n <p [id]=\"descriptionId\" class=\"tng-dialog-description\">{{ description() }}</p>\n }\n </div>\n\n <button type=\"button\" class=\"tng-dialog-close\" aria-label=\"Close dialog\" (click)=\"onCloseButtonClick()\">\n ×\n </button>\n </header>\n\n <div class=\"tng-dialog-content\">\n <ng-content />\n </div>\n </section>\n </div>\n}\n"]}
@@ -1,7 +1,4 @@
1
1
  export * from './dialog/tng-dialog.component';
2
- export { TngDialogComponent as TngDialog } from './dialog/tng-dialog.component';
3
2
  export * from './popover/tng-popover.component';
4
- export { TngPopoverComponent as TngPopover } from './popover/tng-popover.component';
5
3
  export * from './tooltip/tng-tooltip.component';
6
- export { TngTooltipComponent as TngTooltip } from './tooltip/tng-tooltip.component';
7
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../libs/tailng-ui/components/src/lib/overlay/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,IAAI,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAChF,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACpF,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../libs/tailng-ui/components/src/lib/overlay/index.ts"],"names":[],"mappings":"AAKA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC"}
@@ -1,7 +1,8 @@
1
+ // Overlay components
2
+ //
3
+ // Note: keep exports aligned with `src/index.ts` (root barrel) so the public API stays stable.
4
+ // The root barrel will re-export this file.
1
5
  export * from './dialog/tng-dialog.component';
2
- export { TngDialogComponent as TngDialog } from './dialog/tng-dialog.component';
3
6
  export * from './popover/tng-popover.component';
4
- export { TngPopoverComponent as TngPopover } from './popover/tng-popover.component';
5
7
  export * from './tooltip/tng-tooltip.component';
6
- export { TngTooltipComponent as TngTooltip } from './tooltip/tng-tooltip.component';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/tailng-ui/components/src/lib/overlay/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EAAE,kBAAkB,IAAI,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAChF,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACpF,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,mBAAmB,IAAI,UAAU,EAAE,MAAM,iCAAiC,CAAC","sourcesContent":["export * from './dialog/tng-dialog.component';\nexport { TngDialogComponent as TngDialog } from './dialog/tng-dialog.component';\nexport * from './popover/tng-popover.component';\nexport { TngPopoverComponent as TngPopover } from './popover/tng-popover.component';\nexport * from './tooltip/tng-tooltip.component';\nexport { TngTooltipComponent as TngTooltip } from './tooltip/tng-tooltip.component';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/tailng-ui/components/src/lib/overlay/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,EAAE;AACF,+FAA+F;AAC/F,4CAA4C;AAE5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC","sourcesContent":["// Overlay components\n//\n// Note: keep exports aligned with `src/index.ts` (root barrel) so the public API stays stable.\n// The root barrel will re-export this file.\n\nexport * from './dialog/tng-dialog.component';\nexport * from './popover/tng-popover.component';\nexport * from './tooltip/tng-tooltip.component';\n"]}
@@ -1,4 +1,5 @@
1
1
  import { TngPopover as TngPopoverPrimitive, type TngPopoverAlign, type TngPopoverAriaHasPopup, type TngPopoverAutoFocus, type TngPopoverCloseReason, type TngPopoverPanelRole, type TngPopoverSide } from '@tailng-ui/primitives';
2
+ import * as i0 from "@angular/core";
2
3
  export type { TngPopoverAlign, TngPopoverAriaHasPopup, TngPopoverAutoFocus, TngPopoverCloseReason, TngPopoverPanelRole, TngPopoverSide, } from '@tailng-ui/primitives';
3
4
  type OptionalBooleanInput = boolean | null | string | undefined;
4
5
  export declare class TngPopoverComponent {
@@ -19,5 +20,8 @@ export declare class TngPopoverComponent {
19
20
  readonly openChange: import("@angular/core").OutputEmitterRef<boolean>;
20
21
  protected readonly popoverRef: import("@angular/core").Signal<TngPopoverPrimitive>;
21
22
  close(): void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<TngPopoverComponent, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<TngPopoverComponent, "tng-popover", never, { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaHasPopup": { "alias": "ariaHasPopup"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "closeOnOutsidePointer": { "alias": "closeOnOutsidePointer"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "panelRole": { "alias": "panelRole"; "required": false; "isSignal": true; }; "restoreFocus": { "alias": "restoreFocus"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "triggerLabel": { "alias": "triggerLabel"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "openChange": "openChange"; }, never, ["*"], true, never>;
22
25
  }
26
+ export { TngPopoverComponent as TngPopover };
23
27
  //# sourceMappingURL=tng-popover.component.d.ts.map