@tailng-ui/components 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/package.json +2 -2
  2. package/src/lib/feedback/empty/tng-empty.component.d.ts.map +1 -1
  3. package/src/lib/feedback/empty/tng-empty.component.js +0 -5
  4. package/src/lib/feedback/empty/tng-empty.component.js.map +1 -1
  5. package/src/lib/feedback/progress-bar/tng-progress-bar.component.d.ts.map +1 -1
  6. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js +0 -1
  7. package/src/lib/feedback/progress-bar/tng-progress-bar.component.js.map +1 -1
  8. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.d.ts.map +1 -1
  9. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js +0 -1
  10. package/src/lib/feedback/progress-spinner/tng-progress-spinner.component.js.map +1 -1
  11. package/src/lib/feedback/skeleton/tng-skeleton.component.d.ts.map +1 -1
  12. package/src/lib/feedback/skeleton/tng-skeleton.component.js +0 -1
  13. package/src/lib/feedback/skeleton/tng-skeleton.component.js.map +1 -1
  14. package/src/lib/feedback/toast/tng-toast.component.d.ts.map +1 -1
  15. package/src/lib/feedback/toast/tng-toast.component.js +0 -1
  16. package/src/lib/feedback/toast/tng-toast.component.js.map +1 -1
  17. package/src/lib/form/autocomplete/tng-autocomplete.component.d.ts.map +1 -1
  18. package/src/lib/form/autocomplete/tng-autocomplete.component.js +0 -1
  19. package/src/lib/form/autocomplete/tng-autocomplete.component.js.map +1 -1
  20. package/src/lib/form/button-toggle/tng-button-toggle-group.component.d.ts.map +1 -1
  21. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js +0 -1
  22. package/src/lib/form/button-toggle/tng-button-toggle-group.component.js.map +1 -1
  23. package/src/lib/form/button-toggle/tng-button-toggle.component.d.ts.map +1 -1
  24. package/src/lib/form/button-toggle/tng-button-toggle.component.js +0 -1
  25. package/src/lib/form/button-toggle/tng-button-toggle.component.js.map +1 -1
  26. package/src/lib/form/checkbox/tng-checkbox.component.d.ts.map +1 -1
  27. package/src/lib/form/checkbox/tng-checkbox.component.js +0 -1
  28. package/src/lib/form/checkbox/tng-checkbox.component.js.map +1 -1
  29. package/src/lib/form/chips/tng-chips.component.d.ts.map +1 -1
  30. package/src/lib/form/chips/tng-chips.component.js +0 -1
  31. package/src/lib/form/chips/tng-chips.component.js.map +1 -1
  32. package/src/lib/form/combobox/tng-combobox.component.d.ts.map +1 -1
  33. package/src/lib/form/combobox/tng-combobox.component.js +0 -1
  34. package/src/lib/form/combobox/tng-combobox.component.js.map +1 -1
  35. package/src/lib/form/input/tng-input.component.d.ts.map +1 -1
  36. package/src/lib/form/input/tng-input.component.js +0 -1
  37. package/src/lib/form/input/tng-input.component.js.map +1 -1
  38. package/src/lib/form/input-otp/tng-input-otp.component.d.ts.map +1 -1
  39. package/src/lib/form/input-otp/tng-input-otp.component.js +0 -1
  40. package/src/lib/form/input-otp/tng-input-otp.component.js.map +1 -1
  41. package/src/lib/form/label/tng-label.component.d.ts.map +1 -1
  42. package/src/lib/form/label/tng-label.component.js +0 -1
  43. package/src/lib/form/label/tng-label.component.js.map +1 -1
  44. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.d.ts.map +1 -1
  45. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js +0 -1
  46. package/src/lib/form/multi-autocomplete/tng-multi-autocomplete.component.js.map +1 -1
  47. package/src/lib/form/multiselect/tng-multiselect.component.d.ts.map +1 -1
  48. package/src/lib/form/multiselect/tng-multiselect.component.js +0 -1
  49. package/src/lib/form/multiselect/tng-multiselect.component.js.map +1 -1
  50. package/src/lib/form/radio/tng-radio.component.d.ts.map +1 -1
  51. package/src/lib/form/radio/tng-radio.component.js +0 -1
  52. package/src/lib/form/radio/tng-radio.component.js.map +1 -1
  53. package/src/lib/form/select/tng-select.component.d.ts.map +1 -1
  54. package/src/lib/form/select/tng-select.component.js +0 -1
  55. package/src/lib/form/select/tng-select.component.js.map +1 -1
  56. package/src/lib/form/select/tng-select.slots.d.ts.map +1 -1
  57. package/src/lib/form/select/tng-select.slots.js +0 -2
  58. package/src/lib/form/select/tng-select.slots.js.map +1 -1
  59. package/src/lib/form/slider/tng-slider.component.d.ts.map +1 -1
  60. package/src/lib/form/slider/tng-slider.component.js +0 -1
  61. package/src/lib/form/slider/tng-slider.component.js.map +1 -1
  62. package/src/lib/form/switch/tng-switch.component.d.ts.map +1 -1
  63. package/src/lib/form/switch/tng-switch.component.js +0 -1
  64. package/src/lib/form/switch/tng-switch.component.js.map +1 -1
  65. package/src/lib/form/textarea/tng-textarea.component.d.ts.map +1 -1
  66. package/src/lib/form/textarea/tng-textarea.component.js +0 -1
  67. package/src/lib/form/textarea/tng-textarea.component.js.map +1 -1
  68. package/src/lib/form/toggle/tng-toggle.component.d.ts.map +1 -1
  69. package/src/lib/form/toggle/tng-toggle.component.js +0 -1
  70. package/src/lib/form/toggle/tng-toggle.component.js.map +1 -1
  71. package/src/lib/form/toggle-group/tng-toggle-group.component.d.ts.map +1 -1
  72. package/src/lib/form/toggle-group/tng-toggle-group.component.js +0 -1
  73. package/src/lib/form/toggle-group/tng-toggle-group.component.js.map +1 -1
  74. package/src/lib/layout/accordion/tng-accordion.component.d.ts.map +1 -1
  75. package/src/lib/layout/accordion/tng-accordion.component.js +0 -4
  76. package/src/lib/layout/accordion/tng-accordion.component.js.map +1 -1
  77. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.d.ts.map +1 -1
  78. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js +0 -1
  79. package/src/lib/layout/bottom-sheet/tng-bottom-sheet.component.js.map +1 -1
  80. package/src/lib/layout/card/tng-card.component.d.ts.map +1 -1
  81. package/src/lib/layout/card/tng-card.component.js +0 -10
  82. package/src/lib/layout/card/tng-card.component.js.map +1 -1
  83. package/src/lib/layout/collapsible/tng-collapsible.component.d.ts.map +1 -1
  84. package/src/lib/layout/collapsible/tng-collapsible.component.js +0 -1
  85. package/src/lib/layout/collapsible/tng-collapsible.component.js.map +1 -1
  86. package/src/lib/layout/drawer/tng-drawer.component.d.ts.map +1 -1
  87. package/src/lib/layout/drawer/tng-drawer.component.js +0 -1
  88. package/src/lib/layout/drawer/tng-drawer.component.js.map +1 -1
  89. package/src/lib/layout/grid/tng-grid.component.d.ts.map +1 -1
  90. package/src/lib/layout/grid/tng-grid.component.js +0 -1
  91. package/src/lib/layout/grid/tng-grid.component.js.map +1 -1
  92. package/src/lib/layout/separator/tng-separator.component.d.ts.map +1 -1
  93. package/src/lib/layout/separator/tng-separator.component.js +0 -1
  94. package/src/lib/layout/separator/tng-separator.component.js.map +1 -1
  95. package/src/lib/layout/stepper/tng-stepper.component.d.ts.map +1 -1
  96. package/src/lib/layout/stepper/tng-stepper.component.js +0 -1
  97. package/src/lib/layout/stepper/tng-stepper.component.js.map +1 -1
  98. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.d.ts.map +1 -1
  99. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js +0 -1
  100. package/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.js.map +1 -1
  101. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.d.ts.map +1 -1
  102. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js +0 -1
  103. package/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.js.map +1 -1
  104. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.d.ts.map +1 -1
  105. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js +0 -1
  106. package/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.js.map +1 -1
  107. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.d.ts.map +1 -1
  108. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js +0 -1
  109. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.js.map +1 -1
  110. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.d.ts.map +1 -1
  111. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js +0 -1
  112. package/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.js.map +1 -1
  113. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.d.ts.map +1 -1
  114. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js +0 -1
  115. package/src/lib/navigation/breadcrumb/tng-breadcrumb.component.js.map +1 -1
  116. package/src/lib/navigation/context-menu/tng-context-menu.component.d.ts.map +1 -1
  117. package/src/lib/navigation/context-menu/tng-context-menu.component.js +0 -1
  118. package/src/lib/navigation/context-menu/tng-context-menu.component.js.map +1 -1
  119. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.d.ts.map +1 -1
  120. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js +0 -1
  121. package/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.js.map +1 -1
  122. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.d.ts.map +1 -1
  123. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js +0 -1
  124. package/src/lib/navigation/menu/tng-menu-trigger-for.directive.js.map +1 -1
  125. package/src/lib/navigation/menu/tng-menu.component.d.ts.map +1 -1
  126. package/src/lib/navigation/menu/tng-menu.component.js +0 -1
  127. package/src/lib/navigation/menu/tng-menu.component.js.map +1 -1
  128. package/src/lib/navigation/menubar/tng-menubar.component.d.ts.map +1 -1
  129. package/src/lib/navigation/menubar/tng-menubar.component.js +0 -1
  130. package/src/lib/navigation/menubar/tng-menubar.component.js.map +1 -1
  131. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.d.ts.map +1 -1
  132. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js +0 -1
  133. package/src/lib/navigation/navigation-menu/tng-navigation-menu.component.js.map +1 -1
  134. package/src/lib/navigation/tabs/tng-tabs.component.d.ts.map +1 -1
  135. package/src/lib/navigation/tabs/tng-tabs.component.js +0 -1
  136. package/src/lib/navigation/tabs/tng-tabs.component.js.map +1 -1
  137. package/src/lib/navigation/toolbar/tng-toolbar.component.d.ts.map +1 -1
  138. package/src/lib/navigation/toolbar/tng-toolbar.component.js +0 -1
  139. package/src/lib/navigation/toolbar/tng-toolbar.component.js.map +1 -1
  140. package/src/lib/overlay/dialog/tng-dialog.component.d.ts.map +1 -1
  141. package/src/lib/overlay/dialog/tng-dialog.component.js +0 -1
  142. package/src/lib/overlay/dialog/tng-dialog.component.js.map +1 -1
  143. package/src/lib/overlay/popover/tng-popover.component.d.ts.map +1 -1
  144. package/src/lib/overlay/popover/tng-popover.component.js +0 -1
  145. package/src/lib/overlay/popover/tng-popover.component.js.map +1 -1
  146. package/src/lib/overlay/tooltip/tng-tooltip.component.d.ts.map +1 -1
  147. package/src/lib/overlay/tooltip/tng-tooltip.component.js +0 -1
  148. package/src/lib/overlay/tooltip/tng-tooltip.component.js.map +1 -1
  149. package/src/lib/utility/avatar/tng-avatar.component.d.ts.map +1 -1
  150. package/src/lib/utility/avatar/tng-avatar.component.js +0 -1
  151. package/src/lib/utility/avatar/tng-avatar.component.js.map +1 -1
  152. package/src/lib/utility/badge/tng-badge.component.d.ts.map +1 -1
  153. package/src/lib/utility/badge/tng-badge.component.js +0 -1
  154. package/src/lib/utility/badge/tng-badge.component.js.map +1 -1
  155. package/src/lib/utility/button/tng-button.component.d.ts.map +1 -1
  156. package/src/lib/utility/button/tng-button.component.js +0 -1
  157. package/src/lib/utility/button/tng-button.component.js.map +1 -1
  158. package/src/lib/utility/code-block/tng-code-block.component.d.ts.map +1 -1
  159. package/src/lib/utility/code-block/tng-code-block.component.js +0 -1
  160. package/src/lib/utility/code-block/tng-code-block.component.js.map +1 -1
  161. package/src/lib/utility/copy-button/tng-copy-button.component.d.ts.map +1 -1
  162. package/src/lib/utility/copy-button/tng-copy-button.component.js +0 -1
  163. package/src/lib/utility/copy-button/tng-copy-button.component.js.map +1 -1
  164. package/src/lib/utility/tag/tng-tag.component.d.ts.map +1 -1
  165. package/src/lib/utility/tag/tng-tag.component.js +0 -1
  166. package/src/lib/utility/tag/tng-tag.component.js.map +1 -1
  167. package/src/lib/utility/tree/tng-tree.component.d.ts.map +1 -1
  168. package/src/lib/utility/tree/tng-tree.component.js +0 -1
  169. package/src/lib/utility/tree/tng-tree.component.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tng-drawer.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/drawer/tng-drawer.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA4CjE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACZ,SAAS,GAAG,MAAM,CAAqB,kBAAkB,CAAC,CAAC;IAE5D,SAAS,GAAG,KAAK,CAAS,QAAQ,CAAC,CAAC;IAGpD,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAe;QACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAED,uBAAuB,CAAC,MAA0B;QAChD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,qBAAqB,CAAC,MAA0B;QAC9C,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AA3BC;IADC,WAAW,CAAC,iBAAiB,CAAC;uDAG9B;AARU,kBAAkB;IA1C9B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,kBAAkB;gBAC7B,MAAM,EAAE;oBACN,QAAQ;oBACR,eAAe;oBACf,MAAM;oBACN,UAAU;oBACV,UAAU;oBACV,UAAU;oBACV,qBAAqB;oBACrB,eAAe;oBACf,cAAc;oBACd,WAAW;oBACX,WAAW;oBACX,cAAc;oBACd,iBAAiB;oBACjB,YAAY;oBACZ,MAAM;oBACN,iBAAiB;oBACjB,aAAa;oBACb,gBAAgB;oBAChB,cAAc;iBACf;gBACD,OAAO,EAAE;oBACP,cAAc;oBACd,iBAAiB;oBACjB,iBAAiB;oBACjB,WAAW;oBACX,YAAY;oBACZ,eAAe;oBACf,gBAAgB;iBACjB;aACF;SACF;QACD,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,4BAA4B;QACtC,QAAQ,EAAE,oBAAoB;KAC/B,CAAC;GACW,kBAAkB,CAiC9B","sourcesContent":["import { Component, HostBinding, inject, input } from '@angular/core';\nimport { TngDrawer as TngDrawerPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-drawer',\n standalone: true,\n hostDirectives: [\n {\n directive: TngDrawerPrimitive,\n inputs: [\n 'opened',\n 'defaultOpened',\n 'mode',\n 'position',\n 'disabled',\n 'backdrop',\n 'closeOnOutsideClick',\n 'closeOnEscape',\n 'restoreFocus',\n 'autoFocus',\n 'trapFocus',\n 'inertContent',\n 'allowBodyScroll',\n 'closeOnTab',\n 'role',\n 'fixedInViewport',\n 'fixedTopGap',\n 'fixedBottomGap',\n 'swipeToClose',\n ],\n outputs: [\n 'openedChange',\n 'tngDrawerOpened',\n 'tngDrawerClosed',\n 'openStart',\n 'closeStart',\n 'backdropClick',\n 'positionChange',\n ],\n },\n ],\n templateUrl: './tng-drawer.component.html',\n styleUrl: './tng-drawer.component.css',\n exportAs: 'tngDrawerComponent',\n})\nexport class TngDrawerComponent {\n private readonly primitive = inject<TngDrawerPrimitive>(TngDrawerPrimitive);\n\n public readonly ariaLabel = input<string>('Drawer');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n\n open(): void {\n this.primitive.open();\n }\n\n close(): void {\n this.primitive.close();\n }\n\n toggle(force?: boolean): void {\n this.primitive.toggle(force);\n }\n\n isOpen(): boolean {\n return this.primitive.isOpen();\n }\n\n setRestoreFocusFallback(target: HTMLElement | null): void {\n this.primitive.setRestoreFocusFallback(target);\n }\n\n setRestoreFocusTarget(target: HTMLElement | null): void {\n this.primitive.setRestoreFocusTarget(target);\n }\n}\n"]}
1
+ {"version":3,"file":"tng-drawer.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/drawer/tng-drawer.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA2CjE,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACZ,SAAS,GAAG,MAAM,CAAqB,kBAAkB,CAAC,CAAC;IAE5D,SAAS,GAAG,KAAK,CAAS,QAAQ,CAAC,CAAC;IAGpD,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAe;QACpB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAED,uBAAuB,CAAC,MAA0B;QAChD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,qBAAqB,CAAC,MAA0B;QAC9C,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AA3BC;IADC,WAAW,CAAC,iBAAiB,CAAC;uDAG9B;AARU,kBAAkB;IAzC9B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,kBAAkB;gBAC7B,MAAM,EAAE;oBACN,QAAQ;oBACR,eAAe;oBACf,MAAM;oBACN,UAAU;oBACV,UAAU;oBACV,UAAU;oBACV,qBAAqB;oBACrB,eAAe;oBACf,cAAc;oBACd,WAAW;oBACX,WAAW;oBACX,cAAc;oBACd,iBAAiB;oBACjB,YAAY;oBACZ,MAAM;oBACN,iBAAiB;oBACjB,aAAa;oBACb,gBAAgB;oBAChB,cAAc;iBACf;gBACD,OAAO,EAAE;oBACP,cAAc;oBACd,iBAAiB;oBACjB,iBAAiB;oBACjB,WAAW;oBACX,YAAY;oBACZ,eAAe;oBACf,gBAAgB;iBACjB;aACF;SACF;QACD,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,4BAA4B;QACtC,QAAQ,EAAE,oBAAoB;KAC/B,CAAC;GACW,kBAAkB,CAiC9B","sourcesContent":["import { Component, HostBinding, inject, input } from '@angular/core';\nimport { TngDrawer as TngDrawerPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-drawer',\n hostDirectives: [\n {\n directive: TngDrawerPrimitive,\n inputs: [\n 'opened',\n 'defaultOpened',\n 'mode',\n 'position',\n 'disabled',\n 'backdrop',\n 'closeOnOutsideClick',\n 'closeOnEscape',\n 'restoreFocus',\n 'autoFocus',\n 'trapFocus',\n 'inertContent',\n 'allowBodyScroll',\n 'closeOnTab',\n 'role',\n 'fixedInViewport',\n 'fixedTopGap',\n 'fixedBottomGap',\n 'swipeToClose',\n ],\n outputs: [\n 'openedChange',\n 'tngDrawerOpened',\n 'tngDrawerClosed',\n 'openStart',\n 'closeStart',\n 'backdropClick',\n 'positionChange',\n ],\n },\n ],\n templateUrl: './tng-drawer.component.html',\n styleUrl: './tng-drawer.component.css',\n exportAs: 'tngDrawerComponent',\n})\nexport class TngDrawerComponent {\n private readonly primitive = inject<TngDrawerPrimitive>(TngDrawerPrimitive);\n\n public readonly ariaLabel = input<string>('Drawer');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n\n open(): void {\n this.primitive.open();\n }\n\n close(): void {\n this.primitive.close();\n }\n\n toggle(force?: boolean): void {\n this.primitive.toggle(force);\n }\n\n isOpen(): boolean {\n return this.primitive.isOpen();\n }\n\n setRestoreFocusFallback(target: HTMLElement | null): void {\n this.primitive.setRestoreFocusFallback(target);\n }\n\n setRestoreFocusTarget(target: HTMLElement | null): void {\n this.primitive.setRestoreFocusTarget(target);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-grid.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/grid/tng-grid.component.ts"],"names":[],"mappings":"AAGA,qBAOa,gBAAgB;IAC3B,SAAgB,SAAS,8CAAyB;CACnD"}
1
+ {"version":3,"file":"tng-grid.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/grid/tng-grid.component.ts"],"names":[],"mappings":"AAGA,qBAMa,gBAAgB;IAC3B,SAAgB,SAAS,8CAAyB;CACnD"}
@@ -6,7 +6,6 @@ let TngGridComponent = class TngGridComponent {
6
6
  };
