@acorex/components 22.1.7 → 22.2.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/emoji/README.md +3 -0
  2. package/emojipicker/README.md +3 -0
  3. package/fesm2022/acorex-components-accordion.mjs +12 -12
  4. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  5. package/fesm2022/acorex-components-action-sheet.mjs +15 -14
  6. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  7. package/fesm2022/acorex-components-alert.mjs +7 -7
  8. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  9. package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
  10. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  11. package/fesm2022/acorex-components-audio-wave.mjs +32 -11
  12. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  13. package/fesm2022/acorex-components-autocomplete.mjs +9 -8
  14. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  15. package/fesm2022/acorex-components-avatar.mjs +10 -10
  16. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  17. package/fesm2022/acorex-components-badge.mjs +7 -7
  18. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  19. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  20. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  21. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  22. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  23. package/fesm2022/acorex-components-bubble.mjs +71 -0
  24. package/fesm2022/acorex-components-bubble.mjs.map +1 -0
  25. package/fesm2022/acorex-components-button-group.mjs +22 -15
  26. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  27. package/fesm2022/acorex-components-button.mjs +366 -56
  28. package/fesm2022/acorex-components-button.mjs.map +1 -1
  29. package/fesm2022/acorex-components-calendar.mjs +40 -37
  30. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  31. package/fesm2022/acorex-components-check-box.mjs +7 -7
  32. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  33. package/fesm2022/acorex-components-chips.mjs +7 -7
  34. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  35. package/fesm2022/acorex-components-circular-progress.mjs +7 -7
  36. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  37. package/fesm2022/acorex-components-code-editor.mjs +44 -19
  38. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  39. package/fesm2022/acorex-components-color-box.mjs +7 -7
  40. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  41. package/fesm2022/acorex-components-color-palette.mjs +28 -28
  42. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  43. package/fesm2022/acorex-components-combo-box.mjs +188 -31
  44. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  45. package/fesm2022/acorex-components-command.mjs +11 -7
  46. package/fesm2022/acorex-components-command.mjs.map +1 -1
  47. package/fesm2022/acorex-components-comment.mjs +28 -28
  48. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  49. package/fesm2022/acorex-components-conversation-acorex-components-conversation-C1Lf9tAe.mjs +19538 -0
  50. package/fesm2022/acorex-components-conversation-acorex-components-conversation-C1Lf9tAe.mjs.map +1 -0
  51. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs +50 -0
  52. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs.map +1 -0
  53. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -1
  54. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs +87 -0
  55. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs.map +1 -0
  56. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DuRLMEa3.mjs → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs} +5 -5
  57. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DuRLMEa3.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs.map} +1 -1
  58. package/fesm2022/acorex-components-conversation.mjs +1 -1
  59. package/fesm2022/acorex-components-cron-job.mjs +47 -47
  60. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  61. package/fesm2022/acorex-components-data-list.mjs +3 -3
  62. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  63. package/fesm2022/acorex-components-data-pager.mjs +182 -184
  64. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  65. package/fesm2022/acorex-components-data-table.mjs +809 -168
  66. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  67. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  68. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  69. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  70. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  71. package/fesm2022/acorex-components-datetime-picker.mjs +8 -8
  72. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  73. package/fesm2022/acorex-components-decorators.mjs +59 -117
  74. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  75. package/fesm2022/acorex-components-dialog.mjs +11 -11
  76. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  77. package/fesm2022/acorex-components-drawer.mjs +11 -11
  78. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  79. package/fesm2022/acorex-components-dropdown-button.mjs +10 -9
  80. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  81. package/fesm2022/acorex-components-dropdown.mjs +19 -14
  82. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  83. package/fesm2022/acorex-components-editor.mjs +15 -14
  84. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  85. package/fesm2022/acorex-components-emoji.mjs +74 -0
  86. package/fesm2022/acorex-components-emoji.mjs.map +1 -0
  87. package/fesm2022/acorex-components-emojipicker.mjs +425 -0
  88. package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
  89. package/fesm2022/acorex-components-fab.mjs +6 -6
  90. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  91. package/fesm2022/acorex-components-file-viewer.mjs +250 -133
  92. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  93. package/fesm2022/acorex-components-form.mjs +17 -17
  94. package/fesm2022/acorex-components-form.mjs.map +1 -1
  95. package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
  96. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  97. package/fesm2022/acorex-components-highlight.mjs +80 -0
  98. package/fesm2022/acorex-components-highlight.mjs.map +1 -0
  99. package/fesm2022/acorex-components-image-editor.mjs +217 -79
  100. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  101. package/fesm2022/acorex-components-image.mjs +7 -7
  102. package/fesm2022/acorex-components-image.mjs.map +1 -1
  103. package/fesm2022/acorex-components-inline-reaction.mjs +111 -0
  104. package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
  105. package/fesm2022/acorex-components-json-viewer.mjs +7 -7
  106. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  107. package/fesm2022/acorex-components-kanban.mjs +3 -3
  108. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  109. package/fesm2022/acorex-components-kbd.mjs +6 -6
  110. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  111. package/fesm2022/acorex-components-label.mjs +7 -7
  112. package/fesm2022/acorex-components-label.mjs.map +1 -1
  113. package/fesm2022/acorex-components-list.mjs +28 -9
  114. package/fesm2022/acorex-components-list.mjs.map +1 -1
  115. package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
  116. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  117. package/fesm2022/acorex-components-loading.mjs +16 -16
  118. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  119. package/fesm2022/acorex-components-lookup.mjs +919 -169
  120. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  121. package/fesm2022/acorex-components-map.mjs +20 -13
  122. package/fesm2022/acorex-components-map.mjs.map +1 -1
  123. package/fesm2022/acorex-components-media-viewer.mjs +215 -218
  124. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  125. package/fesm2022/acorex-components-menu.mjs +146 -45
  126. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  127. package/fesm2022/acorex-components-message-status.mjs +71 -0
  128. package/fesm2022/acorex-components-message-status.mjs.map +1 -0
  129. package/fesm2022/acorex-components-message-time.mjs +36 -0
  130. package/fesm2022/acorex-components-message-time.mjs.map +1 -0
  131. package/fesm2022/acorex-components-message.mjs +120 -0
  132. package/fesm2022/acorex-components-message.mjs.map +1 -0
  133. package/fesm2022/acorex-components-navbar.mjs +7 -7
  134. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  135. package/fesm2022/acorex-components-notification.mjs +13 -14
  136. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  137. package/fesm2022/acorex-components-number-box.mjs +17 -10
  138. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  139. package/fesm2022/acorex-components-otp.mjs +7 -7
  140. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  141. package/fesm2022/acorex-components-page.mjs +10 -10
  142. package/fesm2022/acorex-components-page.mjs.map +1 -1
  143. package/fesm2022/acorex-components-paint.mjs +25 -25
  144. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  145. package/fesm2022/acorex-components-password-box.mjs +10 -10
  146. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  147. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  148. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  149. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  150. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  151. package/fesm2022/acorex-components-picker.mjs +13 -13
  152. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  153. package/fesm2022/acorex-components-popover.mjs +61 -13
  154. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  155. package/fesm2022/acorex-components-popup.mjs +631 -167
  156. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  157. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  158. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  159. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  160. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  161. package/fesm2022/acorex-components-radio.mjs +7 -7
  162. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  163. package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
  164. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  165. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  166. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  167. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  168. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  169. package/fesm2022/acorex-components-reaction.mjs +144 -0
  170. package/fesm2022/acorex-components-reaction.mjs.map +1 -0
  171. package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
  172. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  173. package/fesm2022/acorex-components-result.mjs +7 -7
  174. package/fesm2022/acorex-components-result.mjs.map +1 -1
  175. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  176. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  177. package/fesm2022/acorex-components-rrule.mjs +9 -9
  178. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  179. package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
  180. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  181. package/fesm2022/acorex-components-scheduler.mjs +35 -35
  182. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  183. package/fesm2022/acorex-components-search-box.mjs +7 -7
  184. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  185. package/fesm2022/acorex-components-select-box.mjs +9 -8
  186. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  187. package/fesm2022/acorex-components-selection-list.mjs +7 -8
  188. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  189. package/fesm2022/acorex-components-side-menu.mjs +55 -42
  190. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  191. package/fesm2022/acorex-components-sidebar.mjs +28 -28
  192. package/fesm2022/acorex-components-sidebar.mjs.map +1 -1
  193. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  194. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  195. package/fesm2022/acorex-components-slider.mjs +7 -7
  196. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  197. package/fesm2022/acorex-components-sliding-item.mjs +13 -13
  198. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  199. package/fesm2022/acorex-components-step-wizard.mjs +16 -18
  200. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  201. package/fesm2022/acorex-components-switch.mjs +10 -10
  202. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  203. package/fesm2022/acorex-components-tabs.mjs +393 -76
  204. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  205. package/fesm2022/acorex-components-tag-box.mjs +7 -7
  206. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  207. package/fesm2022/acorex-components-tag.mjs +7 -7
  208. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  209. package/fesm2022/acorex-components-text-area.mjs +7 -7
  210. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  211. package/fesm2022/acorex-components-text-box.mjs +7 -7
  212. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  213. package/fesm2022/acorex-components-time-duration.mjs +7 -7
  214. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  215. package/fesm2022/acorex-components-time-line.mjs +10 -10
  216. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  217. package/fesm2022/acorex-components-toast.mjs +14 -14
  218. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  219. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  220. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  221. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  222. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  223. package/fesm2022/acorex-components-tree-view.mjs +54 -14
  224. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  225. package/fesm2022/acorex-components-uploader.mjs +13 -13
  226. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  227. package/fesm2022/acorex-components-video-player.mjs +7 -7
  228. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  229. package/fesm2022/acorex-components-wysiwyg.mjs +691 -295
  230. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  231. package/fesm2022/acorex-components.mjs.map +1 -1
  232. package/highlight/README.md +13 -0
  233. package/inline-reaction/README.md +3 -0
  234. package/lookup/README.md +1 -1
  235. package/message/README.md +3 -0
  236. package/message-status/README.md +3 -0
  237. package/message-time/README.md +3 -0
  238. package/package.json +48 -13
  239. package/reaction/README.md +3 -0
  240. package/types/acorex-components-action-sheet.d.ts +1 -1
  241. package/types/acorex-components-audio-wave.d.ts +8 -0
  242. package/types/acorex-components-bubble.d.ts +31 -0
  243. package/types/acorex-components-button-group.d.ts +4 -0
  244. package/types/acorex-components-button.d.ts +75 -10
  245. package/types/acorex-components-calendar.d.ts +13 -4
  246. package/types/acorex-components-check-box.d.ts +1 -1
  247. package/types/acorex-components-code-editor.d.ts +4 -1
  248. package/types/acorex-components-color-box.d.ts +1 -1
  249. package/types/acorex-components-color-palette.d.ts +2 -2
  250. package/types/acorex-components-combo-box.d.ts +21 -2
  251. package/types/acorex-components-command.d.ts +3 -1
  252. package/types/acorex-components-conversation.d.ts +550 -242
  253. package/types/acorex-components-cron-job.d.ts +6 -6
  254. package/types/acorex-components-data-pager.d.ts +27 -9
  255. package/types/acorex-components-data-table.d.ts +226 -21
  256. package/types/acorex-components-datetime-box.d.ts +1 -1
  257. package/types/acorex-components-datetime-picker.d.ts +1 -1
  258. package/types/acorex-components-decorators.d.ts +15 -33
  259. package/types/acorex-components-dialog.d.ts +1 -1
  260. package/types/acorex-components-dropdown-button.d.ts +2 -1
  261. package/types/acorex-components-dropdown.d.ts +6 -1
  262. package/types/acorex-components-editor.d.ts +1 -1
  263. package/types/acorex-components-emoji.d.ts +42 -0
  264. package/types/acorex-components-emojipicker.d.ts +146 -0
  265. package/types/acorex-components-file-viewer.d.ts +14 -2
  266. package/types/acorex-components-highlight.d.ts +31 -0
  267. package/types/acorex-components-image-editor.d.ts +19 -2
  268. package/types/acorex-components-inline-reaction.d.ts +52 -0
  269. package/types/acorex-components-list.d.ts +12 -0
  270. package/types/acorex-components-loading-dialog.d.ts +1 -1
  271. package/types/acorex-components-loading.d.ts +1 -1
  272. package/types/acorex-components-lookup.d.ts +227 -79
  273. package/types/acorex-components-map.d.ts +7 -2
  274. package/types/acorex-components-media-viewer.d.ts +4 -3
  275. package/types/acorex-components-menu.d.ts +17 -5
  276. package/types/acorex-components-message-status.d.ts +23 -0
  277. package/types/acorex-components-message-time.d.ts +19 -0
  278. package/types/acorex-components-message.d.ts +59 -0
  279. package/types/acorex-components-notification.d.ts +1 -1
  280. package/types/acorex-components-number-box.d.ts +2 -1
  281. package/types/acorex-components-otp.d.ts +1 -1
  282. package/types/acorex-components-page.d.ts +2 -2
  283. package/types/acorex-components-paint.d.ts +2 -2
  284. package/types/acorex-components-password-box.d.ts +1 -1
  285. package/types/acorex-components-phone-box.d.ts +1 -1
  286. package/types/acorex-components-popover.d.ts +13 -1
  287. package/types/acorex-components-popup.d.ts +183 -50
  288. package/types/acorex-components-rail-navigation.d.ts +1 -1
  289. package/types/acorex-components-range-slider.d.ts +1 -1
  290. package/types/acorex-components-reaction.d.ts +85 -0
  291. package/types/acorex-components-rest-api-generator.d.ts +1 -1
  292. package/types/acorex-components-rrule.d.ts +1 -1
  293. package/types/acorex-components-scheduler-picker.d.ts +1 -1
  294. package/types/acorex-components-scheduler.d.ts +1 -1
  295. package/types/acorex-components-search-box.d.ts +1 -1
  296. package/types/acorex-components-selection-list.d.ts +1 -1
  297. package/types/acorex-components-side-menu.d.ts +6 -8
  298. package/types/acorex-components-slider.d.ts +1 -1
  299. package/types/acorex-components-step-wizard.d.ts +4 -4
  300. package/types/acorex-components-switch.d.ts +1 -1
  301. package/types/acorex-components-tabs.d.ts +109 -19
  302. package/types/acorex-components-tag-box.d.ts +2 -2
  303. package/types/acorex-components-text-area.d.ts +1 -1
  304. package/types/acorex-components-text-box.d.ts +1 -1
  305. package/types/acorex-components-time-duration.d.ts +1 -1
  306. package/types/acorex-components-toast.d.ts +1 -1
  307. package/types/acorex-components-tree-view.d.ts +23 -1
  308. package/types/acorex-components-wysiwyg.d.ts +426 -77
  309. package/fesm2022/acorex-components-conversation-acorex-components-conversation-EiqMwr9v.mjs +0 -16862
  310. package/fesm2022/acorex-components-conversation-acorex-components-conversation-EiqMwr9v.mjs.map +0 -1
  311. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-D4ca9Mvt.mjs +0 -51
  312. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-D4ca9Mvt.mjs.map +0 -1
  313. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-QVs1XWYf.mjs +0 -85
  314. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-QVs1XWYf.mjs.map +0 -1
  315. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-C7BnTUw2.mjs +0 -210
  316. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-C7BnTUw2.mjs.map +0 -1
  317. package/fesm2022/acorex-components-flow-chart.mjs +0 -735
  318. package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
  319. package/fesm2022/acorex-components-query-builder.mjs +0 -267
  320. package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
  321. package/flow-chart/README.md +0 -3
  322. package/query-builder/README.md +0 -3
  323. package/types/acorex-components-flow-chart.d.ts +0 -187
  324. package/types/acorex-components-query-builder.d.ts +0 -52
