@tedi-design-system/angular 3.0.0-rc.1

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 (341) hide show
  1. package/README.md +44 -0
  2. package/community/components/cards/accordion/accordion/accordion.component.d.ts +22 -0
  3. package/community/components/cards/accordion/accordion/accordion.component.d.ts.map +1 -0
  4. package/community/components/cards/accordion/accordion-icon/accordion-icon.component.d.ts +7 -0
  5. package/community/components/cards/accordion/accordion-icon/accordion-icon.component.d.ts.map +1 -0
  6. package/community/components/cards/accordion/accordion-item/accordion-item.component.d.ts +20 -0
  7. package/community/components/cards/accordion/accordion-item/accordion-item.component.d.ts.map +1 -0
  8. package/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.d.ts +12 -0
  9. package/community/components/cards/accordion/accordion-item-content/accordion-item-content.component.d.ts.map +1 -0
  10. package/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.d.ts +42 -0
  11. package/community/components/cards/accordion/accordion-item-header/accordion-item-header.component.d.ts.map +1 -0
  12. package/community/components/cards/accordion/index.d.ts +6 -0
  13. package/community/components/cards/accordion/index.d.ts.map +1 -0
  14. package/community/components/cards/card/card-colors.directive.d.ts +13 -0
  15. package/community/components/cards/card/card-colors.directive.d.ts.map +1 -0
  16. package/community/components/cards/card/card-content/card-content.component.d.ts +25 -0
  17. package/community/components/cards/card/card-content/card-content.component.d.ts.map +1 -0
  18. package/community/components/cards/card/card-header/card-header.component.d.ts +14 -0
  19. package/community/components/cards/card/card-header/card-header.component.d.ts.map +1 -0
  20. package/community/components/cards/card/card-padding.directive.d.ts +21 -0
  21. package/community/components/cards/card/card-padding.directive.d.ts.map +1 -0
  22. package/community/components/cards/card/card-row/card-row.component.d.ts +11 -0
  23. package/community/components/cards/card/card-row/card-row.component.d.ts.map +1 -0
  24. package/community/components/cards/card/card.component.d.ts +30 -0
  25. package/community/components/cards/card/card.component.d.ts.map +1 -0
  26. package/community/components/cards/card/index.d.ts +7 -0
  27. package/community/components/cards/card/index.d.ts.map +1 -0
  28. package/community/components/cards/index.d.ts +3 -0
  29. package/community/components/cards/index.d.ts.map +1 -0
  30. package/community/components/form/checkbox/checkbox/checkbox.component.d.ts +38 -0
  31. package/community/components/form/checkbox/checkbox/checkbox.component.d.ts.map +1 -0
  32. package/community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.d.ts +22 -0
  33. package/community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.d.ts.map +1 -0
  34. package/community/components/form/checkbox/checkbox-group/checkbox-group.component.d.ts +23 -0
  35. package/community/components/form/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -0
  36. package/community/components/form/checkbox/index.d.ts +4 -0
  37. package/community/components/form/checkbox/index.d.ts.map +1 -0
  38. package/community/components/form/choicegroup/choicegroup.directive.d.ts +11 -0
  39. package/community/components/form/choicegroup/choicegroup.directive.d.ts.map +1 -0
  40. package/community/components/form/file-dropzone/constants.d.ts +13 -0
  41. package/community/components/form/file-dropzone/constants.d.ts.map +1 -0
  42. package/community/components/form/file-dropzone/file-dropzone.component.d.ts +133 -0
  43. package/community/components/form/file-dropzone/file-dropzone.component.d.ts.map +1 -0
  44. package/community/components/form/file-dropzone/file.service.d.ts +25 -0
  45. package/community/components/form/file-dropzone/file.service.d.ts.map +1 -0
  46. package/community/components/form/file-dropzone/index.d.ts +2 -0
  47. package/community/components/form/file-dropzone/index.d.ts.map +1 -0
  48. package/community/components/form/file-dropzone/types.d.ts +23 -0
  49. package/community/components/form/file-dropzone/types.d.ts.map +1 -0
  50. package/community/components/form/file-dropzone/utils.d.ts +7 -0
  51. package/community/components/form/file-dropzone/utils.d.ts.map +1 -0
  52. package/community/components/form/form-field/form-field.component.d.ts +6 -0
  53. package/community/components/form/form-field/form-field.component.d.ts.map +1 -0
  54. package/community/components/form/index.d.ts +11 -0
  55. package/community/components/form/index.d.ts.map +1 -0
  56. package/community/components/form/input/input.component.d.ts +19 -0
  57. package/community/components/form/input/input.component.d.ts.map +1 -0
  58. package/community/components/form/input-group/input-group.component.d.ts +38 -0
  59. package/community/components/form/input-group/input-group.component.d.ts.map +1 -0
  60. package/community/components/form/radio/index.d.ts +4 -0
  61. package/community/components/form/radio/index.d.ts.map +1 -0
  62. package/community/components/form/radio/radio/radio.component.d.ts +27 -0
  63. package/community/components/form/radio/radio/radio.component.d.ts.map +1 -0
  64. package/community/components/form/radio/radio-card-group/radio-card-group.component.d.ts +9 -0
  65. package/community/components/form/radio/radio-card-group/radio-card-group.component.d.ts.map +1 -0
  66. package/community/components/form/radio/radio-group/radio-group.component.d.ts +37 -0
  67. package/community/components/form/radio/radio-group/radio-group.component.d.ts.map +1 -0
  68. package/community/components/form/search/search.component.d.ts +115 -0
  69. package/community/components/form/search/search.component.d.ts.map +1 -0
  70. package/community/components/form/select/index.d.ts +4 -0
  71. package/community/components/form/select/index.d.ts.map +1 -0
  72. package/community/components/form/select/multiselect.component.d.ts +108 -0
  73. package/community/components/form/select/multiselect.component.d.ts.map +1 -0
  74. package/community/components/form/select/select-option.component.d.ts +26 -0
  75. package/community/components/form/select/select-option.component.d.ts.map +1 -0
  76. package/community/components/form/select/select.component.d.ts +77 -0
  77. package/community/components/form/select/select.component.d.ts.map +1 -0
  78. package/community/components/form/textarea/textarea.component.d.ts +17 -0
  79. package/community/components/form/textarea/textarea.component.d.ts.map +1 -0
  80. package/community/components/navigation/breadcrumbs/breadcrumbs.component.d.ts +48 -0
  81. package/community/components/navigation/breadcrumbs/breadcrumbs.component.d.ts.map +1 -0
  82. package/community/components/navigation/index.d.ts +4 -0
  83. package/community/components/navigation/index.d.ts.map +1 -0
  84. package/community/components/navigation/pagination/pagination-page/pagination-page.component.d.ts +10 -0
  85. package/community/components/navigation/pagination/pagination-page/pagination-page.component.d.ts.map +1 -0
  86. package/community/components/navigation/pagination/pagination.component.d.ts +20 -0
  87. package/community/components/navigation/pagination/pagination.component.d.ts.map +1 -0
  88. package/community/components/navigation/pagination/pagination.utils.d.ts +2 -0
  89. package/community/components/navigation/pagination/pagination.utils.d.ts.map +1 -0
  90. package/community/components/navigation/tabs/index.d.ts +4 -0
  91. package/community/components/navigation/tabs/index.d.ts.map +1 -0
  92. package/community/components/navigation/tabs/tab/tab.component.d.ts +21 -0
  93. package/community/components/navigation/tabs/tab/tab.component.d.ts.map +1 -0
  94. package/community/components/navigation/tabs/tab-content/tab-content.component.d.ts +9 -0
  95. package/community/components/navigation/tabs/tab-content/tab-content.component.d.ts.map +1 -0
  96. package/community/components/navigation/tabs/tabs.component.d.ts +19 -0
  97. package/community/components/navigation/tabs/tabs.component.d.ts.map +1 -0
  98. package/community/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.d.ts +20 -0
  99. package/community/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.d.ts.map +1 -0
  100. package/community/components/overlay/dropdown/dropdown.component.d.ts +20 -0
  101. package/community/components/overlay/dropdown/dropdown.component.d.ts.map +1 -0
  102. package/community/components/overlay/dropdown-item/dropdown-item.component.d.ts +35 -0
  103. package/community/components/overlay/dropdown-item/dropdown-item.component.d.ts.map +1 -0
  104. package/community/components/overlay/index.d.ts +5 -0
  105. package/community/components/overlay/index.d.ts.map +1 -0
  106. package/community/components/overlay/modal/footer/modal-footer.component.d.ts +23 -0
  107. package/community/components/overlay/modal/footer/modal-footer.component.d.ts.map +1 -0
  108. package/community/components/overlay/modal/header/modal-header.component.d.ts +15 -0
  109. package/community/components/overlay/modal/header/modal-header.component.d.ts.map +1 -0
  110. package/community/components/overlay/modal/index.d.ts +4 -0
  111. package/community/components/overlay/modal/index.d.ts.map +1 -0
  112. package/community/components/overlay/modal/modal.component.d.ts +23 -0
  113. package/community/components/overlay/modal/modal.component.d.ts.map +1 -0
  114. package/community/components/table/index.d.ts +2 -0
  115. package/community/components/table/index.d.ts.map +1 -0
  116. package/community/components/table/table-styles/table-styles.component.d.ts +11 -0
  117. package/community/components/table/table-styles/table-styles.component.d.ts.map +1 -0
  118. package/community/components/tags/index.d.ts +3 -0
  119. package/community/components/tags/index.d.ts.map +1 -0
  120. package/community/components/tags/status-badge/status-badge.component.d.ts +54 -0
  121. package/community/components/tags/status-badge/status-badge.component.d.ts.map +1 -0
  122. package/community/components/tags/tag/tag.component.d.ts +32 -0
  123. package/community/components/tags/tag/tag.component.d.ts.map +1 -0
  124. package/community/index.d.ts +7 -0
  125. package/community/index.d.ts.map +1 -0
  126. package/community/tedi-design-system-angular-community.d.ts.map +1 -0
  127. package/fesm2022/tedi-design-system-angular-community.mjs +2906 -0
  128. package/fesm2022/tedi-design-system-angular-community.mjs.map +1 -0
  129. package/fesm2022/tedi-design-system-angular-tedi.mjs +3135 -0
  130. package/fesm2022/tedi-design-system-angular-tedi.mjs.map +1 -0
  131. package/fesm2022/tedi-design-system-angular.mjs +6 -0
  132. package/fesm2022/tedi-design-system-angular.mjs.map +1 -0
  133. package/fonts/README.md +34 -0
  134. package/fonts/material-symbols-outlined.woff2 +0 -0
  135. package/fonts/material-symbols-rounded.woff2 +0 -0
  136. package/fonts/material-symbols-sharp.woff2 +0 -0
  137. package/fonts/roboto-v30-cyrillic-300-italic.woff2 +0 -0
  138. package/fonts/roboto-v30-cyrillic-300.woff2 +0 -0
  139. package/fonts/roboto-v30-cyrillic-400-italic.woff2 +0 -0
  140. package/fonts/roboto-v30-cyrillic-400.woff2 +0 -0
  141. package/fonts/roboto-v30-cyrillic-700-italic.woff2 +0 -0
  142. package/fonts/roboto-v30-cyrillic-700.woff2 +0 -0
  143. package/fonts/roboto-v30-cyrillic-ext-300-italic.woff2 +0 -0
  144. package/fonts/roboto-v30-cyrillic-ext-300.woff2 +0 -0
  145. package/fonts/roboto-v30-cyrillic-ext-400-italic.woff2 +0 -0
  146. package/fonts/roboto-v30-cyrillic-ext-400.woff2 +0 -0
  147. package/fonts/roboto-v30-cyrillic-ext-700-italic.woff2 +0 -0
  148. package/fonts/roboto-v30-cyrillic-ext-700.woff2 +0 -0
  149. package/fonts/roboto-v30-latin-300-italic.woff2 +0 -0
  150. package/fonts/roboto-v30-latin-300.woff2 +0 -0
  151. package/fonts/roboto-v30-latin-400-italic.woff2 +0 -0
  152. package/fonts/roboto-v30-latin-400.woff2 +0 -0
  153. package/fonts/roboto-v30-latin-700-italic.woff2 +0 -0
  154. package/fonts/roboto-v30-latin-700.woff2 +0 -0
  155. package/fonts/roboto-v30-latin-ext-300-italic.woff2 +0 -0
  156. package/fonts/roboto-v30-latin-ext-300.woff2 +0 -0
  157. package/fonts/roboto-v30-latin-ext-400-italic.woff2 +0 -0
  158. package/fonts/roboto-v30-latin-ext-400.woff2 +0 -0
  159. package/fonts/roboto-v30-latin-ext-700-italic.woff2 +0 -0
  160. package/fonts/roboto-v30-latin-ext-700.woff2 +0 -0
  161. package/index.css +1 -0
  162. package/index.d.ts +6 -0
  163. package/package.json +76 -0
  164. package/public-api.d.ts +3 -0
  165. package/public-api.d.ts.map +1 -0
  166. package/tedi/components/base/icon/icon.component.d.ts +47 -0
  167. package/tedi/components/base/icon/icon.component.d.ts.map +1 -0
  168. package/tedi/components/base/index.d.ts +3 -0
  169. package/tedi/components/base/index.d.ts.map +1 -0
  170. package/tedi/components/base/text/text.component.d.ts +20 -0
  171. package/tedi/components/base/text/text.component.d.ts.map +1 -0
  172. package/tedi/components/buttons/button/button.component.d.ts +25 -0
  173. package/tedi/components/buttons/button/button.component.d.ts.map +1 -0
  174. package/tedi/components/buttons/closing-button/closing-button.component.d.ts +24 -0
  175. package/tedi/components/buttons/closing-button/closing-button.component.d.ts.map +1 -0
  176. package/tedi/components/buttons/collapse/collapse.component.d.ts +37 -0
  177. package/tedi/components/buttons/collapse/collapse.component.d.ts.map +1 -0
  178. package/tedi/components/buttons/index.d.ts +5 -0
  179. package/tedi/components/buttons/index.d.ts.map +1 -0
  180. package/tedi/components/buttons/info-button/info-button.component.d.ts +6 -0
  181. package/tedi/components/buttons/info-button/info-button.component.d.ts.map +1 -0
  182. package/tedi/components/content/index.d.ts +3 -0
  183. package/tedi/components/content/index.d.ts.map +1 -0
  184. package/tedi/components/content/list/list.component.d.ts +18 -0
  185. package/tedi/components/content/list/list.component.d.ts.map +1 -0
  186. package/tedi/components/content/text-group/index.d.ts +4 -0
  187. package/tedi/components/content/text-group/index.d.ts.map +1 -0
  188. package/tedi/components/content/text-group/text-group-label.component.d.ts +6 -0
  189. package/tedi/components/content/text-group/text-group-label.component.d.ts.map +1 -0
  190. package/tedi/components/content/text-group/text-group-value.component.d.ts +6 -0
  191. package/tedi/components/content/text-group/text-group-value.component.d.ts.map +1 -0
  192. package/tedi/components/content/text-group/text-group.component.d.ts +30 -0
  193. package/tedi/components/content/text-group/text-group.component.d.ts.map +1 -0
  194. package/tedi/components/form/feedback-text/feedback-text.component.d.ts +25 -0
  195. package/tedi/components/form/feedback-text/feedback-text.component.d.ts.map +1 -0
  196. package/tedi/components/form/index.d.ts +5 -0
  197. package/tedi/components/form/index.d.ts.map +1 -0
  198. package/tedi/components/form/label/label.component.d.ts +18 -0
  199. package/tedi/components/form/label/label.component.d.ts.map +1 -0
  200. package/tedi/components/form/number-field/number-field.component.d.ts +86 -0
  201. package/tedi/components/form/number-field/number-field.component.d.ts.map +1 -0
  202. package/tedi/components/form/toggle/toggle.component.d.ts +61 -0
  203. package/tedi/components/form/toggle/toggle.component.d.ts.map +1 -0
  204. package/tedi/components/helpers/grid/col/col.component.d.ts +37 -0
  205. package/tedi/components/helpers/grid/col/col.component.d.ts.map +1 -0
  206. package/tedi/components/helpers/grid/index.d.ts +3 -0
  207. package/tedi/components/helpers/grid/index.d.ts.map +1 -0
  208. package/tedi/components/helpers/grid/row/row.component.d.ts +60 -0
  209. package/tedi/components/helpers/grid/row/row.component.d.ts.map +1 -0
  210. package/tedi/components/helpers/index.d.ts +4 -0
  211. package/tedi/components/helpers/index.d.ts.map +1 -0
  212. package/tedi/components/helpers/separator/separator.component.d.ts +57 -0
  213. package/tedi/components/helpers/separator/separator.component.d.ts.map +1 -0
  214. package/tedi/components/helpers/timeline/index.d.ts +5 -0
  215. package/tedi/components/helpers/timeline/index.d.ts.map +1 -0
  216. package/tedi/components/helpers/timeline/timeline-description/timeline-description.component.d.ts +6 -0
  217. package/tedi/components/helpers/timeline/timeline-description/timeline-description.component.d.ts.map +1 -0
  218. package/tedi/components/helpers/timeline/timeline-item/timeline-item.component.d.ts +19 -0
  219. package/tedi/components/helpers/timeline/timeline-item/timeline-item.component.d.ts.map +1 -0
  220. package/tedi/components/helpers/timeline/timeline-title/timeline-title.component.d.ts +6 -0
  221. package/tedi/components/helpers/timeline/timeline-title/timeline-title.component.d.ts.map +1 -0
  222. package/tedi/components/helpers/timeline/timeline.component.d.ts +12 -0
  223. package/tedi/components/helpers/timeline/timeline.component.d.ts.map +1 -0
  224. package/tedi/components/index.d.ts +11 -0
  225. package/tedi/components/index.d.ts.map +1 -0
  226. package/tedi/components/layout/footer/footer-body/footer-body.component.d.ts +9 -0
  227. package/tedi/components/layout/footer/footer-body/footer-body.component.d.ts.map +1 -0
  228. package/tedi/components/layout/footer/footer-bottom/footer-bottom.component.d.ts +19 -0
  229. package/tedi/components/layout/footer/footer-bottom/footer-bottom.component.d.ts.map +1 -0
  230. package/tedi/components/layout/footer/footer-section/footer-section.component.d.ts +26 -0
  231. package/tedi/components/layout/footer/footer-section/footer-section.component.d.ts.map +1 -0
  232. package/tedi/components/layout/footer/footer-side/footer-side.component.d.ts +21 -0
  233. package/tedi/components/layout/footer/footer-side/footer-side.component.d.ts.map +1 -0
  234. package/tedi/components/layout/footer/footer.component.d.ts +9 -0
  235. package/tedi/components/layout/footer/footer.component.d.ts.map +1 -0
  236. package/tedi/components/layout/footer/index.d.ts +6 -0
  237. package/tedi/components/layout/footer/index.d.ts.map +1 -0
  238. package/tedi/components/layout/header/header-actions/header-actions.component.d.ts +6 -0
  239. package/tedi/components/layout/header/header-actions/header-actions.component.d.ts.map +1 -0
  240. package/tedi/components/layout/header/header-content/header-content.component.d.ts +6 -0
  241. package/tedi/components/layout/header/header-content/header-content.component.d.ts.map +1 -0
  242. package/tedi/components/layout/header/header-language/header-language.component.d.ts +25 -0
  243. package/tedi/components/layout/header/header-language/header-language.component.d.ts.map +1 -0
  244. package/tedi/components/layout/header/header-login/header-login.component.d.ts +14 -0
  245. package/tedi/components/layout/header/header-login/header-login.component.d.ts.map +1 -0
  246. package/tedi/components/layout/header/header-logout/header-logout.component.d.ts +10 -0
  247. package/tedi/components/layout/header/header-logout/header-logout.component.d.ts.map +1 -0
  248. package/tedi/components/layout/header/header-profile/header-profile.component.d.ts +20 -0
  249. package/tedi/components/layout/header/header-profile/header-profile.component.d.ts.map +1 -0
  250. package/tedi/components/layout/header/header-role/header-role.component.d.ts +40 -0
  251. package/tedi/components/layout/header/header-role/header-role.component.d.ts.map +1 -0
  252. package/tedi/components/layout/header/header.component.d.ts +6 -0
  253. package/tedi/components/layout/header/header.component.d.ts.map +1 -0
  254. package/tedi/components/layout/header/index.d.ts +9 -0
  255. package/tedi/components/layout/header/index.d.ts.map +1 -0
  256. package/tedi/components/layout/index.d.ts +4 -0
  257. package/tedi/components/layout/index.d.ts.map +1 -0
  258. package/tedi/components/layout/sidenav/index.d.ts +9 -0
  259. package/tedi/components/layout/sidenav/index.d.ts.map +1 -0
  260. package/tedi/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.d.ts +15 -0
  261. package/tedi/components/layout/sidenav/sidenav-dropdown/sidenav-dropdown.component.d.ts.map +1 -0
  262. package/tedi/components/layout/sidenav/sidenav-dropdown-group/sidenav-dropdown-group.component.d.ts +6 -0
  263. package/tedi/components/layout/sidenav/sidenav-dropdown-group/sidenav-dropdown-group.component.d.ts.map +1 -0
  264. package/tedi/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.d.ts +20 -0
  265. package/tedi/components/layout/sidenav/sidenav-dropdown-item/sidenav-dropdown-item.component.d.ts.map +1 -0
  266. package/tedi/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.d.ts +6 -0
  267. package/tedi/components/layout/sidenav/sidenav-group-title/sidenav-group-title.component.d.ts.map +1 -0
  268. package/tedi/components/layout/sidenav/sidenav-item/sidenav-item.component.d.ts +37 -0
  269. package/tedi/components/layout/sidenav/sidenav-item/sidenav-item.component.d.ts.map +1 -0
  270. package/tedi/components/layout/sidenav/sidenav-overlay/sidenav-overlay.component.d.ts +10 -0
  271. package/tedi/components/layout/sidenav/sidenav-overlay/sidenav-overlay.component.d.ts.map +1 -0
  272. package/tedi/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.d.ts +13 -0
  273. package/tedi/components/layout/sidenav/sidenav-toggle/sidenav-toggle.component.d.ts.map +1 -0
  274. package/tedi/components/layout/sidenav/sidenav.component.d.ts +30 -0
  275. package/tedi/components/layout/sidenav/sidenav.component.d.ts.map +1 -0
  276. package/tedi/components/loader/index.d.ts +2 -0
  277. package/tedi/components/loader/index.d.ts.map +1 -0
  278. package/tedi/components/loader/spinner/spinner.component.d.ts +24 -0
  279. package/tedi/components/loader/spinner/spinner.component.d.ts.map +1 -0
  280. package/tedi/components/navigation/index.d.ts +2 -0
  281. package/tedi/components/navigation/index.d.ts.map +1 -0
  282. package/tedi/components/navigation/link/link.component.d.ts +42 -0
  283. package/tedi/components/navigation/link/link.component.d.ts.map +1 -0
  284. package/tedi/components/notifications/alert/alert.component.d.ts +64 -0
  285. package/tedi/components/notifications/alert/alert.component.d.ts.map +1 -0
  286. package/tedi/components/notifications/index.d.ts +2 -0
  287. package/tedi/components/notifications/index.d.ts.map +1 -0
  288. package/tedi/components/overlay/index.d.ts +3 -0
  289. package/tedi/components/overlay/index.d.ts.map +1 -0
  290. package/tedi/components/overlay/popover/index.d.ts +4 -0
  291. package/tedi/components/overlay/popover/index.d.ts.map +1 -0
  292. package/tedi/components/overlay/popover/popover-content/popover-content.component.d.ts +25 -0
  293. package/tedi/components/overlay/popover/popover-content/popover-content.component.d.ts.map +1 -0
  294. package/tedi/components/overlay/popover/popover-trigger/popover-trigger.component.d.ts +10 -0
  295. package/tedi/components/overlay/popover/popover-trigger/popover-trigger.component.d.ts.map +1 -0
  296. package/tedi/components/overlay/popover/popover.component.d.ts +44 -0
  297. package/tedi/components/overlay/popover/popover.component.d.ts.map +1 -0
  298. package/tedi/components/overlay/tooltip/index.d.ts +4 -0
  299. package/tedi/components/overlay/tooltip/index.d.ts.map +1 -0
  300. package/tedi/components/overlay/tooltip/tooltip-content.component.d.ts +21 -0
  301. package/tedi/components/overlay/tooltip/tooltip-content.component.d.ts.map +1 -0
  302. package/tedi/components/overlay/tooltip/tooltip-trigger.component.d.ts +11 -0
  303. package/tedi/components/overlay/tooltip/tooltip-trigger.component.d.ts.map +1 -0
  304. package/tedi/components/overlay/tooltip/tooltip.component.d.ts +48 -0
  305. package/tedi/components/overlay/tooltip/tooltip.component.d.ts.map +1 -0
  306. package/tedi/directives/hide-at/hide-at.directive.d.ts +11 -0
  307. package/tedi/directives/hide-at/hide-at.directive.d.ts.map +1 -0
  308. package/tedi/directives/index.d.ts +4 -0
  309. package/tedi/directives/index.d.ts.map +1 -0
  310. package/tedi/directives/show-at/show-at.directive.d.ts +11 -0
  311. package/tedi/directives/show-at/show-at.directive.d.ts.map +1 -0
  312. package/tedi/directives/vertical-spacing/index.d.ts +3 -0
  313. package/tedi/directives/vertical-spacing/index.d.ts.map +1 -0
  314. package/tedi/directives/vertical-spacing/vertical-spacing-item.directive.d.ts +13 -0
  315. package/tedi/directives/vertical-spacing/vertical-spacing-item.directive.d.ts.map +1 -0
  316. package/tedi/directives/vertical-spacing/vertical-spacing.directive.d.ts +13 -0
  317. package/tedi/directives/vertical-spacing/vertical-spacing.directive.d.ts.map +1 -0
  318. package/tedi/helpers/generate-uuid.d.ts +8 -0
  319. package/tedi/helpers/generate-uuid.d.ts.map +1 -0
  320. package/tedi/helpers/index.d.ts +2 -0
  321. package/tedi/helpers/index.d.ts.map +1 -0
  322. package/tedi/index.d.ts +6 -0
  323. package/tedi/index.d.ts.map +1 -0
  324. package/tedi/services/breakpoint/breakpoint.service.d.ts +28 -0
  325. package/tedi/services/breakpoint/breakpoint.service.d.ts.map +1 -0
  326. package/tedi/services/index.d.ts +4 -0
  327. package/tedi/services/index.d.ts.map +1 -0
  328. package/tedi/services/sidenav/sidenav.service.d.ts +20 -0
  329. package/tedi/services/sidenav/sidenav.service.d.ts.map +1 -0
  330. package/tedi/services/translation/translation.pipe.d.ts +10 -0
  331. package/tedi/services/translation/translation.pipe.d.ts.map +1 -0
  332. package/tedi/services/translation/translation.service.d.ts +16 -0
  333. package/tedi/services/translation/translation.service.d.ts.map +1 -0
  334. package/tedi/services/translation/translations.d.ts +538 -0
  335. package/tedi/services/translation/translations.d.ts.map +1 -0
  336. package/tedi/tedi-design-system-angular-tedi.d.ts.map +1 -0
  337. package/tedi/types/index.d.ts +2 -0
  338. package/tedi/types/index.d.ts.map +1 -0
  339. package/tedi/types/inputs.type.d.ts +5 -0
  340. package/tedi/types/inputs.type.d.ts.map +1 -0
  341. package/tedi-design-system-angular.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tedi-design-system-angular-community.mjs","sources":["../../community/components/cards/card/card-colors.directive.ts","../../community/components/cards/card/card-padding.directive.ts","../../community/components/cards/card/card.component.ts","../../community/components/cards/card/card.component.html","../../community/components/cards/accordion/accordion-item/accordion-item.component.ts","../../community/components/cards/accordion/accordion-item/accordion-item.component.html","../../community/components/cards/accordion/accordion/accordion.component.ts","../../community/components/cards/accordion/accordion/accordion.component.html","../../community/components/cards/accordion/accordion-icon/accordion-icon.component.ts","../../community/components/cards/accordion/accordion-icon/accordion-icon.component.html","../../community/components/cards/card/card-content/card-content.component.ts","../../community/components/cards/card/card-content/card-content.component.html","../../community/components/cards/accordion/accordion-item-content/accordion-item-content.component.ts","../../community/components/cards/accordion/accordion-item-content/accordion-item-content.component.html","../../community/components/cards/card/card-header/card-header.component.ts","../../community/components/cards/card/card-header/card-header.component.html","../../community/components/cards/accordion/accordion-item-header/accordion-item-header.component.ts","../../community/components/cards/accordion/accordion-item-header/accordion-item-header.component.html","../../community/components/cards/card/card-row/card-row.component.ts","../../community/components/cards/card/card-row/card-row.component.html","../../community/components/form/choicegroup/choicegroup.directive.ts","../../community/components/form/checkbox/checkbox-group/checkbox-group.component.ts","../../community/components/form/checkbox/checkbox-group/checkbox-group.component.html","../../community/components/form/checkbox/checkbox-card-group/checkbox-card-group.component.ts","../../community/components/form/checkbox/checkbox/checkbox.component.ts","../../community/components/form/checkbox/checkbox/checkbox.component.html","../../community/components/form/form-field/form-field.component.ts","../../community/components/form/input/input.component.ts","../../community/components/form/input-group/input-group.component.ts","../../community/components/form/input-group/input-group.component.html","../../community/components/form/radio/radio-group/radio-group.component.ts","../../community/components/form/radio/radio-group/radio-group.component.html","../../community/components/form/radio/radio/radio.component.ts","../../community/components/form/radio/radio/radio.component.html","../../community/components/form/radio/radio-card-group/radio-card-group.component.ts","../../community/components/form/select/select-option.component.ts","../../community/components/overlay/dropdown/dropdown-trigger/dropdown-trigger.directive.ts","../../community/components/overlay/dropdown/dropdown.component.ts","../../community/components/overlay/dropdown/dropdown.component.html","../../community/components/overlay/dropdown-item/dropdown-item.component.ts","../../community/components/overlay/modal/modal.component.ts","../../community/components/overlay/modal/modal.component.html","../../community/components/overlay/modal/footer/modal-footer.component.ts","../../community/components/overlay/modal/footer/modal-footer.component.html","../../community/components/overlay/modal/header/modal-header.component.ts","../../community/components/overlay/modal/header/modal-header.component.html","../../community/components/form/select/select.component.ts","../../community/components/form/select/select.component.html","../../community/components/tags/tag/tag.component.ts","../../community/components/tags/tag/tag.component.html","../../community/components/tags/status-badge/status-badge.component.ts","../../community/components/tags/status-badge/status-badge.component.html","../../community/components/form/select/multiselect.component.ts","../../community/components/form/select/multiselect.component.html","../../community/components/form/textarea/textarea.component.ts","../../community/components/form/search/search.component.ts","../../community/components/form/search/search.component.html","../../community/components/form/file-dropzone/constants.ts","../../community/components/form/file-dropzone/utils.ts","../../community/components/form/file-dropzone/types.ts","../../community/components/form/file-dropzone/file.service.ts","../../community/components/form/file-dropzone/file-dropzone.component.ts","../../community/components/form/file-dropzone/file-dropzone.component.html","../../community/components/navigation/breadcrumbs/breadcrumbs.component.ts","../../community/components/navigation/breadcrumbs/breadcrumbs.component.html","../../community/components/navigation/pagination/pagination-page/pagination-page.component.ts","../../community/components/navigation/pagination/pagination-page/pagination-page.component.html","../../community/components/navigation/pagination/pagination.utils.ts","../../community/components/navigation/pagination/pagination.component.ts","../../community/components/navigation/pagination/pagination.component.html","../../community/components/navigation/tabs/tab-content/tab-content.component.ts","../../community/components/navigation/tabs/tab-content/tab-content.component.html","../../community/components/navigation/tabs/tab/tab.component.ts","../../community/components/navigation/tabs/tab/tab.component.html","../../community/components/navigation/tabs/tabs.component.ts","../../community/components/navigation/tabs/tabs.component.html","../../community/components/table/table-styles/table-styles.component.ts","../../community/components/table/table-styles/table-styles.component.html","../../community/tedi-design-system-angular-community.ts"],"sourcesContent":["import { computed, Directive, input } from \"@angular/core\";\n\nexport type CardColors =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"accent\"\n | \"brand-primary\"\n | \"brand-secondary\"\n | \"brand-tertiary\"\n | \"brand-quaternary\"\n | \"danger-primary\"\n | \"danger-secondary\"\n | \"success-primary\"\n | \"success-secondary\"\n | \"info-primary\"\n | \"info-secondary\"\n | \"warning-primary\"\n | \"warning-secondary\"\n | \"neutral-primary\"\n | \"neutral-secondary\";\n\n@Directive({\n standalone: true,\n host: {\n \"[class]\": \"modifierClasses()\",\n },\n})\nexport class CardColorsDirective {\n /**\n * Modifies background of the block it's attached to.\n */\n background = input<CardColors>();\n border = input<CardColors>();\n\n modifierClasses = computed(() => {\n const modifiers = [];\n if (this.background()) {\n modifiers.push(`tedi-card--background--${this.background()}`);\n }\n if (this.border()) {\n modifiers.push(`tedi-card--border--${this.border()}`);\n }\n return modifiers.join(\" \");\n });\n}\n","import { computed, Directive, input } from \"@angular/core\";\nimport { CardSpacing } from \"./card.component\";\n\nexport type CardPadding =\n | CardSpacing\n | { horizontal?: CardSpacing; vertical?: CardSpacing }\n | {\n top?: CardSpacing;\n bottom?: CardSpacing;\n left?: CardSpacing;\n right?: CardSpacing;\n };\n\nconst getPaddingClasses = (padding: CardPadding) => {\n if (typeof padding === \"string\") {\n return `tedi-card--padding-${padding}`;\n } else {\n return Object.entries(padding)\n .map(([direction, padding]) => {\n return `tedi-card--padding-${direction}-${padding}`;\n })\n .join(\" \");\n }\n};\n\n@Directive({\n standalone: true,\n host: {\n \"[class]\": \"modifierClasses()\",\n },\n})\nexport class CardPaddingDirective {\n /**\n * Modifies padding of the block it's attached to. Can be override whole block or horizontal, vertical or each side separately.\n */\n padding = input<CardPadding>();\n\n modifierClasses = computed(() => {\n if (this.padding()) {\n return getPaddingClasses(this.padding()!);\n }\n return \"\";\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { CardColorsDirective } from \"./card-colors.directive\";\nimport { CardPaddingDirective } from \"./card-padding.directive\";\n\nexport type CardSpacing = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"none\";\nexport type CardAccentBorder = \"info\" | \"success\" | \"warning\" | \"danger\";\n\n@Component({\n selector: \"tedi-card\",\n standalone: true,\n imports: [],\n templateUrl: \"./card.component.html\",\n styleUrl: \"./card.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-card]\": \"true\",\n \"[class.tedi-card--borderless]\": \"borderless()\",\n \"[class.tedi-card--selected]\": \"selected()\",\n \"[class]\": \"modifierClasses()\",\n },\n hostDirectives: [\n {\n directive: CardColorsDirective,\n inputs: [\"background\", \"border\"],\n },\n {\n directive: CardPaddingDirective,\n inputs: [\"padding\"],\n },\n ],\n})\nexport class CardComponent {\n /**\n * Whether card should not have border.\n * @default false\n */\n borderless = input<boolean>();\n /**\n * Sets padding for header and content block.\n * @default md\n */\n spacing = input<CardSpacing>(\"md\");\n /**\n * Creates colored accent left border.\n */\n accentBorder = input<CardAccentBorder>();\n /**\n * Whether card should have selected border.\n * @default false\n */\n selected = input<boolean>();\n\n modifierClasses = computed(() => {\n const modifiers = [`tedi-card--spacing-${this.spacing()}`];\n if (this.accentBorder()) {\n modifiers.push(\n `tedi-card--accent-border`,\n `tedi-card--accent-border--${this.accentBorder()}`,\n );\n }\n return modifiers.join(\" \");\n });\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n signal,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { CardComponent } from \"../../card/card.component\";\n\n@Component({\n selector: \"tedi-accordion-item\",\n standalone: true,\n imports: [CardComponent],\n templateUrl: \"./accordion-item.component.html\",\n styleUrl: \"./accordion-item.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-accordion-item]\": \"true\",\n },\n})\nexport class AccordionItemComponent {\n /**\n * Accordion item id\n */\n id = input.required<string>();\n /**\n * Whether accordion item is selected\n */\n selected = input<boolean>(false);\n\n opened = signal<boolean>(false);\n\n headerId = computed(() => {\n return `tedi-accordion-header-${this.id()}`;\n });\n contentId = computed(() => {\n return `tedi-accordion-content-${this.id()}`;\n });\n\n open() {\n this.opened.set(true);\n }\n\n close() {\n this.opened.set(false);\n }\n\n toggle() {\n this.opened.update((wasOpened) => !wasOpened);\n }\n}\n","<tedi-card\n [selected]=\"selected()\"\n class=\"tedi-accordion-item__card\"\n [class.tedi-accordion-item__card--expanded]=\"opened()\"\n>\n <ng-content></ng-content>\n</tedi-card>\n","import {\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n input,\n OnInit,\n} from \"@angular/core\";\nimport { AccordionItemComponent } from \"../accordion-item/accordion-item.component\";\n\n@Component({\n selector: \"tedi-accordion\",\n standalone: true,\n imports: [],\n templateUrl: \"./accordion.component.html\",\n styleUrl: \"./accordion.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AccordionComponent implements OnInit {\n /**\n * id-s of items that should be opened by default.\n */\n defaultOpenItems = input<string[]>();\n /**\n * Whether only one accordion item can be opened at once.\n * @default false\n */\n singleOpen = input<boolean>(false);\n\n accordionItems = contentChildren(AccordionItemComponent, {\n descendants: true,\n });\n\n private prevOpens: boolean[] = [];\n\n constructor() {\n effect(() => {\n const single = this.singleOpen();\n const items = this.accordionItems();\n const opens = items.map((it) => it.opened());\n let newlyOpenedIndex = -1;\n\n if (single && items.length > 0) {\n for (let i = 0; i < opens.length; i++) {\n const prev = i < this.prevOpens.length ? this.prevOpens[i] : false;\n if (!prev && opens[i]) {\n newlyOpenedIndex = i;\n }\n }\n\n if (newlyOpenedIndex >= 0) {\n for (let i = 0; i < items.length; i++) {\n if (i !== newlyOpenedIndex && items[i].opened()) {\n items[i].close();\n }\n }\n }\n }\n\n this.prevOpens = opens;\n });\n }\n\n private openDefaultOpenItems() {\n const defaultOpenItems = this.defaultOpenItems();\n this.accordionItems().forEach((item) => {\n if (defaultOpenItems?.includes(item.id())) {\n item.open();\n }\n });\n }\n\n ngOnInit() {\n this.openDefaultOpenItems();\n }\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { CardColorsDirective } from \"../../card/card-colors.directive\";\n\n@Component({\n standalone: true,\n selector: \"tedi-accordion-icon\",\n templateUrl: \"./accordion-icon.component.html\",\n styleUrl: \"./accordion-icon.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-accordion-icon]\": \"true\",\n },\n hostDirectives: [\n {\n directive: CardColorsDirective,\n inputs: [\"background\"],\n },\n ],\n})\nexport class AccordionIconComponent {}\n","<div class=\"tedi-accordion-icon__content\"><ng-content></ng-content></div>\n<div class=\"tedi-accordion-icon__fill\"></div>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { CardColorsDirective } from \"../card-colors.directive\";\nimport { CardPaddingDirective } from \"../card-padding.directive\";\n\n@Component({\n selector: \"tedi-card-content\",\n standalone: true,\n imports: [],\n templateUrl: \"./card-content.component.html\",\n styleUrl: \"./card-content.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-card-content]\": \"true\",\n \"[class.tedi-card-content--has-separator]\": \"hasSeparator() || timeline()\",\n \"[class.tedi-card-content--auto-width]\": \"autoWidth()\",\n \"[class.tedi-card-content--timeline]\": \"timeline()\",\n },\n hostDirectives: [\n {\n directive: CardColorsDirective,\n inputs: [\"background\", \"border\"],\n },\n {\n directive: CardPaddingDirective,\n inputs: [\"padding\"],\n },\n ],\n})\nexport class CardContentComponent {\n /**\n * Whether content block should have separator.\n * Inside card the separator is created under the content, inside card row the separator is created to the right of content.\n * @default false\n */\n hasSeparator = input(false, { transform: booleanAttribute });\n /**\n * Whether content block should take minimal space inside of row.\n * Sets flex-grow to 0.\n * @default false\n */\n autoWidth = input(false, { transform: booleanAttribute });\n /**\n * Creates a timeline line next to the content block.\n * @default false\n */\n timeline = input(false, { transform: booleanAttribute });\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { CardColors } from \"../../card/card-colors.directive\";\nimport { CardContentComponent } from \"../../card/card-content/card-content.component\";\nimport { AccordionItemComponent } from \"../accordion-item/accordion-item.component\";\n\n@Component({\n selector: \"tedi-accordion-item-content\",\n standalone: true,\n imports: [CardContentComponent],\n templateUrl: \"./accordion-item-content.component.html\",\n styleUrl: \"./accordion-item-content.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-accordion-item-content]\": \"true\",\n },\n})\nexport class AccordionItemContentComponent {\n background = input<CardColors>();\n\n accordionItem = inject(AccordionItemComponent);\n headerId = this.accordionItem.headerId;\n contentId = this.accordionItem.contentId;\n}\n","<tedi-card-content\n [background]=\"background()\"\n [id]=\"contentId()\"\n role=\"region\"\n [attr.aria-labelledby]=\"headerId()\"\n>\n <ng-content></ng-content>\n</tedi-card-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { CardPaddingDirective } from \"../card-padding.directive\";\nimport { CardColorsDirective } from \"../card-colors.directive\";\n\nexport type CardHeaderVariant =\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"brand\"\n | \"brand-dark\";\n\n@Component({\n selector: \"tedi-card-header, [tedi-card-header]\",\n standalone: true,\n imports: [],\n templateUrl: \"./card-header.component.html\",\n styleUrl: \"./card-header.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-card-header]\": \"true\",\n \"[class]\": \"modifierClasses()\",\n },\n hostDirectives: [\n {\n directive: CardColorsDirective,\n inputs: [\"background\"],\n },\n {\n directive: CardPaddingDirective,\n inputs: [\"padding\"],\n },\n ],\n})\nexport class CardHeaderComponent {\n /**\n * Variant of the card header.\n */\n variant = input<CardHeaderVariant>();\n\n modifierClasses = computed(() => {\n return `tedi-card-header--${this.variant()}`;\n });\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { AccordionItemComponent } from \"../accordion-item/accordion-item.component\";\nimport { CardColors } from \"../../card/card-colors.directive\";\nimport {\n CardHeaderComponent,\n CardHeaderVariant,\n} from \"../../card/card-header/card-header.component\";\nimport { IconColor, IconComponent, ButtonComponent } from \"@tedi-design-system/angular/tedi\";\n\nconst WHITE_ICON_VARIANTS = [\"brand\", \"brand-dark\"];\n\n@Component({\n selector: \"tedi-accordion-item-header\",\n standalone: true,\n imports: [CardHeaderComponent, IconComponent, ButtonComponent],\n templateUrl: \"./accordion-item-header.component.html\",\n styleUrl: \"./accordion-item-header.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-accordion-item-header-host]\": \"true\",\n },\n})\nexport class AccordionItemHeaderComponent {\n /**\n * Whether accordion header should have indicator arrow\n * @default false\n */\n indicator = input<boolean>(false);\n /**\n * Open button text. Visible if both openText and closeText are provided.\n */\n openText = input<string>();\n /**\n * Close button text. Visible if both openText and closeText are provided.\n */\n closeText = input<string>();\n /**\n * Accordion header variant\n */\n variant = input<CardHeaderVariant>();\n /**\n * Accordion header background\n */\n background = input<CardColors>();\n /**\n * Color of the indicator arrow\n */\n indicatorColor = input<IconColor>();\n\n accordionItem = inject(AccordionItemComponent);\n opened = this.accordionItem.opened;\n headerId = this.accordionItem.headerId;\n contentId = this.accordionItem.contentId;\n\n toggleButtonText = computed(() => {\n if (this.openText() && this.closeText()) {\n return this.opened() ? this.closeText() : this.openText();\n }\n return;\n });\n\n indicatorIconColor = computed(() => {\n if (this.indicatorColor()) {\n return this.indicatorColor()!;\n }\n return WHITE_ICON_VARIANTS.includes(this.variant() as CardHeaderVariant)\n ? \"white\"\n : \"brand\";\n });\n\n toggle() {\n this.accordionItem.toggle();\n }\n}\n","<button\n [id]=\"headerId()\"\n tedi-card-header\n [variant]=\"variant()\"\n [background]=\"background()\"\n class=\"tedi-accordion-item-header\"\n [class.tedi-accordion-item-header--opened]=\"opened()\"\n [attr.aria-expanded]=\"opened()\"\n [attr.aria-controls]=\"contentId()\"\n (click)=\"toggle()\"\n>\n <ng-content></ng-content>\n @if (indicator()) {\n <tedi-icon\n name=\"keyboard_arrow_down\"\n class=\"tedi-accordion-item-header__indicator\"\n [size]=\"18\"\n [color]=\"indicatorIconColor()\"\n />\n }\n @if (toggleButtonText()) {\n <span\n tedi-button\n variant=\"neutral\"\n class=\"tedi-accordion-item-header__toggle\"\n >\n {{ toggleButtonText() }}\n <tedi-icon\n name=\"keyboard_arrow_down\"\n class=\"tedi-accordion-item-header__indicator\"\n [size]=\"16\"\n color=\"brand\"\n />\n </span>\n }\n <ng-content select=\"[tedi-accordion-header-end]\"></ng-content>\n</button>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-card-row\",\n standalone: true,\n imports: [],\n templateUrl: \"./card-row.component.html\",\n styleUrl: \"./card-row.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-card-row]\": \"true\",\n \"[class.tedi-card-row--has-separator]\": \"hasSeparator()\",\n },\n})\nexport class CardRowComponent {\n /**\n * Whether row should have separator under it.\n * @default false\n */\n hasSeparator = input(false, { transform: booleanAttribute });\n}\n","<ng-content></ng-content>\n","import { computed, Directive, input } from \"@angular/core\";\n\nexport type ChoicegroupVariant = \"primary\" | \"secondary\";\n\n@Directive({\n standalone: true,\n host: {\n \"[class.tedi-choicegroup]\": \"true\",\n \"[class.tedi-choicegroup--stacked]\": \"spacing() === 0\",\n \"[class.tedi-choicegroup--plain]\": \"!hasIndicator()\",\n \"[class]\": \"modifierClasses()\",\n },\n})\nexport class ChoiceGroupDirective {\n /*\n * Variant of the cards in group.\n */\n variant = input<ChoicegroupVariant>(\"primary\");\n /*\n * Whether choicegroup card has indicator\n */\n hasIndicator = input<boolean>(true);\n /*\n * Spacing between radios. unit: px.\n * @default 4\n */\n spacing = input<number>(4);\n\n modifierClasses = computed(() => {\n return `tedi-choicegroup--${this.variant()}`;\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { CheckboxSize } from \"../checkbox/checkbox.component\";\nimport {\n ComponentInputs,\n LabelComponent,\n FeedbackTextComponent,\n} from \"@tedi-design-system/angular/tedi\";\nimport { generateUUID } from \"@tedi-design-system/angular/tedi\";\n\n@Component({\n standalone: true,\n selector: \"tedi-checkbox-group\",\n imports: [FeedbackTextComponent, LabelComponent],\n templateUrl: \"./checkbox-group.component.html\",\n styleUrl: \"./checkbox-group.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-checkbox-group]\": \"true\",\n \"[attr.role]\": \"'group'\",\n \"[attr.aria-labelledby]\": \"labelId()\",\n },\n})\nexport class CheckboxGroupComponent {\n /**\n * Checkbox group label.\n */\n label = input<string>();\n /*\n * Whether checkbox group is disabled\n */\n disabled = input<boolean>();\n /*\n * Whether checkbox group has error.\n */\n hasError = input<boolean>();\n /*\n * Size of the checkboxes in group.\n */\n size = input<CheckboxSize>();\n /*\n * Direction in which checkboxes flow.\n */\n direction = input<\"row\" | \"column\">(\"column\");\n /*\n * Spacing between checkboxes. unit: px.\n * @default 4\n */\n spacing = input<number>(4);\n /**\n * FeedbackText component inputs.\n */\n feedbackText = input<ComponentInputs<FeedbackTextComponent>>();\n\n labelId = computed(() => {\n if (this.label()) {\n return generateUUID();\n }\n return;\n });\n\n groupDisabled = computed(() => this.disabled());\n}\n","@if (label()) {\n <span tedi-label [id]=\"labelId()\">\n {{ label() }}\n </span>\n}\n<div\n class=\"tedi-checkbox-group__checkboxes\"\n [style.flex-direction]=\"direction()\"\n [style.gap]=\"spacing() + 'px'\"\n>\n <ng-content />\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n forwardRef,\n input,\n model,\n signal,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { ChoiceGroupDirective } from \"../../choicegroup/choicegroup.directive\";\nimport { LabelComponent, FeedbackTextComponent } from \"@tedi-design-system/angular/tedi\";\nimport { CheckboxGroupComponent } from \"../checkbox-group/checkbox-group.component\";\nimport { CheckboxComponent } from \"../checkbox/checkbox.component\";\n\n@Component({\n standalone: true,\n selector: \"tedi-checkbox-card-group\",\n imports: [FeedbackTextComponent, LabelComponent],\n templateUrl: \"./../checkbox-group/checkbox-group.component.html\",\n styleUrls: [\n \"./../../choicegroup/choicegroup.styles.scss\",\n \"./../checkbox-group/checkbox-group.component.scss\",\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxCardGroupComponent),\n multi: true,\n },\n {\n provide: CheckboxGroupComponent,\n useExisting: CheckboxCardGroupComponent,\n },\n ],\n hostDirectives: [\n {\n directive: ChoiceGroupDirective,\n inputs: [\"variant\", \"hasIndicator\", \"spacing\"],\n },\n ],\n})\nexport class CheckboxCardGroupComponent\n extends CheckboxGroupComponent\n implements ControlValueAccessor {\n /*\n * Direction in which checkboxes flow.\n */\n override direction = input<\"row\" | \"column\">(\"row\");\n /*\n * Value of card group. Do not use with controlled card group.\n */\n value = model<string[]>([]);\n\n checkboxes = contentChildren(\n forwardRef(() => CheckboxComponent),\n {\n descendants: true,\n },\n );\n private _controlDisabled = signal<boolean>(false);\n\n private _onChange: (val: string[]) => void = () => {};\n private _onTouched: (val: boolean) => void = () => {};\n\n override groupDisabled = computed(() => {\n return this.disabled() || this._controlDisabled();\n });\n\n writeValue(value: string[]): void {\n this.value.set(value);\n this.updateCheckboxesState();\n }\n registerOnChange(fn: (val: string[]) => void): void {\n this._onChange = fn;\n }\n registerOnTouched(fn: (val: boolean) => void): void {\n this._onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this._controlDisabled.set(isDisabled);\n }\n\n private updateCheckboxesState() {\n const value = this.value();\n this.checkboxes().forEach((checkbox) => {\n const checked = value?.includes(checkbox.value() as string);\n checkbox.checked.set(checked);\n });\n }\n\n onCheckboxChange(checked: boolean, value: string) {\n this.value.update((checkedItems) => {\n if (checked) {\n return [...checkedItems, value];\n } else {\n return checkedItems.filter((item) => item !== value);\n }\n });\n this._onChange(this.value());\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n OnInit,\n viewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n ComponentInputs,\n IconComponent,\n FeedbackTextComponent,\n} from \"@tedi-design-system/angular/tedi\";\nimport { CheckboxCardGroupComponent } from \"../checkbox-card-group/checkbox-card-group.component\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { CheckboxGroupComponent } from \"../checkbox-group/checkbox-group.component\";\nimport { generateUUID } from \"@tedi-design-system/angular/tedi\";\n\nexport type CheckboxSize = \"default\" | \"large\";\n\n@Component({\n standalone: true,\n selector: \"tedi-checkbox\",\n imports: [FeedbackTextComponent, IconComponent],\n templateUrl: \"./checkbox.component.html\",\n styleUrl: \"./checkbox.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n host: {\n \"[class.tedi-checkbox]\": \"true\",\n \"[class.tedi-checkbox--error]\": \"hasError() || cardGroup?.hasError()\",\n \"[class.tedi-checkbox--large]\": \"checkboxSize() === 'large'\",\n },\n})\nexport class CheckboxComponent implements ControlValueAccessor, OnInit {\n /*\n * unique id.\n */\n inputId = input.required<string>();\n /*\n * Whether checkbox is checked. Do not used with controlled checkboxes.\n */\n checked = model<boolean | null>(null);\n /*\n * Whether checkbox is indeterminate.\n */\n indeterminate = input<boolean>();\n /*\n * Checkbox value. For use in checkbox card group\n */\n value = input<string>();\n /*\n * Whether checkbox is disabled.\n */\n disabled = model<boolean>();\n /*\n * Size of the checkbox. Overwrites group size.\n */\n size = input<CheckboxSize>();\n /*\n * Whether checkbox has error.\n */\n hasError = input<boolean>();\n /**\n * FeedbackText component inputs.\n */\n feedbackText = input<ComponentInputs<FeedbackTextComponent>>();\n\n private _inputEl = viewChild.required<ElementRef<HTMLInputElement>>(\"input\");\n private checkboxGroup = inject(CheckboxGroupComponent, { optional: true });\n private checkboxCardGroup = inject(CheckboxCardGroupComponent, {\n optional: true,\n });\n\n private _onChange: (val: boolean) => void = () => {};\n _onTouched: () => void = () => {};\n\n feedbackTextId = computed(() => {\n if (this.feedbackText()) {\n return generateUUID();\n }\n return;\n });\n\n indicatorIcon = computed(() => {\n if (this.indeterminate()) {\n return \"remove\";\n }\n if (this.checked()) {\n return \"check\";\n }\n return;\n });\n\n checkboxSize = computed(() => {\n return this.size() ?? this.checkboxGroup?.size();\n });\n\n iconSize = computed(() => {\n return this.checkboxSize() === \"large\" ? 18 : 16;\n });\n\n checkboxDisabled = computed(() => {\n return this.disabled() || this.checkboxGroup?.groupDisabled();\n });\n\n focus() {\n this._inputEl().nativeElement.focus();\n }\n\n writeValue(value: boolean | null): void {\n this.checked.set(value);\n }\n\n registerOnChange(fn: (val: boolean) => void): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n onInputChange(event: Event) {\n const checked = (event.target as HTMLInputElement).checked;\n this._onChange(checked);\n this.checked.set(checked);\n this.checkboxCardGroup?.onCheckboxChange(checked, this.value()!);\n }\n\n ngOnInit() {\n if (this.checked()) {\n this._onChange(true);\n }\n }\n}\n","<div class=\"tedi-checkbox__input-area\">\n <input\n class=\"tedi-checkbox__input\"\n type=\"checkbox\"\n #input\n [id]=\"inputId()\"\n [checked]=\"checked()\"\n [disabled]=\"checkboxDisabled()\"\n [attr.aria-describedby]=\"feedbackTextId()\"\n [indeterminate]=\"indeterminate()\"\n (change)=\"onInputChange($event)\"\n (blur)=\"_onTouched()\"\n />\n <div class=\"tedi-checkbox__indicator\">\n @if (indicatorIcon(); as iconName) {\n <tedi-icon [name]=\"iconName\" color=\"white\" [size]=\"iconSize()\" />\n }\n </div>\n</div>\n<label [for]=\"inputId()\" class=\"tedi-checkbox__label\">\n <ng-content></ng-content>\n</label>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [id]=\"feedbackTextId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-form-field\",\n standalone: true,\n template: \"<ng-content />\",\n styleUrl: \"./form-field.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-form-field]\": \"true\",\n },\n})\nexport class FormFieldComponent {}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\nexport type InputSize = \"small\" | \"default\";\nexport type InputState = \"valid\" | \"error\" | \"default\";\n\n@Component({\n selector: \"[tedi-input]\",\n standalone: true,\n template: \"<ng-content />\",\n styleUrl: \"./input.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-input]\": \"true\",\n \"[class]\": \"modifierClasses()\",\n },\n})\nexport class InputComponent {\n /**\n * Size of the input.\n * @default default\n */\n size = input<InputSize>(\"default\");\n\n /**\n * State of the input.\n * @default default\n */\n state = input<InputState>(\"default\");\n\n modifierClasses = computed(() => {\n const modifiers = [];\n if (this.size()) modifiers.push(`tedi-input--${this.size()}`);\n if (this.state()) modifiers.push(`tedi-input--${this.state()}`);\n return modifiers.join(\" \");\n });\n}\n","import { Component, input, ViewEncapsulation } from \"@angular/core\";\nimport { ComponentInputs, LabelComponent, FeedbackTextComponent } from \"@tedi-design-system/angular/tedi\";\n\n/**\n * InputGroupComponent is a component that allows you to group multiple input elements together.\n *\n *\n * Use prefix-slot, suffix-slot and unnamed slots to add input elements to the group.\n * @example\n * <tedi-input-group>\n * <tedi-button prefix-slot>Prefix</tedi-button>\n * <tedi-button suffix-slot>Suffix</tedi-button>\n * <input></input>\n * </tedi-input-group>\n *\n */\n@Component({\n selector: \"tedi-input-group\",\n standalone: true,\n templateUrl: \"./input-group.component.html\",\n styleUrls: [\"./input-group.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n imports: [FeedbackTextComponent, LabelComponent],\n})\nexport class InputGroupComponent {\n /**\n * User-visible label for the input group, visible above the input, should describe the purpose of the input group.\n */\n readonly label = input<string>();\n\n /**\n * ID of the input group's label, used to associate the label with the input group's custom input.\n */\n readonly labelID = input<string>();\n\n /**\n * Disabled state of the input group, causes the input group to be grayed out.\n * Does not affect children's disabled state.\n * @default false\n */\n readonly disabled = input<boolean>(false);\n\n /**\n * FeedbackText component inputs, displayed below the input group.\n */\n readonly feedback = input<ComponentInputs<FeedbackTextComponent>>();\n}\n","<div class=\"tedi-input-group\">\n @if (label()) {\n <label tedi-label [for]=\"labelID()\">\n <div class=\"tedi-input-group__label\">{{ label() }}</div>\n </label>\n }\n\n <div\n [class]=\"{\n 'tedi-input-group__container': true,\n 'tedi-input-group__container--disabled': disabled(),\n }\"\n >\n <div class=\"tedi-input-group__prefix\">\n <ng-content select=\"[prefix-slot]\" />\n </div>\n <div class=\"tedi-input-group__center\">\n <ng-content />\n </div>\n <div class=\"tedi-input-group__suffix\">\n <ng-content select=\"[suffix-slot]\" />\n </div>\n </div>\n @if (feedback(); as feedbackResult) {\n <tedi-feedback-text\n [text]=\"feedbackResult.text\"\n [type]=\"feedbackResult.type\"\n [position]=\"feedbackResult.position\"\n />\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n forwardRef,\n input,\n output,\n signal,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { RadioValue } from \"../radio/radio.component\";\nimport { ComponentInputs, LabelComponent, FeedbackTextComponent } from \"@tedi-design-system/angular/tedi\";\n\nexport type RadioGroupSize = \"default\" | \"large\";\n\n@Component({\n selector: \"tedi-radio-group\",\n standalone: true,\n imports: [FeedbackTextComponent, LabelComponent],\n templateUrl: \"./radio-group.component.html\",\n styleUrl: \"./radio-group.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n host: {\n \"[class.tedi-radio-group]\": \"true\",\n \"[attr.role]\": \"'radiogroup'\",\n },\n})\nexport class RadioGroupComponent implements ControlValueAccessor {\n /*\n * Radio group name\n */\n name = input.required<string>();\n /*\n * Radio group id.\n */\n id = input.required<string>();\n /**\n * Radio group label.\n */\n label = input<string>();\n /*\n * Whether radio group is disabled. Do not use with controlled radios.\n */\n disabled = input<boolean>();\n /*\n * Whether radio group has error.\n */\n hasError = input<boolean>();\n /*\n * Size of the radios radios in group.\n */\n size = input<RadioGroupSize>(\"default\");\n /*\n * Direction in which radios flow.\n */\n direction = input<\"row\" | \"column\">(\"column\");\n /*\n * Spacing between radios. unit: px.\n * @default 4\n */\n spacing = input<number>(4);\n /**\n * FeedbackText component inputs.\n */\n feedbackText = input<ComponentInputs<FeedbackTextComponent>>();\n\n /*\n * Emits selected radio value on change.\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n change = output<RadioValue>();\n\n private _value = signal<string | null>(null);\n private _controlDisabled = signal<boolean>(false);\n\n groupDisabled = computed(() => {\n return this.disabled() || this._controlDisabled();\n });\n groupValue = this._value.asReadonly();\n\n private _onChange: (val: RadioValue) => void = () => {};\n private _onTouched: (val: boolean) => void = () => {};\n\n writeValue(value: RadioValue | null): void {\n this._value.set(value);\n }\n registerOnChange(fn: (val: RadioValue) => void): void {\n this._onChange = fn;\n }\n registerOnTouched(fn: (val: boolean) => void): void {\n this._onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this._controlDisabled.set(isDisabled);\n }\n\n selectRadio(value: string) {\n this._onChange(value);\n this.change.emit(value);\n }\n}\n","@if (label()) {\n <label tedi-label [for]=\"id()\">\n {{ label() }}\n </label>\n}\n<div\n class=\"tedi-radio-group__radios\"\n [style.flex-direction]=\"direction()\"\n [style.gap]=\"spacing() + 'px'\"\n>\n <ng-content />\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n viewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { RadioGroupComponent } from \"../radio-group/radio-group.component\";\nimport {\n ComponentInputs,\n FeedbackTextComponent,\n} from \"@tedi-design-system/angular/tedi\";\nimport { generateUUID } from \"@tedi-design-system/angular/tedi\";\n\nexport type RadioValue = string;\n\n@Component({\n selector: \"tedi-radio\",\n imports: [FeedbackTextComponent],\n templateUrl: \"./radio.component.html\",\n styleUrl: \"./radio.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-radio]\": \"true\",\n \"[class.tedi-radio--error]\": \"hasError() || radioGroup?.hasError()\",\n \"[class.tedi-radio--large]\": \"radioGroup?.size() === 'large'\",\n },\n})\nexport class RadioComponent implements OnInit {\n /*\n * unique id.\n */\n inputId = input.required<string>();\n /*\n * Whether radio is checked. Do not used with controlled radios.\n */\n checked = model<boolean>();\n /*\n * Radio value.\n */\n value = input.required<string>();\n /*\n * Whether radio is disabled.\n */\n disabled = input<boolean>();\n /*\n * Whether radio has error.\n */\n hasError = input<boolean>();\n /**\n * FeedbackText component inputs.\n */\n feedbackText = input<ComponentInputs<FeedbackTextComponent>>();\n\n private _inputEl = viewChild.required<ElementRef<HTMLInputElement>>(\"input\");\n private radioGroup = inject(RadioGroupComponent, { optional: true });\n\n inputDisabled = computed(() => {\n return this.disabled() || this.radioGroup?.groupDisabled();\n });\n\n inputName = computed(() => {\n return this.radioGroup?.name();\n });\n\n inputChecked = computed(() => {\n return this.value() === this.radioGroup?.groupValue() || this.checked();\n });\n\n feedbackTextId = computed(() => {\n if (this.feedbackText()) {\n return generateUUID();\n }\n return;\n });\n\n focus() {\n this._inputEl().nativeElement.focus();\n }\n\n onInputChange(event: Event) {\n event.stopPropagation();\n this.radioGroup?.selectRadio(this.value());\n }\n\n ngOnInit() {\n if (this.checked()) {\n this.radioGroup?.selectRadio(this.value());\n }\n }\n}\n","<div class=\"tedi-radio__input-area\">\n <input\n class=\"tedi-radio__input\"\n type=\"radio\"\n #input\n [id]=\"inputId()\"\n [checked]=\"inputChecked()\"\n [disabled]=\"inputDisabled()\"\n [attr.name]=\"inputName()\"\n [attr.value]=\"value()\"\n [attr.aria-describedby]=\"feedbackTextId()\"\n (change)=\"onInputChange($event)\"\n />\n <div class=\"tedi-radio__indicator\"></div>\n</div>\n<label [for]=\"inputId()\" class=\"tedi-radio__label\">\n <ng-content></ng-content>\n</label>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [id]=\"feedbackTextId()\"\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { ChoiceGroupDirective } from \"../../choicegroup/choicegroup.directive\";\nimport { LabelComponent, FeedbackTextComponent } from \"@tedi-design-system/angular/tedi\";\nimport { RadioGroupComponent } from \"../radio-group/radio-group.component\";\n@Component({\n standalone: true,\n selector: \"tedi-radio-card-group\",\n imports: [FeedbackTextComponent, LabelComponent],\n templateUrl: \"./../radio-group/radio-group.component.html\",\n styleUrls: [\n \"./../radio-group/radio-group.component.scss\",\n \"./../../choicegroup/choicegroup.styles.scss\",\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioCardGroupComponent),\n multi: true,\n },\n // Necessary for DI in RadioComponent\n {\n provide: RadioGroupComponent,\n useExisting: RadioCardGroupComponent,\n },\n ],\n hostDirectives: [\n {\n directive: ChoiceGroupDirective,\n inputs: [\"variant\", \"hasIndicator\", \"spacing\"],\n },\n ],\n})\nexport class RadioCardGroupComponent extends RadioGroupComponent {\n /*\n * Direction in which radios flow.\n */\n override direction = input<\"row\" | \"column\">(\"row\");\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-select-option\",\n imports: [],\n template: \"<ng-template><ng-content /></ng-template>\",\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectOptionComponent {\n /**\n * Value of the option\n */\n value = input.required<string>();\n /**\n * Label of the option\n */\n label = input.required<string>();\n /**\n * Whether the option is disabled\n */\n disabled = input(false);\n /**\n * Group the option belongs to\n * This is used for grouping options in the dropdown.\n * If not provided, the option will not be grouped.\n */\n group = input<string | null>(null);\n\n templateRef = viewChild(TemplateRef);\n}\n","import { computed, Directive, inject } from \"@angular/core\";\nimport { DropdownComponent } from \"../dropdown.component\";\nimport { CdkOverlayOrigin } from \"@angular/cdk/overlay\";\n\n@Directive({\n selector: \"[tedi-dropdown-trigger]\",\n host: {\n \"[attr.aria-has-popup]\": \"ariaAttributes().hasPopup\",\n \"[attr.aria-expanded]\": \"ariaAttributes().expanded\",\n \"[attr.aria-controls]\": \"ariaAttributes().controls\",\n \"(click)\": \"onClick()\",\n },\n hostDirectives: [CdkOverlayOrigin],\n})\nexport class DropdownTriggerDirective {\n private dropdownContext = inject(DropdownComponent);\n\n readonly overlayOrigin = inject(CdkOverlayOrigin, { self: true });\n\n ariaAttributes = computed(() => {\n if (!this.dropdownContext.dropdownRole()) return {};\n return {\n hasPopup: this.dropdownContext.dropdownRole(),\n expanded: this.dropdownContext.opened() ? \"true\" : \"false\",\n controls: this.dropdownContext.opened()\n ? this.dropdownContext.dropdownId()\n : undefined,\n };\n });\n\n onClick() {\n this.dropdownContext.toggle();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n forwardRef,\n inject,\n input,\n model,\n ViewEncapsulation,\n Injector,\n OnInit,\n} from \"@angular/core\";\nimport { DropdownTriggerDirective } from \"./dropdown-trigger/dropdown-trigger.directive\";\nimport { OverlayModule } from \"@angular/cdk/overlay\";\nimport { CardComponent, CardContentComponent } from \"../../cards\";\nimport { DropdownItemComponent } from \"../dropdown-item/dropdown-item.component\";\nimport {\n BreakpointService,\n ClosingButtonComponent,\n} from \"@tedi-design-system/angular/tedi\";\nimport { FocusKeyManager } from \"@angular/cdk/a11y\";\n\n@Component({\n selector: \"tedi-dropdown\",\n imports: [\n OverlayModule,\n CardComponent,\n CardContentComponent,\n ClosingButtonComponent,\n ],\n templateUrl: \"./dropdown.component.html\",\n styleUrl: \"./dropdown.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownComponent implements OnInit {\n private injector = inject(Injector);\n dropdownId = input.required<string>();\n dropdownRole = input<\"menu\" | \"listbox\">();\n opened = model<boolean>(false);\n\n private triggerDirective = contentChild.required(DropdownTriggerDirective);\n private dropdownItems = contentChildren<DropdownItemComponent>(\n forwardRef(() => DropdownItemComponent),\n { descendants: true },\n );\n\n isMobile = inject(BreakpointService).isBelowBreakpoint(\"sm\");\n\n private keyManager?: FocusKeyManager<DropdownItemComponent>;\n\n overlayOrigin = computed(() => {\n return this.triggerDirective().overlayOrigin;\n });\n\n toggle() {\n this.opened.update((wasOpened) => !wasOpened);\n }\n\n close() {\n this.opened.set(false);\n }\n\n onKeyDown(event: KeyboardEvent) {\n this.keyManager?.onKeydown(event);\n }\n\n ngOnInit() {\n this.keyManager = new FocusKeyManager(\n this.dropdownItems,\n this.injector,\n ).withWrap();\n }\n}\n","<ng-content select=\"[tedi-dropdown-trigger]\" />\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"overlayOrigin()\"\n [cdkConnectedOverlayOpen]=\"opened()\"\n [cdkConnectedOverlayOffsetY]=\"4\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayViewportMargin]=\"16\"\n cdkConnectedOverlayPanelClass=\"tedi-dropdown__overlay-pane\"\n (overlayKeydown)=\"onKeyDown($event)\"\n (overlayOutsideClick)=\"close()\"\n>\n <tedi-card\n padding=\"none\"\n class=\"tedi-dropdown__card\"\n [attr.role]=\"dropdownRole()\"\n [attr.id]=\"dropdownId()\"\n >\n @if (isMobile()) {\n <tedi-card-content hasSeparator autoWidth padding=\"xs\">\n <button\n tedi-closing-button\n (click)=\"close()\"\n size=\"small\"\n class=\"tedi-dropdown__close-button\"\n ></button>\n </tedi-card-content>\n }\n <tedi-card-content>\n <ng-content />\n </tedi-card-content>\n </tedi-card>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { DropdownComponent } from \"../dropdown/dropdown.component\";\nimport { FocusableOption } from \"@angular/cdk/a11y\";\nimport {} from \"@angular/cdk/menu\";\n\nconst itemRole = {\n menu: \"menuitem\",\n listbox: \"option\",\n};\n\n@Component({\n selector: \"[tedi-dropdown-item]\",\n template: \"<ng-content />\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: \"./dropdown-item.component.scss\",\n host: {\n \"[class.tedi-dropdown-item]\": \"true\",\n \"[class.tedi-dropdown-item--active]\": \"this.selected()\",\n \"[class.tedi-dropdown-item--disabled]\": \"this.disabledInput()\",\n \"[attr.role]\": \"ariaAttributes().role\",\n \"[attr.aria-disabled]\": \"ariaAttributes().disabled\",\n \"[attr.aria-selected]\": \"ariaAttributes().selected\",\n \"[attr.tabindex]\": \"ariaAttributes().tabIndex\",\n \"(click)\": \"selectItem()\",\n \"(keydown)\": \"onKeyDown($event)\",\n },\n})\nexport class DropdownItemComponent implements FocusableOption {\n /**\n * Applies the selected style to the dropdown item.\n */\n selected = input<boolean>(false);\n /**\n * Applies the disabled style to the dropdown item.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n disabledInput = input<boolean>(false, { alias: \"disabled\" });\n disabled?: boolean; // for cdk/a11y keymanager\n itemSelected = output<void>();\n\n private dropdownContext = inject(DropdownComponent, { optional: true });\n\n ariaAttributes = computed(() => {\n const dropdownRole = this.dropdownContext?.dropdownRole();\n if (!dropdownRole) return {};\n return {\n role: itemRole[dropdownRole],\n disabled: String(this.disabledInput()),\n selected:\n dropdownRole === \"listbox\" ? String(this.selected()) : undefined,\n tabIndex: 0,\n };\n });\n\n focus() {\n this.element.nativeElement.focus();\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.key === \"Enter\" || event.key === \" \") {\n if (this.element.nativeElement.nodeName === \"BUTTON\") {\n event.preventDefault();\n }\n if (\n this.element.nativeElement.nodeName === \"A\" &&\n event.key === \"Enter\"\n ) {\n event.preventDefault();\n }\n this.selectItem();\n }\n }\n\n selectItem() {\n this.dropdownContext?.close();\n this.itemSelected.emit();\n }\n\n constructor(private element: ElementRef<HTMLElement>) {\n effect(() => {\n this.disabled = this.disabledInput();\n });\n }\n}\n","import {\n Component,\n computed,\n inject,\n model,\n OnInit,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { DIALOG_DATA, DialogModule, DialogRef } from \"@angular/cdk/dialog\";\nimport { ModalHeaderComponent } from \"./header/modal-header.component\";\nimport { ModalFooterComponent } from \"./footer/modal-footer.component\";\nimport { ComponentInputs } from \"@tedi-design-system/angular/tedi\";\nimport { CdkScrollable } from \"@angular/cdk/scrolling\";\n\nexport type DialogData = ComponentInputs<\n ModalHeaderComponent & ModalFooterComponent\n> & {\n maxWidth?: ModalBreakpoint;\n variant?: \"default\" | \"small\";\n};\n\nexport const modalBreakpoints = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"] as const;\nexport type ModalBreakpoint = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\n@Component({\n selector: \"tedi-modal\",\n templateUrl: \"./modal.component.html\",\n styleUrl: \"./modal.component.scss\",\n imports: [DialogModule, CdkScrollable],\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"hostClasses()\",\n },\n})\nexport class ModalComponent implements OnInit {\n readonly maxWidth = model<ModalBreakpoint>(\"sm\");\n readonly variant = model<\"default\" | \"small\">(\"default\");\n\n readonly dialogRef = inject(DialogRef, { optional: true });\n readonly dialogData = inject(DIALOG_DATA, {\n optional: true,\n });\n\n // host classes\n readonly hostClasses = computed(() => {\n const classes = [\"tedi-modal\"];\n\n if (this.variant() === \"small\") {\n classes.push(\"tedi-modal--padding-small\");\n }\n\n for (const breakpoint of modalBreakpoints) {\n if (this.maxWidth() === breakpoint) {\n classes.push(`tedi-modal--width-${breakpoint}`);\n }\n }\n return classes.join(\" \");\n });\n\n ngOnInit(): void {\n const data: DialogData = this.dialogData;\n this.dialogRef?.addPanelClass(\"tedi-modal-panel\");\n\n if (!data) return;\n\n if (data.maxWidth) {\n this.maxWidth.set(data.maxWidth);\n }\n if (data.variant) {\n this.variant.set(data.variant);\n }\n }\n}\n","<div class=\"tedi-modal__container\">\n <ng-content select=\"tedi-modal-header\" />\n <div class=\"tedi-modal__content\" cdkScrollable>\n <ng-content />\n </div>\n\n <ng-content select=\"tedi-modal-footer\" />\n</div>\n","import { NgStyle } from \"@angular/common\";\nimport { Component, inject, model, OnInit } from \"@angular/core\";\nimport {\n ButtonComponent,\n ButtonSize,\n ButtonVariant,\n IconComponent,\n} from \"@tedi-design-system/angular/tedi\";\nimport { DialogData } from \"../modal.component\";\nimport { DIALOG_DATA } from \"@angular/cdk/dialog\";\n\nexport interface ModalFooterButton {\n label: string;\n disabled?: boolean;\n variant?: ButtonVariant;\n size?: ButtonSize;\n style?: Record<string, unknown>;\n icon?: string;\n iconPosition?: ModalIconPosition;\n action: () => void;\n}\n\nexport type ModalIconPosition = \"start\" | \"end\";\n\n@Component({\n selector: \"tedi-modal-footer\",\n templateUrl: \"./modal-footer.component.html\",\n styleUrl: \"./modal-footer.component.scss\",\n imports: [ButtonComponent, IconComponent, NgStyle],\n})\nexport class ModalFooterComponent implements OnInit {\n align = model<string>(\"flex-end\");\n buttons = model<ModalFooterButton[]>();\n\n readonly dialogData = inject(DIALOG_DATA, {\n optional: true,\n });\n\n ngOnInit(): void {\n const data: DialogData = this.dialogData;\n\n if (!data) return;\n\n const { buttons, align: alignButtons } = data;\n if (buttons) {\n this.buttons.set(buttons);\n }\n if (alignButtons) {\n this.align.set(alignButtons);\n }\n }\n}\n","<div class=\"tedi-modal-footer\" [style.justify-content]=\"align()\">\n <ng-content>\n @for (button of buttons(); track button.label) {\n <button\n tedi-button\n [size]=\"button.size || 'small'\"\n [variant]=\"button.variant || 'secondary'\"\n [disabled]=\"button.disabled\"\n [ngStyle]=\"button.style\"\n (click)=\"button.action()\"\n >\n @if (button.icon && button.iconPosition == \"start\") {\n <tedi-icon [name]=\"button.icon\" />\n }\n {{ button.label }}\n @if (button.icon && button.iconPosition == \"end\") {\n <tedi-icon [name]=\"button.icon\" />\n }\n </button>\n }\n </ng-content>\n</div>\n","import { DIALOG_DATA, DialogRef } from \"@angular/cdk/dialog\";\nimport { Component, inject, model, OnInit } from \"@angular/core\";\nimport { DialogData } from \"../modal.component\";\nimport {\n FeedbackTextComponent,\n TextComponent,\n ClosingButtonComponent,\n ComponentInputs,\n} from \"@tedi-design-system/angular/tedi\";\n\n@Component({\n selector: \"tedi-modal-header\",\n templateUrl: \"./modal-header.component.html\",\n styleUrl: \"./modal-header.component.scss\",\n imports: [FeedbackTextComponent, ClosingButtonComponent, TextComponent],\n})\nexport class ModalHeaderComponent implements OnInit {\n title = model(\"Title\");\n feedback = model<ComponentInputs<FeedbackTextComponent>>();\n closeButton = model(true);\n\n private readonly dialogRef = inject(DialogRef, { optional: true });\n readonly dialogData = inject(DIALOG_DATA, {\n optional: true,\n });\n\n public closeModal(): void {\n this.dialogRef?.close();\n }\n\n ngOnInit(): void {\n const data: DialogData = this.dialogData;\n if (!data) return;\n\n const { title, feedback, closeButton } = data;\n\n if (title) {\n this.title.set(title);\n }\n\n if (feedback) {\n this.feedback.set({\n ...feedback,\n });\n }\n\n if (typeof closeButton === \"boolean\") {\n this.closeButton.set(data.closeButton);\n }\n }\n}\n","<div class=\"tedi-modal-header\">\n <div class=\"tedi-modal-header__title\">\n <ng-content>\n <h1 tedi-text modifiers=\"h3\">\n {{ title() }}\n </h1>\n </ng-content>\n\n <ng-content select=\"[header-exit-button]\">\n @if (closeButton()) {\n <button\n tedi-closing-button\n variant=\"neutral\"\n (click)=\"closeModal()\"\n ></button>\n }\n </ng-content>\n </div>\n\n @if (feedback()) {\n <tedi-feedback-text\n [text]=\"feedback()!.text\"\n [type]=\"feedback()!.type\"\n [position]=\"feedback()!.position\"\n />\n }\n</div>\n","import { CdkOverlayOrigin, OverlayModule } from \"@angular/cdk/overlay\";\nimport { CdkListbox, CdkListboxModule } from \"@angular/cdk/listbox\";\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n ElementRef,\n HostListener,\n inject,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n forwardRef,\n computed,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport {\n InputComponent,\n InputSize,\n InputState,\n} from \"../input/input.component\";\nimport { DropdownItemComponent } from \"../../../components/overlay\";\nimport { SelectOptionComponent } from \"./select-option.component\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n ClosingButtonComponent,\n ComponentInputs,\n FeedbackTextComponent,\n IconComponent,\n LabelComponent,\n TediTranslationPipe,\n TextComponent,\n} from \"@tedi-design-system/angular/tedi\";\nimport { CardComponent, CardContentComponent } from \"../../../components/cards\";\n\n@Component({\n selector: \"tedi-select\",\n imports: [\n CommonModule,\n OverlayModule,\n CdkListboxModule,\n InputComponent,\n CardComponent,\n CardContentComponent,\n DropdownItemComponent,\n ClosingButtonComponent,\n IconComponent,\n LabelComponent,\n FeedbackTextComponent,\n TextComponent,\n TediTranslationPipe,\n ],\n templateUrl: \"./select.component.html\",\n styleUrl: \"./select.component.scss\",\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: \"tedi-select\",\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n ],\n})\nexport class SelectComponent\n implements AfterContentChecked, ControlValueAccessor\n{\n /**\n * The id of the select input (for label association).\n * @default \"\"\n */\n inputId = input.required<string>();\n /**\n * The label for the select input.\n * @default \"\"\n */\n label = input<string>();\n /**\n * Should show label as required?\n * @default false\n */\n required = input<boolean>(false);\n /**\n * The placeholder text to display when no option is selected.\n * @default \"\"\n */\n placeholder = input<string>(\"\");\n /**\n * The state of the input.\n * @default \"default\"\n */\n state = input<InputState>(\"default\");\n /**\n * The size of the input.\n * @default \"default\"\n */\n size = input<InputSize>(\"default\");\n /**\n * Whether the clear button will be shown when an option is selected.\n * @default false\n */\n clearable = input<boolean>(true);\n feedbackText = input<ComponentInputs<FeedbackTextComponent>>();\n\n isOpen = signal(false);\n selectedOptions = signal<readonly string[]>([]);\n listboxRef = viewChild(CdkListbox, { read: ElementRef });\n triggerRef = viewChild(CdkOverlayOrigin, { read: ElementRef });\n hostRef = inject(ElementRef);\n options = contentChildren(SelectOptionComponent);\n dropdownWidth = signal(0);\n disabled = signal(false);\n\n optionGroups = computed(() => {\n const groups: { label: string; options: SelectOptionComponent[] }[] = [];\n this.options().forEach((option) => {\n const group = groups.find((g) => g.label === option.group());\n if (group) {\n group.options.push(option);\n } else {\n groups.push({ label: option.group() ?? \"\", options: [option] });\n }\n });\n return groups;\n });\n\n ngAfterContentChecked(): void {\n this.setDropdownWidth();\n }\n\n @HostListener(\"window:resize\")\n onWindowResize() {\n this.setDropdownWidth();\n }\n\n toggleIsOpen(value?: boolean): void {\n if (this.disabled()) return;\n\n if (value === undefined) {\n this.isOpen.update((previousValue) => !previousValue);\n } else if (value === false) {\n this.isOpen.set(value);\n this.focusTrigger();\n }\n }\n\n handleValueChange(event: { value: readonly string[] }): void {\n const selected = event.value[0] ?? null;\n this.selectedOptions.set(selected ? [selected] : []);\n this.onChange(selected);\n this.onTouched();\n this.toggleIsOpen(false);\n }\n\n clear(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.selectedOptions.set([]);\n this.onChange(null);\n this.onTouched();\n }\n\n focusListboxWhenVisible = effect(() => {\n if (this.listboxRef()) this.listboxRef()?.nativeElement.focus();\n });\n\n focusTrigger(): void {\n this.triggerRef()?.nativeElement.focus();\n }\n\n isOptionSelected(option: string): boolean {\n return this.selectedOptions().includes(option);\n }\n\n selectedLabels = computed(() => {\n return this.options()\n .filter((option) => this.isOptionSelected(option.value()))\n .map((option) => option.label());\n });\n\n private setDropdownWidth(): void {\n const computedWidth =\n this.hostRef?.nativeElement?.getBoundingClientRect()?.width ?? 0;\n this.dropdownWidth.set(computedWidth);\n }\n\n // ControlValueAccessor implementation\n onChange: (value: string | null) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: string): void {\n this.selectedOptions.set(value ? [value] : []);\n }\n\n registerOnChange(fn: (value: string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","@let listboxId = inputId() + \"-listbox\";\n@let labelId = inputId() + \"-label\";\n\n@if (label()) {\n <label\n [id]=\"labelId\"\n tedi-label\n [for]=\"inputId()\"\n [required]=\"required()\"\n [size]=\"size()\"\n >\n {{ label() }}\n </label>\n}\n<div\n [id]=\"inputId()\"\n class=\"tedi-select__trigger\"\n [class.tedi-input--disabled]=\"disabled()\"\n tedi-input\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"listboxId\"\n [attr.aria-labelledby]=\"labelId\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [state]=\"state()\"\n [size]=\"size()\"\n (click)=\"toggleIsOpen()\"\n (keydown.enter)=\"toggleIsOpen()\"\n (keydown.space)=\"$event.preventDefault(); toggleIsOpen()\"\n (keydown.arrowdown)=\"$event.preventDefault(); toggleIsOpen()\"\n (blur)=\"onTouched()\"\n>\n <span class=\"tedi-select__label\">\n @if (selectedLabels().length) {\n {{ selectedLabels() }}\n } @else {\n <span class=\"tedi-select__label--placeholder\">\n {{ placeholder() }}\n </span>\n }\n </span>\n\n @if (clearable() && selectedOptions().length) {\n <button\n class=\"tedi-select__clear\"\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n [iconSize]=\"18\"\n title=\"Clear\"\n (click)=\"clear($event)\"\n ></button>\n }\n\n <tedi-icon class=\"tedi-select__arrow\" name=\"arrow_drop_down\" />\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"toggleIsOpen(false)\"\n (detach)=\"toggleIsOpen(false)\"\n>\n <tedi-card\n class=\"tedi-select__dropdown\"\n spacing=\"none\"\n [style.width.px]=\"dropdownWidth()\"\n >\n <tedi-card-content>\n <ul\n [id]=\"listboxId\"\n class=\"tedi-select__options\"\n cdkListbox\n cdkListboxUseActiveDescendant\n [cdkListboxValue]=\"selectedOptions()\"\n (cdkListboxValueChange)=\"handleValueChange($event)\"\n >\n @if (options().length) {\n @for (group of optionGroups(); track $index) {\n @if (group.label.length > 0) {\n <li class=\"tedi-select__group-name\" role=\"presentation\">\n <span tedi-text color=\"tertiary\">\n {{ group.label }}\n </span>\n </li>\n }\n\n @for (option of group.options; track option.value()) {\n <li\n tedi-dropdown-item\n [selected]=\"isOptionSelected(option.value())\"\n [cdkOption]=\"option.value()\"\n [cdkOptionDisabled]=\"option.disabled()\"\n [disabled]=\"option.disabled()\"\n >\n @if (option.templateRef(); as optionNgContent) {\n <div class=\"tedi-select__dropdown-item--custom-content\">\n <ng-container [ngTemplateOutlet]=\"optionNgContent\" />\n </div>\n <span class=\"tedi-select__dropdown-item--label\">\n {{ option.label() }}\n </span>\n }\n </li>\n }\n }\n } @else {\n <li tedi-dropdown-item class=\"tedi-select__no-options\">\n {{ \"select.no-options\" | tediTranslate }}\n </li>\n }\n </ul>\n </tedi-card-content>\n </tedi-card>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n output,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n IconComponent,\n SpinnerComponent,\n TediTranslationPipe,\n} from \"@tedi-design-system/angular/tedi\";\n\nexport type TagType = \"primary\" | \"secondary\" | \"danger\";\n\n@Component({\n selector: \"tedi-tag\",\n imports: [SpinnerComponent, IconComponent, TediTranslationPipe],\n templateUrl: \"./tag.component.html\",\n styleUrl: \"./tag.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-tag]\": \"true\",\n \"[class.tedi-tag--loading]\": \"loading()\",\n \"[class.tedi-tag--closable]\": \"closable()\",\n \"[class]\": \"classes()\",\n },\n})\nexport class TagComponent {\n /**\n * Whether the tag is in loading state.\n * When true, a spinner will be displayed inside the tag.\n * @default false\n */\n loading = input(false);\n\n /**\n * Whether the tag can be closed.\n * When true, a close button will be displayed that emits the 'closed' event when clicked.\n * @default false\n */\n closable = input(false);\n\n /**\n * The visual style of the tag.\n * Possible values: 'primary', 'secondary', 'danger'\n * @default \"primary\"\n */\n type = input<TagType>(\"primary\");\n\n /**\n * Event emitted when the close button is clicked.\n * Only relevant when closable is true.\n */\n closed = output<Event>();\n\n classes = computed(() => {\n const classList = [];\n if (this.type()) {\n classList.push(`tedi-tag--${this.type()}`);\n }\n return classList.join(\" \");\n });\n\n handleClose(event: Event) {\n this.closed.emit(event);\n }\n}\n","@if (type() === \"danger\") {\n <span class=\"tedi-tag__icon-wrapper\">\n <tedi-icon name=\"error\" color=\"danger\" [size]=\"16\" />\n </span>\n}\n\n<span class=\"tedi-tag__content\">\n <ng-content />\n</span>\n\n@if (loading()) {\n <span class=\"tedi-tag__spinner-wrapper\">\n <tedi-spinner [size]=\"10\" />\n </span>\n} @else if (closable()) {\n <!-- TODO: Not sure about the aria-label and title here. Should they come from input and be translatable? -->\n <button\n type=\"button\"\n class=\"tedi-tag__closing-button\"\n [attr.aria-label]=\"'remove' | tediTranslate\"\n [title]=\"'remove' | tediTranslate\"\n (click)=\"handleClose($event)\"\n >\n <tedi-icon name=\"close\" [size]=\"18\" />\n </button>\n}\n","import { Component, computed, input, ViewEncapsulation } from \"@angular/core\";\nimport { IconColor, IconComponent } from \"@tedi-design-system/angular/tedi\";\n\n// StatusBadgeColor, StatusBadgeVariant, StatusBadgeSize, StatusBadgeStatus are identical to libs/react-components/src/tedi/components/tags/status-badge/status-badge.tsx,\n// redo to use shared constants when possible\n\nexport type StatusBadgeColor =\n | \"neutral\"\n | \"brand\"\n | \"accent\"\n | \"success\"\n | \"danger\"\n | \"warning\"\n | \"transparent\";\nexport type StatusBadgeVariant = \"filled\" | \"filled-bordered\" | \"bordered\";\nexport type StatusBadgeSize = \"default\" | \"large\";\nexport type StatusBadgeStatus =\n | \"danger\"\n | \"success\"\n | \"warning\"\n | \"inactive\"\n | \"none\";\n\n@Component({\n selector: \"[tedi-status-badge]\",\n templateUrl: \"./status-badge.component.html\",\n styleUrl: \"./status-badge.component.scss\",\n imports: [IconComponent],\n encapsulation: ViewEncapsulation.None,\n host: {\n \"[class]\": \"classes()\",\n \"[attr.title]\": \"title()\",\n \"[attr.id]\": \"id()\",\n \"[attr.role]\": \"role()\",\n \"[attr.aria-live]\": \"ariaLive()\",\n \"[attr.aria-label]\": \"title()\",\n },\n})\nexport class StatusBadgeComponent {\n /**\n * Additional classes to apply custom styles to the StatusBadge.\n */\n className = input<string>();\n /**\n * Provides the full text or description when the Badge represents an abbreviation.\n * This is typically shown as a tooltip on hover.\n */\n title = input<string>();\n /**\n * ID attribute\n */\n id = input<string>();\n /**\n * ARIA role attribute for accessibility.\n */\n role = input<string>();\n /**\n * Specifies the color scheme of the StatusBadge.\n * @default default\n */\n color = input<StatusBadgeColor>(\"neutral\");\n /**\n * Determines the style or visual type of the StatusBadge.\n * @default filled\n */\n variant = input<StatusBadgeVariant>(\"filled\");\n /**\n * Specifies the size of the StatusBadge.\n * @default default\n */\n size = input<StatusBadgeSize>(\"default\");\n /**\n * StatusBadge status indicator\n */\n status = input<StatusBadgeStatus>(\"inactive\");\n /**\n * The name of the icon to be displayed inside the StatusBadge. The icon is rendered using the `Icon` component.\n */\n icon = input<string>(\"\");\n\n classes = computed(() => {\n const classList = [\"tedi-status-badge\"];\n if (this.color()) {\n classList.push(`tedi-status-badge--color-${this.color()}`);\n }\n\n if (this.variant()) {\n classList.push(`tedi-status-badge--variant-${this.variant()}`);\n }\n\n if (this.status() && this.status() !== \"none\") {\n classList.push(\n \"tedi-status-badge--status\",\n `tedi-status-badge--status-${this.status()}`\n );\n }\n if (this.size() === \"large\") {\n classList.push(\"tedi-status-badge--large\");\n }\n if (this.icon() && !this.title()) {\n classList.push(\"tedi-status-badge__icon-only\");\n }\n if (this.className()) {\n classList.push(this.className()!);\n }\n return classList.join(\" \");\n });\n\n ariaLive = computed(() => {\n switch (this.role()) {\n case \"alert\":\n return \"assertive\";\n case \"status\":\n return \"polite\";\n default:\n return undefined;\n }\n });\n\n mapBadgeColorToIconColor = computed((): IconColor => {\n switch (this.color()) {\n case \"brand\":\n return \"brand-dark\";\n case \"success\":\n return \"success\";\n case \"accent\":\n return \"secondary\";\n case \"danger\":\n return \"danger\";\n case \"warning\":\n return \"warning-dark\";\n default:\n return \"primary\";\n }\n });\n}\n","@if (icon()) {\n <tedi-icon [name]=\"icon()\" [color]=\"mapBadgeColorToIconColor()\" [size]=\"16\" />\n}\n<span class=\"tedi-status-badge__inner-text\">\n <ng-content></ng-content>\n</span>\n","import { CdkOverlayOrigin, OverlayModule } from \"@angular/cdk/overlay\";\nimport { CdkListbox, CdkListboxModule } from \"@angular/cdk/listbox\";\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n ElementRef,\n HostListener,\n inject,\n input,\n signal,\n viewChild,\n ViewEncapsulation,\n forwardRef,\n computed,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport {\n InputComponent,\n InputSize,\n InputState,\n} from \"../input/input.component\";\nimport { SelectOptionComponent } from \"./select-option.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { CheckboxComponent } from \"../checkbox\";\nimport {\n ClosingButtonComponent,\n ComponentInputs,\n FeedbackTextComponent,\n IconComponent,\n LabelComponent,\n TediTranslationPipe,\n TextComponent,\n} from \"@tedi-design-system/angular/tedi\";\nimport { CardComponent, CardContentComponent } from \"../../../components/cards\";\nimport { DropdownItemComponent } from \"../../../components/overlay\";\nimport { TagComponent } from \"../../../components/tags\";\n\nexport enum specialOptionControls {\n SELECT_ALL = \"SELECT_ALL\",\n SELECTGROUP = \"SELECTGROUP_\",\n}\n\n@Component({\n selector: \"tedi-multiselect\",\n imports: [\n CommonModule,\n OverlayModule,\n CdkListboxModule,\n InputComponent,\n CardComponent,\n CardContentComponent,\n DropdownItemComponent,\n ClosingButtonComponent,\n IconComponent,\n LabelComponent,\n FeedbackTextComponent,\n TextComponent,\n CheckboxComponent,\n TagComponent,\n TediTranslationPipe,\n ],\n templateUrl: \"./multiselect.component.html\",\n styleUrl: \"./select.component.scss\",\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: \"tedi-select tedi-select--multiselect\",\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiselectComponent),\n multi: true,\n },\n ],\n})\nexport class MultiselectComponent\n implements AfterContentChecked, ControlValueAccessor\n{\n /**\n * The id of the select input (for label association).\n * @default \"\"\n */\n inputId = input.required<string>();\n /**\n * The label for the select input.\n * @default \"\"\n */\n label = input<string>();\n /**\n * Should show label as required?\n * @default false\n */\n required = input<boolean>(false);\n /**\n * The placeholder text to display when no option is selected.\n * @default \"\"\n */\n placeholder = input<string>(\"\");\n /**\n * The state of the input.\n * @default \"default\"\n */\n state = input<InputState>(\"default\");\n /**\n * The size of the input.\n * @default \"default\"\n */\n size = input<InputSize>(\"default\");\n /**\n * Whether the select should be rendered as a multi-row dropdown.\n * @default false\n */\n multiRow = input<boolean>(false);\n /**\n * Whether the selected labels show removing buttons.\n * @default false\n */\n clearableTags = input<boolean>(false);\n /**\n * Whether the select should allow selecting all options at once.\n * @default false\n */\n selectAll = input<boolean>(false);\n /**\n * Whether the select should allow selecting groups of options.\n * @default false\n */\n selectableGroups = input<boolean>(false);\n /**\n * Whether the clear button will be shown when an option is selected.\n * @default true\n */\n clearable = input<boolean>(true);\n feedbackText = input<ComponentInputs<FeedbackTextComponent>>();\n\n readonly specialOptionControls = specialOptionControls;\n\n isOpen = signal(false);\n selectedOptions = signal<readonly string[]>([]);\n listboxRef = viewChild(CdkListbox, { read: ElementRef });\n triggerRef = viewChild(CdkOverlayOrigin, { read: ElementRef });\n hostRef = inject(ElementRef);\n options = contentChildren(SelectOptionComponent);\n dropdownWidth = signal(0);\n disabled = signal(false);\n\n optionGroups = computed(() => {\n const groups: { label: string; options: SelectOptionComponent[] }[] = [];\n this.options().forEach((option) => {\n const group = groups.find((g) => g.label === option.group());\n if (group) {\n group.options.push(option);\n } else {\n groups.push({ label: option.group() ?? \"\", options: [option] });\n }\n });\n return groups;\n });\n\n @HostListener(\"window:resize\")\n onWindowResize() {\n this.setDropdownWidth();\n }\n\n toggleIsOpen(value?: boolean): void {\n if (this.disabled()) return;\n\n if (value === undefined) {\n this.isOpen.update((previousValue) => !previousValue);\n } else if (value === false) {\n this.isOpen.set(value);\n this.focusTrigger();\n }\n }\n\n handleValueChange(event: { value: readonly string[] }): void {\n // Check if event value includes any \"select-all-group\" selection\n const selectedGroup = event.value\n .find((v) => v.startsWith(specialOptionControls.SELECTGROUP))\n ?.replace(specialOptionControls.SELECTGROUP, \"\");\n\n if (event.value.includes(specialOptionControls.SELECT_ALL)) {\n // If \"select-all\" is selected, toggle all options\n this.toggleSelectAll();\n } else if (selectedGroup) {\n // If a group selection is made, toggle the group\n this.toggleGroupSelection(selectedGroup);\n } else {\n // Otherwise, update the selected options directly\n this.selectedOptions.set(event.value);\n this.onChange(event.value);\n }\n\n this.onTouched();\n }\n\n clear(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.selectedOptions.set([]);\n this.onChange([]);\n this.onTouched();\n }\n\n focusListboxWhenVisible = effect(() => {\n if (this.listboxRef()) this.listboxRef()?.nativeElement.focus();\n });\n\n focusTrigger(): void {\n this.triggerRef()?.nativeElement.focus();\n }\n\n isOptionSelected(option: string): boolean {\n return this.selectedOptions().includes(option);\n }\n\n private setDropdownWidth(): void {\n const computedWidth =\n this.hostRef?.nativeElement?.getBoundingClientRect()?.width ?? 0;\n this.dropdownWidth.set(computedWidth);\n }\n\n allOptions = computed(() => {\n return this.options()\n .filter((option) => !option.disabled())\n .map((option) => option.value());\n });\n\n allOptionsSelected = computed(() => {\n return this.selectedOptions().length === this.allOptions().length;\n });\n\n toggleSelectAll(): void {\n const newSelection = this.allOptionsSelected() ? [] : this.allOptions();\n\n this.selectedOptions.set(newSelection);\n this.onChange(newSelection);\n }\n\n getLabel(value: string): string | undefined {\n const option = this.options().find((opt) => opt.value() === value);\n return option ? option.label() : undefined;\n }\n\n isGroupSelected(groupLabel: string): boolean {\n const group = this.optionGroups().find((g) => g.label === groupLabel);\n if (!group) return false;\n\n const enabledGroupOptions = group.options\n .filter((option) => !option.disabled())\n .map((option) => option.value());\n\n return (\n enabledGroupOptions.length > 0 &&\n enabledGroupOptions.every((option) =>\n this.selectedOptions().includes(option),\n )\n );\n }\n\n toggleGroupSelection(groupLabel: string): void {\n const group = this.optionGroups().find((g) => g.label === groupLabel);\n if (!group) return;\n\n const enabledGroupOptions = group.options\n .filter((option) => !option.disabled())\n .map((option) => option.value());\n\n const allGroupOptionsSelected = this.isGroupSelected(groupLabel);\n\n let newSelection: readonly string[];\n\n if (allGroupOptionsSelected) {\n newSelection = this.selectedOptions().filter(\n (option) => !enabledGroupOptions.includes(option),\n );\n } else {\n const currentSelected = new Set(this.selectedOptions());\n enabledGroupOptions.forEach((option) => currentSelected.add(option));\n newSelection = Array.from(currentSelected);\n }\n\n this.selectedOptions.set(newSelection);\n this.onChange(newSelection);\n }\n\n deselect(event: Event, value: string): void {\n event.stopPropagation();\n event.preventDefault();\n\n if (this.disabled()) return;\n\n const newSelection = this.selectedOptions().filter(\n (option) => option !== value,\n );\n this.selectedOptions.set(newSelection);\n this.onChange(newSelection);\n this.onTouched();\n }\n\n // ControlValueAccessor implementation\n onChange: (value: readonly string[]) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: readonly string[]): void {\n this.selectedOptions.set(value || []);\n }\n\n registerOnChange(fn: (value: readonly string[]) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n ngAfterContentChecked(): void {\n this.setDropdownWidth();\n }\n}\n","@let listboxId = inputId() + \"-listbox\";\n@let labelId = inputId() + \"-label\";\n\n@if (label()) {\n <label\n [id]=\"labelId\"\n tedi-label\n [for]=\"inputId()\"\n [required]=\"required()\"\n [size]=\"size()\"\n >\n {{ label() }}\n </label>\n}\n<div\n [id]=\"inputId()\"\n class=\"tedi-select__trigger\"\n [class.tedi-input--disabled]=\"disabled()\"\n tedi-input\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-controls]=\"listboxId\"\n [attr.aria-labelledby]=\"labelId\"\n [tabindex]=\"disabled() ? -1 : 0\"\n [state]=\"state()\"\n [size]=\"size()\"\n (click)=\"toggleIsOpen()\"\n (keydown.enter)=\"toggleIsOpen()\"\n (keydown.space)=\"$event.preventDefault(); toggleIsOpen()\"\n (keydown.arrowdown)=\"$event.preventDefault(); toggleIsOpen()\"\n (blur)=\"onTouched()\"\n>\n <span class=\"tedi-select__label\">\n @if (selectedOptions().length) {\n <div\n class=\"tedi-select__multiselect-container\"\n [class.tedi-select__multiselect-container--single-row]=\"!multiRow()\"\n >\n @for (value of selectedOptions(); track value) {\n <tedi-tag\n [closable]=\"clearableTags()\"\n (closed)=\"deselect($event, value)\"\n >\n {{ getLabel(value) }}\n </tedi-tag>\n }\n </div>\n } @else {\n <span class=\"tedi-select__label--placeholder\">\n {{ placeholder() }}\n </span>\n }\n </span>\n\n @if (clearable() && selectedOptions().length) {\n <button\n class=\"tedi-select__clear\"\n tedi-closing-button\n type=\"button\"\n size=\"small\"\n [iconSize]=\"18\"\n title=\"Clear\"\n (click)=\"clear($event)\"\n ></button>\n }\n\n <tedi-icon class=\"tedi-select__arrow\" name=\"arrow_drop_down\" />\n</div>\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"toggleIsOpen(false)\"\n (detach)=\"toggleIsOpen(false)\"\n>\n <tedi-card\n class=\"tedi-select__dropdown\"\n spacing=\"none\"\n [style.width.px]=\"dropdownWidth()\"\n >\n <tedi-card-content>\n <ul\n [id]=\"listboxId\"\n class=\"tedi-select__options\"\n cdkListbox\n cdkListboxMultiple\n [cdkListboxValue]=\"selectedOptions()\"\n (cdkListboxValueChange)=\"handleValueChange($event)\"\n #listbox=\"cdkListbox\"\n >\n @if (options().length) {\n @if (selectAll()) {\n <li\n tedi-dropdown-item\n [cdkOption]=\"specialOptionControls.SELECT_ALL\"\n >\n <tedi-checkbox\n class=\"tedi-select__multiselect-checkbox\"\n [inputId]=\"inputId() + '-select-all'\"\n [checked]=\"allOptionsSelected()\"\n >\n {{ \"select.select-all\" | tediTranslate }}\n </tedi-checkbox>\n </li>\n }\n\n @for (group of optionGroups(); track $index) {\n @if (group.label.length) {\n @if (selectableGroups()) {\n <li\n tedi-dropdown-item\n class=\"tedi-select__group-name tedi-select__group-name--selectable\"\n [cdkOption]=\"specialOptionControls.SELECTGROUP + group.label\"\n >\n <div class=\"tedi-select__group-checkbox\">\n <tedi-checkbox\n class=\"tedi-select__multiselect-checkbox\"\n [inputId]=\"'group-' + group.label\"\n [checked]=\"isGroupSelected(group.label)\"\n >\n <span tedi-text color=\"tertiary\">\n {{ group.label }}\n </span>\n </tedi-checkbox>\n </div>\n </li>\n } @else {\n <li\n tedi-dropdown-item\n class=\"tedi-select__group-name\"\n role=\"presentation\"\n >\n <span tedi-text color=\"tertiary\">\n {{ group.label }}\n </span>\n </li>\n }\n }\n\n @for (option of group.options; track option.value()) {\n <li\n tedi-dropdown-item\n [cdkOption]=\"option.value()\"\n [cdkOptionDisabled]=\"option.disabled()\"\n [disabled]=\"option.disabled()\"\n >\n <tedi-checkbox\n class=\"tedi-select__multiselect-checkbox\"\n [inputId]=\"'option-' + option.value()\"\n [checked]=\"isOptionSelected(option.value())\"\n >\n @if (option.templateRef(); as optionTemplate) {\n <span class=\"tedi-select__dropdown-item--custom-content\">\n <ng-container [ngTemplateOutlet]=\"optionTemplate\" />\n </span>\n <span class=\"tedi-select__dropdown-item--label\">\n {{ option.label() }}\n </span>\n } @else {\n {{ option.label() }}\n }\n </tedi-checkbox>\n </li>\n }\n }\n } @else {\n <li tedi-dropdown-item class=\"tedi-select__no-options\">\n {{ \"select.no-options\" | tediTranslate }}\n </li>\n }\n </ul>\n </tedi-card-content>\n </tedi-card>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { InputComponent } from \"../input/input.component\";\n\n@Component({\n selector: \"[tedi-textarea]\",\n standalone: true,\n template: \"<ng-content />\",\n styleUrls: [\"../input/input.component.scss\", \"./textarea.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-textarea]\": \"true\",\n \"[class.tedi-textarea--resizeX]\": \"this.resizeX()\",\n \"[class.tedi-textarea--resizeY]\": \"this.resizeY()\",\n },\n})\nexport class TextareaComponent extends InputComponent {\n /**\n * Whether the textarea should be resizable in the X direction.\n * @default false\n */\n resizeX = input(false);\n /**\n * Whether the textarea should be resizable in the Y direction.\n * @default true\n */\n resizeY = input(true);\n}\n","import {\n AfterContentChecked,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n model,\n output,\n signal,\n ViewEncapsulation,\n forwardRef,\n viewChild,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\nimport {\n IconComponent,\n ButtonComponent,\n ClosingButtonComponent,\n SpinnerComponent,\n ComponentInputs,\n FeedbackTextComponent,\n LabelComponent,\n} from \"@tedi-design-system/angular/tedi\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CdkOverlayOrigin, OverlayModule } from \"@angular/cdk/overlay\";\nimport { CardComponent } from \"../../cards/card/card.component\";\nimport { CardContentComponent } from \"../../cards/card/card-content/card-content.component\";\nimport { DropdownItemComponent } from \"../../overlay/dropdown-item/dropdown-item.component\";\nimport { A11yModule } from \"@angular/cdk/a11y\";\nimport { CdkMenu, CdkMenuModule } from \"@angular/cdk/menu\";\n\nexport type SearchSize = \"large\" | \"default\" | \"small\";\nexport type AutocompleteOption = {\n value: string;\n label: string;\n description?: string;\n};\nexport type SearchState = \"valid\" | \"error\" | \"default\";\n\n@Component({\n selector: \"tedi-search\",\n standalone: true,\n imports: [\n FormsModule,\n ButtonComponent,\n IconComponent,\n CdkMenuModule,\n OverlayModule,\n CardComponent,\n CardContentComponent,\n DropdownItemComponent,\n ClosingButtonComponent,\n A11yModule,\n SpinnerComponent,\n FeedbackTextComponent,\n LabelComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: \"./search.component.html\",\n styleUrl: \"./search.component.scss\",\n host: {\n \"[class.tedi-search]\": \"true\",\n \"[class.tedi-search--with-button]\": \"withButton()\",\n \"[class.tedi-search--with-button-text]\": \"!!buttonText()\",\n \"[class.tedi-search--disabled]\": \"_disabled()\",\n \"[class]\": \"modifierClasses()\",\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SearchComponent),\n multi: true,\n },\n ],\n})\nexport class SearchComponent\n implements AfterContentChecked, ControlValueAccessor\n{\n /**\n * Search input ID for accessibility\n */\n inputId = input.required<string>();\n /**\n * Autocomplete options for the search input\n * @default []\n */\n autocompleteOptions = input<AutocompleteOption[]>([]);\n /**\n * Minimum number of characters to trigger autocomplete\n * @default 3\n */\n autocompleteFrom = input<number | undefined>();\n /**\n * Size of the search component\n * @default \"default\"\n */\n size = input<SearchSize>(\"default\");\n /**\n * Input state for validation\n * @default \"default\"\n */\n state = input<SearchState>(\"default\");\n /**\n * Should the search button be shown\n * @default false\n */\n withButton = input<boolean>(false);\n /**\n * Add text to the search button\n * @default undefined\n */\n buttonText = input<string | undefined>(undefined);\n /**\n * Should the search input be clearable\n * @default true\n */\n clearable = input<boolean>(true);\n /**\n * Text to show when no results are found\n * @default \"Vasteid ei leitud\"\n */\n noResultText = input<string>(\"Vasteid ei leitud\");\n /**\n * Should the searc input be disabled\n * @default false\n */\n disabled = input<boolean>(false);\n /**\n * Placeholder text for the search input\n * @default \"\"\n */\n placeholder = input<string>(\"\");\n /**\n * Should the search input show a loading spinner\n * @default false\n */\n loading = input<boolean>(false);\n /**\n * Label for the search input\n * @default undefined\n */\n label = input<string>();\n /**\n * Feedback text component for displaying messages\n * @default undefined\n */\n feedbackText = input<ComponentInputs<FeedbackTextComponent>>();\n\n // Emitted events\n searchEvent = output<AutocompleteOption | string>();\n clearEvent = output<void>();\n\n _inputValue = model<string>();\n _selectedOption = model<AutocompleteOption>();\n _width = signal(0);\n _elementRef = inject(ElementRef);\n _disabled = signal(false);\n _isVisible = signal(false);\n _cdkMenuRef = viewChild(CdkMenu, { read: ElementRef });\n _overlayOriginRef = viewChild(CdkOverlayOrigin, { read: ElementRef });\n\n modifierClasses = computed(() => {\n const modifiers = [];\n if (this.size()) modifiers.push(`tedi-search--${this.size()}`);\n if (this.state()) modifiers.push(`tedi-search--${this.state()}`);\n\n return modifiers.join(\" \");\n });\n\n ngAfterContentChecked(): void {\n this._width.set(this.getWidth());\n }\n\n inputChanged(inputValue: string) {\n const selected = this._selectedOption();\n\n // Clear selected option if input value is changed and is not matching the selected option\n if (selected && inputValue !== selected.label) {\n this._selectedOption.set(undefined);\n }\n\n this.handleOverlayOpen();\n this.onChange(inputValue);\n }\n\n focusInput() {\n this.handleOverlayOpen();\n }\n\n // Logic to show/hide the autocomplete dropdown\n handleOverlayOpen(): void {\n const inputValue = this._inputValue();\n const autocompleteFrom = this.autocompleteFrom();\n\n const baseRules = !this.withButton() && !this._selectedOption();\n const showAutocompleteIfLength =\n autocompleteFrom && inputValue && inputValue.length >= autocompleteFrom;\n\n if (baseRules && (showAutocompleteIfLength || autocompleteFrom === 0)) {\n this._isVisible.set(true);\n } else {\n this._isVisible.set(false);\n }\n }\n\n // Filter the autocomplete options based on the input value\n _foundOptions = computed(() => {\n const inputValue = this._inputValue();\n if (!inputValue) return this.autocompleteOptions();\n\n return this.autocompleteOptions().filter((option) => {\n const searchString = inputValue.toLowerCase().split(\" \");\n\n return searchString.every(\n (searchTerm) =>\n option.label.toLowerCase().includes(searchTerm) ||\n option.description?.toLowerCase().includes(searchTerm),\n );\n });\n });\n\n iconSize = computed(() => {\n const size = this.size();\n const hasButton = this.withButton();\n const hasButtonText = !!this.buttonText();\n\n if (size === \"large\") {\n if (hasButton && hasButtonText) return 18;\n return 24;\n } else if (size === \"small\") {\n if (hasButton) return 18;\n return 16;\n } else {\n return 18;\n }\n });\n\n buttonSize = computed(() => {\n switch (this.size()) {\n case \"large\":\n return \"default\";\n case \"small\":\n return \"small\";\n default:\n return \"default\";\n }\n });\n\n // ControlValueAccessor methods\n private onChange: (value: string | AutocompleteOption) => void = () => {};\n onTouched: () => void = () => {};\n\n writeValue(value: string | AutocompleteOption): void {\n if (typeof value === \"string\") {\n this._inputValue.set(value);\n this._selectedOption.set(undefined);\n } else {\n this._inputValue.set(value?.label || \"\");\n this._selectedOption.set(value);\n }\n }\n\n registerOnChange(fn: (value: string | AutocompleteOption) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled.set(isDisabled);\n }\n\n searchButtonClick() {\n this.searchEvent.emit(this._selectedOption() ?? this._inputValue() ?? \"\");\n this.onChange(this._selectedOption() ?? this._inputValue() ?? \"\");\n this.onTouched();\n }\n\n selectResult(option: AutocompleteOption) {\n this._selectedOption.set(option);\n this._inputValue.set(option.label);\n\n // Emit the selected option if the search button is not shown\n if (!this.withButton()) {\n this.searchEvent.emit(option);\n this.onChange(option);\n }\n\n this.onTouched();\n this.closeOverlay(true);\n }\n\n clearResult() {\n this._inputValue.set(\"\");\n this._selectedOption.set(undefined);\n this.searchEvent.emit(\"\");\n this.onChange(\"\");\n this.onTouched();\n this.clearEvent.emit();\n }\n\n focusDropdown(event?: Event) {\n // Prevent default behavior and stop propagation if event is provided\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n const dropdownToFocus = this._cdkMenuRef();\n\n if (dropdownToFocus) {\n dropdownToFocus.nativeElement.focus();\n }\n }\n\n closeOverlay(focusBackToInput: boolean) {\n this._isVisible.set(false);\n\n if (focusBackToInput) {\n this._overlayOriginRef()?.nativeElement?.focus();\n }\n }\n\n getWidth(): number {\n return this._elementRef?.nativeElement?.getBoundingClientRect()?.width || 0;\n }\n}\n","@if (label()) {\n <label tedi-label [for]=\"inputId()\">\n {{ label() }}\n </label>\n}\n\n<div class=\"tedi-search__container\">\n <input\n cdkOverlayOrigin\n [id]=\"inputId()\"\n class=\"tedi-search__input\"\n type=\"text\"\n [(ngModel)]=\"_inputValue\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"_disabled()\"\n (focus)=\"focusInput()\"\n (keydown.enter)=\"focusDropdown($event)\"\n (keydown.arrowDown)=\"focusDropdown($event)\"\n (ngModelChange)=\"inputChanged($event)\"\n (blur)=\"onTouched()\"\n #trigger=\"cdkOverlayOrigin\"\n />\n\n <div class=\"tedi-search__suffix\">\n @if (clearable() && _inputValue()) {\n <button\n type=\"reset\"\n tedi-closing-button\n [size]=\"size() === 'large' ? 'default' : 'small'\"\n [iconSize]=\"size() === 'large' ? 24 : 18\"\n (click)=\"$event.stopPropagation(); clearResult()\"\n ></button>\n @if (!withButton()) {\n <div class=\"tedi-search__suffix-separator\"></div>\n }\n }\n @if (!withButton()) {\n @if (!loading()) {\n <tedi-icon\n class=\"tedi-search__search-icon\"\n name=\"search\"\n color=\"secondary\"\n [size]=\"iconSize()\"\n />\n } @else {\n <tedi-spinner />\n }\n }\n </div>\n\n @if (withButton()) {\n @if (loading()) {\n <tedi-spinner />\n }\n <button\n tedi-button\n class=\"tedi-search__trigger\"\n [size]=\"buttonSize()\"\n (click)=\"searchButtonClick()\"\n [disabled]=\"_disabled()\"\n >\n <tedi-icon name=\"search\" color=\"white\" [size]=\"iconSize()\" />\n {{ buttonText() }}\n </button>\n }\n</div>\n\n@if (feedbackText(); as feedback) {\n <tedi-feedback-text\n [text]=\"feedback.text\"\n [type]=\"feedback.type\"\n [position]=\"feedback.position\"\n />\n}\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"_isVisible()\"\n [cdkConnectedOverlayDisableClose]=\"true\"\n (overlayOutsideClick)=\"closeOverlay(false)\"\n (overlayKeydown)=\"$event.key === 'Escape' ? closeOverlay(true) : null\"\n #searchPanel\n>\n <tedi-card class=\"tedi-search__panel\" [style.width.px]=\"_width()\">\n @if (loading()) {\n <tedi-card-content padding=\"md\" [hasSeparator]=\"true\">\n <tedi-spinner />\n </tedi-card-content>\n } @else if (_foundOptions().length) {\n <tedi-card-content padding=\"none\" [hasSeparator]=\"true\" cdkMenu>\n @for (option of _foundOptions(); track option.value) {\n <button\n cdkMenuItem\n tedi-dropdown-item\n [value]=\"option.value\"\n [selected]=\"option.value === _selectedOption()?.value\"\n (click)=\"selectResult(option)\"\n #autocompleteOption\n >\n @if (option.description) {\n <strong>{{ option.label }}</strong> · {{ option.description }}\n } @else {\n {{ option.label }}\n }\n </button>\n }\n </tedi-card-content>\n } @else {\n <tedi-card-content [hasSeparator]=\"true\" padding=\"md\">\n {{ noResultText() }}\n </tedi-card-content>\n }\n\n <tedi-card-content class=\"tedi-search__footer-content\" padding=\"md\">\n <ng-content></ng-content>\n </tedi-card-content>\n </tedi-card>\n</ng-template>\n","const IECkiloBytes = 1024;\nconst SIkiloBytes = 1000;\n\nconst IECMegabytes = IECkiloBytes * IECkiloBytes;\nconst SIMegabytes = SIkiloBytes * SIkiloBytes;\n\nexport enum SIFileSize {\n kB = SIkiloBytes,\n MB = SIMegabytes,\n}\n\nexport enum IECFileSize {\n kB = IECkiloBytes,\n MB = IECMegabytes,\n}\n\nexport const FileSizeStandards = {\n SI: SIFileSize,\n IEC: IECFileSize,\n};\n","import { IECFileSize, SIFileSize } from \"./constants\";\nimport { FileDropzone, SizeDisplayStandard } from \"./types\";\n\nexport function formatBytes(\n bytes: number,\n standard: SizeDisplayStandard\n): string {\n let kB: number = 0;\n let MB: number = 0;\n\n switch (standard) {\n case \"IEC\":\n kB = IECFileSize.kB;\n MB = IECFileSize.MB;\n break;\n case \"SI\":\n kB = SIFileSize.kB;\n MB = SIFileSize.MB;\n break;\n default:\n throw new Error(`Unknown filesize display standard: ${standard}`);\n }\n if (bytes >= MB) {\n const mbString = standard === \"SI\" ? \"MB\" : \"MiB\";\n return `${roundNumber(bytes / MB)} ${mbString}`;\n }\n if (bytes >= kB) {\n const bytesString = standard === \"SI\" ? \"kB\" : \"KiB\";\n return `${roundNumber(bytes / kB)} ${bytesString}`;\n }\n return `${bytes} B`;\n}\n\nexport function roundNumber(num: number, decimals = 2): string {\n const rounded = num.toFixed(decimals);\n return rounded.includes(\".\") ? rounded.replace(/\\.?0+$/, \"\") : rounded;\n}\n\nexport function getDefaultHelpers(\n accept: string,\n maxSize: number,\n standard: SizeDisplayStandard,\n translate?: (key: string, ...args: unknown[]) => string\n): string {\n if (!translate)\n throw new Error(\n \"Translate function is required to generate default helpers.\"\n );\n const textArray = [];\n if (accept) {\n textArray.push(\n `${translate(\"file-upload.accept\")} ${accept.replaceAll(\",\", \", \")}`\n );\n }\n if (maxSize) {\n textArray.push(\n `${translate(\"file-upload.max-size\")} ${formatBytes(maxSize, standard)}`\n );\n }\n return textArray.filter(Boolean).join(\". \");\n}\n\nexport function validateFileSize(\n maxSize: number,\n acceptFileTypes: string,\n file: FileDropzone,\n standard: SizeDisplayStandard,\n translate: (key: string, ...args: unknown[]) => string\n) {\n if (maxSize && file.size > maxSize) {\n const maxSizeMB = formatBytes(maxSize, standard);\n return translate(\n `file-upload.size-rejected-extended`,\n file.name,\n maxSizeMB\n );\n }\n return undefined;\n}\n\nexport function validateFileType(\n maxSize: number,\n acceptFileTypes: string,\n file: FileDropzone,\n standard: SizeDisplayStandard,\n translate: (key: string, ...args: unknown[]) => string\n) {\n if (acceptFileTypes) {\n const validTypes = acceptFileTypes\n .split(\",\")\n .map((type) => type.trim().toLowerCase());\n\n const fileType = file.type.toLowerCase();\n const fileName = file.name.toLowerCase() || \"\";\n\n const matches = validTypes.some((type) => {\n if (type.startsWith(\".\")) {\n return fileName.endsWith(type);\n }\n if (type.endsWith(\"/*\")) {\n return fileType.startsWith(type.replace(\"/*\", \"\"));\n }\n return fileType === type;\n });\n\n if (!matches) {\n return translate(\n `file-upload.extension-rejected-extended`,\n file.name,\n acceptFileTypes\n );\n }\n }\n return undefined;\n}\n","import {\n ComponentInputs,\n FeedbackTextComponent,\n} from \"@tedi-design-system/angular/tedi\";\n\ntype PartialExcept<T, K extends keyof T> = Partial<T> & Required<Pick<T, K>>;\n\nexport type FileUploadFile = Partial<File>;\n\nexport type FeedbackTextProps = PartialExcept<\n ComponentInputs<FeedbackTextComponent>,\n \"text\"\n>;\n\nexport class FileDropzone {\n /*\n * Additional CSS class names to apply to the dropzone for custom styling\n */\n className?: string[];\n /*\n * The text label displayed for the file dropzone, providing context for users.\n */\n label?: string;\n /*\n * Provides a tooltip (such as an error or instruction message) to guide the user.\n */\n helper?: FeedbackTextProps;\n /*\n * Disables the file delete button, preventing user interaction.\n */\n disabled?: boolean;\n /*\n * Per file status of the file set by validation.\n */\n fileStatus?: ValidationState;\n /*\n * Possible additional properties for the file, such as metadata.\n */\n metaData?: Record<string, unknown>;\n /*\n * The actual file object being uploaded.\n */\n file: File;\n\n constructor(file: File) {\n this.file = file;\n }\n\n get name(): string {\n return this.file.name;\n }\n\n get size(): number {\n return this.file.size;\n }\n\n get type(): string {\n return this.file.type;\n }\n}\n\nexport type FileInputMode = \"append\" | \"replace\";\n\nexport type ValidationState = \"none\" | \"valid\" | \"invalid\";\n\nexport type DropzoneValidatorFunction = (\n maxSize: number,\n acceptFileTypes: string,\n file: FileDropzone,\n standard: SizeDisplayStandard,\n translate: (key: string, ...args: unknown[]) => string\n) => string | undefined;\n\nexport type SizeDisplayStandard = \"SI\" | \"IEC\";\n","import { inject, Injectable, Signal, signal } from \"@angular/core\";\nimport {\n DropzoneValidatorFunction,\n FileDropzone,\n FileInputMode,\n SizeDisplayStandard,\n ValidationState,\n} from \"./types\";\nimport { TediTranslationService } from \"@tedi-design-system/angular/tedi\";\n\n@Injectable()\nexport class FileService {\n maxSize = signal(0).asReadonly();\n accept = signal(\"\").asReadonly();\n mode = signal<FileInputMode>(\"append\").asReadonly();\n validators = signal<DropzoneValidatorFunction[]>([]).asReadonly();\n sizeDisplayStandard = signal<SizeDisplayStandard>(\"IEC\").asReadonly();\n\n uploadState = signal<ValidationState>(\"none\");\n\n protected _files = signal<FileDropzone[]>([]);\n\n private _translateService = inject(TediTranslationService);\n\n get files(): Signal<FileDropzone[]> {\n return this._files.asReadonly();\n }\n\n public async addFiles(files: FileDropzone[] | File[]): Promise<string[]> {\n let newFiles = this.normalizeFiles(files);\n const currentFiles = this.files();\n\n switch (this.mode()) {\n case \"append\": {\n // index any duplicate name file\n newFiles = await this._renameDuplicates(currentFiles, newFiles);\n break;\n }\n\n case \"replace\": {\n // replace any files with the same name\n const filesToCheck = [...currentFiles, ...newFiles];\n const duplicateFiles = filesToCheck.filter(\n (file, index, self) =>\n self.findIndex((f) => f.name === file.name) !== index\n );\n if (duplicateFiles.length > 0) {\n newFiles = newFiles.filter(\n (file) => !duplicateFiles.some((f) => f.name === file.name)\n );\n }\n break;\n }\n }\n newFiles.push(...currentFiles);\n\n // remove old invalid files, fileStatus will not yet be set for new files\n if (this.uploadState() === \"invalid\") {\n newFiles = newFiles.filter((file) => file.fileStatus !== \"invalid\");\n }\n const error = this._checkErrorState(newFiles);\n this._files.set(newFiles);\n this.uploadState.set(this._getNewState(!!error.length));\n return error;\n }\n\n public reValidateFiles() {\n const files = this.files();\n const error = this._checkErrorState(files);\n this.uploadState.set(this._getNewState(!!error.length));\n }\n\n public normalizeFiles(files: FileDropzone[] | File[]): FileDropzone[] {\n if (!files || files.length === 0) {\n return [];\n }\n const newFiles = files.map((file) => {\n if (file instanceof FileDropzone) {\n return file;\n }\n if (file instanceof File) {\n return new FileDropzone(file as File);\n }\n throw new Error(\"Invalid file type provided to addFiles\");\n });\n return newFiles;\n }\n\n public removeFiles(files: FileDropzone[]): string[] {\n if (!files || files.length === 0) {\n return [];\n }\n const newFiles = this.files().filter((file) => !files.includes(file));\n this._files.set(newFiles);\n const errors = this._checkErrorState(newFiles);\n if (errors.length) {\n this.uploadState.set(\"invalid\");\n } else {\n this.uploadState.set(this._files.length > 0 ? \"valid\" : \"none\");\n }\n\n return errors;\n }\n\n private _getNewState(error: boolean): ValidationState {\n if (error) {\n return \"invalid\";\n }\n return this._files().length > 0 ? \"valid\" : \"none\";\n }\n\n private _checkErrorState(files: FileDropzone[]): string[] {\n const errors: string[] = [];\n for (const file of files) {\n file.helper = undefined;\n const error = this.validators()\n .map((validator) =>\n validator(\n this.maxSize(),\n this.accept(),\n file,\n this.sizeDisplayStandard(),\n this._translateService.translate.bind(this._translateService)\n )\n )\n .filter((err) => err !== undefined);\n\n if (error.length) {\n errors.push(...error);\n file.helper = {\n type: \"error\",\n text: error.join(\", \"),\n };\n }\n file.fileStatus = error.length ? \"invalid\" : \"valid\";\n }\n return errors;\n }\n\n private async _renameDuplicates(\n currentFiles: FileDropzone[],\n newFiles: FileDropzone[]\n ): Promise<FileDropzone[]> {\n const renamedFiles: FileDropzone[] = [];\n const fileNames = new Set(\n currentFiles.map((file) => file.name.toLowerCase())\n );\n\n for (const file of newFiles) {\n const maxCounter = 1000;\n let newName = file.name;\n let counter = 1;\n\n while (fileNames.has(newName.toLowerCase()) && counter < maxCounter) {\n // the .extension part of the file name unfortunately\n const [fileName, ...rest] = file.name.split(\".\");\n newName = `${fileName} (${counter}).${rest.join(\".\")}`;\n counter++;\n }\n\n fileNames.add(newName.toLowerCase());\n renamedFiles.push(await this._copyFile(file.file, newName));\n }\n return renamedFiles;\n }\n\n private _copyFile(original: File, newName?: string): Promise<FileDropzone> {\n return original.arrayBuffer().then((buffer) => {\n const file = new File([buffer], newName ?? original.name, {\n type: original.type,\n lastModified: original.lastModified,\n });\n return new FileDropzone(file);\n });\n }\n}\n","import {\n Component,\n computed,\n HostListener,\n inject,\n input,\n signal,\n viewChild,\n ElementRef,\n OnInit,\n output,\n forwardRef,\n} from \"@angular/core\";\nimport {\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\nimport {\n ClosingButtonComponent,\n FeedbackTextComponent,\n IconComponent,\n TooltipComponent,\n TooltipTriggerComponent,\n TooltipContentComponent,\n InfoButtonComponent,\n TediTranslationPipe,\n TediTranslationService,\n VerticalSpacingDirective,\n} from \"@tedi-design-system/angular/tedi\";\nimport { CardComponent, CardContentComponent } from \"../../cards\";\nimport {\n DropzoneValidatorFunction,\n FeedbackTextProps,\n FileDropzone,\n FileInputMode,\n SizeDisplayStandard,\n} from \"./types\";\nimport {\n formatBytes,\n getDefaultHelpers,\n validateFileSize,\n validateFileType,\n} from \"./utils\";\nimport { FileService } from \"./file.service\";\n\n@Component({\n selector: \"tedi-file-dropzone\",\n templateUrl: \"./file-dropzone.component.html\",\n styleUrls: [\"./file-dropzone.react.scss\", \"./file-dropzone.component.scss\"],\n imports: [\n IconComponent,\n FeedbackTextComponent,\n CardComponent,\n CardContentComponent,\n ClosingButtonComponent,\n TooltipComponent,\n TooltipTriggerComponent,\n TooltipContentComponent,\n InfoButtonComponent,\n ReactiveFormsModule,\n VerticalSpacingDirective,\n TediTranslationPipe,\n ],\n providers: [\n FileService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileDropzoneComponent),\n multi: true,\n },\n ],\n})\nexport class FileDropzoneComponent implements ControlValueAccessor, OnInit {\n /**\n * Specifies the allowed file types (e.g., \"image/png, image/jpeg\").\n *\n * Does not validate the contents of the file, only the file extension.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept\n **/\n accept = input<string>(\"\");\n /**\n * The maximum file size allowed for upload, in bytes.\n * @default 0 (no limit)\n **/\n maxSize = input<number>(0);\n /**\n * Specifies the standard to use when displaying file sizes or maximum file size.\n * Options are \"SI\" (base 10) or \"IEC\" (base 2).\n *\n * SI units are in multiples of 1000 (e.g., 1 kB = 1000 bytes).\n *\n * IEC units are in multiples of 1024 (e.g., 1 KiB = 1024 bytes).\n * @default \"IEC\"\n *\n * https://wiki.ubuntu.com/UnitsPolicy\n */\n sizeDisplayStandard = input<SizeDisplayStandard>(\"IEC\");\n /**\n * Determines if multiple files can be uploaded at once via the file picker.\n *\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/multiple\n * @default false\n **/\n multiple = input<boolean>(false);\n /**\n * If true, each file is validated separately instead of rejecting all at once.\n @default false\n **/\n validateIndividually = input(false);\n /**\n * An array of default files that are preloaded in the upload list.\n * @default false\n **/\n defaultFiles = input<File[] | FileDropzone[]>([]);\n /**\n * The unique identifier for the input element that this label is associated with.\n * This ID should match the input element's `id` attribute to ensure accessibility.\n */\n inputId = input<string>();\n /**\n * The name attribute for the file input, used for form submission and identifying the field.\n */\n name = input<string>();\n /**\n * The text label displayed for the file dropzone, providing context for users.\n */\n label = input<string>(\"file-dropzone.label\");\n /**\n * Additional CSS class names to apply to the dropzone for custom styling\n */\n className = input<string>();\n /**\n * Specifies how to handle file name conflicts when multiple file of the same name are added.\n * Options are:\n * - \"append\": Adds new files to the end of the list, keeping existing files\n * - \"replace\": Replaces existing files with new files of the same name\n * @default \"append\"\n */\n mode = input<FileInputMode>(\"append\");\n /**\n * If true, allows uploading folders instead of just files.\n * This enables the user to select a folder and upload all its contents.\n * Default file browser behaviour will prevent upload of files in this state.\n * @default false\n */\n uploadFolder = input<boolean>(false);\n /**\n * Validation functions that can be used to validate files.\n * Each function should return a string error message if validation fails, or undefined if it passes\n */\n validators = input<DropzoneValidatorFunction[]>([\n validateFileSize,\n validateFileType,\n ]);\n /**\n * If true, shows the file dropzone as in a erroring state with red border.\n * Overrides default validation state.\n * @default false\n **/\n hasError = input<boolean>(false);\n /**\n * Output event triggered when files are added.\n **/\n fileChange = output<FileDropzone[]>();\n /**\n * Output event triggered when a file is removed.\n **/\n fileDelete = output<FileDropzone>();\n\n fileInputElement =\n viewChild.required<ElementRef<HTMLInputElement>>(\"fileInput\");\n\n formatBytes = (bytes: number): string =>\n formatBytes(bytes, this.sizeDisplayStandard());\n\n private _uploadState = computed(() => this._fileService.uploadState());\n\n private _onChange = (_: FileDropzone[]) => {};\n private _onTouched = () => {};\n\n private _translationService = inject(TediTranslationService);\n private _fileService = inject(FileService);\n\n isDragActive = signal<boolean>(false);\n disabled = signal<boolean>(false);\n\n uploadError = signal<string | null>(null);\n files = this._fileService.files;\n\n classes = computed(() => {\n const classList = [\"tedi-file-dropzone\"];\n\n if (this.disabled()) {\n classList.push(\"tedi-file-dropzone--disabled\");\n }\n if (this.hasError()) {\n classList.push(\"tedi-file-dropzone--invalid\");\n } else if (this._uploadState() !== \"none\") {\n classList.push(`tedi-file-dropzone--${this._uploadState()}`);\n }\n if (this.isDragActive()) {\n classList.push(\"tedi-file-dropzone--drop-over\");\n }\n if (this.className()) {\n classList.push(this.className()!);\n }\n\n return classList.join(\" \");\n });\n\n helperText = computed<FeedbackTextProps>(() => ({\n text: getDefaultHelpers(\n this.accept(),\n this.maxSize(),\n this.sizeDisplayStandard(),\n this._translationService.translate.bind(this._translationService)\n ),\n type: \"hint\",\n position: \"left\",\n }));\n\n ngOnInit(): void {\n this.addFiles(this.defaultFiles());\n this._fileService.maxSize = this.maxSize;\n this._fileService.accept = this.accept;\n this._fileService.mode = this.mode;\n this._fileService.validators = this.validators;\n this._fileService.sizeDisplayStandard = this.sizeDisplayStandard;\n }\n\n fileClasses = (file: FileDropzone): string => {\n const classList = [\"tedi-file-dropzone__file-item\"];\n if (file.className) {\n classList.push(...file.className);\n }\n if (file.fileStatus != \"none\") {\n classList.push(`tedi-file-dropzone__file-item--${file.fileStatus}`);\n }\n return classList.join(\" \");\n };\n\n tooltipClasses = (file: FileDropzone): string => {\n const classes = [\"tedi-file-dropzone__tooltip\"];\n classes.push(`tedi-file-dropzone__tooltip--${file.helper?.type || \"hint\"}`);\n return classes.join(\" \");\n };\n\n selectionChange = (event: Event) => {\n const fileList = (event.target as HTMLInputElement).files;\n const files = Array.from(fileList || []);\n this.addFiles(files);\n this.fileInputElement().nativeElement.value = \"\";\n };\n\n @HostListener(\"blur\")\n onBlur() {\n this._onTouched();\n }\n\n @HostListener(\"keydown.code.enter\")\n openFilePicker() {\n this.fileInputElement().nativeElement.click();\n }\n\n @HostListener(\"dragover\", [\"$event\"])\n onDragOver = (event: DragEvent) => {\n event?.preventDefault();\n };\n\n @HostListener(\"dragenter\", [\"$event\"])\n onDragEnter = (event: DragEvent) => {\n event?.preventDefault();\n this.isDragActive.set(true);\n\n if (event?.dataTransfer) {\n event.dataTransfer.dropEffect = \"copy\";\n }\n };\n\n @HostListener(\"dragleave\", [\"$event\"])\n onDragLeave = (event: DragEvent) => {\n event?.preventDefault();\n\n this.isDragActive.set(false);\n };\n\n @HostListener(\"drop\", [\"$event\"])\n onDrop = async (event: DragEvent) => {\n this.onDragLeave(event);\n event?.preventDefault();\n if (!event.dataTransfer) return;\n\n const files = Array.from(event.dataTransfer.files);\n this.addFiles(files);\n };\n\n async addFiles(files: FileDropzone[] | File[]) {\n if (!Array.isArray(files) || !files.length) {\n return;\n }\n\n const error = await this._fileService.addFiles(files);\n const normalizedFiles = this._fileService.normalizeFiles(files);\n\n this._updateErrorState(error);\n\n this._onChange(this._fileService.files());\n this.fileChange.emit(normalizedFiles);\n }\n\n removeFile(file: FileDropzone) {\n const error = this._fileService.removeFiles([file]);\n this._updateErrorState(error);\n\n this._onChange(this._fileService.files());\n this.fileDelete.emit(file);\n }\n\n private _updateErrorState(error: string[]) {\n if (\n this._uploadState() === \"invalid\" &&\n !this.validateIndividually() &&\n error.length\n ) {\n this.uploadError.set(error[0]);\n } else {\n this.uploadError.set(\"\");\n }\n }\n\n onContainerClick() {\n this.openFilePicker();\n }\n\n writeValue(files: FileDropzone[]) {\n this.addFiles(files || []);\n }\n\n registerOnChange(fn: (value: FileDropzone[]) => void) {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this._onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n}\n","<input\n #fileInput\n class=\"tedi-file-dropzone__input\"\n type=\"file\"\n [disabled]=\"disabled()\"\n [multiple]=\"multiple()\"\n [id]=\"inputId()\"\n [attr.webkitdirectory]=\"uploadFolder() ? '' : null\"\n [accept]=\"accept()\"\n (change)=\"selectionChange($event)\"\n/>\n\n<button [className]=\"classes()\" (click)=\"onContainerClick()\">\n <div class=\"tedi-file-dropzone__label-wrapper\">\n <tedi-icon\n [name]=\"isDragActive() ? 'file_upload' : 'attach_file'\"\n [color]=\"disabled() ? 'tertiary' : 'secondary'\"\n />\n <label tedi-label class=\"tedi-file-dropzone__label\">{{\n (isDragActive() ? \"file-upload.drag-and-drop\" : label()) | tediTranslate\n }}</label>\n </div>\n</button>\n\n<ng-content select=\"[helper-text]\">\n @if (helperText(); as message) {\n <tedi-feedback-text\n [text]=\"message.text\"\n [type]=\"message.type || 'hint'\"\n [position]=\"message.position || 'left'\"\n />\n }\n</ng-content>\n\n@for (file of files(); track file.name) {\n <div class=\"tedi-file-dropzone__file-list\" [tediVerticalSpacing]=\"0.5\">\n <tedi-card\n [className]=\"fileClasses(file)\"\n padding=\"none\"\n [background]=\"\n file.fileStatus && file.fileStatus == 'invalid'\n ? 'danger-primary'\n : 'tertiary'\n \"\n >\n <tedi-card-content class=\"tedi-file-dropzone__card\" padding=\"xs\">\n <div class=\"tedi-file-dropzone__file-name\">\n {{ file.label ?? file.name }}\n\n @if (file && validateIndividually() && file.helper; as helper) {\n <tedi-tooltip [className]=\"tooltipClasses(file)\">\n <tedi-tooltip-trigger>\n <button tedi-info-button [disabled]=\"file.disabled\"></button>\n </tedi-tooltip-trigger>\n\n <tedi-tooltip-content [position]=\"helper?.position || 'top'\">\n {{ helper.text }}\n </tedi-tooltip-content>\n </tedi-tooltip>\n }\n </div>\n <button\n tedi-closing-button\n [title]=\"'clear' | tediTranslate\"\n [iconSize]=\"18\"\n (click)=\"removeFile(file)\"\n size=\"small\"\n ></button>\n </tedi-card-content>\n </tedi-card>\n </div>\n}\n\n<ng-content select=\"[error-text]\">\n @if (this.uploadError(); as message) {\n <tedi-feedback-text [text]=\"message\" type=\"error\" position=\"left\" />\n }\n</ng-content>\n","import { Component, computed, inject, input } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { RouterLink } from \"@angular/router\";\nimport {\n IconComponent,\n TextComponent,\n BreakpointService,\n BreakpointInputs,\n LinkComponent\n} from \"@tedi-design-system/angular/tedi\";\n\nexport type Breadcrumb = {\n label: string;\n href: string;\n};\n\nexport type Breadcrumbs = {\n /**\n * Breadcrumbs to be displayed.\n * @example\n * ```typescript\n * crumbs = [\n * { label: 'Kodu', href: '/' },\n * { label: 'Tooted', href: '/products' },\n * { label: 'Elektroonika', href: '/products/electronics' },\n * { label: 'Mobiiltelefonid', href: '/products/electronics/mobile-phones' },\n * { label: 'Nutitelefonid', href: '/products/electronics/mobile-phones/smartphones' },\n * ];\n * ```\n * @description\n * The breadcrumbs to be displayed. Each breadcrumb should have a label and a href.\n * The label is the text that will be displayed, and the href is the URL that the breadcrumb will link to.\n * The breadcrumbs will be displayed in the order they are provided.\n * The last breadcrumb will not be a link, but will be displayed as plain text.\n */\n crumbs: Breadcrumb[];\n /**\n * Displays second last crumb as a link. Mainly used for mobile/tablet views.\n * @default false\n */\n shortCrumbs: boolean;\n};\n\n@Component({\n selector: \"tedi-breadcrumbs\",\n standalone: true,\n imports: [\n CommonModule,\n RouterLink,\n LinkComponent,\n IconComponent,\n TextComponent,\n ],\n templateUrl: \"./breadcrumbs.component.html\",\n styleUrls: [\"./breadcrumbs.component.scss\"],\n})\nexport class BreadcrumbsComponent implements BreakpointInputs<Breadcrumbs> {\n crumbs = input<Breadcrumb[]>([]);\n shortCrumbs = input<boolean>(false);\n xs = input<Breadcrumbs>();\n sm = input<Breadcrumbs>();\n md = input<Breadcrumbs>();\n lg = input<Breadcrumbs>();\n xl = input<Breadcrumbs>();\n xxl = input<Breadcrumbs>();\n\n breakpointService = inject(BreakpointService);\n breakpointInputs = computed(() => {\n return this.breakpointService.getBreakpointInputs<Breadcrumbs>({\n crumbs: this.crumbs(),\n shortCrumbs: this.shortCrumbs(),\n xs: this.xs(),\n sm: this.sm(),\n md: this.md(),\n lg: this.lg(),\n xl: this.xl(),\n xxl: this.xxl(),\n });\n });\n\n getSecondLastCrumb(): Breadcrumb | null {\n const crumbs = this.breakpointInputs().crumbs;\n if (crumbs.length > 1) {\n return crumbs[crumbs.length - 2];\n }\n return null;\n }\n}\n","<nav\n *ngIf=\"this.breakpointInputs().crumbs.length > 0\"\n aria-label=\"Breadcrumb\"\n class=\"tedi__breadcrumbs\"\n>\n <ol class=\"tedi__breadcrumbs__list\">\n <ng-container *ngIf=\"!this.breakpointInputs().shortCrumbs\">\n <ng-container\n *ngFor=\"let crumb of this.breakpointInputs().crumbs; let last = last\"\n >\n @if (!last) {\n <li class=\"tedi__breadcrumbs__item\">\n <a tedi-link [routerLink]=\"crumb.href\" [underline]=\"false\">{{\n crumb.label\n }}</a>\n <tedi-icon color=\"brand\" name=\"chevron_right\" />\n </li>\n } @else {\n <li\n aria-current=\"page\"\n tedi-text\n modifiers=\"inline-block\"\n color=\"secondary\"\n >\n {{ crumb.label }}\n </li>\n }\n </ng-container>\n </ng-container>\n </ol>\n <ng-container\n *ngIf=\"\n this.breakpointInputs().crumbs.length > 1 &&\n this.breakpointInputs().shortCrumbs\n \"\n >\n <div class=\"tedi__breadcrumbs__item\">\n <tedi-icon color=\"brand\" name=\"arrow_back\" />\n <a\n tedi-link\n [routerLink]=\"getSecondLastCrumb()?.href\"\n [underline]=\"false\"\n >{{ getSecondLastCrumb()?.label }}</a\n >\n </div>\n </ng-container>\n</nav>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n} from \"@angular/core\";\nimport {\n TediTranslationPipe,\n TextComponent,\n} from \"@tedi-design-system/angular/tedi\";\n\n@Component({\n selector: \"tedi-pagination-page\",\n imports: [TextComponent, TediTranslationPipe],\n templateUrl: \"./pagination-page.component.html\",\n styleUrl: \"./pagination-page.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PaginationPageComponent {\n page = input.required<number>();\n active = input<boolean>();\n pageSelected = output<void>();\n\n selectPage() {\n this.pageSelected.emit();\n }\n}\n","@if (page() === -1) {\n <span tedi-text color=\"secondary\">...</span>\n} @else {\n <button\n class=\"tedi-pagination__page\"\n [class.tedi-pagination__page--active]=\"active()\"\n type=\"button\"\n [attr.aria-current]=\"active() ? 'page' : undefined\"\n [attr.aria-label]=\"'pagination.page' | tediTranslate: page() : active()\"\n (click)=\"selectPage()\"\n >\n {{ page() }}\n </button>\n}\n","export const getPagesToDisplay = (currentPage: number, lastPage: number) => {\n const pages = new Set([1, currentPage, lastPage].filter((nr) => Boolean(nr)));\n\n let pagesAdded = pages.size;\n for (\n let diffFromCurrent = 1;\n diffFromCurrent <= 6 && pagesAdded < 7;\n diffFromCurrent++\n ) {\n if (currentPage - diffFromCurrent > 1) {\n pages.add(currentPage - diffFromCurrent);\n pagesAdded += 1;\n }\n if (currentPage + diffFromCurrent < lastPage) {\n pages.add(currentPage + diffFromCurrent);\n pagesAdded += 1;\n }\n }\n const sortedPages = [...pages].sort((a, b) => a - b);\n\n if (sortedPages[0] && sortedPages[2] && sortedPages[2] - sortedPages[0] > 2) {\n sortedPages.splice(1, 1, -1);\n }\n if (\n sortedPages[sortedPages.length - 1] &&\n sortedPages[sortedPages.length - 3] &&\n sortedPages[sortedPages.length - 1] - sortedPages[sortedPages.length - 3] >\n 2\n ) {\n sortedPages.splice(sortedPages.length - 2, 1, -1);\n }\n\n return sortedPages;\n};\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { PaginationPageComponent } from \"./pagination-page/pagination-page.component\";\nimport { getPagesToDisplay } from \"./pagination.utils\";\nimport {\n ButtonComponent,\n IconComponent,\n TediTranslationPipe,\n TextComponent,\n} from \"@tedi-design-system/angular/tedi\";\n\n@Component({\n selector: \"tedi-pagination\",\n imports: [\n ButtonComponent,\n IconComponent,\n TextComponent,\n TediTranslationPipe,\n PaginationPageComponent,\n FormsModule,\n ],\n templateUrl: \"./pagination.component.html\",\n styleUrl: \"./pagination.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class PaginationComponent {\n page = model<number>(1);\n pageSize = model<number>(50);\n pageSizeOptions = input<number[]>([10, 50, 100]);\n length = input<number>(0);\n hideResults = input(false, { transform: booleanAttribute });\n hidePageSize = input(false, { transform: booleanAttribute });\n\n private lastPage = computed(() => {\n return Math.ceil(this.length() / this.pageSize());\n });\n\n dropdownId = crypto.randomUUID();\n\n pages = computed(() => {\n return getPagesToDisplay(this.page(), this.lastPage());\n });\n\n hasPreviousButton = computed(() => this.page() > 1);\n\n hasNextButton = computed(() => this.page() < this.lastPage());\n\n changePage(step: 1 | -1) {\n this.page.update((currentPage) => currentPage + step);\n }\n\n selectPage(page: number) {\n this.page.set(page);\n }\n\n pageSizeChanged() {\n this.page.set(1);\n }\n}\n","<div class=\"tedi-pagination\">\n @if (!hideResults()) {\n <span\n tedi-text\n class=\"tedi-pagination__results\"\n color=\"secondary\"\n modifiers=\"small\"\n >{{ length() }} {{ \"pagination.results\" | tediTranslate: length() }}</span\n >\n }\n <nav\n [attr.aria-label]=\"'pagination.title' | tediTranslate\"\n class=\"tedi-pagination__pager\"\n >\n <ul class=\"tedi-pagination__pages\">\n <li>\n <button\n tedi-button\n [disabled]=\"!hasPreviousButton()\"\n class=\"tedi-pagination__nav-button\"\n size=\"small\"\n variant=\"neutral\"\n type=\"button\"\n (click)=\"changePage(-1)\"\n [attr.aria-label]=\"'pagination.prev-page' | tediTranslate\"\n >\n <tedi-icon name=\"arrow_back\" />\n </button>\n </li>\n @for (pageNr of pages(); track $index) {\n <li>\n <tedi-pagination-page\n [page]=\"pageNr\"\n [active]=\"pageNr === page()\"\n (pageSelected)=\"selectPage(pageNr)\"\n />\n </li>\n }\n <li>\n <button\n tedi-button\n [disabled]=\"!hasNextButton()\"\n class=\"tedi-pagination__nav-button\"\n size=\"small\"\n variant=\"neutral\"\n type=\"button\"\n (click)=\"changePage(1)\"\n [attr.aria-label]=\"'pagination.next-page' | tediTranslate\"\n >\n <tedi-icon name=\"arrow_forward\" />\n </button>\n </li>\n </ul>\n </nav>\n\n @if (!hidePageSize()) {\n <div class=\"tedi-pagination__page-size-options\">\n <label tedi-text color=\"secondary\" modifiers=\"small\" [for]=\"dropdownId\">{{\n \"pagination.page-size\" | tediTranslate\n }}</label>\n <select\n [id]=\"dropdownId\"\n [(ngModel)]=\"pageSize\"\n (change)=\"pageSizeChanged()\"\n class=\"tedi-pagination__dropdown\"\n >\n @for (size of pageSizeOptions(); track size) {\n <option [value]=\"size\">{{ size }}</option>\n }\n </select>\n </div>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\n\n@Component({\n selector: \"tedi-tab-content\",\n imports: [],\n templateUrl: \"./tab-content.component.html\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabContentComponent {\n tabId = input.required<string>();\n content = viewChild.required<TemplateRef<unknown>>(\"content\");\n}\n","<ng-template #content>\n <ng-content />\n</ng-template>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n ViewEncapsulation,\n model,\n output,\n computed,\n ElementRef,\n effect,\n} from \"@angular/core\";\nimport { RouterLinkActive } from \"@angular/router\";\nimport { toSignal } from \"@angular/core/rxjs-interop\";\nimport { startWith } from \"rxjs\";\nimport { FocusableOption } from \"@angular/cdk/a11y\";\n\n@Component({\n selector: \"[tedi-tab]\",\n imports: [],\n templateUrl: \"./tab.component.html\",\n styleUrl: \"./tab.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-tab]\": \"true\",\n \"[class.tedi-tab--selected]\": \"selected()\",\n \"[class.tedi-tab--disabled]\": \"disabledInput()\",\n \"[attr.role]\": \"'tab'\",\n \"(click)\": \"selectTab()\",\n },\n hostDirectives: [\n {\n directive: RouterLinkActive,\n inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\"],\n outputs: [\"isActiveChange\"],\n },\n ],\n})\nexport class TabComponent implements FocusableOption {\n tabId = input.required<string>();\n selected = model(false);\n disabledInput = input(false, {\n transform: booleanAttribute,\n // eslint-disable-next-line @angular-eslint/no-input-rename\n alias: \"disabled\",\n });\n disabled?: boolean; // for cdk/a11y keymanager\n tabSelected = output<void>();\n\n private readonly routerLinkActive = inject(RouterLinkActive, { self: true });\n private linkActive = toSignal(\n this.routerLinkActive.isActiveChange.pipe(\n startWith(this.routerLinkActive.isActive),\n ),\n );\n\n isTabActive = computed(() => this.selected() || this.linkActive());\n\n selectTab() {\n this.selected.set(true);\n this.tabSelected.emit();\n }\n\n focus() {\n this.element.nativeElement.focus();\n }\n\n constructor(private element: ElementRef) {\n effect(() => {\n this.disabled = this.disabledInput();\n });\n this.routerLinkActive.routerLinkActive = [\"tedi-tab--active\"]; // should be changed once hostDirectives allow default values\n }\n}\n","<ng-content />\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n effect,\n inject,\n Injector,\n OnInit,\n signal,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport {\n ClosingButtonComponent,\n IconComponent,\n TediTranslationPipe,\n} from \"@tedi-design-system/angular/tedi\";\n\nimport { TabContentComponent } from \"./tab-content/tab-content.component\";\nimport { TabComponent } from \"./tab/tab.component\";\nimport { FocusKeyManager } from \"@angular/cdk/a11y\";\nimport { CardComponent, CardContentComponent } from \"../../cards\";\n\n@Component({\n selector: \"tedi-tabs\",\n imports: [\n CommonModule,\n CardComponent,\n CardContentComponent,\n ClosingButtonComponent,\n IconComponent,\n TediTranslationPipe,\n ],\n templateUrl: \"./tabs.component.html\",\n styleUrl: \"./tabs.component.scss\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n \"[class.tedi-tabs]\": \"true\",\n \"(keydown)\": \"onKeyDown($event)\",\n },\n})\nexport class TabsComponent implements OnInit {\n private injector = inject(Injector);\n mobileTabsOpened = signal(false);\n private tabs = contentChildren(TabComponent);\n private tabContents = contentChildren(TabContentComponent);\n private keyManager?: FocusKeyManager<TabComponent>;\n\n activeTabId = computed(() =>\n this.tabs()\n .find((tab) => tab.isTabActive())\n ?.tabId(),\n );\n activeTabContent = computed(() =>\n this.tabContents()\n .find((content) => content.tabId() === this.activeTabId())\n ?.content(),\n );\n\n onActiveTabChanges(tabs: readonly TabComponent[]) {\n tabs.forEach((tab) => {\n tab.tabSelected.subscribe(() => {\n this.mobileTabsOpened.set(false);\n tabs.forEach((otherTab) => {\n if (otherTab !== tab) {\n otherTab.selected.set(false);\n }\n });\n });\n });\n }\n\n onKeyDown(event: KeyboardEvent) {\n this.keyManager?.onKeydown(event);\n }\n\n constructor() {\n effect(() => {\n const tabs = this.tabs();\n this.onActiveTabChanges(tabs);\n });\n }\n\n ngOnInit() {\n this.keyManager = new FocusKeyManager(this.tabs, this.injector)\n .withWrap()\n .withHorizontalOrientation(\"ltr\");\n }\n}\n","<ng-template #tabsList><ng-content select=\"[tedi-tab]\" /></ng-template>\n\n<tedi-card padding=\"none\">\n <tedi-card-content>\n <div role=\"tablist\" class=\"tedi-tabs__tab-list\">\n @if (!mobileTabsOpened()) {\n <ng-container *ngTemplateOutlet=\"tabsList\" />\n }\n <button\n aria-haspopup=\"menu\"\n (click)=\"mobileTabsOpened.set(true)\"\n class=\"tedi-tab tedi-tab--more-btn\"\n >\n {{ \"more\" | tediTranslate }}\n <tedi-icon name=\"expand_more\" [size]=\"18\" />\n </button>\n </div>\n </tedi-card-content>\n\n <tedi-card-content role=\"tabpanel\" [attr.aria-labelledby]=\"activeTabId()\">\n @if (activeTabContent(); as activeContent) {\n <ng-container *ngTemplateOutlet=\"activeContent\" />\n }\n <ng-content></ng-content>\n </tedi-card-content>\n</tedi-card>\n\n@if (mobileTabsOpened()) {\n <tedi-card padding=\"none\" class=\"tedi-tabs__mobile-dropdown\">\n <tedi-card-content hasSeparator autoWidth padding=\"xs\">\n <button\n tedi-closing-button\n size=\"small\"\n (click)=\"mobileTabsOpened.set(false)\"\n ></button>\n </tedi-card-content>\n <tedi-card-content class=\"tedi-tabs__mobile-list\">\n <ng-container *ngTemplateOutlet=\"tabsList\" />\n </tedi-card-content>\n </tedi-card>\n}\n","import { CdkScrollable } from \"@angular/cdk/scrolling\";\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from \"@angular/core\";\n\nexport type TableSize = \"default\" | \"small\";\n\n@Component({\n selector: \"tedi-table-styles\",\n imports: [CdkScrollable],\n templateUrl: \"./table-styles.component.html\",\n styleUrl: \"./table-styles.component.scss\",\n host: {\n \"[class.tedi-table-styles]\": \"true\",\n \"[class.tedi-table-styles--striped]\": \"striped()\",\n \"[class.tedi-table-styles--vertical-borders]\": \"verticalBorders()\",\n \"[class.tedi-table-styles--clickable]\": \"clickable()\",\n \"[class.tedi-table-styles--sm]\": \"size() === 'small'\",\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableStylesComponent {\n size = input<TableSize>(\"default\");\n verticalBorders = input(false, { transform: booleanAttribute });\n striped = input(false, { transform: booleanAttribute });\n clickable = input(false, { transform: booleanAttribute });\n}\n","<div class=\"tedi-table-scroll\" cdkScrollable>\n <ng-content />\n</div>\n<ng-content select=\"tedi-pagination, [tedi-table-pagination]\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ChoiceGroupDirective","i1","i2","i3"],"mappings":"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"}