7
7
  TngGridComponent = __decorate([
8
8
  Component({
9
- standalone: true,
10
9
  selector: 'tng-grid',
11
10
  imports: [TngGridPrimitive],
12
11
  templateUrl: './tng-grid.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-grid.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/grid/tng-grid.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAS7D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACX,SAAS,GAAG,KAAK,CAAS,MAAM,CAAC,CAAC;CACnD,CAAA;AAFY,gBAAgB;IAP5B,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,CAAC,gBAAgB,CAAC;QAC3B,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,0BAA0B;KACrC,CAAC;GACW,gBAAgB,CAE5B","sourcesContent":["import { Component, input } from '@angular/core';\nimport { TngGrid as TngGridPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n standalone: true,\n selector: 'tng-grid',\n imports: [TngGridPrimitive],\n templateUrl: './tng-grid.component.html',\n styleUrl: './tng-grid.component.css',\n})\nexport class TngGridComponent {\n public readonly ariaLabel = input<string>('Grid');\n}\n"]}
1
+ {"version":3,"file":"tng-grid.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/grid/tng-grid.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQ7D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IACX,SAAS,GAAG,KAAK,CAAS,MAAM,CAAC,CAAC;CACnD,CAAA;AAFY,gBAAgB;IAN5B,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,CAAC,gBAAgB,CAAC;QAC3B,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,0BAA0B;KACrC,CAAC;GACW,gBAAgB,CAE5B","sourcesContent":["import { Component, input } from '@angular/core';\nimport { TngGrid as TngGridPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-grid',\n imports: [TngGridPrimitive],\n templateUrl: './tng-grid.component.html',\n styleUrl: './tng-grid.component.css',\n})\nexport class TngGridComponent {\n public readonly ariaLabel = input<string>('Grid');\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-separator.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/separator/tng-separator.component.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAE/B,qBAOa,qBAAqB;IAChC,SAAgB,UAAU,8EAEvB;IACH,SAAgB,WAAW,+DAAgD;CAC5E"}
1
+ {"version":3,"file":"tng-separator.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/separator/tng-separator.component.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAE/B,qBAMa,qBAAqB;IAChC,SAAgB,UAAU,8EAEvB;IACH,SAAgB,WAAW,+DAAgD;CAC5E"}
@@ -9,7 +9,6 @@ let TngSeparatorComponent = class TngSeparatorComponent {
9
9
  };
10
10
  TngSeparatorComponent = __decorate([
11
11
  Component({
12
- standalone: true,
13
12
  selector: 'tng-separator',
14
13
  imports: [TngSeparatorPrimitive],
15
14
  templateUrl: './tng-separator.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-separator.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/separator/tng-separator.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,YAAY,IAAI,qBAAqB,GAEtC,MAAM,uBAAuB,CAAC;AASxB,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChB,UAAU,GAAG,KAAK,CAA4B,IAAI,EAAE;QAClE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,WAAW,GAAG,KAAK,CAA0B,YAAY,CAAC,CAAC;CAC5E,CAAA;AALY,qBAAqB;IAPjC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,CAAC,qBAAqB,CAAC;QAChC,WAAW,EAAE,gCAAgC;QAC7C,QAAQ,EAAE,+BAA+B;KAC1C,CAAC;GACW,qBAAqB,CAKjC","sourcesContent":["import { booleanAttribute, Component, input } from '@angular/core';\nimport {\n TngSeparator as TngSeparatorPrimitive,\n type TngSeparatorOrientation,\n} from '@tailng-ui/primitives';\n\n@Component({\n standalone: true,\n selector: 'tng-separator',\n imports: [TngSeparatorPrimitive],\n templateUrl: './tng-separator.component.html',\n styleUrl: './tng-separator.component.css',\n})\nexport class TngSeparatorComponent {\n public readonly decorative = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly orientation = input<TngSeparatorOrientation>('horizontal');\n}\n"]}
1
+ {"version":3,"file":"tng-separator.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/separator/tng-separator.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EACL,YAAY,IAAI,qBAAqB,GAEtC,MAAM,uBAAuB,CAAC;AAQxB,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChB,UAAU,GAAG,KAAK,CAA4B,IAAI,EAAE;QAClE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,WAAW,GAAG,KAAK,CAA0B,YAAY,CAAC,CAAC;CAC5E,CAAA;AALY,qBAAqB;IANjC,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,CAAC,qBAAqB,CAAC;QAChC,WAAW,EAAE,gCAAgC;QAC7C,QAAQ,EAAE,+BAA+B;KAC1C,CAAC;GACW,qBAAqB,CAKjC","sourcesContent":["import { booleanAttribute, Component, input } from '@angular/core';\nimport {\n TngSeparator as TngSeparatorPrimitive,\n type TngSeparatorOrientation,\n} from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-separator',\n imports: [TngSeparatorPrimitive],\n templateUrl: './tng-separator.component.html',\n styleUrl: './tng-separator.component.css',\n})\nexport class TngSeparatorComponent {\n public readonly decorative = input<boolean, boolean | string>(true, {\n transform: booleanAttribute,\n });\n public readonly orientation = input<TngSeparatorOrientation>('horizontal');\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-stepper.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/stepper/tng-stepper.component.ts"],"names":[],"mappings":"AAGA,qBAOa,mBAAmB;IAC9B,SAAgB,SAAS,8CAA4B;CACtD"}
1
+ {"version":3,"file":"tng-stepper.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/stepper/tng-stepper.component.ts"],"names":[],"mappings":"AAGA,qBAMa,mBAAmB;IAC9B,SAAgB,SAAS,8CAA4B;CACtD"}
@@ -6,7 +6,6 @@ let TngStepperComponent = class TngStepperComponent {
6
6
  };
7
7
  TngStepperComponent = __decorate([
8
8
  Component({
9
- standalone: true,
10
9
  selector: 'tng-stepper',
11
10
  imports: [TngStepperPrimitive],
12
11
  templateUrl: './tng-stepper.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-stepper.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/stepper/tng-stepper.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AASnE,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACd,SAAS,GAAG,KAAK,CAAS,SAAS,CAAC,CAAC;CACtD,CAAA;AAFY,mBAAmB;IAP/B,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,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 { TngStepper as TngStepperPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n standalone: true,\n selector: 'tng-stepper',\n imports: [TngStepperPrimitive],\n templateUrl: './tng-stepper.component.html',\n styleUrl: './tng-stepper.component.css',\n})\nexport class TngStepperComponent {\n public readonly ariaLabel = input<string>('Stepper');\n}\n"]}
1
+ {"version":3,"file":"tng-stepper.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/layout/stepper/tng-stepper.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 { TngStepper as TngStepperPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-stepper',\n imports: [TngStepperPrimitive],\n templateUrl: './tng-stepper.component.html',\n styleUrl: './tng-stepper.component.css',\n})\nexport class TngStepperComponent {\n public readonly ariaLabel = input<string>('Stepper');\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-item.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,MAAM,MAAM,4BAA4B,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7E,qBAaa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,gBAAgB,CAAS;IAEjC,SAAgB,YAAY,gBAAuB;IACnD,SAAgB,OAAO,qEAAiD;IACxE,SAAgB,aAAa,qEAAiD;IAC9E,SAAgB,QAAQ,qEAAiD;IACzE,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,UAAU,oFAA6D;IAEvF,SAAS,CAAC,QAAQ,CAAC,SAAS,kDAAiB;IAC7C,SAAS,CAAC,QAAQ,CAAC,cAAc,kDAAiB;IAClD,SAAS,CAAC,QAAQ,CAAC,WAAW,uEAAmD;IACjF,SAAS,CAAC,QAAQ,CAAC,aAAa,iDAAkB;IAClD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,kDAAiB;IACrD,SAAS,CAAC,QAAQ,CAAC,SAAS,iDAAe;IAC3C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,sEAA6C;IACjF,SAAS,CAAC,QAAQ,CAAC,aAAa,kDAAiB;;IAW1C,WAAW,IAAI,IAAI;IAInB,WAAW,IAAI,IAAI;IAInB,cAAc,CAAC,IAAI,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAK/E,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIxC,YAAY,CACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,OAAO,EACtB,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,GAC7C,IAAI;IAMP,SAAS,CAAC,gBAAgB,IAAI,OAAO;IAarC,SAAS,CAAC,WAAW,IAAI,OAAO;IAIhC,SAAS,CAAC,aAAa,IAAI,OAAO;IAIlC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAU9C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,aAAa,IAAI,IAAI;IAK/B,SAAS,CAAC,WAAW,IAAI,IAAI;IAK7B,SAAS,CAAC,YAAY,IAAI,IAAI;IAK9B,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAa5C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAS9C"}
1
+ {"version":3,"file":"tng-breadcrumb-item.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;AAMvB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,MAAM,MAAM,4BAA4B,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7E,qBAYa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,gBAAgB,CAAS;IAEjC,SAAgB,YAAY,gBAAuB;IACnD,SAAgB,OAAO,qEAAiD;IACxE,SAAgB,aAAa,qEAAiD;IAC9E,SAAgB,QAAQ,qEAAiD;IACzE,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,UAAU,oFAA6D;IAEvF,SAAS,CAAC,QAAQ,CAAC,SAAS,kDAAiB;IAC7C,SAAS,CAAC,QAAQ,CAAC,cAAc,kDAAiB;IAClD,SAAS,CAAC,QAAQ,CAAC,WAAW,uEAAmD;IACjF,SAAS,CAAC,QAAQ,CAAC,aAAa,iDAAkB;IAClD,SAAS,CAAC,QAAQ,CAAC,iBAAiB,kDAAiB;IACrD,SAAS,CAAC,QAAQ,CAAC,SAAS,iDAAe;IAC3C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,sEAA6C;IACjF,SAAS,CAAC,QAAQ,CAAC,aAAa,kDAAiB;;IAW1C,WAAW,IAAI,IAAI;IAInB,WAAW,IAAI,IAAI;IAInB,cAAc,CAAC,IAAI,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAK/E,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIxC,YAAY,CACjB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,OAAO,EACtB,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,GAC7C,IAAI;IAMP,SAAS,CAAC,gBAAgB,IAAI,OAAO;IAarC,SAAS,CAAC,WAAW,IAAI,OAAO;IAIhC,SAAS,CAAC,aAAa,IAAI,OAAO;IAIlC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAU9C,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B,SAAS,CAAC,aAAa,IAAI,IAAI;IAK/B,SAAS,CAAC,WAAW,IAAI,IAAI;IAK7B,SAAS,CAAC,YAAY,IAAI,IAAI;IAK9B,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAa5C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAS9C"}
@@ -121,7 +121,6 @@ __decorate([
121
121
  ], TngBreadcrumbItemComponent.prototype, "onFocusout", null);
122
122
  TngBreadcrumbItemComponent = __decorate([
123
123
  Component({
124
- standalone: true,
125
124
  selector: 'tng-breadcrumb-item',
126
125
  imports: [
127
126
  RouterLink,
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-item.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n signal,\n type TemplateRef,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport {\n TngBreadcrumbItem as TngBreadcrumbItemPrimitive,\n TngBreadcrumbLink as TngBreadcrumbLinkPrimitive,\n} from '@tailng-ui/primitives';\nimport { Subject } from 'rxjs';\nimport { TngBreadcrumbSeparatorComponent } from './tng-breadcrumb-separator.component';\n\nexport type TngBreadcrumbItemDisplayMode = 'ellipsis' | 'hidden' | 'visible';\n\n@Component({\n standalone: true,\n selector: 'tng-breadcrumb-item',\n imports: [\n RouterLink,\n NgTemplateOutlet,\n TngBreadcrumbItemPrimitive,\n TngBreadcrumbLinkPrimitive,\n TngBreadcrumbSeparatorComponent,\n ],\n templateUrl: './tng-breadcrumb-item.component.html',\n styleUrl: './tng-breadcrumb-item.component.css',\n})\nexport class TngBreadcrumbItemComponent {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private keyboardModality = false;\n\n public readonly stateChanges = new Subject<void>();\n public readonly current = input(false, { transform: booleanAttribute });\n public readonly currentAsLink = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly href = input<string | null>(null);\n public readonly routerLink = input<string | readonly (number | string)[] | null>(null);\n\n protected readonly isFocused = signal(false);\n protected readonly isFocusVisible = signal(false);\n protected readonly displayMode = signal<TngBreadcrumbItemDisplayMode>('visible');\n protected readonly collapseLabel = signal('More');\n protected readonly isResolvedCurrent = signal(false);\n protected readonly separator = signal('/');\n protected readonly separatorTemplate = signal<TemplateRef<unknown> | null>(null);\n protected readonly showSeparator = signal(false);\n\n public constructor() {\n this.current();\n this.currentAsLink();\n this.disabled();\n this.href();\n this.routerLink();\n queueMicrotask(() => this.stateChanges.next());\n }\n\n public ngOnChanges(): void {\n this.stateChanges.next();\n }\n\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n public setDisplayMode(mode: TngBreadcrumbItemDisplayMode, collapseLabel: string): void {\n this.displayMode.set(mode);\n this.collapseLabel.set(collapseLabel);\n }\n\n public setResolvedCurrent(value: boolean): void {\n this.isResolvedCurrent.set(value);\n }\n\n public setSeparator(\n separator: string,\n showSeparator: boolean,\n separatorTemplate: TemplateRef<unknown> | null,\n ): void {\n this.separator.set(separator);\n this.showSeparator.set(showSeparator);\n this.separatorTemplate.set(separatorTemplate);\n }\n\n protected shouldRenderLink(): boolean {\n const hasExplicitTarget = this.hasHrefLink() || this.hasRouterLink();\n if (!hasExplicitTarget) {\n return false;\n }\n\n if (!this.isResolvedCurrent()) {\n return true;\n }\n\n return this.currentAsLink();\n }\n\n protected hasHrefLink(): boolean {\n return this.href() !== null;\n }\n\n protected hasRouterLink(): boolean {\n return this.routerLink() !== null;\n }\n\n protected onLinkClick(event: MouseEvent): void {\n if (!this.disabled()) {\n return;\n }\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n @HostListener('keydown')\n protected onKeydown(): void {\n this.keyboardModality = true;\n }\n\n @HostListener('pointerdown')\n protected onPointerdown(): void {\n this.keyboardModality = false;\n }\n\n @HostListener('mousedown')\n protected onMousedown(): void {\n this.keyboardModality = false;\n }\n\n @HostListener('touchstart')\n protected onTouchstart(): void {\n this.keyboardModality = false;\n }\n\n @HostListener('focusin', ['$event'])\n protected onFocusin(event: FocusEvent): void {\n this.isFocused.set(true);\n\n const target = event.target;\n if (target instanceof HTMLElement) {\n this.isFocusVisible.set(target.matches(':focus-visible') || this.keyboardModality);\n return;\n }\n\n this.isFocusVisible.set(this.keyboardModality);\n }\n\n @HostListener('focusout', ['$event'])\n protected onFocusout(event: FocusEvent): void {\n const relatedTarget = event.relatedTarget;\n if (relatedTarget instanceof Node && this.hostRef.nativeElement.contains(relatedTarget)) {\n return;\n }\n\n this.isFocused.set(false);\n this.isFocusVisible.set(false);\n }\n}\n"]}
1
+ {"version":3,"file":"tng-breadcrumb-item.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-item.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n signal,\n type TemplateRef,\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport {\n TngBreadcrumbItem as TngBreadcrumbItemPrimitive,\n TngBreadcrumbLink as TngBreadcrumbLinkPrimitive,\n} from '@tailng-ui/primitives';\nimport { Subject } from 'rxjs';\nimport { TngBreadcrumbSeparatorComponent } from './tng-breadcrumb-separator.component';\n\nexport type TngBreadcrumbItemDisplayMode = 'ellipsis' | 'hidden' | 'visible';\n\n@Component({\n selector: 'tng-breadcrumb-item',\n imports: [\n RouterLink,\n NgTemplateOutlet,\n TngBreadcrumbItemPrimitive,\n TngBreadcrumbLinkPrimitive,\n TngBreadcrumbSeparatorComponent,\n ],\n templateUrl: './tng-breadcrumb-item.component.html',\n styleUrl: './tng-breadcrumb-item.component.css',\n})\nexport class TngBreadcrumbItemComponent {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private keyboardModality = false;\n\n public readonly stateChanges = new Subject<void>();\n public readonly current = input(false, { transform: booleanAttribute });\n public readonly currentAsLink = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly href = input<string | null>(null);\n public readonly routerLink = input<string | readonly (number | string)[] | null>(null);\n\n protected readonly isFocused = signal(false);\n protected readonly isFocusVisible = signal(false);\n protected readonly displayMode = signal<TngBreadcrumbItemDisplayMode>('visible');\n protected readonly collapseLabel = signal('More');\n protected readonly isResolvedCurrent = signal(false);\n protected readonly separator = signal('/');\n protected readonly separatorTemplate = signal<TemplateRef<unknown> | null>(null);\n protected readonly showSeparator = signal(false);\n\n public constructor() {\n this.current();\n this.currentAsLink();\n this.disabled();\n this.href();\n this.routerLink();\n queueMicrotask(() => this.stateChanges.next());\n }\n\n public ngOnChanges(): void {\n this.stateChanges.next();\n }\n\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n public setDisplayMode(mode: TngBreadcrumbItemDisplayMode, collapseLabel: string): void {\n this.displayMode.set(mode);\n this.collapseLabel.set(collapseLabel);\n }\n\n public setResolvedCurrent(value: boolean): void {\n this.isResolvedCurrent.set(value);\n }\n\n public setSeparator(\n separator: string,\n showSeparator: boolean,\n separatorTemplate: TemplateRef<unknown> | null,\n ): void {\n this.separator.set(separator);\n this.showSeparator.set(showSeparator);\n this.separatorTemplate.set(separatorTemplate);\n }\n\n protected shouldRenderLink(): boolean {\n const hasExplicitTarget = this.hasHrefLink() || this.hasRouterLink();\n if (!hasExplicitTarget) {\n return false;\n }\n\n if (!this.isResolvedCurrent()) {\n return true;\n }\n\n return this.currentAsLink();\n }\n\n protected hasHrefLink(): boolean {\n return this.href() !== null;\n }\n\n protected hasRouterLink(): boolean {\n return this.routerLink() !== null;\n }\n\n protected onLinkClick(event: MouseEvent): void {\n if (!this.disabled()) {\n return;\n }\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n @HostListener('keydown')\n protected onKeydown(): void {\n this.keyboardModality = true;\n }\n\n @HostListener('pointerdown')\n protected onPointerdown(): void {\n this.keyboardModality = false;\n }\n\n @HostListener('mousedown')\n protected onMousedown(): void {\n this.keyboardModality = false;\n }\n\n @HostListener('touchstart')\n protected onTouchstart(): void {\n this.keyboardModality = false;\n }\n\n @HostListener('focusin', ['$event'])\n protected onFocusin(event: FocusEvent): void {\n this.isFocused.set(true);\n\n const target = event.target;\n if (target instanceof HTMLElement) {\n this.isFocusVisible.set(target.matches(':focus-visible') || this.keyboardModality);\n return;\n }\n\n this.isFocusVisible.set(this.keyboardModality);\n }\n\n @HostListener('focusout', ['$event'])\n protected onFocusout(event: FocusEvent): void {\n const relatedTarget = event.relatedTarget;\n if (relatedTarget instanceof Node && this.hostRef.nativeElement.contains(relatedTarget)) {\n return;\n }\n\n this.isFocused.set(false);\n this.isFocusVisible.set(false);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-link.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.ts"],"names":[],"mappings":"AAIA,qBAOa,0BAA0B;IACrC,SAAgB,OAAO,qEAAiD;IACxE,SAAgB,QAAQ,qEAAiD;IACzE,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,GAAG,qDAA8B;IACjD,SAAgB,UAAU,oFAA6D;IACvF,SAAgB,MAAM,qDAA8B;IAEpD,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAQ3C"}
1
+ {"version":3,"file":"tng-breadcrumb-link.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.ts"],"names":[],"mappings":"AAIA,qBAMa,0BAA0B;IACrC,SAAgB,OAAO,qEAAiD;IACxE,SAAgB,QAAQ,qEAAiD;IACzE,SAAgB,IAAI,qDAA8B;IAClD,SAAgB,GAAG,qDAA8B;IACjD,SAAgB,UAAU,oFAA6D;IACvF,SAAgB,MAAM,qDAA8B;IAEpD,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAQ3C"}
@@ -19,7 +19,6 @@ let TngBreadcrumbLinkComponent = class TngBreadcrumbLinkComponent {
19
19
  };
20
20
  TngBreadcrumbLinkComponent = __decorate([
21
21
  Component({
22
- standalone: true,
23
22
  selector: 'tng-breadcrumb-link',
24
23
  imports: [RouterLink, TngBreadcrumbLinkPrimitive],
25
24
  templateUrl: './tng-breadcrumb-link.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-link.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AASjF,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrB,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzD,IAAI,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAClC,GAAG,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IACjC,UAAU,GAAG,KAAK,CAA+C,IAAI,CAAC,CAAC;IACvE,MAAM,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAE1C,OAAO,CAAC,KAAiB;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;IACnC,CAAC;CACF,CAAA;AAhBY,0BAA0B;IAPtC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,qBAAqB;QAC/B,OAAO,EAAE,CAAC,UAAU,EAAE,0BAA0B,CAAC;QACjD,WAAW,EAAE,sCAAsC;QACnD,QAAQ,EAAE,qCAAqC;KAChD,CAAC;GACW,0BAA0B,CAgBtC","sourcesContent":["import { booleanAttribute, Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { TngBreadcrumbLink as TngBreadcrumbLinkPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n standalone: true,\n selector: 'tng-breadcrumb-link',\n imports: [RouterLink, TngBreadcrumbLinkPrimitive],\n templateUrl: './tng-breadcrumb-link.component.html',\n styleUrl: './tng-breadcrumb-link.component.css',\n})\nexport class TngBreadcrumbLinkComponent {\n public readonly current = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly href = input<string | null>(null);\n public readonly rel = input<string | null>(null);\n public readonly routerLink = input<string | readonly (number | string)[] | null>(null);\n public readonly target = input<string | null>(null);\n\n protected onClick(event: MouseEvent): void {\n if (!this.disabled()) {\n return;\n }\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n}\n"]}
1
+ {"version":3,"file":"tng-breadcrumb-link.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-link.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAQjF,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrB,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACxD,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzD,IAAI,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAClC,GAAG,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IACjC,UAAU,GAAG,KAAK,CAA+C,IAAI,CAAC,CAAC;IACvE,MAAM,GAAG,KAAK,CAAgB,IAAI,CAAC,CAAC;IAE1C,OAAO,CAAC,KAAiB;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;IACnC,CAAC;CACF,CAAA;AAhBY,0BAA0B;IANtC,SAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,OAAO,EAAE,CAAC,UAAU,EAAE,0BAA0B,CAAC;QACjD,WAAW,EAAE,sCAAsC;QACnD,QAAQ,EAAE,qCAAqC;KAChD,CAAC;GACW,0BAA0B,CAgBtC","sourcesContent":["import { booleanAttribute, Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { TngBreadcrumbLink as TngBreadcrumbLinkPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-breadcrumb-link',\n imports: [RouterLink, TngBreadcrumbLinkPrimitive],\n templateUrl: './tng-breadcrumb-link.component.html',\n styleUrl: './tng-breadcrumb-link.component.css',\n})\nexport class TngBreadcrumbLinkComponent {\n public readonly current = input(false, { transform: booleanAttribute });\n public readonly disabled = input(false, { transform: booleanAttribute });\n public readonly href = input<string | null>(null);\n public readonly rel = input<string | null>(null);\n public readonly routerLink = input<string | readonly (number | string)[] | null>(null);\n public readonly target = input<string | null>(null);\n\n protected onClick(event: MouseEvent): void {\n if (!this.disabled()) {\n return;\n }\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-list.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.ts"],"names":[],"mappings":"AAGA,qBAOa,0BAA0B;CAAG"}
1
+ {"version":3,"file":"tng-breadcrumb-list.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.ts"],"names":[],"mappings":"AAGA,qBAMa,0BAA0B;CAAG"}
@@ -5,7 +5,6 @@ let TngBreadcrumbListComponent = class TngBreadcrumbListComponent {
5
5
  };
6
6
  TngBreadcrumbListComponent = __decorate([
7
7
  Component({
8
- standalone: true,
9
8
  selector: 'tng-breadcrumb-list',
10
9
  imports: [TngBreadcrumbListPrimitive],
11
10
  templateUrl: './tng-breadcrumb-list.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-list.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AASjF,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAAG,CAAA;AAA7B,0BAA0B;IAPtC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,qBAAqB;QAC/B,OAAO,EAAE,CAAC,0BAA0B,CAAC;QACrC,WAAW,EAAE,sCAAsC;QACnD,QAAQ,EAAE,qCAAqC;KAChD,CAAC;GACW,0BAA0B,CAAG","sourcesContent":["import { Component } from '@angular/core';\nimport { TngBreadcrumbList as TngBreadcrumbListPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n standalone: true,\n selector: 'tng-breadcrumb-list',\n imports: [TngBreadcrumbListPrimitive],\n templateUrl: './tng-breadcrumb-list.component.html',\n styleUrl: './tng-breadcrumb-list.component.css',\n})\nexport class TngBreadcrumbListComponent {}\n"]}
1
+ {"version":3,"file":"tng-breadcrumb-list.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-list.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAQjF,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;CAAG,CAAA;AAA7B,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,CAAG","sourcesContent":["import { Component } from '@angular/core';\nimport { TngBreadcrumbList as TngBreadcrumbListPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-breadcrumb-list',\n imports: [TngBreadcrumbListPrimitive],\n templateUrl: './tng-breadcrumb-list.component.html',\n styleUrl: './tng-breadcrumb-list.component.css',\n})\nexport class TngBreadcrumbListComponent {}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-separator-template.directive.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,eAAe,CAAC;AAEvD,qBAKa,uCAAuC;aACf,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;gBAAjC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;CACrE"}
1
+ {"version":3,"file":"tng-breadcrumb-separator-template.directive.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,eAAe,CAAC;AAEvD,qBAIa,uCAAuC;aACf,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;gBAAjC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;CACrE"}
@@ -8,7 +8,6 @@ let TngBreadcrumbSeparatorTemplateDirective = class TngBreadcrumbSeparatorTempla
8
8
  };
9
9
  TngBreadcrumbSeparatorTemplateDirective = __decorate([
10
10
  Directive({
11
- standalone: true,
12
11
  selector: 'ng-template[tngBreadcrumbSeparatorTemplate]',
13
12
  exportAs: 'tngBreadcrumbSeparatorTemplate',
14
13
  })
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-separator-template.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,eAAe,CAAC;AAOhD,IAAM,uCAAuC,GAA7C,MAAM,uCAAuC;IACf;IAAnC,YAAmC,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;CACzE,CAAA;AAFY,uCAAuC;IALnD,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,6CAA6C;QACvD,QAAQ,EAAE,gCAAgC;KAC3C,CAAC;GACW,uCAAuC,CAEnD","sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tngBreadcrumbSeparatorTemplate]',\n exportAs: 'tngBreadcrumbSeparatorTemplate',\n})\nexport class TngBreadcrumbSeparatorTemplateDirective {\n public constructor(public readonly templateRef: TemplateRef<unknown>) {}\n}\n"]}
1
+ {"version":3,"file":"tng-breadcrumb-separator-template.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-separator-template.directive.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,eAAe,CAAC;AAMhD,IAAM,uCAAuC,GAA7C,MAAM,uCAAuC;IACf;IAAnC,YAAmC,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;CACzE,CAAA;AAFY,uCAAuC;IAJnD,SAAS,CAAC;QACT,QAAQ,EAAE,6CAA6C;QACvD,QAAQ,EAAE,gCAAgC;KAC3C,CAAC;GACW,uCAAuC,CAEnD","sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[tngBreadcrumbSeparatorTemplate]',\n exportAs: 'tngBreadcrumbSeparatorTemplate',\n})\nexport class TngBreadcrumbSeparatorTemplateDirective {\n public constructor(public readonly templateRef: TemplateRef<unknown>) {}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-separator.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAGnE,qBAOa,+BAA+B;IAC1C,SAAgB,MAAM,8CAAc;IACpC,SAAgB,QAAQ,mEAA4C;CACrE"}
1
+ {"version":3,"file":"tng-breadcrumb-separator.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAGnE,qBAMa,+BAA+B;IAC1C,SAAgB,MAAM,8CAAc;IACpC,SAAgB,QAAQ,mEAA4C;CACrE"}
@@ -8,7 +8,6 @@ let TngBreadcrumbSeparatorComponent = class TngBreadcrumbSeparatorComponent {
8
8
  };
9
9
  TngBreadcrumbSeparatorComponent = __decorate([
10
10
  Component({
11
- standalone: true,
12
11
  selector: 'tng-breadcrumb-separator',
13
12
  imports: [NgTemplateOutlet, TngBreadcrumbSeparatorPrimitive],
14
13
  templateUrl: './tng-breadcrumb-separator.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb-separator.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,sBAAsB,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAS3F,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAC1B,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,QAAQ,GAAG,KAAK,CAA8B,IAAI,CAAC,CAAC;CACrE,CAAA;AAHY,+BAA+B;IAP3C,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,0BAA0B;QACpC,OAAO,EAAE,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;QAC5D,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE,0CAA0C;KACrD,CAAC;GACW,+BAA+B,CAG3C","sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { Component, input, type TemplateRef } from '@angular/core';\nimport { TngBreadcrumbSeparator as TngBreadcrumbSeparatorPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n standalone: true,\n selector: 'tng-breadcrumb-separator',\n imports: [NgTemplateOutlet, TngBreadcrumbSeparatorPrimitive],\n templateUrl: './tng-breadcrumb-separator.component.html',\n styleUrl: './tng-breadcrumb-separator.component.css',\n})\nexport class TngBreadcrumbSeparatorComponent {\n public readonly symbol = input('/');\n public readonly template = input<TemplateRef<unknown> | null>(null);\n}\n"]}
1
+ {"version":3,"file":"tng-breadcrumb-separator.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb-separator.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,sBAAsB,IAAI,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAQ3F,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAC1B,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,QAAQ,GAAG,KAAK,CAA8B,IAAI,CAAC,CAAC;CACrE,CAAA;AAHY,+BAA+B;IAN3C,SAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;QACpC,OAAO,EAAE,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;QAC5D,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE,0CAA0C;KACrD,CAAC;GACW,+BAA+B,CAG3C","sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { Component, input, type TemplateRef } from '@angular/core';\nimport { TngBreadcrumbSeparator as TngBreadcrumbSeparatorPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-breadcrumb-separator',\n imports: [NgTemplateOutlet, TngBreadcrumbSeparatorPrimitive],\n templateUrl: './tng-breadcrumb-separator.component.html',\n styleUrl: './tng-breadcrumb-separator.component.css',\n})\nexport class TngBreadcrumbSeparatorComponent {\n public readonly symbol = input('/');\n public readonly template = input<TemplateRef<unknown> | null>(null);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAC;AAOvB,qBAOa,sBAAuB,YAAW,gBAAgB;IAE7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwC;IAGzE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAuB;IAE1D,SAAgB,SAAS,qDAAsC;IAC/D,SAAgB,SAAS,8CAAc;IACvC,SAAgB,QAAQ,qDAA8B;IACtD,SAAgB,mBAAmB,8CAAY;IAC/C,SAAgB,kBAAkB,8CAAY;IAC9C,SAAgB,aAAa,8CAAiB;IAE9C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yCAQjC;IAEH,OAAO,CAAC,sBAAsB,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;;IAatD,kBAAkB,IAAI,IAAI;IAa1B,WAAW,IAAI,IAAI;IAK1B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,mBAAmB;IAuD3B,OAAO,CAAC,qBAAqB;CAS9B"}
1
+ {"version":3,"file":"tng-breadcrumb.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAC;AAOvB,qBAMa,sBAAuB,YAAW,gBAAgB;IAE7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAwC;IAGzE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAuB;IAE1D,SAAgB,SAAS,qDAAsC;IAC/D,SAAgB,SAAS,8CAAc;IACvC,SAAgB,QAAQ,qDAA8B;IACtD,SAAgB,mBAAmB,8CAAY;IAC/C,SAAgB,kBAAkB,8CAAY;IAC9C,SAAgB,aAAa,8CAAiB;IAE9C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yCAQjC;IAEH,OAAO,CAAC,sBAAsB,CAAsB;IACpD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;;IAatD,kBAAkB,IAAI,IAAI;IAa1B,WAAW,IAAI,IAAI;IAK1B,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,mBAAmB;IAuD3B,OAAO,CAAC,qBAAqB;CAS9B"}
@@ -145,7 +145,6 @@ __decorate([
145
145
  ], TngBreadcrumbComponent.prototype, "separatorTemplate", void 0);
146
146
  TngBreadcrumbComponent = __decorate([
147
147
  Component({
148
- standalone: true,
149
148
  selector: 'tng-breadcrumb',
150
149
  imports: [TngBreadcrumbPrimitive, TngBreadcrumbListComponent],
151
150
  templateUrl: './tng-breadcrumb.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-breadcrumb.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ContentChild,\n ContentChildren,\n computed,\n effect,\n input,\n TemplateRef,\n type AfterContentInit,\n type QueryList,\n} from '@angular/core';\nimport { TngBreadcrumb as TngBreadcrumbPrimitive } from '@tailng-ui/primitives';\nimport { merge, Subscription } from 'rxjs';\nimport { TngBreadcrumbItemComponent, type TngBreadcrumbItemDisplayMode } from './tng-breadcrumb-item.component';\nimport { TngBreadcrumbListComponent } from './tng-breadcrumb-list.component';\nimport { TngBreadcrumbSeparatorTemplateDirective } from './tng-breadcrumb-separator-template.directive';\n\n@Component({\n standalone: true,\n selector: 'tng-breadcrumb',\n imports: [TngBreadcrumbPrimitive, TngBreadcrumbListComponent],\n templateUrl: './tng-breadcrumb.component.html',\n styleUrl: './tng-breadcrumb.component.css',\n})\nexport class TngBreadcrumbComponent implements AfterContentInit {\n @ContentChildren(TngBreadcrumbItemComponent, { descendants: true })\n private readonly breadcrumbItems?: QueryList<TngBreadcrumbItemComponent>;\n\n @ContentChild(TngBreadcrumbSeparatorTemplateDirective, { read: TemplateRef })\n private readonly separatorTemplate?: TemplateRef<unknown>;\n\n public readonly ariaLabel = input<string | null>('Breadcrumb');\n public readonly separator = input('/');\n public readonly maxItems = input<number | null>(null);\n public readonly itemsBeforeCollapse = input(1);\n public readonly itemsAfterCollapse = input(2);\n public readonly collapseLabel = input('More');\n\n protected readonly resolvedAriaLabel = computed(() => {\n const ariaLabel = this.ariaLabel();\n if (ariaLabel === null) {\n return 'Breadcrumb';\n }\n\n const trimmedAriaLabel = ariaLabel.trim();\n return trimmedAriaLabel.length > 0 ? trimmedAriaLabel : 'Breadcrumb';\n });\n\n private itemStateSubscriptions = Subscription.EMPTY;\n private readonly queryListSubscriptions = new Subscription();\n\n public constructor() {\n effect(() => {\n this.separator();\n this.maxItems();\n this.itemsBeforeCollapse();\n this.itemsAfterCollapse();\n this.collapseLabel();\n this.syncItems();\n });\n }\n\n public ngAfterContentInit(): void {\n this.rebindItemStateSubscriptions();\n if (this.breadcrumbItems === undefined) {\n return;\n }\n\n this.queryListSubscriptions.add(\n this.breadcrumbItems.changes.subscribe(() => {\n this.rebindItemStateSubscriptions();\n }),\n );\n }\n\n public ngOnDestroy(): void {\n this.itemStateSubscriptions.unsubscribe();\n this.queryListSubscriptions.unsubscribe();\n }\n\n private rebindItemStateSubscriptions(): void {\n this.itemStateSubscriptions.unsubscribe();\n\n const items = this.breadcrumbItems?.toArray() ?? [];\n if (items.length === 0) {\n this.syncItems();\n return;\n }\n\n this.itemStateSubscriptions = merge(...items.map((item) => item.stateChanges)).subscribe(() => {\n this.syncItems();\n });\n\n this.syncItems();\n }\n\n private syncItems(): void {\n const items = this.breadcrumbItems?.toArray() ?? [];\n if (items.length === 0) {\n return;\n }\n\n const currentIndex = this.resolveCurrentIndex(items);\n const displayModes = this.resolveDisplayModes(items, currentIndex);\n const visibleIndices = this.resolveVisibleIndices(displayModes);\n\n for (let index = 0; index < items.length; index += 1) {\n const item = items[index];\n const isVisible = displayModes[index] !== 'hidden';\n const isLastVisibleItem = !visibleIndices.some((visibleIndex) => visibleIndex > index);\n\n item.setResolvedCurrent(index === currentIndex);\n item.setDisplayMode(displayModes[index], this.collapseLabel());\n item.setSeparator(this.separator(), isVisible && !isLastVisibleItem, this.separatorTemplate ?? null);\n }\n }\n\n private resolveCurrentIndex(items: readonly TngBreadcrumbItemComponent[]): number {\n const explicitlyCurrentIndices = items.reduce<number[]>((accumulator, item, index) => {\n if (item.current()) {\n accumulator.push(index);\n }\n return accumulator;\n }, []);\n\n if (explicitlyCurrentIndices.length > 0) {\n return explicitlyCurrentIndices[explicitlyCurrentIndices.length - 1];\n }\n\n if (items.length === 1) {\n return 0;\n }\n\n return -1;\n }\n\n // eslint-disable-next-line complexity,max-lines-per-function\n private resolveDisplayModes(\n items: readonly TngBreadcrumbItemComponent[],\n currentIndex: number,\n ): readonly TngBreadcrumbItemDisplayMode[] {\n const itemCount = items.length;\n const maxItems = this.maxItems();\n if (maxItems === null || maxItems < 1 || itemCount <= maxItems) {\n return Array.from({ length: itemCount }, () => 'visible' as const);\n }\n\n const itemsBeforeCollapse = Math.max(1, Math.floor(this.itemsBeforeCollapse()));\n const itemsAfterCollapse = Math.max(1, Math.floor(this.itemsAfterCollapse()));\n const visibleIndices = new Set<number>();\n\n for (let index = 0; index < Math.min(itemsBeforeCollapse, itemCount); index += 1) {\n visibleIndices.add(index);\n }\n\n for (\n let index = Math.max(itemCount - itemsAfterCollapse, 0);\n index < itemCount;\n index += 1\n ) {\n visibleIndices.add(index);\n }\n\n if (currentIndex >= 0) {\n visibleIndices.add(currentIndex);\n }\n\n const hiddenIndices: number[] = [];\n for (let index = 0; index < itemCount; index += 1) {\n if (!visibleIndices.has(index)) {\n hiddenIndices.push(index);\n }\n }\n\n if (hiddenIndices.length === 0) {\n return Array.from({ length: itemCount }, () => 'visible' as const);\n }\n\n const displayModes: TngBreadcrumbItemDisplayMode[] = Array.from(\n { length: itemCount },\n () => 'visible' as const,\n );\n\n for (const hiddenIndex of hiddenIndices) {\n displayModes[hiddenIndex] = 'hidden';\n }\n\n // The first hidden item becomes the collapse marker so we avoid introducing a separate focusable node.\n displayModes[hiddenIndices[0]] = 'ellipsis';\n return displayModes;\n }\n\n private resolveVisibleIndices(displayModes: readonly TngBreadcrumbItemDisplayMode[]): readonly number[] {\n const visibleIndices: number[] = [];\n for (let index = 0; index < displayModes.length; index += 1) {\n if (displayModes[index] !== 'hidden') {\n visibleIndices.push(index);\n }\n }\n return visibleIndices;\n }\n}\n"]}
1
+ {"version":3,"file":"tng-breadcrumb.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/breadcrumb/tng-breadcrumb.component.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ContentChild,\n ContentChildren,\n computed,\n effect,\n input,\n TemplateRef,\n type AfterContentInit,\n type QueryList,\n} from '@angular/core';\nimport { TngBreadcrumb as TngBreadcrumbPrimitive } from '@tailng-ui/primitives';\nimport { merge, Subscription } from 'rxjs';\nimport { TngBreadcrumbItemComponent, type TngBreadcrumbItemDisplayMode } from './tng-breadcrumb-item.component';\nimport { TngBreadcrumbListComponent } from './tng-breadcrumb-list.component';\nimport { TngBreadcrumbSeparatorTemplateDirective } from './tng-breadcrumb-separator-template.directive';\n\n@Component({\n selector: 'tng-breadcrumb',\n imports: [TngBreadcrumbPrimitive, TngBreadcrumbListComponent],\n templateUrl: './tng-breadcrumb.component.html',\n styleUrl: './tng-breadcrumb.component.css',\n})\nexport class TngBreadcrumbComponent implements AfterContentInit {\n @ContentChildren(TngBreadcrumbItemComponent, { descendants: true })\n private readonly breadcrumbItems?: QueryList<TngBreadcrumbItemComponent>;\n\n @ContentChild(TngBreadcrumbSeparatorTemplateDirective, { read: TemplateRef })\n private readonly separatorTemplate?: TemplateRef<unknown>;\n\n public readonly ariaLabel = input<string | null>('Breadcrumb');\n public readonly separator = input('/');\n public readonly maxItems = input<number | null>(null);\n public readonly itemsBeforeCollapse = input(1);\n public readonly itemsAfterCollapse = input(2);\n public readonly collapseLabel = input('More');\n\n protected readonly resolvedAriaLabel = computed(() => {\n const ariaLabel = this.ariaLabel();\n if (ariaLabel === null) {\n return 'Breadcrumb';\n }\n\n const trimmedAriaLabel = ariaLabel.trim();\n return trimmedAriaLabel.length > 0 ? trimmedAriaLabel : 'Breadcrumb';\n });\n\n private itemStateSubscriptions = Subscription.EMPTY;\n private readonly queryListSubscriptions = new Subscription();\n\n public constructor() {\n effect(() => {\n this.separator();\n this.maxItems();\n this.itemsBeforeCollapse();\n this.itemsAfterCollapse();\n this.collapseLabel();\n this.syncItems();\n });\n }\n\n public ngAfterContentInit(): void {\n this.rebindItemStateSubscriptions();\n if (this.breadcrumbItems === undefined) {\n return;\n }\n\n this.queryListSubscriptions.add(\n this.breadcrumbItems.changes.subscribe(() => {\n this.rebindItemStateSubscriptions();\n }),\n );\n }\n\n public ngOnDestroy(): void {\n this.itemStateSubscriptions.unsubscribe();\n this.queryListSubscriptions.unsubscribe();\n }\n\n private rebindItemStateSubscriptions(): void {\n this.itemStateSubscriptions.unsubscribe();\n\n const items = this.breadcrumbItems?.toArray() ?? [];\n if (items.length === 0) {\n this.syncItems();\n return;\n }\n\n this.itemStateSubscriptions = merge(...items.map((item) => item.stateChanges)).subscribe(() => {\n this.syncItems();\n });\n\n this.syncItems();\n }\n\n private syncItems(): void {\n const items = this.breadcrumbItems?.toArray() ?? [];\n if (items.length === 0) {\n return;\n }\n\n const currentIndex = this.resolveCurrentIndex(items);\n const displayModes = this.resolveDisplayModes(items, currentIndex);\n const visibleIndices = this.resolveVisibleIndices(displayModes);\n\n for (let index = 0; index < items.length; index += 1) {\n const item = items[index];\n const isVisible = displayModes[index] !== 'hidden';\n const isLastVisibleItem = !visibleIndices.some((visibleIndex) => visibleIndex > index);\n\n item.setResolvedCurrent(index === currentIndex);\n item.setDisplayMode(displayModes[index], this.collapseLabel());\n item.setSeparator(this.separator(), isVisible && !isLastVisibleItem, this.separatorTemplate ?? null);\n }\n }\n\n private resolveCurrentIndex(items: readonly TngBreadcrumbItemComponent[]): number {\n const explicitlyCurrentIndices = items.reduce<number[]>((accumulator, item, index) => {\n if (item.current()) {\n accumulator.push(index);\n }\n return accumulator;\n }, []);\n\n if (explicitlyCurrentIndices.length > 0) {\n return explicitlyCurrentIndices[explicitlyCurrentIndices.length - 1];\n }\n\n if (items.length === 1) {\n return 0;\n }\n\n return -1;\n }\n\n // eslint-disable-next-line complexity,max-lines-per-function\n private resolveDisplayModes(\n items: readonly TngBreadcrumbItemComponent[],\n currentIndex: number,\n ): readonly TngBreadcrumbItemDisplayMode[] {\n const itemCount = items.length;\n const maxItems = this.maxItems();\n if (maxItems === null || maxItems < 1 || itemCount <= maxItems) {\n return Array.from({ length: itemCount }, () => 'visible' as const);\n }\n\n const itemsBeforeCollapse = Math.max(1, Math.floor(this.itemsBeforeCollapse()));\n const itemsAfterCollapse = Math.max(1, Math.floor(this.itemsAfterCollapse()));\n const visibleIndices = new Set<number>();\n\n for (let index = 0; index < Math.min(itemsBeforeCollapse, itemCount); index += 1) {\n visibleIndices.add(index);\n }\n\n for (\n let index = Math.max(itemCount - itemsAfterCollapse, 0);\n index < itemCount;\n index += 1\n ) {\n visibleIndices.add(index);\n }\n\n if (currentIndex >= 0) {\n visibleIndices.add(currentIndex);\n }\n\n const hiddenIndices: number[] = [];\n for (let index = 0; index < itemCount; index += 1) {\n if (!visibleIndices.has(index)) {\n hiddenIndices.push(index);\n }\n }\n\n if (hiddenIndices.length === 0) {\n return Array.from({ length: itemCount }, () => 'visible' as const);\n }\n\n const displayModes: TngBreadcrumbItemDisplayMode[] = Array.from(\n { length: itemCount },\n () => 'visible' as const,\n );\n\n for (const hiddenIndex of hiddenIndices) {\n displayModes[hiddenIndex] = 'hidden';\n }\n\n // The first hidden item becomes the collapse marker so we avoid introducing a separate focusable node.\n displayModes[hiddenIndices[0]] = 'ellipsis';\n return displayModes;\n }\n\n private resolveVisibleIndices(displayModes: readonly TngBreadcrumbItemDisplayMode[]): readonly number[] {\n const visibleIndices: number[] = [];\n for (let index = 0; index < displayModes.length; index += 1) {\n if (displayModes[index] !== 'hidden') {\n visibleIndices.push(index);\n }\n }\n return visibleIndices;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-context-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/context-menu/tng-context-menu.component.ts"],"names":[],"mappings":"AAMA,qBAiBa,uBAAuB;IAClC,SAAgB,SAAS,8CAAiC;IAG1D,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;CACF"}
1
+ {"version":3,"file":"tng-context-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/context-menu/tng-context-menu.component.ts"],"names":[],"mappings":"AAMA,qBAgBa,uBAAuB;IAClC,SAAgB,SAAS,8CAAiC;IAG1D,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;CACF"}
@@ -12,7 +12,6 @@ __decorate([
12
12
  ], TngContextMenuComponent.prototype, "hostAriaLabel", null);
13
13
  TngContextMenuComponent = __decorate([
14
14
  Component({
15
- standalone: true,
16
15
  selector: 'tng-context-menu',
17
16
  hostDirectives: [
18
17
  {
@@ -1 +1 @@
1
- {"version":3,"file":"tng-context-menu.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/context-menu/tng-context-menu.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,cAAc,IAAI,uBAAuB,EACzC,OAAO,IAAI,gBAAgB,GAC5B,MAAM,uBAAuB,CAAC;AAmBxB,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClB,SAAS,GAAG,KAAK,CAAS,cAAc,CAAC,CAAC;IAG1D,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;CACF,CAAA;AAHC;IADC,WAAW,CAAC,iBAAiB,CAAC;4DAG9B;AANU,uBAAuB;IAjBnC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,kBAAkB;QAC5B,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,gBAAgB;gBAC3B,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,CAAC;gBAC3F,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC;aAC7D;YACD;gBACE,SAAS,EAAE,uBAAuB;aACnC;SACF;QACD,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,kCAAkC;QAC5C,QAAQ,EAAE,yBAAyB;KACpC,CAAC;GACW,uBAAuB,CAOnC","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport {\n TngContextMenu as TngContextMenuPrimitive,\n TngMenu as TngMenuPrimitive,\n} from '@tailng-ui/primitives';\n\n@Component({\n standalone: true,\n selector: 'tng-context-menu',\n hostDirectives: [\n {\n directive: TngMenuPrimitive,\n inputs: ['loop', 'disabled', 'closeOnSelect', 'dismissOnOutsideClick', 'dismissOnFocusout'],\n outputs: ['tngMenuOpened', 'tngMenuClosed', 'tngMenuSelect'],\n },\n {\n directive: TngContextMenuPrimitive,\n },\n ],\n templateUrl: './tng-context-menu.component.html',\n styleUrl: './tng-context-menu.component.css',\n exportAs: 'tngContextMenuComponent',\n})\nexport class TngContextMenuComponent {\n public readonly ariaLabel = input<string>('Context menu');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n}\n"]}
1
+ {"version":3,"file":"tng-context-menu.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/context-menu/tng-context-menu.component.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,cAAc,IAAI,uBAAuB,EACzC,OAAO,IAAI,gBAAgB,GAC5B,MAAM,uBAAuB,CAAC;AAkBxB,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClB,SAAS,GAAG,KAAK,CAAS,cAAc,CAAC,CAAC;IAG1D,IAAc,aAAa;QACzB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;CACF,CAAA;AAHC;IADC,WAAW,CAAC,iBAAiB,CAAC;4DAG9B;AANU,uBAAuB;IAhBnC,SAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,cAAc,EAAE;YACd;gBACE,SAAS,EAAE,gBAAgB;gBAC3B,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,CAAC;gBAC3F,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC;aAC7D;YACD;gBACE,SAAS,EAAE,uBAAuB;aACnC;SACF;QACD,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,kCAAkC;QAC5C,QAAQ,EAAE,yBAAyB;KACpC,CAAC;GACW,uBAAuB,CAOnC","sourcesContent":["import { Component, HostBinding, input } from '@angular/core';\nimport {\n TngContextMenu as TngContextMenuPrimitive,\n TngMenu as TngMenuPrimitive,\n} from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-context-menu',\n hostDirectives: [\n {\n directive: TngMenuPrimitive,\n inputs: ['loop', 'disabled', 'closeOnSelect', 'dismissOnOutsideClick', 'dismissOnFocusout'],\n outputs: ['tngMenuOpened', 'tngMenuClosed', 'tngMenuSelect'],\n },\n {\n directive: TngContextMenuPrimitive,\n },\n ],\n templateUrl: './tng-context-menu.component.html',\n styleUrl: './tng-context-menu.component.css',\n exportAs: 'tngContextMenuComponent',\n})\nexport class TngContextMenuComponent {\n public readonly ariaLabel = input<string>('Context menu');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-dropdown-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.ts"],"names":[],"mappings":"AAWA,qBAOa,wBAAwB;IACnC,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,8CAA4B;IAEjD,SAAS,CAAC,QAAQ,CAAC,IAAI,kDAAiB;IAExC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IAGvE,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAoB/C,SAAS,CAAC,eAAe,IAAI,IAAI;IAQjC,SAAS,CAAC,UAAU,IAAI,IAAI;CAO7B"}
1
+ {"version":3,"file":"tng-dropdown-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.ts"],"names":[],"mappings":"AAWA,qBAMa,wBAAwB;IACnC,SAAgB,QAAQ,8EAErB;IACH,SAAgB,KAAK,8CAA4B;IAEjD,SAAS,CAAC,QAAQ,CAAC,IAAI,kDAAiB;IAExC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IAGvE,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAoB/C,SAAS,CAAC,eAAe,IAAI,IAAI;IAQjC,SAAS,CAAC,UAAU,IAAI,IAAI;CAO7B"}
@@ -44,7 +44,6 @@ __decorate([
44
44
  ], TngDropdownMenuComponent.prototype, "onEscapeKeydown", null);
45
45
  TngDropdownMenuComponent = __decorate([
46
46
  Component({
47
- standalone: true,
48
47
  selector: 'tng-dropdown-menu',
49
48
  imports: [TngDropdownMenuPrimitive],
50
49
  templateUrl: './tng-dropdown-menu.component.html',
@@ -1 +1 @@
1
- {"version":3,"file":"tng-dropdown-menu.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAS7E,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnB,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAAS,SAAS,CAAC,CAAC;IAE9B,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvB,OAAO,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IAG7D,eAAe,CAAC,KAAc;QACtC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAGS,eAAe;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAES,UAAU;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF,CAAA;AAnCW;IADT,YAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;+DAkB1C;AAGS;IADT,YAAY,CAAC,yBAAyB,CAAC;+DAOvC;AArCU,wBAAwB;IAPpC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,mBAAmB;QAC7B,OAAO,EAAE,CAAC,wBAAwB,CAAC;QACnC,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,mCAAmC;KAC9C,CAAC;GACW,wBAAwB,CA8CpC","sourcesContent":["import {\n Component,\n ElementRef,\n HostListener,\n booleanAttribute,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { TngDropdownMenu as TngDropdownMenuPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n standalone: true,\n selector: 'tng-dropdown-menu',\n imports: [TngDropdownMenuPrimitive],\n templateUrl: './tng-dropdown-menu.component.html',\n styleUrl: './tng-dropdown-menu.component.css',\n})\nexport class TngDropdownMenuComponent {\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly label = input<string>('Actions');\n\n protected readonly open = signal(false);\n\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostListener('document:click', ['$event'])\n protected onDocumentClick(event: unknown): void {\n if (!(event instanceof Event)) {\n return;\n }\n\n if (!this.open()) {\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 this.open.set(false);\n }\n }\n\n @HostListener('document:keydown.escape')\n protected onEscapeKeydown(): void {\n if (!this.open()) {\n return;\n }\n\n this.open.set(false);\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) {\n return;\n }\n\n this.open.set(!this.open());\n }\n}\n"]}
1
+ {"version":3,"file":"tng-dropdown-menu.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/dropdown-menu/tng-dropdown-menu.component.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAQ7E,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnB,QAAQ,GAAG,KAAK,CAA4B,KAAK,EAAE;QACjE,SAAS,EAAE,gBAAgB;KAC5B,CAAC,CAAC;IACa,KAAK,GAAG,KAAK,CAAS,SAAS,CAAC,CAAC;IAE9B,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvB,OAAO,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;IAG7D,eAAe,CAAC,KAAc;QACtC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAGS,eAAe;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAES,UAAU;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;CACF,CAAA;AAnCW;IADT,YAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;+DAkB1C;AAGS;IADT,YAAY,CAAC,yBAAyB,CAAC;+DAOvC;AArCU,wBAAwB;IANpC,SAAS,CAAC;QACT,QAAQ,EAAE,mBAAmB;QAC7B,OAAO,EAAE,CAAC,wBAAwB,CAAC;QACnC,WAAW,EAAE,oCAAoC;QACjD,QAAQ,EAAE,mCAAmC;KAC9C,CAAC;GACW,wBAAwB,CA8CpC","sourcesContent":["import {\n Component,\n ElementRef,\n HostListener,\n booleanAttribute,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { TngDropdownMenu as TngDropdownMenuPrimitive } from '@tailng-ui/primitives';\n\n@Component({\n selector: 'tng-dropdown-menu',\n imports: [TngDropdownMenuPrimitive],\n templateUrl: './tng-dropdown-menu.component.html',\n styleUrl: './tng-dropdown-menu.component.css',\n})\nexport class TngDropdownMenuComponent {\n public readonly disabled = input<boolean, boolean | string>(false, {\n transform: booleanAttribute,\n });\n public readonly label = input<string>('Actions');\n\n protected readonly open = signal(false);\n\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostListener('document:click', ['$event'])\n protected onDocumentClick(event: unknown): void {\n if (!(event instanceof Event)) {\n return;\n }\n\n if (!this.open()) {\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 this.open.set(false);\n }\n }\n\n @HostListener('document:keydown.escape')\n protected onEscapeKeydown(): void {\n if (!this.open()) {\n return;\n }\n\n this.open.set(false);\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) {\n return;\n }\n\n this.open.set(!this.open());\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-menu-trigger-for.directive.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menu/tng-menu-trigger-for.directive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,KAAK,2BAA2B,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GACrE,QAAQ,CAAC;IAAE,cAAc,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAAC;AAkB3C,qBAKa,iBAAiB;IAC5B,QAAQ,CAAC,iBAAiB,+CAA6B;IAEvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IAGvE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAG,MAAM,CAAU;;IAmBlD,SAAS,CAAC,OAAO,IAAI,IAAI;IAezB,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI;IAmB7D,OAAO,CAAC,aAAa;CAOtB"}
1
+ {"version":3,"file":"tng-menu-trigger-for.directive.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menu/tng-menu-trigger-for.directive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,KAAK,2BAA2B,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GACrE,QAAQ,CAAC;IAAE,cAAc,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAAC;AAkB3C,qBAIa,iBAAiB;IAC5B,QAAQ,CAAC,iBAAiB,+CAA6B;IAEvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IAGvE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAG,MAAM,CAAU;;IAmBlD,SAAS,CAAC,OAAO,IAAI,IAAI;IAezB,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI;IAmB7D,OAAO,CAAC,aAAa;CAOtB"}
@@ -78,7 +78,6 @@ TngMenuTriggerFor = __decorate([
78
78
  Directive({
79
79
  selector: '[tngMenuTriggerFor]',
80
80
  exportAs: 'tngMenuTriggerFor',
81
- standalone: true,
82
81
  })
83
82
  ], TngMenuTriggerFor);
84
83
  export { TngMenuTriggerFor };
@@ -1 +1 @@
1
- {"version":3,"file":"tng-menu-trigger-for.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menu/tng-menu-trigger-for.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, ElementRef, HostBinding, HostListener, effect, inject, input } from '@angular/core';\nimport { TngMenu } from '@tailng-ui/primitives';\n\ntype TngMenuTriggerKeyboardEvent = Readonly<Pick<KeyboardEvent, 'key'>> &\n Readonly<{ preventDefault: () => void }>;\n\ntype TngMenuOpenFocusAction = 'none' | 'first' | 'last';\n\nfunction resolveFocusActionForOpenKey(key: string): TngMenuOpenFocusAction | null {\n switch (key) {\n case 'ArrowDown':\n return 'first';\n case 'ArrowUp':\n return 'last';\n case 'Enter':\n case ' ':\n return 'none';\n default:\n return null;\n }\n}\n\n@Directive({\n selector: '[tngMenuTriggerFor]',\n exportAs: 'tngMenuTriggerFor',\n standalone: true,\n})\nexport class TngMenuTriggerFor {\n readonly tngMenuTriggerFor = input.required<TngMenu>();\n\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostBinding('attr.aria-haspopup')\n protected readonly ariaHasPopup = 'menu' as const;\n\n public constructor() {\n effect((onCleanup): void => {\n const menu = this.tngMenuTriggerFor();\n const trigger = this.hostRef.nativeElement;\n menu.setTriggerElement(trigger, () => this.syncAriaState());\n menu.setRestoreFocusOnOutsideClick(false);\n this.syncAriaState();\n\n onCleanup((): void => {\n menu.clearTriggerLink(trigger);\n trigger.removeAttribute('aria-controls');\n trigger.removeAttribute('aria-expanded');\n });\n });\n }\n\n @HostListener('click')\n protected onClick(): void {\n const menu = this.tngMenuTriggerFor();\n if (menu.isDisabled()) {\n return;\n }\n\n if (menu.isOpen()) {\n menu.close(true);\n return;\n }\n\n menu.open('none');\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: TngMenuTriggerKeyboardEvent): void {\n const menu = this.tngMenuTriggerFor();\n if (menu.isDisabled()) {\n return;\n }\n\n const focusAction = resolveFocusActionForOpenKey(event.key);\n if (focusAction !== null) {\n event.preventDefault();\n menu.open(focusAction);\n return;\n }\n\n if (event.key === 'Escape' && menu.isOpen()) {\n event.preventDefault();\n menu.close(true);\n }\n }\n\n private syncAriaState(): void {\n const trigger = this.hostRef.nativeElement;\n const menu = this.tngMenuTriggerFor();\n\n trigger.setAttribute('aria-controls', menu.id);\n trigger.setAttribute('aria-expanded', menu.isOpen() ? 'true' : 'false');\n }\n}\n"]}
1
+ {"version":3,"file":"tng-menu-trigger-for.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menu/tng-menu-trigger-for.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, ElementRef, HostBinding, HostListener, effect, inject, input } from '@angular/core';\nimport { TngMenu } from '@tailng-ui/primitives';\n\ntype TngMenuTriggerKeyboardEvent = Readonly<Pick<KeyboardEvent, 'key'>> &\n Readonly<{ preventDefault: () => void }>;\n\ntype TngMenuOpenFocusAction = 'none' | 'first' | 'last';\n\nfunction resolveFocusActionForOpenKey(key: string): TngMenuOpenFocusAction | null {\n switch (key) {\n case 'ArrowDown':\n return 'first';\n case 'ArrowUp':\n return 'last';\n case 'Enter':\n case ' ':\n return 'none';\n default:\n return null;\n }\n}\n\n@Directive({\n selector: '[tngMenuTriggerFor]',\n exportAs: 'tngMenuTriggerFor',\n})\nexport class TngMenuTriggerFor {\n readonly tngMenuTriggerFor = input.required<TngMenu>();\n\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostBinding('attr.aria-haspopup')\n protected readonly ariaHasPopup = 'menu' as const;\n\n public constructor() {\n effect((onCleanup): void => {\n const menu = this.tngMenuTriggerFor();\n const trigger = this.hostRef.nativeElement;\n menu.setTriggerElement(trigger, () => this.syncAriaState());\n menu.setRestoreFocusOnOutsideClick(false);\n this.syncAriaState();\n\n onCleanup((): void => {\n menu.clearTriggerLink(trigger);\n trigger.removeAttribute('aria-controls');\n trigger.removeAttribute('aria-expanded');\n });\n });\n }\n\n @HostListener('click')\n protected onClick(): void {\n const menu = this.tngMenuTriggerFor();\n if (menu.isDisabled()) {\n return;\n }\n\n if (menu.isOpen()) {\n menu.close(true);\n return;\n }\n\n menu.open('none');\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: TngMenuTriggerKeyboardEvent): void {\n const menu = this.tngMenuTriggerFor();\n if (menu.isDisabled()) {\n return;\n }\n\n const focusAction = resolveFocusActionForOpenKey(event.key);\n if (focusAction !== null) {\n event.preventDefault();\n menu.open(focusAction);\n return;\n }\n\n if (event.key === 'Escape' && menu.isOpen()) {\n event.preventDefault();\n menu.close(true);\n }\n }\n\n private syncAriaState(): void {\n const trigger = this.hostRef.nativeElement;\n const menu = this.tngMenuTriggerFor();\n\n trigger.setAttribute('aria-controls', menu.id);\n trigger.setAttribute('aria-expanded', menu.isOpen() ? 'true' : 'false');\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tng-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menu/tng-menu.component.ts"],"names":[],"mappings":"AAKA,qBAca,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAK;IAE9B,QAAQ,CAAC,SAAS,8CAAyB;IAG3C,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;IAED,SAAS,IAAI,IAAI;IA+BjB,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,qBAAqB;CAW9B"}
1
+ {"version":3,"file":"tng-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menu/tng-menu.component.ts"],"names":[],"mappings":"AAKA,qBAaa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAK;IAE9B,QAAQ,CAAC,SAAS,8CAAyB;IAG3C,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;IAED,SAAS,IAAI,IAAI;IA+BjB,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,qBAAqB;CAW9B"}
@@ -75,7 +75,6 @@ __decorate([
75
75
  TngMenuComponent = __decorate([
76
76
  Component({
77
77
  selector: 'tng-menu',
78
- standalone: true,
79
78
  hostDirectives: [
80
79
  {
81
80
  directive: TngMenuPrimitive,
@@ -1 +1 @@
1
- {"version":3,"file":"tng-menu.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menu/tng-menu.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ElementRef, HostBinding, inject, input } from '@angular/core';\nimport { TngMenu as TngMenuPrimitive } from '@tailng-ui/primitives';\n\nconst MAX_FOCUS_SYNC_ATTEMPTS = 4;\n\n@Component({\n selector: 'tng-menu',\n standalone: true,\n hostDirectives: [\n {\n directive: TngMenuPrimitive,\n inputs: ['loop', 'disabled', 'closeOnSelect', 'dismissOnOutsideClick', 'dismissOnFocusout'],\n outputs: ['tngMenuOpened', 'tngMenuClosed', 'tngMenuSelect'],\n },\n ],\n templateUrl: './tng-menu.component.html',\n styleUrl: './tng-menu.component.css',\n exportAs: 'tngMenuComponent',\n})\nexport class TngMenuComponent {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly primitive = inject<TngMenuPrimitive>(TngMenuPrimitive);\n private lastOpenState = false;\n private focusSyncQueued = false;\n private focusSyncAttempts = 0;\n\n readonly ariaLabel = input<string>('Menu');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n\n ngDoCheck(): void {\n const isOpen = this.primitive.isOpen();\n if (!isOpen) {\n this.lastOpenState = false;\n this.focusSyncAttempts = 0;\n this.focusSyncQueued = false;\n return;\n }\n\n const host = this.hostRef.nativeElement;\n const activeElement = document.activeElement;\n const deepestOpenSubmenu = this.getDeepestOpenSubmenu(host);\n const hasFocusInDeepestOpenSubmenu =\n deepestOpenSubmenu !== null &&\n activeElement instanceof Node &&\n deepestOpenSubmenu.contains(activeElement);\n const hasFocusInsideHost = activeElement instanceof Node && host.contains(activeElement);\n\n const shouldSyncFocusToHostOrDeepestSubmenu =\n deepestOpenSubmenu !== null ? !hasFocusInDeepestOpenSubmenu : !hasFocusInsideHost;\n\n if (\n (!this.lastOpenState || shouldSyncFocusToHostOrDeepestSubmenu) &&\n this.focusSyncAttempts < MAX_FOCUS_SYNC_ATTEMPTS\n ) {\n this.queueFocusSync();\n }\n\n this.lastOpenState = true;\n }\n\n private queueFocusSync(): void {\n if (this.focusSyncQueued) {\n return;\n }\n\n this.focusSyncQueued = true;\n queueMicrotask((): void => {\n this.focusSyncQueued = false;\n\n if (!this.primitive.isOpen()) {\n return;\n }\n\n const host = this.hostRef.nativeElement;\n const activeElement = document.activeElement;\n const deepestOpenSubmenu = this.getDeepestOpenSubmenu(host);\n\n if (deepestOpenSubmenu !== null) {\n if (!(activeElement instanceof Node) || !deepestOpenSubmenu.contains(activeElement)) {\n this.focusSyncAttempts += 1;\n deepestOpenSubmenu.focus();\n }\n return;\n }\n\n if (activeElement instanceof Node && host.contains(activeElement)) {\n return;\n }\n\n this.focusSyncAttempts += 1;\n host.focus();\n });\n }\n\n private getDeepestOpenSubmenu(host: HTMLElement): HTMLElement | null {\n const openNestedMenus = Array.from(\n host.querySelectorAll<HTMLElement>('[data-slot=\"menu\"][data-state=\"open\"]'),\n ).filter((menuElement) => menuElement !== host);\n\n if (openNestedMenus.length === 0) {\n return null;\n }\n\n return openNestedMenus[openNestedMenus.length - 1] ?? null;\n }\n}\n"]}
1
+ {"version":3,"file":"tng-menu.component.js","sourceRoot":"","sources":["../../../../../../../../libs/tailng-ui/components/src/lib/navigation/menu/tng-menu.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, ElementRef, HostBinding, inject, input } from '@angular/core';\nimport { TngMenu as TngMenuPrimitive } from '@tailng-ui/primitives';\n\nconst MAX_FOCUS_SYNC_ATTEMPTS = 4;\n\n@Component({\n selector: 'tng-menu',\n hostDirectives: [\n {\n directive: TngMenuPrimitive,\n inputs: ['loop', 'disabled', 'closeOnSelect', 'dismissOnOutsideClick', 'dismissOnFocusout'],\n outputs: ['tngMenuOpened', 'tngMenuClosed', 'tngMenuSelect'],\n },\n ],\n templateUrl: './tng-menu.component.html',\n styleUrl: './tng-menu.component.css',\n exportAs: 'tngMenuComponent',\n})\nexport class TngMenuComponent {\n private readonly hostRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly primitive = inject<TngMenuPrimitive>(TngMenuPrimitive);\n private lastOpenState = false;\n private focusSyncQueued = false;\n private focusSyncAttempts = 0;\n\n readonly ariaLabel = input<string>('Menu');\n\n @HostBinding('attr.aria-label')\n protected get hostAriaLabel(): string {\n return this.ariaLabel();\n }\n\n ngDoCheck(): void {\n const isOpen = this.primitive.isOpen();\n if (!isOpen) {\n this.lastOpenState = false;\n this.focusSyncAttempts = 0;\n this.focusSyncQueued = false;\n return;\n }\n\n const host = this.hostRef.nativeElement;\n const activeElement = document.activeElement;\n const deepestOpenSubmenu = this.getDeepestOpenSubmenu(host);\n const hasFocusInDeepestOpenSubmenu =\n deepestOpenSubmenu !== null &&\n activeElement instanceof Node &&\n deepestOpenSubmenu.contains(activeElement);\n const hasFocusInsideHost = activeElement instanceof Node && host.contains(activeElement);\n\n const shouldSyncFocusToHostOrDeepestSubmenu =\n deepestOpenSubmenu !== null ? !hasFocusInDeepestOpenSubmenu : !hasFocusInsideHost;\n\n if (\n (!this.lastOpenState || shouldSyncFocusToHostOrDeepestSubmenu) &&\n this.focusSyncAttempts < MAX_FOCUS_SYNC_ATTEMPTS\n ) {\n this.queueFocusSync();\n }\n\n this.lastOpenState = true;\n }\n\n private queueFocusSync(): void {\n if (this.focusSyncQueued) {\n return;\n }\n\n this.focusSyncQueued = true;\n queueMicrotask((): void => {\n this.focusSyncQueued = false;\n\n if (!this.primitive.isOpen()) {\n return;\n }\n\n const host = this.hostRef.nativeElement;\n const activeElement = document.activeElement;\n const deepestOpenSubmenu = this.getDeepestOpenSubmenu(host);\n\n if (deepestOpenSubmenu !== null) {\n if (!(activeElement instanceof Node) || !deepestOpenSubmenu.contains(activeElement)) {\n this.focusSyncAttempts += 1;\n deepestOpenSubmenu.focus();\n }\n return;\n }\n\n if (activeElement instanceof Node && host.contains(activeElement)) {\n return;\n }\n\n this.focusSyncAttempts += 1;\n host.focus();\n });\n }\n\n private getDeepestOpenSubmenu(host: HTMLElement): HTMLElement | null {\n const openNestedMenus = Array.from(\n host.querySelectorAll<HTMLElement>('[data-slot=\"menu\"][data-state=\"open\"]'),\n ).filter((menuElement) => menuElement !== host);\n\n if (openNestedMenus.length === 0) {\n return null;\n }\n\n return openNestedMenus[openNestedMenus.length - 1] ?? null;\n }\n}\n"]}
@@ -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,qBAaa,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;CACF"}
@@ -13,7 +13,6 @@ __decorate([
13
13
  TngMenubarComponent = __decorate([
14
14
  Component({
15
15
  selector: 'tng-menubar',
16
- standalone: true,
17
16
  hostDirectives: [
18
17
  {
19
18
  directive: TngMenubarPrimitive,
@@ -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;AAenE,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;IAb/B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,UAAU,EAAE,IAAI;QAChB,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 standalone: true,\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"],"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 +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,qBAOa,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;CAC9D"}
@@ -6,7 +6,6 @@ let TngNavigationMenuComponent = class TngNavigationMenuComponent {
6
6
  };
7
7
  TngNavigationMenuComponent = __decorate([
8
8
  Component({
9
- standalone: true,
10
9
  selector: 'tng-navigation-menu',
11
10
  imports: [TngNavigationMenuPrimitive],
12
11
  templateUrl: './tng-navigation-menu.component.html',
@@ -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;AASjF,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrB,SAAS,GAAG,KAAK,CAAS,iBAAiB,CAAC,CAAC;CAC9D,CAAA;AAFY,0BAA0B;IAPtC,SAAS,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,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 standalone: true,\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"],"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 +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,qBAyBa,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;CACF"}
@@ -13,7 +13,6 @@ __decorate([
13
13
  TngTabsComponent = __decorate([
14
14
  Component({
15
15
  selector: 'tng-tabs',
16
- standalone: true,
17
16
  hostDirectives: [
18
17
  {
19
18
  directive: TngTabsPrimitive,