@design-system-rte/angular 1.5.0 → 1.6.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 (541) hide show
  1. package/esm2022/lib/components/accordion/accordion.component.mjs +94 -0
  2. package/esm2022/lib/components/avatar/assets/status/status.component.mjs +15 -0
  3. package/esm2022/lib/components/avatar/avatar.component.mjs +52 -0
  4. package/esm2022/lib/components/banner/banner.component.mjs +1 -1
  5. package/esm2022/lib/components/button/button.component.mjs +9 -3
  6. package/esm2022/lib/components/card/card.component.mjs +5 -6
  7. package/esm2022/lib/components/checkbox/checkbox.component.mjs +4 -3
  8. package/esm2022/lib/components/checkbox-group/checkbox-group.component.mjs +1 -1
  9. package/esm2022/lib/components/drawer/drawer-trigger/drawer-trigger.directive.mjs +33 -0
  10. package/esm2022/lib/components/drawer/drawer.component.mjs +160 -0
  11. package/esm2022/lib/components/drawer/drawer.directive.mjs +302 -0
  12. package/esm2022/lib/components/drawer/drawer.module.mjs +17 -0
  13. package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +1 -1
  14. package/esm2022/lib/components/icon/icon-map.mjs +119 -112
  15. package/esm2022/lib/components/icon/icon.component.mjs +9 -10
  16. package/esm2022/lib/components/popover/popover.component.mjs +1 -1
  17. package/esm2022/lib/components/toast/toast.component.mjs +1 -1
  18. package/esm2022/lib/components/treeview/index.mjs +4 -0
  19. package/esm2022/lib/components/treeview/treeview-check.service.mjs +24 -0
  20. package/esm2022/lib/components/treeview/treeview-item/treeview-item-border/treeview-item-border.component.mjs +20 -0
  21. package/esm2022/lib/components/treeview/treeview-item/treeview-item.component.mjs +227 -0
  22. package/esm2022/lib/components/treeview/treeview-keyboard.service.mjs +80 -0
  23. package/esm2022/lib/components/treeview/treeview-selection.service.mjs +23 -0
  24. package/esm2022/lib/components/treeview/treeview.component.mjs +89 -0
  25. package/esm2022/public-api.mjs +8 -1
  26. package/fesm2022/design-system-rte-angular.mjs +1338 -261
  27. package/fesm2022/design-system-rte-angular.mjs.map +1 -1
  28. package/lib/assets/icons/add.svg +3 -0
  29. package/lib/assets/icons/add_circle_filled.svg +3 -0
  30. package/lib/assets/icons/add_circle_outlined.svg +3 -0
  31. package/lib/assets/icons/admin_panel_settings_filled.svg +3 -0
  32. package/lib/assets/icons/admin_panel_settings_outlined.svg +3 -0
  33. package/lib/assets/icons/alt_route.svg +3 -0
  34. package/lib/assets/icons/analytics_filled.svg +3 -0
  35. package/lib/assets/icons/analytics_outlined.svg +3 -0
  36. package/lib/assets/icons/apps.svg +3 -0
  37. package/lib/assets/icons/archive_filled.svg +3 -0
  38. package/lib/assets/icons/archive_outlined.svg +3 -0
  39. package/lib/assets/icons/arrow_alt_down.svg +3 -0
  40. package/lib/assets/icons/arrow_alt_down_left.svg +3 -0
  41. package/lib/assets/icons/arrow_alt_down_right.svg +3 -0
  42. package/lib/assets/icons/arrow_alt_left.svg +3 -0
  43. package/lib/assets/icons/arrow_alt_right.svg +3 -0
  44. package/lib/assets/icons/arrow_alt_up.svg +3 -0
  45. package/lib/assets/icons/arrow_alt_up_left.svg +3 -0
  46. package/lib/assets/icons/arrow_alt_up_right.svg +3 -0
  47. package/lib/assets/icons/arrow_angle_down_left.svg +3 -0
  48. package/lib/assets/icons/arrow_angle_down_right.svg +3 -0
  49. package/lib/assets/icons/arrow_angle_up_left.svg +3 -0
  50. package/lib/assets/icons/arrow_angle_up_right.svg +3 -0
  51. package/lib/assets/icons/arrow_chevron_down.svg +3 -0
  52. package/lib/assets/icons/arrow_chevron_left.svg +3 -0
  53. package/lib/assets/icons/arrow_chevron_right.svg +3 -0
  54. package/lib/assets/icons/arrow_chevron_up.svg +3 -0
  55. package/lib/assets/icons/arrow_circle_chevron_down_filled.svg +3 -0
  56. package/lib/assets/icons/arrow_circle_chevron_down_outlined.svg +3 -0
  57. package/lib/assets/icons/arrow_circle_chevron_left_filled.svg +3 -0
  58. package/lib/assets/icons/arrow_circle_chevron_left_outlined.svg +3 -0
  59. package/lib/assets/icons/arrow_circle_chevron_right_filled.svg +3 -0
  60. package/lib/assets/icons/arrow_circle_chevron_right_outlined.svg +3 -0
  61. package/lib/assets/icons/arrow_circle_chevron_up_filled.svg +3 -0
  62. package/lib/assets/icons/arrow_circle_chevron_up_outlined.svg +3 -0
  63. package/lib/assets/icons/arrow_circle_down_filled.svg +3 -0
  64. package/lib/assets/icons/arrow_circle_down_outlined.svg +3 -0
  65. package/lib/assets/icons/arrow_circle_left_filled.svg +3 -0
  66. package/lib/assets/icons/arrow_circle_left_outlined.svg +3 -0
  67. package/lib/assets/icons/arrow_circle_right_filled.svg +3 -0
  68. package/lib/assets/icons/arrow_circle_right_outlined.svg +3 -0
  69. package/lib/assets/icons/arrow_circle_up_filled.svg +3 -0
  70. package/lib/assets/icons/arrow_circle_up_outlined.svg +3 -0
  71. package/lib/assets/icons/arrow_compare.svg +3 -0
  72. package/lib/assets/icons/arrow_double_down.svg +3 -0
  73. package/lib/assets/icons/arrow_double_left.svg +3 -0
  74. package/lib/assets/icons/arrow_double_right.svg +3 -0
  75. package/lib/assets/icons/arrow_double_up.svg +3 -0
  76. package/lib/assets/icons/arrow_down.svg +3 -0
  77. package/lib/assets/icons/arrow_down_left.svg +3 -0
  78. package/lib/assets/icons/arrow_down_right.svg +3 -0
  79. package/lib/assets/icons/arrow_drop_down.svg +3 -0
  80. package/lib/assets/icons/arrow_drop_up.svg +3 -0
  81. package/lib/assets/icons/arrow_left.svg +3 -0
  82. package/lib/assets/icons/arrow_right.svg +3 -0
  83. package/lib/assets/icons/arrow_up.svg +3 -0
  84. package/lib/assets/icons/arrow_up_left.svg +3 -0
  85. package/lib/assets/icons/arrow_up_right.svg +3 -0
  86. package/lib/assets/icons/article_filled.svg +3 -0
  87. package/lib/assets/icons/article_outlined.svg +3 -0
  88. package/lib/assets/icons/assignment_complete_filled.svg +3 -0
  89. package/lib/assets/icons/assignment_complete_outlined.svg +3 -0
  90. package/lib/assets/icons/assignment_filled.svg +3 -0
  91. package/lib/assets/icons/assignment_outlined.svg +3 -0
  92. package/lib/assets/icons/asterisk.svg +3 -0
  93. package/lib/assets/icons/attach_file.svg +3 -0
  94. package/lib/assets/icons/battery_alert_filled.svg +3 -0
  95. package/lib/assets/icons/battery_alert_outlined.svg +3 -0
  96. package/lib/assets/icons/battery_alt_empty.svg +3 -0
  97. package/lib/assets/icons/battery_alt_full.svg +3 -0
  98. package/lib/assets/icons/battery_charging.svg +3 -0
  99. package/lib/assets/icons/battery_charging_full_filled.svg +3 -0
  100. package/lib/assets/icons/battery_charging_full_outlined.svg +3 -0
  101. package/lib/assets/icons/battery_empty.svg +3 -0
  102. package/lib/assets/icons/battery_full.svg +3 -0
  103. package/lib/assets/icons/bluetooth.svg +3 -0
  104. package/lib/assets/icons/bluetooth_off.svg +3 -0
  105. package/lib/assets/icons/bolt_alt_circle_filled.svg +3 -0
  106. package/lib/assets/icons/bolt_alt_circle_outlined.svg +3 -0
  107. package/lib/assets/icons/bolt_alt_filled.svg +3 -0
  108. package/lib/assets/icons/bolt_alt_outlined.svg +3 -0
  109. package/lib/assets/icons/bolt_circle_filled.svg +3 -0
  110. package/lib/assets/icons/bolt_circle_outlined.svg +3 -0
  111. package/lib/assets/icons/bolt_filled.svg +3 -0
  112. package/lib/assets/icons/bolt_outlined.svg +3 -0
  113. package/lib/assets/icons/bookmark_filled.svg +3 -0
  114. package/lib/assets/icons/bookmark_outlined.svg +3 -0
  115. package/lib/assets/icons/bookmarks_filled.svg +3 -0
  116. package/lib/assets/icons/bookmarks_outlined.svg +3 -0
  117. package/lib/assets/icons/build_filled.svg +3 -0
  118. package/lib/assets/icons/build_outlined.svg +3 -0
  119. package/lib/assets/icons/calendar_available_filled.svg +3 -0
  120. package/lib/assets/icons/calendar_available_outlined.svg +3 -0
  121. package/lib/assets/icons/calendar_busy_filled.svg +3 -0
  122. package/lib/assets/icons/calendar_busy_outlined.svg +3 -0
  123. package/lib/assets/icons/calendar_month_filled.svg +3 -0
  124. package/lib/assets/icons/calendar_month_outlined.svg +3 -0
  125. package/lib/assets/icons/calendar_today_filled.svg +3 -0
  126. package/lib/assets/icons/calendar_today_outlined.svg +3 -0
  127. package/lib/assets/icons/call_filled.svg +3 -0
  128. package/lib/assets/icons/call_outlined.svg +3 -0
  129. package/lib/assets/icons/cancel_filled.svg +3 -0
  130. package/lib/assets/icons/cancel_outlined.svg +3 -0
  131. package/lib/assets/icons/category_filled.svg +3 -0
  132. package/lib/assets/icons/category_outlined.svg +3 -0
  133. package/lib/assets/icons/chart_add_filled.svg +3 -0
  134. package/lib/assets/icons/chart_add_outlined.svg +3 -0
  135. package/lib/assets/icons/chart_area_filled.svg +3 -0
  136. package/lib/assets/icons/chart_area_outlined.svg +3 -0
  137. package/lib/assets/icons/chart_bar.svg +3 -0
  138. package/lib/assets/icons/chart_bar_stacked.svg +3 -0
  139. package/lib/assets/icons/chart_pie_filled.svg +3 -0
  140. package/lib/assets/icons/chart_pie_outlined.svg +3 -0
  141. package/lib/assets/icons/chart_table_filled.svg +3 -0
  142. package/lib/assets/icons/chart_table_outlined.svg +3 -0
  143. package/lib/assets/icons/chat_alt_filled.svg +3 -0
  144. package/lib/assets/icons/chat_alt_outlined.svg +3 -0
  145. package/lib/assets/icons/chat_alt_unread_filled.svg +3 -0
  146. package/lib/assets/icons/chat_alt_unread_outlined.svg +3 -0
  147. package/lib/assets/icons/chat_filled.svg +3 -0
  148. package/lib/assets/icons/chat_outlined.svg +3 -0
  149. package/lib/assets/icons/chat_unread_filled.svg +3 -0
  150. package/lib/assets/icons/chat_unread_outlined.svg +3 -0
  151. package/lib/assets/icons/check.svg +3 -0
  152. package/lib/assets/icons/check_circle_filled.svg +3 -0
  153. package/lib/assets/icons/check_circle_outlined.svg +3 -0
  154. package/lib/assets/icons/check_indeterminate.svg +3 -0
  155. package/lib/assets/icons/check_small.svg +3 -0
  156. package/lib/assets/icons/checkbox_empty.svg +3 -0
  157. package/lib/assets/icons/checkbox_filled.svg +3 -0
  158. package/lib/assets/icons/checkbox_indeterminate_filled.svg +3 -0
  159. package/lib/assets/icons/checkbox_indeterminate_outlined.svg +3 -0
  160. package/lib/assets/icons/checkbox_outlined.svg +3 -0
  161. package/lib/assets/icons/clock_filled.svg +3 -0
  162. package/lib/assets/icons/clock_outlined.svg +3 -0
  163. package/lib/assets/icons/close.svg +3 -0
  164. package/lib/assets/icons/cloud_download_filled.svg +3 -0
  165. package/lib/assets/icons/cloud_download_outlined.svg +3 -0
  166. package/lib/assets/icons/cloud_filled.svg +3 -0
  167. package/lib/assets/icons/cloud_off_filled.svg +3 -0
  168. package/lib/assets/icons/cloud_off_outlined.svg +3 -0
  169. package/lib/assets/icons/cloud_outlined.svg +3 -0
  170. package/lib/assets/icons/cloud_upload_filled.svg +3 -0
  171. package/lib/assets/icons/cloud_upload_outlined.svg +3 -0
  172. package/lib/assets/icons/comment_add_filled.svg +3 -0
  173. package/lib/assets/icons/comment_add_outlined.svg +3 -0
  174. package/lib/assets/icons/comment_filled.svg +3 -0
  175. package/lib/assets/icons/comment_outlined.svg +3 -0
  176. package/lib/assets/icons/company.svg +3 -0
  177. package/lib/assets/icons/compare.svg +3 -0
  178. package/lib/assets/icons/contact_filled.svg +3 -0
  179. package/lib/assets/icons/contact_outlined.svg +3 -0
  180. package/lib/assets/icons/copy_all.svg +3 -0
  181. package/lib/assets/icons/copy_filled.svg +3 -0
  182. package/lib/assets/icons/copy_outlined.svg +3 -0
  183. package/lib/assets/icons/crisis_alert.svg +3 -0
  184. package/lib/assets/icons/cut.svg +3 -0
  185. package/lib/assets/icons/dangerous_filled.svg +3 -0
  186. package/lib/assets/icons/dangerous_outlined.svg +3 -0
  187. package/lib/assets/icons/dashboard_filled.svg +3 -0
  188. package/lib/assets/icons/dashboard_outlined.svg +3 -0
  189. package/lib/assets/icons/database_filled.svg +3 -0
  190. package/lib/assets/icons/database_outlined.svg +3 -0
  191. package/lib/assets/icons/delete_filled.svg +3 -0
  192. package/lib/assets/icons/delete_outlined.svg +3 -0
  193. package/lib/assets/icons/desktop_filled.svg +3 -0
  194. package/lib/assets/icons/desktop_outlined.svg +3 -0
  195. package/lib/assets/icons/devices_filled.svg +3 -0
  196. package/lib/assets/icons/devices_outlined.svg +3 -0
  197. package/lib/assets/icons/download.svg +3 -0
  198. package/lib/assets/icons/download_done.svg +3 -0
  199. package/lib/assets/icons/draft_filled.svg +3 -0
  200. package/lib/assets/icons/draft_outlined.svg +3 -0
  201. package/lib/assets/icons/drag_handle.svg +3 -0
  202. package/lib/assets/icons/drag_indicator.svg +3 -0
  203. package/lib/assets/icons/eco_filled.svg +3 -0
  204. package/lib/assets/icons/eco_outlined.svg +3 -0
  205. package/lib/assets/icons/edit_filled.svg +3 -0
  206. package/lib/assets/icons/edit_outlined.svg +3 -0
  207. package/lib/assets/icons/electric_meter_filled.svg +3 -0
  208. package/lib/assets/icons/electric_meter_outlined.svg +3 -0
  209. package/lib/assets/icons/error_filled.svg +3 -0
  210. package/lib/assets/icons/error_outlined.svg +3 -0
  211. package/lib/assets/icons/exclamation.svg +3 -0
  212. package/lib/assets/icons/explore_filled.svg +3 -0
  213. package/lib/assets/icons/explore_off_filled.svg +3 -0
  214. package/lib/assets/icons/explore_off_outlined.svg +3 -0
  215. package/lib/assets/icons/explore_outlined.svg +3 -0
  216. package/lib/assets/icons/explore_travel.svg +3 -0
  217. package/lib/assets/icons/export_xls_filled.svg +3 -0
  218. package/lib/assets/icons/export_xls_outlined.svg +6 -0
  219. package/lib/assets/icons/external_link.svg +3 -0
  220. package/lib/assets/icons/fast_forward_filled.svg +3 -0
  221. package/lib/assets/icons/fast_forward_outlined.svg +3 -0
  222. package/lib/assets/icons/fast_rewind_filled.svg +3 -0
  223. package/lib/assets/icons/fast_rewind_outlined.svg +3 -0
  224. package/lib/assets/icons/feedback_filled.svg +3 -0
  225. package/lib/assets/icons/feedback_outlined.svg +3 -0
  226. package/lib/assets/icons/file_copy_filled.svg +3 -0
  227. package/lib/assets/icons/file_copy_outlined.svg +3 -0
  228. package/lib/assets/icons/file_download_filled.svg +3 -0
  229. package/lib/assets/icons/file_download_outlined.svg +3 -0
  230. package/lib/assets/icons/file_upload_filled.svg +3 -0
  231. package/lib/assets/icons/file_upload_outlined.svg +3 -0
  232. package/lib/assets/icons/filter.svg +3 -0
  233. package/lib/assets/icons/filter_alt_filled.svg +3 -0
  234. package/lib/assets/icons/filter_alt_off_filled.svg +3 -0
  235. package/lib/assets/icons/filter_alt_off_outlined.svg +3 -0
  236. package/lib/assets/icons/filter_alt_outlined.svg +3 -0
  237. package/lib/assets/icons/filter_off.svg +3 -0
  238. package/lib/assets/icons/fire_filled.svg +3 -0
  239. package/lib/assets/icons/fire_outlined.svg +3 -0
  240. package/lib/assets/icons/first_page.svg +3 -0
  241. package/lib/assets/icons/fit_screen_filled.svg +3 -0
  242. package/lib/assets/icons/fit_screen_outlined.svg +3 -0
  243. package/lib/assets/icons/flag_filled.svg +3 -0
  244. package/lib/assets/icons/flag_outlined.svg +3 -0
  245. package/lib/assets/icons/flash_filled.svg +3 -0
  246. package/lib/assets/icons/flash_off_filled.svg +3 -0
  247. package/lib/assets/icons/flash_off_outlined.svg +3 -0
  248. package/lib/assets/icons/flash_outlined.svg +3 -0
  249. package/lib/assets/icons/folder_add_filled.svg +3 -0
  250. package/lib/assets/icons/folder_add_outlined.svg +3 -0
  251. package/lib/assets/icons/folder_filled.svg +3 -0
  252. package/lib/assets/icons/folder_move_filled.svg +3 -0
  253. package/lib/assets/icons/folder_move_outlined.svg +3 -0
  254. package/lib/assets/icons/folder_open_filled.svg +3 -0
  255. package/lib/assets/icons/folder_open_outlined.svg +3 -0
  256. package/lib/assets/icons/folder_outlined.svg +3 -0
  257. package/lib/assets/icons/folder_shared_filled.svg +3 -0
  258. package/lib/assets/icons/folder_shared_outlined.svg +3 -0
  259. package/lib/assets/icons/forum_filled.svg +3 -0
  260. package/lib/assets/icons/forum_outlined.svg +3 -0
  261. package/lib/assets/icons/forward.svg +3 -0
  262. package/lib/assets/icons/fullscreen.svg +3 -0
  263. package/lib/assets/icons/fullscreen_exit.svg +3 -0
  264. package/lib/assets/icons/group_add_filled.svg +3 -0
  265. package/lib/assets/icons/group_add_outlined.svg +3 -0
  266. package/lib/assets/icons/group_filled.svg +3 -0
  267. package/lib/assets/icons/group_outlined.svg +3 -0
  268. package/lib/assets/icons/groups_filled.svg +3 -0
  269. package/lib/assets/icons/groups_outlined.svg +3 -0
  270. package/lib/assets/icons/handshake_filled.svg +3 -0
  271. package/lib/assets/icons/handshake_outlined.svg +3 -0
  272. package/lib/assets/icons/headphones_filled.svg +3 -0
  273. package/lib/assets/icons/headphones_outlined.svg +3 -0
  274. package/lib/assets/icons/heart_filled.svg +3 -0
  275. package/lib/assets/icons/heart_outlined.svg +3 -0
  276. package/lib/assets/icons/help_filled.svg +3 -0
  277. package/lib/assets/icons/help_outlined.svg +3 -0
  278. package/lib/assets/icons/history.svg +3 -0
  279. package/lib/assets/icons/home_filled.svg +3 -0
  280. package/lib/assets/icons/home_outlined.svg +3 -0
  281. package/lib/assets/icons/hourglass_empty.svg +3 -0
  282. package/lib/assets/icons/hourglass_filled.svg +3 -0
  283. package/lib/assets/icons/hourglass_outlined.svg +3 -0
  284. package/lib/assets/icons/image_broken_filled.svg +3 -0
  285. package/lib/assets/icons/image_broken_outlined.svg +3 -0
  286. package/lib/assets/icons/image_filled.svg +3 -0
  287. package/lib/assets/icons/image_gallery_filled.svg +3 -0
  288. package/lib/assets/icons/image_gallery_outlined.svg +3 -0
  289. package/lib/assets/icons/image_outlined.svg +3 -0
  290. package/lib/assets/icons/inbox_filled.svg +3 -0
  291. package/lib/assets/icons/inbox_outlined.svg +3 -0
  292. package/lib/assets/icons/info_filled.svg +3 -0
  293. package/lib/assets/icons/info_i.svg +3 -0
  294. package/lib/assets/icons/info_outlined.svg +3 -0
  295. package/lib/assets/icons/keep_filled.svg +3 -0
  296. package/lib/assets/icons/keep_off_filled.svg +3 -0
  297. package/lib/assets/icons/keep_off_outlined.svg +3 -0
  298. package/lib/assets/icons/keep_outlined.svg +3 -0
  299. package/lib/assets/icons/label_filled.svg +3 -0
  300. package/lib/assets/icons/label_outlined.svg +3 -0
  301. package/lib/assets/icons/language.svg +3 -0
  302. package/lib/assets/icons/laptop_filled.svg +3 -0
  303. package/lib/assets/icons/laptop_outlined.svg +3 -0
  304. package/lib/assets/icons/last_page.svg +3 -0
  305. package/lib/assets/icons/left_panel_close_filled.svg +3 -0
  306. package/lib/assets/icons/left_panel_close_outlined.svg +3 -0
  307. package/lib/assets/icons/left_panel_open_filled.svg +3 -0
  308. package/lib/assets/icons/left_panel_open_outlined.svg +3 -0
  309. package/lib/assets/icons/light_off_filled.svg +3 -0
  310. package/lib/assets/icons/light_off_outlined.svg +3 -0
  311. package/lib/assets/icons/lightbulb_alt_filled.svg +3 -0
  312. package/lib/assets/icons/lightbulb_alt_outlined.svg +3 -0
  313. package/lib/assets/icons/lightbulb_circle_filled.svg +3 -0
  314. package/lib/assets/icons/lightbulb_circle_outlined.svg +3 -0
  315. package/lib/assets/icons/lightbulb_filled.svg +3 -0
  316. package/lib/assets/icons/lightbulb_outlined.svg +3 -0
  317. package/lib/assets/icons/link.svg +3 -0
  318. package/lib/assets/icons/link_off.svg +3 -0
  319. package/lib/assets/icons/list.svg +3 -0
  320. package/lib/assets/icons/list_alt_filled.svg +3 -0
  321. package/lib/assets/icons/list_alt_outlined.svg +3 -0
  322. package/lib/assets/icons/location_disabled.svg +10 -0
  323. package/lib/assets/icons/location_me_filled.svg +3 -0
  324. package/lib/assets/icons/location_me_outlined.svg +3 -0
  325. package/lib/assets/icons/location_off_filled.svg +3 -0
  326. package/lib/assets/icons/location_off_outlined.svg +3 -0
  327. package/lib/assets/icons/location_on_filled.svg +3 -0
  328. package/lib/assets/icons/location_on_outlined.svg +3 -0
  329. package/lib/assets/icons/lock_filled.svg +3 -0
  330. package/lib/assets/icons/lock_open_filled.svg +3 -0
  331. package/lib/assets/icons/lock_open_outlined.svg +3 -0
  332. package/lib/assets/icons/lock_open_right_filled.svg +3 -0
  333. package/lib/assets/icons/lock_open_right_outlined.svg +3 -0
  334. package/lib/assets/icons/lock_outlined.svg +3 -0
  335. package/lib/assets/icons/login.svg +3 -0
  336. package/lib/assets/icons/logout.svg +3 -0
  337. package/lib/assets/icons/mail_filled.svg +3 -0
  338. package/lib/assets/icons/mail_outlined.svg +3 -0
  339. package/lib/assets/icons/mail_unread_filled.svg +3 -0
  340. package/lib/assets/icons/mail_unread_outlined.svg +3 -0
  341. package/lib/assets/icons/map_filled.svg +3 -0
  342. package/lib/assets/icons/map_outlined.svg +3 -0
  343. package/lib/assets/icons/menu.svg +3 -0
  344. package/lib/assets/icons/menu_open.svg +3 -0
  345. package/lib/assets/icons/mic_filled.svg +3 -0
  346. package/lib/assets/icons/mic_off_filled.svg +3 -0
  347. package/lib/assets/icons/mic_off_outlined.svg +3 -0
  348. package/lib/assets/icons/mic_outlined.svg +3 -0
  349. package/lib/assets/icons/mode_dark_filled.svg +3 -0
  350. package/lib/assets/icons/mode_dark_outlined.svg +3 -0
  351. package/lib/assets/icons/mode_light_filled.svg +10 -0
  352. package/lib/assets/icons/mode_light_outlined.svg +10 -0
  353. package/lib/assets/icons/monitoring.svg +3 -0
  354. package/lib/assets/icons/more_down.svg +3 -0
  355. package/lib/assets/icons/more_horiz.svg +3 -0
  356. package/lib/assets/icons/more_up.svg +3 -0
  357. package/lib/assets/icons/more_vert.svg +3 -0
  358. package/lib/assets/icons/notification_filled.svg +3 -0
  359. package/lib/assets/icons/notification_important_filled.svg +3 -0
  360. package/lib/assets/icons/notification_important_outlined.svg +3 -0
  361. package/lib/assets/icons/notification_off_filled.svg +3 -0
  362. package/lib/assets/icons/notification_off_outlined.svg +3 -0
  363. package/lib/assets/icons/notification_outlined.svg +3 -0
  364. package/lib/assets/icons/notification_unread_filled.svg +3 -0
  365. package/lib/assets/icons/notification_unread_outlined.svg +3 -0
  366. package/lib/assets/icons/ohm.svg +3 -0
  367. package/lib/assets/icons/open_in_full.svg +3 -0
  368. package/lib/assets/icons/palette_filled.svg +3 -0
  369. package/lib/assets/icons/palette_outlined.svg +3 -0
  370. package/lib/assets/icons/paste.svg +3 -0
  371. package/lib/assets/icons/pause_circle_filled.svg +3 -0
  372. package/lib/assets/icons/pause_circle_outlined.svg +3 -0
  373. package/lib/assets/icons/pause_filled.svg +3 -0
  374. package/lib/assets/icons/pause_outlined.svg +3 -0
  375. package/lib/assets/icons/photo_camera_filled.svg +3 -0
  376. package/lib/assets/icons/photo_camera_outlined.svg +3 -0
  377. package/lib/assets/icons/play_circle_filled.svg +3 -0
  378. package/lib/assets/icons/play_circle_outlined.svg +3 -0
  379. package/lib/assets/icons/play_filled.svg +3 -0
  380. package/lib/assets/icons/play_outlined.svg +3 -0
  381. package/lib/assets/icons/play_pause.svg +3 -0
  382. package/lib/assets/icons/power_filled.svg +3 -0
  383. package/lib/assets/icons/power_input.svg +3 -0
  384. package/lib/assets/icons/power_off_filled.svg +3 -0
  385. package/lib/assets/icons/power_off_outlined.svg +3 -0
  386. package/lib/assets/icons/power_outlined.svg +3 -0
  387. package/lib/assets/icons/power_plug.svg +3 -0
  388. package/lib/assets/icons/power_plug_connect_filled.svg +3 -0
  389. package/lib/assets/icons/power_plug_connect_outlined.svg +3 -0
  390. package/lib/assets/icons/power_settings.svg +3 -0
  391. package/lib/assets/icons/power_settings_circle_filled.svg +3 -0
  392. package/lib/assets/icons/power_settings_circle_outlined.svg +3 -0
  393. package/lib/assets/icons/power_solar_filled.svg +3 -0
  394. package/lib/assets/icons/power_solar_outlined.svg +3 -0
  395. package/lib/assets/icons/power_switch_filled.svg +3 -0
  396. package/lib/assets/icons/power_switch_outlined.svg +3 -0
  397. package/lib/assets/icons/power_wind_filled.svg +3 -0
  398. package/lib/assets/icons/power_wind_outlined.svg +3 -0
  399. package/lib/assets/icons/print_filled.svg +3 -0
  400. package/lib/assets/icons/print_outlined.svg +3 -0
  401. package/lib/assets/icons/priority_high.svg +3 -0
  402. package/lib/assets/icons/public.svg +3 -0
  403. package/lib/assets/icons/publish.svg +3 -0
  404. package/lib/assets/icons/question_mark.svg +3 -0
  405. package/lib/assets/icons/radar.svg +3 -0
  406. package/lib/assets/icons/radio_button_empty.svg +3 -0
  407. package/lib/assets/icons/redo.svg +3 -0
  408. package/lib/assets/icons/reload.svg +3 -0
  409. package/lib/assets/icons/remove.svg +3 -0
  410. package/lib/assets/icons/reply.svg +3 -0
  411. package/lib/assets/icons/reply_all.svg +3 -0
  412. package/lib/assets/icons/right_panel_close_filled.svg +3 -0
  413. package/lib/assets/icons/right_panel_close_outlined.svg +3 -0
  414. package/lib/assets/icons/right_panel_open_filled.svg +3 -0
  415. package/lib/assets/icons/right_panel_open_outlined.svg +3 -0
  416. package/lib/assets/icons/route.svg +3 -0
  417. package/lib/assets/icons/save_filled.svg +3 -0
  418. package/lib/assets/icons/save_outlined.svg +3 -0
  419. package/lib/assets/icons/search.svg +3 -0
  420. package/lib/assets/icons/send_filled.svg +3 -0
  421. package/lib/assets/icons/send_outlined.svg +3 -0
  422. package/lib/assets/icons/settings_filled.svg +3 -0
  423. package/lib/assets/icons/settings_outlined.svg +3 -0
  424. package/lib/assets/icons/share_filled.svg +3 -0
  425. package/lib/assets/icons/share_outlined.svg +3 -0
  426. package/lib/assets/icons/side_navigation.svg +3 -0
  427. package/lib/assets/icons/skip_next_filled.svg +3 -0
  428. package/lib/assets/icons/skip_next_outlined.svg +3 -0
  429. package/lib/assets/icons/skip_previous_filled.svg +3 -0
  430. package/lib/assets/icons/skip_previous_outlined.svg +3 -0
  431. package/lib/assets/icons/smartphone_filled.svg +3 -0
  432. package/lib/assets/icons/smartphone_outlined.svg +3 -0
  433. package/lib/assets/icons/sort.svg +3 -0
  434. package/lib/assets/icons/star_filled.svg +3 -0
  435. package/lib/assets/icons/star_outlined.svg +3 -0
  436. package/lib/assets/icons/sticky_note_filled.svg +3 -0
  437. package/lib/assets/icons/sticky_note_outlined.svg +3 -0
  438. package/lib/assets/icons/stop_circle_filled.svg +3 -0
  439. package/lib/assets/icons/stop_circle_outlined.svg +3 -0
  440. package/lib/assets/icons/stop_filled.svg +3 -0
  441. package/lib/assets/icons/stop_outlined.svg +3 -0
  442. package/lib/assets/icons/subtitles_filled.svg +3 -0
  443. package/lib/assets/icons/subtitles_outlined.svg +3 -0
  444. package/lib/assets/icons/support_agent.svg +3 -0
  445. package/lib/assets/icons/swap_horiz.svg +3 -0
  446. package/lib/assets/icons/swap_vert.svg +3 -0
  447. package/lib/assets/icons/text_snippet_filled.svg +3 -0
  448. package/lib/assets/icons/text_snippet_outlined.svg +3 -0
  449. package/lib/assets/icons/timeline.svg +3 -0
  450. package/lib/assets/icons/trash_restore_filled.svg +3 -0
  451. package/lib/assets/icons/trash_restore_outlined.svg +3 -0
  452. package/lib/assets/icons/trending_down.svg +3 -0
  453. package/lib/assets/icons/trending_flat.svg +3 -0
  454. package/lib/assets/icons/trending_up.svg +3 -0
  455. package/lib/assets/icons/tune.svg +3 -0
  456. package/lib/assets/icons/unarchive_filled.svg +3 -0
  457. package/lib/assets/icons/unarchive_outlined.svg +3 -0
  458. package/lib/assets/icons/undo.svg +3 -0
  459. package/lib/assets/icons/upload.svg +3 -0
  460. package/lib/assets/icons/user_add_filled.svg +3 -0
  461. package/lib/assets/icons/user_add_outlined.svg +3 -0
  462. package/lib/assets/icons/user_circle_filled.svg +3 -0
  463. package/lib/assets/icons/user_circle_outlined.svg +3 -0
  464. package/lib/assets/icons/user_filled.svg +3 -0
  465. package/lib/assets/icons/user_outlined.svg +3 -0
  466. package/lib/assets/icons/user_settings_filled.svg +3 -0
  467. package/lib/assets/icons/user_settings_outlined.svg +3 -0
  468. package/lib/assets/icons/verified_filled.svg +3 -0
  469. package/lib/assets/icons/verified_outlined.svg +3 -0
  470. package/lib/assets/icons/video_camera_filled.svg +3 -0
  471. package/lib/assets/icons/video_camera_off_filled.svg +3 -0
  472. package/lib/assets/icons/video_camera_off_outlined.svg +3 -0
  473. package/lib/assets/icons/video_camera_outlined.svg +3 -0
  474. package/lib/assets/icons/video_gallery_filled.svg +3 -0
  475. package/lib/assets/icons/video_gallery_outlined.svg +3 -0
  476. package/lib/assets/icons/view_agenda_filled.svg +3 -0
  477. package/lib/assets/icons/view_agenda_outlined.svg +3 -0
  478. package/lib/assets/icons/view_column_filled.svg +3 -0
  479. package/lib/assets/icons/view_column_outlined.svg +3 -0
  480. package/lib/assets/icons/view_grid_filled.svg +3 -0
  481. package/lib/assets/icons/view_grid_outlined.svg +3 -0
  482. package/lib/assets/icons/view_kanban_filled.svg +3 -0
  483. package/lib/assets/icons/view_kanban_outlined.svg +3 -0
  484. package/lib/assets/icons/view_module_filled.svg +3 -0
  485. package/lib/assets/icons/view_module_outlined.svg +3 -0
  486. package/lib/assets/icons/view_timeline_filled.svg +3 -0
  487. package/lib/assets/icons/view_timeline_outlined.svg +3 -0
  488. package/lib/assets/icons/visibility_hide_filled.svg +3 -0
  489. package/lib/assets/icons/visibility_hide_outlined.svg +3 -0
  490. package/lib/assets/icons/visibility_show_filled.svg +3 -0
  491. package/lib/assets/icons/visibility_show_outlined.svg +3 -0
  492. package/lib/assets/icons/volume_down_filled.svg +3 -0
  493. package/lib/assets/icons/volume_down_outlined.svg +3 -0
  494. package/lib/assets/icons/volume_mute_filled.svg +3 -0
  495. package/lib/assets/icons/volume_mute_outlined.svg +3 -0
  496. package/lib/assets/icons/volume_off_filled.svg +3 -0
  497. package/lib/assets/icons/volume_off_outlined.svg +3 -0
  498. package/lib/assets/icons/volume_up_filled.svg +3 -0
  499. package/lib/assets/icons/volume_up_outlined.svg +3 -0
  500. package/lib/assets/icons/warning_filled.svg +3 -0
  501. package/lib/assets/icons/warning_outlined.svg +3 -0
  502. package/lib/assets/icons/water.svg +3 -0
  503. package/lib/assets/icons/water_alt.svg +3 -0
  504. package/lib/assets/icons/waterdrop_filled.svg +3 -0
  505. package/lib/assets/icons/waterdrop_outlined.svg +3 -0
  506. package/lib/assets/icons/wifi.svg +3 -0
  507. package/lib/assets/icons/wifi_off.svg +3 -0
  508. package/lib/assets/icons/windmill.svg +3 -0
  509. package/lib/assets/icons/zoom_in.svg +3 -0
  510. package/lib/assets/icons/zoom_out.svg +3 -0
  511. package/lib/components/accordion/accordion.component.d.ts +29 -0
  512. package/lib/components/avatar/assets/status/status.component.d.ts +8 -0
  513. package/lib/components/avatar/avatar.component.d.ts +24 -0
  514. package/lib/components/badge/badge.directive.d.ts +1 -1
  515. package/lib/components/button/button.component.d.ts +6 -1
  516. package/lib/components/card/card.component.d.ts +2 -4
  517. package/lib/components/checkbox/checkbox.component.d.ts +2 -1
  518. package/lib/components/chip/chip.component.d.ts +1 -1
  519. package/lib/components/drawer/drawer-trigger/drawer-trigger.directive.d.ts +9 -0
  520. package/lib/components/drawer/drawer.component.d.ts +54 -0
  521. package/lib/components/drawer/drawer.directive.d.ts +60 -0
  522. package/lib/components/drawer/drawer.module.d.ts +8 -0
  523. package/lib/components/icon/icon-map.d.ts +7 -0
  524. package/lib/components/icon/icon.component.d.ts +1 -1
  525. package/lib/components/icon-button/icon-button.component.d.ts +3 -3
  526. package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +2 -2
  527. package/lib/components/popover/popover.component.d.ts +1 -1
  528. package/lib/components/segmented-control/segmented-control.component.d.ts +1 -1
  529. package/lib/components/split-button/split-button.component.d.ts +2 -2
  530. package/lib/components/tag/tag.component.d.ts +2 -2
  531. package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +2 -2
  532. package/lib/components/tooltip/tooltip.component.d.ts +1 -1
  533. package/lib/components/treeview/index.d.ts +3 -0
  534. package/lib/components/treeview/treeview-check.service.d.ts +10 -0
  535. package/lib/components/treeview/treeview-item/treeview-item-border/treeview-item-border.component.d.ts +10 -0
  536. package/lib/components/treeview/treeview-item/treeview-item.component.d.ts +71 -0
  537. package/lib/components/treeview/treeview-keyboard.service.d.ts +10 -0
  538. package/lib/components/treeview/treeview-selection.service.d.ts +9 -0
  539. package/lib/components/treeview/treeview.component.d.ts +43 -0
  540. package/package.json +2 -2
  541. package/public-api.d.ts +7 -0
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, computed, Component, ChangeDetectionStrategy, HostBinding, Directive, inject, Injectable, DestroyRef, ChangeDetectorRef, effect, ElementRef, ViewContainerRef, Renderer2, HostListener, output, signal, TemplateRef, contentChild, viewChild, viewChildren, NgModule, RendererFactory2 } from '@angular/core';
2
+ import { inject, Injectable, input, DestroyRef, ChangeDetectorRef, effect, Component, ChangeDetectionStrategy, computed, HostBinding, Directive, ElementRef, ViewContainerRef, Renderer2, HostListener, output, signal, TemplateRef, contentChild, viewChild, viewChildren, NgModule, RendererFactory2, Injector, untracked, afterNextRender } from '@angular/core';
3
+ import { ButtonIconSize, getAutoPlacement, getCoordinates, shouldUseDrawerDefaultHeader, shouldUseDrawerDefaultFooter, DRAWER_PADDING, waitForNextFrame as waitForNextFrame$1, DRAWER_TRANSITION_DURATION, getDrawerConfigurationIssues, dividerAppearanceBySideNavAppearance as dividerAppearanceBySideNavAppearance$1 } from '@design-system-rte/core';
3
4
  import * as i1 from '@angular/common';
