@acorex/components 22.1.0-next.31 → 22.1.0-next.33

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 (263) hide show
  1. package/emoji/README.md +3 -0
  2. package/emojipicker/README.md +3 -0
  3. package/fesm2022/acorex-components-accordion.mjs +13 -13
  4. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  5. package/fesm2022/acorex-components-action-sheet.mjs +13 -13
  6. package/fesm2022/acorex-components-alert.mjs +7 -7
  7. package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
  8. package/fesm2022/acorex-components-audio-wave.mjs +295 -271
  9. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  10. package/fesm2022/acorex-components-autocomplete.mjs +7 -7
  11. package/fesm2022/acorex-components-avatar.mjs +10 -10
  12. package/fesm2022/acorex-components-badge.mjs +7 -7
  13. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  14. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  15. package/fesm2022/acorex-components-bubble.mjs +71 -0
  16. package/fesm2022/acorex-components-bubble.mjs.map +1 -0
  17. package/fesm2022/acorex-components-button-group.mjs +22 -15
  18. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  19. package/fesm2022/acorex-components-button.mjs +194 -51
  20. package/fesm2022/acorex-components-button.mjs.map +1 -1
  21. package/fesm2022/acorex-components-calendar.mjs +332 -130
  22. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  23. package/fesm2022/acorex-components-check-box.mjs +7 -7
  24. package/fesm2022/acorex-components-chips.mjs +7 -7
  25. package/fesm2022/acorex-components-circular-progress.mjs +7 -7
  26. package/fesm2022/acorex-components-code-editor.mjs +44 -19
  27. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  28. package/fesm2022/acorex-components-color-box.mjs +7 -7
  29. package/fesm2022/acorex-components-color-palette.mjs +28 -28
  30. package/fesm2022/acorex-components-combo-box.mjs +244 -54
  31. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  32. package/fesm2022/acorex-components-command.mjs +7 -7
  33. package/fesm2022/acorex-components-comment.mjs +28 -28
  34. package/fesm2022/acorex-components-conversation-acorex-components-conversation-EmV9ldrU.mjs +19539 -0
  35. package/fesm2022/acorex-components-conversation-acorex-components-conversation-EmV9ldrU.mjs.map +1 -0
  36. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs +50 -0
  37. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs.map +1 -0
  38. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs +87 -0
  39. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs.map +1 -0
  40. package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-DY7nhA-e.mjs +65 -0
  41. package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-DY7nhA-e.mjs.map +1 -0
  42. package/fesm2022/acorex-components-conversation.mjs +1 -15470
  43. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  44. package/fesm2022/acorex-components-cron-job.mjs +47 -47
  45. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  46. package/fesm2022/acorex-components-data-list.mjs +3 -3
  47. package/fesm2022/acorex-components-data-pager.mjs +35 -35
  48. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  49. package/fesm2022/acorex-components-data-table.mjs +734 -165
  50. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  51. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  52. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  53. package/fesm2022/acorex-components-datetime-picker.mjs +8 -8
  54. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  55. package/fesm2022/acorex-components-decorators.mjs +60 -30
  56. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  57. package/fesm2022/acorex-components-dialog.mjs +11 -11
  58. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  59. package/fesm2022/acorex-components-drawer.mjs +10 -10
  60. package/fesm2022/acorex-components-dropdown-button.mjs +10 -9
  61. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  62. package/fesm2022/acorex-components-dropdown.mjs +19 -14
  63. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  64. package/fesm2022/acorex-components-editor.mjs +15 -14
  65. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  66. package/fesm2022/acorex-components-emoji.mjs +74 -0
  67. package/fesm2022/acorex-components-emoji.mjs.map +1 -0
  68. package/fesm2022/acorex-components-emojipicker.mjs +425 -0
  69. package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
  70. package/fesm2022/acorex-components-fab.mjs +6 -6
  71. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  72. package/fesm2022/acorex-components-file-viewer.mjs +370 -124
  73. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  74. package/fesm2022/acorex-components-form.mjs +17 -17
  75. package/fesm2022/acorex-components-form.mjs.map +1 -1
  76. package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
  77. package/fesm2022/acorex-components-highlight.mjs +80 -0
  78. package/fesm2022/acorex-components-highlight.mjs.map +1 -0
  79. package/fesm2022/acorex-components-image-editor.mjs +780 -451
  80. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  81. package/fesm2022/acorex-components-image.mjs +7 -7
  82. package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
  83. package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
  84. package/fesm2022/acorex-components-json-viewer.mjs +7 -7
  85. package/fesm2022/acorex-components-kanban.mjs +3 -3
  86. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  87. package/fesm2022/acorex-components-kbd.mjs +6 -6
  88. package/fesm2022/acorex-components-label.mjs +7 -7
  89. package/fesm2022/acorex-components-list.mjs +28 -9
  90. package/fesm2022/acorex-components-list.mjs.map +1 -1
  91. package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
  92. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  93. package/fesm2022/acorex-components-loading.mjs +16 -16
  94. package/fesm2022/acorex-components-lookup.mjs +764 -156
  95. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  96. package/fesm2022/acorex-components-map.mjs +20 -13
  97. package/fesm2022/acorex-components-map.mjs.map +1 -1
  98. package/fesm2022/acorex-components-media-viewer.mjs +215 -218
  99. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  100. package/fesm2022/acorex-components-menu.mjs +146 -45
  101. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  102. package/fesm2022/acorex-components-message-status.mjs +71 -0
  103. package/fesm2022/acorex-components-message-status.mjs.map +1 -0
  104. package/fesm2022/acorex-components-message-time.mjs +36 -0
  105. package/fesm2022/acorex-components-message-time.mjs.map +1 -0
  106. package/fesm2022/acorex-components-message.mjs +120 -0
  107. package/fesm2022/acorex-components-message.mjs.map +1 -0
  108. package/fesm2022/acorex-components-navbar.mjs +7 -7
  109. package/fesm2022/acorex-components-notification.mjs +11 -11
  110. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  111. package/fesm2022/acorex-components-number-box.mjs +7 -7
  112. package/fesm2022/acorex-components-otp.mjs +7 -7
  113. package/fesm2022/acorex-components-page.mjs +10 -10
  114. package/fesm2022/acorex-components-paint.mjs +25 -25
  115. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  116. package/fesm2022/acorex-components-password-box.mjs +10 -10
  117. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  118. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  119. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  120. package/fesm2022/acorex-components-picker.mjs +13 -13
  121. package/fesm2022/acorex-components-popover.mjs +80 -21
  122. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  123. package/fesm2022/acorex-components-popup.mjs +167 -104
  124. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  125. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  126. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  127. package/fesm2022/acorex-components-radio.mjs +7 -7
  128. package/fesm2022/acorex-components-rail-navigation.mjs +14 -14
  129. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  130. package/fesm2022/acorex-components-range-slider.mjs +9 -9
  131. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  132. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  133. package/fesm2022/acorex-components-reaction.mjs +144 -0
  134. package/fesm2022/acorex-components-reaction.mjs.map +1 -0
  135. package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
  136. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  137. package/fesm2022/acorex-components-result.mjs +7 -7
  138. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  139. package/fesm2022/acorex-components-rrule.mjs +9 -9
  140. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  141. package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
  142. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  143. package/fesm2022/acorex-components-scheduler.mjs +34 -34
  144. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  145. package/fesm2022/acorex-components-search-box.mjs +7 -7
  146. package/fesm2022/acorex-components-select-box.mjs +7 -7
  147. package/fesm2022/acorex-components-selection-list.mjs +7 -8
  148. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  149. package/fesm2022/acorex-components-side-menu.mjs +55 -42
  150. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  151. package/fesm2022/acorex-components-sidebar.mjs +28 -28
  152. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  153. package/fesm2022/acorex-components-slider.mjs +7 -7
  154. package/fesm2022/acorex-components-sliding-item.mjs +13 -13
  155. package/fesm2022/acorex-components-step-wizard.mjs +16 -18
  156. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  157. package/fesm2022/acorex-components-switch.mjs +10 -10
  158. package/fesm2022/acorex-components-tabs.mjs +529 -78
  159. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  160. package/fesm2022/acorex-components-tag-box.mjs +7 -7
  161. package/fesm2022/acorex-components-tag.mjs +7 -7
  162. package/fesm2022/acorex-components-text-area.mjs +7 -7
  163. package/fesm2022/acorex-components-text-box.mjs +7 -7
  164. package/fesm2022/acorex-components-time-duration.mjs +7 -7
  165. package/fesm2022/acorex-components-time-line.mjs +10 -10
  166. package/fesm2022/acorex-components-toast.mjs +10 -10
  167. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  168. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  169. package/fesm2022/acorex-components-tree-view.mjs +58 -15
  170. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  171. package/fesm2022/acorex-components-uploader.mjs +13 -13
  172. package/fesm2022/acorex-components-video-player.mjs +7 -7
  173. package/fesm2022/acorex-components-wysiwyg.mjs +109 -39
  174. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  175. package/highlight/README.md +13 -0
  176. package/inline-reaction/README.md +3 -0
  177. package/lookup/README.md +1 -1
  178. package/message/README.md +3 -0
  179. package/message-status/README.md +3 -0
  180. package/message-time/README.md +3 -0
  181. package/package.json +42 -12
  182. package/reaction/README.md +3 -0
  183. package/types/acorex-components-action-sheet.d.ts +1 -1
  184. package/types/acorex-components-audio-wave.d.ts +132 -73
  185. package/types/acorex-components-bubble.d.ts +31 -0
  186. package/types/acorex-components-button-group.d.ts +4 -0
  187. package/types/acorex-components-button.d.ts +24 -7
  188. package/types/acorex-components-calendar.d.ts +43 -12
  189. package/types/acorex-components-check-box.d.ts +1 -1
  190. package/types/acorex-components-code-editor.d.ts +4 -1
  191. package/types/acorex-components-color-box.d.ts +1 -1
  192. package/types/acorex-components-color-palette.d.ts +2 -2
  193. package/types/acorex-components-combo-box.d.ts +34 -4
  194. package/types/acorex-components-command.d.ts +1 -1
  195. package/types/acorex-components-conversation.d.ts +1869 -1372
  196. package/types/acorex-components-cron-job.d.ts +6 -6
  197. package/types/acorex-components-data-pager.d.ts +2 -2
  198. package/types/acorex-components-data-table.d.ts +194 -21
  199. package/types/acorex-components-datetime-box.d.ts +1 -1
  200. package/types/acorex-components-datetime-picker.d.ts +1 -1
  201. package/types/acorex-components-decorators.d.ts +13 -1
  202. package/types/acorex-components-dialog.d.ts +1 -1
  203. package/types/acorex-components-dropdown-button.d.ts +2 -1
  204. package/types/acorex-components-dropdown.d.ts +6 -1
  205. package/types/acorex-components-editor.d.ts +1 -1
  206. package/types/acorex-components-emoji.d.ts +42 -0
  207. package/types/acorex-components-emojipicker.d.ts +146 -0
  208. package/types/acorex-components-file-viewer.d.ts +50 -6
  209. package/types/acorex-components-highlight.d.ts +31 -0
  210. package/types/acorex-components-image-editor.d.ts +72 -50
  211. package/types/acorex-components-inline-reaction.d.ts +52 -0
  212. package/types/acorex-components-list.d.ts +12 -0
  213. package/types/acorex-components-loading-dialog.d.ts +1 -1
  214. package/types/acorex-components-loading.d.ts +1 -1
  215. package/types/acorex-components-lookup.d.ts +213 -82
  216. package/types/acorex-components-map.d.ts +7 -2
  217. package/types/acorex-components-media-viewer.d.ts +4 -3
  218. package/types/acorex-components-menu.d.ts +17 -5
  219. package/types/acorex-components-message-status.d.ts +23 -0
  220. package/types/acorex-components-message-time.d.ts +19 -0
  221. package/types/acorex-components-message.d.ts +59 -0
  222. package/types/acorex-components-notification.d.ts +1 -1
  223. package/types/acorex-components-number-box.d.ts +1 -1
  224. package/types/acorex-components-otp.d.ts +1 -1
  225. package/types/acorex-components-page.d.ts +2 -2
  226. package/types/acorex-components-paint.d.ts +2 -2
  227. package/types/acorex-components-password-box.d.ts +1 -1
  228. package/types/acorex-components-phone-box.d.ts +1 -1
  229. package/types/acorex-components-popover.d.ts +18 -4
  230. package/types/acorex-components-popup.d.ts +62 -26
  231. package/types/acorex-components-rail-navigation.d.ts +1 -1
  232. package/types/acorex-components-range-slider.d.ts +1 -1
  233. package/types/acorex-components-reaction.d.ts +85 -0
  234. package/types/acorex-components-rest-api-generator.d.ts +1 -1
  235. package/types/acorex-components-rrule.d.ts +1 -1
  236. package/types/acorex-components-scheduler-picker.d.ts +1 -1
  237. package/types/acorex-components-scheduler.d.ts +1 -1
  238. package/types/acorex-components-search-box.d.ts +1 -1
  239. package/types/acorex-components-selection-list.d.ts +1 -1
  240. package/types/acorex-components-side-menu.d.ts +6 -8
  241. package/types/acorex-components-slider.d.ts +1 -1
  242. package/types/acorex-components-step-wizard.d.ts +4 -4
  243. package/types/acorex-components-switch.d.ts +1 -1
  244. package/types/acorex-components-tabs.d.ts +150 -19
  245. package/types/acorex-components-tag-box.d.ts +2 -2
  246. package/types/acorex-components-text-area.d.ts +1 -1
  247. package/types/acorex-components-text-box.d.ts +1 -1
  248. package/types/acorex-components-time-duration.d.ts +1 -1
  249. package/types/acorex-components-toast.d.ts +1 -1
  250. package/types/acorex-components-tree-view.d.ts +32 -3
  251. package/types/acorex-components-wysiwyg.d.ts +15 -2
  252. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs +0 -50
  253. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-DCcRJYfF.mjs.map +0 -1
  254. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs +0 -210
  255. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-DnSW908R.mjs.map +0 -1
  256. package/fesm2022/acorex-components-flow-chart.mjs +0 -735
  257. package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
  258. package/fesm2022/acorex-components-query-builder.mjs +0 -267
  259. package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
  260. package/flow-chart/README.md +0 -3
  261. package/query-builder/README.md +0 -3
  262. package/types/acorex-components-flow-chart.d.ts +0 -187
  263. package/types/acorex-components-query-builder.d.ts +0 -52