@@ -1,14 +1,44 @@
1
- import { MXInteractiveComponent, MXColorComponent, AXComponent, AXClosableComponent, MXButtonBaseComponent, AXRippleDirective, AXFocusableComponent } from '@acorex/cdk/common';
1
+ import { MXInteractiveComponent, MXColorComponent, AXComponent, AXClosableComponent, MXButtonBaseComponent, AXRippleDirective, AXFocusableComponent, MXBaseComponent } from '@acorex/cdk/common';
2
2
  import { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';
3
3
  import { AXLoadingComponent } from '@acorex/components/loading';
4
4
  import * as i0 from '@angular/core';
5
- import { EventEmitter, HostBinding, HostListener, Output, Input, ViewEncapsulation, Component, inject, input, afterNextRender, ContentChildren, computed, contentChild, model, NgModule } from '@angular/core';
6
- import * as i2 from '@acorex/core/translation';
7
- import { AXTranslationModule } from '@acorex/core/translation';
5
+ import { Injectable, contentChildren, inject, viewChild, computed, EventEmitter, HostBinding, Output, Input, ViewEncapsulation, Component, DestroyRef, input, afterNextRender, ContentChildren, contentChild, model, HostListener, NgModule } from '@angular/core';
6
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
7
  import * as i1 from '@angular/common';
9
- import { CommonModule } from '@angular/common';
8
+ import { CommonModule, NgTemplateOutlet, NgClass, AsyncPipe } from '@angular/common';
9
+ import { AXPopoverComponent } from '@acorex/components/popover';
10
+ import { AXHtmlUtil } from '@acorex/core/utils';
11
+ import * as i2 from '@acorex/core/translation';
12
+ import { AXTranslationModule, AXTranslatorPipe } from '@acorex/core/translation';
10
13
  import { classes } from 'polytype';
11
14
 
15
+ /** Coordinates which nested `ax-button-item` submenu is open within one `ax-button-item-list`. */
16
+ class AXButtonItemSubmenuCoordinator {
17
+ constructor() {
18
+ this.current = null;
19
+ }
20
+ requestOpen(item) {
21
+ if (this.current && this.current !== item) {
22
+ this.current.closeNestedMenu();
23
+ }
24
+ this.current = item;
25
+ }
26
+ clear(item) {
27
+ if (this.current === item) {
28
+ this.current = null;
29
+ }
30
+ }
31
+ closeAll() {
32
+ this.current?.closeNestedMenu();
33
+ this.current = null;
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonItemSubmenuCoordinator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonItemSubmenuCoordinator }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonItemSubmenuCoordinator, decorators: [{
39
+ type: Injectable
40
+ }] });
41
+
12
42
  /**
13
43
  * Represents a button item with optional content like icons, text, and dropdowns.
14
44
  *
@@ -17,6 +47,16 @@ import { classes } from 'polytype';
17
47
  class AXButtonItemComponent extends classes(MXInteractiveComponent, MXColorComponent) {
18
48
  constructor() {
19
49
  super(...arguments);
50
+ this.childMenuItems = contentChildren(AXButtonItemComponent, { ...(ngDevMode ? { debugName: "childMenuItems" } : /* istanbul ignore next */ {}), descendants: false });
51
+ this.submenuCoordinator = inject(AXButtonItemSubmenuCoordinator, { optional: true });
52
+ this.submenuPopover = viewChild('submenuPopover', /* @ts-ignore */
53
+ ...(ngDevMode ? [{ debugName: "submenuPopover" }] : /* istanbul ignore next */ []));
54
+ this.submenuTarget = this;
55
+ this.arrowIcon = computed(() => {
56
+ const isRtl = AXHtmlUtil.isRtl(this.getHostElement());
57
+ return isRtl ? 'ax-icon-chevron-left' : 'ax-icon-chevron-right';
58
+ }, /* @ts-ignore */
59
+ ...(ngDevMode ? [{ debugName: "arrowIcon" }] : /* istanbul ignore next */ []));
20
60
  /**
21
61
  * Whether the item is visually separated from other items.
22
62
  * @defaultValue false
@@ -48,6 +88,20 @@ class AXButtonItemComponent extends classes(MXInteractiveComponent, MXColorCompo
48
88
  this._selected = v;
49
89
  this.cdr.markForCheck();
50
90
  }
91
+ /** Whether this item has nested `ax-button-item` children. */
92
+ hasSubItems() {
93
+ return this.childMenuItems().length > 0;
94
+ }
95
+ /** Closes the nested submenu flyout when open. */
96
+ closeNestedMenu() {
97
+ this.submenuPopover()?.close();
98
+ }
99
+ handleSubmenuOpened() {
100
+ this.submenuCoordinator?.requestOpen(this);
101
+ }
102
+ handleSubmenuClosed() {
103
+ this.submenuCoordinator?.clear(this);
104
+ }
51
105
  /**
52
106
  * Handles click events on the button item host element.
53
107
  * Emits the onClick event if the component is not disabled.
@@ -55,14 +109,20 @@ class AXButtonItemComponent extends classes(MXInteractiveComponent, MXColorCompo
55
109
  * @param e - The mouse event that triggered the click.
56
110
  * @ignore
57
111
  */