4
5
  import { CommonModule } from '@angular/common';
5
6
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@@ -7,13 +8,12 @@ import { DomSanitizer } from '@angular/platform-browser';
7
8
  import { HttpClient } from '@angular/common/http';
8
9
  import { isValidIconName as isValidIconName$1 } from '@design-system-rte/core/components/icon/icon-utils';
9
10
  import { labelSize } from '@design-system-rte/core/components/radio-button/radio-button.constants';
10
- import { getAutoPlacement, getCoordinates, dividerAppearanceBySideNavAppearance as dividerAppearanceBySideNavAppearance$1 } from '@design-system-rte/core';
11
11
  import { TOOLTIP_GAP, TOOLTIP_FADE_OUT_DURATION } from '@design-system-rte/core/components/tooltip/tooltip.constants';
12
12
  import { getTooltipGap } from '@design-system-rte/core/components/tooltip/tooltip.utils';
13
13
  import { FOCUSABLE_ELEMENTS_QUERY, FOCUSABLE_BUTTONS_QUERY } from '@design-system-rte/core/constants/dom/dom.constants';
14
14
  import { getShowIcon, getShowText, getDisplayCount, getBadgeIconSize, getShowBadge, shouldDisplayBadge } from '@design-system-rte/core/components/badge/badge.utils';
15
15
  import { splitButtonLeftIconSize, splitButtonRightIconSize } from '@design-system-rte/core/components/split-button/split-button.constants';
16
- import { SPACE_KEY, ENTER_KEY, ARROW_DOWN_KEY, ARROW_UP_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ESCAPE_KEY, TAB_KEY, BACKSPACE_KEY, DELETE_KEY } from '@design-system-rte/core/constants/keyboard/keyboard.constants';
16
+ import { SPACE_KEY, ENTER_KEY, ARROW_DOWN_KEY, ARROW_UP_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ESCAPE_KEY, TAB_KEY, BACKSPACE_KEY, DELETE_KEY, ARROW_KEYS } from '@design-system-rte/core/constants/keyboard/keyboard.constants';
17
17
  import { DropdownManager } from '@design-system-rte/core/components/dropdown/DropdownManager';
18
18
  import { getAutoPlacementDropdown, getAutoAlignment, getCoordinates as getCoordinates$1, getAutoPlacement as getAutoPlacement$1 } from '@design-system-rte/core/components/utils/auto-placement';
19
19
  import { logWarn, logError } from '@design-system-rte/core/utils/log-handlers';
@@ -21,7 +21,7 @@ import { BehaviorSubject } from 'rxjs';
21
21
  import { map } from 'rxjs/operators';
22
22
  import { waitForNextFrame } from '@design-system-rte/core/common/animation';
23
23
  import { DROPDOWN_ANIMATION_DURATION } from '@design-system-rte/core/components/dropdown/dropdown.constants';
24
- import { ButtonIconSize } from '@design-system-rte/core/components/button/common/common-button.constants';
24
+ import { ButtonIconSize as ButtonIconSize$1 } from '@design-system-rte/core/components/button/common/common-button.constants';
25
25
  import { loaderSize } from '@design-system-rte/core/components/loader/loader.constants';
26
26
  import { CHIP_TYPE_TO_ARIA_ROLE_MAP } from '@design-system-rte/core/components/chip/chip.constants';
27
27
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
@@ -31,7 +31,8 @@ import { switchHeight, switchWidth } from '@design-system-rte/core/components/sw
31
31
  import { isValidSegmentedControlOptions, focusNextSegmentElement, focusPreviousSegmentElement, focusPreviousNotSegmentElement, focusNextNotSegmentElement, getSegmentPosition } from '@design-system-rte/core/components/segmented-control/segmented-control-utils';
32
32
  import { BREADCRUMBS_DEFAULT_ARIA_LABEL } from '@design-system-rte/core/components/breadcrumbs/breadcrumbs.constants';
33
33
  import { shouldTruncateBreadcrumbs, getBreadcrumbsTruncatedItems } from '@design-system-rte/core/components/breadcrumbs/breadcrumbs.utils';
34
- import { cardSize } from '@design-system-rte/core/components/card/card.constats';
34
+ import { AccordionIconSizeMap } from '@design-system-rte/core/components/accordion/accordion.constants';
35
+ import { DEFAULT_CARD_WIDTH } from '@design-system-rte/core/components/card/card.constants';
35
36
  import { POPOVER_GAP_ARROW, POPOVER_GAP } from '@design-system-rte/core/components/popover/popover.constants';
36
37
  import { IconSize, IconTypeMap } from '@design-system-rte/core/components/icon/icon.constants';
37
38
  import { APPEARANCE_CONFIG, SEARCHBAR_BORDER_RADIUS, SEARCHBAR_PADDING_LEFT, SEARCHBAR_BUTTON_WIDTH, SEARCHBAR_BUTTON_HEIGHT_COMPACT } from '@design-system-rte/core/components/searchbar/searchbar.constants';
@@ -46,105 +47,16 @@ import { getSelectedOption } from '@design-system-rte/core/components/select/sel
46
47
  import { ASSISTIVE_TEXT_ICON_SIZE } from '@design-system-rte/core/components/assistive-text/assistive-text.constants';
47
48
  import { getIconNameFromAppearance } from '@design-system-rte/core/components/assistive-text/assistive-text.utils';
48
49
  import { scrollToSelectedTab } from '@design-system-rte/core/components/tab/tab.utils';