@@ -1,13 +1,20 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ViewContainerRef, Directive, EventEmitter, HostListener, Input, Output, ViewChild, ViewEncapsulation, Component, Renderer2, input, viewChild, NgZone, PLATFORM_ID, signal, effect, HostBinding, ContentChildren, NgModule } from '@angular/core';
2
+ import { inject, ViewContainerRef, Renderer2, Directive, EventEmitter, HostListener, Input, Output, ViewChild, ContentChild, ViewEncapsulation, Component, DestroyRef, input, booleanAttribute, viewChild, NgZone, PLATFORM_ID, signal, effect, afterNextRender, HostBinding, ContentChildren, NgModule } from '@angular/core';
3
3
  import { MXInteractiveComponent, AXComponent, AXEvent, MXBaseComponent } from '@acorex/cdk/common';
4
+ import * as i1 from '@acorex/cdk/drag-drop';
5
+ import { AXDragDirective, AXDropListDirective } from '@acorex/cdk/drag-drop';
4
6
  import { NgTemplateOutlet, isPlatformBrowser, CommonModule } from '@angular/common';
7
+ import * as i2 from '@acorex/cdk/horizontal-scroll';
8
+ import { AXHorizontalScrollDirective } from '@acorex/cdk/horizontal-scroll';
5
9
  import { AXDecoratorModule } from '@acorex/components/decorators';
6
10
  import { PortalModule } from '@angular/cdk/portal';
7
11
 
8
12
  class AXTabContentDirective {
9
13
  constructor() {
10
- this._viewContainerRef = inject(ViewContainerRef);
14
+ this.viewContainerRef = inject(ViewContainerRef);
15
+ this.renderer = inject(Renderer2);
16
+ this.panes = new Map();
17
+ this.defaultView = null;
11
18
  }
12
19
  get portal() {
13
20
  return this._portal;
@@ -15,14 +22,115 @@ class AXTabContentDirective {
15
22
  set portal(v) {
16
23
  if (v) {
17
24
  this._portal = v;
18
- this._viewContainerRef.clear();
19
- this._viewContainerRef.createEmbeddedView(v, null, 0);
25
+ this.activate(v, 'default');
26
+ }
27
+ }
28
+ /**
29
+ * Shows the given tab template using the specified render mode.
30
+ */
31
+ activate(template, mode) {
32
+ if (!template) {
33
+ return;
34
+ }
35
+ this._portal = template;
36
+ if (mode === 'default') {
37
+ this.destroyDefaultView();
38
+ this.resetKeepAlivePanes();
39
+ this.viewContainerRef.clear();
40
+ this.defaultView = this.viewContainerRef.createEmbeddedView(template, null, 0);
41
+ return;
42
+ }
43
+ this.destroyDefaultView();
44
+ this.ensurePane(template);
45
+ this.showPane(template);
46
+ }
47
+ /**
48
+ * Ensures embedded views exist for every tab template (all-tabs mode).
49
+ */
50
+ preload(templates) {
51
+ templates.forEach((template) => this.ensurePane(template));
52
+ }
53
+ /**
54
+ * Removes panes whose tab templates are no longer present.
55
+ */
56
+ sync(templates) {
57
+ const activeTemplates = new Set(templates);
58
+ for (const [template, pane] of this.panes) {
59
+ if (activeTemplates.has(template)) {
60
+ continue;
61
+ }
62
+ this.destroyPane(template, pane);
63
+ }
64
+ }
65
+ /**
66
+ * Destroys all cached panes and clears the view container.
67
+ */
68
+ reset() {
69
+ this.destroyDefaultView();
70
+ this.resetKeepAlivePanes();
71
+ this.viewContainerRef.clear();
72
+ }
73
+ ngOnDestroy() {
74
+ this.reset();
75
+ }
76
+ destroyDefaultView() {
77
+ if (!this.defaultView) {
78
+ return;
20
79
  }
80
+ this.defaultView.destroy();
81
+ this.defaultView = null;
21
82
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTabContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: AXTabContentDirective, isStandalone: true, selector: "[axTabContent]", inputs: { portal: ["axTabContent", "portal"] }, exportAs: ["axTabContent"], ngImport: i0 }); }
83
+ resetKeepAlivePanes() {
84
+ for (const [template, pane] of this.panes) {
85
+ this.destroyPane(template, pane);
86
+ }
87
+ this.panes.clear();
88
+ }
89
+ ensurePane(template) {
90
+ const existing = this.panes.get(template);
91
+ if (existing && !existing.view.destroyed) {
92
+ return existing;
93
+ }
94
+ if (existing) {
95
+ this.panes.delete(template);
96
+ this.renderer.removeChild(existing.host.parentElement, existing.host);
97
+ }
98
+ const view = this.viewContainerRef.createEmbeddedView(template, null, this.viewContainerRef.length);
99
+ const host = this.renderer.createElement('div');
100
+ this.renderer.addClass(host, 'ax-tab-content-pane');
101
+ this.renderer.setAttribute(host, 'hidden', '');
102
+ const anchor = this.viewContainerRef.element.nativeElement;
103
+ this.renderer.insertBefore(anchor.parentElement, host, anchor);
104
+ for (const node of view.rootNodes) {
105
+ this.renderer.appendChild(host, node);
106
+ }
107
+ const pane = { view, host };
108
+ this.panes.set(template, pane);
109
+ return pane;
110
+ }
111
+ showPane(template) {
112
+ for (const [paneTemplate, pane] of this.panes) {
113
+ if (paneTemplate === template) {
114
+ this.renderer.removeAttribute(pane.host, 'hidden');
115
+ }
116
+ else {
117
+ this.renderer.setAttribute(pane.host, 'hidden', '');
118
+ }
119
+ }
120
+ }
121
+ destroyPane(template, pane) {
122
+ if (!pane.view.destroyed) {
123
+ pane.view.destroy();
124
+ }
125
+ if (pane.host.parentElement) {
126
+ this.renderer.removeChild(pane.host.parentElement, pane.host);
127
+ }
128
+ this.panes.delete(template);
129
+ }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
131
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: AXTabContentDirective, isStandalone: true, selector: "[axTabContent]", inputs: { portal: ["axTabContent", "portal"] }, exportAs: ["axTabContent"], ngImport: i0 }); }
24
132
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTabContentDirective, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabContentDirective, decorators: [{
26
134
  type: Directive,
27
135
  args: [{
28
136
  selector: '[axTabContent]',
@@ -31,13 +139,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
31
139
  }]
32
140
  }] });
33
141
 