58
- __hostClick(e) {
59
- if (!this.disabled) {
60
- this.onClick.emit({
61
- component: this,
62
- htmlElement: this.getHostElement(),
63
- nativeEvent: e,
64
- });
112
+ handleHostClick(e) {
113
+ e.stopPropagation();
114
+ if (this.disabled) {
115
+ return;
116
+ }
117
+ if (this.hasSubItems()) {
118
+ this.submenuCoordinator?.requestOpen(this);
119
+ this.submenuPopover()?.open();
65
120
  }
121
+ this.onClick.emit({
122
+ component: this,
123
+ htmlElement: this.getHostElement(),
124
+ nativeEvent: e,
125
+ });
66
126
  }
67
127
  /**
68
128
  * Handles focus events on the button item host element.
@@ -71,7 +131,7 @@ class AXButtonItemComponent extends classes(MXInteractiveComponent, MXColorCompo
71
131
  * @param e - The focus event that was triggered.
72
132
  * @ignore
73
133
  */
74
- __hostFocus(e) {
134
+ handleHostFocus(e) {
75
135
  this.emitOnFocusEvent(e);
76
136
  }
77
137
  /**
@@ -81,9 +141,13 @@ class AXButtonItemComponent extends classes(MXInteractiveComponent, MXColorCompo
81
141
  * @param e - The blur event that was triggered.
82
142
  * @ignore
83
143
  */
84
- __hostBlur(e) {
144
+ handleHostBlur(e) {
85
145
  this.emitOnBlurEvent(e);
86
146
  }
147
+ ngOnDestroy() {
148
+ this.closeNestedMenu();
149
+ this.submenuCoordinator?.clear(this);
150
+ }
87
151
  /**
88
152
  * Generates the CSS classes for the button item host element.
89
153
  * Includes classes for icon-only state, disabled state, selected state, divided state, and color.
@@ -98,6 +162,7 @@ class AXButtonItemComponent extends classes(MXInteractiveComponent, MXColorCompo
98
162
  'ax-state-selected': this.selected,
99
163
  'ax-divided': this.divided,
100
164
  'ax-action-item': true,
165
+ 'ax-has-submenu': this.hasSubItems(),
101
166
  };
102
167
  cssClasses[`${this.color}`] = true;
103
168
  return Object.entries(cssClasses)
@@ -105,8 +170,8 @@ class AXButtonItemComponent extends classes(MXInteractiveComponent, MXColorCompo
105
170
  .map((c) => c[0])
106
171
  .join(' ');
107
172
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXButtonItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXButtonItemComponent, isStandalone: true, selector: "ax-button-item", inputs: { color: "color", disabled: "disabled", text: "text", selected: "selected", divided: "divided", data: "data", name: "name" }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur", disabledChange: "disabledChange" }, host: { listeners: { "click": "__hostClick($event)", "focus": "__hostFocus($event)", "blur": "__hostBlur($event)" }, properties: { "class": "this.__hostClass", "attr.tabindex": "this.tabindex" } }, providers: [{ provide: AXComponent, useExisting: AXButtonItemComponent }], usesInheritance: true, ngImport: i0, template: `
173
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
174
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXButtonItemComponent, isStandalone: true, selector: "ax-button-item", inputs: { color: "color", disabled: "disabled", text: "text", selected: "selected", divided: "divided", data: "data", name: "name" }, outputs: { onClick: "onClick", onFocus: "onFocus", onBlur: "onBlur", disabledChange: "disabledChange" }, host: { listeners: { "click": "handleHostClick($event)", "focus": "handleHostFocus($event)", "blur": "handleHostBlur($event)" }, properties: { "class": "this.__hostClass", "attr.tabindex": "this.tabindex" } }, providers: [{ provide: AXComponent, useExisting: AXButtonItemComponent }], queries: [{ propertyName: "childMenuItems", predicate: AXButtonItemComponent, isSignal: true }], viewQueries: [{ propertyName: "submenuPopover", first: true, predicate: ["submenuPopover"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
110
175
  <div class="ax-action-item-prefix">
111
176
  <ng-content select="ax-prefix"> </ng-content>
112
177
  <ng-content select="ax-loading"> </ng-content>
@@ -117,11 +182,32 @@ class AXButtonItemComponent extends classes(MXInteractiveComponent, MXColorCompo
117
182
  </div>
118
183
  <div class="ax-action-item-suffix">
119
184
  <ng-content select="ax-suffix"> </ng-content>
185
+ @if (hasSubItems()) {
186
+ <i class="ax-icon ax-icon-solid {{ arrowIcon() }}"></i>
187
+ }
120
188
  </div>
121
189
  <ng-content select="ax-dropdown-panel"> </ng-content>
122
- `, isInline: true, styles: ["@layer properties;@layer components{ax-button-item{display:flex;height:calc(var(--spacing, .25rem) * 9);width:100%;cursor:pointer;align-items:center;justify-content:space-between;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);padding-inline:var(--ax-comp-action-item-padding-inline, .875rem);color:var(--ax-comp-bg, var(--color-on-surface))}ax-button-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-surface))}ax-button-item:hover:not(.ax-state-disabled,.ax-state-selected){background-color:rgba(var(--ax-sys-color-surface))}ax-button-item>div{display:flex;align-items:center;justify-content:center}ax-button-item>div.ax-action-item-prefix,ax-button-item>div.ax-action-item-suffix{gap:calc(var(--spacing, .25rem) * 2)}}@property --tw-leading{syntax: \"*\"; inherits: false;}@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-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
190
+ @if (hasSubItems()) {
191
+ <ax-popover
192
+ #submenuPopover
193
+ [target]="submenuTarget"
194
+ openOn="hover"
195
+ closeOn="leave"
196
+ placement="end-top"
197
+ [closeOnScroll]="false"
198
+ visualContextScope="theme"
199
+ panelClass="ax-button-item-submenu-panel"
200
+ (onOpened)="handleSubmenuOpened()"
201
+ (onClosed)="handleSubmenuClosed()"
202
+ >
203
+ <div class="ax-button-item-submenu ax-action-list ax-action-list-vertical">
204
+ <ng-content select="ax-button-item,ax-divider,ax-title"></ng-content>
205
+ </div>
206
+ </ax-popover>
207
+ }
208
+ `, isInline: true, styles: ["@layer properties;@layer components{ax-button-item{display:flex;height:calc(var(--spacing, .25rem) * 9);width:100%;cursor:pointer;align-items:center;justify-content:space-between;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);padding-inline:var(--ax-comp-action-item-padding-inline, .875rem);color:var(--ax-comp-bg, var(--color-on-surface))}ax-button-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-surface))}ax-button-item:hover:not(.ax-state-disabled,.ax-state-selected){background-color:rgba(var(--ax-sys-color-surface))}ax-button-item>div{display:flex;align-items:center;justify-content:center}ax-button-item>div.ax-action-item-prefix,ax-button-item>div.ax-action-item-suffix{gap:calc(var(--spacing, .25rem) * 2)}ax-button-item.ax-has-submenu>.ax-action-item-suffix{gap:calc(var(--spacing, .25rem) * 1)}.ax-button-item-submenu{min-width:12rem;padding-block:var(--ax-comp-button-item-list-padding-block, .25rem)}}@property --tw-leading{syntax: \"*\"; inherits: false;}@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-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "visualContextScope", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "closeOnNavigation", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
123
209
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXButtonItemComponent, decorators: [{
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonItemComponent, decorators: [{
125
211
  type: Component,
126
212
  args: [{ selector: 'ax-button-item', template: `
127
213
  <div class="ax-action-item-prefix">
@@ -134,10 +220,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
134
220
  </div>
135
221
  <div class="ax-action-item-suffix">
136
222
  <ng-content select="ax-suffix"> </ng-content>
223
+ @if (hasSubItems()) {
224
+ <i class="ax-icon ax-icon-solid {{ arrowIcon() }}"></i>
225
+ }
137
226
  </div>
138
227
  <ng-content select="ax-dropdown-panel"> </ng-content>
139
- `, encapsulation: ViewEncapsulation.None, inputs: ['color', 'disabled'], outputs: ['onClick', 'onFocus', 'onBlur', 'disabledChange'], imports: [CommonModule, AXDecoratorGenericComponent, AXTranslationModule], providers: [{ provide: AXComponent, useExisting: AXButtonItemComponent }], styles: ["@layer properties;@layer components{ax-button-item{display:flex;height:calc(var(--spacing, .25rem) * 9);width:100%;cursor:pointer;align-items:center;justify-content:space-between;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);padding-inline:var(--ax-comp-action-item-padding-inline, .875rem);color:var(--ax-comp-bg, var(--color-on-surface))}ax-button-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-surface))}ax-button-item:hover:not(.ax-state-disabled,.ax-state-selected){background-color:rgba(var(--ax-sys-color-surface))}ax-button-item>div{display:flex;align-items:center;justify-content:center}ax-button-item>div.ax-action-item-prefix,ax-button-item>div.ax-action-item-suffix{gap:calc(var(--spacing, .25rem) * 2)}}@property --tw-leading{syntax: \"*\"; inherits: false;}@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-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
140
- }], propDecorators: { text: [{
228
+ @if (hasSubItems()) {
229
+ <ax-popover
230
+ #submenuPopover
231
+ [target]="submenuTarget"
232
+ openOn="hover"
233
+ closeOn="leave"
234
+ placement="end-top"
235
+ [closeOnScroll]="false"
236
+ visualContextScope="theme"
237
+ panelClass="ax-button-item-submenu-panel"
238
+ (onOpened)="handleSubmenuOpened()"
239
+ (onClosed)="handleSubmenuClosed()"
240
+ >
241
+ <div class="ax-button-item-submenu ax-action-list ax-action-list-vertical">
242
+ <ng-content select="ax-button-item,ax-divider,ax-title"></ng-content>
243
+ </div>
244
+ </ax-popover>
245
+ }
246
+ `, encapsulation: ViewEncapsulation.None, inputs: ['color', 'disabled'], outputs: ['onClick', 'onFocus', 'onBlur', 'disabledChange'], imports: [CommonModule, AXDecoratorGenericComponent, AXTranslationModule, AXPopoverComponent], providers: [{ provide: AXComponent, useExisting: AXButtonItemComponent }], host: {
247
+ '(click)': 'handleHostClick($event)',
248
+ '(focus)': 'handleHostFocus($event)',
249
+ '(blur)': 'handleHostBlur($event)',
250
+ }, styles: ["@layer properties;@layer components{ax-button-item{display:flex;height:calc(var(--spacing, .25rem) * 9);width:100%;cursor:pointer;align-items:center;justify-content:space-between;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5);padding-inline:var(--ax-comp-action-item-padding-inline, .875rem);color:var(--ax-comp-bg, var(--color-on-surface))}ax-button-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-surface))}ax-button-item:hover:not(.ax-state-disabled,.ax-state-selected){background-color:rgba(var(--ax-sys-color-surface))}ax-button-item>div{display:flex;align-items:center;justify-content:center}ax-button-item>div.ax-action-item-prefix,ax-button-item>div.ax-action-item-suffix{gap:calc(var(--spacing, .25rem) * 2)}ax-button-item.ax-has-submenu>.ax-action-item-suffix{gap:calc(var(--spacing, .25rem) * 1)}.ax-button-item-submenu{min-width:12rem;padding-block:var(--ax-comp-button-item-list-padding-block, .25rem)}}@property --tw-leading{syntax: \"*\"; inherits: false;}@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-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
251
+ }], propDecorators: { childMenuItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AXButtonItemComponent), { ...{ descendants: false }, isSignal: true }] }], submenuPopover: [{ type: i0.ViewChild, args: ['submenuPopover', { isSignal: true }] }], text: [{
141
252
  type: Input
142
253
  }], selected: [{
143
254
  type: Input
@@ -149,15 +260,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
149
260
  type: Input
150
261
  }], onClick: [{
151
262
  type: Output
152
- }], __hostClick: [{
153
- type: HostListener,
154
- args: ['click', ['$event']]
155
- }], __hostFocus: [{
156
- type: HostListener,
157
- args: ['focus', ['$event']]
158
- }], __hostBlur: [{
159
- type: HostListener,
160
- args: ['blur', ['$event']]
161
263
  }], __hostClass: [{
162
264
  type: HostBinding,
163
265
  args: ['class']
@@ -181,6 +283,9 @@ class AXButtonItemListComponent extends MXInteractiveComponent {
181
283
  constructor() {
182
284
  super();
183
285
  this.parent = inject(AXClosableComponent, { optional: true });
286
+ this.destroyRef = inject(DestroyRef);
287
+ this.submenuCoordinator = inject(AXButtonItemSubmenuCoordinator);
288
+ this.boundClickItems = new WeakSet();
184
289
  /**
185
290
  * The list of button items to display.
186
291
  *
@@ -215,6 +320,13 @@ class AXButtonItemListComponent extends MXInteractiveComponent {
215
320
  this._contentButtons.changes.subscribe(() => {
216
321
  this._initContents();
217
322
  });
323
+ this.bindParentClosed();
324
+ });
325
+ }
326
+ bindParentClosed() {
327
+ const closable = this.parent;
328
+ closable?.onClosed?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
329
+ this.submenuCoordinator.closeAll();
218
330
  });
219
331
  }
220
332
  isDisabled(item) {
@@ -251,10 +363,13 @@ class AXButtonItemListComponent extends MXInteractiveComponent {
251
363
  */
252
364
  _bindEvents() {
253
365
  this._contentButtons?.forEach((b) => {
254
- if (!b.onClick.length)
255
- b.onClick.subscribe((c) => {
256
- this._handleOnItemClick(c);
257
- });
366
+ if (this.boundClickItems.has(b)) {
367
+ return;
368
+ }
369
+ this.boundClickItems.add(b);
370
+ b.onClick.subscribe((c) => {
371
+ this._handleOnItemClick(c);
372
+ });
258
373
  });
259
374
  }
260
375
  /**
@@ -276,10 +391,12 @@ class AXButtonItemListComponent extends MXInteractiveComponent {
276
391
  * @ignore
277
392
  */
278
393
  _handleOnItemClick(e) {
279
- if (this.closeParentOnClick()) {
394
+ const item = e.component;
395
+ this._emitOnItemClickEvent(e, item);
396
+ if (this.closeParentOnClick() && !item.hasSubItems()) {
397
+ this.submenuCoordinator.closeAll();
280
398
  this.parent?.close();
281
399
  }
282
- this._emitOnItemClickEvent(e, e.component);
283
400
  }
284
401
  /**
285
402
  * Emits the onItemClick event with details about the clicked item.
@@ -314,9 +431,17 @@ class AXButtonItemListComponent extends MXInteractiveComponent {
314
431
  get __hostClass() {
315
432
  return `ax-action-list ax-action-list-vertical`;
316
433
  }
317
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXButtonItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
318
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXButtonItemListComponent, isStandalone: true, selector: "ax-button-item-list", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, closeParentOnClick: { classPropertyName: "closeParentOnClick", publicName: "closeParentOnClick", isSignal: true, isRequired: false, transformFunction: null }, lockOnLoading: { classPropertyName: "lockOnLoading", publicName: "lockOnLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: "onItemClick" }, host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXComponent, useExisting: AXButtonItemListComponent }], queries: [{ propertyName: "_contentButtons", predicate: AXButtonItemComponent }], usesInheritance: true, ngImport: i0, template: `
434
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
435
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXButtonItemListComponent, isStandalone: true, selector: "ax-button-item-list", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, closeParentOnClick: { classPropertyName: "closeParentOnClick", publicName: "closeParentOnClick", isSignal: true, isRequired: false, transformFunction: null }, lockOnLoading: { classPropertyName: "lockOnLoading", publicName: "lockOnLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: "onItemClick" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
436
+ { provide: AXComponent, useExisting: AXButtonItemListComponent },
437
+ AXButtonItemSubmenuCoordinator,
438
+ ], queries: [{ propertyName: "_contentButtons", predicate: AXButtonItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
319
439
  @for (item of items(); track item.name) {
440
+ <ng-container [ngTemplateOutlet]="itemTemplate" [ngTemplateOutletContext]="{ $implicit: item }"></ng-container>
441
+ }
442
+ <ng-content></ng-content>
443
+
444
+ <ng-template #itemTemplate let-item>
320
445
  <ax-button-item
321
446
  [text]="item.text"
322
447
  [name]="item.name"
@@ -332,18 +457,25 @@ class AXButtonItemListComponent extends MXInteractiveComponent {
332
457
  <ax-icon [icon]="item.icon"></ax-icon>
333
458
  </ax-prefix>
334
459
  }
460
+ @for (child of item.items ?? []; track child.name ?? child.text) {
461
+ <ng-container [ngTemplateOutlet]="itemTemplate" [ngTemplateOutletContext]="{ $implicit: child }"></ng-container>
462
+ }
335
463
  </ax-button-item>
336
464
  @if (item.divided) {
337
465
  <ax-divider></ax-divider>
338
466
  }
339
- }
340
- <ng-content></ng-content>
341
- `, isInline: true, styles: ["@layer components{ax-button-item-list.ax-action-list{padding-block:var(--ax-comp-button-item-list-padding-block, .25rem)}ax-button-item-list .ax-button-item-loading{display:inline-flex;align-items:center;justify-content:center;inline-size:1.5rem;block-size:1.5rem}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
467
+ </ng-template>
468
+ `, isInline: true, styles: ["@layer components{ax-button-item-list.ax-action-list{padding-block:var(--ax-comp-button-item-list-padding-block, .25rem)}ax-button-item-list .ax-button-item-loading{display:inline-flex;align-items:center;justify-content:center;inline-size:1.5rem;block-size:1.5rem}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
342
469
  }
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXButtonItemListComponent, decorators: [{
470
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonItemListComponent, decorators: [{
344
471
  type: Component,
345
472
  args: [{ selector: 'ax-button-item-list', template: `
346
473
  @for (item of items(); track item.name) {
474
+ <ng-container [ngTemplateOutlet]="itemTemplate" [ngTemplateOutletContext]="{ $implicit: item }"></ng-container>
475
+ }
476
+ <ng-content></ng-content>
477
+
478
+ <ng-template #itemTemplate let-item>
347
479
  <ax-button-item
348
480
  [text]="item.text"
349
481
  [name]="item.name"
@@ -359,16 +491,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
359
491
  <ax-icon [icon]="item.icon"></ax-icon>
360
492
  </ax-prefix>
361
493
  }
494
+ @for (child of item.items ?? []; track child.name ?? child.text) {
495
+ <ng-container [ngTemplateOutlet]="itemTemplate" [ngTemplateOutletContext]="{ $implicit: child }"></ng-container>
496
+ }
362
497
  </ax-button-item>
363
498
  @if (item.divided) {
364
499
  <ax-divider></ax-divider>
365
500
  }
366
- }
367
- <ng-content></ng-content>
368
- `, encapsulation: ViewEncapsulation.None, imports: [AXButtonItemComponent, AXDecoratorGenericComponent, AXDecoratorIconComponent, AXLoadingComponent], providers: [{ provide: AXComponent, useExisting: AXButtonItemListComponent }], styles: ["@layer components{ax-button-item-list.ax-action-list{padding-block:var(--ax-comp-button-item-list-padding-block, .25rem)}ax-button-item-list .ax-button-item-loading{display:inline-flex;align-items:center;justify-content:center;inline-size:1.5rem;block-size:1.5rem}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
501
+ </ng-template>
502
+ `, encapsulation: ViewEncapsulation.None, imports: [
503
+ NgTemplateOutlet,
504
+ AXButtonItemComponent,
505
+ AXDecoratorGenericComponent,
506
+ AXDecoratorIconComponent,
507
+ AXLoadingComponent,
508
+ ], providers: [
509
+ { provide: AXComponent, useExisting: AXButtonItemListComponent },
510
+ AXButtonItemSubmenuCoordinator,
511
+ ], styles: ["@layer components{ax-button-item-list.ax-action-list{padding-block:var(--ax-comp-button-item-list-padding-block, .25rem)}ax-button-item-list .ax-button-item-loading{display:inline-flex;align-items:center;justify-content:center;inline-size:1.5rem;block-size:1.5rem}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
369
512
  }], ctorParameters: () => [], propDecorators: { _contentButtons: [{
370
513
  type: ContentChildren,
371
- args: [AXButtonItemComponent]
514
+ args: [AXButtonItemComponent, { descendants: true }]
372
515
  }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], closeParentOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeParentOnClick", required: false }] }], lockOnLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "lockOnLoading", required: false }] }], onItemClick: [{
373
516
  type: Output
374
517
  }], __hostClass: [{
@@ -479,16 +622,16 @@ class AXButtonComponent extends MXButtonBaseComponent {
479
622
  blur() {
480
623
  this.getButton()?.blur();
481
624
  }
482
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
483
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXButtonComponent, isStandalone: true, selector: "ax-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: false, isRequired: false, transformFunction: null }, toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", selectedChange: "selectedChange", toggleableChange: "toggleableChange", lookChange: "lookChange", colorChange: "colorChange", disabledChange: "disabledChange", loadingText: "loadingTextChange" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
625
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
626
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXButtonComponent, isStandalone: true, selector: "ax-button", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: false, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: false, isRequired: false, transformFunction: null }, toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: false, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: false, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", selectedChange: "selectedChange", toggleableChange: "toggleableChange", lookChange: "lookChange", colorChange: "colorChange", disabledChange: "disabledChange", loadingText: "loadingTextChange" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
484
627
  { provide: AXComponent, useExisting: AXButtonComponent },
485
628
  { provide: AXButtonItemComponent, useExisting: AXButtonComponent },
486
629
  { provide: AXFocusableComponent, useExisting: AXButtonComponent },
487
630
  ], queries: [{ propertyName: "loadingIcon", first: true, predicate: AXLoadingComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button\n [axRipple]\n [attr.type]=\"type()\"\n [disabled]=\"disabled\"\n [attr.tabindex]=\"tabIndex\"\n (click)=\"_handleClick($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n class=\"{{ color }}\n {{ interactiveLook }} \n {{ selected ? 'ax-state-selected' : '' }} \n {{ disabled ? 'ax-state-disabled' : '' }}\"\n>\n <ng-content select=\"ax-loading, ax-loading-spinner\"> </ng-content>\n\n @if (showIcon()) {\n <ng-content select=\"ax-prefix, ax-icon\"> </ng-content>\n }\n\n <ng-content select=\"ax-content\"> </ng-content>\n\n @if (text && !loadingText() && !iconOnly()) {\n <span class=\"ax-button-text\">{{ text | translate | async }}</span>\n }\n\n @if (loadingText()) {\n <span class=\"ax-button-text\">{{ loadingText() }}</span>\n }\n\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-content select=\"ax-dropdown-panel\"> </ng-content>\n <ng-content select=\".tab-content\"> </ng-content>\n\n <ng-content></ng-content>\n</button>\n", styles: ["@layer properties;@layer components{ax-button{--ax-comp-button-shadow-rest: var(--ax-sys-effect-control-rest);--ax-comp-button-shadow-hover: var(--ax-sys-effect-control-hover);--ax-comp-button-shadow-active: var(--ax-sys-effect-control-active);--ax-comp-button-shadow-subtle-rest: var(--ax-sys-effect-control-subtle-rest);--ax-comp-button-shadow-subtle-hover: var(--ax-sys-effect-control-subtle-hover);--ax-comp-button-highlight-rest: var(--ax-sys-highlight-control);--ax-comp-button-highlight-hover: var(--ax-sys-highlight-control);--ax-comp-button-highlight-subtle: var(--ax-sys-highlight-control-subtle);--ax-comp-button-inner-border-rest: var(--ax-sys-inner-border-control);--ax-comp-button-inner-border-hover: var(--ax-sys-inner-border-control);--ax-comp-button-inner-border-active: var(--ax-sys-inner-border-control);--ax-comp-button-bevel-rest: var(--ax-sys-bevel-control-rest);--ax-comp-button-bevel-hover: var(--ax-sys-bevel-control-hover);--ax-comp-button-bevel-active: var(--ax-sys-bevel-control-active);--ax-comp-button-bevel-disabled: var(--ax-sys-bevel-control-disabled);--ax-comp-button-inset-shadow-active: var(--ax-sys-effect-control-active);--ax-comp-button-background-image-rest: var(--ax-sys-gradient-control-rest);--ax-comp-button-background-image-hover: var(--ax-sys-gradient-control-hover);--ax-comp-button-background-image-active: var(--ax-sys-gradient-control-active);--ax-comp-button-surface-overlay-rest: var(--ax-sys-surface-overlay-control-rest);--ax-comp-button-surface-overlay-hover: var(--ax-sys-surface-overlay-control-hover);--ax-comp-button-surface-overlay-active: var(--ax-sys-surface-overlay-control-active);--ax-comp-button-surface-overlay-subtle-rest: var(--ax-sys-surface-overlay-control-subtle-rest);--ax-comp-button-surface-overlay-subtle-hover: var(--ax-sys-surface-overlay-control-subtle-hover);--ax-comp-button-surface-overlay-subtle-active: var(--ax-sys-surface-overlay-control-subtle-active, var(--ax-sys-surface-overlay-control-active));--ax-comp-button-contrast-inner-border-rest: var(--ax-sys-contrast-inner-border-control);--ax-comp-button-contrast-inner-border-hover: var(--ax-sys-contrast-inner-border-control);--ax-comp-button-contrast-inner-border-active: var(--ax-sys-contrast-inner-border-control);--ax-comp-button-contrast-surface-overlay-rest: var(--ax-sys-contrast-surface-overlay-control);--ax-comp-button-transform-rest: var(--ax-sys-transform-control-rest);--ax-comp-button-transform-hover: var(--ax-sys-transform-control-hover);--ax-comp-button-transform-active: var(--ax-sys-transform-control-active);--ax-comp-button-transform-disabled: var(--ax-sys-transform-control-disabled);--ax-comp-button-transition-duration: var(--ax-sys-motion-duration);--ax-comp-button-transition-timing: var(--ax-sys-motion-timing);display:inline-flex;border-radius:var(--ax-sys-border-radius)}ax-button button{position:relative;display:flex;height:var(--ax-sys-size-base);width:100%;cursor:pointer;align-items:center;justify-content:center;gap:calc(var(--spacing, .25rem) * 2);border-radius:inherit;padding-inline:calc(var(--spacing, .25rem) * 4);padding-block:calc(var(--spacing, .25rem) * 2);--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);-webkit-user-select:none;user-select:none;transition-property:box-shadow,background-image,border-color,background-color,color,transform;transition-duration:var(--ax-comp-button-transition-duration);transition-timing-function:var(--ax-comp-button-transition-timing);transform:var(--ax-comp-button-transform-rest)}ax-button button.ax-state-disabled,ax-button button.ax-state-loading{cursor:not-allowed;opacity:50%;box-shadow:var(--ax-comp-button-contrast-inner-border-rest),var(--ax-comp-button-inner-border-rest);background-image:none;transform:var(--ax-comp-button-transform-disabled)}ax-button button.ax-solid-interactive{box-shadow:var(--ax-comp-button-contrast-inner-border-rest),var(--ax-comp-button-inner-border-rest),var(--ax-comp-button-bevel-rest),var(--ax-comp-button-highlight-rest),var(--ax-comp-button-shadow-rest);background-image:linear-gradient(var(--ax-comp-button-contrast-surface-overlay-rest),var(--ax-comp-button-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-button-surface-overlay-rest),var(--ax-comp-button-surface-overlay-rest)),var(--ax-comp-button-background-image-rest)}ax-button button.ax-solid-interactive.ax-default{border-color:rgba(var(--ax-sys-color-border-surface));--ax-comp-button-highlight-rest: 0 0 #0000;--ax-comp-button-highlight-hover: 0 0 #0000;--ax-comp-button-shadow-rest: var(--ax-sys-effect-control-neutral-rest);--ax-comp-button-shadow-hover: var(--ax-sys-effect-control-neutral-hover);--ax-comp-button-shadow-active: var(--ax-sys-effect-control-neutral-active);--ax-comp-button-inset-shadow-active: var(--ax-sys-effect-control-neutral-active);--ax-comp-button-bevel-rest: var(--ax-sys-bevel-control-neutral-rest);--ax-comp-button-bevel-hover: var(--ax-sys-bevel-control-neutral-hover);--ax-comp-button-bevel-active: var(--ax-sys-bevel-control-neutral-active);--ax-comp-button-bevel-disabled: var(--ax-sys-bevel-control-neutral-disabled);--ax-comp-button-inner-border-rest: var(--ax-sys-inner-border-control-neutral-rest);--ax-comp-button-inner-border-hover: var(--ax-sys-inner-border-control-neutral-hover);--ax-comp-button-inner-border-active: var(--ax-sys-inner-border-control-neutral-active);--ax-comp-button-background-image-rest: var(--ax-sys-gradient-control-neutral-rest);--ax-comp-button-background-image-hover: var(--ax-sys-gradient-control-neutral-hover);--ax-comp-button-background-image-active: var(--ax-sys-gradient-control-neutral-active)}ax-button button.ax-solid-interactive:not(.ax-state-disabled,.ax-state-loading):hover{box-shadow:var(--ax-comp-button-contrast-inner-border-hover),var(--ax-comp-button-inner-border-hover),var(--ax-comp-button-bevel-hover),var(--ax-comp-button-highlight-hover),var(--ax-comp-button-shadow-hover);background-image:linear-gradient(var(--ax-comp-button-contrast-surface-overlay-rest),var(--ax-comp-button-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-button-surface-overlay-hover),var(--ax-comp-button-surface-overlay-hover)),var(--ax-comp-button-background-image-hover);transform:var(--ax-comp-button-transform-hover)}ax-button button.ax-solid-interactive:not(.ax-state-disabled,.ax-state-loading):focus,ax-button button.ax-solid-interactive:not(.ax-state-disabled,.ax-state-loading):focus-within,ax-button button.ax-solid-interactive:not(.ax-state-disabled,.ax-state-loading):focus-visible{box-shadow:var(--ax-comp-button-contrast-inner-border-rest),var(--ax-comp-button-inner-border-rest),var(--ax-comp-button-bevel-rest),var(--ax-comp-button-highlight-rest),var(--ax-comp-button-shadow-rest);background-image:linear-gradient(var(--ax-comp-button-contrast-surface-overlay-rest),var(--ax-comp-button-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-button-surface-overlay-rest),var(--ax-comp-button-surface-overlay-rest)),var(--ax-comp-button-background-image-rest);transform:var(--ax-comp-button-transform-rest)}ax-button button.ax-solid-interactive:not(.ax-state-disabled,.ax-state-loading):active{box-shadow:var(--ax-comp-button-contrast-inner-border-active),var(--ax-comp-button-inner-border-active),var(--ax-comp-button-bevel-active),var(--ax-comp-button-inset-shadow-active);background-image:linear-gradient(var(--ax-comp-button-surface-overlay-active),var(--ax-comp-button-surface-overlay-active)),var(--ax-comp-button-background-image-active);transform:var(--ax-comp-button-transform-active)}ax-button button.ax-outline-interactive{box-shadow:var(--ax-comp-button-contrast-inner-border-rest);background-image:linear-gradient(var(--ax-comp-button-contrast-surface-overlay-rest),var(--ax-comp-button-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-button-surface-overlay-subtle-rest),var(--ax-comp-button-surface-overlay-subtle-rest))}ax-button button.ax-outline-interactive:not(.ax-state-disabled,.ax-state-loading):hover{box-shadow:var(--ax-comp-button-contrast-inner-border-hover),var(--ax-comp-button-highlight-subtle),var(--ax-comp-button-shadow-subtle-hover);background-image:linear-gradient(var(--ax-comp-button-contrast-surface-overlay-rest),var(--ax-comp-button-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-button-surface-overlay-subtle-hover),var(--ax-comp-button-surface-overlay-subtle-hover))}ax-button button.ax-outline-interactive:not(.ax-state-disabled,.ax-state-loading):active{box-shadow:var(--ax-comp-button-contrast-inner-border-active),var(--ax-comp-button-inset-shadow-active);background-image:linear-gradient(var(--ax-comp-button-contrast-surface-overlay-rest),var(--ax-comp-button-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-button-surface-overlay-subtle-active),var(--ax-comp-button-surface-overlay-subtle-active));transform:var(--ax-comp-button-transform-active)}ax-button button.ax-twotone-interactive{box-shadow:var(--ax-comp-button-contrast-inner-border-rest),var(--ax-comp-button-highlight-subtle),var(--ax-comp-button-shadow-subtle-rest);background-image:linear-gradient(var(--ax-comp-button-contrast-surface-overlay-rest),var(--ax-comp-button-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-button-surface-overlay-subtle-rest),var(--ax-comp-button-surface-overlay-subtle-rest))}ax-button button.ax-twotone-interactive:not(.ax-state-disabled,.ax-state-loading):hover{box-shadow:var(--ax-comp-button-contrast-inner-border-hover),var(--ax-comp-button-highlight-subtle),var(--ax-comp-button-shadow-subtle-hover);background-image:linear-gradient(var(--ax-comp-button-contrast-surface-overlay-rest),var(--ax-comp-button-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-button-surface-overlay-subtle-hover),var(--ax-comp-button-surface-overlay-subtle-hover))}ax-button button.ax-twotone-interactive:not(.ax-state-disabled,.ax-state-loading):active{box-shadow:var(--ax-comp-button-contrast-inner-border-active),var(--ax-comp-button-inset-shadow-active);background-image:linear-gradient(var(--ax-comp-button-contrast-surface-overlay-rest),var(--ax-comp-button-contrast-surface-overlay-rest)),linear-gradient(var(--ax-comp-button-surface-overlay-subtle-active),var(--ax-comp-button-surface-overlay-subtle-active));transform:var(--ax-comp-button-transform-active)}ax-button button.ax-blank-interactive{box-shadow:var(--ax-comp-button-contrast-inner-border-rest)}ax-button button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):hover{box-shadow:var(--ax-comp-button-contrast-inner-border-hover),var(--ax-comp-button-shadow-subtle-rest);background-image:linear-gradient(var(--ax-comp-button-surface-overlay-subtle-hover),var(--ax-comp-button-surface-overlay-subtle-hover))}ax-button button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):active{box-shadow:var(--ax-comp-button-contrast-inner-border-active),var(--ax-comp-button-inset-shadow-active);background-image:linear-gradient(var(--ax-comp-button-surface-overlay-active),var(--ax-comp-button-surface-overlay-active));transform:var(--ax-comp-button-transform-active)}ax-button button.ax-link-interactive{box-shadow:none;background-image:none;transform:none}ax-button.ax-xs button{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4)}ax-button.ax-sm button{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-button button,ax-button.ax-md button{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-button.ax-lg button{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-button.ax-xl button{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 6);line-height:calc(var(--spacing, .25rem) * 6)}ax-button .ax-button-text{text-wrap:nowrap}ax-button.ax-button-icon.ax-xs button{width:var(--ax-sys-size-base);height:var(--ax-sys-size-base);padding:calc(var(--spacing, .25rem) * 1);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-button.ax-button-icon.ax-sm button{width:var(--ax-sys-size-base);height:var(--ax-sys-size-base);padding:calc(var(--spacing, .25rem) * 1);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-button.ax-button-icon button,ax-button.ax-button-icon.ax-md button{width:var(--ax-sys-size-base);height:var(--ax-sys-size-base);padding: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)))}ax-button.ax-button-icon.ax-lg button{width:var(--ax-sys-size-base);height:var(--ax-sys-size-base);padding: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)))}ax-button.ax-button-icon.ax-xl button{width:var(--ax-sys-size-base);height:var(--ax-sys-size-base);padding:calc(var(--spacing, .25rem) * 3);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}ax-button.ax-button-icon button ax-icon,ax-button.ax-button-icon button ax-prefix,ax-button.ax-button-icon button i{font-size:1.125em}ax-button ax-dropdown-panel{position:absolute}}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@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-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
488
631
  }
489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXButtonComponent, decorators: [{
632
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonComponent, decorators: [{
490
633
  type: Component,
491
- args: [{ selector: 'ax-button', inputs: ['disabled', 'size', 'tabIndex', 'color', 'look', 'text', 'toggleable', 'selected'], outputs: [
634
+ args: [{ selector: 'ax-button', inputs: ['disabled', 'tabIndex', 'color', 'look', 'text', 'toggleable', 'selected'], outputs: [
492
635
  'onBlur',
493
636
  'onFocus',
494
637
  'onClick',
@@ -507,16 +650,183 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
507
650
  args: ['class']
508
651
  }] } });
509
652
 
653
+ /**
654
+ * Icon-only blank chrome control (window caption, toolbar). Matches {@link AXDecoratorCloseButtonComponent} styling.
655
+ *
656
+ * @category Components
657
+ */
658
+ class AXChromeButtonComponent extends MXBaseComponent {
659
+ constructor() {
660
+ super(...arguments);
661
+ /** Visible tooltip / native title. */
662
+ this.title = input(null, /* @ts-ignore */
663
+ ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
664
+ /** Accessible name; falls back to {@link title}. */
665
+ this.ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
666
+ }
667
+ /** Forwards ax-xs … ax-xl from the host to the inner ax-button. */
668
+ get buttonSizeClasses() {
669
+ const host = this.getHostElement();
670
+ return ['ax-xs', 'ax-sm', 'ax-md', 'ax-lg', 'ax-xl'].filter((size) => host.classList.contains(size)).join(' ');
671
+ }
672
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXChromeButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
673
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: AXChromeButtonComponent, isStandalone: true, selector: "ax-chrome-button", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXComponent, useExisting: AXChromeButtonComponent }], usesInheritance: true, ngImport: i0, template: `<ax-button
674
+ class="ax-chrome-button-action"
675
+ look="blank"
676
+ color="default"
677
+ [iconOnly]="true"
678
+ [class]="buttonSizeClasses"
679
+ [attr.aria-label]="ariaLabel() ?? title()"
680
+ [attr.title]="title()"
681
+ >
682
+ <ng-content></ng-content>
683
+ </ax-button>`, isInline: true, styles: ["@layer components{:is(ax-close-button,ax-chrome-button){display:inline-flex;flex-shrink:0}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action{display:inline-flex}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon button{width:auto;height:auto;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);cursor:pointer;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0);box-shadow:none;background-image:none;transform:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon button i{--ax-sys-icon-size: 1.25rem;font-size:1.25rem}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon.ax-xs button i{--ax-sys-icon-size: 1rem;font-size:1rem}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon.ax-sm button i{--ax-sys-icon-size: 1.125rem;font-size:1.125rem}}:is(ax-close-button,ax-chrome-button){--ax-comp-ink: var(--ax-comp-text, var(--color-on-surface));--ax-comp-ink-dark: var(--ax-comp-text-dark, var(--ax-comp-text, var(--color-on-surface)));--ax-comp-ink-darker: var(--ax-comp-text-darker, var(--ax-comp-text, var(--color-on-surface)));color:var(--ax-comp-text, inherit)}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{color:var(--ax-comp-text, var(--color-on-surface));box-shadow:none;background-color:transparent;background-image:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive :is(i,svg){color:inherit}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i:before,:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i:after{color:inherit}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):is(:hover,:focus,:focus-within,:focus-visible,.ax-state-focus){opacity:.75;color:var(--ax-comp-text, var(--color-on-surface));background-color:transparent;background-image:none;box-shadow:none;transform:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):active{opacity:1;color:var(--ax-comp-text, var(--color-on-surface));background-color:transparent;background-image:none;box-shadow:none;transform:none}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
684
+ }
685
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXChromeButtonComponent, decorators: [{
686
+ type: Component,
687
+ args: [{ selector: 'ax-chrome-button', template: `<ax-button
688
+ class="ax-chrome-button-action"
689
+ look="blank"
690
+ color="default"
691
+ [iconOnly]="true"
692
+ [class]="buttonSizeClasses"
693
+ [attr.aria-label]="ariaLabel() ?? title()"
694
+ [attr.title]="title()"
695
+ >
696
+ <ng-content></ng-content>
697
+ </ax-button>`, encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent], providers: [{ provide: AXComponent, useExisting: AXChromeButtonComponent }], styles: ["@layer components{:is(ax-close-button,ax-chrome-button){display:inline-flex;flex-shrink:0}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action{display:inline-flex}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon button{width:auto;height:auto;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);cursor:pointer;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0);box-shadow:none;background-image:none;transform:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon button i{--ax-sys-icon-size: 1.25rem;font-size:1.25rem}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon.ax-xs button i{--ax-sys-icon-size: 1rem;font-size:1rem}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon.ax-sm button i{--ax-sys-icon-size: 1.125rem;font-size:1.125rem}}:is(ax-close-button,ax-chrome-button){--ax-comp-ink: var(--ax-comp-text, var(--color-on-surface));--ax-comp-ink-dark: var(--ax-comp-text-dark, var(--ax-comp-text, var(--color-on-surface)));--ax-comp-ink-darker: var(--ax-comp-text-darker, var(--ax-comp-text, var(--color-on-surface)));color:var(--ax-comp-text, inherit)}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{color:var(--ax-comp-text, var(--color-on-surface));box-shadow:none;background-color:transparent;background-image:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive :is(i,svg){color:inherit}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i:before,:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i:after{color:inherit}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):is(:hover,:focus,:focus-within,:focus-visible,.ax-state-focus){opacity:.75;color:var(--ax-comp-text, var(--color-on-surface));background-color:transparent;background-image:none;box-shadow:none;transform:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):active{opacity:1;color:var(--ax-comp-text, var(--color-on-surface));background-color:transparent;background-image:none;box-shadow:none;transform:none}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
698
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }] } });
699
+
700
+ /**
701
+ * A button component that displays a close icon and triggers an action when clicked.
702
+ *
703
+ * @category Components
704
+ */
705
+ class AXDecoratorCloseButtonComponent extends MXBaseComponent {
706
+ constructor() {
707
+ super(...arguments);
708
+ this._parent = inject(AXClosableComponent, { optional: true });
709
+ // @Inject(AXClosableComponent) private _parent?: AXClosableComponent,
710
+ this.closeAll = input(false, /* @ts-ignore */
711
+ ...(ngDevMode ? [{ debugName: "closeAll" }] : /* istanbul ignore next */ []));
712
+ /**
713
+ * @ignore
714
+ */
715
+ this._icon = 'ax-icon ax-icon-close';
716
+ }
717
+ /**
718
+ * The icon class to be applied to the button.
719
+ */
720
+ get icon() {
721
+ return this._icon || 'ax-icon-close';
722
+ }
723
+ /**
724
+ * Sets the icon class to be applied to the button.
725
+ *
726
+ * @param v The icon class.
727
+ */
728
+ set icon(v) {
729
+ this._icon = v;
730
+ }
731
+ /** Forwards ax-xs … ax-xl from the host to the inner ax-button. */
732
+ get buttonSizeClasses() {
733
+ const host = this.getHostElement();
734
+ return ['ax-xs', 'ax-sm', 'ax-md', 'ax-lg', 'ax-xl'].filter((size) => host.classList.contains(size)).join(' ');
735
+ }
736
+ /**
737
+ * @ignore
738
+ */
739
+ _handleOnClick() {
740
+ if (this.closeAll()) {
741
+ this._parent?.closeAll();
742
+ }
743
+ else {
744
+ this._parent?.close();
745
+ }
746
+ }
747
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDecoratorCloseButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
748
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: AXDecoratorCloseButtonComponent, isStandalone: true, selector: "ax-close-button", inputs: { closeAll: { classPropertyName: "closeAll", publicName: "closeAll", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: false, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_handleOnClick()" } }, providers: [{ provide: AXComponent, useExisting: AXDecoratorCloseButtonComponent }], usesInheritance: true, ngImport: i0, template: `<ax-button
749
+ class="ax-chrome-button-action"
750
+ look="blank"
751
+ color="default"
752
+ [iconOnly]="true"
753
+ [class]="buttonSizeClasses"
754
+ [attr.aria-label]="
755
+ closeAll()
756
+ ? ('@acorex:common.general.close-all' | translate | async)
757
+ : ('@acorex:common.general.close' | translate | async)
758
+ "
759
+ [attr.title]="
760
+ closeAll()
761
+ ? ('@acorex:common.general.close-all' | translate | async)
762
+ : ('@acorex:common.general.close' | translate | async)
763
+ "
764
+ >
765
+ <i [ngClass]="icon"></i>
766
+ </ax-button>`, isInline: true, styles: ["@layer components{:is(ax-close-button,ax-chrome-button){display:inline-flex;flex-shrink:0}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action{display:inline-flex}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon button{width:auto;height:auto;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);cursor:pointer;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0);box-shadow:none;background-image:none;transform:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon button i{--ax-sys-icon-size: 1.25rem;font-size:1.25rem}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon.ax-xs button i{--ax-sys-icon-size: 1rem;font-size:1rem}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon.ax-sm button i{--ax-sys-icon-size: 1.125rem;font-size:1.125rem}}:is(ax-close-button,ax-chrome-button){--ax-comp-ink: var(--ax-comp-text, var(--color-on-surface));--ax-comp-ink-dark: var(--ax-comp-text-dark, var(--ax-comp-text, var(--color-on-surface)));--ax-comp-ink-darker: var(--ax-comp-text-darker, var(--ax-comp-text, var(--color-on-surface)));color:var(--ax-comp-text, inherit)}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{color:var(--ax-comp-text, var(--color-on-surface));box-shadow:none;background-color:transparent;background-image:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive :is(i,svg){color:inherit}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i:before,:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i:after{color:inherit}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):is(:hover,:focus,:focus-within,:focus-visible,.ax-state-focus){opacity:.75;color:var(--ax-comp-text, var(--color-on-surface));background-color:transparent;background-image:none;box-shadow:none;transform:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):active{opacity:1;color:var(--ax-comp-text, var(--color-on-surface));background-color:transparent;background-image:none;box-shadow:none;transform:none}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
767
+ }
768
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDecoratorCloseButtonComponent, decorators: [{
769
+ type: Component,
770
+ args: [{ selector: 'ax-close-button', template: `<ax-button
771
+ class="ax-chrome-button-action"
772
+ look="blank"
773
+ color="default"
774
+ [iconOnly]="true"
775
+ [class]="buttonSizeClasses"
776
+ [attr.aria-label]="
777
+ closeAll()
778
+ ? ('@acorex:common.general.close-all' | translate | async)
779
+ : ('@acorex:common.general.close' | translate | async)
780
+ "
781
+ [attr.title]="
782
+ closeAll()
783
+ ? ('@acorex:common.general.close-all' | translate | async)
784
+ : ('@acorex:common.general.close' | translate | async)
785
+ "
786
+ >
787
+ <i [ngClass]="icon"></i>
788
+ </ax-button>`, encapsulation: ViewEncapsulation.None, imports: [AXButtonComponent, NgClass, AsyncPipe, AXTranslatorPipe], providers: [{ provide: AXComponent, useExisting: AXDecoratorCloseButtonComponent }], styles: ["@layer components{:is(ax-close-button,ax-chrome-button){display:inline-flex;flex-shrink:0}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action{display:inline-flex}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon button{width:auto;height:auto;min-height:calc(var(--spacing, .25rem) * 0);min-width:calc(var(--spacing, .25rem) * 0);cursor:pointer;background-color:transparent;padding:calc(var(--spacing, .25rem) * 0);box-shadow:none;background-image:none;transform:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon button i{--ax-sys-icon-size: 1.25rem;font-size:1.25rem}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon.ax-xs button i{--ax-sys-icon-size: 1rem;font-size:1rem}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon.ax-sm button i{--ax-sys-icon-size: 1.125rem;font-size:1.125rem}}:is(ax-close-button,ax-chrome-button){--ax-comp-ink: var(--ax-comp-text, var(--color-on-surface));--ax-comp-ink-dark: var(--ax-comp-text-dark, var(--ax-comp-text, var(--color-on-surface)));--ax-comp-ink-darker: var(--ax-comp-text-darker, var(--ax-comp-text, var(--color-on-surface)));color:var(--ax-comp-text, inherit)}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive{color:var(--ax-comp-text, var(--color-on-surface));box-shadow:none;background-color:transparent;background-image:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive :is(i,svg){color:inherit}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i:before,:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive i:after{color:inherit}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):is(:hover,:focus,:focus-within,:focus-visible,.ax-state-focus){opacity:.75;color:var(--ax-comp-text, var(--color-on-surface));background-color:transparent;background-image:none;box-shadow:none;transform:none}:is(ax-close-button,ax-chrome-button) ax-button.ax-chrome-button-action.ax-button-icon>button.ax-blank-interactive:not(.ax-state-disabled,.ax-state-loading):active{opacity:1;color:var(--ax-comp-text, var(--color-on-surface));background-color:transparent;background-image:none;box-shadow:none;transform:none}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
789
+ }], propDecorators: { closeAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeAll", required: false }] }], icon: [{
790
+ type: Input
791
+ }], _handleOnClick: [{
792
+ type: HostListener,
793
+ args: ['click']
794
+ }] } });
795
+
510
796
  class AXButtonModule {
511
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
512
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXButtonModule, imports: [AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent], exports: [AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent] }); }
513
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXButtonModule, imports: [AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent] }); }
797
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
798
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: AXButtonModule, imports: [AXButtonComponent,
799
+ AXButtonItemComponent,
800
+ AXButtonItemListComponent,
801
+ AXDecoratorCloseButtonComponent,
802
+ AXChromeButtonComponent], exports: [AXButtonComponent,
803
+ AXButtonItemComponent,
804
+ AXButtonItemListComponent,
805
+ AXDecoratorCloseButtonComponent,
806
+ AXChromeButtonComponent] }); }
807
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonModule, imports: [AXButtonComponent,
808
+ AXButtonItemComponent,
809
+ AXButtonItemListComponent,
810
+ AXDecoratorCloseButtonComponent,
811
+ AXChromeButtonComponent] }); }
514
812
  }
515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXButtonModule, decorators: [{
813
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXButtonModule, decorators: [{
516
814
  type: NgModule,
517
815
  args: [{
518
- imports: [AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent],
519
- exports: [AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent],
816
+ imports: [
817
+ AXButtonComponent,
818
+ AXButtonItemComponent,
819
+ AXButtonItemListComponent,
820
+ AXDecoratorCloseButtonComponent,
821
+ AXChromeButtonComponent,
822
+ ],
823
+ exports: [
824
+ AXButtonComponent,
825
+ AXButtonItemComponent,
826
+ AXButtonItemListComponent,
827
+ AXDecoratorCloseButtonComponent,
828
+ AXChromeButtonComponent,
829
+ ],
520
830
  }]
521
831
  }] });
522
832
 
@@ -524,5 +834,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
524
834
  * Generated bundle index. Do not edit.
525
835
  */
526
836
 
527
- export { AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent, AXButtonModule };
837
+ export { AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent, AXButtonModule, AXChromeButtonComponent, AXDecoratorCloseButtonComponent };
528
838
  //# sourceMappingURL=acorex-components-button.mjs.map