49
-
50
- class ButtonComponent {
51
- constructor() {
52
- this.rteButtonVariant = input("primary");
53
- this.rteButtonSize = input("m");
54
- this.rteBadgeCount = input();
55
- this.rteBadgeContent = input();
56
- this.shouldDisplayBadge = computed(() => {
57
- const count = this.rteBadgeCount();
58
- const content = this.rteBadgeContent();
59
- return (count && count > 0 && content === "number") || content === "icon";
60
- });
61
- }
62
- get classes() {
63
- return `rte-button ${this.rteButtonVariant()} size-${this.rteButtonSize()}`;
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "button[rteButton]", inputs: { rteButtonVariant: { classPropertyName: "rteButtonVariant", publicName: "rteButtonVariant", isSignal: true, isRequired: false, transformFunction: null }, rteButtonSize: { classPropertyName: "rteButtonSize", publicName: "rteButtonSize", isSignal: true, isRequired: false, transformFunction: null }, rteBadgeCount: { classPropertyName: "rteBadgeCount", publicName: "rteBadgeCount", isSignal: true, isRequired: false, transformFunction: null }, rteBadgeContent: { classPropertyName: "rteBadgeContent", publicName: "rteBadgeContent", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "<span class=\"rte-button-label\">\n <ng-content />\n <!-- Le badge est g\u00E9r\u00E9 par BadgeDirective attach\u00E9e via hostDirectives -->\n</span>\n", styles: [":host{display:inline-flex;flex-shrink:0;align-items:center;cursor:pointer;justify-content:center;width:fit-content}:host:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}:host.size-s{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;height:24px;border-radius:4px;padding:4px 8px}:host.size-s .rte-button-label{margin:0 4px}:host.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;height:32px;border-radius:4px;padding:4px 12px}:host.size-m .rte-button-label{margin:0 6px}:host.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;height:40px;border-radius:8px;padding:4px 16px}:host.size-l .rte-button-label{margin:0 8px}:host.primary{border:var(--border-brand-default);color:var(--content-primary-inverse);background:var(--background-brand-default)}:host.primary:hover{background:var(--background-brand-hover);border:var(--background-brand-hover)}:host.primary:active{background:var(--background-brand-pressed)}:host.primary:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}:host.secondary{background:var(--background-default);border:solid 1px var(--border-brand-default);color:var(--content-brand-default)}:host.secondary:hover{background:var(--background-brand-inverse-hover)}:host.secondary:active{background:var(--background-brand-inverse-pressed)}:host.secondary:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);cursor:default}:host.text{background:transparent;border:none;color:var(--content-brand-default)}:host.text:hover{background:var(--background-brand-inverse-hover)}:host.text:active{background:var(--background-brand-inverse-pressed)}:host.text:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:default}:host.transparent{background:transparent;border:none;color:var(--content-brand-default)}:host.transparent:hover{color:var(--content-brand-hover)}:host.transparent:active{color:var(--content-brand-pressed)}:host.transparent:disabled{color:var(--content-disabled);box-shadow:none;cursor:default}:host.danger{background:var(--background-danger-default);border:none;color:var(--content-primary-inverse)}:host.danger:hover{background:var(--background-danger-hover)}:host.danger:active{background:var(--background-danger-pressed)}:host.danger:disabled{background:var(--background-disabled);border:var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}:host.neutral{background:none;border:none;color:var(--content-primary)}:host.neutral:hover{color:var(--content-secondary)}:host.neutral:active{color:var(--content-tertiary)}:host.neutral:disabled{background:var(--background-disabled);box-shadow:none;color:var(--content-disabled);cursor:default}:host.reverse{background:none;border:none;color:var(--content-primary-inverse)}:host.reverse:hover{color:var(--background-hover)}:host.reverse:active{color:var(--content-primary-inverse)}:host.reverse:disabled{background:var(--background-disabled);box-shadow:none;color:var(--content-disabled);cursor:default}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, decorators: [{
69
- type: Component,
70
- args: [{ selector: "button[rteButton]", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span class=\"rte-button-label\">\n <ng-content />\n <!-- Le badge est g\u00E9r\u00E9 par BadgeDirective attach\u00E9e via hostDirectives -->\n</span>\n", styles: [":host{display:inline-flex;flex-shrink:0;align-items:center;cursor:pointer;justify-content:center;width:fit-content}:host:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}:host.size-s{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;height:24px;border-radius:4px;padding:4px 8px}:host.size-s .rte-button-label{margin:0 4px}:host.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;height:32px;border-radius:4px;padding:4px 12px}:host.size-m .rte-button-label{margin:0 6px}:host.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;height:40px;border-radius:8px;padding:4px 16px}:host.size-l .rte-button-label{margin:0 8px}:host.primary{border:var(--border-brand-default);color:var(--content-primary-inverse);background:var(--background-brand-default)}:host.primary:hover{background:var(--background-brand-hover);border:var(--background-brand-hover)}:host.primary:active{background:var(--background-brand-pressed)}:host.primary:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}:host.secondary{background:var(--background-default);border:solid 1px var(--border-brand-default);color:var(--content-brand-default)}:host.secondary:hover{background:var(--background-brand-inverse-hover)}:host.secondary:active{background:var(--background-brand-inverse-pressed)}:host.secondary:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);cursor:default}:host.text{background:transparent;border:none;color:var(--content-brand-default)}:host.text:hover{background:var(--background-brand-inverse-hover)}:host.text:active{background:var(--background-brand-inverse-pressed)}:host.text:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:default}:host.transparent{background:transparent;border:none;color:var(--content-brand-default)}:host.transparent:hover{color:var(--content-brand-hover)}:host.transparent:active{color:var(--content-brand-pressed)}:host.transparent:disabled{color:var(--content-disabled);box-shadow:none;cursor:default}:host.danger{background:var(--background-danger-default);border:none;color:var(--content-primary-inverse)}:host.danger:hover{background:var(--background-danger-hover)}:host.danger:active{background:var(--background-danger-pressed)}:host.danger:disabled{background:var(--background-disabled);border:var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}:host.neutral{background:none;border:none;color:var(--content-primary)}:host.neutral:hover{color:var(--content-secondary)}:host.neutral:active{color:var(--content-tertiary)}:host.neutral:disabled{background:var(--background-disabled);box-shadow:none;color:var(--content-disabled);cursor:default}:host.reverse{background:none;border:none;color:var(--content-primary-inverse)}:host.reverse:hover{color:var(--background-hover)}:host.reverse:active{color:var(--content-primary-inverse)}:host.reverse:disabled{background:var(--background-disabled);box-shadow:none;color:var(--content-disabled);cursor:default}\n"] }]
71
- }], propDecorators: { classes: [{
72
- type: HostBinding,
73
- args: ["class"]
74
- }] } });
75
-
76
- class GridDirective {
77
- get hostClasses() {
78
- return "grid";
79
- }
80
- get hostDataClasses() {
81
- const variation = this.gridType();
82
- return `${variation}`;
83
- }
84
- constructor() {
85
- this.gridType = input("fluid");
86
- }
87
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
88
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: GridDirective, isStandalone: true, selector: "[rteGrid]", inputs: { gridType: { classPropertyName: "gridType", publicName: "gridType", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClasses", "attr.data-gridtype": "this.hostDataClasses" } }, ngImport: i0 }); }
89
- }
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridDirective, decorators: [{
91
- type: Directive,
92
- args: [{
93
- selector: "[rteGrid]",
94
- standalone: true,
95
- }]
96
- }], ctorParameters: () => [], propDecorators: { hostClasses: [{
97
- type: HostBinding,
98
- args: ["class"]
99
- }], hostDataClasses: [{
100
- type: HostBinding,
101
- args: ["attr.data-gridtype"]
102
- }] } });
103
-
104
- class ColDirective {
105
- get colClasses() {
106
- return [
107
- "col",
108
- this.generateColumnClass("col-xxs", this.xxs()),
109
- this.generateColumnClass("col-xs", this.xs()),
110
- this.generateColumnClass("col-s", this.s()),
111
- this.generateColumnClass("col-m", this.m()),
112
- this.generateColumnClass("col-l", this.l()),
113
- this.generateColumnClass("col-xl", this.xl()),
114
- ]
115
- .filter(Boolean)
116
- .join(" ");
117
- }
118
- constructor() {
119
- this.xxs = input();
120
- this.xs = input();
121
- this.s = input();
122
- this.m = input();
123
- this.l = input();
124
- this.xl = input();
125
- }
126
- generateColumnClass(prefix, size) {
127
- return size ? `${prefix}-${size}` : "";
128
- }
129
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
130
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: ColDirective, isStandalone: true, selector: "[rteCol]", inputs: { xxs: { classPropertyName: "xxs", publicName: "xxs", isSignal: true, isRequired: false, transformFunction: null }, xs: { classPropertyName: "xs", publicName: "xs", isSignal: true, isRequired: false, transformFunction: null }, s: { classPropertyName: "s", publicName: "s", isSignal: true, isRequired: false, transformFunction: null }, m: { classPropertyName: "m", publicName: "m", isSignal: true, isRequired: false, transformFunction: null }, l: { classPropertyName: "l", publicName: "l", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "xl", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.colClasses" } }, ngImport: i0 }); }
131
- }
132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColDirective, decorators: [{
133
- type: Directive,
134
- args: [{
135
- selector: "[rteCol]",
136
- standalone: true,
137
- }]
138
- }], ctorParameters: () => [], propDecorators: { colClasses: [{
139
- type: HostBinding,
140
- args: ["class"]
141
- }] } });
50
+ import { computeCheckedIdsAfterToggle, getChildBorderTypes, hasChildren, allDescendantsChecked, isNodeIndeterminate, isItemSelected, buildTreeviewNodeId, computeCheckboxId, computeConnectorBorderTypes, canToggleOpen, getTreeviewItemKey } from '@design-system-rte/core/components/treeview/treeview.utils';
51
+ import { parsePathString, getNodeAtPath, TREEVIEW_BORDER_SVG_MAP_COMPACT, TREEVIEW_BORDER_SVG_MAP, isTreeviewFocusable, getVisibleFocusableRows, findFocusedPosition, getNextFocusTarget, setMovingTabindex, resetMovingTabIndex, hasNestedItemsInTree } from '@design-system-rte/core/components/treeview';
52
+ import { IconSizeMap, StatusIndicatorSizeMap } from '@design-system-rte/core/components/avatar';
53
+ import { computeBackgroundColor, computeMaskImage } from '@design-system-rte/core/components/avatar/avatar.utils';
142
54
 
143
55
  // This file is auto-generated. Do not edit manually.
144
56
  const RegularIcons = {
145
- add: "add",
57
+ "add": "add",
146
58
  "alt-route": "alt_route",
147
- apps: "apps",
59
+ "apps": "apps",
148
60
  "arrow-alt-down": "arrow_alt_down",
149
61
  "arrow-alt-down-left": "arrow_alt_down_left",
150
62
  "arrow-alt-down-right": "arrow_alt_down_right",
@@ -161,6 +73,7 @@ const RegularIcons = {
161
73
  "arrow-chevron-left": "arrow_chevron_left",
162
74
  "arrow-chevron-right": "arrow_chevron_right",
163
75
  "arrow-chevron-up": "arrow_chevron_up",
76
+ "arrow-compare": "arrow_compare",
164
77
  "arrow-double-down": "arrow_double_down",
165
78
  "arrow-double-left": "arrow_double_left",
166
79
  "arrow-double-right": "arrow_double_right",
@@ -175,100 +88,103 @@ const RegularIcons = {
175
88
  "arrow-up": "arrow_up",
176
89
  "arrow-up-left": "arrow_up_left",
177
90
  "arrow-up-right": "arrow_up_right",
178
- asterisk: "asterisk",
91
+ "asterisk": "asterisk",
179
92
  "attach-file": "attach_file",
180
93
  "battery-alt-empty": "battery_alt_empty",
181
94
  "battery-alt-full": "battery_alt_full",
182
95
  "battery-charging": "battery_charging",
183
96
  "battery-empty": "battery_empty",
184
97
  "battery-full": "battery_full",
185
- bluetooth: "bluetooth",
98
+ "bluetooth": "bluetooth",
186
99
  "bluetooth-off": "bluetooth_off",
187
100
  "chart-bar": "chart_bar",
188
101
  "chart-bar-stacked": "chart_bar_stacked",
189
- check: "check",
102
+ "check": "check",
190
103
  "check-indeterminate": "check_indeterminate",
191
104
  "check-small": "check_small",
192
105
  "checkbox-empty": "checkbox_empty",
193
- close: "close",
194
- compare: "compare",
106
+ "close": "close",
107
+ "company": "company",
108
+ "compare": "compare",
195
109
  "copy-all": "copy_all",
196
110
  "crisis-alert": "crisis_alert",
197
- cut: "cut",
198
- download: "download",
111
+ "cut": "cut",
112
+ "download": "download",
199
113
  "download-done": "download_done",
200
114
  "drag-handle": "drag_handle",
201
115
  "drag-indicator": "drag_indicator",
202
- exclamation: "exclamation",
116
+ "exclamation": "exclamation",
203
117
  "explore-travel": "explore_travel",
204
118
  "external-link": "external_link",
205
- filter: "filter",
119
+ "filter": "filter",
206
120
  "filter-off": "filter_off",
207
121
  "first-page": "first_page",
208
- forward: "forward",
209
- fullscreen: "fullscreen",
122
+ "forward": "forward",
123
+ "fullscreen": "fullscreen",
210
124
  "fullscreen-exit": "fullscreen_exit",
211
- history: "history",
125
+ "history": "history",
212
126
  "hourglass-empty": "hourglass_empty",
213
127
  "info-i": "info_i",
214
- language: "language",
128
+ "language": "language",
215
129
  "last-page": "last_page",
216
- link: "link",
130
+ "link": "link",
217
131
  "link-off": "link_off",
218
- list: "list",
132
+ "list": "list",
219
133
  "location-disabled": "location_disabled",
220
- login: "login",
221
- logout: "logout",
222
- menu: "menu",
134
+ "login": "login",
135
+ "logout": "logout",
136
+ "menu": "menu",
223
137
  "menu-open": "menu_open",
224
- monitoring: "monitoring",
138
+ "monitoring": "monitoring",
225
139
  "more-down": "more_down",
226
140
  "more-horiz": "more_horiz",
227
141
  "more-up": "more_up",
228
142
  "more-vert": "more_vert",
229
- ohm: "ohm",
143
+ "ohm": "ohm",
230
144
  "open-in-full": "open_in_full",
231
- paste: "paste",
145
+ "paste": "paste",
232
146
  "play-pause": "play_pause",
233
147
  "power-input": "power_input",
234
148
  "power-plug": "power_plug",
235
149
  "power-settings": "power_settings",
236
150
  "priority-high": "priority_high",
237
- public: "public",
238
- publish: "publish",
151
+ "public": "public",
152
+ "publish": "publish",
239
153
  "question-mark": "question_mark",
240
- radar: "radar",
154
+ "radar": "radar",
241
155
  "radio-button-empty": "radio_button_empty",
242
- redo: "redo",
243
- reload: "reload",
244
- remove: "remove",
245
- reply: "reply",
156
+ "redo": "redo",
157
+ "reload": "reload",
158
+ "remove": "remove",
159
+ "reply": "reply",
246
160
  "reply-all": "reply_all",
247
- route: "route",
248
- search: "search",
161
+ "route": "route",
162
+ "search": "search",
249
163
  "side-navigation": "side_navigation",
250
- sort: "sort",
164
+ "sort": "sort",
251
165
  "support-agent": "support_agent",
252
- timeline: "timeline",
166
+ "swap-horiz": "swap_horiz",
167
+ "swap-vert": "swap_vert",
168
+ "timeline": "timeline",
253
169
  "trending-down": "trending_down",
254
170
  "trending-flat": "trending_flat",
255
171
  "trending-up": "trending_up",
256
- tune: "tune",
257
- undo: "undo",
258
- upload: "upload",
259
- water: "water",
172
+ "tune": "tune",
173
+ "undo": "undo",
174
+ "upload": "upload",
175
+ "water": "water",
260
176
  "water-alt": "water_alt",
261
- wifi: "wifi",
177
+ "wifi": "wifi",
262
178
  "wifi-off": "wifi_off",
263
- windmill: "windmill",
179
+ "windmill": "windmill",
264
180
  "zoom-in": "zoom_in",
265
181
  "zoom-out": "zoom_out",
266
182
  };
267
183
  const TogglableIcons = {
268
184
  "add-circle": ["add_circle_outlined", "add_circle_filled"],
269
185
  "admin-panel-settings": ["admin_panel_settings_outlined", "admin_panel_settings_filled"],
270
- analytics: ["analytics_outlined", "analytics_filled"],
271
- archive: ["archive_outlined", "archive_filled"],
186
+ "analytics": ["analytics_outlined", "analytics_filled"],
187
+ "archive": ["archive_outlined", "archive_filled"],
272
188
  "arrow-circle-chevron-down": ["arrow_circle_chevron_down_outlined", "arrow_circle_chevron_down_filled"],
273
189
  "arrow-circle-chevron-left": ["arrow_circle_chevron_left_outlined", "arrow_circle_chevron_left_filled"],
274
190
  "arrow-circle-chevron-right": ["arrow_circle_chevron_right_outlined", "arrow_circle_chevron_right_filled"],
@@ -277,153 +193,156 @@ const TogglableIcons = {
277
193
  "arrow-circle-left": ["arrow_circle_left_outlined", "arrow_circle_left_filled"],
278
194
  "arrow-circle-right": ["arrow_circle_right_outlined", "arrow_circle_right_filled"],
279
195
  "arrow-circle-up": ["arrow_circle_up_outlined", "arrow_circle_up_filled"],
280
- article: ["article_outlined", "article_filled"],
196
+ "article": ["article_outlined", "article_filled"],
281
197
  "assignment-complete": ["assignment_complete_outlined", "assignment_complete_filled"],
282
- assignment: ["assignment_outlined", "assignment_filled"],
198
+ "assignment": ["assignment_outlined", "assignment_filled"],
283
199
  "battery-alert": ["battery_alert_outlined", "battery_alert_filled"],
284
200
  "battery-charging-full": ["battery_charging_full_outlined", "battery_charging_full_filled"],
285
201
  "bolt-alt-circle": ["bolt_alt_circle_outlined", "bolt_alt_circle_filled"],
286
202
  "bolt-alt": ["bolt_alt_outlined", "bolt_alt_filled"],
287
203
  "bolt-circle": ["bolt_circle_outlined", "bolt_circle_filled"],
288
- bolt: ["bolt_outlined", "bolt_filled"],
289
- bookmark: ["bookmark_outlined", "bookmark_filled"],
290
- bookmarks: ["bookmarks_outlined", "bookmarks_filled"],
291
- build: ["build_outlined", "build_filled"],
204
+ "bolt": ["bolt_outlined", "bolt_filled"],
205
+ "bookmark": ["bookmark_outlined", "bookmark_filled"],
206
+ "bookmarks": ["bookmarks_outlined", "bookmarks_filled"],
207
+ "build": ["build_outlined", "build_filled"],
292
208
  "calendar-available": ["calendar_available_outlined", "calendar_available_filled"],
293
209
  "calendar-busy": ["calendar_busy_outlined", "calendar_busy_filled"],
294
210
  "calendar-month": ["calendar_month_outlined", "calendar_month_filled"],
295
211
  "calendar-today": ["calendar_today_outlined", "calendar_today_filled"],
296
- call: ["call_outlined", "call_filled"],
297
- cancel: ["cancel_outlined", "cancel_filled"],
298
- category: ["category_outlined", "category_filled"],
212
+ "call": ["call_outlined", "call_filled"],
213
+ "cancel": ["cancel_outlined", "cancel_filled"],
214
+ "category": ["category_outlined", "category_filled"],
299
215
  "chart-add": ["chart_add_outlined", "chart_add_filled"],
300
216
  "chart-area": ["chart_area_outlined", "chart_area_filled"],
301
217
  "chart-pie": ["chart_pie_outlined", "chart_pie_filled"],
302
218
  "chart-table": ["chart_table_outlined", "chart_table_filled"],
303
219
  "chat-alt": ["chat_alt_outlined", "chat_alt_filled"],
304
220
  "chat-alt-unread": ["chat_alt_unread_outlined", "chat_alt_unread_filled"],
305
- chat: ["chat_outlined", "chat_filled"],
221
+ "chat": ["chat_outlined", "chat_filled"],
306
222
  "chat-unread": ["chat_unread_outlined", "chat_unread_filled"],
307
223
  "check-circle": ["check_circle_outlined", "check_circle_filled"],
308
- checkbox: ["checkbox_outlined", "checkbox_filled"],
224
+ "checkbox": ["checkbox_outlined", "checkbox_filled"],
309
225
  "checkbox-indeterminate": ["checkbox_indeterminate_outlined", "checkbox_indeterminate_filled"],
310
- clock: ["clock_outlined", "clock_filled"],
226
+ "clock": ["clock_outlined", "clock_filled"],
311
227
  "cloud-download": ["cloud_download_outlined", "cloud_download_filled"],
312
- cloud: ["cloud_outlined", "cloud_filled"],
228
+ "cloud": ["cloud_outlined", "cloud_filled"],
313
229
  "cloud-off": ["cloud_off_outlined", "cloud_off_filled"],
314
230
  "cloud-upload": ["cloud_upload_outlined", "cloud_upload_filled"],
315
231
  "comment-add": ["comment_add_outlined", "comment_add_filled"],
316
- comment: ["comment_outlined", "comment_filled"],
317
- copy: ["copy_outlined", "copy_filled"],
318
- dangerous: ["dangerous_outlined", "dangerous_filled"],
319
- dashboard: ["dashboard_outlined", "dashboard_filled"],
320
- database: ["database_outlined", "database_filled"],
321
- delete: ["delete_outlined", "delete_filled"],
322
- desktop: ["desktop_outlined", "desktop_filled"],
323
- devices: ["devices_outlined", "devices_filled"],
324
- draft: ["draft_outlined", "draft_filled"],
325
- eco: ["eco_outlined", "eco_filled"],
326
- edit: ["edit_outlined", "edit_filled"],
232
+ "comment": ["comment_outlined", "comment_filled"],
233
+ "contact": ["contact_outlined", "contact_filled"],
234
+ "copy": ["copy_outlined", "copy_filled"],
235
+ "dangerous": ["dangerous_outlined", "dangerous_filled"],
236
+ "dashboard": ["dashboard_outlined", "dashboard_filled"],
237
+ "database": ["database_outlined", "database_filled"],
238
+ "delete": ["delete_outlined", "delete_filled"],
239
+ "desktop": ["desktop_outlined", "desktop_filled"],
240
+ "devices": ["devices_outlined", "devices_filled"],
241
+ "draft": ["draft_outlined", "draft_filled"],
242
+ "eco": ["eco_outlined", "eco_filled"],
243
+ "edit": ["edit_outlined", "edit_filled"],
327
244
  "electric-meter": ["electric_meter_outlined", "electric_meter_filled"],
328
- error: ["error_outlined", "error_filled"],
329
- explore: ["explore_outlined", "explore_filled"],
245
+ "error": ["error_outlined", "error_filled"],
246
+ "explore": ["explore_outlined", "explore_filled"],
330
247
  "explore-off": ["explore_off_outlined", "explore_off_filled"],
248
+ "export-xls": ["export_xls_outlined", "export_xls_filled"],
331
249
  "fast-forward": ["fast_forward_outlined", "fast_forward_filled"],
332
250
  "fast-rewind": ["fast_rewind_outlined", "fast_rewind_filled"],
333
- feedback: ["feedback_outlined", "feedback_filled"],
251
+ "feedback": ["feedback_outlined", "feedback_filled"],
334
252
  "file-copy": ["file_copy_outlined", "file_copy_filled"],
335
253
  "file-download": ["file_download_outlined", "file_download_filled"],
336
254
  "file-upload": ["file_upload_outlined", "file_upload_filled"],
337
255
  "filter-alt": ["filter_alt_outlined", "filter_alt_filled"],
338
256
  "filter-alt-off": ["filter_alt_off_outlined", "filter_alt_off_filled"],
339
- fire: ["fire_outlined", "fire_filled"],
257
+ "fire": ["fire_outlined", "fire_filled"],
340
258
  "fit-screen": ["fit_screen_outlined", "fit_screen_filled"],
341
- flag: ["flag_outlined", "flag_filled"],
342
- flash: ["flash_outlined", "flash_filled"],
259
+ "flag": ["flag_outlined", "flag_filled"],
260
+ "flash": ["flash_outlined", "flash_filled"],
343
261
  "flash-off": ["flash_off_outlined", "flash_off_filled"],
344
262
  "folder-add": ["folder_add_outlined", "folder_add_filled"],
345
- folder: ["folder_outlined", "folder_filled"],
263
+ "folder": ["folder_outlined", "folder_filled"],
346
264
  "folder-move": ["folder_move_outlined", "folder_move_filled"],
347
265
  "folder-open": ["folder_open_outlined", "folder_open_filled"],
348
266
  "folder-shared": ["folder_shared_outlined", "folder_shared_filled"],
349
- forum: ["forum_outlined", "forum_filled"],
267
+ "forum": ["forum_outlined", "forum_filled"],
350
268
  "group-add": ["group_add_outlined", "group_add_filled"],
351
- group: ["group_outlined", "group_filled"],
352
- groups: ["groups_outlined", "groups_filled"],
353
- headphones: ["headphones_outlined", "headphones_filled"],
354
- heart: ["heart_outlined", "heart_filled"],
355
- help: ["help_outlined", "help_filled"],
356
- home: ["home_outlined", "home_filled"],
357
- hourglass: ["hourglass_outlined", "hourglass_filled"],
269
+ "group": ["group_outlined", "group_filled"],
270
+ "groups": ["groups_outlined", "groups_filled"],
271
+ "handshake": ["handshake_outlined", "handshake_filled"],
272
+ "headphones": ["headphones_outlined", "headphones_filled"],
273
+ "heart": ["heart_outlined", "heart_filled"],
274
+ "help": ["help_outlined", "help_filled"],
275
+ "home": ["home_outlined", "home_filled"],
276
+ "hourglass": ["hourglass_outlined", "hourglass_filled"],
358
277
  "image-broken": ["image_broken_outlined", "image_broken_filled"],
359
- image: ["image_outlined", "image_filled"],
278
+ "image": ["image_outlined", "image_filled"],
360
279
  "image-gallery": ["image_gallery_outlined", "image_gallery_filled"],
361
- inbox: ["inbox_outlined", "inbox_filled"],
362
- info: ["info_outlined", "info_filled"],
363
- keep: ["keep_outlined", "keep_filled"],
280
+ "inbox": ["inbox_outlined", "inbox_filled"],
281
+ "info": ["info_outlined", "info_filled"],
282
+ "keep": ["keep_outlined", "keep_filled"],
364
283
  "keep-off": ["keep_off_outlined", "keep_off_filled"],
365
- label: ["label_outlined", "label_filled"],
366
- laptop: ["laptop_outlined", "laptop_filled"],
284
+ "label": ["label_outlined", "label_filled"],
285
+ "laptop": ["laptop_outlined", "laptop_filled"],
367
286
  "left-panel-close": ["left_panel_close_outlined", "left_panel_close_filled"],
368
287
  "left-panel-open": ["left_panel_open_outlined", "left_panel_open_filled"],
369
288
  "light-off": ["light_off_outlined", "light_off_filled"],
370
289
  "lightbulb-alt": ["lightbulb_alt_outlined", "lightbulb_alt_filled"],
371
290
  "lightbulb-circle": ["lightbulb_circle_outlined", "lightbulb_circle_filled"],
372
- lightbulb: ["lightbulb_outlined", "lightbulb_filled"],
291
+ "lightbulb": ["lightbulb_outlined", "lightbulb_filled"],
373
292
  "list-alt": ["list_alt_outlined", "list_alt_filled"],
374
293
  "location-me": ["location_me_outlined", "location_me_filled"],
375
294
  "location-off": ["location_off_outlined", "location_off_filled"],
376
295
  "location-on": ["location_on_outlined", "location_on_filled"],
377
- lock: ["lock_outlined", "lock_filled"],
296
+ "lock": ["lock_outlined", "lock_filled"],
378
297
  "lock-open": ["lock_open_outlined", "lock_open_filled"],
379
298
  "lock-open-right": ["lock_open_right_outlined", "lock_open_right_filled"],
380
- mail: ["mail_outlined", "mail_filled"],
299
+ "mail": ["mail_outlined", "mail_filled"],
381
300
  "mail-unread": ["mail_unread_outlined", "mail_unread_filled"],
382
- map: ["map_outlined", "map_filled"],
383
- mic: ["mic_outlined", "mic_filled"],
301
+ "map": ["map_outlined", "map_filled"],
302
+ "mic": ["mic_outlined", "mic_filled"],
384
303
  "mic-off": ["mic_off_outlined", "mic_off_filled"],
385
304
  "mode-dark": ["mode_dark_outlined", "mode_dark_filled"],
386
305
  "mode-light": ["mode_light_outlined", "mode_light_filled"],
387
- notification: ["notification_outlined", "notification_filled"],
306
+ "notification": ["notification_outlined", "notification_filled"],
388
307
  "notification-important": ["notification_important_outlined", "notification_important_filled"],
389
308
  "notification-off": ["notification_off_outlined", "notification_off_filled"],
390
309
  "notification-unread": ["notification_unread_outlined", "notification_unread_filled"],
391
- palette: ["palette_outlined", "palette_filled"],
310
+ "palette": ["palette_outlined", "palette_filled"],
392
311
  "pause-circle": ["pause_circle_outlined", "pause_circle_filled"],
393
- pause: ["pause_outlined", "pause_filled"],
312
+ "pause": ["pause_outlined", "pause_filled"],
394
313
  "photo-camera": ["photo_camera_outlined", "photo_camera_filled"],
395
314
  "play-circle": ["play_circle_outlined", "play_circle_filled"],
396
- play: ["play_outlined", "play_filled"],
397
- power: ["power_outlined", "power_filled"],
315
+ "play": ["play_outlined", "play_filled"],
316
+ "power": ["power_outlined", "power_filled"],
398
317
  "power-off": ["power_off_outlined", "power_off_filled"],
399
318
  "power-plug-connect": ["power_plug_connect_outlined", "power_plug_connect_filled"],
400
319
  "power-settings-circle": ["power_settings_circle_outlined", "power_settings_circle_filled"],
401
320
  "power-solar": ["power_solar_outlined", "power_solar_filled"],
402
321
  "power-switch": ["power_switch_outlined", "power_switch_filled"],
403
322
  "power-wind": ["power_wind_outlined", "power_wind_filled"],
404
- print: ["print_outlined", "print_filled"],
323
+ "print": ["print_outlined", "print_filled"],
405
324
  "right-panel-close": ["right_panel_close_outlined", "right_panel_close_filled"],
406
325
  "right-panel-open": ["right_panel_open_outlined", "right_panel_open_filled"],
407
- save: ["save_outlined", "save_filled"],
408
- send: ["send_outlined", "send_filled"],
409
- settings: ["settings_outlined", "settings_filled"],
410
- share: ["share_outlined", "share_filled"],
326
+ "save": ["save_outlined", "save_filled"],
327
+ "send": ["send_outlined", "send_filled"],
328
+ "settings": ["settings_outlined", "settings_filled"],
329
+ "share": ["share_outlined", "share_filled"],
411
330
  "skip-next": ["skip_next_outlined", "skip_next_filled"],
412
331
  "skip-previous": ["skip_previous_outlined", "skip_previous_filled"],
413
- smartphone: ["smartphone_outlined", "smartphone_filled"],
414
- star: ["star_outlined", "star_filled"],
332
+ "smartphone": ["smartphone_outlined", "smartphone_filled"],
333
+ "star": ["star_outlined", "star_filled"],
415
334
  "sticky-note": ["sticky_note_outlined", "sticky_note_filled"],
416
335
  "stop-circle": ["stop_circle_outlined", "stop_circle_filled"],
417
- stop: ["stop_outlined", "stop_filled"],
418
- subtitles: ["subtitles_outlined", "subtitles_filled"],
336
+ "stop": ["stop_outlined", "stop_filled"],
337
+ "subtitles": ["subtitles_outlined", "subtitles_filled"],
419
338
  "text-snippet": ["text_snippet_outlined", "text_snippet_filled"],
420
339
  "trash-restore": ["trash_restore_outlined", "trash_restore_filled"],
421
- unarchive: ["unarchive_outlined", "unarchive_filled"],
340
+ "unarchive": ["unarchive_outlined", "unarchive_filled"],
422
341
  "user-add": ["user_add_outlined", "user_add_filled"],
423
342
  "user-circle": ["user_circle_outlined", "user_circle_filled"],
424
- user: ["user_outlined", "user_filled"],
343
+ "user": ["user_outlined", "user_filled"],
425
344
  "user-settings": ["user_settings_outlined", "user_settings_filled"],
426
- verified: ["verified_outlined", "verified_filled"],
345
+ "verified": ["verified_outlined", "verified_filled"],
427
346
  "video-camera": ["video_camera_outlined", "video_camera_filled"],
428
347
  "video-camera-off": ["video_camera_off_outlined", "video_camera_off_filled"],
429
348
  "video-gallery": ["video_gallery_outlined", "video_gallery_filled"],
@@ -439,8 +358,8 @@ const TogglableIcons = {
439
358
  "volume-mute": ["volume_mute_outlined", "volume_mute_filled"],
440
359
  "volume-off": ["volume_off_outlined", "volume_off_filled"],
441
360
  "volume-up": ["volume_up_outlined", "volume_up_filled"],
442
- warning: ["warning_outlined", "warning_filled"],
443
- waterdrop: ["waterdrop_outlined", "waterdrop_filled"],
361
+ "warning": ["warning_outlined", "warning_filled"],
362
+ "waterdrop": ["waterdrop_outlined", "waterdrop_filled"],
444
363
  };
445
364
  function isValidIconName(iconName) {
446
365
  return isValidIconName$1(iconName, RegularIcons, TogglableIcons);
@@ -479,7 +398,7 @@ class IconComponent {
479
398
  constructor() {
480
399
  this.name = input.required();
481
400
  this.size = input(20);
482
- this.color = input("currentColor");
401
+ this.color = input();
483
402
  this.classes = input("");
484
403
  this.appearance = input();
485
404
  this.destroyRef = inject(DestroyRef);
@@ -488,26 +407,122 @@ class IconComponent {
488
407
  this.iconService = inject(IconService);
489
408
  this.cdr = inject(ChangeDetectorRef);
490
409
  effect(() => {
491
- this.setSvgContent(this.name());
492
- });
410
+ this.setSvgContent(this.name(), this.size(), this.appearance(), this.color());
411
+ }, { allowSignalWrites: true });
493
412
  }
494
- setSvgContent(svgName) {
495
- const svgFile = this.iconService.getSvg(svgName, this.appearance() || "outlined");
413
+ setSvgContent(svgName, size, appearance, color) {
414
+ const svgFile = this.iconService.getSvg(svgName, appearance || "outlined");
496
415
  svgFile.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((res) => {
497
- const size = this.size();
498
- const svgWithSize = res.replace(/<svg([^>]*)>/, `<svg$1 width="${size}" height="${size}">`);
416
+ const svgWithSize = res.replace(/<svg([^>]*)>/, `<svg$1 width="${size}" height="${size}" color="${color}">`);
499
417
  this.svgContent = this.sanitizer.bypassSecurityTrustHtml(svgWithSize);
500
418
  this.cdr.markForCheck();
501
419
  });
502
420
  }
503
421
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
504
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: IconComponent, isStandalone: true, selector: "rte-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null } }, providers: [IconService], ngImport: i0, template: "<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n></div>\n", styles: [".rte-icon-container{display:flex;color:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
422
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: IconComponent, isStandalone: true, selector: "rte-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null } }, providers: [IconService], ngImport: i0, template: "<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n [style.color]=\"color()\"\n></div>\n", styles: [".rte-icon-container{display:flex;color:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
505
423
  }
506
424
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconComponent, decorators: [{
507
425
  type: Component,
508
- args: [{ selector: "rte-icon", imports: [CommonModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [IconService], template: "<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n></div>\n", styles: [".rte-icon-container{display:flex;color:inherit}\n"] }]
426
+ args: [{ selector: "rte-icon", imports: [CommonModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [IconService], template: "<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n [style.color]=\"color()\"\n></div>\n", styles: [".rte-icon-container{display:flex;color:inherit}\n"] }]
509
427
  }], ctorParameters: () => [] });
510
428
 
429
+ class ButtonComponent {
430
+ constructor() {
431
+ this.rteButtonVariant = input("primary");
432
+ this.rteButtonSize = input("m");
433
+ this.rteBadgeCount = input();
434
+ this.rteBadgeContent = input();
435
+ this.rteButtonIcon = input();
436
+ this.rteButtonIconPosition = input("left");
437
+ this.rteButtonIconAppearance = input("filled");
438
+ this.iconSize = computed(() => ButtonIconSize[this.rteButtonSize()]);
439
+ this.shouldDisplayBadge = computed(() => {
440
+ const count = this.rteBadgeCount();
441
+ const content = this.rteBadgeContent();
442
+ return (count && count > 0 && content === "number") || content === "icon";
443
+ });
444
+ }
445
+ get classes() {
446
+ return `rte-button ${this.rteButtonVariant()} size-${this.rteButtonSize()}`;
447
+ }
448
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
449
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "button[rteButton]", inputs: { rteButtonVariant: { classPropertyName: "rteButtonVariant", publicName: "rteButtonVariant", isSignal: true, isRequired: false, transformFunction: null }, rteButtonSize: { classPropertyName: "rteButtonSize", publicName: "rteButtonSize", isSignal: true, isRequired: false, transformFunction: null }, rteBadgeCount: { classPropertyName: "rteBadgeCount", publicName: "rteBadgeCount", isSignal: true, isRequired: false, transformFunction: null }, rteBadgeContent: { classPropertyName: "rteBadgeContent", publicName: "rteBadgeContent", isSignal: true, isRequired: false, transformFunction: null }, rteButtonIcon: { classPropertyName: "rteButtonIcon", publicName: "rteButtonIcon", isSignal: true, isRequired: false, transformFunction: null }, rteButtonIconPosition: { classPropertyName: "rteButtonIconPosition", publicName: "rteButtonIconPosition", isSignal: true, isRequired: false, transformFunction: null }, rteButtonIconAppearance: { classPropertyName: "rteButtonIconAppearance", publicName: "rteButtonIconAppearance", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: "@if (rteButtonIcon() && rteButtonIconPosition() === \"left\") {\n <rte-icon [name]=\"rteButtonIcon()!\" [appearance]=\"rteButtonIconAppearance()\" [size]=\"iconSize()!\"></rte-icon>\n}\n<span class=\"rte-button-label\">\n <ng-content />\n <!-- Le badge est g\u00E9r\u00E9 par BadgeDirective attach\u00E9e via hostDirectives -->\n</span>\n@if (rteButtonIcon() && rteButtonIconPosition() === \"right\") {\n <rte-icon #icon [name]=\"rteButtonIcon()!\" [appearance]=\"rteButtonIconAppearance()\" [size]=\"iconSize()!\"></rte-icon>\n}\n", styles: [":host{display:inline-flex;flex-shrink:0;align-items:center;cursor:pointer;justify-content:center;width:fit-content}:host:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}:host.size-s{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;height:24px;border-radius:4px;padding:4px 8px}:host.size-s .rte-button-label{margin:0 4px}:host.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;height:32px;border-radius:4px;padding:4px 12px}:host.size-m .rte-button-label{margin:0 6px}:host.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;height:40px;border-radius:8px;padding:4px 16px}:host.size-l .rte-button-label{margin:0 8px}:host.primary{border:var(--border-brand-default);color:var(--content-primary-inverse);background:var(--background-brand-default)}:host.primary:hover{background:var(--background-brand-hover);border:var(--background-brand-hover)}:host.primary:active{background:var(--background-brand-pressed)}:host.primary:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}:host.secondary{background:var(--background-default);border:solid 1px var(--border-brand-default);color:var(--content-brand-default)}:host.secondary:hover{background:var(--background-brand-inverse-hover)}:host.secondary:active{background:var(--background-brand-inverse-pressed)}:host.secondary:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);cursor:default}:host.text{background:transparent;border:none;color:var(--content-brand-default)}:host.text:hover{background:var(--background-brand-inverse-hover)}:host.text:active{background:var(--background-brand-inverse-pressed)}:host.text:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:default}:host.transparent{background:transparent;border:none;color:var(--content-brand-default)}:host.transparent:hover{color:var(--content-brand-hover)}:host.transparent:active{color:var(--content-brand-pressed)}:host.transparent:disabled{color:var(--content-disabled);box-shadow:none;cursor:default}:host.danger{background:var(--background-danger-default);border:none;color:var(--content-primary-inverse)}:host.danger:hover{background:var(--background-danger-hover)}:host.danger:active{background:var(--background-danger-pressed)}:host.danger:disabled{background:var(--background-disabled);border:var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}:host.neutral{background:none;border:none;color:var(--content-primary)}:host.neutral:hover{color:var(--content-secondary)}:host.neutral:active{color:var(--content-tertiary)}:host.neutral:disabled{background:var(--background-disabled);box-shadow:none;color:var(--content-disabled);cursor:default}:host.reverse{background:none;border:none;color:var(--content-primary-inverse)}:host.reverse:hover{color:var(--background-hover)}:host.reverse:active{color:var(--content-primary-inverse)}:host.reverse:disabled{background:var(--background-disabled);box-shadow:none;color:var(--content-disabled);cursor:default}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
450
+ }
451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, decorators: [{
452
+ type: Component,
453
+ args: [{ selector: "button[rteButton]", imports: [IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (rteButtonIcon() && rteButtonIconPosition() === \"left\") {\n <rte-icon [name]=\"rteButtonIcon()!\" [appearance]=\"rteButtonIconAppearance()\" [size]=\"iconSize()!\"></rte-icon>\n}\n<span class=\"rte-button-label\">\n <ng-content />\n <!-- Le badge est g\u00E9r\u00E9 par BadgeDirective attach\u00E9e via hostDirectives -->\n</span>\n@if (rteButtonIcon() && rteButtonIconPosition() === \"right\") {\n <rte-icon #icon [name]=\"rteButtonIcon()!\" [appearance]=\"rteButtonIconAppearance()\" [size]=\"iconSize()!\"></rte-icon>\n}\n", styles: [":host{display:inline-flex;flex-shrink:0;align-items:center;cursor:pointer;justify-content:center;width:fit-content}:host:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}:host.size-s{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;height:24px;border-radius:4px;padding:4px 8px}:host.size-s .rte-button-label{margin:0 4px}:host.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;height:32px;border-radius:4px;padding:4px 12px}:host.size-m .rte-button-label{margin:0 6px}:host.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;height:40px;border-radius:8px;padding:4px 16px}:host.size-l .rte-button-label{margin:0 8px}:host.primary{border:var(--border-brand-default);color:var(--content-primary-inverse);background:var(--background-brand-default)}:host.primary:hover{background:var(--background-brand-hover);border:var(--background-brand-hover)}:host.primary:active{background:var(--background-brand-pressed)}:host.primary:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}:host.secondary{background:var(--background-default);border:solid 1px var(--border-brand-default);color:var(--content-brand-default)}:host.secondary:hover{background:var(--background-brand-inverse-hover)}:host.secondary:active{background:var(--background-brand-inverse-pressed)}:host.secondary:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);cursor:default}:host.text{background:transparent;border:none;color:var(--content-brand-default)}:host.text:hover{background:var(--background-brand-inverse-hover)}:host.text:active{background:var(--background-brand-inverse-pressed)}:host.text:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:default}:host.transparent{background:transparent;border:none;color:var(--content-brand-default)}:host.transparent:hover{color:var(--content-brand-hover)}:host.transparent:active{color:var(--content-brand-pressed)}:host.transparent:disabled{color:var(--content-disabled);box-shadow:none;cursor:default}:host.danger{background:var(--background-danger-default);border:none;color:var(--content-primary-inverse)}:host.danger:hover{background:var(--background-danger-hover)}:host.danger:active{background:var(--background-danger-pressed)}:host.danger:disabled{background:var(--background-disabled);border:var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}:host.neutral{background:none;border:none;color:var(--content-primary)}:host.neutral:hover{color:var(--content-secondary)}:host.neutral:active{color:var(--content-tertiary)}:host.neutral:disabled{background:var(--background-disabled);box-shadow:none;color:var(--content-disabled);cursor:default}:host.reverse{background:none;border:none;color:var(--content-primary-inverse)}:host.reverse:hover{color:var(--background-hover)}:host.reverse:active{color:var(--content-primary-inverse)}:host.reverse:disabled{background:var(--background-disabled);box-shadow:none;color:var(--content-disabled);cursor:default}\n"] }]
454
+ }], propDecorators: { classes: [{
455
+ type: HostBinding,
456
+ args: ["class"]
457
+ }] } });
458
+
459
+ class GridDirective {
460
+ get hostClasses() {
461
+ return "grid";
462
+ }
463
+ get hostDataClasses() {
464
+ const variation = this.gridType();
465
+ return `${variation}`;
466
+ }
467
+ constructor() {
468
+ this.gridType = input("fluid");
469
+ }
470
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
471
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: GridDirective, isStandalone: true, selector: "[rteGrid]", inputs: { gridType: { classPropertyName: "gridType", publicName: "gridType", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.hostClasses", "attr.data-gridtype": "this.hostDataClasses" } }, ngImport: i0 }); }
472
+ }
473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridDirective, decorators: [{
474
+ type: Directive,
475
+ args: [{
476
+ selector: "[rteGrid]",
477
+ standalone: true,
478
+ }]
479
+ }], ctorParameters: () => [], propDecorators: { hostClasses: [{
480
+ type: HostBinding,
481
+ args: ["class"]
482
+ }], hostDataClasses: [{
483
+ type: HostBinding,
484
+ args: ["attr.data-gridtype"]
485
+ }] } });
486
+
487
+ class ColDirective {
488
+ get colClasses() {
489
+ return [
490
+ "col",
491
+ this.generateColumnClass("col-xxs", this.xxs()),
492
+ this.generateColumnClass("col-xs", this.xs()),
493
+ this.generateColumnClass("col-s", this.s()),
494
+ this.generateColumnClass("col-m", this.m()),
495
+ this.generateColumnClass("col-l", this.l()),
496
+ this.generateColumnClass("col-xl", this.xl()),
497
+ ]
498
+ .filter(Boolean)
499
+ .join(" ");
500
+ }
501
+ constructor() {
502
+ this.xxs = input();
503
+ this.xs = input();
504
+ this.s = input();
505
+ this.m = input();
506
+ this.l = input();
507
+ this.xl = input();
508
+ }
509
+ generateColumnClass(prefix, size) {
510
+ return size ? `${prefix}-${size}` : "";
511
+ }
512
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
513
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: ColDirective, isStandalone: true, selector: "[rteCol]", inputs: { xxs: { classPropertyName: "xxs", publicName: "xxs", isSignal: true, isRequired: false, transformFunction: null }, xs: { classPropertyName: "xs", publicName: "xs", isSignal: true, isRequired: false, transformFunction: null }, s: { classPropertyName: "s", publicName: "s", isSignal: true, isRequired: false, transformFunction: null }, m: { classPropertyName: "m", publicName: "m", isSignal: true, isRequired: false, transformFunction: null }, l: { classPropertyName: "l", publicName: "l", isSignal: true, isRequired: false, transformFunction: null }, xl: { classPropertyName: "xl", publicName: "xl", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.colClasses" } }, ngImport: i0 }); }
514
+ }
515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColDirective, decorators: [{
516
+ type: Directive,
517
+ args: [{
518
+ selector: "[rteCol]",
519
+ standalone: true,
520
+ }]
521
+ }], ctorParameters: () => [], propDecorators: { colClasses: [{
522
+ type: HostBinding,
523
+ args: ["class"]
524
+ }] } });
525
+
511
526
  class LinkComponent {
512
527
  constructor() {
513
528
  this.label = input("");
@@ -581,6 +596,7 @@ class CheckboxComponent {
581
596
  this.errorMessage = input("");
582
597
  this.readOnly = input(false);
583
598
  this.checked = input(false);
599
+ this.tabindex = input(undefined);
584
600
  }
585
601
  onKeydown(event) {
586
602
  if (event.code === "Space") {
@@ -590,11 +606,11 @@ class CheckboxComponent {
590
606
  }
591
607
  }
592
608
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
593
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CheckboxComponent, isStandalone: true, selector: "rte-checkbox", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"rte-checkbox-container\">\n <input\n type=\"checkbox\"\n class=\"rte-checkbox\"\n [id]=\"id()\"\n [value]=\"value()\"\n [ngClass]=\"{ error: error(), 'read-only': readOnly() }\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [checked]=\"checked()\"\n (keydown)=\"onKeydown($event)\"\n />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-selected\" name=\"check-small\" [size]=\"16\" />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-indeterminated\" name=\"check-indeterminate\" [size]=\"16\" />\n <div class=\"rte-checkbox-text-container\">\n <label\n *ngIf=\"showLabel()\"\n class=\"rte-checkbox-label\"\n [for]=\"id()\"\n [ngClass]=\"{\n error: error(),\n 'read-only': readOnly(),\n disabled: disabled(),\n }\"\n >\n {{ label() }}\n </label>\n <p class=\"rte-checkbox-description\">{{ description() }}</p>\n <p *ngIf=\"error() && errorMessage()\" class=\"rte-checkbox-error\">{{ errorMessage() }}</p>\n </div>\n</div>\n", styles: [".rte-checkbox-container{display:flex;gap:12px}.rte-checkbox-container .rte-checkbox{appearance:none;display:flex;width:16px;height:16px;border-radius:2px;border:1px solid var(--content-tertiary);opacity:100%;background:var(--background-default);align-items:center;justify-content:center;margin:4px 0}.rte-checkbox-container .rte-checkbox:before{content:\"\";display:none;position:absolute;border-radius:999px;background:var(--background-hover);width:32px;height:32px;z-index:-1}.rte-checkbox-container .rte-checkbox:active:before{opacity:100%;transform:scale(0);transition:transform 0s,opacity 0s}.rte-checkbox-container .rte-checkbox:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-checkbox-container .rte-checkbox:hover{cursor:pointer}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):before{display:inline-block}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):not(:active):before{opacity:50%;transition:transform .15s ease,opacity .3s ease}.rte-checkbox-container .rte-checkbox:disabled{cursor:default;border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container .rte-checkbox-description{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:checked:disabled~.rte-checkbox-icons{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:checked:not(:indeterminate)~.rte-checkbox-icon-selected{display:block}.rte-checkbox-container .rte-checkbox:indeterminate{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled~.rte-checkbox-icons{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:indeterminate~.rte-checkbox-icon-indeterminated{display:block}.rte-checkbox-container .rte-checkbox.read-only{pointer-events:none;cursor:default;border:1px solid var(--content-tertiary);opacity:100%;background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container .checkbox-description{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-icons{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only.error{border:1px solid var(--content-danger-default);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.error{border:1px solid var(--content-danger-default);background:var(--background-default)}.rte-checkbox-container .rte-checkbox.error:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-danger-hover)}.rte-checkbox-container .rte-checkbox-text-container label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-primary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-description{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin:0;color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-error{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;font-weight:700;margin:0;color:var(--content-danger-default)}.rte-checkbox-container .rte-checkbox-icons{display:none;z-index:1;pointer-events:none;transform:translateY(4px);position:absolute;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
609
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CheckboxComponent, isStandalone: true, selector: "rte-checkbox", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"rte-checkbox-container\">\n <input\n type=\"checkbox\"\n class=\"rte-checkbox\"\n [id]=\"id()\"\n [value]=\"value()\"\n [attr.tabindex]=\"tabindex()\"\n [ngClass]=\"{ error: error(), 'read-only': readOnly() }\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [checked]=\"checked()\"\n (keydown)=\"onKeydown($event)\"\n />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-selected\" name=\"check-small\" [size]=\"16\" />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-indeterminated\" name=\"check-indeterminate\" [size]=\"16\" />\n <div class=\"rte-checkbox-text-container\">\n <label\n *ngIf=\"showLabel()\"\n class=\"rte-checkbox-label\"\n [for]=\"id()\"\n [ngClass]=\"{\n error: error(),\n 'read-only': readOnly(),\n disabled: disabled(),\n }\"\n >\n {{ label() }}\n </label>\n <p class=\"rte-checkbox-description\">{{ description() }}</p>\n <p *ngIf=\"error() && errorMessage()\" class=\"rte-checkbox-error\">{{ errorMessage() }}</p>\n </div>\n</div>\n", styles: [".rte-checkbox-container{display:flex;gap:12px}.rte-checkbox-container .rte-checkbox{appearance:none;display:flex;width:16px;height:16px;border-radius:2px;border:1px solid var(--content-tertiary);opacity:100%;background:var(--background-default);align-items:center;justify-content:center;margin:4px 0}.rte-checkbox-container .rte-checkbox:before{content:\"\";display:none;position:absolute;border-radius:999px;background:var(--background-hover);width:32px;height:32px;z-index:-1}.rte-checkbox-container .rte-checkbox:active:before{opacity:100%;transform:scale(0);transition:transform 0s,opacity 0s}.rte-checkbox-container .rte-checkbox:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-checkbox-container .rte-checkbox:hover{cursor:pointer}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):before{display:inline-block}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):not(:active):before{opacity:50%;transition:transform .15s ease,opacity .3s ease}.rte-checkbox-container .rte-checkbox:disabled{cursor:default;border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container .rte-checkbox-description{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:checked:disabled~.rte-checkbox-icons{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:checked:not(:indeterminate)~.rte-checkbox-icon-selected{display:block}.rte-checkbox-container .rte-checkbox:indeterminate{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled~.rte-checkbox-icons{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:indeterminate~.rte-checkbox-icon-indeterminated{display:block}.rte-checkbox-container .rte-checkbox.read-only{pointer-events:none;cursor:default;border:1px solid var(--content-tertiary);opacity:100%;background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container .checkbox-description{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-icons{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only.error{border:1px solid var(--content-danger-default);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.error{border:1px solid var(--content-danger-default);background:var(--background-default)}.rte-checkbox-container .rte-checkbox.error:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-danger-hover)}.rte-checkbox-container .rte-checkbox-text-container label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-primary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-description{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin:0;color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-error{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;font-weight:700;margin:0;color:var(--content-danger-default)}.rte-checkbox-container .rte-checkbox-icons{display:none;z-index:1;pointer-events:none;transform:translateY(4px);position:absolute;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
594
610
  }
595
611
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxComponent, decorators: [{
596
612
  type: Component,
597
- args: [{ selector: "rte-checkbox", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"rte-checkbox-container\">\n <input\n type=\"checkbox\"\n class=\"rte-checkbox\"\n [id]=\"id()\"\n [value]=\"value()\"\n [ngClass]=\"{ error: error(), 'read-only': readOnly() }\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [checked]=\"checked()\"\n (keydown)=\"onKeydown($event)\"\n />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-selected\" name=\"check-small\" [size]=\"16\" />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-indeterminated\" name=\"check-indeterminate\" [size]=\"16\" />\n <div class=\"rte-checkbox-text-container\">\n <label\n *ngIf=\"showLabel()\"\n class=\"rte-checkbox-label\"\n [for]=\"id()\"\n [ngClass]=\"{\n error: error(),\n 'read-only': readOnly(),\n disabled: disabled(),\n }\"\n >\n {{ label() }}\n </label>\n <p class=\"rte-checkbox-description\">{{ description() }}</p>\n <p *ngIf=\"error() && errorMessage()\" class=\"rte-checkbox-error\">{{ errorMessage() }}</p>\n </div>\n</div>\n", styles: [".rte-checkbox-container{display:flex;gap:12px}.rte-checkbox-container .rte-checkbox{appearance:none;display:flex;width:16px;height:16px;border-radius:2px;border:1px solid var(--content-tertiary);opacity:100%;background:var(--background-default);align-items:center;justify-content:center;margin:4px 0}.rte-checkbox-container .rte-checkbox:before{content:\"\";display:none;position:absolute;border-radius:999px;background:var(--background-hover);width:32px;height:32px;z-index:-1}.rte-checkbox-container .rte-checkbox:active:before{opacity:100%;transform:scale(0);transition:transform 0s,opacity 0s}.rte-checkbox-container .rte-checkbox:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-checkbox-container .rte-checkbox:hover{cursor:pointer}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):before{display:inline-block}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):not(:active):before{opacity:50%;transition:transform .15s ease,opacity .3s ease}.rte-checkbox-container .rte-checkbox:disabled{cursor:default;border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container .rte-checkbox-description{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:checked:disabled~.rte-checkbox-icons{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:checked:not(:indeterminate)~.rte-checkbox-icon-selected{display:block}.rte-checkbox-container .rte-checkbox:indeterminate{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled~.rte-checkbox-icons{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:indeterminate~.rte-checkbox-icon-indeterminated{display:block}.rte-checkbox-container .rte-checkbox.read-only{pointer-events:none;cursor:default;border:1px solid var(--content-tertiary);opacity:100%;background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container .checkbox-description{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-icons{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only.error{border:1px solid var(--content-danger-default);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.error{border:1px solid var(--content-danger-default);background:var(--background-default)}.rte-checkbox-container .rte-checkbox.error:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-danger-hover)}.rte-checkbox-container .rte-checkbox-text-container label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-primary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-description{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin:0;color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-error{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;font-weight:700;margin:0;color:var(--content-danger-default)}.rte-checkbox-container .rte-checkbox-icons{display:none;z-index:1;pointer-events:none;transform:translateY(4px);position:absolute;color:#fff}\n"] }]
613
+ args: [{ selector: "rte-checkbox", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"rte-checkbox-container\">\n <input\n type=\"checkbox\"\n class=\"rte-checkbox\"\n [id]=\"id()\"\n [value]=\"value()\"\n [attr.tabindex]=\"tabindex()\"\n [ngClass]=\"{ error: error(), 'read-only': readOnly() }\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [checked]=\"checked()\"\n (keydown)=\"onKeydown($event)\"\n />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-selected\" name=\"check-small\" [size]=\"16\" />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-indeterminated\" name=\"check-indeterminate\" [size]=\"16\" />\n <div class=\"rte-checkbox-text-container\">\n <label\n *ngIf=\"showLabel()\"\n class=\"rte-checkbox-label\"\n [for]=\"id()\"\n [ngClass]=\"{\n error: error(),\n 'read-only': readOnly(),\n disabled: disabled(),\n }\"\n >\n {{ label() }}\n </label>\n <p class=\"rte-checkbox-description\">{{ description() }}</p>\n <p *ngIf=\"error() && errorMessage()\" class=\"rte-checkbox-error\">{{ errorMessage() }}</p>\n </div>\n</div>\n", styles: [".rte-checkbox-container{display:flex;gap:12px}.rte-checkbox-container .rte-checkbox{appearance:none;display:flex;width:16px;height:16px;border-radius:2px;border:1px solid var(--content-tertiary);opacity:100%;background:var(--background-default);align-items:center;justify-content:center;margin:4px 0}.rte-checkbox-container .rte-checkbox:before{content:\"\";display:none;position:absolute;border-radius:999px;background:var(--background-hover);width:32px;height:32px;z-index:-1}.rte-checkbox-container .rte-checkbox:active:before{opacity:100%;transform:scale(0);transition:transform 0s,opacity 0s}.rte-checkbox-container .rte-checkbox:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-checkbox-container .rte-checkbox:hover{cursor:pointer}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):before{display:inline-block}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):not(:active):before{opacity:50%;transition:transform .15s ease,opacity .3s ease}.rte-checkbox-container .rte-checkbox:disabled{cursor:default;border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container .rte-checkbox-description{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:checked:disabled~.rte-checkbox-icons{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:checked:not(:indeterminate)~.rte-checkbox-icon-selected{display:block}.rte-checkbox-container .rte-checkbox:indeterminate{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled~.rte-checkbox-icons{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:indeterminate~.rte-checkbox-icon-indeterminated{display:block}.rte-checkbox-container .rte-checkbox.read-only{pointer-events:none;cursor:default;border:1px solid var(--content-tertiary);opacity:100%;background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container .checkbox-description{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-icons{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only.error{border:1px solid var(--content-danger-default);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.error{border:1px solid var(--content-danger-default);background:var(--background-default)}.rte-checkbox-container .rte-checkbox.error:hover:not(:disabled):not(:active):before{opacity:20%;background:var(--background-danger-hover)}.rte-checkbox-container .rte-checkbox-text-container label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-primary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-description{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin:0;color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-error{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;font-weight:700;margin:0;color:var(--content-danger-default)}.rte-checkbox-container .rte-checkbox-icons{display:none;z-index:1;pointer-events:none;transform:translateY(4px);position:absolute;color:#fff}\n"] }]
598
614
  }] });
599
615
 
600
616
  class CheckboxGroupComponent {
@@ -613,7 +629,7 @@ class CheckboxGroupComponent {
613
629
  this.isDisplayed = computed(() => !(this.disabled() && this.error()));
614
630
  }
615
631
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
616
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CheckboxGroupComponent, isStandalone: true, selector: "rte-checkbox-group", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, showItemsLabel: { classPropertyName: "showItemsLabel", publicName: "showItemsLabel", isSignal: true, isRequired: false, transformFunction: null }, groupTitle: { classPropertyName: "groupTitle", publicName: "groupTitle", isSignal: true, isRequired: false, transformFunction: null }, showGroupTitle: { classPropertyName: "showGroupTitle", publicName: "showGroupTitle", isSignal: true, isRequired: false, transformFunction: null }, groupHelpText: { classPropertyName: "groupHelpText", publicName: "groupHelpText", isSignal: true, isRequired: false, transformFunction: null }, showHelpText: { classPropertyName: "showHelpText", publicName: "showHelpText", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div *ngIf=\"isDisplayed()\" class=\"checkbox-group-container\">\n <div\n class=\"checkbox-group-header\"\n [ngClass]=\"{\n disabled: disabled(),\n error: error(),\n 'read-only': readOnly(),\n }\"\n >\n <h3 *ngIf=\"showGroupTitle()\" class=\"group-title\">\n {{ groupTitle() }}\n </h3>\n <p *ngIf=\"showHelpText()\" class=\"group-help-text\">\n {{ groupHelpText() }}\n </p>\n <p *ngIf=\"error()\" class=\"group-error-message\">\n {{ errorMessage() }}\n </p>\n </div>\n <div\n class=\"checkbox-group\"\n [ngClass]=\"{ horizontal: direction() === 'horizontal', vertical: direction() === 'vertical' }\"\n >\n <ng-container *ngFor=\"let item of items(); let i = index\">\n <rte-checkbox\n [id]=\"item + '-' + i\"\n [label]=\"item\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>\n", styles: [".checkbox-group-container{display:flex;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.checkbox-group-container .checkbox-group-header .group-title{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;align-self:stretch;margin:0}.checkbox-group-container .checkbox-group-header .group-help-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-tertiary);align-self:stretch;margin:0}.checkbox-group-container .checkbox-group-header .group-error-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-danger-default);align-self:stretch;margin:4px 0 0}.checkbox-group-container .checkbox-group-header.error .group-title{color:var(--content-danger-default)}.checkbox-group-container .checkbox-group-header.read-only .group-title{color:var(--content-tertiary)}.checkbox-group-container .checkbox-group-header.read-only .error .group-title{color:var(--content-danger-default)}.checkbox-group-container .checkbox-group-header.disabled{pointer-events:none}.checkbox-group-container .checkbox-group-header.disabled .group-title,.checkbox-group-container .checkbox-group-header.disabled .group-help-text{color:var(--content-disabled)}.checkbox-group-container .checkbox-group{display:flex;flex-direction:row;padding:0;align-items:flex-start;gap:24px}.checkbox-group-container .checkbox-group.vertical{flex-direction:column;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
632
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CheckboxGroupComponent, isStandalone: true, selector: "rte-checkbox-group", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, showItemsLabel: { classPropertyName: "showItemsLabel", publicName: "showItemsLabel", isSignal: true, isRequired: false, transformFunction: null }, groupTitle: { classPropertyName: "groupTitle", publicName: "groupTitle", isSignal: true, isRequired: false, transformFunction: null }, showGroupTitle: { classPropertyName: "showGroupTitle", publicName: "showGroupTitle", isSignal: true, isRequired: false, transformFunction: null }, groupHelpText: { classPropertyName: "groupHelpText", publicName: "groupHelpText", isSignal: true, isRequired: false, transformFunction: null }, showHelpText: { classPropertyName: "showHelpText", publicName: "showHelpText", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div *ngIf=\"isDisplayed()\" class=\"checkbox-group-container\">\n <div\n class=\"checkbox-group-header\"\n [ngClass]=\"{\n disabled: disabled(),\n error: error(),\n 'read-only': readOnly(),\n }\"\n >\n <h3 *ngIf=\"showGroupTitle()\" class=\"group-title\">\n {{ groupTitle() }}\n </h3>\n <p *ngIf=\"showHelpText()\" class=\"group-help-text\">\n {{ groupHelpText() }}\n </p>\n <p *ngIf=\"error()\" class=\"group-error-message\">\n {{ errorMessage() }}\n </p>\n </div>\n <div\n class=\"checkbox-group\"\n [ngClass]=\"{ horizontal: direction() === 'horizontal', vertical: direction() === 'vertical' }\"\n >\n <ng-container *ngFor=\"let item of items(); let i = index\">\n <rte-checkbox\n [id]=\"item + '-' + i\"\n [label]=\"item\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>\n", styles: [".checkbox-group-container{display:flex;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px}.checkbox-group-container .checkbox-group-header .group-title{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;align-self:stretch;margin:0}.checkbox-group-container .checkbox-group-header .group-help-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-tertiary);align-self:stretch;margin:0}.checkbox-group-container .checkbox-group-header .group-error-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-danger-default);align-self:stretch;margin:4px 0 0}.checkbox-group-container .checkbox-group-header.error .group-title{color:var(--content-danger-default)}.checkbox-group-container .checkbox-group-header.read-only .group-title{color:var(--content-tertiary)}.checkbox-group-container .checkbox-group-header.read-only .error .group-title{color:var(--content-danger-default)}.checkbox-group-container .checkbox-group-header.disabled{pointer-events:none}.checkbox-group-container .checkbox-group-header.disabled .group-title,.checkbox-group-container .checkbox-group-header.disabled .group-help-text{color:var(--content-disabled)}.checkbox-group-container .checkbox-group{display:flex;flex-direction:row;padding:0;align-items:flex-start;gap:24px}.checkbox-group-container .checkbox-group.vertical{flex-direction:column;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked", "tabindex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
617
633
  }
618
634
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
619
635
  type: Component,
@@ -1147,7 +1163,7 @@ class DropdownItemComponent {
1147
1163
  this.destroySubMenu();
1148
1164
  }
1149
1165
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1150
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: DropdownItemComponent, isStandalone: true, selector: "rte-dropdown-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent", submenuRequest: "submenuRequest" }, ngImport: i0, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"hasChildren() ? subMenuOpen() : item()?.selected\"\n [attr.aria-haspopup]=\"hasChildren() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasChildren() ? subMenuOpen() : null\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n (focus)=\"handleFocus()\"\n >\n <rte-checkbox\n *ngIf=\"item()?.hasCheckbox\"\n [label]=\"item()?.label ?? ''\"\n [id]=\"menuId() + ':' + item()?.id\"\n [checked]=\"item()?.selected ?? false\"\n [disabled]=\"item()?.disabled ?? false\"\n [showLabel]=\"false\"\n [indeterminate]=\"item()?.isIndeterminate ?? false\"\n ></rte-checkbox>\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\"\n >{{ item()?.label }}\n </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <rte-icon *ngIf=\"hasChildren()\" name=\"arrow-chevron-right\" />\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [badgeType]=\"item()?.badgeType!\"\n [badgeContent]=\"item()?.badgeContent!\"\n [count]=\"item()?.badgeCount\"\n [simpleBadge]=\"true\"\n [icon]=\"item()?.badgeIcon ?? ''\"\n [badgeSize]=\"item()?.badgeSize!\"\n ></rte-badge>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider />\n </div>\n</ng-container>\n", styles: [".rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item[data-active=true]{background-color:var(--background-brand-inverse-pressed)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }, { kind: "component", type: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked"] }] }); }
1166
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: DropdownItemComponent, isStandalone: true, selector: "rte-dropdown-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent", submenuRequest: "submenuRequest" }, ngImport: i0, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"hasChildren() ? subMenuOpen() : item()?.selected\"\n [attr.aria-haspopup]=\"hasChildren() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasChildren() ? subMenuOpen() : null\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n (focus)=\"handleFocus()\"\n >\n <rte-checkbox\n *ngIf=\"item()?.hasCheckbox\"\n [label]=\"item()?.label ?? ''\"\n [id]=\"menuId() + ':' + item()?.id\"\n [checked]=\"item()?.selected ?? false\"\n [disabled]=\"item()?.disabled ?? false\"\n [showLabel]=\"false\"\n [indeterminate]=\"item()?.isIndeterminate ?? false\"\n ></rte-checkbox>\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\"\n >{{ item()?.label }}\n </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <rte-icon *ngIf=\"hasChildren()\" name=\"arrow-chevron-right\" />\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [badgeType]=\"item()?.badgeType!\"\n [badgeContent]=\"item()?.badgeContent!\"\n [count]=\"item()?.badgeCount\"\n [simpleBadge]=\"true\"\n [icon]=\"item()?.badgeIcon ?? ''\"\n [badgeSize]=\"item()?.badgeSize!\"\n ></rte-badge>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider />\n </div>\n</ng-container>\n", styles: [".rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item[data-active=true]{background-color:var(--background-brand-inverse-pressed)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }, { kind: "component", type: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked", "tabindex"] }] }); }
1151
1167
  }
1152
1168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, decorators: [{
1153
1169
  type: Component,
@@ -1798,7 +1814,7 @@ class IconButtonComponent {
1798
1814
  this.badgeType = input();
1799
1815
  this.badgeIcon = input("settings");
1800
1816
  this.customStyle = input();
1801
- this.buttonIconSize = computed(() => ButtonIconSize[this.size()]);
1817
+ this.buttonIconSize = computed(() => ButtonIconSize$1[this.size()]);
1802
1818
  this.isValidIconName = computed(() => isValidIconName(this.name()));
1803
1819
  this.clickEvent = output();
1804
1820
  this.shouldDisplayBadge = computed(() => {
@@ -1836,7 +1852,7 @@ class IconButtonToggleComponent {
1836
1852
  this.isSelected = computed(() => {
1837
1853
  return this.isControlled() ? this.selected() : this.internalSelected();
1838
1854
  });
1839
- this.buttonIconSize = computed(() => ButtonIconSize[this.size()]);
1855
+ this.buttonIconSize = computed(() => ButtonIconSize$1[this.size()]);
1840
1856
  }
1841
1857
  toggleInternalSelectedState() {
1842
1858
  this.internalSelected.set(!this.internalSelected());
@@ -2358,6 +2374,94 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2358
2374
  args: [{ selector: "rte-breadcrumbs", imports: [CommonModule, DropdownModule, IconButtonComponent, BreadcrumbItemComponent, BadgeComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n class=\"breadcrumbs-container\"\n role=\"navigation\"\n [attr.aria-label]=\"ariaLabel()\"\n [ngClass]=\"{ truncated: truncatedItems()?.truncated?.length }\"\n>\n @if (truncatedItems()?.truncated?.length) {\n <rte-breadcrumb-item [item]=\"truncatedItems()!.root\" [breadcrumbItemMaxWidth]=\"breadcrumbItemMaxWidth()\" />\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n <span class=\"breadcrumb-item\" rteDropdown [rteDropdownOffset]=\"8\">\n <rte-icon-button\n rteDropdownTrigger\n name=\"more-horiz\"\n role=\"menu\"\n variant=\"neutral\"\n aria-label=\"More items\"\n data-testid=\"show-more\"\n tabindex=\"-1\"\n [compactSpacing]=\"true\"\n />\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"badgeCount()\"\n [simpleBadge]=\"true\"\n [badgeContent]=\"badgeContent()!\"\n [icon]=\"badgeIcon()!\"\n [badgeType]=\"badgeType()!\"\n [badgeSize]=\"badgeSize()!\"\n />\n <rte-dropdown-menu [items]=\"truncatedItems()?.truncated ?? []\" />\n </span>\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n @for (item of truncatedItems()!.remaining; track item.link; let i = $index) {\n <rte-breadcrumb-item\n [item]=\"item\"\n [breadcrumbItemMaxWidth]=\"breadcrumbItemMaxWidth()\"\n [isLast]=\"i === truncatedItems()!.remaining.length - 1\"\n />\n @if (i < truncatedItems()!.remaining.length - 1) {\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n }\n }\n } @else {\n @for (item of items(); track item.link; let i = $index) {\n <rte-breadcrumb-item\n [item]=\"item\"\n [breadcrumbItemMaxWidth]=\"breadcrumbItemMaxWidth()\"\n [isLast]=\"i === items().length - 1\"\n />\n @if (i < items().length - 1) {\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n }\n }\n }\n</nav>\n", styles: [".breadcrumbs-container{display:flex;align-items:center;gap:2px}.breadcrumbs-container .breadcrumb-item{display:inline-flex;align-items:center;opacity:0;animation:fadeIn .15s forwards;font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px}.breadcrumbs-container .breadcrumb-item rte-link ::ng-deep a,.breadcrumbs-container .breadcrumb-item rte-link ::ng-deep a.subtle{color:var(--content-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumbs-container .breadcrumb-item a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumbs-container .breadcrumb-item:last-child{cursor:default;color:var(--content-primary)}.breadcrumbs-container .breadcrumb-item :focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px;border-radius:4px}.separator{color:var(--content-secondary);padding:0 8px;-webkit-user-select:none;user-select:none;opacity:0;animation:fadeIn .15s forwards}@keyframes fadeIn{to{opacity:1}}\n"] }]
2359
2375
  }] });
2360
2376
 
2377
+ class AccordionComponent {
2378
+ static { this.nextFallbackId = 0; }
2379
+ get hostClasses() {
2380
+ return ["rte-accordion", this.internalOpen() ? "is-open" : ""].filter(Boolean).join(" ");
2381
+ }
2382
+ constructor() {
2383
+ this.id = input(undefined);
2384
+ this.appearance = input("brand");
2385
+ this.alignement = input("right");
2386
+ this.compactSpacing = input(false);
2387
+ this.icon = input(undefined);
2388
+ this.disabled = input(false);
2389
+ this.isOpen = input(undefined);
2390
+ this.size = input("small");
2391
+ this.isOpenChange = output();
2392
+ this.clicked = output();
2393
+ this.internalOpen = signal(false);
2394
+ this.isAnimating = signal(false);
2395
+ this.panelHeightPx = signal(0);
2396
+ this.generatedInstanceId = AccordionComponent.createInstanceId();
2397
+ this.contentArea = viewChild("accordionContent");
2398
+ effect(() => {
2399
+ const fromParent = this.isOpen();
2400
+ if (fromParent !== undefined) {
2401
+ this.internalOpen.set(fromParent);
2402
+ }
2403
+ }, { allowSignalWrites: true });
2404
+ effect((onCleanup) => {
2405
+ const open = this.internalOpen();
2406
+ if (open) {
2407
+ this.isAnimating.set(false);
2408
+ this.panelHeightPx.set(0);
2409
+ const cancelWaitForNextFrame = waitForNextFrame(() => {
2410
+ this.isAnimating.set(true);
2411
+ this.syncPanelHeightFromContent();
2412
+ });
2413
+ onCleanup(cancelWaitForNextFrame);
2414
+ }
2415
+ else {
2416
+ this.isAnimating.set(false);
2417
+ this.panelHeightPx.set(0);
2418
+ }
2419
+ }, { allowSignalWrites: true });
2420
+ }
2421
+ summaryElementId() {
2422
+ return `accordion-summary-${this.id() ?? this.generatedInstanceId}`;
2423
+ }
2424
+ contentElementId() {
2425
+ return `accordion-content-${this.id() ?? this.generatedInstanceId}`;
2426
+ }
2427
+ iconPixelSize() {
2428
+ const currentSize = this.size() ?? "small";
2429
+ return AccordionIconSizeMap[currentSize];
2430
+ }
2431
+ onSummaryClick(event) {
2432
+ if (this.disabled()) {
2433
+ return;
2434
+ }
2435
+ this.clicked.emit(event);
2436
+ const next = !this.internalOpen();
2437
+ this.internalOpen.set(next);
2438
+ this.isOpenChange.emit(next);
2439
+ }
2440
+ syncPanelHeightFromContent() {
2441
+ const contentElement = this.contentArea()?.nativeElement;
2442
+ if (!contentElement) {
2443
+ return;
2444
+ }
2445
+ this.panelHeightPx.set(contentElement.scrollHeight);
2446
+ }
2447
+ static createInstanceId() {
2448
+ if (typeof globalThis.crypto !== "undefined" && "randomUUID" in globalThis.crypto) {
2449
+ return globalThis.crypto.randomUUID();
2450
+ }
2451
+ AccordionComponent.nextFallbackId += 1;
2452
+ return `accordion-${AccordionComponent.nextFallbackId}`;
2453
+ }
2454
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2455
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AccordionComponent, isStandalone: true, selector: "rte-accordion", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, alignement: { classPropertyName: "alignement", publicName: "alignement", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpenChange: "isOpenChange", clicked: "clicked" }, host: { properties: { "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "contentArea", first: true, predicate: ["accordionContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"accordion\">\n <button\n class=\"rte-accordion-summary {{ appearance() }} size-{{ size() }}\"\n type=\"button\"\n [class.compact-spacing]=\"compactSpacing()\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"internalOpen()\"\n [attr.aria-controls]=\"contentElementId()\"\n (click)=\"onSummaryClick($event)\"\n >\n <div class=\"rte-accordion-summary-row\" [id]=\"summaryElementId()\">\n @if (alignement() === \"left\") {\n <rte-icon\n class=\"rte-accordion-chevron\"\n name=\"arrow-chevron-down\"\n [class.animating]=\"isAnimating()\"\n [size]=\"iconPixelSize()\"\n />\n }\n @if (icon(); as iconName) {\n <rte-icon [name]=\"iconName\" [size]=\"iconPixelSize()\" />\n }\n <span class=\"rte-accordion-title size-{{ size() }}\">Accordion title</span>\n @if (alignement() === \"right\") {\n <rte-icon\n class=\"rte-accordion-chevron\"\n name=\"arrow-chevron-down\"\n [class.animating]=\"isAnimating()\"\n [size]=\"iconPixelSize()\"\n />\n }\n </div>\n </button>\n <div\n #accordionContent\n class=\"rte-accordion-panel\"\n [class.animating]=\"isAnimating()\"\n [class.is-disabled]=\"disabled()\"\n [attr.aria-hidden]=\"!internalOpen()\"\n [id]=\"contentElementId()\"\n [style.height.px]=\"panelHeightPx()\"\n >\n <ng-content />\n </div>\n <rte-divider thickness=\"light\" />\n</div>\n", styles: [":host{display:block;width:100%;inline-size:100%;background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);background:var(--background-default)}.rte-accordion-summary{text-align:left;display:flex;padding:8px 0;flex-direction:column;align-items:flex-start;color:var(--content-brand-default);height:48px;border:none;background:none;width:100%}.rte-accordion-summary:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-accordion-summary:hover{color:var(--content-brand-hover);background:var(--background-default);cursor:pointer}.rte-accordion-summary:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:not-allowed}.rte-accordion-summary.neutral{color:var(--content-primary)}.rte-accordion-summary.neutral:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:not-allowed}.rte-accordion-summary.compact-spacing{padding:0;height:32px}.rte-accordion-summary.compact-spacing:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:not-allowed}.rte-accordion-summary.size-large{height:60px}.rte-accordion-summary.size-large.compact-spacing{height:48px}.rte-accordion-summary .rte-accordion-summary-row{width:100%;display:flex;padding:2px 4px;align-items:center;gap:8px;align-self:stretch;box-sizing:border-box}.rte-accordion-summary .rte-accordion-summary-row .rte-accordion-chevron{transition:transform .11s cubic-bezier(0,0,.38,.9) allow-discrete}.rte-accordion-summary .rte-accordion-summary-row .rte-accordion-chevron.animating{transform:rotate(180deg)}.rte-accordion-summary .rte-accordion-title{flex:1 1 auto;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px}.rte-accordion-summary .rte-accordion-title.size-large{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:32px;line-height:40px;letter-spacing:-1px}.rte-accordion-panel-container{border-block-end:solid 1px var(--border-divider)}.rte-accordion-panel{padding:0 8px;transform:translateY(-10px);overflow:hidden;opacity:0;transition:all .12s cubic-bezier(0,0,.38,.9) allow-discrete}.rte-accordion-panel.animating{padding:16px 8px;opacity:1;overflow:visible;transform:translateY(0)}.rte-accordion-panel.is-disabled{background:var(--background-disabled);color:var(--content-disabled)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2456
+ }
2457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AccordionComponent, decorators: [{
2458
+ type: Component,
2459
+ args: [{ selector: "rte-accordion", imports: [IconComponent, DividerComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"accordion\">\n <button\n class=\"rte-accordion-summary {{ appearance() }} size-{{ size() }}\"\n type=\"button\"\n [class.compact-spacing]=\"compactSpacing()\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"internalOpen()\"\n [attr.aria-controls]=\"contentElementId()\"\n (click)=\"onSummaryClick($event)\"\n >\n <div class=\"rte-accordion-summary-row\" [id]=\"summaryElementId()\">\n @if (alignement() === \"left\") {\n <rte-icon\n class=\"rte-accordion-chevron\"\n name=\"arrow-chevron-down\"\n [class.animating]=\"isAnimating()\"\n [size]=\"iconPixelSize()\"\n />\n }\n @if (icon(); as iconName) {\n <rte-icon [name]=\"iconName\" [size]=\"iconPixelSize()\" />\n }\n <span class=\"rte-accordion-title size-{{ size() }}\">Accordion title</span>\n @if (alignement() === \"right\") {\n <rte-icon\n class=\"rte-accordion-chevron\"\n name=\"arrow-chevron-down\"\n [class.animating]=\"isAnimating()\"\n [size]=\"iconPixelSize()\"\n />\n }\n </div>\n </button>\n <div\n #accordionContent\n class=\"rte-accordion-panel\"\n [class.animating]=\"isAnimating()\"\n [class.is-disabled]=\"disabled()\"\n [attr.aria-hidden]=\"!internalOpen()\"\n [id]=\"contentElementId()\"\n [style.height.px]=\"panelHeightPx()\"\n >\n <ng-content />\n </div>\n <rte-divider thickness=\"light\" />\n</div>\n", styles: [":host{display:block;width:100%;inline-size:100%;background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);background:var(--background-default)}.rte-accordion-summary{text-align:left;display:flex;padding:8px 0;flex-direction:column;align-items:flex-start;color:var(--content-brand-default);height:48px;border:none;background:none;width:100%}.rte-accordion-summary:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-accordion-summary:hover{color:var(--content-brand-hover);background:var(--background-default);cursor:pointer}.rte-accordion-summary:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:not-allowed}.rte-accordion-summary.neutral{color:var(--content-primary)}.rte-accordion-summary.neutral:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:not-allowed}.rte-accordion-summary.compact-spacing{padding:0;height:32px}.rte-accordion-summary.compact-spacing:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:not-allowed}.rte-accordion-summary.size-large{height:60px}.rte-accordion-summary.size-large.compact-spacing{height:48px}.rte-accordion-summary .rte-accordion-summary-row{width:100%;display:flex;padding:2px 4px;align-items:center;gap:8px;align-self:stretch;box-sizing:border-box}.rte-accordion-summary .rte-accordion-summary-row .rte-accordion-chevron{transition:transform .11s cubic-bezier(0,0,.38,.9) allow-discrete}.rte-accordion-summary .rte-accordion-summary-row .rte-accordion-chevron.animating{transform:rotate(180deg)}.rte-accordion-summary .rte-accordion-title{flex:1 1 auto;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px}.rte-accordion-summary .rte-accordion-title.size-large{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:32px;line-height:40px;letter-spacing:-1px}.rte-accordion-panel-container{border-block-end:solid 1px var(--border-divider)}.rte-accordion-panel{padding:0 8px;transform:translateY(-10px);overflow:hidden;opacity:0;transition:all .12s cubic-bezier(0,0,.38,.9) allow-discrete}.rte-accordion-panel.animating{padding:16px 8px;opacity:1;overflow:visible;transform:translateY(0)}.rte-accordion-panel.is-disabled{background:var(--background-disabled);color:var(--content-disabled)}\n"] }]
2460
+ }], ctorParameters: () => [], propDecorators: { hostClasses: [{
2461
+ type: HostBinding,
2462
+ args: ["class"]
2463
+ }] } });
2464
+
2361
2465
  class BannerComponent {
2362
2466
  constructor() {
2363
2467
  this.type = input("info");
@@ -2417,7 +2521,7 @@ class BannerComponent {
2417
2521
  });
2418
2522
  }
2419
2523
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2420
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: BannerComponent, isStandalone: true, selector: "rte-banner", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click", close: "close" }, usesOnChanges: true, ngImport: i0, template: "<section\n *ngIf=\"rendering()\"\n class=\"rte-banner-container {{ type() }} {{ position() }}\"\n class=\"rte-banner\"\n [ngClass]=\"{ open: visible(), close: !visible() }\"\n [attr.role]=\"type() === 'error' ? 'alert' : 'status'\"\n>\n <div class=\"rte-banner-icon\">\n <rte-icon [name]=\"iconName()\" [size]=\"32\" />\n </div>\n <div class=\"rte-banner-content\">\n <span *ngIf=\"title()\" class=\"rte-banner-title\">{{ title() }}</span>\n <div *ngIf=\"message()\" class=\"rte-banner-message\">\n <span>{{ message() }}</span>\n </div>\n </div>\n <button\n *ngIf=\"actionLabel()\"\n rteButton\n rteButtonVariant=\"text\"\n rteButtonSize=\"s\"\n [attr.aria-label]=\"actionLabel()!\"\n (click)=\"clickAction()\"\n >\n {{ actionLabel() }}\n </button>\n <div *ngIf=\"closable()\" class=\"rte-banner-close-icon\">\n <rte-icon-button name=\"close\" variant=\"neutral\" ariaLabel=\"close banner\" (clickEvent)=\"closeBanner()\" />\n </div>\n</section>\n", styles: [".rte-banner{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);padding:16px;gap:16px;align-self:stretch;border-radius:0 0 4px 4px;display:flex;box-sizing:border-box;width:100%;min-width:320px;justify-content:center;align-items:center;color:var(--content-info-default);top:0;left:0;opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:10;border-bottom:8px solid var(--border-info);background-color:var(--background-default)}.rte-banner.error{color:var(--content-danger-default);border-bottom-color:var(--border-danger)}.rte-banner.success{color:var(--content-success-default);border-bottom-color:var(--border-success)}.rte-banner.warning{color:var(--content-primary);border-bottom-color:var(--border-warning)}.rte-banner.overlay{position:fixed}.rte-banner.open{opacity:1;transform:translateY(0)}.rte-banner.close{opacity:0;transform:translateY(-10px)}.rte-banner .rte-banner-icon{display:flex;padding:0 0 0 16px;justify-content:center;align-items:center;gap:var(--positive-spacing_0, 0);align-self:stretch}.rte-banner .banner-close-icon{color:var(--content-secondary)}.rte-banner .rte-banner-content{display:flex;padding:0 16px;flex-direction:column;align-items:flex-start;gap:8px;flex:1 0 0;border-radius:0;opacity:100%}.rte-banner .rte-banner-content .rte-banner-title{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px}.rte-banner .rte-banner-content .rte-banner-action-button{width:max-content}.rte-banner .rte-banner-content .rte-banner-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;align-items:center;gap:24px;padding:8px 0;justify-content:space-between;width:100%}.rte-banner .rte-banner-close-icon{color:var(--content-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2524
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: BannerComponent, isStandalone: true, selector: "rte-banner", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, actionLabel: { classPropertyName: "actionLabel", publicName: "actionLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click", close: "close" }, usesOnChanges: true, ngImport: i0, template: "<section\n *ngIf=\"rendering()\"\n class=\"rte-banner-container {{ type() }} {{ position() }}\"\n class=\"rte-banner\"\n [ngClass]=\"{ open: visible(), close: !visible() }\"\n [attr.role]=\"type() === 'error' ? 'alert' : 'status'\"\n>\n <div class=\"rte-banner-icon\">\n <rte-icon [name]=\"iconName()\" [size]=\"32\" />\n </div>\n <div class=\"rte-banner-content\">\n <span *ngIf=\"title()\" class=\"rte-banner-title\">{{ title() }}</span>\n <div *ngIf=\"message()\" class=\"rte-banner-message\">\n <span>{{ message() }}</span>\n </div>\n </div>\n <button\n *ngIf=\"actionLabel()\"\n rteButton\n rteButtonVariant=\"text\"\n rteButtonSize=\"s\"\n [attr.aria-label]=\"actionLabel()!\"\n (click)=\"clickAction()\"\n >\n {{ actionLabel() }}\n </button>\n <div *ngIf=\"closable()\" class=\"rte-banner-close-icon\">\n <rte-icon-button name=\"close\" variant=\"neutral\" ariaLabel=\"close banner\" (clickEvent)=\"closeBanner()\" />\n </div>\n</section>\n", styles: [".rte-banner{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);padding:16px;gap:16px;align-self:stretch;border-radius:0 0 4px 4px;display:flex;box-sizing:border-box;width:100%;min-width:320px;justify-content:center;align-items:center;color:var(--content-info-default);top:0;left:0;opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:10;border-bottom:8px solid var(--border-info);background-color:var(--background-default)}.rte-banner.error{color:var(--content-danger-default);border-bottom-color:var(--border-danger)}.rte-banner.success{color:var(--content-success-default);border-bottom-color:var(--border-success)}.rte-banner.warning{color:var(--content-primary);border-bottom-color:var(--border-warning)}.rte-banner.overlay{position:fixed}.rte-banner.open{opacity:1;transform:translateY(0)}.rte-banner.close{opacity:0;transform:translateY(-10px)}.rte-banner .rte-banner-icon{display:flex;padding:0 0 0 16px;justify-content:center;align-items:center;gap:var(--positive-spacing_0, 0);align-self:stretch}.rte-banner .banner-close-icon{color:var(--content-secondary)}.rte-banner .rte-banner-content{display:flex;padding:0 16px;flex-direction:column;align-items:flex-start;gap:8px;flex:1 0 0;border-radius:0;opacity:100%}.rte-banner .rte-banner-content .rte-banner-title{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px}.rte-banner .rte-banner-content .rte-banner-action-button{width:max-content}.rte-banner .rte-banner-content .rte-banner-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;align-items:center;gap:24px;padding:8px 0;justify-content:space-between;width:100%}.rte-banner .rte-banner-close-icon{color:var(--content-secondary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent", "rteButtonIcon", "rteButtonIconPosition", "rteButtonIconAppearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2421
2525
  }
2422
2526
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BannerComponent, decorators: [{
2423
2527
  type: Component,
@@ -2426,7 +2530,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2426
2530
 
2427
2531
  class CardComponent {
2428
2532
  constructor() {
2429
- this.size = input("m");
2533
+ this.width = input(DEFAULT_CARD_WIDTH);
2430
2534
  this.cardType = input("default");
2431
2535
  this.clickable = input(false);
2432
2536
  this.disabled = input(false);
@@ -2434,7 +2538,6 @@ class CardComponent {
2434
2538
  this.ariaLabelledby = input(undefined);
2435
2539
  this.ariaRole = input(undefined);
2436
2540
  this.cardClicked = output();
2437
- this.cardWidth = computed(() => `${cardSize[this.size()]}px`);
2438
2541
  this.tabIndex = computed(() => (this.clickable() ? 0 : -1));
2439
2542
  }
2440
2543
  onClick() {
@@ -2451,11 +2554,11 @@ class CardComponent {
2451
2554
  }
2452
2555
  }
2453
2556
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2454
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "rte-card", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, cardType: { classPropertyName: "cardType", publicName: "cardType", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaRole: { classPropertyName: "ariaRole", publicName: "ariaRole", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cardClicked: "cardClicked" }, ngImport: i0, template: "<div\n class=\"card card-{{ cardType() }}\"\n [style.width]=\"cardWidth()\"\n [attr.disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-role]=\"ariaRole()\"\n [ngClass]=\"{ clickable: clickable() }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</div>\n", styles: [".card{display:flex;flex-direction:column;justify-content:center;align-items:center;align-self:stretch;border-radius:4px;box-shadow:0 1px 2px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-1) 0%,var(--elevation-surface-shadow-1) 100%);transition:background-color .3s,box-shadow .3s}.card:hover{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%)}.card[disabled=true]{background:var(--background-disabled);opacity:30%;box-shadow:none;pointer-events:none}.card[disabled=true].card-outlined{border:1px solid var(--border-disabled);background:var(--background-disabled);box-shadow:none}.card.card-outlined{box-shadow:0 1px 2px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-1) 0%,var(--elevation-surface-shadow-1) 100%);flex-shrink:0;border:1px solid var(--border-tertiary)}.card.card-outlined:active.clickable{border-color:var(--border-secondary)}.card.clickable{cursor:pointer}.card:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2557
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "rte-card", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, cardType: { classPropertyName: "cardType", publicName: "cardType", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaRole: { classPropertyName: "ariaRole", publicName: "ariaRole", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cardClicked: "cardClicked" }, ngImport: i0, template: "<div\n class=\"card card-{{ cardType() }}\"\n [style.width]=\"width()\"\n [attr.disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-role]=\"ariaRole()\"\n [ngClass]=\"{ clickable: clickable() }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</div>\n", styles: [".card{display:flex;flex-direction:column;justify-content:center;align-items:center;align-self:stretch;border-radius:4px;box-shadow:0 1px 2px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-1) 0%,var(--elevation-surface-shadow-1) 100%);transition:background-color .3s,box-shadow .3s}.card:hover{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%)}.card[disabled=true]{background:var(--background-disabled);opacity:30%;box-shadow:none;pointer-events:none}.card[disabled=true].card-outlined{border:1px solid var(--border-disabled);background:var(--background-disabled);box-shadow:none}.card.card-outlined{box-shadow:0 1px 2px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-1) 0%,var(--elevation-surface-shadow-1) 100%);flex-shrink:0;border:1px solid var(--border-tertiary)}.card.card-outlined:active.clickable{border-color:var(--border-secondary)}.card.clickable{cursor:pointer}.card:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2455
2558
  }
2456
2559
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
2457
2560
  type: Component,
2458
- args: [{ selector: "rte-card", imports: [CommonModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"card card-{{ cardType() }}\"\n [style.width]=\"cardWidth()\"\n [attr.disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-role]=\"ariaRole()\"\n [ngClass]=\"{ clickable: clickable() }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</div>\n", styles: [".card{display:flex;flex-direction:column;justify-content:center;align-items:center;align-self:stretch;border-radius:4px;box-shadow:0 1px 2px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-1) 0%,var(--elevation-surface-shadow-1) 100%);transition:background-color .3s,box-shadow .3s}.card:hover{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%)}.card[disabled=true]{background:var(--background-disabled);opacity:30%;box-shadow:none;pointer-events:none}.card[disabled=true].card-outlined{border:1px solid var(--border-disabled);background:var(--background-disabled);box-shadow:none}.card.card-outlined{box-shadow:0 1px 2px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-1) 0%,var(--elevation-surface-shadow-1) 100%);flex-shrink:0;border:1px solid var(--border-tertiary)}.card.card-outlined:active.clickable{border-color:var(--border-secondary)}.card.clickable{cursor:pointer}.card:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}\n"] }]
2561
+ args: [{ selector: "rte-card", imports: [CommonModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"card card-{{ cardType() }}\"\n [style.width]=\"width()\"\n [attr.disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-role]=\"ariaRole()\"\n [ngClass]=\"{ clickable: clickable() }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</div>\n", styles: [".card{display:flex;flex-direction:column;justify-content:center;align-items:center;align-self:stretch;border-radius:4px;box-shadow:0 1px 2px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-1) 0%,var(--elevation-surface-shadow-1) 100%);transition:background-color .3s,box-shadow .3s}.card:hover{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%)}.card[disabled=true]{background:var(--background-disabled);opacity:30%;box-shadow:none;pointer-events:none}.card[disabled=true].card-outlined{border:1px solid var(--border-disabled);background:var(--background-disabled);box-shadow:none}.card.card-outlined{box-shadow:0 1px 2px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-1) 0%,var(--elevation-surface-shadow-1) 100%);flex-shrink:0;border:1px solid var(--border-tertiary)}.card.card-outlined:active.clickable{border-color:var(--border-secondary)}.card.clickable{cursor:pointer}.card:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}\n"] }]
2459
2562
  }] });
2460
2563
 
2461
2564
  class FocusTrapService {
@@ -2551,7 +2654,7 @@ class PopoverComponent {
2551
2654
  this.clickSecondaryButton.emit();
2552
2655
  }
2553
2656
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2554
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: PopoverComponent, isStandalone: true, selector: "rte-popover", inputs: { primaryButtonLabel: { classPropertyName: "primaryButtonLabel", publicName: "primaryButtonLabel", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, arrow: { classPropertyName: "arrow", publicName: "arrow", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonLabel: { classPropertyName: "secondaryButtonLabel", publicName: "secondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, coordinates: { classPropertyName: "coordinates", publicName: "coordinates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickPrimaryButton: "clickPrimaryButton", clickSecondaryButton: "clickSecondaryButton" }, ngImport: i0, template: "<div\n #root\n class=\"rte-popover\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.data-arrow]=\"arrow()\"\n [attr.data-position]=\"position()\"\n [attr.data-alignment]=\"alignment()\"\n [attr.data-open]=\"isOpen()\"\n [style]=\"{ top: coordinates().top + 'px', left: coordinates().left + 'px' }\"\n>\n <div class=\"popoverInner\">\n <div class=\"popoverContentContainer\">\n <div *ngIf=\"title\" class=\"popoverTitle\">{{ title() }}</div>\n <div class=\"popoverContent\">{{ content() }}</div>\n </div>\n <div class=\"popoverButtonContainer\">\n <button\n *ngIf=\"secondaryButtonLabel()\"\n rteButton\n rteButtonVariant=\"secondary\"\n (click)=\"handleClickSecondaryButton()\"\n >\n {{ secondaryButtonLabel() }}\n </button>\n <button rteButton rteButtonVariant=\"primary\" (click)=\"handleClickPrimaryButton()\">\n {{ primaryButtonLabel() }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".rte-popoverTrigger{position:relative;width:max-content}.rte-popover{filter:drop-shadow(0px 2px 4px var(--elevation-shadow-key)) drop-shadow(0px 0px 2px var(--elevation-shadow-ambient));background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);position:absolute;pointer-events:auto;top:0;left:0;padding:0;display:flex;flex-direction:column;gap:0px;background-color:var(--background-default);transition:opacity .15s ease-out;opacity:0;z-index:1000;min-width:320px;max-width:600px;width:fit-content;height:fit-content}.rte-popover .popoverInner{display:flex;flex-direction:column;align-items:flex-start;padding:24px;gap:24px;border-radius:4px}.rte-popover .popoverInner .popoverContentContainer{display:flex;flex-direction:column;align-items:flex-start;padding:0;gap:16px}.rte-popover .popoverInner .popoverContentContainer .popoverTitle{overflow:hidden;text-overflow:ellipsis;color:var(--content-primary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:24px;line-height:32px;letter-spacing:-.5px}.rte-popover .popoverInner .popoverContentContainer .popoverContent{color:var(--content-secondary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;width:100%;word-break:break-word}.rte-popover .popoverInner .popoverButtonContainer{display:flex;justify-content:flex-end;align-items:flex-start;padding:0;gap:24px;width:100%}.rte-popover:after{content:\"\";position:absolute;border-width:12px;border-style:solid}.rte-popover[data-position=top]:after{top:100%;left:50%;margin-left:-12px;border-color:var(--background-default) transparent transparent transparent}.rte-popover[data-position=top][data-alignment=start]:after{left:20px}.rte-popover[data-position=top][data-alignment=end]:after{left:auto;right:20px}.rte-popover[data-position=bottom]:after{bottom:100%;left:50%;margin-left:-12px;border-color:transparent transparent var(--background-default) transparent}.rte-popover[data-position=bottom][data-alignment=start]:after{left:20px}.rte-popover[data-position=bottom][data-alignment=end]:after{left:auto;right:20px}.rte-popover[data-position=left]:after{top:50%;left:100%;margin-top:-12px;border-color:transparent transparent transparent var(--background-default)}.rte-popover[data-position=left][data-alignment=start]:after{top:20px}.rte-popover[data-position=left][data-alignment=end]:after{top:auto;bottom:20px}.rte-popover[data-position=right]:after{top:50%;right:100%;margin-top:-12px;border-color:transparent var(--background-default) transparent transparent}.rte-popover[data-position=right][data-alignment=start]:after{top:20px}.rte-popover[data-position=right][data-alignment=end]:after{top:auto;bottom:20px}.rte-popover[data-arrow=false]{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);filter:none;background:var(--background-default)}.rte-popover[data-arrow=false]:after{display:none}.rte-popover[data-open=true]{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent"] }] }); }
2657
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: PopoverComponent, isStandalone: true, selector: "rte-popover", inputs: { primaryButtonLabel: { classPropertyName: "primaryButtonLabel", publicName: "primaryButtonLabel", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, arrow: { classPropertyName: "arrow", publicName: "arrow", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonLabel: { classPropertyName: "secondaryButtonLabel", publicName: "secondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, coordinates: { classPropertyName: "coordinates", publicName: "coordinates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickPrimaryButton: "clickPrimaryButton", clickSecondaryButton: "clickSecondaryButton" }, ngImport: i0, template: "<div\n #root\n class=\"rte-popover\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.data-arrow]=\"arrow()\"\n [attr.data-position]=\"position()\"\n [attr.data-alignment]=\"alignment()\"\n [attr.data-open]=\"isOpen()\"\n [style]=\"{ top: coordinates().top + 'px', left: coordinates().left + 'px' }\"\n>\n <div class=\"popoverInner\">\n <div class=\"popoverContentContainer\">\n <div *ngIf=\"title\" class=\"popoverTitle\">{{ title() }}</div>\n <div class=\"popoverContent\">{{ content() }}</div>\n </div>\n <div class=\"popoverButtonContainer\">\n <button\n *ngIf=\"secondaryButtonLabel()\"\n rteButton\n rteButtonVariant=\"secondary\"\n (click)=\"handleClickSecondaryButton()\"\n >\n {{ secondaryButtonLabel() }}\n </button>\n <button rteButton rteButtonVariant=\"primary\" (click)=\"handleClickPrimaryButton()\">\n {{ primaryButtonLabel() }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".rte-popoverTrigger{position:relative;width:max-content}.rte-popover{filter:drop-shadow(0px 2px 4px var(--elevation-shadow-key)) drop-shadow(0px 0px 2px var(--elevation-shadow-ambient));background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);position:absolute;pointer-events:auto;top:0;left:0;padding:0;display:flex;flex-direction:column;gap:0px;background-color:var(--background-default);transition:opacity .15s ease-out;opacity:0;z-index:1000;min-width:320px;max-width:600px;width:fit-content;height:fit-content}.rte-popover .popoverInner{display:flex;flex-direction:column;align-items:flex-start;padding:24px;gap:24px;border-radius:4px}.rte-popover .popoverInner .popoverContentContainer{display:flex;flex-direction:column;align-items:flex-start;padding:0;gap:16px}.rte-popover .popoverInner .popoverContentContainer .popoverTitle{overflow:hidden;text-overflow:ellipsis;color:var(--content-primary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:24px;line-height:32px;letter-spacing:-.5px}.rte-popover .popoverInner .popoverContentContainer .popoverContent{color:var(--content-secondary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;width:100%;word-break:break-word}.rte-popover .popoverInner .popoverButtonContainer{display:flex;justify-content:flex-end;align-items:flex-start;padding:0;gap:24px;width:100%}.rte-popover:after{content:\"\";position:absolute;border-width:12px;border-style:solid}.rte-popover[data-position=top]:after{top:100%;left:50%;margin-left:-12px;border-color:var(--background-default) transparent transparent transparent}.rte-popover[data-position=top][data-alignment=start]:after{left:20px}.rte-popover[data-position=top][data-alignment=end]:after{left:auto;right:20px}.rte-popover[data-position=bottom]:after{bottom:100%;left:50%;margin-left:-12px;border-color:transparent transparent var(--background-default) transparent}.rte-popover[data-position=bottom][data-alignment=start]:after{left:20px}.rte-popover[data-position=bottom][data-alignment=end]:after{left:auto;right:20px}.rte-popover[data-position=left]:after{top:50%;left:100%;margin-top:-12px;border-color:transparent transparent transparent var(--background-default)}.rte-popover[data-position=left][data-alignment=start]:after{top:20px}.rte-popover[data-position=left][data-alignment=end]:after{top:auto;bottom:20px}.rte-popover[data-position=right]:after{top:50%;right:100%;margin-top:-12px;border-color:transparent var(--background-default) transparent transparent}.rte-popover[data-position=right][data-alignment=start]:after{top:20px}.rte-popover[data-position=right][data-alignment=end]:after{top:auto;bottom:20px}.rte-popover[data-arrow=false]{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);filter:none;background:var(--background-default)}.rte-popover[data-arrow=false]:after{display:none}.rte-popover[data-open=true]{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent", "rteButtonIcon", "rteButtonIconPosition", "rteButtonIconAppearance"] }] }); }
2555
2658
  }
2556
2659
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverComponent, decorators: [{
2557
2660
  type: Component,
@@ -2891,36 +2994,525 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2891
2994
  }]
2892
2995
  }] });
2893
2996
 
2894
- class SearchbarComponent {
2997
+ class DrawerComponent {
2895
2998
  constructor() {
2896
- this.id = input();
2897
- this.label = input("Rechercher");
2898
- this.disabled = input(false);
2899
- this.showResetButton = input(true);
2900
- this.appearance = input("primary");
2901
- this.compactSpacing = input(false);
2902
- this.value = input("");
2903
- this.assistiveText = input("");
2904
- this.valueChange = output();
2905
- this.searchEvent = output();
2906
- this.clear = output();
2907
- this.hasFocusWithin = signal(false);
2908
- this.appearanceConfig = computed(() => APPEARANCE_CONFIG[this.appearance()]);
2909
- this.placeholder = computed(() => (this.disabled() ? "Recherche indisponible" : this.label()));
2910
- this.textInputStyles = computed(() => {
2911
- const styles = {};
2912
- const hasLeftIcon = this.appearanceConfig().showLeftIcon;
2913
- if (this.appearance() === "primary") {
2914
- styles["border-right"] = "none";
2915
- styles["border-radius"] = `${SEARCHBAR_BORDER_RADIUS} 0 0 ${SEARCHBAR_BORDER_RADIUS}`;
2916
- if (!hasLeftIcon) {
2917
- styles["padding-left"] = SEARCHBAR_PADDING_LEFT;
2918
- }
2919
- }
2920
- else if (this.appearance() === "secondary") {
2921
- styles["border-radius"] = SEARCHBAR_BORDER_RADIUS;
2922
- }
2923
- return styles;
2999
+ this.id = input.required();
3000
+ this.title = input();
3001
+ this.icon = input();
3002
+ this.iconAppearance = input("outlined");
3003
+ this.isOpen = input(false);
3004
+ this.position = input("modal");
3005
+ this.width = input();
3006
+ this.closeOnOverlayClick = input(false);
3007
+ this.primaryButtonLabel = input();
3008
+ this.secondaryButtonLabel = input();
3009
+ this.isCollapsible = input(false);
3010
+ this.fixedHeader = input(false);
3011
+ this.closeOnEscape = input(false);
3012
+ this.isClosable = input(true);
3013
+ this.modalHostMode = input(false);
3014
+ this.drawerContent = input(null);
3015
+ this.drawerHeader = input(null);
3016
+ this.drawerFooter = input(null);
3017
+ this.drawerContextContent = input(null);
3018
+ this.closed = output();
3019
+ this.clickToggle = output();
3020
+ this.iconSize = signal(IconSize["xl"]);
3021
+ this.drawerPanelModal = viewChild("drawerPanelModal");
3022
+ this.drawerPanelResponsive = viewChild("drawerPanelResponsive");
3023
+ this.isAnimating = signal(false);
3024
+ this.shouldRenderModalLayer = signal(false);
3025
+ this.shouldDisplayDefaultHeader = computed(() => shouldUseDrawerDefaultHeader(!!this.drawerHeader(), this.title()));
3026
+ this.shouldDisplayDefaultFooter = computed(() => shouldUseDrawerDefaultFooter(!!this.drawerFooter(), this.primaryButtonLabel()));
3027
+ this.panelWidthPx = signal(0);
3028
+ this.collapsibleToggleTransform = computed(() => {
3029
+ const widthPx = this.panelWidthPx();
3030
+ return this.isAnimating() ? `translateX(-${widthPx + DRAWER_PADDING}px)` : "none";
3031
+ });
3032
+ this.responsiveDividerTransform = computed(() => {
3033
+ const widthPx = this.panelWidthPx();
3034
+ return this.isAnimating() ? `translateX(-${widthPx}px)` : "none";
3035
+ });
3036
+ this.floatingToggleOpacity = computed(() => (this.isAnimating() ? 0 : 1));
3037
+ this.collapsibleToggleIconName = computed(() => this.isOpen() ? "right-panel-close" : "right-panel-open");
3038
+ this.collapsibleToggleAriaLabel = computed(() => {
3039
+ const verb = this.isOpen() ? "Close" : "Open";
3040
+ return `${verb} drawer ${this.id()}`;
3041
+ });
3042
+ this.responsiveMainMarginRight = computed(() => (this.isAnimating() ? (this.width() ?? "0") : "0"));
3043
+ this.focusTrap = inject(FocusTrapService);
3044
+ this.destroyRef = inject(DestroyRef);
3045
+ this.injector = inject(Injector);
3046
+ this.resizeObserver = null;
3047
+ this.focusTrapActive = false;
3048
+ effect(() => {
3049
+ const open = this.isOpen();
3050
+ const usesModalLayer = this.position() === "modal";
3051
+ if (open) {
3052
+ this.handleDrawerOpen(usesModalLayer);
3053
+ }
3054
+ else {
3055
+ this.handleDrawerClose(usesModalLayer);
3056
+ }
3057
+ }, { allowSignalWrites: true });
3058
+ effect(() => {
3059
+ const modalPanel = this.drawerPanelModal()?.nativeElement;
3060
+ const responsivePanel = this.drawerPanelResponsive()?.nativeElement;
3061
+ const panel = modalPanel ?? responsivePanel;
3062
+ if (!panel) {
3063
+ untracked(() => {
3064
+ this.resizeObserver?.disconnect();
3065
+ this.resizeObserver = null;
3066
+ });
3067
+ return;
3068
+ }
3069
+ untracked(() => {
3070
+ this.resizeObserver?.disconnect();
3071
+ this.resizeObserver = new ResizeObserver(() => {
3072
+ this.panelWidthPx.set(panel.clientWidth);
3073
+ });
3074
+ this.resizeObserver.observe(panel);
3075
+ this.panelWidthPx.set(panel.clientWidth);
3076
+ });
3077
+ }, { allowSignalWrites: true });
3078
+ this.destroyRef.onDestroy(() => {
3079
+ this.resizeObserver?.disconnect();
3080
+ if (this.focusTrapActive) {
3081
+ this.focusTrap.deactivate();
3082
+ this.focusTrapActive = false;
3083
+ }
3084
+ });
3085
+ }
3086
+ activateFocusTrapForPanel(resolvePanel) {
3087
+ afterNextRender(() => {
3088
+ const panelElement = resolvePanel();
3089
+ if (panelElement && !this.focusTrapActive) {
3090
+ this.focusTrap.activate(panelElement);
3091
+ this.focusTrapActive = true;
3092
+ }
3093
+ }, { injector: this.injector });
3094
+ }
3095
+ handleDrawerOpen(usesModalLayer) {
3096
+ if (usesModalLayer) {
3097
+ this.shouldRenderModalLayer.set(true);
3098
+ }
3099
+ this.isAnimating.set(false);
3100
+ const resolvePanel = () => {
3101
+ if (usesModalLayer) {
3102
+ return this.drawerPanelModal()?.nativeElement ?? this.drawerPanelResponsive()?.nativeElement;
3103
+ }
3104
+ return this.drawerPanelResponsive()?.nativeElement;
3105
+ };
3106
+ untracked(() => {
3107
+ waitForNextFrame$1(() => {
3108
+ this.isAnimating.set(true);
3109
+ this.activateFocusTrapForPanel(resolvePanel);
3110
+ });
3111
+ });
3112
+ }
3113
+ handleDrawerClose(usesModalLayer) {
3114
+ this.isAnimating.set(false);
3115
+ if (this.focusTrapActive) {
3116
+ this.focusTrap.deactivate();
3117
+ this.focusTrapActive = false;
3118
+ }
3119
+ if (usesModalLayer && this.shouldRenderModalLayer()) {
3120
+ setTimeout(() => {
3121
+ this.shouldRenderModalLayer.set(false);
3122
+ }, DRAWER_TRANSITION_DURATION);
3123
+ }
3124
+ }
3125
+ onClose() {
3126
+ this.closed.emit();
3127
+ }
3128
+ onClickToggle() {
3129
+ this.clickToggle.emit();
3130
+ }
3131
+ ngOnDestroy() {
3132
+ this.resizeObserver?.disconnect();
3133
+ if (this.focusTrapActive) {
3134
+ this.focusTrap.deactivate();
3135
+ this.focusTrapActive = false;
3136
+ }
3137
+ }
3138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DrawerComponent, isStandalone: true, selector: "rte-drawer", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconAppearance: { classPropertyName: "iconAppearance", publicName: "iconAppearance", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, closeOnOverlayClick: { classPropertyName: "closeOnOverlayClick", publicName: "closeOnOverlayClick", isSignal: true, isRequired: false, transformFunction: null }, primaryButtonLabel: { classPropertyName: "primaryButtonLabel", publicName: "primaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonLabel: { classPropertyName: "secondaryButtonLabel", publicName: "secondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, isCollapsible: { classPropertyName: "isCollapsible", publicName: "isCollapsible", isSignal: true, isRequired: false, transformFunction: null }, fixedHeader: { classPropertyName: "fixedHeader", publicName: "fixedHeader", isSignal: true, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: true, isRequired: false, transformFunction: null }, isClosable: { classPropertyName: "isClosable", publicName: "isClosable", isSignal: true, isRequired: false, transformFunction: null }, modalHostMode: { classPropertyName: "modalHostMode", publicName: "modalHostMode", isSignal: true, isRequired: false, transformFunction: null }, drawerContent: { classPropertyName: "drawerContent", publicName: "drawerContent", isSignal: true, isRequired: false, transformFunction: null }, drawerHeader: { classPropertyName: "drawerHeader", publicName: "drawerHeader", isSignal: true, isRequired: false, transformFunction: null }, drawerFooter: { classPropertyName: "drawerFooter", publicName: "drawerFooter", isSignal: true, isRequired: false, transformFunction: null }, drawerContextContent: { classPropertyName: "drawerContextContent", publicName: "drawerContextContent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", clickToggle: "clickToggle" }, viewQueries: [{ propertyName: "drawerPanelModal", first: true, predicate: ["drawerPanelModal"], descendants: true, isSignal: true }, { propertyName: "drawerPanelResponsive", first: true, predicate: ["drawerPanelResponsive"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"rte-drawer-root\" [class.rte-drawer-modal-host-layer]=\"modalHostMode()\" [attr.data-position]=\"position()\">\n @if (isCollapsible()) {\n <rte-icon-button\n class=\"drawer-toggle drawer-toggle--floating\"\n size=\"l\"\n variant=\"primary\"\n [ariaLabel]=\"collapsibleToggleAriaLabel()\"\n [name]=\"collapsibleToggleIconName()\"\n [customStyle]=\"{\n position: 'absolute',\n top: '24px',\n right: '4px',\n opacity: floatingToggleOpacity().toString(),\n }\"\n (clickEvent)=\"onClickToggle()\"\n />\n }\n\n @if (position() === \"responsive\") {\n <div class=\"drawer-responsive-container\">\n @if (isCollapsible()) {\n <rte-icon-button\n class=\"drawer-toggle drawer-toggle--responsive-floating\"\n size=\"l\"\n variant=\"primary\"\n [ariaLabel]=\"collapsibleToggleAriaLabel()\"\n [name]=\"collapsibleToggleIconName()\"\n [customStyle]=\"{\n position: 'absolute',\n top: '24px',\n right: '4px',\n opacity: isAnimating() ? '0' : '1',\n transform: collapsibleToggleTransform(),\n }\"\n (clickEvent)=\"onClickToggle()\"\n />\n }\n <div\n class=\"drawer-responsive-divider-wrap\"\n [style.visibility]=\"isAnimating() ? 'visible' : 'hidden'\"\n [style.transform]=\"responsiveDividerTransform()\"\n >\n <rte-divider orientation=\"vertical\" />\n </div>\n <div\n #drawerPanelResponsive\n class=\"drawer\"\n data-drawer-panel\n data-testid=\"drawer-responsive-panel\"\n role=\"region\"\n [attr.data-open]=\"isAnimating() ? 'true' : 'false'\"\n [attr.data-position]=\"position()\"\n [attr.data-fixed-header]=\"fixedHeader() ? 'true' : 'false'\"\n [attr.aria-labelledby]=\"id() + '-drawer-title'\"\n [style.width]=\"width()\"\n [style.transform]=\"isAnimating() ? 'none' : 'translateX(' + (width() ?? '100%') + ')'\"\n [style.visibility]=\"isAnimating() ? 'visible' : 'hidden'\"\n >\n <ng-container *ngTemplateOutlet=\"headerAndContent\" />\n <ng-container *ngTemplateOutlet=\"footerBlock\" />\n </div>\n <div\n class=\"drawer-children\"\n [attr.data-open]=\"isAnimating() ? 'true' : 'false'\"\n [style.marginRight]=\"responsiveMainMarginRight()\"\n [style.maxHeight]=\"isAnimating() ? '100%' : undefined\"\n [style.overflowY]=\"isAnimating() ? 'auto' : undefined\"\n >\n <ng-container *ngTemplateOutlet=\"drawerContextContent() ?? null\" />\n </div>\n </div>\n }\n\n @if (position() === \"modal\" && shouldRenderModalLayer()) {\n <div class=\"rte-drawer-modal-layer\">\n <div class=\"rte-drawer-backdrop\" [attr.data-open]=\"isAnimating() ? 'true' : 'false'\"></div>\n <div\n #drawerPanelModal\n class=\"drawer\"\n data-drawer-panel\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.data-open]=\"isAnimating() ? 'true' : 'false'\"\n [attr.data-fixed-header]=\"fixedHeader() ? 'true' : 'false'\"\n [attr.aria-labelledby]=\"id() + '-drawer-title'\"\n [style.width]=\"width()\"\n >\n <ng-container *ngTemplateOutlet=\"headerAndContent\" />\n <ng-container *ngTemplateOutlet=\"footerBlock\" />\n </div>\n </div>\n }\n</div>\n\n<ng-template #headerAndContent>\n @if (fixedHeader()) {\n <ng-container *ngTemplateOutlet=\"headerBlock\" />\n <ng-container *ngTemplateOutlet=\"contentBlock\" />\n } @else {\n <div class=\"drawer-header-content\">\n <ng-container *ngTemplateOutlet=\"headerBlock\" />\n <ng-container *ngTemplateOutlet=\"contentBlock\" />\n </div>\n }\n</ng-template>\n\n<ng-template #headerBlock>\n @if (isCollapsible()) {\n <rte-icon-button\n class=\"drawer-toggle\"\n size=\"l\"\n variant=\"primary\"\n [ariaLabel]=\"collapsibleToggleAriaLabel()\"\n [name]=\"collapsibleToggleIconName()\"\n [customStyle]=\"{ transform: collapsibleToggleTransform() }\"\n (clickEvent)=\"onClickToggle()\"\n />\n }\n @if (shouldDisplayDefaultHeader()) {\n <div class=\"rte-drawer-base-header\">\n <div class=\"rte-drawer-base-header-text\">\n @if (icon()) {\n <rte-icon [name]=\"icon() ?? ''\" [size]=\"iconSize()\" [appearance]=\"iconAppearance()\" />\n }\n <h2 id=\"{{ id() }}-drawer-title\" class=\"rte-drawer-base-header-title\">\n {{ title() }}\n </h2>\n @if (isClosable()) {\n <rte-icon-button\n ariaLabel=\"Close drawer {{ id() }}\"\n data-testid=\"drawer-close-button\"\n name=\"close\"\n size=\"l\"\n class=\"rte-drawer-close-icon\"\n variant=\"neutral\"\n (clickEvent)=\"onClose()\"\n />\n }\n </div>\n <rte-divider />\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"drawerHeader() ?? null\" />\n }\n</ng-template>\n\n<ng-template #contentBlock>\n <div class=\"drawer-content\" tabindex=\"-1\" [attr.data-fixed-header]=\"fixedHeader() ? 'true' : 'false'\">\n <ng-container *ngTemplateOutlet=\"drawerContent() ?? null\" />\n </div>\n</ng-template>\n\n<ng-template #footerBlock>\n <div class=\"drawer-footer\" [attr.data-fixed-header]=\"fixedHeader() ? 'true' : 'false'\">\n @if (shouldDisplayDefaultFooter()) {\n <div class=\"rte-drawer-base-footer\">\n @if (secondaryButtonLabel()) {\n <button rteButton rteButtonVariant=\"neutral\">\n {{ secondaryButtonLabel() }}\n </button>\n }\n <button rteButton rteButtonVariant=\"primary\">\n {{ primaryButtonLabel() }}\n </button>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"drawerFooter() ?? null\" />\n }\n </div>\n</ng-template>\n", styles: [":host-context(.rte-drawer-host--responsive-layout){display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;box-sizing:border-box}.rte-drawer-root{position:relative}.rte-drawer-root[data-position=responsive]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;width:100%}.rte-drawer-root[data-position=responsive] .drawer-responsive-container{flex:1 1 auto;min-height:0;height:auto;position:relative;overflow-x:clip}.rte-drawer-modal-host-layer{position:fixed;inset:0;z-index:999;pointer-events:none}.rte-drawer-modal-host-layer .drawer-toggle--floating,.rte-drawer-modal-host-layer .rte-drawer-modal-layer{pointer-events:auto}.rte-drawer-modal-layer{position:fixed;inset:0}.rte-drawer-backdrop{position:absolute;inset:0;opacity:0;background-color:#201f1f80;transition:opacity .24s ease-out}.rte-drawer-backdrop[data-open=true]{opacity:1}.drawer-responsive-divider-wrap{position:absolute;right:0;transition:transform .24s ease-out;height:100%}.drawer{display:flex;height:100%;box-sizing:border-box;min-width:64px;padding:24px;gap:24px;flex-direction:column;align-items:flex-start;transform:translate(100%);transition:transform .24s ease-out;box-shadow:0 4px 8px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-3) 0%,var(--elevation-surface-shadow-3) 100%);background-color:var(--background-default);position:absolute;right:0}.drawer[data-fixed-header=false]{padding:24px 8px 24px 24px}.drawer[data-open=true]{transform:translate(0)}.drawer[data-position=responsive]{width:100%;position:absolute;right:0;box-shadow:none;transition:transform .24s ease-out;flex:0 0 auto;height:100%;max-height:100%;background:transparent}.drawer[data-position=responsive][data-open=true]{transform:none}.drawer .drawer-content{flex:1 1 auto;width:100%}.drawer .drawer-content[data-fixed-header=true]{padding-right:16px;overflow-y:auto}.drawer .drawer-toggle{position:absolute;top:24px;right:0;transition:transform .24s ease-out}.drawer .drawer-toggle:focus-visible{position:absolute}.drawer .drawer-footer{width:100%}.drawer .drawer-footer[data-fixed-header=false]{padding-right:16px;box-sizing:border-box}.drawer .drawer-header-content{display:flex;flex-direction:column;height:100%;gap:24px;overflow-y:auto;padding-right:16px;box-sizing:border-box}.rte-drawer-base-header{display:flex;flex-direction:column;gap:8px;width:100%;flex:0 0 auto}.rte-drawer-base-header .rte-drawer-base-header-text{display:flex;flex-direction:row;align-items:center;gap:8px}.rte-drawer-base-header .rte-drawer-base-header-text .rte-drawer-base-header-title{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:24px;line-height:32px;letter-spacing:-.5px;margin:0;overflow:hidden;color:var(--content-primary);text-overflow:ellipsis;flex:1 1 0}.rte-drawer-base-footer{display:flex;padding:0;justify-content:flex-end;align-items:center;gap:24px;align-self:stretch;flex:0 0 auto;width:100%}.drawer-children{box-sizing:border-box;min-height:0;height:100%;transition:margin-right .24s ease-out}.drawer-toggle--floating,.drawer-toggle--responsive-floating{z-index:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent", "rteButtonIcon", "rteButtonIconPosition", "rteButtonIconAppearance"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3140
+ }
3141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerComponent, decorators: [{
3142
+ type: Component,
3143
+ args: [{ selector: "rte-drawer", imports: [CommonModule, ButtonComponent, DividerComponent, IconComponent, IconButtonComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"rte-drawer-root\" [class.rte-drawer-modal-host-layer]=\"modalHostMode()\" [attr.data-position]=\"position()\">\n @if (isCollapsible()) {\n <rte-icon-button\n class=\"drawer-toggle drawer-toggle--floating\"\n size=\"l\"\n variant=\"primary\"\n [ariaLabel]=\"collapsibleToggleAriaLabel()\"\n [name]=\"collapsibleToggleIconName()\"\n [customStyle]=\"{\n position: 'absolute',\n top: '24px',\n right: '4px',\n opacity: floatingToggleOpacity().toString(),\n }\"\n (clickEvent)=\"onClickToggle()\"\n />\n }\n\n @if (position() === \"responsive\") {\n <div class=\"drawer-responsive-container\">\n @if (isCollapsible()) {\n <rte-icon-button\n class=\"drawer-toggle drawer-toggle--responsive-floating\"\n size=\"l\"\n variant=\"primary\"\n [ariaLabel]=\"collapsibleToggleAriaLabel()\"\n [name]=\"collapsibleToggleIconName()\"\n [customStyle]=\"{\n position: 'absolute',\n top: '24px',\n right: '4px',\n opacity: isAnimating() ? '0' : '1',\n transform: collapsibleToggleTransform(),\n }\"\n (clickEvent)=\"onClickToggle()\"\n />\n }\n <div\n class=\"drawer-responsive-divider-wrap\"\n [style.visibility]=\"isAnimating() ? 'visible' : 'hidden'\"\n [style.transform]=\"responsiveDividerTransform()\"\n >\n <rte-divider orientation=\"vertical\" />\n </div>\n <div\n #drawerPanelResponsive\n class=\"drawer\"\n data-drawer-panel\n data-testid=\"drawer-responsive-panel\"\n role=\"region\"\n [attr.data-open]=\"isAnimating() ? 'true' : 'false'\"\n [attr.data-position]=\"position()\"\n [attr.data-fixed-header]=\"fixedHeader() ? 'true' : 'false'\"\n [attr.aria-labelledby]=\"id() + '-drawer-title'\"\n [style.width]=\"width()\"\n [style.transform]=\"isAnimating() ? 'none' : 'translateX(' + (width() ?? '100%') + ')'\"\n [style.visibility]=\"isAnimating() ? 'visible' : 'hidden'\"\n >\n <ng-container *ngTemplateOutlet=\"headerAndContent\" />\n <ng-container *ngTemplateOutlet=\"footerBlock\" />\n </div>\n <div\n class=\"drawer-children\"\n [attr.data-open]=\"isAnimating() ? 'true' : 'false'\"\n [style.marginRight]=\"responsiveMainMarginRight()\"\n [style.maxHeight]=\"isAnimating() ? '100%' : undefined\"\n [style.overflowY]=\"isAnimating() ? 'auto' : undefined\"\n >\n <ng-container *ngTemplateOutlet=\"drawerContextContent() ?? null\" />\n </div>\n </div>\n }\n\n @if (position() === \"modal\" && shouldRenderModalLayer()) {\n <div class=\"rte-drawer-modal-layer\">\n <div class=\"rte-drawer-backdrop\" [attr.data-open]=\"isAnimating() ? 'true' : 'false'\"></div>\n <div\n #drawerPanelModal\n class=\"drawer\"\n data-drawer-panel\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.data-open]=\"isAnimating() ? 'true' : 'false'\"\n [attr.data-fixed-header]=\"fixedHeader() ? 'true' : 'false'\"\n [attr.aria-labelledby]=\"id() + '-drawer-title'\"\n [style.width]=\"width()\"\n >\n <ng-container *ngTemplateOutlet=\"headerAndContent\" />\n <ng-container *ngTemplateOutlet=\"footerBlock\" />\n </div>\n </div>\n }\n</div>\n\n<ng-template #headerAndContent>\n @if (fixedHeader()) {\n <ng-container *ngTemplateOutlet=\"headerBlock\" />\n <ng-container *ngTemplateOutlet=\"contentBlock\" />\n } @else {\n <div class=\"drawer-header-content\">\n <ng-container *ngTemplateOutlet=\"headerBlock\" />\n <ng-container *ngTemplateOutlet=\"contentBlock\" />\n </div>\n }\n</ng-template>\n\n<ng-template #headerBlock>\n @if (isCollapsible()) {\n <rte-icon-button\n class=\"drawer-toggle\"\n size=\"l\"\n variant=\"primary\"\n [ariaLabel]=\"collapsibleToggleAriaLabel()\"\n [name]=\"collapsibleToggleIconName()\"\n [customStyle]=\"{ transform: collapsibleToggleTransform() }\"\n (clickEvent)=\"onClickToggle()\"\n />\n }\n @if (shouldDisplayDefaultHeader()) {\n <div class=\"rte-drawer-base-header\">\n <div class=\"rte-drawer-base-header-text\">\n @if (icon()) {\n <rte-icon [name]=\"icon() ?? ''\" [size]=\"iconSize()\" [appearance]=\"iconAppearance()\" />\n }\n <h2 id=\"{{ id() }}-drawer-title\" class=\"rte-drawer-base-header-title\">\n {{ title() }}\n </h2>\n @if (isClosable()) {\n <rte-icon-button\n ariaLabel=\"Close drawer {{ id() }}\"\n data-testid=\"drawer-close-button\"\n name=\"close\"\n size=\"l\"\n class=\"rte-drawer-close-icon\"\n variant=\"neutral\"\n (clickEvent)=\"onClose()\"\n />\n }\n </div>\n <rte-divider />\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"drawerHeader() ?? null\" />\n }\n</ng-template>\n\n<ng-template #contentBlock>\n <div class=\"drawer-content\" tabindex=\"-1\" [attr.data-fixed-header]=\"fixedHeader() ? 'true' : 'false'\">\n <ng-container *ngTemplateOutlet=\"drawerContent() ?? null\" />\n </div>\n</ng-template>\n\n<ng-template #footerBlock>\n <div class=\"drawer-footer\" [attr.data-fixed-header]=\"fixedHeader() ? 'true' : 'false'\">\n @if (shouldDisplayDefaultFooter()) {\n <div class=\"rte-drawer-base-footer\">\n @if (secondaryButtonLabel()) {\n <button rteButton rteButtonVariant=\"neutral\">\n {{ secondaryButtonLabel() }}\n </button>\n }\n <button rteButton rteButtonVariant=\"primary\">\n {{ primaryButtonLabel() }}\n </button>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"drawerFooter() ?? null\" />\n }\n </div>\n</ng-template>\n", styles: [":host-context(.rte-drawer-host--responsive-layout){display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;box-sizing:border-box}.rte-drawer-root{position:relative}.rte-drawer-root[data-position=responsive]{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;width:100%}.rte-drawer-root[data-position=responsive] .drawer-responsive-container{flex:1 1 auto;min-height:0;height:auto;position:relative;overflow-x:clip}.rte-drawer-modal-host-layer{position:fixed;inset:0;z-index:999;pointer-events:none}.rte-drawer-modal-host-layer .drawer-toggle--floating,.rte-drawer-modal-host-layer .rte-drawer-modal-layer{pointer-events:auto}.rte-drawer-modal-layer{position:fixed;inset:0}.rte-drawer-backdrop{position:absolute;inset:0;opacity:0;background-color:#201f1f80;transition:opacity .24s ease-out}.rte-drawer-backdrop[data-open=true]{opacity:1}.drawer-responsive-divider-wrap{position:absolute;right:0;transition:transform .24s ease-out;height:100%}.drawer{display:flex;height:100%;box-sizing:border-box;min-width:64px;padding:24px;gap:24px;flex-direction:column;align-items:flex-start;transform:translate(100%);transition:transform .24s ease-out;box-shadow:0 4px 8px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-3) 0%,var(--elevation-surface-shadow-3) 100%);background-color:var(--background-default);position:absolute;right:0}.drawer[data-fixed-header=false]{padding:24px 8px 24px 24px}.drawer[data-open=true]{transform:translate(0)}.drawer[data-position=responsive]{width:100%;position:absolute;right:0;box-shadow:none;transition:transform .24s ease-out;flex:0 0 auto;height:100%;max-height:100%;background:transparent}.drawer[data-position=responsive][data-open=true]{transform:none}.drawer .drawer-content{flex:1 1 auto;width:100%}.drawer .drawer-content[data-fixed-header=true]{padding-right:16px;overflow-y:auto}.drawer .drawer-toggle{position:absolute;top:24px;right:0;transition:transform .24s ease-out}.drawer .drawer-toggle:focus-visible{position:absolute}.drawer .drawer-footer{width:100%}.drawer .drawer-footer[data-fixed-header=false]{padding-right:16px;box-sizing:border-box}.drawer .drawer-header-content{display:flex;flex-direction:column;height:100%;gap:24px;overflow-y:auto;padding-right:16px;box-sizing:border-box}.rte-drawer-base-header{display:flex;flex-direction:column;gap:8px;width:100%;flex:0 0 auto}.rte-drawer-base-header .rte-drawer-base-header-text{display:flex;flex-direction:row;align-items:center;gap:8px}.rte-drawer-base-header .rte-drawer-base-header-text .rte-drawer-base-header-title{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:24px;line-height:32px;letter-spacing:-.5px;margin:0;overflow:hidden;color:var(--content-primary);text-overflow:ellipsis;flex:1 1 0}.rte-drawer-base-footer{display:flex;padding:0;justify-content:flex-end;align-items:center;gap:24px;align-self:stretch;flex:0 0 auto;width:100%}.drawer-children{box-sizing:border-box;min-height:0;height:100%;transition:margin-right .24s ease-out}.drawer-toggle--floating,.drawer-toggle--responsive-floating{z-index:1}\n"] }]
3144
+ }], ctorParameters: () => [] });
3145
+
3146
+ class DrawerDirective {
3147
+ get isResponsiveLayoutHost() {
3148
+ return this.rteDrawerPosition() === "responsive";
3149
+ }
3150
+ get responsiveHostDisplay() {
3151
+ return this.rteDrawerPosition() === "responsive" ? "flex" : undefined;
3152
+ }
3153
+ get responsiveHostFlexDirection() {
3154
+ return this.rteDrawerPosition() === "responsive" ? "column" : undefined;
3155
+ }
3156
+ get responsiveHostMinHeight() {
3157
+ return this.rteDrawerPosition() === "responsive" ? "0" : undefined;
3158
+ }
3159
+ get responsiveHostBoxSizing() {
3160
+ return this.rteDrawerPosition() === "responsive" ? "border-box" : undefined;
3161
+ }
3162
+ static { this.responsiveShellMountMaxAttempts = 12; }
3163
+ constructor() {
3164
+ this.drawerCompRef = null;
3165
+ this.drawerPanelElement = null;
3166
+ this.usedOverlay = false;
3167
+ this.isOpenProvided = false;
3168
+ this.elementRef = inject(ElementRef);
3169
+ this.viewContainerRef = inject(ViewContainerRef);
3170
+ this.overlayService = inject(OverlayService);
3171
+ this.injector = inject(Injector);
3172
+ this.drawerContent = contentChild.required("drawerContent");
3173
+ this.drawerHeader = contentChild("drawerHeader");
3174
+ this.drawerFooter = contentChild("drawerFooter");
3175
+ this.drawerContextContent = contentChild("drawerContextContent");
3176
+ this.rteDrawerId = input.required();
3177
+ this.rteDrawerIsOpen = input(false);
3178
+ this.rteDrawerTitle = input();
3179
+ this.rteDrawerIcon = input();
3180
+ this.rteDrawerIconAppearance = input("outlined");
3181
+ this.rteDrawerPosition = input("modal");
3182
+ this.rteDrawerWidth = input();
3183
+ this.rteDrawerCloseOnOverlayClick = input(false);
3184
+ this.rteDrawerPrimaryButtonLabel = input();
3185
+ this.rteDrawerSecondaryButtonLabel = input();
3186
+ this.rteDrawerIsCollapsible = input(false);
3187
+ this.rteDrawerFixedHeader = input(false);
3188
+ this.rteDrawerCloseOnEscape = input(false);
3189
+ this.rteDrawerIsClosable = input(true);
3190
+ this.effectiveOpen = signal(false);
3191
+ this.onMouseDown = (mouseEvent) => this.handleClickAway(mouseEvent);
3192
+ this.onKeyDown = (keyboardEvent) => this.handleKeydown(keyboardEvent);
3193
+ this.scheduleResponsiveShellMount(DrawerDirective.responsiveShellMountMaxAttempts);
3194
+ effect(() => {
3195
+ this.rteDrawerIsOpen();
3196
+ untracked(() => {
3197
+ if (this.isOpenProvided) {
3198
+ return;
3199
+ }
3200
+ this.effectiveOpen.set(this.rteDrawerIsOpen());
3201
+ this.isOpenProvided = true;
3202
+ });
3203
+ });
3204
+ effect(() => {
3205
+ const open = this.effectiveOpen();
3206
+ untracked(() => {
3207
+ if (open) {
3208
+ this.runOpenTransition();
3209
+ }
3210
+ else {
3211
+ this.runCloseTransition();
3212
+ }
3213
+ });
3214
+ }, { allowSignalWrites: true });
3215
+ }
3216
+ open() {
3217
+ if (!this.validateForOpen()) {
3218
+ return;
3219
+ }
3220
+ this.effectiveOpen.set(true);
3221
+ }
3222
+ close() {
3223
+ this.effectiveOpen.set(false);
3224
+ }
3225
+ scheduleResponsiveShellMount(attemptsRemaining) {
3226
+ afterNextRender(() => {
3227
+ if (this.rteDrawerPosition() !== "responsive" || this.drawerCompRef) {
3228
+ return;
3229
+ }
3230
+ if (this.validateForOpen()) {
3231
+ this.mountDrawer();
3232
+ const mountedRef = this.drawerCompRef;
3233
+ if (mountedRef === null) {
3234
+ return;
3235
+ }
3236
+ this.syncInputsToDrawer();
3237
+ mountedRef.setInput("isOpen", false);
3238
+ return;
3239
+ }
3240
+ if (attemptsRemaining > 1) {
3241
+ this.scheduleResponsiveShellMount(attemptsRemaining - 1);
3242
+ }
3243
+ else {
3244
+ console.warn("Drawer: responsive shell could not mount after multiple attempts (content queries may still be empty).");
3245
+ }
3246
+ }, { injector: this.injector });
3247
+ }
3248
+ ngAfterContentInit() {
3249
+ document.addEventListener("mousedown", this.onMouseDown);
3250
+ document.addEventListener("keydown", this.onKeyDown);
3251
+ }
3252
+ onHostClick(clickEvent) {
3253
+ const target = clickEvent.target;
3254
+ if (!(target instanceof Node)) {
3255
+ return;
3256
+ }
3257
+ const triggerElement = target instanceof Element ? target.closest("[data-rte-drawer-trigger]") : null;
3258
+ if (!triggerElement || !this.elementRef.nativeElement.contains(triggerElement)) {
3259
+ return;
3260
+ }
3261
+ this.open();
3262
+ }
3263
+ ngOnDestroy() {
3264
+ document.removeEventListener("mousedown", this.onMouseDown);
3265
+ document.removeEventListener("keydown", this.onKeyDown);
3266
+ this.teardownDrawer();
3267
+ }
3268
+ runOpenTransition() {
3269
+ if (!this.validateForOpen()) {
3270
+ this.close();
3271
+ return;
3272
+ }
3273
+ if (!this.drawerCompRef) {
3274
+ this.mountDrawer();
3275
+ }
3276
+ if (!this.drawerCompRef) {
3277
+ return;
3278
+ }
3279
+ this.syncInputsToDrawer();
3280
+ this.refreshDrawerPanelElement();
3281
+ waitForNextFrame$1(() => {
3282
+ this.drawerCompRef?.setInput("isOpen", true);
3283
+ this.refreshDrawerPanelElement();
3284
+ });
3285
+ if (this.rteDrawerPosition() === "modal" && this.rteDrawerIsCollapsible()) {
3286
+ document.body.style.overflow = "hidden";
3287
+ }
3288
+ }
3289
+ runCloseTransition() {
3290
+ if (!this.drawerCompRef) {
3291
+ return;
3292
+ }
3293
+ this.drawerCompRef.setInput("isOpen", false);
3294
+ const keepMounted = this.rteDrawerIsCollapsible() || this.rteDrawerPosition() === "responsive";
3295
+ if (!keepMounted) {
3296
+ setTimeout(() => this.teardownDrawer(), DRAWER_TRANSITION_DURATION);
3297
+ }
3298
+ else if (this.rteDrawerPosition() === "modal" && this.rteDrawerIsCollapsible()) {
3299
+ document.body.style.overflow = "";
3300
+ }
3301
+ }
3302
+ handleClosed() {
3303
+ this.close();
3304
+ }
3305
+ handleToggle() {
3306
+ this.effectiveOpen.update((current) => !current);
3307
+ }
3308
+ mountDrawer() {
3309
+ const position = this.rteDrawerPosition();
3310
+ const collapsible = this.rteDrawerIsCollapsible();
3311
+ const useOverlay = position === "modal" && !collapsible;
3312
+ if (useOverlay) {
3313
+ this.drawerCompRef = this.overlayService.create(DrawerComponent, this.viewContainerRef, true);
3314
+ this.usedOverlay = true;
3315
+ }
3316
+ else {
3317
+ this.drawerCompRef = this.viewContainerRef.createComponent(DrawerComponent);
3318
+ this.usedOverlay = false;
3319
+ this.elementRef.nativeElement.appendChild(this.drawerCompRef.location.nativeElement);
3320
+ }
3321
+ this.drawerCompRef.instance.closed.subscribe(() => {
3322
+ this.handleClosed();
3323
+ });
3324
+ this.drawerCompRef.instance.clickToggle.subscribe(() => {
3325
+ this.handleToggle();
3326
+ });
3327
+ }
3328
+ teardownDrawer() {
3329
+ if (this.drawerCompRef) {
3330
+ this.drawerCompRef.destroy();
3331
+ this.drawerCompRef = null;
3332
+ }
3333
+ if (this.usedOverlay) {
3334
+ this.overlayService.destroy();
3335
+ this.usedOverlay = false;
3336
+ }
3337
+ document.body.style.overflow = "";
3338
+ this.drawerPanelElement = null;
3339
+ }
3340
+ syncInputsToDrawer() {
3341
+ const componentRef = this.drawerCompRef;
3342
+ if (!componentRef) {
3343
+ return;
3344
+ }
3345
+ componentRef.setInput("id", this.rteDrawerId());
3346
+ componentRef.setInput("title", this.rteDrawerTitle());
3347
+ componentRef.setInput("icon", this.rteDrawerIcon());
3348
+ componentRef.setInput("iconAppearance", this.rteDrawerIconAppearance());
3349
+ componentRef.setInput("position", this.rteDrawerPosition());
3350
+ componentRef.setInput("width", this.rteDrawerWidth());
3351
+ componentRef.setInput("closeOnOverlayClick", this.rteDrawerCloseOnOverlayClick());
3352
+ componentRef.setInput("primaryButtonLabel", this.rteDrawerPrimaryButtonLabel());
3353
+ componentRef.setInput("secondaryButtonLabel", this.rteDrawerSecondaryButtonLabel());
3354
+ componentRef.setInput("isCollapsible", this.rteDrawerIsCollapsible());
3355
+ componentRef.setInput("fixedHeader", this.rteDrawerFixedHeader());
3356
+ componentRef.setInput("closeOnEscape", this.rteDrawerCloseOnEscape());
3357
+ componentRef.setInput("isClosable", this.rteDrawerIsClosable());
3358
+ componentRef.setInput("modalHostMode", this.rteDrawerPosition() === "modal" && this.rteDrawerIsCollapsible());
3359
+ componentRef.setInput("drawerContent", this.drawerContent());
3360
+ componentRef.setInput("drawerHeader", this.drawerHeader() ?? null);
3361
+ componentRef.setInput("drawerFooter", this.drawerFooter() ?? null);
3362
+ componentRef.setInput("drawerContextContent", this.drawerContextContent() ?? null);
3363
+ }
3364
+ refreshDrawerPanelElement() {
3365
+ const root = this.drawerCompRef?.location.nativeElement;
3366
+ this.drawerPanelElement = root?.querySelector("[data-drawer-panel]") ?? null;
3367
+ }
3368
+ validateForOpen() {
3369
+ const issues = getDrawerConfigurationIssues({
3370
+ hasCustomHeader: !!this.drawerHeader(),
3371
+ hasTitle: !!this.rteDrawerTitle(),
3372
+ hasCustomFooter: !!this.drawerFooter(),
3373
+ hasPrimaryButtonLabel: !!this.rteDrawerPrimaryButtonLabel(),
3374
+ position: this.rteDrawerPosition(),
3375
+ hasMainContent: !!this.drawerContextContent(),
3376
+ });
3377
+ if (issues) {
3378
+ console.warn(issues);
3379
+ return false;
3380
+ }
3381
+ return true;
3382
+ }
3383
+ handleKeydown(keyboardEvent) {
3384
+ if (!this.effectiveOpen()) {
3385
+ return;
3386
+ }
3387
+ if (keyboardEvent.key === ESCAPE_KEY && this.rteDrawerCloseOnEscape()) {
3388
+ keyboardEvent.preventDefault();
3389
+ this.close();
3390
+ }
3391
+ }
3392
+ handleClickAway(mouseEvent) {
3393
+ if (!this.effectiveOpen()) {
3394
+ return;
3395
+ }
3396
+ if (this.rteDrawerPosition() !== "modal") {
3397
+ return;
3398
+ }
3399
+ if (!this.rteDrawerCloseOnOverlayClick()) {
3400
+ return;
3401
+ }
3402
+ const hostElement = this.elementRef.nativeElement;
3403
+ const target = mouseEvent.target;
3404
+ if (hostElement.contains(target)) {
3405
+ return;
3406
+ }
3407
+ if (this.drawerPanelElement?.contains(target)) {
3408
+ return;
3409
+ }
3410
+ this.close();
3411
+ }
3412
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3413
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.14", type: DrawerDirective, isStandalone: true, selector: "[rteDrawer]", inputs: { rteDrawerId: { classPropertyName: "rteDrawerId", publicName: "rteDrawerId", isSignal: true, isRequired: true, transformFunction: null }, rteDrawerIsOpen: { classPropertyName: "rteDrawerIsOpen", publicName: "rteDrawerIsOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerTitle: { classPropertyName: "rteDrawerTitle", publicName: "rteDrawerTitle", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerIcon: { classPropertyName: "rteDrawerIcon", publicName: "rteDrawerIcon", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerIconAppearance: { classPropertyName: "rteDrawerIconAppearance", publicName: "rteDrawerIconAppearance", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerPosition: { classPropertyName: "rteDrawerPosition", publicName: "rteDrawerPosition", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerWidth: { classPropertyName: "rteDrawerWidth", publicName: "rteDrawerWidth", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerCloseOnOverlayClick: { classPropertyName: "rteDrawerCloseOnOverlayClick", publicName: "rteDrawerCloseOnOverlayClick", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerPrimaryButtonLabel: { classPropertyName: "rteDrawerPrimaryButtonLabel", publicName: "rteDrawerPrimaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerSecondaryButtonLabel: { classPropertyName: "rteDrawerSecondaryButtonLabel", publicName: "rteDrawerSecondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerIsCollapsible: { classPropertyName: "rteDrawerIsCollapsible", publicName: "rteDrawerIsCollapsible", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerFixedHeader: { classPropertyName: "rteDrawerFixedHeader", publicName: "rteDrawerFixedHeader", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerCloseOnEscape: { classPropertyName: "rteDrawerCloseOnEscape", publicName: "rteDrawerCloseOnEscape", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerIsClosable: { classPropertyName: "rteDrawerIsClosable", publicName: "rteDrawerIsClosable", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class.rte-drawer-host--responsive-layout": "this.isResponsiveLayoutHost", "style.display": "this.responsiveHostDisplay", "style.flex-direction": "this.responsiveHostFlexDirection", "style.min-height": "this.responsiveHostMinHeight", "style.box-sizing": "this.responsiveHostBoxSizing" } }, queries: [{ propertyName: "drawerContent", first: true, predicate: ["drawerContent"], descendants: true, isSignal: true }, { propertyName: "drawerHeader", first: true, predicate: ["drawerHeader"], descendants: true, isSignal: true }, { propertyName: "drawerFooter", first: true, predicate: ["drawerFooter"], descendants: true, isSignal: true }, { propertyName: "drawerContextContent", first: true, predicate: ["drawerContextContent"], descendants: true, isSignal: true }], exportAs: ["rteDrawer"], ngImport: i0 }); }
3414
+ }
3415
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerDirective, decorators: [{
3416
+ type: Directive,
3417
+ args: [{
3418
+ selector: "[rteDrawer]",
3419
+ exportAs: "rteDrawer",
3420
+ standalone: true,
3421
+ }]
3422
+ }], ctorParameters: () => [], propDecorators: { isResponsiveLayoutHost: [{
3423
+ type: HostBinding,
3424
+ args: ["class.rte-drawer-host--responsive-layout"]
3425
+ }], responsiveHostDisplay: [{
3426
+ type: HostBinding,
3427
+ args: ["style.display"]
3428
+ }], responsiveHostFlexDirection: [{
3429
+ type: HostBinding,
3430
+ args: ["style.flex-direction"]
3431
+ }], responsiveHostMinHeight: [{
3432
+ type: HostBinding,
3433
+ args: ["style.min-height"]
3434
+ }], responsiveHostBoxSizing: [{
3435
+ type: HostBinding,
3436
+ args: ["style.box-sizing"]
3437
+ }], onHostClick: [{
3438
+ type: HostListener,
3439
+ args: ["click", ["$event"]]
3440
+ }] } });
3441
+
3442
+ class DrawerTriggerDirective {
3443
+ constructor() {
3444
+ this.drawerTriggerKeyDown = output();
3445
+ this.drawerTriggerClicked = output();
3446
+ }
3447
+ onDrawerTriggerClicked(clickEvent) {
3448
+ this.drawerTriggerClicked.emit(clickEvent);
3449
+ }
3450
+ onKeyDown(keyboardEvent) {
3451
+ this.drawerTriggerKeyDown.emit(keyboardEvent);
3452
+ }
3453
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
3454
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DrawerTriggerDirective, isStandalone: true, selector: "[rteDrawerTrigger]", outputs: { drawerTriggerKeyDown: "drawerTriggerKeyDown", drawerTriggerClicked: "drawerTriggerClicked" }, host: { listeners: { "click": "onDrawerTriggerClicked($event)", "keydown": "onKeyDown($event)" }, properties: { "attr.data-rte-drawer-trigger": "true" } }, ngImport: i0 }); }
3455
+ }
3456
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerTriggerDirective, decorators: [{
3457
+ type: Directive,
3458
+ args: [{
3459
+ selector: "[rteDrawerTrigger]",
3460
+ standalone: true,
3461
+ host: {
3462
+ "[attr.data-rte-drawer-trigger]": "true",
3463
+ },
3464
+ }]
3465
+ }], propDecorators: { onDrawerTriggerClicked: [{
3466
+ type: HostListener,
3467
+ args: ["click", ["$event"]]
3468
+ }], onKeyDown: [{
3469
+ type: HostListener,
3470
+ args: ["keydown", ["$event"]]
3471
+ }] } });
3472
+
3473
+ class DrawerModule {
3474
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
3475
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, imports: [DrawerDirective, DrawerTriggerDirective], exports: [DrawerDirective, DrawerTriggerDirective] }); }
3476
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule }); }
3477
+ }
3478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, decorators: [{
3479
+ type: NgModule,
3480
+ args: [{
3481
+ imports: [DrawerDirective, DrawerTriggerDirective],
3482
+ exports: [DrawerDirective, DrawerTriggerDirective],
3483
+ }]
3484
+ }] });
3485
+
3486
+ class SearchbarComponent {
3487
+ constructor() {
3488
+ this.id = input();
3489
+ this.label = input("Rechercher");
3490
+ this.disabled = input(false);
3491
+ this.showResetButton = input(true);
3492
+ this.appearance = input("primary");
3493
+ this.compactSpacing = input(false);
3494
+ this.value = input("");
3495
+ this.assistiveText = input("");
3496
+ this.valueChange = output();
3497
+ this.searchEvent = output();
3498
+ this.clear = output();
3499
+ this.hasFocusWithin = signal(false);
3500
+ this.appearanceConfig = computed(() => APPEARANCE_CONFIG[this.appearance()]);
3501
+ this.placeholder = computed(() => (this.disabled() ? "Recherche indisponible" : this.label()));
3502
+ this.textInputStyles = computed(() => {
3503
+ const styles = {};
3504
+ const hasLeftIcon = this.appearanceConfig().showLeftIcon;
3505
+ if (this.appearance() === "primary") {
3506
+ styles["border-right"] = "none";
3507
+ styles["border-radius"] = `${SEARCHBAR_BORDER_RADIUS} 0 0 ${SEARCHBAR_BORDER_RADIUS}`;
3508
+ if (!hasLeftIcon) {
3509
+ styles["padding-left"] = SEARCHBAR_PADDING_LEFT;
3510
+ }
3511
+ }
3512
+ else if (this.appearance() === "secondary") {
3513
+ styles["border-radius"] = SEARCHBAR_BORDER_RADIUS;
3514
+ }
3515
+ return styles;
2924
3516
  });
2925
3517
  this.searchButtonStyles = computed(() => {
2926
3518
  const styles = {
@@ -3414,7 +4006,7 @@ class ToastComponent {
3414
4006
  }
3415
4007
  }
3416
4008
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3417
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToastComponent, isStandalone: true, selector: "rte-toast", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, autoDismiss: { classPropertyName: "autoDismiss", publicName: "autoDismiss", isSignal: true, isRequired: false, transformFunction: null }, showActionButton: { classPropertyName: "showActionButton", publicName: "showActionButton", isSignal: true, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, showLeftIcon: { classPropertyName: "showLeftIcon", publicName: "showLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, actionButtonLabel: { classPropertyName: "actionButtonLabel", publicName: "actionButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, onActionButtonClick: { classPropertyName: "onActionButtonClick", publicName: "onActionButtonClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"rte-toast {{ type() }} {{ position() }} {{ alignment() }}\"\n role=\"status\"\n [ngClass]=\"{ open: isOpen() }\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n>\n <div class=\"rte-toast-content\">\n @if (displayLeftIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"defaultIconName()\" [size]=\"iconSize\" />\n } @else {\n @if (displayCustomIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"iconName()!\" [size]=\"iconSize\" />\n }\n }\n <span class=\"rte-toast-message\">{{ message() }}</span>\n </div>\n @if (displayActionButton()) {\n <button rteButton rteButtonVariant=\"text\" class=\"rte-toast-action-button\" (click)=\"onClickActionButton()\">\n {{ actionButtonLabel() }}\n </button>\n }\n @if (closable()) {\n <rte-icon-button\n name=\"close\"\n [attr.data-testid]=\"'toast-close-button'\"\n [variant]=\"type() === 'neutral' ? 'reverse' : 'neutral'\"\n (clickEvent)=\"clickCloseButton()\"\n />\n }\n</div>\n", styles: [".rte-toast{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);display:flex;width:400px;min-width:240px;max-width:336px;padding:8px 4px 8px 16px;align-items:center;border-radius:4px;border-bottom:4px solid var(--border-info);color:var(--content-primary);background-color:var(--background-default);z-index:10;position:fixed;inset:auto;opacity:0;transition:opacity .3s ease,transform .2s ease}.rte-toast.top{top:12px}.rte-toast.bottom{bottom:12px}.rte-toast.bottom.center{left:50%;transform:translate(-50%,10px)}.rte-toast.bottom.center.open{opacity:1;transform:translate(-50%)}.rte-toast.left{left:12px;transform:translate(-10px)}.rte-toast.left.open{opacity:1;transform:translate(0)}.rte-toast.right{right:12px;transform:translate(10px)}.rte-toast.right.open{opacity:1;transform:translate(0)}.rte-toast .rte-toast-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;width:100%;-webkit-line-clamp:2;line-clamp:2}.rte-toast .rte-toast-icon{flex:1 0 auto}.rte-toast .rte-toast-content{display:flex;align-items:center;gap:12px;flex-grow:1;overflow:hidden;width:100%}.rte-toast.info{border-bottom-color:var(--border-info)}.rte-toast.info .rte-toast-icon{color:var(--content-info-default)}.rte-toast.error{border-bottom-color:var(--border-danger)}.rte-toast.error .rte-toast-icon{color:var(--content-danger-default)}.rte-toast.success{border-bottom-color:var(--border-success)}.rte-toast.success .rte-toast-icon{color:var(--content-success-default)}.rte-toast.warning{border-bottom-color:var(--border-warning)}.rte-toast.warning .rte-toast-icon{color:var(--content-warning-default)}.rte-toast.neutral{background-color:var(--background-inverse);color:var(--content-primary-inverse);border-bottom-color:var(--border-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4009
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToastComponent, isStandalone: true, selector: "rte-toast", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, autoDismiss: { classPropertyName: "autoDismiss", publicName: "autoDismiss", isSignal: true, isRequired: false, transformFunction: null }, showActionButton: { classPropertyName: "showActionButton", publicName: "showActionButton", isSignal: true, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, showLeftIcon: { classPropertyName: "showLeftIcon", publicName: "showLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, actionButtonLabel: { classPropertyName: "actionButtonLabel", publicName: "actionButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, onActionButtonClick: { classPropertyName: "onActionButtonClick", publicName: "onActionButtonClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"rte-toast {{ type() }} {{ position() }} {{ alignment() }}\"\n role=\"status\"\n [ngClass]=\"{ open: isOpen() }\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n>\n <div class=\"rte-toast-content\">\n @if (displayLeftIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"defaultIconName()\" [size]=\"iconSize\" />\n } @else {\n @if (displayCustomIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"iconName()!\" [size]=\"iconSize\" />\n }\n }\n <span class=\"rte-toast-message\">{{ message() }}</span>\n </div>\n @if (displayActionButton()) {\n <button rteButton rteButtonVariant=\"text\" class=\"rte-toast-action-button\" (click)=\"onClickActionButton()\">\n {{ actionButtonLabel() }}\n </button>\n }\n @if (closable()) {\n <rte-icon-button\n name=\"close\"\n [attr.data-testid]=\"'toast-close-button'\"\n [variant]=\"type() === 'neutral' ? 'reverse' : 'neutral'\"\n (clickEvent)=\"clickCloseButton()\"\n />\n }\n</div>\n", styles: [".rte-toast{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);display:flex;width:400px;min-width:240px;max-width:336px;padding:8px 4px 8px 16px;align-items:center;border-radius:4px;border-bottom:4px solid var(--border-info);color:var(--content-primary);background-color:var(--background-default);z-index:10;position:fixed;inset:auto;opacity:0;transition:opacity .3s ease,transform .2s ease}.rte-toast.top{top:12px}.rte-toast.bottom{bottom:12px}.rte-toast.bottom.center{left:50%;transform:translate(-50%,10px)}.rte-toast.bottom.center.open{opacity:1;transform:translate(-50%)}.rte-toast.left{left:12px;transform:translate(-10px)}.rte-toast.left.open{opacity:1;transform:translate(0)}.rte-toast.right{right:12px;transform:translate(10px)}.rte-toast.right.open{opacity:1;transform:translate(0)}.rte-toast .rte-toast-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;width:100%;-webkit-line-clamp:2;line-clamp:2}.rte-toast .rte-toast-icon{flex:1 0 auto}.rte-toast .rte-toast-content{display:flex;align-items:center;gap:12px;flex-grow:1;overflow:hidden;width:100%}.rte-toast.info{border-bottom-color:var(--border-info)}.rte-toast.info .rte-toast-icon{color:var(--content-info-default)}.rte-toast.error{border-bottom-color:var(--border-danger)}.rte-toast.error .rte-toast-icon{color:var(--content-danger-default)}.rte-toast.success{border-bottom-color:var(--border-success)}.rte-toast.success .rte-toast-icon{color:var(--content-success-default)}.rte-toast.warning{border-bottom-color:var(--border-warning)}.rte-toast.warning .rte-toast-icon{color:var(--content-warning-default)}.rte-toast.neutral{background-color:var(--background-inverse);color:var(--content-primary-inverse);border-bottom-color:var(--border-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent", "rteButtonIcon", "rteButtonIconPosition", "rteButtonIconAppearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3418
4010
  }
3419
4011
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastComponent, decorators: [{
3420
4012
  type: Component,
@@ -4241,9 +4833,494 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
4241
4833
  args: [{ selector: "rte-tab", imports: [CommonModule, TabItemComponent, IconButtonComponent, DropdownModule, IconComponent, BadgeComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"rte-tab-container\" [attr.data-direction]=\"direction()\">\n <div class=\"rte-tab-border-vertical\" aria-hidden=\"true\" role=\"presentation\" [attr.data-direction]=\"direction()\"></div>\n <div\n [ngStyle]=\"{\n position: 'relative',\n display: 'flex',\n 'align-items': 'center',\n 'flex-direction': direction() === 'horizontal' ? 'row' : 'column',\n }\"\n >\n <rte-icon-button\n *ngIf=\"isScrollable() && !shouldDisplayDropdown()\"\n aria-label=\"Previous tabs\"\n variant=\"transparent\"\n [name]=\"direction() === 'horizontal' ? 'arrow-chevron-left' : 'arrow-chevron-up'\"\n [ngStyle]=\"{\n opacity: canScrollBackward() ? '1' : '0',\n 'pointer-events': canScrollBackward() ? 'auto' : 'none',\n }\"\n (clickEvent)=\"scrollBackward()\"\n />\n <div\n #tabList\n role=\"tablist\"\n aria-label=\"Sample Tabs\"\n class=\"rte-tab\"\n [attr.data-alignment]=\"shouldDisplayDropdown() ? 'start' : alignment()\"\n [attr.data-direction]=\"direction()\"\n [attr.data-overflow-type]=\"overflowType()\"\n >\n <span class=\"rte-tab-selected-indicator\" [ngStyle]=\"tabItemSelectedIndicatorStyle()\"></span>\n <div\n *ngIf=\"shouldDisplayDropdown() && options().length\"\n rteDropdown\n [rteDropdownOffset]=\"10\"\n (menuEvent)=\"onClickTabItem($event.id)\"\n >\n <button\n rteDropdownTrigger\n class=\"rte-tab-dropdown-button\"\n [attr.data-inverted]=\"inverted()\"\n [attr.data-overflow-type]=\"overflowType()\"\n >\n <rte-icon *ngIf=\"selectedTab()?.icon\" appearance=\"filled\" [name]=\"selectedTab()?.icon!\"></rte-icon>\n <span *ngIf=\"selectedTab()?.label\">{{ selectedTab()?.label }}</span>\n <rte-badge\n *ngIf=\"selectedTab()?.badgeCount && selectedTab()?.badgeContent === 'number'\"\n [badgeType]=\"selectedTab()?.badgeType!\"\n [badgeContent]=\"selectedTab()?.badgeContent!\"\n [count]=\"selectedTab()?.badgeCount\"\n [simpleBadge]=\"true\"\n ></rte-badge>\n <rte-icon name=\"arrow-chevron-down\" appearance=\"outlined\"></rte-icon>\n </button>\n <rte-dropdown-menu [items]=\"dropdownFilteredOptions()\" />\n </div>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <rte-tab-item\n #tabItem\n [option]=\"option\"\n [direction]=\"direction()\"\n [compactSpacing]=\"compactSpacing()\"\n [isSelected]=\"isSelected(option.id)\"\n [inverted]=\"inverted()\"\n [attr.data-hidden]=\"shouldDisplayDropdown()\"\n [isHidden]=\"shouldDisplayDropdown()\"\n (keydown)=\"onKeydownTabItem($event)\"\n (click)=\"onClickTabItem(option.id)\"\n ></rte-tab-item>\n </ng-container>\n </div>\n <rte-icon-button\n *ngIf=\"isScrollable() && !shouldDisplayDropdown()\"\n aria-label=\"Next tabs\"\n variant=\"transparent\"\n [name]=\"direction() === 'horizontal' ? 'arrow-chevron-right' : 'arrow-chevron-down'\"\n [ngStyle]=\"{\n opacity: canScrollForward() ? '1' : '0',\n 'pointer-events': canScrollForward() ? 'auto' : 'none',\n }\"\n (clickEvent)=\"scrollForward()\"\n />\n </div>\n <div\n class=\"rte-tab-border-horizontal\"\n aria-hidden=\"true\"\n role=\"presentation\"\n [attr.data-direction]=\"direction()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n [attr.data-scrollable]=\"isScrollable() && overflowType() === 'scrollable'\"\n ></div>\n</div>\n", styles: [".rte-tab-container{position:relative;display:flex;flex-direction:column}.rte-tab-container[data-direction=vertical]{flex-direction:row;height:100%}.rte-tab{position:relative;display:flex;height:100%;gap:24px;justify-content:flex-start;padding-bottom:2px;margin-bottom:-2px;margin-left:-2px;scrollbar-width:none;width:100%;padding-top:2px;padding-left:2px;align-items:center}.rte-tab[data-direction=horizontal]{overflow-x:scroll}.rte-tab[data-direction=horizontal][data-overflow-type=dropdown]{overflow:hidden;margin-left:0}.rte-tab[data-direction=vertical]{flex-direction:column;border-bottom:none;gap:4px;height:100%;padding-right:2px;margin-left:-2px;width:max-content;align-items:start;margin-bottom:0}.rte-tab[data-direction=vertical] .rte-tab-selected-indicator{width:2px;transition:top .2s ease,height .2s ease}.rte-tab[data-alignment=center]{justify-content:center}.rte-tab .rte-tab-selected-indicator{position:absolute;bottom:0;height:2px;background:var(--background-brand-selected-default);transition:left .2s ease,width .2s ease;pointer-events:none;z-index:1}.rte-tab .rte-tab-separator{width:24px;flex-shrink:0}.rte-tab-border-horizontal{background-color:var(--background-neutral-regular-default);position:relative;height:2px}.rte-tab-border-horizontal[data-compact-spacing=true][data-scrollable=true]{bottom:5px}.rte-tab-border-horizontal[data-direction=vertical]{display:none}.rte-tab-border-vertical{background-color:var(--background-neutral-regular-default);position:relative;width:2px}.rte-tab-border-vertical[data-direction=horizontal]{display:none}.rte-tab-dropdown-button{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-secondary);width:max-content;display:flex;align-items:center;gap:12px;background-color:transparent;border:none;cursor:pointer;padding:0;margin:12px}.rte-tab-dropdown-button:focus-visible{outline:2px solid var(--border-brand-focused);outline-offset:12px;z-index:1}.rte-tab-dropdown-button[data-inverted=true]{color:var(--content-primary-inverse)}\n"] }]
4242
4834
  }] });
4243
4835
 
4836
+ class TreeviewCheckService {
4837
+ constructor() {
4838
+ this.checkedIds = signal(new Set());
4839
+ this.rootItems = signal([]);
4840
+ }
4841
+ setRootItems(items) {
4842
+ this.rootItems.set(items);
4843
+ }
4844
+ toggleChecked(node, rootItemsOverride) {
4845
+ const current = this.checkedIds();
4846
+ const rootItems = rootItemsOverride ?? this.rootItems();
4847
+ const next = computeCheckedIdsAfterToggle(current, node, rootItems);
4848
+ this.checkedIds.set(next);
4849
+ }
4850
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewCheckService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4851
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewCheckService }); }
4852
+ }
4853
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewCheckService, decorators: [{
4854
+ type: Injectable
4855
+ }] });
4856
+
4857
+ class TreeviewSelectionService {
4858
+ constructor() {
4859
+ this.selectedId = signal(undefined);
4860
+ }
4861
+ select(id) {
4862
+ this.selectedId.set(id);
4863
+ }
4864
+ selectByNodePath(pathString, items) {
4865
+ const pathIndices = parsePathString(pathString);
4866
+ const node = getNodeAtPath(items, pathIndices);
4867
+ const id = node?.id ?? node?.labelText;
4868
+ this.select(id);
4869
+ }
4870
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewSelectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4871
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewSelectionService }); }
4872
+ }
4873
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewSelectionService, decorators: [{
4874
+ type: Injectable
4875
+ }] });
4876
+
4877
+ class TreeviewItemBorderComponent {
4878
+ constructor() {
4879
+ this.borderType = input.required();
4880
+ this.isCompact = input(false);
4881
+ this.svgConfig = computed(() => {
4882
+ const map = this.isCompact() ? TREEVIEW_BORDER_SVG_MAP_COMPACT : TREEVIEW_BORDER_SVG_MAP;
4883
+ return map[this.borderType()];
4884
+ });
4885
+ }
4886
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewItemBorderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4887
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TreeviewItemBorderComponent, isStandalone: true, selector: "rte-treeview-item-border", inputs: { borderType: { classPropertyName: "borderType", publicName: "borderType", isSignal: true, isRequired: true, transformFunction: null }, isCompact: { classPropertyName: "isCompact", publicName: "isCompact", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<svg\n class=\"treeview-item-border\"\n fill=\"none\"\n aria-hidden=\"true\"\n [attr.width]=\"svgConfig().width\"\n [attr.height]=\"svgConfig().height\"\n [attr.viewBox]=\"svgConfig().viewBox\"\n>\n @for (element of svgConfig().elements; track $index) {\n @if (element.kind === \"path\") {\n <path class=\"treeview-item-border-path\" [attr.d]=\"element.d\" />\n } @else {\n <line\n class=\"treeview-item-border-path\"\n [attr.x1]=\"element.x1\"\n [attr.y1]=\"element.y1\"\n [attr.x2]=\"element.x2\"\n [attr.y2]=\"element.y2\"\n />\n }\n }\n</svg>\n", styles: [":host{display:block;flex-shrink:0;width:16px;min-width:16px;height:32px;align-self:stretch}:host-context(.treeview-item.compact){height:24px}.treeview-item-border{display:block;width:100%;height:100%}.treeview-item-border .treeview-item-border-path{stroke:var(--border-tertiary);stroke-width:1px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4888
+ }
4889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewItemBorderComponent, decorators: [{
4890
+ type: Component,
4891
+ args: [{ selector: "rte-treeview-item-border", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg\n class=\"treeview-item-border\"\n fill=\"none\"\n aria-hidden=\"true\"\n [attr.width]=\"svgConfig().width\"\n [attr.height]=\"svgConfig().height\"\n [attr.viewBox]=\"svgConfig().viewBox\"\n>\n @for (element of svgConfig().elements; track $index) {\n @if (element.kind === \"path\") {\n <path class=\"treeview-item-border-path\" [attr.d]=\"element.d\" />\n } @else {\n <line\n class=\"treeview-item-border-path\"\n [attr.x1]=\"element.x1\"\n [attr.y1]=\"element.y1\"\n [attr.x2]=\"element.x2\"\n [attr.y2]=\"element.y2\"\n />\n }\n }\n</svg>\n", styles: [":host{display:block;flex-shrink:0;width:16px;min-width:16px;height:32px;align-self:stretch}:host-context(.treeview-item.compact){height:24px}.treeview-item-border{display:block;width:100%;height:100%}.treeview-item-border .treeview-item-border-path{stroke:var(--border-tertiary);stroke-width:1px}\n"] }]
4892
+ }] });
4893
+
4894
+ class TreeviewItemComponent {
4895
+ get hostClasses() {
4896
+ const classes = ["treeview-item"];
4897
+ if (this.isCompact())
4898
+ classes.push("compact");
4899
+ if (this.isSelected())
4900
+ classes.push("selected");
4901
+ if (this.disabled())
4902
+ classes.push("disabled");
4903
+ if (this.hasChildren())
4904
+ classes.push("has-children");
4905
+ if (this.hasChildren() && this.isOpenSignal())
4906
+ classes.push("is-expanded");
4907
+ if (this.effectiveDepth() === 0)
4908
+ classes.push("root-depth");
4909
+ return classes.join(" ");
4910
+ }
4911
+ get dataItemId() {
4912
+ return this.itemId();
4913
+ }
4914
+ get ariaLevel() {
4915
+ return this.effectiveDepth() + 1;
4916
+ }
4917
+ get ariaExpanded() {
4918
+ return this.hasChildren() ? this.isOpenSignal() : undefined;
4919
+ }
4920
+ get ariaSelected() {
4921
+ return !!this.isSelected();
4922
+ }
4923
+ getChildBorderTypes(isLastChild) {
4924
+ return getChildBorderTypes(this.resolvedBorderTypes(), isLastChild);
4925
+ }
4926
+ constructor() {
4927
+ this.role = "treeitem";
4928
+ this.treeId = input.required();
4929
+ this.nodePath = input([]);
4930
+ this.labelText = input.required();
4931
+ this.icon = input();
4932
+ this.disabled = input(false);
4933
+ this.isCompact = input(false);
4934
+ this.hasCheckbox = input(false);
4935
+ this.isOpen = input(false);
4936
+ this.hasIcon = input(false);
4937
+ this.hasBadge = input(false);
4938
+ this.items = input([]);
4939
+ this.rootItems = input(undefined);
4940
+ this.id = input();
4941
+ this.depth = input(undefined);
4942
+ this.isLastChild = input(undefined);
4943
+ this.borderTypes = input([]);
4944
+ this.actionIcon = input();
4945
+ this.actionMenuItems = input();
4946
+ this.isOpenSignal = signal(false);
4947
+ this.itemClick = output();
4948
+ this.openChange = output();
4949
+ this.actionIconClick = output();
4950
+ this.actionMenuClick = output();
4951
+ this.parentItem = inject(TreeviewItemComponent, { optional: true, skipSelf: true });
4952
+ this.selectionService = inject(TreeviewSelectionService, { optional: true });
4953
+ this.checkService = inject(TreeviewCheckService, { optional: true });
4954
+ this.hasChildren = computed(() => hasChildren(this.items()));
4955
+ this.isChecked = computed(() => {
4956
+ const ids = this.checkService?.checkedIds() ?? new Set();
4957
+ const node = { id: this.itemId(), labelText: this.labelText(), items: this.items() };
4958
+ const hasChildren$1 = hasChildren(this.items());
4959
+ return allDescendantsChecked(node, ids) || (ids.has(this.itemId()) && !hasChildren$1);
4960
+ });
4961
+ this.isIndeterminate = computed(() => {
4962
+ const ids = this.checkService?.checkedIds() ?? new Set();
4963
+ const node = { id: this.itemId(), labelText: this.labelText(), items: this.items() };
4964
+ return isNodeIndeterminate(node, ids);
4965
+ });
4966
+ this.itemId = computed(() => this.id() ?? this.labelText());
4967
+ this.isSelected = computed(() => this.selectionService && !!isItemSelected(this.itemId(), this.selectionService.selectedId()));
4968
+ this.effectiveDepth = computed(() => {
4969
+ const depthInput = this.depth();
4970
+ if (depthInput !== undefined) {
4971
+ return depthInput;
4972
+ }
4973
+ const parent = this.parentItem;
4974
+ return parent ? parent.effectiveDepth() + 1 : 0;
4975
+ });
4976
+ this.nodeUid = computed(() => buildTreeviewNodeId({
4977
+ treeId: this.treeId(),
4978
+ path: this.nodePath(),
4979
+ itemId: this.itemId(),
4980
+ }));
4981
+ this.checkboxId = computed(() => computeCheckboxId(this.nodeUid()));
4982
+ this.resolvedBorderTypes = computed(() => {
4983
+ const inputBorderTypes = this.borderTypes();
4984
+ return inputBorderTypes.length > 0 ? inputBorderTypes : [];
4985
+ });
4986
+ this.connectorBorderTypes = computed(() => computeConnectorBorderTypes({
4987
+ depth: this.effectiveDepth(),
4988
+ isCompact: this.isCompact(),
4989
+ resolvedBorderTypes: this.resolvedBorderTypes(),
4990
+ hasChildren: this.hasChildren(),
4991
+ }));
4992
+ effect(() => {
4993
+ this.isOpenSignal.set(this.isOpen());
4994
+ }, { allowSignalWrites: true });
4995
+ }
4996
+ toggleOpen() {
4997
+ if (!canToggleOpen(this.hasChildren(), this.disabled())) {
4998
+ return;
4999
+ }
5000
+ const newOpen = !this.isOpenSignal();
5001
+ this.isOpenSignal.set(newOpen);
5002
+ this.openChange.emit({ id: this.itemId(), open: newOpen });
5003
+ }
5004
+ handleContentClick() {
5005
+ if (this.disabled()) {
5006
+ return;
5007
+ }
5008
+ const service = this.selectionService;
5009
+ if (service) {
5010
+ const currentItemId = this.itemId();
5011
+ service.select(currentItemId);
5012
+ }
5013
+ this.itemClick.emit(this.itemId());
5014
+ }
5015
+ handleChevronKeyDown(event) {
5016
+ if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
5017
+ event.preventDefault();
5018
+ this.toggleOpen();
5019
+ }
5020
+ }
5021
+ handleContentKeyDown(event) {
5022
+ if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
5023
+ event.preventDefault();
5024
+ this.handleContentClick();
5025
+ }
5026
+ }
5027
+ handleCheckboxClick(event) {
5028
+ event.preventDefault();
5029
+ event.stopPropagation();
5030
+ if (this.disabled()) {
5031
+ return;
5032
+ }
5033
+ this.checkService?.toggleChecked({ id: this.itemId(), labelText: this.labelText(), items: this.items() }, this.rootItems());
5034
+ }
5035
+ handleCheckboxKeydown(event) {
5036
+ if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
5037
+ event.preventDefault();
5038
+ this.handleCheckboxClick(event);
5039
+ }
5040
+ }
5041
+ handleActionIconClick(event) {
5042
+ event.stopPropagation();
5043
+ if (this.disabled()) {
5044
+ return;
5045
+ }
5046
+ this.actionIconClick.emit({ itemId: this.itemId(), event });
5047
+ }
5048
+ handleActionIconKeyDown(event) {
5049
+ if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
5050
+ event.preventDefault();
5051
+ event.stopPropagation();
5052
+ this.handleActionIconClick(event);
5053
+ }
5054
+ }
5055
+ handleActionMenuClick(menuEvent) {
5056
+ if (this.disabled()) {
5057
+ return;
5058
+ }
5059
+ const menuItemId = menuEvent.id;
5060
+ const menuItemLabel = menuEvent.item?.label ?? menuItemId;
5061
+ this.actionMenuClick.emit({
5062
+ itemId: this.itemId(),
5063
+ menuItemId,
5064
+ menuItemLabel,
5065
+ event: menuEvent.event,
5066
+ item: menuEvent.item,
5067
+ });
5068
+ }
5069
+ trackChild(child) {
5070
+ return getTreeviewItemKey(child);
5071
+ }
5072
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5073
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TreeviewItemComponent, isStandalone: true, selector: "li[rteTreeviewItem]", inputs: { treeId: { classPropertyName: "treeId", publicName: "treeId", isSignal: true, isRequired: true, transformFunction: null }, nodePath: { classPropertyName: "nodePath", publicName: "nodePath", isSignal: true, isRequired: false, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, isCompact: { classPropertyName: "isCompact", publicName: "isCompact", isSignal: true, isRequired: false, transformFunction: null }, hasCheckbox: { classPropertyName: "hasCheckbox", publicName: "hasCheckbox", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, hasIcon: { classPropertyName: "hasIcon", publicName: "hasIcon", isSignal: true, isRequired: false, transformFunction: null }, hasBadge: { classPropertyName: "hasBadge", publicName: "hasBadge", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, rootItems: { classPropertyName: "rootItems", publicName: "rootItems", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, depth: { classPropertyName: "depth", publicName: "depth", isSignal: true, isRequired: false, transformFunction: null }, isLastChild: { classPropertyName: "isLastChild", publicName: "isLastChild", isSignal: true, isRequired: false, transformFunction: null }, borderTypes: { classPropertyName: "borderTypes", publicName: "borderTypes", isSignal: true, isRequired: false, transformFunction: null }, actionIcon: { classPropertyName: "actionIcon", publicName: "actionIcon", isSignal: true, isRequired: false, transformFunction: null }, actionMenuItems: { classPropertyName: "actionMenuItems", publicName: "actionMenuItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", openChange: "openChange", actionIconClick: "actionIconClick", actionMenuClick: "actionMenuClick" }, host: { properties: { "class": "this.hostClasses", "attr.role": "this.role", "attr.data-item-id": "this.dataItemId", "attr.aria-level": "this.ariaLevel", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-selected": "this.ariaSelected" } }, ngImport: i0, template: "<div class=\"treeview-item-row\">\n @if (hasCheckbox()) {\n <div\n class=\"treeview-item-checkbox\"\n role=\"input\"\n data-treeview-focusable=\"checkbox\"\n tabindex=\"-1\"\n [attr.aria-checked]=\"isChecked() ? 'true' : isIndeterminate() ? 'mixed' : 'false'\"\n [attr.aria-label]=\"labelText()\"\n (click)=\"handleCheckboxClick($event)\"\n (keydown)=\"handleCheckboxKeydown($event)\"\n >\n <rte-checkbox\n [id]=\"checkboxId()\"\n [label]=\"labelText()\"\n [showLabel]=\"false\"\n [tabindex]=\"-1\"\n [disabled]=\"disabled()\"\n [checked]=\"isChecked()\"\n [indeterminate]=\"isIndeterminate()\"\n />\n </div>\n }\n <div class=\"treeview-item-borders-container\">\n @for (borderType of connectorBorderTypes(); track $index) {\n <rte-treeview-item-border [borderType]=\"borderType\" [isCompact]=\"isCompact()\" />\n }\n @if (hasChildren()) {\n <button\n type=\"button\"\n class=\"treeview-item-chevron\"\n data-treeview-focusable=\"chevron\"\n tabindex=\"-1\"\n [attr.aria-label]=\"isOpenSignal() ? 'Replier' : 'D\u00E9plier'\"\n [disabled]=\"disabled()\"\n (click)=\"toggleOpen(); $event.stopPropagation()\"\n (keydown)=\"handleChevronKeyDown($event)\"\n >\n <rte-icon [name]=\"isOpenSignal() ? 'arrow-chevron-down' : 'arrow-chevron-right'\" [size]=\"16\" />\n </button>\n }\n </div>\n <div class=\"treeview-item-content-wrapper\">\n <div class=\"treeview-item-main-content\" (keydown)=\"handleContentKeyDown($event)\" (click)=\"handleContentClick()\">\n @if (hasIcon() && icon() && !isCompact()) {\n <rte-icon class=\"treeview-item-icon\" [name]=\"icon()!\" [size]=\"16\" />\n }\n <div\n class=\"treeview-item-content\"\n data-treeview-focusable=\"content\"\n tabindex=\"-1\"\n [class.treeview-item-content-compact]=\"isCompact()\"\n >\n <span class=\"treeview-item-label\">{{ labelText() }}</span>\n </div>\n @if (hasBadge()) {\n <span class=\"treeview-item-badge\">\n <rte-badge badgeType=\"indicator\" badgeContent=\"empty\" badgeSize=\"s\" [simpleBadge]=\"true\" />\n </span>\n }\n @if (actionIcon()) {\n @if (actionMenuItems() && actionMenuItems()!.length > 0) {\n <div\n class=\"treeview-item-action\"\n rteDropdown\n (menuEvent)=\"handleActionMenuClick($event)\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"treeview-item-action-button\"\n data-treeview-focusable=\"action\"\n tabindex=\"-1\"\n rteDropdownTrigger\n [attr.aria-label]=\"'Actions pour ' + labelText()\"\n [disabled]=\"disabled()\"\n >\n <rte-icon [name]=\"actionIcon()!\" [size]=\"16\" />\n </button>\n <rte-dropdown-menu [items]=\"actionMenuItems()!\" />\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"treeview-item-action-button\"\n data-treeview-focusable=\"action\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Actions pour ' + labelText()\"\n [disabled]=\"disabled()\"\n (click)=\"handleActionIconClick($event)\"\n (keydown)=\"handleActionIconKeyDown($event)\"\n >\n <rte-icon [name]=\"actionIcon()!\" [size]=\"16\" />\n </button>\n }\n }\n </div>\n </div>\n</div>\n@if (hasChildren()) {\n <ul class=\"treeview-item-children\" role=\"group\" [class.treeview-item-children-open]=\"isOpenSignal()\">\n @for (child of items(); track trackChild(child); let childIndex = $index) {\n <li\n rteTreeviewItem\n [rootItems]=\"rootItems()\"\n [treeId]=\"treeId()\"\n [nodePath]=\"nodePath().concat(childIndex)\"\n [id]=\"child.id\"\n [labelText]=\"child.labelText\"\n [icon]=\"child.icon\"\n [disabled]=\"child.disabled ?? false\"\n [isCompact]=\"child.isCompact ?? isCompact()\"\n [hasCheckbox]=\"child.hasCheckbox ?? hasCheckbox()\"\n [isOpen]=\"child.isOpen ?? false\"\n [hasIcon]=\"child.hasIcon ?? hasIcon()\"\n [hasBadge]=\"child.hasBadge ?? false\"\n [items]=\"child.items ?? []\"\n [actionIcon]=\"child.actionIcon\"\n [actionMenuItems]=\"child.actionMenuItems\"\n [depth]=\"effectiveDepth() + 1\"\n [isLastChild]=\"childIndex === items().length - 1\"\n [borderTypes]=\"getChildBorderTypes(childIndex === items().length - 1)\"\n (itemClick)=\"itemClick.emit($event)\"\n (openChange)=\"openChange.emit($event)\"\n (actionIconClick)=\"actionIconClick.emit($event)\"\n (actionMenuClick)=\"actionMenuClick.emit($event)\"\n ></li>\n }\n </ul>\n}\n", styles: [":host{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;min-height:32px}:host.root-depth:not(.has-children) .treeview-item-borders-container{padding-left:var(--treeview-root-indent, 0)}:host.compact{min-height:24px}:host.compact .treeview-item-row{min-height:24px}:host.compact .treeview-item-main-content{height:20px;padding:2px 4px}:host.compact .treeview-item-chevron{background:transparent}:host.compact .treeview-item-chevron:hover{background:transparent}:host.compact .treeview-item-chevron:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}:host.disabled .treeview-item-row{cursor:not-allowed;pointer-events:none}:host.disabled .treeview-item-main-content{background:var(--background-disabled)}:host.disabled .treeview-item-content,:host.disabled .treeview-item-icon{color:var(--content-disabled)}:host.selected>.treeview-item-row .treeview-item-main-content{background:var(--background-brand-default);color:var(--content-primary-inverse)}:host.selected>.treeview-item-row .treeview-item-content,:host.selected>.treeview-item-row .treeview-item-icon{color:var(--content-primary-inverse)}:host.selected>.treeview-item-row:hover .treeview-item-main-content{background:var(--background-brand-hover)}:host.is-expanded:not(.compact)>.treeview-item-row .treeview-item-chevron:after{content:\"\";position:absolute;bottom:0;left:50%;width:1px;height:8px;background:var(--border-tertiary);transform:translate(-50%) translateY(100%)}.treeview-item-row{display:flex;align-items:center;gap:4px;min-height:32px;border-radius:4px;cursor:pointer;box-sizing:border-box;flex:1;min-width:0}.treeview-item-row .treeview-item-main-content:hover{background:var(--background-hover)}.treeview-item-borders-container{display:flex;align-items:center;flex-shrink:0}.treeview-item-content-wrapper{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.treeview-item-main-content{flex:1;display:flex;align-items:center;gap:4px;min-width:0;padding:4px;border-radius:4px;transition:background-color .12s;box-sizing:border-box}@media (prefers-reduced-motion: reduce){.treeview-item-main-content{transition:none}}.treeview-item-main-content:focus-within:not(:has(.treeview-item-action-button:focus)){box-shadow:0 0 0 1px var(--border-brand-focused);border-radius:4px}.treeview-item-checkbox{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:16px;visibility:hidden;cursor:pointer;border-radius:2px}:host-context(.has-checked-items) .treeview-item-checkbox,.treeview-item-row:hover .treeview-item-checkbox,.treeview-item-row:focus-within .treeview-item-checkbox{visibility:visible}.treeview-item-checkbox:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}.treeview-item-checkbox ::ng-deep .rte-checkbox{margin:0}.treeview-item-checkbox ::ng-deep .rte-checkbox-container,.treeview-item-checkbox ::ng-deep .rte-checkbox-container *{pointer-events:none}.treeview-item-checkbox ::ng-deep .rte-checkbox-container{padding:0 4px;gap:0}.treeview-item-checkbox-spacer{flex-shrink:0;width:20px;min-width:20px}.treeview-item-chevron{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;min-width:16px;height:16px;padding:0;background:var(--background-neutral-regular-default);border:none;border-radius:2px;cursor:pointer;color:inherit;position:relative}.treeview-item-chevron:hover{background:var(--background-neutral-navigation-hover)}.treeview-item-chevron:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}.treeview-item-chevron-spacer{flex-shrink:0;width:16px;min-width:16px}.treeview-item-action{flex-shrink:0;display:flex;align-items:center;justify-content:center}.treeview-item-action-button{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:16px;height:16px;background:transparent;border:none;border-radius:2px;cursor:pointer;color:inherit;padding:0}.treeview-item-action-button:hover{background:transparent}.treeview-item-action-button:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}:host(.selected) .treeview-item-action-button:focus-visible{outline-color:var(--border-inverse)}.treeview-item-action-button:disabled{cursor:not-allowed;opacity:.5}.treeview-item-icon{flex-shrink:0}.treeview-item-content{flex:1;display:flex;align-items:center;gap:4px;min-width:0;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;color:var(--content-secondary)}.treeview-item-content:focus,.treeview-item-content:focus-visible{outline:none}.treeview-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}.treeview-item-badge{flex-shrink:0;margin-left:auto}.treeview-item-children{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;overflow:hidden;max-height:0;transition:max-height .14s ease-out}@media (prefers-reduced-motion: reduce){.treeview-item-children{transition:none}}.treeview-item-children.treeview-item-children-open{max-height:2000px;overflow:visible}\n"], dependencies: [{ kind: "component", type: TreeviewItemComponent, selector: "li[rteTreeviewItem]", inputs: ["treeId", "nodePath", "labelText", "icon", "disabled", "isCompact", "hasCheckbox", "isOpen", "hasIcon", "hasBadge", "items", "rootItems", "id", "depth", "isLastChild", "borderTypes", "actionIcon", "actionMenuItems"], outputs: ["itemClick", "openChange", "actionIconClick", "actionMenuClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked", "tabindex"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }, { kind: "component", type: TreeviewItemBorderComponent, selector: "rte-treeview-item-border", inputs: ["borderType", "isCompact"] }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth", "rteCloseOnItemClick"], outputs: ["menuEvent", "clickedOutside", "closedDropdown", "menuChangeEvent"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5074
+ }
5075
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewItemComponent, decorators: [{
5076
+ type: Component,
5077
+ args: [{ selector: "li[rteTreeviewItem]", imports: [
5078
+ CommonModule,
5079
+ CheckboxComponent,
5080
+ IconComponent,
5081
+ BadgeComponent,
5082
+ TreeviewItemBorderComponent,
5083
+ DropdownDirective,
5084
+ DropdownTriggerDirective,
5085
+ DropdownMenuComponent,
5086
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"treeview-item-row\">\n @if (hasCheckbox()) {\n <div\n class=\"treeview-item-checkbox\"\n role=\"input\"\n data-treeview-focusable=\"checkbox\"\n tabindex=\"-1\"\n [attr.aria-checked]=\"isChecked() ? 'true' : isIndeterminate() ? 'mixed' : 'false'\"\n [attr.aria-label]=\"labelText()\"\n (click)=\"handleCheckboxClick($event)\"\n (keydown)=\"handleCheckboxKeydown($event)\"\n >\n <rte-checkbox\n [id]=\"checkboxId()\"\n [label]=\"labelText()\"\n [showLabel]=\"false\"\n [tabindex]=\"-1\"\n [disabled]=\"disabled()\"\n [checked]=\"isChecked()\"\n [indeterminate]=\"isIndeterminate()\"\n />\n </div>\n }\n <div class=\"treeview-item-borders-container\">\n @for (borderType of connectorBorderTypes(); track $index) {\n <rte-treeview-item-border [borderType]=\"borderType\" [isCompact]=\"isCompact()\" />\n }\n @if (hasChildren()) {\n <button\n type=\"button\"\n class=\"treeview-item-chevron\"\n data-treeview-focusable=\"chevron\"\n tabindex=\"-1\"\n [attr.aria-label]=\"isOpenSignal() ? 'Replier' : 'D\u00E9plier'\"\n [disabled]=\"disabled()\"\n (click)=\"toggleOpen(); $event.stopPropagation()\"\n (keydown)=\"handleChevronKeyDown($event)\"\n >\n <rte-icon [name]=\"isOpenSignal() ? 'arrow-chevron-down' : 'arrow-chevron-right'\" [size]=\"16\" />\n </button>\n }\n </div>\n <div class=\"treeview-item-content-wrapper\">\n <div class=\"treeview-item-main-content\" (keydown)=\"handleContentKeyDown($event)\" (click)=\"handleContentClick()\">\n @if (hasIcon() && icon() && !isCompact()) {\n <rte-icon class=\"treeview-item-icon\" [name]=\"icon()!\" [size]=\"16\" />\n }\n <div\n class=\"treeview-item-content\"\n data-treeview-focusable=\"content\"\n tabindex=\"-1\"\n [class.treeview-item-content-compact]=\"isCompact()\"\n >\n <span class=\"treeview-item-label\">{{ labelText() }}</span>\n </div>\n @if (hasBadge()) {\n <span class=\"treeview-item-badge\">\n <rte-badge badgeType=\"indicator\" badgeContent=\"empty\" badgeSize=\"s\" [simpleBadge]=\"true\" />\n </span>\n }\n @if (actionIcon()) {\n @if (actionMenuItems() && actionMenuItems()!.length > 0) {\n <div\n class=\"treeview-item-action\"\n rteDropdown\n (menuEvent)=\"handleActionMenuClick($event)\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"treeview-item-action-button\"\n data-treeview-focusable=\"action\"\n tabindex=\"-1\"\n rteDropdownTrigger\n [attr.aria-label]=\"'Actions pour ' + labelText()\"\n [disabled]=\"disabled()\"\n >\n <rte-icon [name]=\"actionIcon()!\" [size]=\"16\" />\n </button>\n <rte-dropdown-menu [items]=\"actionMenuItems()!\" />\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"treeview-item-action-button\"\n data-treeview-focusable=\"action\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Actions pour ' + labelText()\"\n [disabled]=\"disabled()\"\n (click)=\"handleActionIconClick($event)\"\n (keydown)=\"handleActionIconKeyDown($event)\"\n >\n <rte-icon [name]=\"actionIcon()!\" [size]=\"16\" />\n </button>\n }\n }\n </div>\n </div>\n</div>\n@if (hasChildren()) {\n <ul class=\"treeview-item-children\" role=\"group\" [class.treeview-item-children-open]=\"isOpenSignal()\">\n @for (child of items(); track trackChild(child); let childIndex = $index) {\n <li\n rteTreeviewItem\n [rootItems]=\"rootItems()\"\n [treeId]=\"treeId()\"\n [nodePath]=\"nodePath().concat(childIndex)\"\n [id]=\"child.id\"\n [labelText]=\"child.labelText\"\n [icon]=\"child.icon\"\n [disabled]=\"child.disabled ?? false\"\n [isCompact]=\"child.isCompact ?? isCompact()\"\n [hasCheckbox]=\"child.hasCheckbox ?? hasCheckbox()\"\n [isOpen]=\"child.isOpen ?? false\"\n [hasIcon]=\"child.hasIcon ?? hasIcon()\"\n [hasBadge]=\"child.hasBadge ?? false\"\n [items]=\"child.items ?? []\"\n [actionIcon]=\"child.actionIcon\"\n [actionMenuItems]=\"child.actionMenuItems\"\n [depth]=\"effectiveDepth() + 1\"\n [isLastChild]=\"childIndex === items().length - 1\"\n [borderTypes]=\"getChildBorderTypes(childIndex === items().length - 1)\"\n (itemClick)=\"itemClick.emit($event)\"\n (openChange)=\"openChange.emit($event)\"\n (actionIconClick)=\"actionIconClick.emit($event)\"\n (actionMenuClick)=\"actionMenuClick.emit($event)\"\n ></li>\n }\n </ul>\n}\n", styles: [":host{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;min-height:32px}:host.root-depth:not(.has-children) .treeview-item-borders-container{padding-left:var(--treeview-root-indent, 0)}:host.compact{min-height:24px}:host.compact .treeview-item-row{min-height:24px}:host.compact .treeview-item-main-content{height:20px;padding:2px 4px}:host.compact .treeview-item-chevron{background:transparent}:host.compact .treeview-item-chevron:hover{background:transparent}:host.compact .treeview-item-chevron:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}:host.disabled .treeview-item-row{cursor:not-allowed;pointer-events:none}:host.disabled .treeview-item-main-content{background:var(--background-disabled)}:host.disabled .treeview-item-content,:host.disabled .treeview-item-icon{color:var(--content-disabled)}:host.selected>.treeview-item-row .treeview-item-main-content{background:var(--background-brand-default);color:var(--content-primary-inverse)}:host.selected>.treeview-item-row .treeview-item-content,:host.selected>.treeview-item-row .treeview-item-icon{color:var(--content-primary-inverse)}:host.selected>.treeview-item-row:hover .treeview-item-main-content{background:var(--background-brand-hover)}:host.is-expanded:not(.compact)>.treeview-item-row .treeview-item-chevron:after{content:\"\";position:absolute;bottom:0;left:50%;width:1px;height:8px;background:var(--border-tertiary);transform:translate(-50%) translateY(100%)}.treeview-item-row{display:flex;align-items:center;gap:4px;min-height:32px;border-radius:4px;cursor:pointer;box-sizing:border-box;flex:1;min-width:0}.treeview-item-row .treeview-item-main-content:hover{background:var(--background-hover)}.treeview-item-borders-container{display:flex;align-items:center;flex-shrink:0}.treeview-item-content-wrapper{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.treeview-item-main-content{flex:1;display:flex;align-items:center;gap:4px;min-width:0;padding:4px;border-radius:4px;transition:background-color .12s;box-sizing:border-box}@media (prefers-reduced-motion: reduce){.treeview-item-main-content{transition:none}}.treeview-item-main-content:focus-within:not(:has(.treeview-item-action-button:focus)){box-shadow:0 0 0 1px var(--border-brand-focused);border-radius:4px}.treeview-item-checkbox{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:16px;visibility:hidden;cursor:pointer;border-radius:2px}:host-context(.has-checked-items) .treeview-item-checkbox,.treeview-item-row:hover .treeview-item-checkbox,.treeview-item-row:focus-within .treeview-item-checkbox{visibility:visible}.treeview-item-checkbox:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}.treeview-item-checkbox ::ng-deep .rte-checkbox{margin:0}.treeview-item-checkbox ::ng-deep .rte-checkbox-container,.treeview-item-checkbox ::ng-deep .rte-checkbox-container *{pointer-events:none}.treeview-item-checkbox ::ng-deep .rte-checkbox-container{padding:0 4px;gap:0}.treeview-item-checkbox-spacer{flex-shrink:0;width:20px;min-width:20px}.treeview-item-chevron{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;min-width:16px;height:16px;padding:0;background:var(--background-neutral-regular-default);border:none;border-radius:2px;cursor:pointer;color:inherit;position:relative}.treeview-item-chevron:hover{background:var(--background-neutral-navigation-hover)}.treeview-item-chevron:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}.treeview-item-chevron-spacer{flex-shrink:0;width:16px;min-width:16px}.treeview-item-action{flex-shrink:0;display:flex;align-items:center;justify-content:center}.treeview-item-action-button{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:16px;height:16px;background:transparent;border:none;border-radius:2px;cursor:pointer;color:inherit;padding:0}.treeview-item-action-button:hover{background:transparent}.treeview-item-action-button:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}:host(.selected) .treeview-item-action-button:focus-visible{outline-color:var(--border-inverse)}.treeview-item-action-button:disabled{cursor:not-allowed;opacity:.5}.treeview-item-icon{flex-shrink:0}.treeview-item-content{flex:1;display:flex;align-items:center;gap:4px;min-width:0;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;color:var(--content-secondary)}.treeview-item-content:focus,.treeview-item-content:focus-visible{outline:none}.treeview-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}.treeview-item-badge{flex-shrink:0;margin-left:auto}.treeview-item-children{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;overflow:hidden;max-height:0;transition:max-height .14s ease-out}@media (prefers-reduced-motion: reduce){.treeview-item-children{transition:none}}.treeview-item-children.treeview-item-children-open{max-height:2000px;overflow:visible}\n"] }]
5087
+ }], ctorParameters: () => [], propDecorators: { hostClasses: [{
5088
+ type: HostBinding,
5089
+ args: ["class"]
5090
+ }], role: [{
5091
+ type: HostBinding,
5092
+ args: ["attr.role"]
5093
+ }], dataItemId: [{
5094
+ type: HostBinding,
5095
+ args: ["attr.data-item-id"]
5096
+ }], ariaLevel: [{
5097
+ type: HostBinding,
5098
+ args: ["attr.aria-level"]
5099
+ }], ariaExpanded: [{
5100
+ type: HostBinding,
5101
+ args: ["attr.aria-expanded"]
5102
+ }], ariaSelected: [{
5103
+ type: HostBinding,
5104
+ args: ["attr.aria-selected"]
5105
+ }] } });
5106
+
5107
+ class TreeviewKeyboardService {
5108
+ handleKeyDown(event, treeElement) {
5109
+ if (event.altKey || event.ctrlKey || event.metaKey) {
5110
+ return;
5111
+ }
5112
+ if (ARROW_KEYS.includes(event.key)) {
5113
+ this.handleArrowKey(treeElement, event);
5114
+ }
5115
+ }
5116
+ handleArrowKey(treeElement, event) {
5117
+ const target = event.target;
5118
+ if (!treeElement.contains(target)) {
5119
+ return;
5120
+ }
5121
+ if (!isTreeviewFocusable(target)) {
5122
+ return;
5123
+ }
5124
+ const rows = getVisibleFocusableRows(treeElement);
5125
+ if (rows.length === 0) {
5126
+ return;
5127
+ }
5128
+ const position = findFocusedPosition(rows, target);
5129
+ if (position.rowIndex === -1 || position.focusableIndex === -1) {
5130
+ return;
5131
+ }
5132
+ if ([ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) {
5133
+ const direction = event.key === ARROW_UP_KEY ? -1 : 1;
5134
+ const nextTarget = getNextFocusTarget(rows, position, direction, true);
5135
+ if (nextTarget) {
5136
+ const element = rows[nextTarget.rowIndex].focusables[nextTarget.focusableIndex];
5137
+ event.preventDefault();
5138
+ setMovingTabindex(treeElement, element);
5139
+ element.focus();
5140
+ }
5141
+ else {
5142
+ event.preventDefault();
5143
+ }
5144
+ return;
5145
+ }
5146
+ if ([ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(event.key)) {
5147
+ const direction = event.key === ARROW_LEFT_KEY ? -1 : 1;
5148
+ const nextTarget = getNextFocusTarget(rows, position, direction, false);
5149
+ if (nextTarget) {
5150
+ const element = rows[nextTarget.rowIndex].focusables[nextTarget.focusableIndex];
5151
+ event.preventDefault();
5152
+ setMovingTabindex(treeElement, element);
5153
+ element.focus();
5154
+ }
5155
+ else {
5156
+ event.preventDefault();
5157
+ }
5158
+ }
5159
+ }
5160
+ onFocusIn(treeElement, event) {
5161
+ const target = event.target;
5162
+ if (treeElement.contains(target) && isTreeviewFocusable(target)) {
5163
+ setMovingTabindex(treeElement, target);
5164
+ }
5165
+ }
5166
+ onFocusOut(treeElement, event) {
5167
+ const relatedTarget = event.relatedTarget;
5168
+ if (relatedTarget && treeElement.contains(relatedTarget)) {
5169
+ return;
5170
+ }
5171
+ resetMovingTabIndex(treeElement);
5172
+ }
5173
+ initialize(treeElement) {
5174
+ resetMovingTabIndex(treeElement);
5175
+ }
5176
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5177
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewKeyboardService }); }
5178
+ }
5179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewKeyboardService, decorators: [{
5180
+ type: Injectable
5181
+ }] });
5182
+
5183
+ class TreeviewComponent {
5184
+ constructor() {
5185
+ this.treeRef = viewChild("treeRef");
5186
+ this.isCompact = input(false);
5187
+ this.hasCheckbox = input(false);
5188
+ this.items = input([]);
5189
+ this.selectedId = input(undefined);
5190
+ this.selectedPath = input(undefined);
5191
+ this.id = input("treeview");
5192
+ this.itemClick = output();
5193
+ this.openChange = output();
5194
+ this.actionIconClick = output();
5195
+ this.actionMenuClick = output();
5196
+ this.selectionChange = output();
5197
+ this.checkedIdsChange = output();
5198
+ this.selectionService = inject(TreeviewSelectionService);
5199
+ this.checkService = inject(TreeviewCheckService);
5200
+ this.cdr = inject(ChangeDetectorRef);
5201
+ this.keyboardService = inject(TreeviewKeyboardService);
5202
+ this.destroyRef = inject(DestroyRef);
5203
+ this.hasCheckedItems = computed(() => this.hasCheckbox() && this.checkService.checkedIds().size > 0);
5204
+ this.hasNestedItems = computed(() => hasNestedItemsInTree(this.items()));
5205
+ effect(() => {
5206
+ const id = this.selectedId();
5207
+ this.selectionService.select(id);
5208
+ this.selectionChange.emit({ id, selected: true });
5209
+ }, { allowSignalWrites: true });
5210
+ effect(() => {
5211
+ const pathString = this.selectedPath();
5212
+ const currentItems = this.items();
5213
+ if (pathString != null && pathString !== "" && currentItems.length > 0) {
5214
+ this.selectionService.selectByNodePath(pathString, currentItems);
5215
+ }
5216
+ }, { allowSignalWrites: true });
5217
+ effect(() => {
5218
+ const ids = this.checkService.checkedIds();
5219
+ this.checkedIdsChange.emit(ids);
5220
+ this.cdr.markForCheck();
5221
+ }, { allowSignalWrites: true });
5222
+ effect(() => {
5223
+ this.checkService.setRootItems(this.items());
5224
+ }, { allowSignalWrites: true });
5225
+ }
5226
+ setupKeyboardListeners() {
5227
+ const treeElement = this.treeRef()?.nativeElement;
5228
+ if (!treeElement) {
5229
+ return;
5230
+ }
5231
+ this.keyboardService.initialize(treeElement);
5232
+ const handleKeyDown = (event) => {
5233
+ this.keyboardService.handleKeyDown(event, treeElement);
5234
+ };
5235
+ const handleFocusIn = (event) => {
5236
+ this.keyboardService.onFocusIn(treeElement, event);
5237
+ };
5238
+ const handleFocusOut = (event) => {
5239
+ this.keyboardService.onFocusOut(treeElement, event);
5240
+ };
5241
+ treeElement.addEventListener("keydown", handleKeyDown, true);
5242
+ treeElement.addEventListener("focusin", handleFocusIn);
5243
+ treeElement.addEventListener("focusout", handleFocusOut);
5244
+ this.destroyRef.onDestroy(() => {
5245
+ treeElement.removeEventListener("keydown", handleKeyDown, true);
5246
+ treeElement.removeEventListener("focusin", handleFocusIn);
5247
+ treeElement.removeEventListener("focusout", handleFocusOut);
5248
+ });
5249
+ }
5250
+ ngAfterViewInit() {
5251
+ this.setupKeyboardListeners();
5252
+ }
5253
+ itemTrack(item) {
5254
+ return item.id ?? item.labelText;
5255
+ }
5256
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5257
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TreeviewComponent, isStandalone: true, selector: "rte-treeview", inputs: { isCompact: { classPropertyName: "isCompact", publicName: "isCompact", isSignal: true, isRequired: false, transformFunction: null }, hasCheckbox: { classPropertyName: "hasCheckbox", publicName: "hasCheckbox", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, selectedPath: { classPropertyName: "selectedPath", publicName: "selectedPath", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", openChange: "openChange", actionIconClick: "actionIconClick", actionMenuClick: "actionMenuClick", selectionChange: "selectionChange", checkedIdsChange: "checkedIdsChange" }, providers: [TreeviewSelectionService, TreeviewCheckService, TreeviewKeyboardService], viewQueries: [{ propertyName: "treeRef", first: true, predicate: ["treeRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<ul\n #treeRef\n class=\"treeview\"\n role=\"tree\"\n [class.compact]=\"isCompact()\"\n [class.has-checked-items]=\"hasCheckedItems()\"\n [class.has-nested-items]=\"hasNestedItems()\"\n>\n @for (item of items(); track itemTrack(item); let itemIndex = $index) {\n <li\n rteTreeviewItem\n [rootItems]=\"items()\"\n [treeId]=\"id()\"\n [nodePath]=\"[itemIndex]\"\n [id]=\"item.id\"\n [labelText]=\"item.labelText\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled ?? false\"\n [isCompact]=\"item.isCompact ?? isCompact()\"\n [hasCheckbox]=\"item.hasCheckbox ?? hasCheckbox()\"\n [isOpen]=\"item.isOpen ?? false\"\n [hasIcon]=\"item.hasIcon ?? false\"\n [hasBadge]=\"item.hasBadge ?? false\"\n [items]=\"item.items ?? []\"\n [actionIcon]=\"item.actionIcon\"\n [actionMenuItems]=\"item.actionMenuItems\"\n [isLastChild]=\"itemIndex === items().length - 1\"\n (itemClick)=\"itemClick.emit($event)\"\n (openChange)=\"openChange.emit($event)\"\n (actionIconClick)=\"actionIconClick.emit($event)\"\n (actionMenuClick)=\"actionMenuClick.emit($event)\"\n ></li>\n }\n</ul>\n", styles: [".treeview{display:flex;flex-direction:column;margin:0;padding:0 2px}.treeview.has-nested-items{--treeview-root-indent: 16px}.treeview>li[rteTreeviewItem]:not(:first-child){padding-top:8px}.treeview.compact>li[rteTreeviewItem]:not(:first-child){padding-top:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TreeviewItemComponent, selector: "li[rteTreeviewItem]", inputs: ["treeId", "nodePath", "labelText", "icon", "disabled", "isCompact", "hasCheckbox", "isOpen", "hasIcon", "hasBadge", "items", "rootItems", "id", "depth", "isLastChild", "borderTypes", "actionIcon", "actionMenuItems"], outputs: ["itemClick", "openChange", "actionIconClick", "actionMenuClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5258
+ }
5259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewComponent, decorators: [{
5260
+ type: Component,
5261
+ args: [{ selector: "rte-treeview", imports: [CommonModule, TreeviewItemComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [TreeviewSelectionService, TreeviewCheckService, TreeviewKeyboardService], template: "<ul\n #treeRef\n class=\"treeview\"\n role=\"tree\"\n [class.compact]=\"isCompact()\"\n [class.has-checked-items]=\"hasCheckedItems()\"\n [class.has-nested-items]=\"hasNestedItems()\"\n>\n @for (item of items(); track itemTrack(item); let itemIndex = $index) {\n <li\n rteTreeviewItem\n [rootItems]=\"items()\"\n [treeId]=\"id()\"\n [nodePath]=\"[itemIndex]\"\n [id]=\"item.id\"\n [labelText]=\"item.labelText\"\n [icon]=\"item.icon\"\n [disabled]=\"item.disabled ?? false\"\n [isCompact]=\"item.isCompact ?? isCompact()\"\n [hasCheckbox]=\"item.hasCheckbox ?? hasCheckbox()\"\n [isOpen]=\"item.isOpen ?? false\"\n [hasIcon]=\"item.hasIcon ?? false\"\n [hasBadge]=\"item.hasBadge ?? false\"\n [items]=\"item.items ?? []\"\n [actionIcon]=\"item.actionIcon\"\n [actionMenuItems]=\"item.actionMenuItems\"\n [isLastChild]=\"itemIndex === items().length - 1\"\n (itemClick)=\"itemClick.emit($event)\"\n (openChange)=\"openChange.emit($event)\"\n (actionIconClick)=\"actionIconClick.emit($event)\"\n (actionMenuClick)=\"actionMenuClick.emit($event)\"\n ></li>\n }\n</ul>\n", styles: [".treeview{display:flex;flex-direction:column;margin:0;padding:0 2px}.treeview.has-nested-items{--treeview-root-indent: 16px}.treeview>li[rteTreeviewItem]:not(:first-child){padding-top:8px}.treeview.compact>li[rteTreeviewItem]:not(:first-child){padding-top:4px}\n"] }]
5262
+ }], ctorParameters: () => [] });
5263
+
5264
+ class StatusComponent {
5265
+ constructor() {
5266
+ this.status = input();
5267
+ this.size = input();
5268
+ }
5269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5270
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StatusComponent, isStandalone: true, selector: "rte-status", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"rte-avatar-status\"\n [style]=\"{\n width: size() + 'px',\n height: size() + 'px',\n }\"\n>\n @switch (status()) {\n @case (\"available\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0ZM20.4629 8C20.1963 8.00003 19.9627 8.09983 19.7627 8.2998L11.2881 16.7754L7.73828 13.2002C7.53828 13.0002 7.30039 12.9004 7.02539 12.9004C6.7505 12.9004 6.51342 13.0003 6.31348 13.2002C6.11357 13.4001 6.0094 13.6373 6.00098 13.9121C5.99264 14.1871 6.08809 14.425 6.28809 14.625L10.5879 18.9248C10.7879 19.1248 11.0214 19.2246 11.2881 19.2246C11.5547 19.2246 11.7883 19.1248 11.9883 18.9248L21.1631 9.72461C21.3629 9.52471 21.4628 9.2875 21.4629 9.0127C21.4629 8.7377 21.3631 8.4998 21.1631 8.2998C20.9631 8.09984 20.7295 8 20.4629 8Z\"\n fill=\"#0B8A4D\"\n />\n </svg>\n }\n\n @case (\"away\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 6C16.2167 6 18.1038 6.77956 19.6621 8.33789C21.2204 9.89622 22 11.7833 22 14C22 16.2167 21.2204 18.1038 19.6621 19.6621C18.1038 21.2204 16.2167 22 14 22C11.7833 22 9.89622 21.2204 8.33789 19.6621C6.77956 18.1038 6 16.2167 6 14C6 11.7833 6.77956 9.89622 8.33789 8.33789C9.89622 6.77956 11.7833 6 14 6ZM14 9C13.7167 9 13.4788 9.09544 13.2871 9.28711C13.0954 9.47878 13 9.71667 13 10V13.9746C13 14.1079 13.0252 14.2373 13.0752 14.3623C13.1252 14.4873 13.1998 14.6002 13.2998 14.7002L16.5996 18C16.7829 18.1833 17.0166 18.2753 17.2998 18.2754C17.5831 18.2754 17.8167 18.1833 18 18C18.1833 17.8167 18.2754 17.5831 18.2754 17.2998C18.2753 17.0166 18.1833 16.7829 18 16.5996L15 13.5996V10C15 9.71667 14.9046 9.47878 14.7129 9.28711C14.5212 9.09544 14.2833 9 14 9Z\"\n fill=\"#ED6E13\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0ZM14 4C12.6167 4 11.3163 4.26211 10.0996 4.78711C8.88302 5.3121 7.82476 6.02485 6.9248 6.9248C6.02485 7.82476 5.3121 8.88302 4.78711 10.0996C4.26211 11.3163 4 12.6167 4 14C4 15.3833 4.26211 16.6837 4.78711 17.9004C5.3121 19.117 6.02485 20.1752 6.9248 21.0752C7.82476 21.9751 8.88302 22.6879 10.0996 23.2129C11.3163 23.7379 12.6167 24 14 24C15.3833 24 16.6837 23.7379 17.9004 23.2129C19.117 22.6879 20.1752 21.9751 21.0752 21.0752C21.9751 20.1752 22.6879 19.117 23.2129 17.9004C23.7379 16.6837 24 15.3833 24 14C24 12.6167 23.7379 11.3163 23.2129 10.0996C22.6879 8.88302 21.9751 7.82476 21.0752 6.9248C20.1752 6.02485 19.117 5.3121 17.9004 4.78711C16.6837 4.26211 15.3833 4 14 4Z\"\n fill=\"#ED6E13\"\n />\n </svg>\n }\n\n @case (\"busy\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0Z\"\n fill=\"#DE2048\"\n />\n </svg>\n }\n\n @case (\"offline\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n d=\"M17.5996 9.4248C17.8829 9.4248 18.1165 9.51686 18.2998 9.7002C18.4831 9.88353 18.5752 10.1171 18.5752 10.4004C18.5751 10.6835 18.483 10.9164 18.2998 11.0996L15.4004 14L18.2998 16.9004C18.483 17.0836 18.5751 17.3165 18.5752 17.5996C18.5752 17.8829 18.4831 18.1165 18.2998 18.2998C18.1165 18.4831 17.8829 18.5752 17.5996 18.5752C17.3165 18.5751 17.0836 18.483 16.9004 18.2998L14 15.4004L11.0996 18.2998C10.9164 18.483 10.6835 18.5751 10.4004 18.5752C10.1171 18.5752 9.88353 18.4831 9.7002 18.2998C9.51686 18.1165 9.4248 17.8829 9.4248 17.5996C9.42489 17.3165 9.51701 17.0836 9.7002 16.9004L12.5996 14L9.7002 11.0996C9.51701 10.9164 9.42489 10.6835 9.4248 10.4004C9.4248 10.1171 9.51686 9.88353 9.7002 9.7002C9.88353 9.51686 10.1171 9.4248 10.4004 9.4248C10.6835 9.42489 10.9164 9.51701 11.0996 9.7002L14 12.5996L16.9004 9.7002C17.0836 9.51701 17.3165 9.42489 17.5996 9.4248Z\"\n fill=\"#737272\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0ZM14 4C12.6167 4 11.3163 4.26211 10.0996 4.78711C8.88302 5.3121 7.82476 6.02485 6.9248 6.9248C6.02485 7.82476 5.3121 8.88302 4.78711 10.0996C4.26211 11.3163 4 12.6167 4 14C4 15.3833 4.26211 16.6837 4.78711 17.9004C5.3121 19.117 6.02485 20.1752 6.9248 21.0752C7.82476 21.9751 8.88302 22.6879 10.0996 23.2129C11.3163 23.7379 12.6167 24 14 24C15.3833 24 16.6837 23.7379 17.9004 23.2129C19.117 22.6879 20.1752 21.9751 21.0752 21.0752C21.9751 20.1752 22.6879 19.117 23.2129 17.9004C23.7379 16.6837 24 15.3833 24 14C24 12.6167 23.7379 11.3163 23.2129 10.0996C22.6879 8.88302 21.9751 7.82476 21.0752 6.9248C20.1752 6.02485 19.117 5.3121 17.9004 4.78711C16.6837 4.26211 15.3833 4 14 4Z\"\n fill=\"#737272\"\n />\n </svg>\n }\n\n @case (\"unknown\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0ZM13.9922 19C13.4422 19 12.9708 19.1962 12.5791 19.5879C12.1877 19.9795 11.9922 20.4502 11.9922 21C11.9922 21.5498 12.1877 22.0205 12.5791 22.4121C12.9708 22.8038 13.4422 23 13.9922 23C14.5421 23 15.0127 22.8037 15.4043 22.4121C15.7959 22.0205 15.9922 21.55 15.9922 21C15.9922 20.45 15.7959 19.9795 15.4043 19.5879C15.0127 19.1963 14.5421 19 13.9922 19ZM13.9922 4C13.0089 4 12.1043 4.22044 11.2793 4.66211C10.4543 5.10378 9.77552 5.72539 9.24219 6.52539C9.05897 6.80862 8.97993 7.10827 9.00488 7.4248C9.02987 7.74129 9.15853 8.00801 9.3916 8.22461C9.72483 8.52451 10.121 8.64609 10.5791 8.58789C11.0374 8.52956 11.4003 8.30814 11.667 7.9248C11.9503 7.52487 12.2881 7.22101 12.6797 7.0127C13.0713 6.80439 13.5089 6.7002 13.9922 6.7002C14.7754 6.70023 15.4049 6.91631 15.8799 7.34961C16.3549 7.78294 16.5918 8.35854 16.5918 9.0752C16.5918 9.55831 16.4545 10.0039 16.1797 10.4121C15.9047 10.8204 15.3422 11.4004 14.4922 12.1504C13.8257 12.7502 13.3507 13.3208 13.0674 13.8623C12.784 14.404 12.6416 15.0004 12.6416 15.6504C12.6417 16.0336 12.7798 16.3541 13.0547 16.6123C13.3297 16.8706 13.6587 17 14.042 17C14.4253 17 14.7543 16.8663 15.0293 16.5996C15.3042 16.333 15.4753 15.9996 15.542 15.5996C15.6087 15.1831 15.7502 14.8122 15.9668 14.4873C16.1835 14.1623 16.6002 13.7083 17.2168 13.125C18.0668 12.3084 18.6501 11.6 18.9668 11C19.2835 10.4 19.4424 9.72461 19.4424 8.97461C19.4423 7.49151 18.9379 6.29157 17.9297 5.375C16.9214 4.45837 15.6088 4.00004 13.9922 4Z\"\n fill=\"#737272\"\n />\n </svg>\n }\n }\n</div>\n", styles: [".rte-avatar-status{display:flex;position:absolute;bottom:0;right:0;border-radius:50%}\n"] }); }
5271
+ }
5272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StatusComponent, decorators: [{
5273
+ type: Component,
5274
+ args: [{ selector: "rte-status", standalone: true, template: "<div\n class=\"rte-avatar-status\"\n [style]=\"{\n width: size() + 'px',\n height: size() + 'px',\n }\"\n>\n @switch (status()) {\n @case (\"available\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0ZM20.4629 8C20.1963 8.00003 19.9627 8.09983 19.7627 8.2998L11.2881 16.7754L7.73828 13.2002C7.53828 13.0002 7.30039 12.9004 7.02539 12.9004C6.7505 12.9004 6.51342 13.0003 6.31348 13.2002C6.11357 13.4001 6.0094 13.6373 6.00098 13.9121C5.99264 14.1871 6.08809 14.425 6.28809 14.625L10.5879 18.9248C10.7879 19.1248 11.0214 19.2246 11.2881 19.2246C11.5547 19.2246 11.7883 19.1248 11.9883 18.9248L21.1631 9.72461C21.3629 9.52471 21.4628 9.2875 21.4629 9.0127C21.4629 8.7377 21.3631 8.4998 21.1631 8.2998C20.9631 8.09984 20.7295 8 20.4629 8Z\"\n fill=\"#0B8A4D\"\n />\n </svg>\n }\n\n @case (\"away\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 6C16.2167 6 18.1038 6.77956 19.6621 8.33789C21.2204 9.89622 22 11.7833 22 14C22 16.2167 21.2204 18.1038 19.6621 19.6621C18.1038 21.2204 16.2167 22 14 22C11.7833 22 9.89622 21.2204 8.33789 19.6621C6.77956 18.1038 6 16.2167 6 14C6 11.7833 6.77956 9.89622 8.33789 8.33789C9.89622 6.77956 11.7833 6 14 6ZM14 9C13.7167 9 13.4788 9.09544 13.2871 9.28711C13.0954 9.47878 13 9.71667 13 10V13.9746C13 14.1079 13.0252 14.2373 13.0752 14.3623C13.1252 14.4873 13.1998 14.6002 13.2998 14.7002L16.5996 18C16.7829 18.1833 17.0166 18.2753 17.2998 18.2754C17.5831 18.2754 17.8167 18.1833 18 18C18.1833 17.8167 18.2754 17.5831 18.2754 17.2998C18.2753 17.0166 18.1833 16.7829 18 16.5996L15 13.5996V10C15 9.71667 14.9046 9.47878 14.7129 9.28711C14.5212 9.09544 14.2833 9 14 9Z\"\n fill=\"#ED6E13\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0ZM14 4C12.6167 4 11.3163 4.26211 10.0996 4.78711C8.88302 5.3121 7.82476 6.02485 6.9248 6.9248C6.02485 7.82476 5.3121 8.88302 4.78711 10.0996C4.26211 11.3163 4 12.6167 4 14C4 15.3833 4.26211 16.6837 4.78711 17.9004C5.3121 19.117 6.02485 20.1752 6.9248 21.0752C7.82476 21.9751 8.88302 22.6879 10.0996 23.2129C11.3163 23.7379 12.6167 24 14 24C15.3833 24 16.6837 23.7379 17.9004 23.2129C19.117 22.6879 20.1752 21.9751 21.0752 21.0752C21.9751 20.1752 22.6879 19.117 23.2129 17.9004C23.7379 16.6837 24 15.3833 24 14C24 12.6167 23.7379 11.3163 23.2129 10.0996C22.6879 8.88302 21.9751 7.82476 21.0752 6.9248C20.1752 6.02485 19.117 5.3121 17.9004 4.78711C16.6837 4.26211 15.3833 4 14 4Z\"\n fill=\"#ED6E13\"\n />\n </svg>\n }\n\n @case (\"busy\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0Z\"\n fill=\"#DE2048\"\n />\n </svg>\n }\n\n @case (\"offline\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n d=\"M17.5996 9.4248C17.8829 9.4248 18.1165 9.51686 18.2998 9.7002C18.4831 9.88353 18.5752 10.1171 18.5752 10.4004C18.5751 10.6835 18.483 10.9164 18.2998 11.0996L15.4004 14L18.2998 16.9004C18.483 17.0836 18.5751 17.3165 18.5752 17.5996C18.5752 17.8829 18.4831 18.1165 18.2998 18.2998C18.1165 18.4831 17.8829 18.5752 17.5996 18.5752C17.3165 18.5751 17.0836 18.483 16.9004 18.2998L14 15.4004L11.0996 18.2998C10.9164 18.483 10.6835 18.5751 10.4004 18.5752C10.1171 18.5752 9.88353 18.4831 9.7002 18.2998C9.51686 18.1165 9.4248 17.8829 9.4248 17.5996C9.42489 17.3165 9.51701 17.0836 9.7002 16.9004L12.5996 14L9.7002 11.0996C9.51701 10.9164 9.42489 10.6835 9.4248 10.4004C9.4248 10.1171 9.51686 9.88353 9.7002 9.7002C9.88353 9.51686 10.1171 9.4248 10.4004 9.4248C10.6835 9.42489 10.9164 9.51701 11.0996 9.7002L14 12.5996L16.9004 9.7002C17.0836 9.51701 17.3165 9.42489 17.5996 9.4248Z\"\n fill=\"#737272\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0ZM14 4C12.6167 4 11.3163 4.26211 10.0996 4.78711C8.88302 5.3121 7.82476 6.02485 6.9248 6.9248C6.02485 7.82476 5.3121 8.88302 4.78711 10.0996C4.26211 11.3163 4 12.6167 4 14C4 15.3833 4.26211 16.6837 4.78711 17.9004C5.3121 19.117 6.02485 20.1752 6.9248 21.0752C7.82476 21.9751 8.88302 22.6879 10.0996 23.2129C11.3163 23.7379 12.6167 24 14 24C15.3833 24 16.6837 23.7379 17.9004 23.2129C19.117 22.6879 20.1752 21.9751 21.0752 21.0752C21.9751 20.1752 22.6879 19.117 23.2129 17.9004C23.7379 16.6837 24 15.3833 24 14C24 12.6167 23.7379 11.3163 23.2129 10.0996C22.6879 8.88302 21.9751 7.82476 21.0752 6.9248C20.1752 6.02485 19.117 5.3121 17.9004 4.78711C16.6837 4.26211 15.3833 4 14 4Z\"\n fill=\"#737272\"\n />\n </svg>\n }\n\n @case (\"unknown\") {\n <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M0 14C0 6.26801 6.26801 0 14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14Z\"\n fill=\"white\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 0C21.732 0 28 6.26801 28 14C28 21.732 21.732 28 14 28C6.26801 28 0 21.732 0 14C0 6.26801 6.26801 0 14 0ZM13.9922 19C13.4422 19 12.9708 19.1962 12.5791 19.5879C12.1877 19.9795 11.9922 20.4502 11.9922 21C11.9922 21.5498 12.1877 22.0205 12.5791 22.4121C12.9708 22.8038 13.4422 23 13.9922 23C14.5421 23 15.0127 22.8037 15.4043 22.4121C15.7959 22.0205 15.9922 21.55 15.9922 21C15.9922 20.45 15.7959 19.9795 15.4043 19.5879C15.0127 19.1963 14.5421 19 13.9922 19ZM13.9922 4C13.0089 4 12.1043 4.22044 11.2793 4.66211C10.4543 5.10378 9.77552 5.72539 9.24219 6.52539C9.05897 6.80862 8.97993 7.10827 9.00488 7.4248C9.02987 7.74129 9.15853 8.00801 9.3916 8.22461C9.72483 8.52451 10.121 8.64609 10.5791 8.58789C11.0374 8.52956 11.4003 8.30814 11.667 7.9248C11.9503 7.52487 12.2881 7.22101 12.6797 7.0127C13.0713 6.80439 13.5089 6.7002 13.9922 6.7002C14.7754 6.70023 15.4049 6.91631 15.8799 7.34961C16.3549 7.78294 16.5918 8.35854 16.5918 9.0752C16.5918 9.55831 16.4545 10.0039 16.1797 10.4121C15.9047 10.8204 15.3422 11.4004 14.4922 12.1504C13.8257 12.7502 13.3507 13.3208 13.0674 13.8623C12.784 14.404 12.6416 15.0004 12.6416 15.6504C12.6417 16.0336 12.7798 16.3541 13.0547 16.6123C13.3297 16.8706 13.6587 17 14.042 17C14.4253 17 14.7543 16.8663 15.0293 16.5996C15.3042 16.333 15.4753 15.9996 15.542 15.5996C15.6087 15.1831 15.7502 14.8122 15.9668 14.4873C16.1835 14.1623 16.6002 13.7083 17.2168 13.125C18.0668 12.3084 18.6501 11.6 18.9668 11C19.2835 10.4 19.4424 9.72461 19.4424 8.97461C19.4423 7.49151 18.9379 6.29157 17.9297 5.375C16.9214 4.45837 15.6088 4.00004 13.9922 4Z\"\n fill=\"#737272\"\n />\n </svg>\n }\n }\n</div>\n", styles: [".rte-avatar-status{display:flex;position:absolute;bottom:0;right:0;border-radius:50%}\n"] }]
5275
+ }] });
5276
+
5277
+ class AvatarComponent {
5278
+ constructor() {
5279
+ this.size = input(32);
5280
+ this.type = input("user");
5281
+ this.imgSrc = input();
5282
+ this.alt = input("Avatar");
5283
+ this.status = input();
5284
+ this.layout = input("initials");
5285
+ this.initials = input();
5286
+ this.colorType = input("neutral");
5287
+ this.decorativeColor = input();
5288
+ this.isInteractive = input(false);
5289
+ this.avatarClick = output();
5290
+ this.backgroundColor = computed(() => {
5291
+ return computeBackgroundColor(this.layout(), this.colorType(), this.decorativeColor());
5292
+ });
5293
+ this.maskImage = computed(() => {
5294
+ return computeMaskImage(this.size(), !!this.status());
5295
+ });
5296
+ this.iconSize = computed(() => {
5297
+ return IconSizeMap[this.size()] || IconSizeMap[32];
5298
+ });
5299
+ this.statusIndicatorSize = computed(() => {
5300
+ return StatusIndicatorSizeMap[this.size()] || StatusIndicatorSizeMap[32];
5301
+ });
5302
+ this.isValidAvatar = computed(() => {
5303
+ return ((this.layout() === "initials" && !!this.initials() && this.initials().length <= 2) ||
5304
+ (this.layout() === "image" && this.imgSrc()) ||
5305
+ this.layout() === "icon");
5306
+ });
5307
+ }
5308
+ handleClick(e) {
5309
+ if (this.isInteractive()) {
5310
+ this.avatarClick.emit(e);
5311
+ }
5312
+ }
5313
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5314
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AvatarComponent, isStandalone: true, selector: "rte-avatar", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, imgSrc: { classPropertyName: "imgSrc", publicName: "imgSrc", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, initials: { classPropertyName: "initials", publicName: "initials", isSignal: true, isRequired: false, transformFunction: null }, colorType: { classPropertyName: "colorType", publicName: "colorType", isSignal: true, isRequired: false, transformFunction: null }, decorativeColor: { classPropertyName: "decorativeColor", publicName: "decorativeColor", isSignal: true, isRequired: false, transformFunction: null }, isInteractive: { classPropertyName: "isInteractive", publicName: "isInteractive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { avatarClick: "avatarClick" }, ngImport: i0, template: "@if (isInteractive()) {\n <button\n class=\"rte-avatar__button rte-avatar__container\"\n aria-label=\"Avatar button\"\n [attr.data-avatar-type]=\"type()\"\n (click)=\"handleClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"baseAvatar\"></ng-container>\n </button>\n} @else {\n <div class=\"rte-avatar__container\">\n <ng-container *ngTemplateOutlet=\"baseAvatar\"></ng-container>\n </div>\n}\n\n<ng-template #baseAvatar>\n <div *ngIf=\"isValidAvatar()\" [style.width]=\"size() + 'px'\" [style.height]=\"size() + 'px'\">\n <div\n class=\"rte-avatar\"\n [attr.data-size]=\"size()\"\n [attr.data-avatar-type]=\"type()\"\n [attr.data-color]=\"colorType()\"\n [style.background-color]=\"backgroundColor()\"\n [style.maskImage]=\"maskImage()\"\n >\n @if (layout() === \"initials\") {\n <span class=\"rte-avatar__initials\" [attr.data-size]=\"size()\">{{ initials() }}</span>\n }\n @if (layout() === \"icon\") {\n <rte-icon [name]=\"type() === 'user' ? 'user' : 'company'\" [size]=\"iconSize()\"></rte-icon>\n }\n @if (layout() === \"image\") {\n <img class=\"rte-avatar__image\" [src]=\"imgSrc()\" [alt]=\"alt()\" />\n }\n </div>\n @if (status()) {\n <rte-status [status]=\"status()\" [size]=\"statusIndicatorSize()\"></rte-status>\n }\n </div>\n</ng-template>\n", styles: [".rte-avatar__button{background:none;border:none;padding:0;cursor:pointer;border-radius:999px}.rte-avatar__button[data-avatar-type=entity]{border-radius:0}.rte-avatar__button:focus-visible{outline:2px solid var(--border-brand-focused);outline-offset:4px}.rte-avatar__container{position:relative;display:block}.rte-avatar{position:relative;width:100%;height:100%;border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--content-tertiary)}.rte-avatar[data-color=decorative]{color:var(--content-secondary)}.rte-avatar[data-avatar-type=entity]{border-radius:4px}.rte-avatar[data-avatar-type=entity][data-size=\"48\"],.rte-avatar[data-avatar-type=entity][data-size=\"56\"],.rte-avatar[data-avatar-type=entity][data-size=\"64\"],.rte-avatar[data-avatar-type=entity][data-size=\"72\"]{border-radius:8px}.rte-avatar[data-avatar-type=entity][data-size=\"96\"],.rte-avatar[data-avatar-type=entity][data-size=\"120\"]{border-radius:12px}.rte-avatar[data-color=brand]{background-color:var(--background-brand-default);color:var(--content-primary-inverse)}.rte-avatar .rte-avatar__image{width:100%;height:100%;object-fit:cover;border-radius:inherit}.rte-avatar .rte-avatar__initials{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:14px;line-height:20px;letter-spacing:0px}.rte-avatar .rte-avatar__initials[data-size=\"24\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px}.rte-avatar .rte-avatar__initials[data-size=\"36\"],.rte-avatar .rte-avatar__initials[data-size=\"40\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px}.rte-avatar .rte-avatar__initials[data-size=\"48\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px}.rte-avatar .rte-avatar__initials[data-size=\"56\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:24px;line-height:32px;letter-spacing:-.5px}.rte-avatar .rte-avatar__initials[data-size=\"64\"],.rte-avatar .rte-avatar__initials[data-size=\"72\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:32px;line-height:40px;letter-spacing:-1px}.rte-avatar .rte-avatar__initials[data-size=\"96\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:40px;line-height:48px;letter-spacing:-1px}.rte-avatar .rte-avatar__initials[data-size=\"120\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:48px;line-height:56px;letter-spacing:-1px}.rte-avatar__status-indicator{position:absolute;bottom:0;right:0;border-radius:50%;z-index:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: StatusComponent, selector: "rte-status", inputs: ["status", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5315
+ }
5316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarComponent, decorators: [{
5317
+ type: Component,
5318
+ args: [{ selector: "rte-avatar", imports: [CommonModule, IconComponent, StatusComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isInteractive()) {\n <button\n class=\"rte-avatar__button rte-avatar__container\"\n aria-label=\"Avatar button\"\n [attr.data-avatar-type]=\"type()\"\n (click)=\"handleClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"baseAvatar\"></ng-container>\n </button>\n} @else {\n <div class=\"rte-avatar__container\">\n <ng-container *ngTemplateOutlet=\"baseAvatar\"></ng-container>\n </div>\n}\n\n<ng-template #baseAvatar>\n <div *ngIf=\"isValidAvatar()\" [style.width]=\"size() + 'px'\" [style.height]=\"size() + 'px'\">\n <div\n class=\"rte-avatar\"\n [attr.data-size]=\"size()\"\n [attr.data-avatar-type]=\"type()\"\n [attr.data-color]=\"colorType()\"\n [style.background-color]=\"backgroundColor()\"\n [style.maskImage]=\"maskImage()\"\n >\n @if (layout() === \"initials\") {\n <span class=\"rte-avatar__initials\" [attr.data-size]=\"size()\">{{ initials() }}</span>\n }\n @if (layout() === \"icon\") {\n <rte-icon [name]=\"type() === 'user' ? 'user' : 'company'\" [size]=\"iconSize()\"></rte-icon>\n }\n @if (layout() === \"image\") {\n <img class=\"rte-avatar__image\" [src]=\"imgSrc()\" [alt]=\"alt()\" />\n }\n </div>\n @if (status()) {\n <rte-status [status]=\"status()\" [size]=\"statusIndicatorSize()\"></rte-status>\n }\n </div>\n</ng-template>\n", styles: [".rte-avatar__button{background:none;border:none;padding:0;cursor:pointer;border-radius:999px}.rte-avatar__button[data-avatar-type=entity]{border-radius:0}.rte-avatar__button:focus-visible{outline:2px solid var(--border-brand-focused);outline-offset:4px}.rte-avatar__container{position:relative;display:block}.rte-avatar{position:relative;width:100%;height:100%;border-radius:999px;display:flex;align-items:center;justify-content:center;color:var(--content-tertiary)}.rte-avatar[data-color=decorative]{color:var(--content-secondary)}.rte-avatar[data-avatar-type=entity]{border-radius:4px}.rte-avatar[data-avatar-type=entity][data-size=\"48\"],.rte-avatar[data-avatar-type=entity][data-size=\"56\"],.rte-avatar[data-avatar-type=entity][data-size=\"64\"],.rte-avatar[data-avatar-type=entity][data-size=\"72\"]{border-radius:8px}.rte-avatar[data-avatar-type=entity][data-size=\"96\"],.rte-avatar[data-avatar-type=entity][data-size=\"120\"]{border-radius:12px}.rte-avatar[data-color=brand]{background-color:var(--background-brand-default);color:var(--content-primary-inverse)}.rte-avatar .rte-avatar__image{width:100%;height:100%;object-fit:cover;border-radius:inherit}.rte-avatar .rte-avatar__initials{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:14px;line-height:20px;letter-spacing:0px}.rte-avatar .rte-avatar__initials[data-size=\"24\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px}.rte-avatar .rte-avatar__initials[data-size=\"36\"],.rte-avatar .rte-avatar__initials[data-size=\"40\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px}.rte-avatar .rte-avatar__initials[data-size=\"48\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px}.rte-avatar .rte-avatar__initials[data-size=\"56\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:24px;line-height:32px;letter-spacing:-.5px}.rte-avatar .rte-avatar__initials[data-size=\"64\"],.rte-avatar .rte-avatar__initials[data-size=\"72\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:32px;line-height:40px;letter-spacing:-1px}.rte-avatar .rte-avatar__initials[data-size=\"96\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:40px;line-height:48px;letter-spacing:-1px}.rte-avatar .rte-avatar__initials[data-size=\"120\"]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:48px;line-height:56px;letter-spacing:-1px}.rte-avatar__status-indicator{position:absolute;bottom:0;right:0;border-radius:50%;z-index:0}\n"] }]
5319
+ }] });
5320
+
4244
5321
  /**
4245
5322
  * Generated bundle index. Do not edit.
4246
5323
  */
4247
5324
 
4248
- export { BadgeDirective, BannerComponent, BaseSideNavComponent, BreadcrumbsComponent, ButtonComponent, CardComponent, CheckboxComponent, CheckboxGroupComponent, ChipComponent, ColDirective, DividerComponent, DropdownDirective, DropdownItemComponent, DropdownMenuComponent, DropdownMenuFooterDirective, DropdownMenuHeaderDirective, DropdownModule, DropdownTriggerDirective, GridDirective, IconButtonComponent, IconButtonToggleComponent, IconComponent, LinkComponent, LoaderComponent, ModalDirective, ModalModule, ModalTriggerDirective, PopoverDirective, RadioButtonComponent, RadioButtonGroupComponent, SearchbarComponent, SegmentedControlComponent, SelectComponent, SideNavComponent, SplitButtonComponent, StepperComponent, SwitchComponent, TabComponent, TagComponent, TextInputComponent, TextareaComponent, ToastComponent, ToastService, TooltipDirective };
5325
+ export { AccordionComponent, AvatarComponent, BadgeDirective, BannerComponent, BaseSideNavComponent, BreadcrumbsComponent, ButtonComponent, CardComponent, CheckboxComponent, CheckboxGroupComponent, ChipComponent, ColDirective, DividerComponent, DrawerComponent, DrawerDirective, DrawerModule, DrawerTriggerDirective, DropdownDirective, DropdownItemComponent, DropdownMenuComponent, DropdownMenuFooterDirective, DropdownMenuHeaderDirective, DropdownModule, DropdownTriggerDirective, GridDirective, IconButtonComponent, IconButtonToggleComponent, IconComponent, LinkComponent, LoaderComponent, ModalDirective, ModalModule, ModalTriggerDirective, PopoverDirective, RadioButtonComponent, RadioButtonGroupComponent, SearchbarComponent, SegmentedControlComponent, SelectComponent, SideNavComponent, SplitButtonComponent, StepperComponent, SwitchComponent, TabComponent, TagComponent, TextInputComponent, TextareaComponent, ToastComponent, ToastService, TooltipDirective, TreeviewComponent, TreeviewItemComponent, TreeviewSelectionService };
4249
5326
  //# sourceMappingURL=design-system-rte-angular.mjs.map