142
+ /**
143
+ * Marks an `ng-template` as tab panel content. Use this instead of projecting
144
+ * components directly into `ax-content` when you need `renderMode="default"`
145
+ * to destroy and recreate panel state on each tab switch.
146
+ *
147
+ * @example
148
+ * ```html
149
+ * <ax-tab-item text="Account">
150
+ * <ng-template axTabPanel>
151
+ * <my-panel />
152
+ * </ng-template>
153
+ * </ax-tab-item>
154
+ * ```
155
+ */
156
+ class AXTabPanelDirective {
157
+ constructor(template) {
158
+ this.template = template;
159
+ }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabPanelDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
161
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: AXTabPanelDirective, isStandalone: true, selector: "ng-template[axTabPanel]", ngImport: i0 }); }
162
+ }
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabPanelDirective, decorators: [{
164
+ type: Directive,
165
+ args: [{
166
+ selector: 'ng-template[axTabPanel]',
167
+ }]
168
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
169
+
34
170
  /**
35
171
  * @category
36
172
  * Represents an individual tab item in a tab component.
37
173
  */
38
174
  class AXTabItemComponent extends MXInteractiveComponent {
39
175
  constructor() {
40
- super(...arguments);
176
+ super();
177
+ this._drag = inject(AXDragDirective, { self: true });
178
+ this._reorderEnabled = false;
179
+ this._panTouchAction = 'none';
41
180
  /**
42
181
  * Emits an event when the `active` state of the component changes.
43
182
  * @event
@@ -50,6 +189,15 @@ class AXTabItemComponent extends MXInteractiveComponent {
50
189
  this.onClick = new EventEmitter();
51
190
  /** @ignore */
52
191
  this._active = false;
192
+ this._drag.isDragDisabled.set(true);
193
+ this._drag.dragCursorOverride.set('none');
194
+ }
195
+ /**
196
+ * Template rendered for this tab's content area.
197
+ * Prefer `ng-template[axTabPanel]` so `renderMode="default"` can recreate panel state.
198
+ */
199
+ get template() {
200
+ return this._panel?.template ?? this._contentTemplate;
53
201
  }
54
202
  /**
55
203
  * Gets or sets the component's active state, controlling its behavior and appearance.
@@ -67,6 +215,33 @@ class AXTabItemComponent extends MXInteractiveComponent {
67
215
  },
68
216
  });
69
217
  }
218
+ /** @ignore */
219
+ setReorderEnabled(enabled, delay = 0, touchAction = 'none') {
220
+ this._reorderEnabled = enabled;
221
+ this._panTouchAction = touchAction;
222
+ this._drag.startDelay.set(enabled ? delay : 0);
223
+ this._drag.dragTouchAction.set(touchAction);
224
+ this._drag.dragCursorOverride.set(enabled ? 'grab-on-drag' : 'none');
225
+ this.updateDragState();
226
+ }
227
+ /** @ignore */
228
+ updateDragState() {
229
+ this._drag.isDragDisabled.set(!this._reorderEnabled || this.disabled);
230
+ this.applyScrollTouchAction();
231
+ }
232
+ /** @ignore */
233
+ applyScrollTouchAction() {
234
+ const handle = this.getHostElement();
235
+ if (this._reorderEnabled) {
236
+ return;
237
+ }
238
+ if (this._panTouchAction !== 'none') {
239
+ handle.style.touchAction = this._panTouchAction;
240
+ }
241
+ else {
242
+ handle.style.removeProperty('touch-action');
243
+ }
244
+ }
70
245
  /**
71
246
  * @ignore
72
247
  */
@@ -88,6 +263,7 @@ class AXTabItemComponent extends MXInteractiveComponent {
88
263
  const classListRef = this.getHostElement().classList;
89
264
  if (option.name == 'disabled') {
90
265
  option.value ? classListRef.add('ax-state-disabled') : classListRef.remove('ax-state-disabled');
266
+ this.updateDragState();
91
267
  }
92
268
  if (option.name == 'active') {
93
269
  option.value ? classListRef.add('ax-state-active') : classListRef.remove('ax-state-active');
@@ -100,14 +276,14 @@ class AXTabItemComponent extends MXInteractiveComponent {
100
276
  */
101
277
  getStats() {
102
278
  return {
103
- width: this.getHostElement().clientWidth,
104
- height: this.getHostElement().clientHeight,
279
+ width: this.getHostElement().offsetWidth,
280
+ height: this.getHostElement().offsetHeight,
105
281
  left: this.getHostElement().offsetLeft,
106
282
  top: this.getHostElement().offsetTop,
107
283
  };
108
284
  }
109
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTabItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXTabItemComponent, isStandalone: true, selector: "ax-tab-item", inputs: { disabled: "disabled", text: "text", key: "key", headerTemplate: "headerTemplate", active: "active" }, outputs: { disabledChange: "disabledChange", onClick: "onClick", onBlur: "onBlur", onFocus: "onFocus", activeChange: "activeChange" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "click": "__hostClick($event)" } }, providers: [{ provide: AXComponent, useExisting: AXTabItemComponent }], viewQueries: [{ propertyName: "template", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
285
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
286
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXTabItemComponent, isStandalone: true, selector: "ax-tab-item", inputs: { disabled: "disabled", text: "text", key: "key", headerTemplate: "headerTemplate", active: "active" }, outputs: { disabledChange: "disabledChange", onClick: "onClick", onBlur: "onBlur", onFocus: "onFocus", activeChange: "activeChange" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "click": "__hostClick($event)" } }, providers: [{ provide: AXComponent, useExisting: AXTabItemComponent }], queries: [{ propertyName: "_panel", first: true, predicate: AXTabPanelDirective, descendants: true }], viewQueries: [{ propertyName: "_contentTemplate", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.AXDragDirective, inputs: ["dragStartDelay", "dragStartDelay", "dragClonedTemplate", "dragClonedTemplate"] }], ngImport: i0, template: `
111
287
  @if (headerTemplate) {
112
288
  <ng-container
113
289
  [ngTemplateOutlet]="headerTemplate"
@@ -121,8 +297,8 @@ class AXTabItemComponent extends MXInteractiveComponent {
121
297
  }"
122
298
  ></ng-container>
123
299
  } @else {
124
- <div>
125
- <ng-content select="ax-prefix"></ng-content>
300
+ <ng-content select="ax-prefix"></ng-content>
301
+ <div class="ax-tab-item-header">
126
302
  <div class="ax-tab-item-text">{{ text }}</div>
127
303
  </div>
128
304
  <ng-content select="ax-suffix"></ng-content>
@@ -132,10 +308,16 @@ class AXTabItemComponent extends MXInteractiveComponent {
132
308
  </ng-template>
133
309
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None }); }
134
310
  }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTabItemComponent, decorators: [{
311
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabItemComponent, decorators: [{
136
312
  type: Component,
137
313
  args: [{
138
314
  selector: 'ax-tab-item',
315
+ hostDirectives: [
316
+ {
317
+ directive: AXDragDirective,
318
+ inputs: ['dragStartDelay', 'dragClonedTemplate'],
319
+ },
320
+ ],
139
321
  template: `
140
322
  @if (headerTemplate) {
141
323
  <ng-container
@@ -150,8 +332,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
150
332
  }"
151
333
  ></ng-container>
152
334
  } @else {
153
- <div>
154
- <ng-content select="ax-prefix"></ng-content>
335
+ <ng-content select="ax-prefix"></ng-content>
336
+ <div class="ax-tab-item-header">
155
337
  <div class="ax-tab-item-text">{{ text }}</div>
156
338
  </div>
157
339
  <ng-content select="ax-suffix"></ng-content>
@@ -167,11 +349,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
167
349
  imports: [NgTemplateOutlet],
168
350
  providers: [{ provide: AXComponent, useExisting: AXTabItemComponent }],
169
351
  }]
170
- }], propDecorators: { text: [{
352
+ }], ctorParameters: () => [], propDecorators: { text: [{
171
353
  type: Input
172
354
  }], key: [{
173
355
  type: Input
174
- }], template: [{
356
+ }], _panel: [{
357
+ type: ContentChild,
358
+ args: [AXTabPanelDirective]
359
+ }], _contentTemplate: [{
175
360
  type: ViewChild,
176
361
  args: ['content']
177
362
  }], headerTemplate: [{
@@ -189,15 +374,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
189
374
 
190
375
  class AXTabStripChangedEvent extends AXEvent {
191
376
  }
377
+ /** Event emitted when tab items are reordered via drag and drop. */
378
+ class AXTabsReorderedEvent extends AXEvent {
379
+ }
192
380
 
193
381
  /**
194
382
  * @category
195
383
  * A component that serves as a container for tab items.
196
384
  */
197
385
  class AXTabsComponent extends MXBaseComponent {
386
+ /**
387
+ * The `AXTabContentDirective` associated with the tab.
388
+ */
389
+ set content(value) {
390
+ this._content = value;
391
+ if (value && this._selectedItem) {
392
+ this._renderContent(this._selectedItem);
393
+ }
394
+ }
395
+ get content() {
396
+ return this._content;
397
+ }
398
+ get items() {
399
+ const tabs = this._contentTabs?.toArray() ?? [];
400
+ if (!isPlatformBrowser(this.platformId) || tabs.length < 2) {
401
+ return tabs;
402
+ }
403
+ return [...tabs].sort((a, b) => a.getHostElement().compareDocumentPosition(b.getHostElement()) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1);
404
+ }
405
+ /** @ignore */
406
+ get selectedIndex() {
407
+ return this.items.indexOf(this._selectedItem);
408
+ }
409
+ /** @ignore */
410
+ get selectedItem() {
411
+ return this._selectedItem;
412
+ }
413
+ #reorderableEffect;
414
+ #orientationEffect;
415
+ #tabChange;
416
+ #renderModeEffect;
417
+ /** @ignore */
418
+ get __hostClass() {
419
+ const cssClasses = [];
420
+ cssClasses.push(`ax-${this.look()}`);
421
+ cssClasses.push(`ax-${this.location()}`);
422
+ if (this.fitParent)
423
+ cssClasses.push(`ax-tabs-fit`);
424
+ if (this.reorderable())
425
+ cssClasses.push(`ax-tabs-reorderable`);
426
+ if (this.stacked())
427
+ cssClasses.push(`ax-tabs-stacked`);
428
+ return cssClasses;
429
+ }
198
430
  constructor() {
199
- super(...arguments);
431
+ super();
200
432
  this.renderer = inject(Renderer2);
433
+ this.destroyRef = inject(DestroyRef);
434
+ this._dropList = inject(AXDropListDirective, { self: true });
435
+ this._scroll = inject(AXHorizontalScrollDirective, { self: true });
201
436
  /**
202
437
  * Sets the appearance style of the tab component.
203
438
  * @defaultValue 'default'
@@ -210,6 +445,38 @@ class AXTabsComponent extends MXBaseComponent {
210
445
  */
211
446
  this.location = input('bottom', /* @ts-ignore */
212
447
  ...(ngDevMode ? [{ debugName: "location" }] : /* istanbul ignore next */ []));
448
+ /**
449
+ * Enables drag-and-drop reordering of tab items. Reordering starts only after the user
450
+ * presses and holds a tab for {@link reorderDelay} milliseconds; a quick swipe without
451
+ * holding scrolls the strip instead.
452
+ * @defaultValue false
453
+ */
454
+ this.reorderable = input(false, { ...(ngDevMode ? { debugName: "reorderable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
455
+ /**
456
+ * Press-and-hold duration in milliseconds before a tab can be dragged to reorder.
457
+ * After this delay the cursor changes to grab while the pointer is still held. Moving before
458
+ * the delay ends cancels reorder and allows swipe or pan scrolling instead.
459
+ * @defaultValue 250
460
+ */
461
+ this.reorderDelay = input(250, /* @ts-ignore */
462
+ ...(ngDevMode ? [{ debugName: "reorderDelay" }] : /* istanbul ignore next */ []));
463
+ /**
464
+ * Controls how tab content is rendered in the DOM.
465
+ *
466
+ * - `default` — Only the active tab's content is in the DOM. Switching tabs replaces content and does not preserve state.
467
+ * - `all-tabs` — All tab contents are rendered and kept in the DOM. State is preserved; higher memory use.
468
+ * - `on-demand` — Only the active tab is rendered initially. Other tabs are rendered on first visit and then kept; state is preserved.
469
+ *
470
+ * @defaultValue 'default'
471
+ */
472
+ this.renderMode = input('default', /* @ts-ignore */
473
+ ...(ngDevMode ? [{ debugName: "renderMode" }] : /* istanbul ignore next */ []));
474
+ /**
475
+ * When true, stacks prefix, title, and suffix vertically inside each tab header
476
+ * instead of arranging them in a horizontal row.
477
+ * @defaultValue false
478
+ */
479
+ this.stacked = input(false, { ...(ngDevMode ? { debugName: "stacked" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
213
480
  /**
214
481
  * @defaultValue 'false'
215
482
  * Specifies whether the component should resize to fit its parent container.
@@ -226,43 +493,78 @@ class AXTabsComponent extends MXBaseComponent {
226
493
  this.platformId = inject(PLATFORM_ID);
227
494
  /** @ignore */
228
495
  this._isUserInteraction = false;
496
+ /** @ignore */
497
+ this._clickSubscriptions = new WeakSet();
498
+ /** @ignore */
499
+ this._activeSubscriptions = new WeakSet();
229
500
  this.activeTab = signal(null, /* @ts-ignore */
230
501
  ...(ngDevMode ? [{ debugName: "activeTab" }] : /* istanbul ignore next */ []));
502
+ this.viewReady = signal(false, /* @ts-ignore */
503
+ ...(ngDevMode ? [{ debugName: "viewReady" }] : /* istanbul ignore next */ []));
504
+ this.lastRenderMode = null;
505
+ this.#reorderableEffect = effect(() => {
506
+ this._dropList.isSortingDisabled.set(!this.reorderable());
507
+ this._syncDragState();
508
+ }, /* @ts-ignore */
509
+ ...(ngDevMode ? [{ debugName: "#reorderableEffect" }] : /* istanbul ignore next */ []));
510
+ this.#orientationEffect = effect(() => {
511
+ const loc = this.location();
512
+ const vertical = loc === 'start' || loc === 'end';
513
+ const orientation = vertical ? 'vertical' : 'horizontal';
514
+ this._dropList.orientation.set(orientation);
515
+ this._scroll.scrollOrientation.set(orientation);
516
+ }, /* @ts-ignore */
517
+ ...(ngDevMode ? [{ debugName: "#orientationEffect" }] : /* istanbul ignore next */ []));
231
518
  this.#tabChange = effect(() => {
232
- if (this.activeTab() && this.location()) {
233
- if (this.look() === 'with-line-color' || this.look() === 'with-line') {
234
- setTimeout(() => {
235
- this.setIndicatorPosition(this.activeTab());
236
- });
237
- }
519
+ const look = this.look();
520
+ const location = this.location();
521
+ const activeTab = this.activeTab();
522
+ if (!location || !activeTab || !this.viewReady()) {
523
+ return;
524
+ }
525
+ if (look !== 'with-line-color' && look !== 'with-line') {
526
+ return;
238
527
  }
528
+ this.scheduleIndicatorUpdate(activeTab);
239
529
  }, /* @ts-ignore */
240
530
  ...(ngDevMode ? [{ debugName: "#tabChange" }] : /* istanbul ignore next */ []));
531
+ this.#renderModeEffect = effect(() => {
532
+ const mode = this.renderMode();
533
+ const selected = this._selectedItem;
534
+ if (!selected || !this.content) {
535
+ return;
536
+ }
537
+ if (this.lastRenderMode !== null && this.lastRenderMode !== mode) {
538
+ this._renderContent(selected);
539
+ }
540
+ }, /* @ts-ignore */
541
+ ...(ngDevMode ? [{ debugName: "#renderModeEffect" }] : /* istanbul ignore next */ []));
241
542
  /**
242
543
  * @event
243
544
  */
244
545
  this.onActiveTabChanged = new EventEmitter();
245
- }
246
- get items() {
247
- return this._contentTabs.toArray();
248
- }
249
- /** @ignore */
250
- get selectedIndex() {
251
- return this.items.indexOf(this._selectedItem);
252
- }
253
- /** @ignore */
254
- get selectedItem() {
255
- return this._selectedItem;
256
- }
257
- #tabChange;
258
- /** @ignore */
259
- get __hostClass() {
260
- const cssClasses = [];
261
- cssClasses.push(`ax-${this.look()}`);
262
- cssClasses.push(`ax-${this.location()}`);
263
- if (this.fitParent)
264
- cssClasses.push(`ax-tabs-fit`);
265
- return cssClasses;
546
+ /**
547
+ * Emitted when tab items are reordered via drag and drop after the press-and-hold
548
+ * delay has elapsed and the user drags a tab to a new position.
549
+ * @event
550
+ */
551
+ this.onTabsReordered = new EventEmitter();
552
+ afterNextRender(() => {
553
+ this.viewReady.set(true);
554
+ this.scheduleIndicatorUpdate(this.activeTab());
555
+ });
556
+ const dropSub = this._dropList.dropListDropped.subscribe((event) => {
557
+ if (this.reorderable()) {
558
+ this._applyReorder(event);
559
+ }
560
+ });
561
+ const previewSub = this._dropList.sortPreviewChanged.subscribe(() => {
562
+ this.scheduleIndicatorUpdate(this.activeTab());
563
+ });
564
+ this.destroyRef.onDestroy(() => {
565
+ dropSub.unsubscribe();
566
+ previewSub.unsubscribe();
567
+ });
266
568
  }
267
569
  /** @ignore */
268
570
  ngAfterContentInit() {
@@ -278,15 +580,16 @@ class AXTabsComponent extends MXBaseComponent {
278
580
  this.changes = new ResizeObserver((entries) => {
279
581
  const activeTab = this.activeTab();
280
582
  if (entries[0].contentRect.width && activeTab) {
281
- this.renderer.setStyle(this.indicator().nativeElement, 'transition', 'none');
583
+ const indicatorEl = this.indicator()?.nativeElement;
584
+ if (!indicatorEl) {
585
+ return;
586
+ }
587
+ this.renderer.setStyle(indicatorEl, 'transition', 'none');
282
588
  this.setIndicatorPosition(activeTab);
283
- this.renderer.removeStyle(this.indicator().nativeElement, 'transition');
589
+ this.renderer.removeStyle(indicatorEl, 'transition');
284
590
  }
285
591
  });
286
- const activeTab = this.activeTab();
287
- if (activeTab)
288
- this.changes.observe(activeTab.getHostElement());
289
- this.changes.observe(this.getHostElement());
592
+ this._observeActiveTabForResize(this.activeTab());
290
593
  });
291
594
  }
292
595
  }
@@ -298,12 +601,109 @@ class AXTabsComponent extends MXBaseComponent {
298
601
  const selected = this.items.find((c) => c.active) || this.items[0];
299
602
  this.select(selected);
300
603
  this.items.forEach((c) => {
301
- if (!c.onClick.length) {
604
+ if (!this._clickSubscriptions.has(c)) {
605
+ this._clickSubscriptions.add(c);
302
606
  c.onClick.subscribe((t) => {
303
607
  this._isUserInteraction = t.nativeEvent?.isTrusted;
304
608
  this.select(c);
305
609
  });
306
610
  }
611
+ if (!this._activeSubscriptions.has(c)) {
612
+ this._activeSubscriptions.add(c);
613
+ c.activeChange.subscribe((isActive) => {
614
+ if (!isActive) {
615
+ return;
616
+ }
617
+ if (this._selectedItem !== c) {
618
+ this.select(c);
619
+ return;
620
+ }
621
+ this.activeTab.set(c);
622
+ this.scheduleIndicatorUpdate(c);
623
+ });
624
+ }
625
+ });
626
+ this._syncDragState();
627
+ }
628
+ /** @ignore */
629
+ _syncDragState() {
630
+ const reorderEnabled = this.reorderable();
631
+ const vertical = this.location() === 'start' || this.location() === 'end';
632
+ const touchAction = vertical ? 'pan-x' : 'pan-y';
633
+ this.items.forEach((tab) => {
634
+ tab.setReorderEnabled(reorderEnabled, this.reorderDelay(), touchAction);
635
+ if (!isPlatformBrowser(this.platformId)) {
636
+ return;
637
+ }
638
+ if (reorderEnabled) {
639
+ this.renderer.setStyle(tab.getHostElement(), 'transition-property', 'transform, opacity, translate, background-color, color');
640
+ }
641
+ else {
642
+ this.renderer.removeStyle(tab.getHostElement(), 'transition-property');
643
+ }
644
+ });
645
+ }
646
+ /** @ignore */
647
+ _applyReorder(event) {
648
+ const { previousIndex, currentIndex, item } = event;
649
+ if (previousIndex === currentIndex || previousIndex < 0 || currentIndex < 0) {
650
+ return;
651
+ }
652
+ const movedEl = item.element();
653
+ const parent = movedEl.parentElement;
654
+ if (!parent) {
655
+ return;
656
+ }
657
+ const tabsBeforeMove = this.items.map((t) => t.getHostElement());
658
+ const tabItem = this.items[previousIndex];
659
+ const indicator = this.indicator()?.nativeElement;
660
+ let refNode = null;
661
+ if (currentIndex >= tabsBeforeMove.length - 1) {
662
+ refNode = indicator?.parentElement === parent ? indicator : null;
663
+ }
664
+ else {
665
+ const refIndex = currentIndex > previousIndex ? currentIndex + 1 : currentIndex;
666
+ refNode = tabsBeforeMove[refIndex] ?? (indicator?.parentElement === parent ? indicator : null);
667
+ }
668
+ if (refNode) {
669
+ this.renderer.insertBefore(parent, movedEl, refNode);
670
+ }
671
+ else {
672
+ this.renderer.appendChild(parent, movedEl);
673
+ }
674
+ this.zone.run(() => {
675
+ this.onTabsReordered.emit({
676
+ component: this,
677
+ tab: tabItem,
678
+ previousIndex,
679
+ currentIndex,
680
+ });
681
+ });
682
+ this.scheduleIndicatorUpdate(this.activeTab());
683
+ setTimeout(() => this.scheduleIndicatorUpdate(this.activeTab()), 200);
684
+ }
685
+ /** @ignore */
686
+ _observeActiveTabForResize(tab) {
687
+ if (!this.changes || !isPlatformBrowser(this.platformId)) {
688
+ return;
689
+ }
690
+ this.changes.disconnect();
691
+ if (tab) {
692
+ this.changes.observe(tab.getHostElement());
693
+ }
694
+ this.changes.observe(this.getHostElement());
695
+ }
696
+ /** @ignore */
697
+ scheduleIndicatorUpdate(tab) {
698
+ if (!tab || !this.viewReady()) {
699
+ return;
700
+ }
701
+ const look = this.look();
702
+ if (look !== 'with-line' && look !== 'with-line-color') {
703
+ return;
704
+ }
705
+ queueMicrotask(() => {
706
+ this.setIndicatorPosition(tab);
307
707
  });
308
708
  }
309
709
  /**
@@ -313,17 +713,18 @@ class AXTabsComponent extends MXBaseComponent {
313
713
  */
314
714
  select(tab) {
315
715
  const tabItem = typeof tab == 'number' ? this.items[tab] : tab;
716
+ if (!tabItem) {
717
+ return;
718
+ }
719
+ const isSameTab = this._selectedItem === tabItem;
316
720
  this.activeTab.set(tabItem);
317
- //
318
- if (!tabItem || this.selectedItem == tabItem)
721
+ this._renderContent(tabItem);
722
+ if (isSameTab) {
319
723
  return;
724
+ }
320
725
  this._selectedItem = tabItem;
321
- //
322
726
  this.items.forEach((c) => (c.active = false));
323
727
  tabItem.active = true;
324
- if (this.content) {
325
- this.content.portal = tabItem.template;
326
- }
327
728
  this.cdr.markForCheck();
328
729
  this.onActiveTabChanged.emit({
329
730
  component: this,
@@ -332,10 +733,60 @@ class AXTabsComponent extends MXBaseComponent {
332
733
  index: this.selectedIndex,
333
734
  });
334
735
  this._isUserInteraction = false;
736
+ this._observeActiveTabForResize(tabItem);
737
+ this.scheduleIndicatorUpdate(tabItem);
738
+ }
739
+ /** @ignore */
740
+ _renderContent(tabItem) {
741
+ if (!this.content || !tabItem?.template) {
742
+ return;
743
+ }
744
+ const mode = this.renderMode();
745
+ const templates = this.items.map((item) => item.template).filter(Boolean);
746
+ if (this.lastRenderMode !== null && this.lastRenderMode !== mode) {
747
+ this.content.reset();
748
+ }
749
+ this.lastRenderMode = mode;
750
+ if (mode === 'default') {
751
+ this.content.activate(tabItem.template, mode);
752
+ return;
753
+ }
754
+ this.content.sync(templates);
755
+ if (mode === 'all-tabs') {
756
+ this.content.preload(templates);
757
+ }
758
+ this.content.activate(tabItem.template, mode);
759
+ }
760
+ /** @ignore */
761
+ getTabIndicatorStats(tabItem) {
762
+ const tabEl = tabItem.getHostElement();
763
+ const stats = tabItem.getStats();
764
+ if (!isPlatformBrowser(this.platformId)) {
765
+ return stats;
766
+ }
767
+ const transform = tabEl.style.transform || getComputedStyle(tabEl).transform;
768
+ if (!transform || transform === 'none') {
769
+ return stats;
770
+ }
771
+ try {
772
+ const matrix = new DOMMatrixReadOnly(transform);
773
+ return {
774
+ ...stats,
775
+ left: stats.left + matrix.m41,
776
+ top: stats.top + matrix.m42,
777
+ };
778
+ }
779
+ catch {
780
+ return stats;
781
+ }
335
782
  }
336
783
  setIndicatorPosition(tabItem) {
337
- const indicatorStyle = this.indicator().nativeElement.style;
338
- const itemStats = tabItem.getStats();
784
+ const indicatorEl = this.indicator()?.nativeElement;
785
+ if (!indicatorEl) {
786
+ return;
787
+ }
788
+ const itemStats = this.getTabIndicatorStats(tabItem);
789
+ const indicatorStyle = indicatorEl.style;
339
790
  if (this.location() === 'top' || this.location() === 'bottom') {
340
791
  indicatorStyle.width = `${itemStats.width}px`;
341
792
  indicatorStyle.height = `var(--ax-comp-tabs-indicator-size)`;
@@ -355,6 +806,8 @@ class AXTabsComponent extends MXBaseComponent {
355
806
  indicatorStyle.height = `${itemStats.height}px`;
356
807
  indicatorStyle.top = `${itemStats.top}px`;
357
808
  indicatorStyle.bottom = `unset`;
809
+ indicatorStyle.left = `unset`;
810
+ indicatorStyle.right = `unset`;
358
811
  if (this.location() === 'start') {
359
812
  indicatorStyle.insetInlineStart = `0px`;
360
813
  indicatorStyle.insetInlineEnd = `unset`;
@@ -365,20 +818,16 @@ class AXTabsComponent extends MXBaseComponent {
365
818
  }
366
819
  }
367
820
  }
368
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
369
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", type: AXTabsComponent, isStandalone: true, selector: "ax-tabs", inputs: { look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, fitParent: { classPropertyName: "fitParent", publicName: "fitParent", isSignal: false, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: false, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onActiveTabChanged: "onActiveTabChanged" }, host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXComponent, useExisting: AXTabsComponent }], queries: [{ propertyName: "_contentTabs", predicate: AXTabItemComponent }], viewQueries: [{ propertyName: "indicator", first: true, predicate: ["indicator"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `<div class="ax-tabs-scroll-area">
370
- <ng-content select="ax-tab-item"></ng-content><span class="ax-tab-indicator" #indicator></span>
371
- </div>`, isInline: true, styles: ["@layer properties;@layer components{ax-tabs{position:relative;display:flex;width:100%;gap:calc(var(--spacing, .25rem) * 2);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--ax-comp-tabs-indicator-size: 2px}ax-tabs .ax-tabs-scroll-area{position:relative;display:inline-flex;min-width:100%;flex:none;gap:calc(var(--spacing, .25rem) * 2)}ax-tabs .ax-tab-indicator{display:none}ax-tabs ax-tab-item{position:relative;display:flex;cursor:pointer;justify-content:space-between;border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-comp-tabs-bg-color,inherit));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));-webkit-user-select:none;user-select:none}ax-tabs ax-tab-item:hover{background-color:rgba(var(--ax-comp-tabs-hover-bg-color,inherit))}ax-tabs ax-tab-item:hover{color:rgba(var(--ax-comp-tabs-hover-text-color,inherit))}ax-tabs ax-tab-item.ax-state-active{background-color:rgba(var(--ax-comp-tabs-active-bg-color,inherit));color:rgba(var(--ax-comp-tabs-active-text-color,inherit))}ax-tabs ax-tab-item .ax-tab-item-text{display:inline-flex;flex-wrap:nowrap;padding-inline:calc(var(--spacing, .25rem) * 2)}ax-tabs ax-tab-item .ax-tab-item-text{white-space:nowrap}ax-tabs.ax-tabs-fit ax-tab-item{flex:1}ax-tabs.ax-top,ax-tabs.ax-bottom{flex-direction:row;overflow-x:auto;overflow-y:hidden}:is(ax-tabs.ax-top,ax-tabs.ax-bottom) .ax-tabs-scroll-area{flex-direction:row}:is(ax-tabs.ax-top,ax-tabs.ax-bottom) ax-tab-item{align-items:center;justify-content:center}ax-tabs.ax-start,ax-tabs.ax-end{flex-direction:column;overflow-x:hidden;overflow-y:auto}:is(ax-tabs.ax-start,ax-tabs.ax-end) .ax-tabs-scroll-area{flex-direction:column}:is(ax-tabs.ax-start,ax-tabs.ax-end) ax-tab-item{width:100%}ax-tabs.ax-start{align-items:flex-start}ax-tabs.ax-end{align-items:flex-end}ax-tabs.ax-classic{--ax-comp-tabs-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-tabs-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-surface);--ax-comp-tabs-hover-text-color: var(--ax-sys-color-on-surface);--ax-comp-tabs-active-bg-color: var(--ax-sys-color-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-surface)}ax-tabs.ax-classic ax-tab-item{border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-tabs.ax-classic.ax-top,ax-tabs.ax-classic.ax-bottom{padding-inline:calc(var(--spacing, .25rem) * 4)}ax-tabs.ax-classic.ax-start,ax-tabs.ax-classic.ax-end{padding-block:calc(var(--spacing, .25rem) * 2)}ax-tabs.ax-classic.ax-top{border-top-style:var(--tw-border-style);border-top-width:1px}ax-tabs.ax-classic.ax-top ax-tab-item{border-top-left-radius:0;border-top-right-radius:0;border-top-color:transparent}ax-tabs.ax-classic.ax-bottom{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}ax-tabs.ax-classic.ax-bottom ax-tab-item{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-color:transparent}ax-tabs.ax-classic.ax-start{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}ax-tabs.ax-classic.ax-start ax-tab-item{border-start-start-radius:0;border-end-start-radius:0;border-inline-start-color:transparent}ax-tabs.ax-classic.ax-end{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}ax-tabs.ax-classic.ax-end ax-tab-item{border-start-end-radius:0;border-end-end-radius:0;border-inline-end-color:transparent}ax-tabs.ax-default{--ax-comp-tabs-active-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-lightest-surface);border-radius:var(--radius-xl, .75rem);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing, .25rem) * 1)}ax-tabs.ax-default:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){--ax-comp-tabs-active-bg-color: var(--ax-sys-color-darkest-surface)}ax-tabs.ax-default:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-darkest-surface)}ax-tabs.ax-default ax-tab-item.ax-state-active{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}ax-tabs.ax-pills-color{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-tabs-active-bg-color: var(--ax-sys-color-primary-surface), .2}ax-tabs.ax-pills{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-tabs-hover-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-tabs-active-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-lighter-surface)}ax-tabs.ax-with-line-color{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-primary-surface), .05;--ax-comp-tabs-active-bg-color: var(--ax-sys-color-primary-surface), .1}ax-tabs.ax-with-line,ax-tabs.ax-with-line-color{--ax-comp-tabs-indicator-color: var(--ax-sys-color-primary-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-primary-surface)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-tab-item.ax-state-active ax-icon{opacity:100%!important}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) .ax-tab-indicator{position:absolute;z-index:1;display:block;background-color:rgba(var(--ax-comp-tabs-indicator-color))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom) .ax-tab-indicator{height:3px;width:calc(var(--spacing, .25rem) * 0);transition-property:width,left;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end) .ax-tab-indicator{height:calc(var(--spacing, .25rem) * 0);transition-property:height,top;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end) ax-tab-item{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top .ax-tab-indicator{top:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top .ax-tabs-scroll-area{box-shadow:inset 0 var(--ax-comp-tabs-indicator-size) 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top ax-tab-item{border-top-left-radius:0;border-top-right-radius:0;border-top-style:var(--tw-border-style);border-top-width:var(--ax-comp-tabs-indicator-size);border-top-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom .ax-tab-indicator{bottom:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom .ax-tabs-scroll-area{box-shadow:inset 0 calc(var(--ax-comp-tabs-indicator-size) * -1) 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom ax-tab-item{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-style:var(--tw-border-style);border-bottom-width:var(--ax-comp-tabs-indicator-size);border-bottom-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start .ax-tab-indicator{inset-inline-start:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start .ax-tabs-scroll-area{box-shadow:inset var(--ax-comp-tabs-indicator-size) 0 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start ax-tab-item{border-start-start-radius:0;border-end-start-radius:0;border-inline-start-style:var(--tw-border-style);border-inline-start-width:var(--ax-comp-tabs-indicator-size);border-inline-start-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end .ax-tab-indicator{inset-inline-end:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end .ax-tabs-scroll-area{box-shadow:inset calc(var(--ax-comp-tabs-indicator-size) * -1) 0 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end ax-tab-item{border-start-end-radius:0;border-end-end-radius:0;border-inline-end-style:var(--tw-border-style);border-inline-end-width:var(--ax-comp-tabs-indicator-size);border-inline-end-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-icon{opacity:60%}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-suffix{padding-inline-end:calc(var(--spacing, .25rem) * 2)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-prefix{padding-inline-start:calc(var(--spacing, .25rem) * 2)}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
821
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
822
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.6", type: AXTabsComponent, isStandalone: true, selector: "ax-tabs", inputs: { look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, reorderable: { classPropertyName: "reorderable", publicName: "reorderable", isSignal: true, isRequired: false, transformFunction: null }, reorderDelay: { classPropertyName: "reorderDelay", publicName: "reorderDelay", isSignal: true, isRequired: false, transformFunction: null }, renderMode: { classPropertyName: "renderMode", publicName: "renderMode", isSignal: true, isRequired: false, transformFunction: null }, stacked: { classPropertyName: "stacked", publicName: "stacked", isSignal: true, isRequired: false, transformFunction: null }, fitParent: { classPropertyName: "fitParent", publicName: "fitParent", isSignal: false, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: false, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onActiveTabChanged: "onActiveTabChanged", onTabsReordered: "onTabsReordered" }, host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXComponent, useExisting: AXTabsComponent }], queries: [{ propertyName: "_contentTabs", predicate: AXTabItemComponent }], viewQueries: [{ propertyName: "indicator", first: true, predicate: ["indicator"], descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.AXDropListDirective }, { directive: i2.AXHorizontalScrollDirective }], ngImport: i0, template: `<ng-content select="ax-tab-item"></ng-content><span class="ax-tab-indicator" #indicator></span>`, isInline: true, styles: ["@layer properties;@layer components{ax-tabs{position:relative;display:inline-flex;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex:none;gap:calc(var(--spacing, .25rem) * 2);overscroll-behavior:contain;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--ax-comp-tabs-indicator-size: 2px;-ms-overflow-style:none;scrollbar-width:none}ax-tabs::-webkit-scrollbar{display:none}ax-tabs.ax-tabs-reorderable ax-tab-item.ax-dragging{cursor:grabbing}ax-tabs .ax-tab-indicator{display:none}ax-tabs ax-tab-item{position:relative;display:flex;min-width:calc(var(--spacing, .25rem) * 0);cursor:pointer;flex-wrap:nowrap;align-items:center;justify-content:flex-start;border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-comp-tabs-bg-color,inherit));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));-webkit-user-select:none;user-select:none}ax-tabs ax-tab-item:hover{background-color:rgba(var(--ax-comp-tabs-hover-bg-color,inherit))}ax-tabs ax-tab-item:hover{color:rgba(var(--ax-comp-tabs-hover-text-color,inherit))}ax-tabs ax-tab-item.ax-state-active{background-color:rgba(var(--ax-comp-tabs-active-bg-color,inherit));color:rgba(var(--ax-comp-tabs-active-text-color,inherit))}ax-tabs ax-tab-item.ax-dragging{background-color:rgba(var(--ax-comp-tabs-bg-color,inherit));color:rgba(var(--ax-comp-tabs-text-color,inherit))}ax-tabs ax-tab-item .ax-tab-item-header{display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex-wrap:nowrap;align-items:center}ax-tabs ax-tab-item ax-prefix,ax-tabs ax-tab-item ax-suffix{display:flex;flex-shrink:0;align-items:center}ax-tabs ax-tab-item ax-suffix{margin-inline-start:auto}ax-tabs ax-tab-item .ax-tab-item-text{flex-shrink:0;padding-inline:calc(var(--spacing, .25rem) * 2);white-space:nowrap}ax-tabs.ax-tabs-fit{width:100%;min-width:100%}ax-tabs.ax-tabs-fit ax-tab-item{flex:1}ax-tabs.ax-top,ax-tabs.ax-bottom{flex-direction:row;overflow-x:auto;overflow-y:hidden}:is(ax-tabs.ax-top,ax-tabs.ax-bottom) ax-tab-item{flex-shrink:0;align-items:center;justify-content:center}ax-tabs.ax-start,ax-tabs.ax-end{flex-direction:column;overflow-x:hidden;overflow-y:auto}:is(ax-tabs.ax-start,ax-tabs.ax-end) ax-tab-item{width:100%}ax-tabs.ax-start{align-items:flex-start}ax-tabs.ax-end{align-items:flex-end}ax-tabs.ax-classic{--ax-comp-tabs-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-tabs-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-surface);--ax-comp-tabs-hover-text-color: var(--ax-sys-color-on-surface);--ax-comp-tabs-active-bg-color: var(--ax-sys-color-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-surface)}ax-tabs.ax-classic ax-tab-item{border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-tabs.ax-classic.ax-top,ax-tabs.ax-classic.ax-bottom{padding-inline:calc(var(--spacing, .25rem) * 4)}ax-tabs.ax-classic.ax-start,ax-tabs.ax-classic.ax-end{padding-block:calc(var(--spacing, .25rem) * 2)}ax-tabs.ax-classic.ax-top{border-top-style:var(--tw-border-style);border-top-width:1px}ax-tabs.ax-classic.ax-top ax-tab-item{border-top-left-radius:0;border-top-right-radius:0;border-top-color:transparent}ax-tabs.ax-classic.ax-bottom{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}ax-tabs.ax-classic.ax-bottom ax-tab-item{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-color:transparent}ax-tabs.ax-classic.ax-start{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}ax-tabs.ax-classic.ax-start ax-tab-item{border-start-start-radius:0;border-end-start-radius:0;border-inline-start-color:transparent}ax-tabs.ax-classic.ax-end{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}ax-tabs.ax-classic.ax-end ax-tab-item{border-start-end-radius:0;border-end-end-radius:0;border-inline-end-color:transparent}ax-tabs.ax-default{--ax-comp-tabs-active-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-lightest-surface);border-radius:var(--radius-xl, .75rem);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing, .25rem) * 1)}ax-tabs.ax-default:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){--ax-comp-tabs-active-bg-color: var(--ax-sys-color-darkest-surface)}ax-tabs.ax-default:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-darkest-surface)}ax-tabs.ax-default ax-tab-item.ax-state-active{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}ax-tabs.ax-pills-color{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-tabs-active-bg-color: var(--ax-sys-color-primary-surface), .2}ax-tabs.ax-pills{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-tabs-hover-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-tabs-active-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-lighter-surface)}ax-tabs.ax-with-line-color{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-primary-surface), .05;--ax-comp-tabs-active-bg-color: var(--ax-sys-color-primary-surface), .1}ax-tabs.ax-with-line,ax-tabs.ax-with-line-color{--ax-comp-tabs-indicator-color: var(--ax-sys-color-primary-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-primary-surface)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-tab-item.ax-state-active ax-icon{opacity:100%!important}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) .ax-tab-indicator{position:absolute;z-index:1;display:block;background-color:rgba(var(--ax-comp-tabs-indicator-color))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom) .ax-tab-indicator{height:3px;width:calc(var(--spacing, .25rem) * 0);transition-property:width,left;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end) .ax-tab-indicator{height:calc(var(--spacing, .25rem) * 0);transition-property:height,top;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end) ax-tab-item{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top{box-shadow:inset 0 var(--ax-comp-tabs-indicator-size) 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top .ax-tab-indicator{top:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top ax-tab-item{border-top-left-radius:0;border-top-right-radius:0;border-top-style:var(--tw-border-style);border-top-width:var(--ax-comp-tabs-indicator-size);border-top-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom{box-shadow:inset 0 calc(var(--ax-comp-tabs-indicator-size) * -1) 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom .ax-tab-indicator{bottom:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom ax-tab-item{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-style:var(--tw-border-style);border-bottom-width:var(--ax-comp-tabs-indicator-size);border-bottom-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start{box-shadow:inset var(--ax-comp-tabs-indicator-size) 0 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start .ax-tab-indicator{inset-inline-start:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start ax-tab-item{border-start-start-radius:0;border-end-start-radius:0;border-inline-start-style:var(--tw-border-style);border-inline-start-width:var(--ax-comp-tabs-indicator-size);border-inline-start-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end{box-shadow:inset calc(var(--ax-comp-tabs-indicator-size) * -1) 0 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end .ax-tab-indicator{inset-inline-end:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end ax-tab-item{border-start-end-radius:0;border-end-end-radius:0;border-inline-end-style:var(--tw-border-style);border-inline-end-width:var(--ax-comp-tabs-indicator-size);border-inline-end-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-icon{opacity:60%}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-suffix{padding-inline-end:calc(var(--spacing, .25rem) * 2)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-prefix{padding-inline-start:calc(var(--spacing, .25rem) * 2)}ax-tabs.ax-tabs-stacked ax-tab-item{flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 2)}ax-tabs.ax-tabs-stacked ax-tab-item .ax-tab-item-header{flex-direction:column;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}ax-tabs.ax-tabs-stacked ax-tab-item .ax-tab-item-text{padding-inline:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-tabs-stacked.ax-with-line,ax-tabs.ax-tabs-stacked.ax-with-line-color) ax-tab-item ax-suffix{padding-inline-end:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-tabs-stacked.ax-with-line,ax-tabs.ax-tabs-stacked.ax-with-line-color) ax-tab-item ax-prefix{padding-inline-start:calc(var(--spacing, .25rem) * 0)}ax-tab-item.ax-drag-preview{border-radius:var(--ax-sys-border-radius);--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-tab-content-pane{display:contents}.ax-tab-content-pane[hidden]{display:none}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], encapsulation: i0.ViewEncapsulation.None }); }
372
823
  }
373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTabsComponent, decorators: [{
824
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabsComponent, decorators: [{
374
825
  type: Component,
375
- args: [{ selector: 'ax-tabs', template: `<div class="ax-tabs-scroll-area">
376
- <ng-content select="ax-tab-item"></ng-content><span class="ax-tab-indicator" #indicator></span>
377
- </div>`, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXTabsComponent }], styles: ["@layer properties;@layer components{ax-tabs{position:relative;display:flex;width:100%;gap:calc(var(--spacing, .25rem) * 2);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--ax-comp-tabs-indicator-size: 2px}ax-tabs .ax-tabs-scroll-area{position:relative;display:inline-flex;min-width:100%;flex:none;gap:calc(var(--spacing, .25rem) * 2)}ax-tabs .ax-tab-indicator{display:none}ax-tabs ax-tab-item{position:relative;display:flex;cursor:pointer;justify-content:space-between;border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-comp-tabs-bg-color,inherit));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));-webkit-user-select:none;user-select:none}ax-tabs ax-tab-item:hover{background-color:rgba(var(--ax-comp-tabs-hover-bg-color,inherit))}ax-tabs ax-tab-item:hover{color:rgba(var(--ax-comp-tabs-hover-text-color,inherit))}ax-tabs ax-tab-item.ax-state-active{background-color:rgba(var(--ax-comp-tabs-active-bg-color,inherit));color:rgba(var(--ax-comp-tabs-active-text-color,inherit))}ax-tabs ax-tab-item .ax-tab-item-text{display:inline-flex;flex-wrap:nowrap;padding-inline:calc(var(--spacing, .25rem) * 2)}ax-tabs ax-tab-item .ax-tab-item-text{white-space:nowrap}ax-tabs.ax-tabs-fit ax-tab-item{flex:1}ax-tabs.ax-top,ax-tabs.ax-bottom{flex-direction:row;overflow-x:auto;overflow-y:hidden}:is(ax-tabs.ax-top,ax-tabs.ax-bottom) .ax-tabs-scroll-area{flex-direction:row}:is(ax-tabs.ax-top,ax-tabs.ax-bottom) ax-tab-item{align-items:center;justify-content:center}ax-tabs.ax-start,ax-tabs.ax-end{flex-direction:column;overflow-x:hidden;overflow-y:auto}:is(ax-tabs.ax-start,ax-tabs.ax-end) .ax-tabs-scroll-area{flex-direction:column}:is(ax-tabs.ax-start,ax-tabs.ax-end) ax-tab-item{width:100%}ax-tabs.ax-start{align-items:flex-start}ax-tabs.ax-end{align-items:flex-end}ax-tabs.ax-classic{--ax-comp-tabs-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-tabs-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-surface);--ax-comp-tabs-hover-text-color: var(--ax-sys-color-on-surface);--ax-comp-tabs-active-bg-color: var(--ax-sys-color-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-surface)}ax-tabs.ax-classic ax-tab-item{border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-tabs.ax-classic.ax-top,ax-tabs.ax-classic.ax-bottom{padding-inline:calc(var(--spacing, .25rem) * 4)}ax-tabs.ax-classic.ax-start,ax-tabs.ax-classic.ax-end{padding-block:calc(var(--spacing, .25rem) * 2)}ax-tabs.ax-classic.ax-top{border-top-style:var(--tw-border-style);border-top-width:1px}ax-tabs.ax-classic.ax-top ax-tab-item{border-top-left-radius:0;border-top-right-radius:0;border-top-color:transparent}ax-tabs.ax-classic.ax-bottom{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}ax-tabs.ax-classic.ax-bottom ax-tab-item{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-color:transparent}ax-tabs.ax-classic.ax-start{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}ax-tabs.ax-classic.ax-start ax-tab-item{border-start-start-radius:0;border-end-start-radius:0;border-inline-start-color:transparent}ax-tabs.ax-classic.ax-end{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}ax-tabs.ax-classic.ax-end ax-tab-item{border-start-end-radius:0;border-end-end-radius:0;border-inline-end-color:transparent}ax-tabs.ax-default{--ax-comp-tabs-active-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-lightest-surface);border-radius:var(--radius-xl, .75rem);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing, .25rem) * 1)}ax-tabs.ax-default:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){--ax-comp-tabs-active-bg-color: var(--ax-sys-color-darkest-surface)}ax-tabs.ax-default:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-darkest-surface)}ax-tabs.ax-default ax-tab-item.ax-state-active{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}ax-tabs.ax-pills-color{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-tabs-active-bg-color: var(--ax-sys-color-primary-surface), .2}ax-tabs.ax-pills{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-tabs-hover-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-tabs-active-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-lighter-surface)}ax-tabs.ax-with-line-color{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-primary-surface), .05;--ax-comp-tabs-active-bg-color: var(--ax-sys-color-primary-surface), .1}ax-tabs.ax-with-line,ax-tabs.ax-with-line-color{--ax-comp-tabs-indicator-color: var(--ax-sys-color-primary-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-primary-surface)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-tab-item.ax-state-active ax-icon{opacity:100%!important}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) .ax-tab-indicator{position:absolute;z-index:1;display:block;background-color:rgba(var(--ax-comp-tabs-indicator-color))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom) .ax-tab-indicator{height:3px;width:calc(var(--spacing, .25rem) * 0);transition-property:width,left;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end) .ax-tab-indicator{height:calc(var(--spacing, .25rem) * 0);transition-property:height,top;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end) ax-tab-item{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top .ax-tab-indicator{top:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top .ax-tabs-scroll-area{box-shadow:inset 0 var(--ax-comp-tabs-indicator-size) 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top ax-tab-item{border-top-left-radius:0;border-top-right-radius:0;border-top-style:var(--tw-border-style);border-top-width:var(--ax-comp-tabs-indicator-size);border-top-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom .ax-tab-indicator{bottom:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom .ax-tabs-scroll-area{box-shadow:inset 0 calc(var(--ax-comp-tabs-indicator-size) * -1) 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom ax-tab-item{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-style:var(--tw-border-style);border-bottom-width:var(--ax-comp-tabs-indicator-size);border-bottom-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start .ax-tab-indicator{inset-inline-start:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start .ax-tabs-scroll-area{box-shadow:inset var(--ax-comp-tabs-indicator-size) 0 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start ax-tab-item{border-start-start-radius:0;border-end-start-radius:0;border-inline-start-style:var(--tw-border-style);border-inline-start-width:var(--ax-comp-tabs-indicator-size);border-inline-start-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end .ax-tab-indicator{inset-inline-end:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end .ax-tabs-scroll-area{box-shadow:inset calc(var(--ax-comp-tabs-indicator-size) * -1) 0 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end ax-tab-item{border-start-end-radius:0;border-end-end-radius:0;border-inline-end-style:var(--tw-border-style);border-inline-end-width:var(--ax-comp-tabs-indicator-size);border-inline-end-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-icon{opacity:60%}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-suffix{padding-inline-end:calc(var(--spacing, .25rem) * 2)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-prefix{padding-inline-start:calc(var(--spacing, .25rem) * 2)}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
378
- }], propDecorators: { _contentTabs: [{
826
+ args: [{ selector: 'ax-tabs', hostDirectives: [AXDropListDirective, AXHorizontalScrollDirective], template: `<ng-content select="ax-tab-item"></ng-content><span class="ax-tab-indicator" #indicator></span>`, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: AXTabsComponent }], styles: ["@layer properties;@layer components{ax-tabs{position:relative;display:inline-flex;max-width:100%;min-width:calc(var(--spacing, .25rem) * 0);flex:none;gap:calc(var(--spacing, .25rem) * 2);overscroll-behavior:contain;--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);--ax-comp-tabs-indicator-size: 2px;-ms-overflow-style:none;scrollbar-width:none}ax-tabs::-webkit-scrollbar{display:none}ax-tabs.ax-tabs-reorderable ax-tab-item.ax-dragging{cursor:grabbing}ax-tabs .ax-tab-indicator{display:none}ax-tabs ax-tab-item{position:relative;display:flex;min-width:calc(var(--spacing, .25rem) * 0);cursor:pointer;flex-wrap:nowrap;align-items:center;justify-content:flex-start;border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-comp-tabs-bg-color,inherit));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));-webkit-user-select:none;user-select:none}ax-tabs ax-tab-item:hover{background-color:rgba(var(--ax-comp-tabs-hover-bg-color,inherit))}ax-tabs ax-tab-item:hover{color:rgba(var(--ax-comp-tabs-hover-text-color,inherit))}ax-tabs ax-tab-item.ax-state-active{background-color:rgba(var(--ax-comp-tabs-active-bg-color,inherit));color:rgba(var(--ax-comp-tabs-active-text-color,inherit))}ax-tabs ax-tab-item.ax-dragging{background-color:rgba(var(--ax-comp-tabs-bg-color,inherit));color:rgba(var(--ax-comp-tabs-text-color,inherit))}ax-tabs ax-tab-item .ax-tab-item-header{display:flex;min-width:calc(var(--spacing, .25rem) * 0);flex-wrap:nowrap;align-items:center}ax-tabs ax-tab-item ax-prefix,ax-tabs ax-tab-item ax-suffix{display:flex;flex-shrink:0;align-items:center}ax-tabs ax-tab-item ax-suffix{margin-inline-start:auto}ax-tabs ax-tab-item .ax-tab-item-text{flex-shrink:0;padding-inline:calc(var(--spacing, .25rem) * 2);white-space:nowrap}ax-tabs.ax-tabs-fit{width:100%;min-width:100%}ax-tabs.ax-tabs-fit ax-tab-item{flex:1}ax-tabs.ax-top,ax-tabs.ax-bottom{flex-direction:row;overflow-x:auto;overflow-y:hidden}:is(ax-tabs.ax-top,ax-tabs.ax-bottom) ax-tab-item{flex-shrink:0;align-items:center;justify-content:center}ax-tabs.ax-start,ax-tabs.ax-end{flex-direction:column;overflow-x:hidden;overflow-y:auto}:is(ax-tabs.ax-start,ax-tabs.ax-end) ax-tab-item{width:100%}ax-tabs.ax-start{align-items:flex-start}ax-tabs.ax-end{align-items:flex-end}ax-tabs.ax-classic{--ax-comp-tabs-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-tabs-text-color: var(--ax-sys-color-on-lightest-surface);--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-surface);--ax-comp-tabs-hover-text-color: var(--ax-sys-color-on-surface);--ax-comp-tabs-active-bg-color: var(--ax-sys-color-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-surface)}ax-tabs.ax-classic ax-tab-item{border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-tabs.ax-classic.ax-top,ax-tabs.ax-classic.ax-bottom{padding-inline:calc(var(--spacing, .25rem) * 4)}ax-tabs.ax-classic.ax-start,ax-tabs.ax-classic.ax-end{padding-block:calc(var(--spacing, .25rem) * 2)}ax-tabs.ax-classic.ax-top{border-top-style:var(--tw-border-style);border-top-width:1px}ax-tabs.ax-classic.ax-top ax-tab-item{border-top-left-radius:0;border-top-right-radius:0;border-top-color:transparent}ax-tabs.ax-classic.ax-bottom{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}ax-tabs.ax-classic.ax-bottom ax-tab-item{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-color:transparent}ax-tabs.ax-classic.ax-start{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}ax-tabs.ax-classic.ax-start ax-tab-item{border-start-start-radius:0;border-end-start-radius:0;border-inline-start-color:transparent}ax-tabs.ax-classic.ax-end{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}ax-tabs.ax-classic.ax-end ax-tab-item{border-start-end-radius:0;border-end-end-radius:0;border-inline-end-color:transparent}ax-tabs.ax-default{--ax-comp-tabs-active-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-lightest-surface);border-radius:var(--radius-xl, .75rem);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing, .25rem) * 1)}ax-tabs.ax-default:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){--ax-comp-tabs-active-bg-color: var(--ax-sys-color-darkest-surface)}ax-tabs.ax-default:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-darkest-surface)}ax-tabs.ax-default ax-tab-item.ax-state-active{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}ax-tabs.ax-pills-color{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-tabs-active-bg-color: var(--ax-sys-color-primary-surface), .2}ax-tabs.ax-pills{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-tabs-hover-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-tabs-active-bg-color: var(--ax-sys-color-lighter-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-on-lighter-surface)}ax-tabs.ax-with-line-color{--ax-comp-tabs-hover-bg-color: var(--ax-sys-color-primary-surface), .05;--ax-comp-tabs-active-bg-color: var(--ax-sys-color-primary-surface), .1}ax-tabs.ax-with-line,ax-tabs.ax-with-line-color{--ax-comp-tabs-indicator-color: var(--ax-sys-color-primary-surface);--ax-comp-tabs-active-text-color: var(--ax-sys-color-primary-surface)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-tab-item.ax-state-active ax-icon{opacity:100%!important}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) .ax-tab-indicator{position:absolute;z-index:1;display:block;background-color:rgba(var(--ax-comp-tabs-indicator-color))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom) .ax-tab-indicator{height:3px;width:calc(var(--spacing, .25rem) * 0);transition-property:width,left;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end) .ax-tab-indicator{height:calc(var(--spacing, .25rem) * 0);transition-property:height,top;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s))}:is(:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start,:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end) ax-tab-item{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top{box-shadow:inset 0 var(--ax-comp-tabs-indicator-size) 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top .ax-tab-indicator{top:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-top ax-tab-item{border-top-left-radius:0;border-top-right-radius:0;border-top-style:var(--tw-border-style);border-top-width:var(--ax-comp-tabs-indicator-size);border-top-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom{box-shadow:inset 0 calc(var(--ax-comp-tabs-indicator-size) * -1) 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom .ax-tab-indicator{bottom:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-bottom ax-tab-item{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-style:var(--tw-border-style);border-bottom-width:var(--ax-comp-tabs-indicator-size);border-bottom-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start{box-shadow:inset var(--ax-comp-tabs-indicator-size) 0 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start .ax-tab-indicator{inset-inline-start:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-start ax-tab-item{border-start-start-radius:0;border-end-start-radius:0;border-inline-start-style:var(--tw-border-style);border-inline-start-width:var(--ax-comp-tabs-indicator-size);border-inline-start-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end{box-shadow:inset calc(var(--ax-comp-tabs-indicator-size) * -1) 0 0 0 rgba(var(--ax-sys-color-border-lightest-surface))}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end .ax-tab-indicator{inset-inline-end:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color).ax-end ax-tab-item{border-start-end-radius:0;border-end-end-radius:0;border-inline-end-style:var(--tw-border-style);border-inline-end-width:var(--ax-comp-tabs-indicator-size);border-inline-end-color:transparent}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-icon{opacity:60%}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-suffix{padding-inline-end:calc(var(--spacing, .25rem) * 2)}:is(ax-tabs.ax-with-line,ax-tabs.ax-with-line-color) ax-prefix{padding-inline-start:calc(var(--spacing, .25rem) * 2)}ax-tabs.ax-tabs-stacked ax-tab-item{flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 2)}ax-tabs.ax-tabs-stacked ax-tab-item .ax-tab-item-header{flex-direction:column;align-items:center;gap:calc(var(--spacing, .25rem) * 1)}ax-tabs.ax-tabs-stacked ax-tab-item .ax-tab-item-text{padding-inline:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-tabs-stacked.ax-with-line,ax-tabs.ax-tabs-stacked.ax-with-line-color) ax-tab-item ax-suffix{padding-inline-end:calc(var(--spacing, .25rem) * 0)}:is(ax-tabs.ax-tabs-stacked.ax-with-line,ax-tabs.ax-tabs-stacked.ax-with-line-color) ax-tab-item ax-prefix{padding-inline-start:calc(var(--spacing, .25rem) * 0)}ax-tab-item.ax-drag-preview{border-radius:var(--ax-sys-border-radius);--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ax-tab-content-pane{display:contents}.ax-tab-content-pane[hidden]{display:none}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: \"*\"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: \"<percentage>\"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: \"*\"; inherits: false;}@property --tw-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: \"*\"; inherits: false;}@property --tw-inset-ring-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: \"*\"; inherits: false;}@property --tw-ring-offset-width{syntax: \"<length>\"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: \"*\"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: \"*\"; inherits: false; initial-value: 0 0 #0000;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight: initial;--tw-border-style: solid;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
827
+ }], ctorParameters: () => [], propDecorators: { _contentTabs: [{
379
828
  type: ContentChildren,
380
829
  args: [AXTabItemComponent]
381
- }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], location: [{ type: i0.Input, args: [{ isSignal: true, alias: "location", required: false }] }], fitParent: [{
830
+ }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], location: [{ type: i0.Input, args: [{ isSignal: true, alias: "location", required: false }] }], reorderable: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderable", required: false }] }], reorderDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderDelay", required: false }] }], renderMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "renderMode", required: false }] }], stacked: [{ type: i0.Input, args: [{ isSignal: true, alias: "stacked", required: false }] }], fitParent: [{
382
831
  type: Input
383
832
  }], minWidth: [{
384
833
  type: Input
@@ -386,19 +835,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
386
835
  type: Input
387
836
  }], indicator: [{ type: i0.ViewChild, args: ['indicator', { isSignal: true }] }], onActiveTabChanged: [{
388
837
  type: Output
838
+ }], onTabsReordered: [{
839
+ type: Output
389
840
  }], __hostClass: [{
390
841
  type: HostBinding,
391
842
  args: ['class']
392
843
  }] } });
393
844
 
394
- const COMPONENT = [AXTabsComponent, AXTabItemComponent, AXTabContentDirective];
845
+ const COMPONENT = [AXTabsComponent, AXTabItemComponent, AXTabContentDirective, AXTabPanelDirective];
395
846
  const MODULES = [CommonModule, PortalModule, AXDecoratorModule];
396
847
  class AXTabsModule {
397
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
398
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXTabsModule, imports: [CommonModule, PortalModule, AXDecoratorModule, AXTabsComponent, AXTabItemComponent, AXTabContentDirective], exports: [AXTabsComponent, AXTabItemComponent, AXTabContentDirective] }); }
399
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTabsModule, imports: [MODULES] }); }
848
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
849
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: AXTabsModule, imports: [CommonModule, PortalModule, AXDecoratorModule, AXTabsComponent, AXTabItemComponent, AXTabContentDirective, AXTabPanelDirective], exports: [AXTabsComponent, AXTabItemComponent, AXTabContentDirective, AXTabPanelDirective] }); }
850
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabsModule, imports: [MODULES] }); }
400
851
  }
401
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTabsModule, decorators: [{
852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXTabsModule, decorators: [{
402
853
  type: NgModule,
403
854
  args: [{
404
855
  imports: [...MODULES, ...COMPONENT],
@@ -411,5 +862,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
411
862
  * Generated bundle index. Do not edit.
412
863
  */
413
864
 
414
- export { AXTabContentDirective, AXTabItemComponent, AXTabStripChangedEvent, AXTabsComponent, AXTabsModule };
865
+ export { AXTabContentDirective, AXTabItemComponent, AXTabPanelDirective, AXTabStripChangedEvent, AXTabsComponent, AXTabsModule, AXTabsReorderedEvent };
415
866
  //# sourceMappingURL=acorex-components-tabs.mjs.map