valtech-components 2.0.795 → 2.0.796

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 (1429) hide show
  1. package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +94 -0
  2. package/esm2022/lib/components/atoms/avatar/types.mjs +2 -0
  3. package/esm2022/lib/components/atoms/box/box.component.mjs +88 -0
  4. package/esm2022/lib/components/atoms/box/types.mjs +2 -0
  5. package/esm2022/lib/components/atoms/button/button.component.mjs +174 -0
  6. package/esm2022/lib/components/atoms/button/factory.mjs +217 -0
  7. package/esm2022/lib/components/atoms/container/container.component.mjs +52 -0
  8. package/esm2022/lib/components/atoms/container/types.mjs +2 -0
  9. package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +340 -0
  10. package/esm2022/lib/components/atoms/countdown/types.mjs +27 -0
  11. package/esm2022/lib/components/atoms/display/display.component.mjs +51 -0
  12. package/esm2022/lib/components/atoms/display/types.mjs +2 -0
  13. package/esm2022/lib/components/atoms/divider/divider.component.mjs +27 -0
  14. package/esm2022/lib/components/atoms/divider/types.mjs +2 -0
  15. package/esm2022/lib/components/atoms/fab/fab.component.mjs +190 -0
  16. package/esm2022/lib/components/atoms/fab/types.mjs +2 -0
  17. package/esm2022/lib/components/atoms/glass/glass.component.mjs +125 -0
  18. package/esm2022/lib/components/atoms/glass/types.mjs +2 -0
  19. package/esm2022/lib/components/atoms/glow/glow.component.mjs +95 -0
  20. package/esm2022/lib/components/atoms/glow/types.mjs +2 -0
  21. package/esm2022/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.mjs +82 -0
  22. package/esm2022/lib/components/atoms/horizontal-scroll/types.mjs +2 -0
  23. package/esm2022/lib/components/atoms/href/href.component.mjs +62 -0
  24. package/esm2022/lib/components/atoms/href/types.mjs +2 -0
  25. package/esm2022/lib/components/atoms/icon/icon.component.mjs +29 -0
  26. package/esm2022/lib/components/atoms/icon/types.mjs +2 -0
  27. package/esm2022/lib/components/atoms/image/image.component.mjs +507 -0
  28. package/esm2022/lib/components/atoms/image/types.mjs +2 -0
  29. package/esm2022/lib/components/atoms/pattern/motifs.mjs +147 -0
  30. package/esm2022/lib/components/atoms/pattern/pattern.component.mjs +178 -0
  31. package/esm2022/lib/components/atoms/pattern/types.mjs +2 -0
  32. package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +235 -0
  33. package/esm2022/lib/components/atoms/price-tag/types.mjs +15 -0
  34. package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +91 -0
  35. package/esm2022/lib/components/atoms/progress-bar/types.mjs +2 -0
  36. package/esm2022/lib/components/atoms/progress-ring/progress-ring.component.mjs +149 -0
  37. package/esm2022/lib/components/atoms/progress-ring/types.mjs +2 -0
  38. package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +394 -0
  39. package/esm2022/lib/components/atoms/qr-code/types.mjs +2 -0
  40. package/esm2022/lib/components/atoms/rights-footer/rights-footer.component.mjs +108 -0
  41. package/esm2022/lib/components/atoms/rights-footer/types.mjs +2 -0
  42. package/esm2022/lib/components/atoms/skeleton/skeleton.component.mjs +193 -0
  43. package/esm2022/lib/components/atoms/skeleton/types.mjs +13 -0
  44. package/esm2022/lib/components/atoms/text/text.component.mjs +132 -0
  45. package/esm2022/lib/components/atoms/text/types.mjs +2 -0
  46. package/esm2022/lib/components/atoms/title/title.component.mjs +68 -0
  47. package/esm2022/lib/components/atoms/title/types.mjs +22 -0
  48. package/esm2022/lib/components/atoms/user-avatar/types.mjs +2 -0
  49. package/esm2022/lib/components/atoms/user-avatar/user-avatar.component.mjs +209 -0
  50. package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +120 -0
  51. package/esm2022/lib/components/molecules/accordion/types.mjs +2 -0
  52. package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +273 -0
  53. package/esm2022/lib/components/molecules/action-card/types.mjs +11 -0
  54. package/esm2022/lib/components/molecules/action-header/action-header.component.mjs +55 -0
  55. package/esm2022/lib/components/molecules/action-header/types.mjs +2 -0
  56. package/esm2022/lib/components/molecules/ad-slot/ad-slot.component.mjs +274 -0
  57. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +119 -0
  58. package/esm2022/lib/components/molecules/alert-box/types.mjs +2 -0
  59. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +130 -0
  60. package/esm2022/lib/components/molecules/breadcrumb/types.mjs +2 -0
  61. package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +63 -0
  62. package/esm2022/lib/components/molecules/button-group/types.mjs +2 -0
  63. package/esm2022/lib/components/molecules/card/card.component.mjs +450 -0
  64. package/esm2022/lib/components/molecules/card/types.mjs +16 -0
  65. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +82 -0
  66. package/esm2022/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.mjs +79 -0
  67. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +166 -0
  68. package/esm2022/lib/components/molecules/chip-group/types.mjs +2 -0
  69. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +115 -0
  70. package/esm2022/lib/components/molecules/code-display/types.mjs +2 -0
  71. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +49 -0
  72. package/esm2022/lib/components/molecules/command-display/types.mjs +2 -0
  73. package/esm2022/lib/components/molecules/comment/comment.component.mjs +618 -0
  74. package/esm2022/lib/components/molecules/comment/types.mjs +2 -0
  75. package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +41 -0
  76. package/esm2022/lib/components/molecules/comment-input/types.mjs +2 -0
  77. package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +42 -0
  78. package/esm2022/lib/components/molecules/content-loader/types.mjs +2 -0
  79. package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +218 -0
  80. package/esm2022/lib/components/molecules/content-reaction/types.mjs +2 -0
  81. package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +347 -0
  82. package/esm2022/lib/components/molecules/currency-input/types.mjs +18 -0
  83. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +148 -0
  84. package/esm2022/lib/components/molecules/date-input/types.mjs +2 -0
  85. package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +416 -0
  86. package/esm2022/lib/components/molecules/date-range-input/types.mjs +2 -0
  87. package/esm2022/lib/components/molecules/docs-api-table/docs-api-table.component.mjs +222 -0
  88. package/esm2022/lib/components/molecules/docs-api-table/types.mjs +11 -0
  89. package/esm2022/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.mjs +144 -0
  90. package/esm2022/lib/components/molecules/docs-breadcrumb/types.mjs +2 -0
  91. package/esm2022/lib/components/molecules/docs-callout/docs-callout.component.mjs +60 -0
  92. package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +249 -0
  93. package/esm2022/lib/components/molecules/docs-code-example/types.mjs +2 -0
  94. package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +140 -0
  95. package/esm2022/lib/components/molecules/docs-nav-links/types.mjs +2 -0
  96. package/esm2022/lib/components/molecules/docs-search/docs-search.component.mjs +268 -0
  97. package/esm2022/lib/components/molecules/docs-search/types.mjs +2 -0
  98. package/esm2022/lib/components/molecules/docs-section/docs-section.component.mjs +85 -0
  99. package/esm2022/lib/components/molecules/docs-section/types.mjs +2 -0
  100. package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +68 -0
  101. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +77 -0
  102. package/esm2022/lib/components/molecules/expandable-text/types.mjs +2 -0
  103. package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +179 -0
  104. package/esm2022/lib/components/molecules/features-list/types.mjs +11 -0
  105. package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +354 -0
  106. package/esm2022/lib/components/molecules/feedback-form/types.mjs +2 -0
  107. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +90 -0
  108. package/esm2022/lib/components/molecules/file-input/types.mjs +2 -0
  109. package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +391 -0
  110. package/esm2022/lib/components/molecules/footer-links/types.mjs +2 -0
  111. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +314 -0
  112. package/esm2022/lib/components/molecules/glow-card/types.mjs +11 -0
  113. package/esm2022/lib/components/molecules/hint/hint.component.mjs +90 -0
  114. package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +28 -0
  115. package/esm2022/lib/components/molecules/image-crop/image-crop.component.mjs +174 -0
  116. package/esm2022/lib/components/molecules/image-crop/index.mjs +2 -0
  117. package/esm2022/lib/components/molecules/info/info.component.mjs +49 -0
  118. package/esm2022/lib/components/molecules/info/types.mjs +2 -0
  119. package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +221 -0
  120. package/esm2022/lib/components/molecules/language-selector/types.mjs +2 -0
  121. package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +104 -0
  122. package/esm2022/lib/components/molecules/layered-card/types.mjs +2 -0
  123. package/esm2022/lib/components/molecules/link/link.component.mjs +64 -0
  124. package/esm2022/lib/components/molecules/link/types.mjs +2 -0
  125. package/esm2022/lib/components/molecules/linked-providers/linked-providers.component.mjs +236 -0
  126. package/esm2022/lib/components/molecules/linked-providers/types.mjs +27 -0
  127. package/esm2022/lib/components/molecules/links-accordion/links-accordion.component.mjs +203 -0
  128. package/esm2022/lib/components/molecules/links-accordion/types.mjs +2 -0
  129. package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +51 -0
  130. package/esm2022/lib/components/molecules/links-cake/types.mjs +2 -0
  131. package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +488 -0
  132. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +92 -0
  133. package/esm2022/lib/components/molecules/notes-box/types.mjs +2 -0
  134. package/esm2022/lib/components/molecules/number-from-to/number-from-to.component.mjs +143 -0
  135. package/esm2022/lib/components/molecules/number-from-to/types.mjs +2 -0
  136. package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +34 -0
  137. package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +379 -0
  138. package/esm2022/lib/components/molecules/number-stepper/types.mjs +2 -0
  139. package/esm2022/lib/components/molecules/page-links/page-links.component.mjs +150 -0
  140. package/esm2022/lib/components/molecules/page-links/types.mjs +2 -0
  141. package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +253 -0
  142. package/esm2022/lib/components/molecules/pagination/types.mjs +2 -0
  143. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +93 -0
  144. package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +365 -0
  145. package/esm2022/lib/components/molecules/phone-input/types.mjs +19 -0
  146. package/esm2022/lib/components/molecules/pill/pill.component.mjs +92 -0
  147. package/esm2022/lib/components/molecules/pill/types.mjs +2 -0
  148. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +78 -0
  149. package/esm2022/lib/components/molecules/pin-input/types.mjs +2 -0
  150. package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +82 -0
  151. package/esm2022/lib/components/molecules/plain-code-box/types.mjs +2 -0
  152. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +188 -0
  153. package/esm2022/lib/components/molecules/popover-selector/types.mjs +2 -0
  154. package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +105 -0
  155. package/esm2022/lib/components/molecules/progress-status/types.mjs +2 -0
  156. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +85 -0
  157. package/esm2022/lib/components/molecules/prompter/types.mjs +2 -0
  158. package/esm2022/lib/components/molecules/quote-box/quote-box.component.mjs +155 -0
  159. package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +52 -0
  160. package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +127 -0
  161. package/esm2022/lib/components/molecules/range-input/types.mjs +2 -0
  162. package/esm2022/lib/components/molecules/rating/rating.component.mjs +166 -0
  163. package/esm2022/lib/components/molecules/rating/types.mjs +2 -0
  164. package/esm2022/lib/components/molecules/refresher/refresher.component.mjs +271 -0
  165. package/esm2022/lib/components/molecules/refresher/types.mjs +15 -0
  166. package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +127 -0
  167. package/esm2022/lib/components/molecules/searchbar/types.mjs +2 -0
  168. package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +129 -0
  169. package/esm2022/lib/components/molecules/segment-control/types.mjs +2 -0
  170. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +148 -0
  171. package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +434 -0
  172. package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +274 -0
  173. package/esm2022/lib/components/molecules/share-buttons/types.mjs +88 -0
  174. package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +211 -0
  175. package/esm2022/lib/components/molecules/stats-card/types.mjs +2 -0
  176. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +242 -0
  177. package/esm2022/lib/components/molecules/stepper/types.mjs +2 -0
  178. package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +206 -0
  179. package/esm2022/lib/components/molecules/swipe-carousel/types.mjs +2 -0
  180. package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +139 -0
  181. package/esm2022/lib/components/molecules/tabs/types.mjs +2 -0
  182. package/esm2022/lib/components/molecules/testimonial-card/testimonial-card.component.mjs +138 -0
  183. package/esm2022/lib/components/molecules/testimonial-card/types.mjs +2 -0
  184. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +77 -0
  185. package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +213 -0
  186. package/esm2022/lib/components/molecules/textarea-input/types.mjs +2 -0
  187. package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +140 -0
  188. package/esm2022/lib/components/molecules/timeline/types.mjs +2 -0
  189. package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +102 -0
  190. package/esm2022/lib/components/molecules/title-block/types.mjs +2 -0
  191. package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +93 -0
  192. package/esm2022/lib/components/molecules/toggle-input/types.mjs +2 -0
  193. package/esm2022/lib/components/molecules/update-banner/update-banner.component.mjs +112 -0
  194. package/esm2022/lib/components/molecules/username-input/types.mjs +2 -0
  195. package/esm2022/lib/components/molecules/username-input/username-input.component.mjs +295 -0
  196. package/esm2022/lib/components/organisms/article/article.component.mjs +578 -0
  197. package/esm2022/lib/components/organisms/article/types.mjs +183 -0
  198. package/esm2022/lib/components/organisms/avatar-upload/avatar-upload.component.mjs +325 -0
  199. package/esm2022/lib/components/organisms/avatar-upload/types.mjs +15 -0
  200. package/esm2022/lib/components/organisms/banner/banner.component.mjs +111 -0
  201. package/esm2022/lib/components/organisms/banner/types.mjs +2 -0
  202. package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +383 -0
  203. package/esm2022/lib/components/organisms/bottom-nav/types.mjs +19 -0
  204. package/esm2022/lib/components/organisms/cards-carousel/cards-carousel.component.mjs +108 -0
  205. package/esm2022/lib/components/organisms/cards-carousel/types.mjs +2 -0
  206. package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +537 -0
  207. package/esm2022/lib/components/organisms/comment-section/types.mjs +2 -0
  208. package/esm2022/lib/components/organisms/company-footer/company-footer.component.mjs +76 -0
  209. package/esm2022/lib/components/organisms/company-footer/types.mjs +2 -0
  210. package/esm2022/lib/components/organisms/cookie-banner/cookie-banner.component.mjs +199 -0
  211. package/esm2022/lib/components/organisms/cookie-banner/types.mjs +2 -0
  212. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +1081 -0
  213. package/esm2022/lib/components/organisms/data-table/types.mjs +13 -0
  214. package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +290 -0
  215. package/esm2022/lib/components/organisms/docs-sidebar/types.mjs +2 -0
  216. package/esm2022/lib/components/organisms/docs-toc/docs-toc.component.mjs +307 -0
  217. package/esm2022/lib/components/organisms/docs-toc/types.mjs +2 -0
  218. package/esm2022/lib/components/organisms/footer/footer.component.mjs +73 -0
  219. package/esm2022/lib/components/organisms/footer/types.mjs +2 -0
  220. package/esm2022/lib/components/organisms/form/factory.mjs +29 -0
  221. package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +83 -0
  222. package/esm2022/lib/components/organisms/form/form.component.mjs +508 -0
  223. package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +225 -0
  224. package/esm2022/lib/components/organisms/fun-header/types.mjs +2 -0
  225. package/esm2022/lib/components/organisms/header/header.component.mjs +51 -0
  226. package/esm2022/lib/components/organisms/header/types.mjs +2 -0
  227. package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +620 -0
  228. package/esm2022/lib/components/organisms/infinite-list/types.mjs +15 -0
  229. package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +418 -0
  230. package/esm2022/lib/components/organisms/item-list/types.mjs +2 -0
  231. package/esm2022/lib/components/organisms/login/login.component.mjs +741 -0
  232. package/esm2022/lib/components/organisms/login/types.mjs +11 -0
  233. package/esm2022/lib/components/organisms/menu/menu.component.mjs +206 -0
  234. package/esm2022/lib/components/organisms/menu/types.mjs +2 -0
  235. package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +66 -0
  236. package/esm2022/lib/components/organisms/no-content/types.mjs +2 -0
  237. package/esm2022/lib/components/organisms/rotating-text/rotating-text.component.mjs +180 -0
  238. package/esm2022/lib/components/organisms/rotating-text/types.mjs +2 -0
  239. package/esm2022/lib/components/organisms/tabbed-content/tabbed-content.component.mjs +170 -0
  240. package/esm2022/lib/components/organisms/tabbed-content/types.mjs +2 -0
  241. package/esm2022/lib/components/organisms/terminal-404/terminal-404.component.mjs +214 -0
  242. package/esm2022/lib/components/organisms/terminal-404/types.mjs +2 -0
  243. package/esm2022/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.mjs +72 -0
  244. package/esm2022/lib/components/organisms/testimonial-carousel/types.mjs +2 -0
  245. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +255 -0
  246. package/esm2022/lib/components/organisms/toolbar/types.mjs +2 -0
  247. package/esm2022/lib/components/organisms/wizard/types.mjs +10 -0
  248. package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +111 -0
  249. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +161 -0
  250. package/esm2022/lib/components/templates/auth-background/auth-background.component.mjs +164 -0
  251. package/esm2022/lib/components/templates/auth-background/types.mjs +2 -0
  252. package/esm2022/lib/components/templates/docs-layout/docs-layout.component.mjs +221 -0
  253. package/esm2022/lib/components/templates/docs-layout/types.mjs +2 -0
  254. package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +251 -0
  255. package/esm2022/lib/components/templates/docs-page/types.mjs +2 -0
  256. package/esm2022/lib/components/templates/docs-shell/docs-shell.component.mjs +376 -0
  257. package/esm2022/lib/components/templates/docs-shell/types.mjs +2 -0
  258. package/esm2022/lib/components/templates/maintenance-page/maintenance-page.component.mjs +153 -0
  259. package/esm2022/lib/components/templates/maintenance-page/types.mjs +2 -0
  260. package/esm2022/lib/components/templates/page-content/page-content.component.mjs +193 -0
  261. package/esm2022/lib/components/templates/page-content/types.mjs +2 -0
  262. package/esm2022/lib/components/templates/page-template/page-template.component.mjs +188 -0
  263. package/esm2022/lib/components/templates/page-template/types.mjs +2 -0
  264. package/esm2022/lib/components/templates/page-wrapper/page-wrapper.component.mjs +192 -0
  265. package/esm2022/lib/components/templates/page-wrapper/types.mjs +2 -0
  266. package/esm2022/lib/components/templates/simple/simple.component.mjs +123 -0
  267. package/esm2022/lib/components/templates/simple/types.mjs +2 -0
  268. package/esm2022/lib/components/types.mjs +60 -0
  269. package/esm2022/lib/config/company-footer.config.mjs +123 -0
  270. package/esm2022/lib/config/index.mjs +5 -0
  271. package/esm2022/lib/services/ads/ads-loader.service.mjs +120 -0
  272. package/esm2022/lib/services/ads/ads.service.mjs +236 -0
  273. package/esm2022/lib/services/ads/config.mjs +81 -0
  274. package/esm2022/lib/services/ads/index.mjs +13 -0
  275. package/esm2022/lib/services/ads/types.mjs +23 -0
  276. package/esm2022/lib/services/app-config/app-config.service.mjs +209 -0
  277. package/esm2022/lib/services/app-config/config.mjs +47 -0
  278. package/esm2022/lib/services/app-config/index.mjs +48 -0
  279. package/esm2022/lib/services/app-config/types.mjs +13 -0
  280. package/esm2022/lib/services/app-config/version.mjs +85 -0
  281. package/esm2022/lib/services/auth/auth-state.service.mjs +207 -0
  282. package/esm2022/lib/services/auth/auth.service.mjs +1142 -0
  283. package/esm2022/lib/services/auth/config.mjs +75 -0
  284. package/esm2022/lib/services/auth/device.service.mjs +135 -0
  285. package/esm2022/lib/services/auth/guards.mjs +194 -0
  286. package/esm2022/lib/services/auth/handoff.service.mjs +152 -0
  287. package/esm2022/lib/services/auth/index.mjs +98 -0
  288. package/esm2022/lib/services/auth/interceptor.mjs +122 -0
  289. package/esm2022/lib/services/auth/notification-action.service.mjs +117 -0
  290. package/esm2022/lib/services/auth/oauth-callback.component.mjs +169 -0
  291. package/esm2022/lib/services/auth/oauth.service.mjs +318 -0
  292. package/esm2022/lib/services/auth/org-switch.service.mjs +137 -0
  293. package/esm2022/lib/services/auth/session.service.mjs +78 -0
  294. package/esm2022/lib/services/auth/storage.service.mjs +152 -0
  295. package/esm2022/lib/services/auth/sync.service.mjs +149 -0
  296. package/esm2022/lib/services/auth/token.service.mjs +122 -0
  297. package/esm2022/lib/services/auth/types.mjs +30 -0
  298. package/esm2022/lib/services/confirmation-dialog/confirmation-dialog.service.mjs +189 -0
  299. package/esm2022/lib/services/confirmation-dialog/types.mjs +14 -0
  300. package/esm2022/lib/services/content/content-types/blog.mjs +275 -0
  301. package/esm2022/lib/services/content/content-types/documentation.mjs +303 -0
  302. package/esm2022/lib/services/content/content-types/news.mjs +277 -0
  303. package/esm2022/lib/services/content/index.mjs +51 -0
  304. package/esm2022/lib/services/content/transformer.mjs +265 -0
  305. package/esm2022/lib/services/content/types.mjs +41 -0
  306. package/esm2022/lib/services/docs/docs-navigation.service.mjs +91 -0
  307. package/esm2022/lib/services/download.service.mjs +80 -0
  308. package/esm2022/lib/services/feedback/config.mjs +49 -0
  309. package/esm2022/lib/services/feedback/feedback.service.mjs +296 -0
  310. package/esm2022/lib/services/feedback/index.mjs +44 -0
  311. package/esm2022/lib/services/feedback/types.mjs +30 -0
  312. package/esm2022/lib/services/firebase/analytics-error-handler.mjs +141 -0
  313. package/esm2022/lib/services/firebase/analytics-router-tracker.mjs +99 -0
  314. package/esm2022/lib/services/firebase/analytics-types.mjs +7 -0
  315. package/esm2022/lib/services/firebase/analytics.service.mjs +620 -0
  316. package/esm2022/lib/services/firebase/config.mjs +131 -0
  317. package/esm2022/lib/services/firebase/firebase.service.mjs +456 -0
  318. package/esm2022/lib/services/firebase/firestore-collection.mjs +301 -0
  319. package/esm2022/lib/services/firebase/firestore.service.mjs +571 -0
  320. package/esm2022/lib/services/firebase/index.mjs +56 -0
  321. package/esm2022/lib/services/firebase/messaging.service.mjs +650 -0
  322. package/esm2022/lib/services/firebase/notifications.service.mjs +242 -0
  323. package/esm2022/lib/services/firebase/shared-config.mjs +147 -0
  324. package/esm2022/lib/services/firebase/storage.service.mjs +484 -0
  325. package/esm2022/lib/services/firebase/types.mjs +18 -0
  326. package/esm2022/lib/services/firebase/utils/path-builder.mjs +195 -0
  327. package/esm2022/lib/services/firebase/utils/query-builder.mjs +302 -0
  328. package/esm2022/lib/services/i18n/config.mjs +128 -0
  329. package/esm2022/lib/services/i18n/default-content.mjs +577 -0
  330. package/esm2022/lib/services/i18n/i18n.service.mjs +217 -0
  331. package/esm2022/lib/services/i18n/index.mjs +13 -0
  332. package/esm2022/lib/services/i18n/input-i18n.helper.mjs +97 -0
  333. package/esm2022/lib/services/i18n/translate.pipe.mjs +50 -0
  334. package/esm2022/lib/services/i18n/types.mjs +15 -0
  335. package/esm2022/lib/services/icons.service.mjs +83 -0
  336. package/esm2022/lib/services/image/image.service.mjs +244 -0
  337. package/esm2022/lib/services/image/index.mjs +3 -0
  338. package/esm2022/lib/services/image/types.mjs +13 -0
  339. package/esm2022/lib/services/in-app-browser.service.mjs +35 -0
  340. package/esm2022/lib/services/legal-link/legal-link.service.mjs +85 -0
  341. package/esm2022/lib/services/link-processor.service.mjs +259 -0
  342. package/esm2022/lib/services/local-storage.service.mjs +37 -0
  343. package/esm2022/lib/services/locale.service.mjs +75 -0
  344. package/esm2022/lib/services/markdown-article/legal-content.service.mjs +107 -0
  345. package/esm2022/lib/services/markdown-article/markdown-article-parser.mjs +302 -0
  346. package/esm2022/lib/services/markdown-article/markdown-article-parser.service.mjs +20 -0
  347. package/esm2022/lib/services/meta/index.mjs +3 -0
  348. package/esm2022/lib/services/meta/meta.service.mjs +63 -0
  349. package/esm2022/lib/services/meta/types.mjs +2 -0
  350. package/esm2022/lib/services/modal/modal.service.mjs +212 -0
  351. package/esm2022/lib/services/modal/simple-modal-content.component.mjs +133 -0
  352. package/esm2022/lib/services/modal/types.mjs +26 -0
  353. package/esm2022/lib/services/navigation/index.mjs +3 -0
  354. package/esm2022/lib/services/navigation/navigation.service.mjs +216 -0
  355. package/esm2022/lib/services/navigation/types.mjs +16 -0
  356. package/esm2022/lib/services/pagination/index.mjs +5 -0
  357. package/esm2022/lib/services/pagination/pagination.service.mjs +218 -0
  358. package/esm2022/lib/services/pagination/types.mjs +14 -0
  359. package/esm2022/lib/services/preferences/index.mjs +3 -0
  360. package/esm2022/lib/services/preferences/preferences.service.mjs +172 -0
  361. package/esm2022/lib/services/preferences/preferences.types.mjs +7 -0
  362. package/esm2022/lib/services/presets/config.mjs +46 -0
  363. package/esm2022/lib/services/presets/index.mjs +5 -0
  364. package/esm2022/lib/services/presets/preset.service.mjs +104 -0
  365. package/esm2022/lib/services/presets/types.mjs +2 -0
  366. package/esm2022/lib/services/qr-generator/qr-generator.service.mjs +341 -0
  367. package/esm2022/lib/services/qr-generator/types.mjs +46 -0
  368. package/esm2022/lib/services/skeleton/config.mjs +79 -0
  369. package/esm2022/lib/services/skeleton/directives/loading.directive.mjs +215 -0
  370. package/esm2022/lib/services/skeleton/index.mjs +16 -0
  371. package/esm2022/lib/services/skeleton/skeleton.service.mjs +198 -0
  372. package/esm2022/lib/services/skeleton/templates/detail-skeleton.component.mjs +223 -0
  373. package/esm2022/lib/services/skeleton/templates/form-skeleton.component.mjs +127 -0
  374. package/esm2022/lib/services/skeleton/templates/grid-skeleton.component.mjs +154 -0
  375. package/esm2022/lib/services/skeleton/templates/list-skeleton.component.mjs +110 -0
  376. package/esm2022/lib/services/skeleton/templates/profile-skeleton.component.mjs +207 -0
  377. package/esm2022/lib/services/skeleton/templates/table-skeleton.component.mjs +116 -0
  378. package/esm2022/lib/services/skeleton/types.mjs +11 -0
  379. package/esm2022/lib/services/theme.service.mjs +153 -0
  380. package/esm2022/lib/services/toast.service.mjs +47 -0
  381. package/esm2022/lib/services/types.mjs +5 -0
  382. package/esm2022/lib/shared/constants/storage.mjs +3 -0
  383. package/esm2022/lib/shared/pipes/process-links.pipe.mjs +69 -0
  384. package/esm2022/lib/shared/utils/datetime.mjs +24 -0
  385. package/esm2022/lib/shared/utils/dom.mjs +27 -0
  386. package/esm2022/lib/shared/utils/form-defaults.mjs +112 -0
  387. package/esm2022/lib/shared/utils/styles.mjs +37 -0
  388. package/esm2022/lib/shared/utils/text.mjs +12 -0
  389. package/esm2022/lib/version.mjs +6 -0
  390. package/esm2022/public-api.mjs +349 -0
  391. package/esm2022/valtech-components.mjs +5 -0
  392. package/fesm2022/valtech-components.mjs +44147 -0
  393. package/fesm2022/valtech-components.mjs.map +1 -0
  394. package/index.d.ts +5 -0
  395. package/lib/components/atoms/avatar/avatar.component.d.ts +36 -0
  396. package/lib/components/atoms/avatar/types.d.ts +15 -0
  397. package/lib/components/atoms/box/box.component.d.ts +26 -0
  398. package/lib/components/atoms/box/types.d.ts +19 -0
  399. package/lib/components/atoms/button/button.component.d.ts +63 -0
  400. package/lib/components/atoms/button/factory.d.ts +71 -0
  401. package/lib/components/atoms/container/container.component.d.ts +30 -0
  402. package/lib/components/atoms/container/types.d.ts +11 -0
  403. package/lib/components/atoms/countdown/countdown.component.d.ts +38 -0
  404. package/lib/components/atoms/countdown/types.d.ts +108 -0
  405. package/lib/components/atoms/display/display.component.d.ts +19 -0
  406. package/lib/components/atoms/display/types.d.ts +33 -0
  407. package/lib/components/atoms/divider/divider.component.d.ts +27 -0
  408. package/lib/components/atoms/divider/types.d.ts +12 -0
  409. package/lib/components/atoms/fab/fab.component.d.ts +36 -0
  410. package/lib/components/atoms/fab/types.d.ts +45 -0
  411. package/lib/components/atoms/glass/glass.component.d.ts +43 -0
  412. package/lib/components/atoms/glass/types.d.ts +70 -0
  413. package/lib/components/atoms/glow/glow.component.d.ts +42 -0
  414. package/lib/components/atoms/glow/types.d.ts +40 -0
  415. package/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.d.ts +41 -0
  416. package/lib/components/atoms/horizontal-scroll/types.d.ts +13 -0
  417. package/lib/components/atoms/href/href.component.d.ts +25 -0
  418. package/lib/components/atoms/href/types.d.ts +19 -0
  419. package/lib/components/atoms/icon/icon.component.d.ts +18 -0
  420. package/lib/components/atoms/icon/types.d.ts +13 -0
  421. package/lib/components/atoms/image/image.component.d.ts +41 -0
  422. package/lib/components/atoms/image/types.d.ts +37 -0
  423. package/lib/components/atoms/pattern/motifs.d.ts +60 -0
  424. package/lib/components/atoms/pattern/pattern.component.d.ts +68 -0
  425. package/lib/components/atoms/pattern/types.d.ts +61 -0
  426. package/lib/components/atoms/price-tag/price-tag.component.d.ts +15 -0
  427. package/lib/components/atoms/price-tag/types.d.ts +59 -0
  428. package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +35 -0
  429. package/lib/components/atoms/progress-bar/types.d.ts +19 -0
  430. package/lib/components/atoms/progress-ring/progress-ring.component.d.ts +20 -0
  431. package/lib/components/atoms/progress-ring/types.d.ts +24 -0
  432. package/lib/components/atoms/qr-code/qr-code.component.d.ts +33 -0
  433. package/lib/components/atoms/qr-code/types.d.ts +124 -0
  434. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +53 -0
  435. package/lib/components/atoms/rights-footer/types.d.ts +21 -0
  436. package/lib/components/atoms/skeleton/skeleton.component.d.ts +12 -0
  437. package/lib/components/atoms/skeleton/types.d.ts +29 -0
  438. package/lib/components/atoms/text/text.component.d.ts +33 -0
  439. package/lib/components/atoms/text/types.d.ts +42 -0
  440. package/lib/components/atoms/title/title.component.d.ts +21 -0
  441. package/lib/components/atoms/title/types.d.ts +36 -0
  442. package/lib/components/atoms/user-avatar/types.d.ts +74 -0
  443. package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +55 -0
  444. package/lib/components/molecules/accordion/accordion.component.d.ts +18 -0
  445. package/lib/components/molecules/accordion/types.d.ts +47 -0
  446. package/lib/components/molecules/action-card/action-card.component.d.ts +90 -0
  447. package/lib/components/molecules/action-card/types.d.ts +83 -0
  448. package/lib/components/molecules/action-header/action-header.component.d.ts +27 -0
  449. package/lib/components/molecules/action-header/types.d.ts +27 -0
  450. package/lib/components/molecules/ad-slot/ad-slot.component.d.ts +69 -0
  451. package/lib/components/molecules/alert-box/alert-box.component.d.ts +39 -0
  452. package/lib/components/molecules/alert-box/types.d.ts +37 -0
  453. package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +22 -0
  454. package/lib/components/molecules/breadcrumb/types.d.ts +45 -0
  455. package/lib/components/molecules/button-group/button-group.component.d.ts +23 -0
  456. package/lib/components/molecules/button-group/types.d.ts +13 -0
  457. package/lib/components/molecules/card/card.component.d.ts +49 -0
  458. package/lib/components/molecules/card/types.d.ts +32 -0
  459. package/lib/components/molecules/check-input/check-input.component.d.ts +36 -0
  460. package/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.d.ts +17 -0
  461. package/lib/components/molecules/chip-group/chip-group.component.d.ts +22 -0
  462. package/lib/components/molecules/chip-group/types.d.ts +65 -0
  463. package/lib/components/molecules/code-display/code-display.component.d.ts +24 -0
  464. package/lib/components/molecules/code-display/types.d.ts +10 -0
  465. package/lib/components/molecules/command-display/command-display.component.d.ts +11 -0
  466. package/lib/components/molecules/command-display/types.d.ts +3 -0
  467. package/lib/components/molecules/comment/comment.component.d.ts +42 -0
  468. package/lib/components/molecules/comment/types.d.ts +171 -0
  469. package/lib/components/molecules/comment-input/comment-input.component.d.ts +16 -0
  470. package/lib/components/molecules/comment-input/types.d.ts +59 -0
  471. package/lib/components/molecules/content-loader/content-loader.component.d.ts +18 -0
  472. package/lib/components/molecules/content-loader/types.d.ts +15 -0
  473. package/lib/components/molecules/content-reaction/content-reaction.component.d.ts +58 -0
  474. package/lib/components/molecules/content-reaction/types.d.ts +77 -0
  475. package/lib/components/molecules/currency-input/currency-input.component.d.ts +40 -0
  476. package/lib/components/molecules/currency-input/types.d.ts +96 -0
  477. package/lib/components/molecules/date-input/date-input.component.d.ts +40 -0
  478. package/lib/components/molecules/date-input/types.d.ts +74 -0
  479. package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +50 -0
  480. package/lib/components/molecules/date-range-input/types.d.ts +109 -0
  481. package/lib/components/molecules/docs-api-table/docs-api-table.component.d.ts +41 -0
  482. package/lib/components/molecules/docs-api-table/types.d.ts +62 -0
  483. package/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.d.ts +31 -0
  484. package/lib/components/molecules/docs-breadcrumb/types.d.ts +20 -0
  485. package/lib/components/molecules/docs-callout/docs-callout.component.d.ts +17 -0
  486. package/lib/components/molecules/docs-code-example/docs-code-example.component.d.ts +45 -0
  487. package/lib/components/molecules/docs-code-example/types.d.ts +63 -0
  488. package/lib/components/molecules/docs-nav-links/docs-nav-links.component.d.ts +30 -0
  489. package/lib/components/molecules/docs-nav-links/types.d.ts +31 -0
  490. package/lib/components/molecules/docs-search/docs-search.component.d.ts +47 -0
  491. package/lib/components/molecules/docs-search/types.d.ts +27 -0
  492. package/lib/components/molecules/docs-section/docs-section.component.d.ts +29 -0
  493. package/lib/components/molecules/docs-section/types.d.ts +27 -0
  494. package/lib/components/molecules/email-input/email-input.component.d.ts +34 -0
  495. package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +23 -0
  496. package/lib/components/molecules/expandable-text/types.d.ts +14 -0
  497. package/lib/components/molecules/features-list/features-list.component.d.ts +66 -0
  498. package/lib/components/molecules/features-list/types.d.ts +36 -0
  499. package/lib/components/molecules/feedback-form/feedback-form.component.d.ts +58 -0
  500. package/lib/components/molecules/feedback-form/types.d.ts +54 -0
  501. package/lib/components/molecules/file-input/file-input.component.d.ts +25 -0
  502. package/lib/components/molecules/file-input/types.d.ts +72 -0
  503. package/lib/components/molecules/footer-links/footer-links.component.d.ts +47 -0
  504. package/lib/components/molecules/footer-links/types.d.ts +50 -0
  505. package/lib/components/molecules/glow-card/glow-card.component.d.ts +60 -0
  506. package/lib/components/molecules/glow-card/types.d.ts +94 -0
  507. package/lib/components/molecules/hint/hint.component.d.ts +19 -0
  508. package/lib/components/molecules/hour-input/hour-input.component.d.ts +15 -0
  509. package/lib/components/molecules/image-crop/image-crop.component.d.ts +59 -0
  510. package/lib/components/molecules/info/info.component.d.ts +9 -0
  511. package/lib/components/molecules/info/types.d.ts +10 -0
  512. package/lib/components/molecules/language-selector/language-selector.component.d.ts +40 -0
  513. package/lib/components/molecules/language-selector/types.d.ts +82 -0
  514. package/lib/components/molecules/layered-card/layered-card.component.d.ts +10 -0
  515. package/lib/components/molecules/layered-card/types.d.ts +15 -0
  516. package/lib/components/molecules/link/link.component.d.ts +24 -0
  517. package/lib/components/molecules/link/types.d.ts +19 -0
  518. package/lib/components/molecules/linked-providers/linked-providers.component.d.ts +30 -0
  519. package/lib/components/molecules/linked-providers/types.d.ts +38 -0
  520. package/lib/components/molecules/links-accordion/links-accordion.component.d.ts +61 -0
  521. package/lib/components/molecules/links-accordion/types.d.ts +39 -0
  522. package/lib/components/molecules/links-cake/links-cake.component.d.ts +17 -0
  523. package/lib/components/molecules/links-cake/types.d.ts +13 -0
  524. package/lib/components/molecules/multi-select-search/multi-select-search.component.d.ts +76 -0
  525. package/lib/components/molecules/notes-box/notes-box.component.d.ts +33 -0
  526. package/lib/components/molecules/notes-box/types.d.ts +35 -0
  527. package/lib/components/molecules/number-from-to/number-from-to.component.d.ts +27 -0
  528. package/lib/components/molecules/number-from-to/types.d.ts +76 -0
  529. package/lib/components/molecules/number-input/number-input.component.d.ts +16 -0
  530. package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +38 -0
  531. package/lib/components/molecules/number-stepper/types.d.ts +88 -0
  532. package/lib/components/molecules/page-links/page-links.component.d.ts +29 -0
  533. package/lib/components/molecules/page-links/types.d.ts +38 -0
  534. package/lib/components/molecules/pagination/pagination.component.d.ts +15 -0
  535. package/lib/components/molecules/pagination/types.d.ts +41 -0
  536. package/lib/components/molecules/password-input/password-input.component.d.ts +37 -0
  537. package/lib/components/molecules/phone-input/phone-input.component.d.ts +59 -0
  538. package/lib/components/molecules/phone-input/types.d.ts +98 -0
  539. package/lib/components/molecules/pill/pill.component.d.ts +33 -0
  540. package/lib/components/molecules/pill/types.d.ts +9 -0
  541. package/lib/components/molecules/pin-input/pin-input.component.d.ts +21 -0
  542. package/lib/components/molecules/pin-input/types.d.ts +69 -0
  543. package/lib/components/molecules/plain-code-box/plain-code-box.component.d.ts +22 -0
  544. package/lib/components/molecules/plain-code-box/types.d.ts +10 -0
  545. package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +42 -0
  546. package/lib/components/molecules/popover-selector/types.d.ts +69 -0
  547. package/lib/components/molecules/progress-status/progress-status.component.d.ts +23 -0
  548. package/lib/components/molecules/progress-status/types.d.ts +20 -0
  549. package/lib/components/molecules/prompter/prompter.component.d.ts +10 -0
  550. package/lib/components/molecules/prompter/types.d.ts +25 -0
  551. package/lib/components/molecules/quote-box/quote-box.component.d.ts +26 -0
  552. package/lib/components/molecules/radio-input/radio-input.component.d.ts +15 -0
  553. package/lib/components/molecules/range-input/range-input.component.d.ts +25 -0
  554. package/lib/components/molecules/range-input/types.d.ts +59 -0
  555. package/lib/components/molecules/rating/rating.component.d.ts +23 -0
  556. package/lib/components/molecules/rating/types.d.ts +41 -0
  557. package/lib/components/molecules/refresher/refresher.component.d.ts +84 -0
  558. package/lib/components/molecules/refresher/types.d.ts +86 -0
  559. package/lib/components/molecules/searchbar/searchbar.component.d.ts +43 -0
  560. package/lib/components/molecules/searchbar/types.d.ts +33 -0
  561. package/lib/components/molecules/segment-control/segment-control.component.d.ts +35 -0
  562. package/lib/components/molecules/segment-control/types.d.ts +46 -0
  563. package/lib/components/molecules/select-input/select-input.component.d.ts +57 -0
  564. package/lib/components/molecules/select-search/select-search.component.d.ts +78 -0
  565. package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +22 -0
  566. package/lib/components/molecules/share-buttons/types.d.ts +108 -0
  567. package/lib/components/molecules/stats-card/stats-card.component.d.ts +20 -0
  568. package/lib/components/molecules/stats-card/types.d.ts +60 -0
  569. package/lib/components/molecules/stepper/stepper.component.d.ts +31 -0
  570. package/lib/components/molecules/stepper/types.d.ts +66 -0
  571. package/lib/components/molecules/swipe-carousel/swipe-carousel.component.d.ts +66 -0
  572. package/lib/components/molecules/swipe-carousel/types.d.ts +35 -0
  573. package/lib/components/molecules/tabs/tabs.component.d.ts +34 -0
  574. package/lib/components/molecules/tabs/types.d.ts +45 -0
  575. package/lib/components/molecules/testimonial-card/testimonial-card.component.d.ts +41 -0
  576. package/lib/components/molecules/testimonial-card/types.d.ts +25 -0
  577. package/lib/components/molecules/text-input/text-input.component.d.ts +42 -0
  578. package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +46 -0
  579. package/lib/components/molecules/textarea-input/types.d.ts +74 -0
  580. package/lib/components/molecules/timeline/timeline.component.d.ts +14 -0
  581. package/lib/components/molecules/timeline/types.d.ts +39 -0
  582. package/lib/components/molecules/title-block/title-block.component.d.ts +12 -0
  583. package/lib/components/molecules/title-block/types.d.ts +15 -0
  584. package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +39 -0
  585. package/lib/components/molecules/toggle-input/types.d.ts +30 -0
  586. package/lib/components/molecules/update-banner/update-banner.component.d.ts +42 -0
  587. package/lib/components/molecules/username-input/types.d.ts +36 -0
  588. package/lib/components/molecules/username-input/username-input.component.d.ts +58 -0
  589. package/lib/components/organisms/article/article.component.d.ts +108 -0
  590. package/lib/components/organisms/article/types.d.ts +367 -0
  591. package/lib/components/organisms/avatar-upload/avatar-upload.component.d.ts +84 -0
  592. package/lib/components/organisms/avatar-upload/types.d.ts +62 -0
  593. package/lib/components/organisms/banner/banner.component.d.ts +16 -0
  594. package/lib/components/organisms/banner/types.d.ts +29 -0
  595. package/lib/components/organisms/bottom-nav/bottom-nav.component.d.ts +91 -0
  596. package/lib/components/organisms/bottom-nav/types.d.ts +120 -0
  597. package/lib/components/organisms/cards-carousel/cards-carousel.component.d.ts +36 -0
  598. package/lib/components/organisms/cards-carousel/types.d.ts +40 -0
  599. package/lib/components/organisms/comment-section/comment-section.component.d.ts +50 -0
  600. package/lib/components/organisms/comment-section/types.d.ts +144 -0
  601. package/lib/components/organisms/company-footer/company-footer.component.d.ts +37 -0
  602. package/lib/components/organisms/company-footer/types.d.ts +15 -0
  603. package/lib/components/organisms/cookie-banner/cookie-banner.component.d.ts +36 -0
  604. package/lib/components/organisms/cookie-banner/types.d.ts +62 -0
  605. package/lib/components/organisms/data-table/data-table.component.d.ts +63 -0
  606. package/lib/components/organisms/data-table/types.d.ts +219 -0
  607. package/lib/components/organisms/docs-sidebar/docs-sidebar.component.d.ts +51 -0
  608. package/lib/components/organisms/docs-sidebar/types.d.ts +93 -0
  609. package/lib/components/organisms/docs-toc/docs-toc.component.d.ts +62 -0
  610. package/lib/components/organisms/docs-toc/types.d.ts +62 -0
  611. package/lib/components/organisms/footer/footer.component.d.ts +36 -0
  612. package/lib/components/organisms/footer/types.d.ts +16 -0
  613. package/lib/components/organisms/form/factory.d.ts +17 -0
  614. package/lib/components/organisms/form/form-footer/form-footer.component.d.ts +17 -0
  615. package/lib/components/organisms/form/form.component.d.ts +72 -0
  616. package/lib/components/organisms/fun-header/fun-header.component.d.ts +72 -0
  617. package/lib/components/organisms/fun-header/types.d.ts +28 -0
  618. package/lib/components/organisms/header/header.component.d.ts +22 -0
  619. package/lib/components/organisms/header/types.d.ts +16 -0
  620. package/lib/components/organisms/infinite-list/infinite-list.component.d.ts +113 -0
  621. package/lib/components/organisms/infinite-list/types.d.ts +197 -0
  622. package/lib/components/organisms/item-list/item-list.component.d.ts +43 -0
  623. package/lib/components/organisms/item-list/types.d.ts +126 -0
  624. package/lib/components/organisms/login/login.component.d.ts +79 -0
  625. package/lib/components/organisms/login/types.d.ts +70 -0
  626. package/lib/components/organisms/menu/menu.component.d.ts +44 -0
  627. package/lib/components/organisms/menu/types.d.ts +23 -0
  628. package/lib/components/organisms/no-content/no-content.component.d.ts +14 -0
  629. package/lib/components/organisms/no-content/types.d.ts +17 -0
  630. package/lib/components/organisms/rotating-text/rotating-text.component.d.ts +47 -0
  631. package/lib/components/organisms/rotating-text/types.d.ts +28 -0
  632. package/lib/components/organisms/tabbed-content/tabbed-content.component.d.ts +65 -0
  633. package/lib/components/organisms/tabbed-content/types.d.ts +53 -0
  634. package/lib/components/organisms/terminal-404/terminal-404.component.d.ts +42 -0
  635. package/lib/components/organisms/terminal-404/types.d.ts +22 -0
  636. package/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.d.ts +33 -0
  637. package/lib/components/organisms/testimonial-carousel/types.d.ts +8 -0
  638. package/lib/components/organisms/toolbar/toolbar.component.d.ts +85 -0
  639. package/lib/components/organisms/toolbar/types.d.ts +31 -0
  640. package/lib/components/organisms/wizard/types.d.ts +42 -0
  641. package/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.d.ts +23 -0
  642. package/lib/components/organisms/wizard/wizard.component.d.ts +27 -0
  643. package/lib/components/templates/auth-background/auth-background.component.d.ts +62 -0
  644. package/lib/components/templates/auth-background/types.d.ts +30 -0
  645. package/lib/components/templates/docs-layout/docs-layout.component.d.ts +42 -0
  646. package/lib/components/templates/docs-layout/types.d.ts +39 -0
  647. package/lib/components/templates/docs-page/docs-page.component.d.ts +61 -0
  648. package/lib/components/templates/docs-page/types.d.ts +121 -0
  649. package/lib/components/templates/docs-shell/docs-shell.component.d.ts +33 -0
  650. package/lib/components/templates/docs-shell/types.d.ts +152 -0
  651. package/lib/components/templates/maintenance-page/maintenance-page.component.d.ts +57 -0
  652. package/lib/components/templates/maintenance-page/types.d.ts +12 -0
  653. package/lib/components/templates/page-content/page-content.component.d.ts +107 -0
  654. package/lib/components/templates/page-content/types.d.ts +27 -0
  655. package/lib/components/templates/page-template/page-template.component.d.ts +54 -0
  656. package/lib/components/templates/page-template/types.d.ts +17 -0
  657. package/lib/components/templates/page-wrapper/page-wrapper.component.d.ts +91 -0
  658. package/lib/components/templates/page-wrapper/types.d.ts +26 -0
  659. package/lib/components/templates/simple/simple.component.d.ts +14 -0
  660. package/lib/components/templates/simple/types.d.ts +10 -0
  661. package/lib/components/types.d.ts +304 -0
  662. package/lib/config/company-footer.config.d.ts +118 -0
  663. package/lib/services/ads/ads-loader.service.d.ts +41 -0
  664. package/lib/services/ads/ads.service.d.ts +99 -0
  665. package/lib/services/ads/config.d.ts +53 -0
  666. package/lib/services/ads/index.d.ts +9 -0
  667. package/lib/services/ads/types.d.ts +106 -0
  668. package/lib/services/app-config/app-config.service.d.ts +115 -0
  669. package/lib/services/app-config/config.d.ts +31 -0
  670. package/lib/services/app-config/index.d.ts +47 -0
  671. package/lib/services/app-config/types.d.ts +54 -0
  672. package/lib/services/app-config/version.d.ts +64 -0
  673. package/lib/services/auth/auth-state.service.d.ts +106 -0
  674. package/lib/services/auth/auth.service.d.ts +429 -0
  675. package/lib/services/auth/config.d.ts +38 -0
  676. package/lib/services/auth/device.service.d.ts +101 -0
  677. package/lib/services/auth/guards.d.ts +123 -0
  678. package/lib/services/auth/handoff.service.d.ts +159 -0
  679. package/lib/services/auth/index.d.ts +89 -0
  680. package/lib/services/auth/interceptor.d.ts +22 -0
  681. package/lib/services/auth/notification-action.service.d.ts +34 -0
  682. package/lib/services/auth/oauth-callback.component.d.ts +34 -0
  683. package/lib/services/auth/oauth.service.d.ts +99 -0
  684. package/lib/services/auth/org-switch.service.d.ts +127 -0
  685. package/lib/services/auth/session.service.d.ts +60 -0
  686. package/lib/services/auth/storage.service.d.ts +52 -0
  687. package/lib/services/auth/sync.service.d.ts +49 -0
  688. package/lib/services/auth/token.service.d.ts +57 -0
  689. package/lib/services/auth/types.d.ts +862 -0
  690. package/lib/services/confirmation-dialog/confirmation-dialog.service.d.ts +71 -0
  691. package/lib/services/confirmation-dialog/types.d.ts +61 -0
  692. package/lib/services/content/content-types/blog.d.ts +148 -0
  693. package/lib/services/content/content-types/documentation.d.ts +183 -0
  694. package/lib/services/content/content-types/news.d.ts +162 -0
  695. package/lib/services/content/index.d.ts +49 -0
  696. package/lib/services/content/transformer.d.ts +96 -0
  697. package/lib/services/content/types.d.ts +220 -0
  698. package/lib/services/docs/docs-navigation.service.d.ts +51 -0
  699. package/lib/services/download.service.d.ts +21 -0
  700. package/lib/services/feedback/config.d.ts +35 -0
  701. package/lib/services/feedback/feedback.service.d.ts +134 -0
  702. package/lib/services/feedback/index.d.ts +40 -0
  703. package/lib/services/feedback/types.d.ts +173 -0
  704. package/lib/services/firebase/analytics-error-handler.d.ts +54 -0
  705. package/lib/services/firebase/analytics-router-tracker.d.ts +51 -0
  706. package/lib/services/firebase/analytics-types.d.ts +221 -0
  707. package/lib/services/firebase/analytics.service.d.ts +256 -0
  708. package/lib/services/firebase/config.d.ts +49 -0
  709. package/lib/services/firebase/firebase.service.d.ts +251 -0
  710. package/lib/services/firebase/firestore-collection.d.ts +199 -0
  711. package/lib/services/firebase/firestore.service.d.ts +335 -0
  712. package/lib/services/firebase/index.d.ts +44 -0
  713. package/lib/services/firebase/messaging.service.d.ts +315 -0
  714. package/lib/services/firebase/notifications.service.d.ts +141 -0
  715. package/lib/services/firebase/shared-config.d.ts +151 -0
  716. package/lib/services/firebase/storage.service.d.ts +238 -0
  717. package/lib/services/firebase/types.d.ts +374 -0
  718. package/lib/services/firebase/utils/path-builder.d.ts +132 -0
  719. package/lib/services/firebase/utils/query-builder.d.ts +210 -0
  720. package/lib/services/i18n/config.d.ts +29 -0
  721. package/lib/services/i18n/default-content.d.ts +30 -0
  722. package/lib/services/i18n/i18n.service.d.ts +128 -0
  723. package/lib/services/i18n/index.d.ts +6 -0
  724. package/lib/services/i18n/input-i18n.helper.d.ts +70 -0
  725. package/lib/services/i18n/translate.pipe.d.ts +36 -0
  726. package/lib/services/i18n/types.d.ts +93 -0
  727. package/lib/services/icons.service.d.ts +9 -0
  728. package/lib/services/image/image.service.d.ts +76 -0
  729. package/lib/services/image/types.d.ts +74 -0
  730. package/lib/services/in-app-browser.service.d.ts +16 -0
  731. package/lib/services/legal-link/legal-link.service.d.ts +73 -0
  732. package/lib/services/link-processor.service.d.ts +104 -0
  733. package/lib/services/local-storage.service.d.ts +27 -0
  734. package/lib/services/locale.service.d.ts +52 -0
  735. package/lib/services/markdown-article/legal-content.service.d.ts +73 -0
  736. package/lib/services/markdown-article/markdown-article-parser.d.ts +38 -0
  737. package/lib/services/markdown-article/markdown-article-parser.service.d.ts +12 -0
  738. package/lib/services/meta/meta.service.d.ts +23 -0
  739. package/lib/services/meta/types.d.ts +12 -0
  740. package/lib/services/modal/modal.service.d.ts +100 -0
  741. package/lib/services/modal/simple-modal-content.component.d.ts +19 -0
  742. package/lib/services/modal/types.d.ts +155 -0
  743. package/lib/services/navigation/navigation.service.d.ts +134 -0
  744. package/lib/services/navigation/types.d.ts +67 -0
  745. package/lib/services/pagination/index.d.ts +2 -0
  746. package/lib/services/pagination/pagination.service.d.ts +43 -0
  747. package/lib/services/pagination/types.d.ts +113 -0
  748. package/lib/services/preferences/preferences.service.d.ts +51 -0
  749. package/lib/services/preferences/preferences.types.d.ts +35 -0
  750. package/lib/services/presets/config.d.ts +32 -0
  751. package/lib/services/presets/index.d.ts +3 -0
  752. package/lib/services/presets/preset.service.d.ts +69 -0
  753. package/lib/services/presets/types.d.ts +39 -0
  754. package/lib/services/qr-generator/qr-generator.service.d.ts +115 -0
  755. package/lib/services/qr-generator/types.d.ts +141 -0
  756. package/lib/services/skeleton/config.d.ts +30 -0
  757. package/lib/services/skeleton/directives/loading.directive.d.ts +71 -0
  758. package/lib/services/skeleton/index.d.ts +10 -0
  759. package/lib/services/skeleton/skeleton.service.d.ts +127 -0
  760. package/lib/services/skeleton/templates/detail-skeleton.component.d.ts +18 -0
  761. package/lib/services/skeleton/templates/form-skeleton.component.d.ts +22 -0
  762. package/lib/services/skeleton/templates/grid-skeleton.component.d.ts +18 -0
  763. package/lib/services/skeleton/templates/list-skeleton.component.d.ts +17 -0
  764. package/lib/services/skeleton/templates/profile-skeleton.component.d.ts +20 -0
  765. package/lib/services/skeleton/templates/table-skeleton.component.d.ts +17 -0
  766. package/lib/services/skeleton/types.d.ts +111 -0
  767. package/lib/services/theme.service.d.ts +76 -0
  768. package/lib/services/toast.service.d.ts +22 -0
  769. package/lib/services/types.d.ts +1 -0
  770. package/lib/shared/constants/storage.d.ts +2 -0
  771. package/lib/shared/pipes/process-links.pipe.d.ts +55 -0
  772. package/lib/shared/utils/datetime.d.ts +21 -0
  773. package/lib/shared/utils/dom.d.ts +13 -0
  774. package/lib/shared/utils/form-defaults.d.ts +30 -0
  775. package/lib/shared/utils/styles.d.ts +13 -0
  776. package/lib/shared/utils/text.d.ts +11 -0
  777. package/lib/version.d.ts +5 -0
  778. package/package.json +16 -62
  779. package/public-api.d.ts +307 -0
  780. package/.claude/settings.local.json +0 -7
  781. package/.editorconfig +0 -16
  782. package/.prettierignore +0 -6
  783. package/.prettierrc +0 -30
  784. package/.storybook/main.ts +0 -21
  785. package/.storybook/preview-body.html +0 -60
  786. package/.storybook/preview-head.html +0 -48
  787. package/.storybook/preview.ts +0 -52
  788. package/.storybook/tsconfig.json +0 -12
  789. package/CLAUDE.md +0 -121
  790. package/angular.json +0 -60
  791. package/ng-package.json +0 -16
  792. package/scripts/publish.sh +0 -30
  793. package/scripts/update-apps.sh +0 -94
  794. package/src/lib/components/atoms/avatar/avatar.component.scss +0 -31
  795. package/src/lib/components/atoms/avatar/avatar.component.ts +0 -95
  796. package/src/lib/components/atoms/avatar/avatar.stories.ts +0 -243
  797. package/src/lib/components/atoms/avatar/types.ts +0 -15
  798. package/src/lib/components/atoms/box/box.component.scss +0 -57
  799. package/src/lib/components/atoms/box/box.component.ts +0 -77
  800. package/src/lib/components/atoms/box/box.stories.ts +0 -280
  801. package/src/lib/components/atoms/box/types.ts +0 -20
  802. package/src/lib/components/atoms/button/button.component.scss +0 -20
  803. package/src/lib/components/atoms/button/button.component.ts +0 -174
  804. package/src/lib/components/atoms/button/button.stories.ts +0 -293
  805. package/src/lib/components/atoms/button/factory.ts +0 -444
  806. package/src/lib/components/atoms/container/container.component.scss +0 -83
  807. package/src/lib/components/atoms/container/container.component.ts +0 -45
  808. package/src/lib/components/atoms/container/container.stories.ts +0 -128
  809. package/src/lib/components/atoms/container/types.ts +0 -12
  810. package/src/lib/components/atoms/countdown/countdown.component.scss +0 -256
  811. package/src/lib/components/atoms/countdown/countdown.component.ts +0 -293
  812. package/src/lib/components/atoms/countdown/countdown.stories.ts +0 -316
  813. package/src/lib/components/atoms/countdown/types.ts +0 -144
  814. package/src/lib/components/atoms/display/display.component.scss +0 -17
  815. package/src/lib/components/atoms/display/display.component.ts +0 -54
  816. package/src/lib/components/atoms/display/display.stories.ts +0 -185
  817. package/src/lib/components/atoms/display/types.ts +0 -35
  818. package/src/lib/components/atoms/divider/divider.component.scss +0 -62
  819. package/src/lib/components/atoms/divider/divider.component.ts +0 -35
  820. package/src/lib/components/atoms/divider/divider.stories.ts +0 -202
  821. package/src/lib/components/atoms/divider/types.ts +0 -12
  822. package/src/lib/components/atoms/fab/fab.component.scss +0 -26
  823. package/src/lib/components/atoms/fab/fab.component.ts +0 -166
  824. package/src/lib/components/atoms/fab/fab.stories.ts +0 -360
  825. package/src/lib/components/atoms/fab/types.ts +0 -47
  826. package/src/lib/components/atoms/glass/glass.component.ts +0 -132
  827. package/src/lib/components/atoms/glass/types.ts +0 -79
  828. package/src/lib/components/atoms/glow/glow.component.scss +0 -88
  829. package/src/lib/components/atoms/glow/glow.component.ts +0 -103
  830. package/src/lib/components/atoms/glow/glow.stories.ts +0 -215
  831. package/src/lib/components/atoms/glow/types.ts +0 -61
  832. package/src/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.scss +0 -39
  833. package/src/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.ts +0 -67
  834. package/src/lib/components/atoms/horizontal-scroll/horizontal-scroll.stories.ts +0 -351
  835. package/src/lib/components/atoms/horizontal-scroll/types.ts +0 -13
  836. package/src/lib/components/atoms/href/href.component.scss +0 -25
  837. package/src/lib/components/atoms/href/href.component.ts +0 -64
  838. package/src/lib/components/atoms/href/href.stories.ts +0 -214
  839. package/src/lib/components/atoms/href/types.ts +0 -20
  840. package/src/lib/components/atoms/icon/icon.component.scss +0 -33
  841. package/src/lib/components/atoms/icon/icon.component.ts +0 -38
  842. package/src/lib/components/atoms/icon/icon.stories.ts +0 -160
  843. package/src/lib/components/atoms/icon/types.ts +0 -14
  844. package/src/lib/components/atoms/image/README.md +0 -0
  845. package/src/lib/components/atoms/image/image.component.scss +0 -284
  846. package/src/lib/components/atoms/image/image.component.ts +0 -399
  847. package/src/lib/components/atoms/image/image.stories.ts +0 -317
  848. package/src/lib/components/atoms/image/types.ts +0 -37
  849. package/src/lib/components/atoms/pattern/motifs.ts +0 -205
  850. package/src/lib/components/atoms/pattern/pattern.component.ts +0 -216
  851. package/src/lib/components/atoms/pattern/types.ts +0 -70
  852. package/src/lib/components/atoms/price-tag/price-tag.component.scss +0 -228
  853. package/src/lib/components/atoms/price-tag/price-tag.component.ts +0 -188
  854. package/src/lib/components/atoms/price-tag/price-tag.stories.ts +0 -315
  855. package/src/lib/components/atoms/price-tag/types.ts +0 -78
  856. package/src/lib/components/atoms/progress-bar/progress-bar.component.scss +0 -22
  857. package/src/lib/components/atoms/progress-bar/progress-bar.component.ts +0 -88
  858. package/src/lib/components/atoms/progress-bar/progress-bar.stories.ts +0 -375
  859. package/src/lib/components/atoms/progress-bar/types.ts +0 -20
  860. package/src/lib/components/atoms/progress-ring/progress-ring.component.scss +0 -35
  861. package/src/lib/components/atoms/progress-ring/progress-ring.component.ts +0 -114
  862. package/src/lib/components/atoms/progress-ring/progress-ring.stories.ts +0 -323
  863. package/src/lib/components/atoms/progress-ring/types.ts +0 -25
  864. package/src/lib/components/atoms/qr-code/qr-code.component.scss +0 -373
  865. package/src/lib/components/atoms/qr-code/qr-code.component.ts +0 -313
  866. package/src/lib/components/atoms/qr-code/qr-code.stories.ts +0 -767
  867. package/src/lib/components/atoms/qr-code/types.ts +0 -173
  868. package/src/lib/components/atoms/rights-footer/rights-footer.component.scss +0 -20
  869. package/src/lib/components/atoms/rights-footer/rights-footer.component.ts +0 -98
  870. package/src/lib/components/atoms/rights-footer/rights-footer.stories.ts +0 -229
  871. package/src/lib/components/atoms/rights-footer/types.ts +0 -21
  872. package/src/lib/components/atoms/skeleton/skeleton.component.scss +0 -58
  873. package/src/lib/components/atoms/skeleton/skeleton.component.ts +0 -129
  874. package/src/lib/components/atoms/skeleton/skeleton.stories.ts +0 -242
  875. package/src/lib/components/atoms/skeleton/types.ts +0 -39
  876. package/src/lib/components/atoms/text/text.component.scss +0 -38
  877. package/src/lib/components/atoms/text/text.component.ts +0 -123
  878. package/src/lib/components/atoms/text/text.stories.ts +0 -174
  879. package/src/lib/components/atoms/text/types.ts +0 -50
  880. package/src/lib/components/atoms/title/title.component.scss +0 -33
  881. package/src/lib/components/atoms/title/title.component.ts +0 -65
  882. package/src/lib/components/atoms/title/title.stories.ts +0 -167
  883. package/src/lib/components/atoms/title/types.ts +0 -46
  884. package/src/lib/components/atoms/user-avatar/types.ts +0 -84
  885. package/src/lib/components/atoms/user-avatar/user-avatar.component.ts +0 -295
  886. package/src/lib/components/molecules/accordion/accordion.component.scss +0 -34
  887. package/src/lib/components/molecules/accordion/accordion.component.ts +0 -103
  888. package/src/lib/components/molecules/accordion/accordion.stories.ts +0 -236
  889. package/src/lib/components/molecules/accordion/types.ts +0 -49
  890. package/src/lib/components/molecules/action-card/action-card.component.scss +0 -218
  891. package/src/lib/components/molecules/action-card/action-card.component.ts +0 -221
  892. package/src/lib/components/molecules/action-card/action-card.stories.ts +0 -396
  893. package/src/lib/components/molecules/action-card/types.ts +0 -102
  894. package/src/lib/components/molecules/action-header/action-header.component.ts +0 -55
  895. package/src/lib/components/molecules/action-header/action-header.stories.ts +0 -481
  896. package/src/lib/components/molecules/action-header/types.ts +0 -29
  897. package/src/lib/components/molecules/ad-slot/ad-slot.component.ts +0 -352
  898. package/src/lib/components/molecules/alert-box/alert-box.component.scss +0 -10
  899. package/src/lib/components/molecules/alert-box/alert-box.component.ts +0 -125
  900. package/src/lib/components/molecules/alert-box/alert-box.stories.ts +0 -248
  901. package/src/lib/components/molecules/alert-box/types.ts +0 -39
  902. package/src/lib/components/molecules/breadcrumb/breadcrumb.component.scss +0 -34
  903. package/src/lib/components/molecules/breadcrumb/breadcrumb.component.ts +0 -109
  904. package/src/lib/components/molecules/breadcrumb/breadcrumb.stories.ts +0 -271
  905. package/src/lib/components/molecules/breadcrumb/types.ts +0 -47
  906. package/src/lib/components/molecules/button-group/button-group.component.scss +0 -41
  907. package/src/lib/components/molecules/button-group/button-group.component.ts +0 -65
  908. package/src/lib/components/molecules/button-group/button-group.stories.ts +0 -296
  909. package/src/lib/components/molecules/button-group/types.ts +0 -14
  910. package/src/lib/components/molecules/card/card.component.scss +0 -62
  911. package/src/lib/components/molecules/card/card.component.ts +0 -300
  912. package/src/lib/components/molecules/card/card.stories.ts +0 -360
  913. package/src/lib/components/molecules/card/types.ts +0 -36
  914. package/src/lib/components/molecules/check-input/check-input.component.scss +0 -0
  915. package/src/lib/components/molecules/check-input/check-input.component.ts +0 -88
  916. package/src/lib/components/molecules/check-input/check-input.stories.ts +0 -54
  917. package/src/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.scss +0 -12
  918. package/src/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.ts +0 -65
  919. package/src/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.stories.ts +0 -201
  920. package/src/lib/components/molecules/checkbox-radio-input/index.ts +0 -1
  921. package/src/lib/components/molecules/chip-group/chip-group.component.scss +0 -70
  922. package/src/lib/components/molecules/chip-group/chip-group.component.ts +0 -150
  923. package/src/lib/components/molecules/chip-group/chip-group.stories.ts +0 -307
  924. package/src/lib/components/molecules/chip-group/types.ts +0 -69
  925. package/src/lib/components/molecules/code-display/code-display.component.scss +0 -246
  926. package/src/lib/components/molecules/code-display/code-display.component.ts +0 -109
  927. package/src/lib/components/molecules/code-display/code-display.stories.ts +0 -402
  928. package/src/lib/components/molecules/code-display/types.ts +0 -11
  929. package/src/lib/components/molecules/command-display/command-display.component.scss +0 -38
  930. package/src/lib/components/molecules/command-display/command-display.component.ts +0 -45
  931. package/src/lib/components/molecules/command-display/command-display.stories.ts +0 -110
  932. package/src/lib/components/molecules/command-display/types.ts +0 -3
  933. package/src/lib/components/molecules/comment/comment.component.scss +0 -347
  934. package/src/lib/components/molecules/comment/comment.component.ts +0 -496
  935. package/src/lib/components/molecules/comment/comment.stories.ts +0 -384
  936. package/src/lib/components/molecules/comment/types.ts +0 -181
  937. package/src/lib/components/molecules/comment-input/comment-input.component.scss +0 -0
  938. package/src/lib/components/molecules/comment-input/comment-input.component.ts +0 -42
  939. package/src/lib/components/molecules/comment-input/comment-input.stories.ts +0 -124
  940. package/src/lib/components/molecules/comment-input/types.ts +0 -69
  941. package/src/lib/components/molecules/content-loader/content-loader.component.scss +0 -42
  942. package/src/lib/components/molecules/content-loader/content-loader.component.ts +0 -45
  943. package/src/lib/components/molecules/content-loader/content-loader.stories.ts +0 -370
  944. package/src/lib/components/molecules/content-loader/types.ts +0 -16
  945. package/src/lib/components/molecules/content-reaction/content-reaction.component.html +0 -81
  946. package/src/lib/components/molecules/content-reaction/content-reaction.component.scss +0 -157
  947. package/src/lib/components/molecules/content-reaction/content-reaction.component.ts +0 -273
  948. package/src/lib/components/molecules/content-reaction/content-reaction.stories.ts +0 -453
  949. package/src/lib/components/molecules/content-reaction/types.ts +0 -99
  950. package/src/lib/components/molecules/currency-input/currency-input.component.scss +0 -101
  951. package/src/lib/components/molecules/currency-input/currency-input.component.ts +0 -327
  952. package/src/lib/components/molecules/currency-input/currency-input.stories.ts +0 -279
  953. package/src/lib/components/molecules/currency-input/types.ts +0 -125
  954. package/src/lib/components/molecules/date-input/date-input.component.scss +0 -11
  955. package/src/lib/components/molecules/date-input/date-input.component.ts +0 -136
  956. package/src/lib/components/molecules/date-input/date-input.stories.ts +0 -205
  957. package/src/lib/components/molecules/date-input/types.ts +0 -84
  958. package/src/lib/components/molecules/date-range-input/date-range-input.component.scss +0 -119
  959. package/src/lib/components/molecules/date-range-input/date-range-input.component.ts +0 -364
  960. package/src/lib/components/molecules/date-range-input/date-range-input.stories.ts +0 -288
  961. package/src/lib/components/molecules/date-range-input/types.ts +0 -122
  962. package/src/lib/components/molecules/docs-api-table/docs-api-table.component.scss +0 -278
  963. package/src/lib/components/molecules/docs-api-table/docs-api-table.component.ts +0 -138
  964. package/src/lib/components/molecules/docs-api-table/types.ts +0 -81
  965. package/src/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.ts +0 -161
  966. package/src/lib/components/molecules/docs-breadcrumb/types.ts +0 -21
  967. package/src/lib/components/molecules/docs-callout/docs-callout.component.scss +0 -136
  968. package/src/lib/components/molecules/docs-callout/docs-callout.component.ts +0 -55
  969. package/src/lib/components/molecules/docs-code-example/docs-code-example.component.ts +0 -540
  970. package/src/lib/components/molecules/docs-code-example/types.ts +0 -75
  971. package/src/lib/components/molecules/docs-nav-links/docs-nav-links.component.ts +0 -216
  972. package/src/lib/components/molecules/docs-nav-links/types.ts +0 -36
  973. package/src/lib/components/molecules/docs-search/docs-search.component.scss +0 -195
  974. package/src/lib/components/molecules/docs-search/docs-search.component.ts +0 -228
  975. package/src/lib/components/molecules/docs-search/types.ts +0 -30
  976. package/src/lib/components/molecules/docs-section/docs-section.component.ts +0 -99
  977. package/src/lib/components/molecules/docs-section/types.ts +0 -31
  978. package/src/lib/components/molecules/email-input/email-input.component.scss +0 -0
  979. package/src/lib/components/molecules/email-input/email-input.component.ts +0 -77
  980. package/src/lib/components/molecules/email-input/email-input.stories.ts +0 -176
  981. package/src/lib/components/molecules/expandable-text/expandable-text.component.ts +0 -111
  982. package/src/lib/components/molecules/expandable-text/expandable-text.stories.ts +0 -287
  983. package/src/lib/components/molecules/expandable-text/types.ts +0 -14
  984. package/src/lib/components/molecules/features-list/features-list.component.ts +0 -247
  985. package/src/lib/components/molecules/features-list/types.ts +0 -44
  986. package/src/lib/components/molecules/feedback-form/feedback-form.component.ts +0 -355
  987. package/src/lib/components/molecules/feedback-form/types.ts +0 -77
  988. package/src/lib/components/molecules/file-input/file-input.component.scss +0 -11
  989. package/src/lib/components/molecules/file-input/file-input.component.ts +0 -87
  990. package/src/lib/components/molecules/file-input/file-input.stories.ts +0 -107
  991. package/src/lib/components/molecules/file-input/types.ts +0 -85
  992. package/src/lib/components/molecules/footer-links/footer-links.component.scss +0 -124
  993. package/src/lib/components/molecules/footer-links/footer-links.component.ts +0 -244
  994. package/src/lib/components/molecules/footer-links/footer-links.stories.ts +0 -188
  995. package/src/lib/components/molecules/footer-links/types.ts +0 -52
  996. package/src/lib/components/molecules/glow-card/glow-card.component.scss +0 -295
  997. package/src/lib/components/molecules/glow-card/glow-card.component.ts +0 -284
  998. package/src/lib/components/molecules/glow-card/glow-card.stories.ts +0 -680
  999. package/src/lib/components/molecules/glow-card/types.ts +0 -117
  1000. package/src/lib/components/molecules/hint/hint.component.scss +0 -5
  1001. package/src/lib/components/molecules/hint/hint.component.ts +0 -89
  1002. package/src/lib/components/molecules/hint/hint.stories.ts +0 -233
  1003. package/src/lib/components/molecules/hour-input/hour-input.component.scss +0 -0
  1004. package/src/lib/components/molecules/hour-input/hour-input.component.ts +0 -34
  1005. package/src/lib/components/molecules/hour-input/hour-input.stories.ts +0 -145
  1006. package/src/lib/components/molecules/image-crop/image-crop.component.ts +0 -195
  1007. package/src/lib/components/molecules/info/info.component.ts +0 -35
  1008. package/src/lib/components/molecules/info/info.stories.ts +0 -276
  1009. package/src/lib/components/molecules/info/types.ts +0 -11
  1010. package/src/lib/components/molecules/language-selector/language-selector.component.scss +0 -128
  1011. package/src/lib/components/molecules/language-selector/language-selector.component.ts +0 -204
  1012. package/src/lib/components/molecules/language-selector/language-selector.stories.ts +0 -261
  1013. package/src/lib/components/molecules/language-selector/types.ts +0 -84
  1014. package/src/lib/components/molecules/layered-card/layered-card.component.scss +0 -93
  1015. package/src/lib/components/molecules/layered-card/layered-card.component.ts +0 -66
  1016. package/src/lib/components/molecules/layered-card/layered-card.stories.ts +0 -313
  1017. package/src/lib/components/molecules/layered-card/types.ts +0 -16
  1018. package/src/lib/components/molecules/link/link.component.scss +0 -11
  1019. package/src/lib/components/molecules/link/link.component.ts +0 -73
  1020. package/src/lib/components/molecules/link/link.stories.ts +0 -307
  1021. package/src/lib/components/molecules/link/types.ts +0 -20
  1022. package/src/lib/components/molecules/linked-providers/index.ts +0 -2
  1023. package/src/lib/components/molecules/linked-providers/linked-providers.component.ts +0 -289
  1024. package/src/lib/components/molecules/linked-providers/types.ts +0 -63
  1025. package/src/lib/components/molecules/links-accordion/links-accordion.component.scss +0 -17
  1026. package/src/lib/components/molecules/links-accordion/links-accordion.component.ts +0 -161
  1027. package/src/lib/components/molecules/links-accordion/links-accordion.stories.ts +0 -209
  1028. package/src/lib/components/molecules/links-accordion/types.ts +0 -41
  1029. package/src/lib/components/molecules/links-cake/links-cake.component.scss +0 -9
  1030. package/src/lib/components/molecules/links-cake/links-cake.component.ts +0 -49
  1031. package/src/lib/components/molecules/links-cake/links-cake.stories.ts +0 -160
  1032. package/src/lib/components/molecules/links-cake/types.ts +0 -14
  1033. package/src/lib/components/molecules/multi-select-search/multi-select-search.component.scss +0 -172
  1034. package/src/lib/components/molecules/multi-select-search/multi-select-search.component.ts +0 -471
  1035. package/src/lib/components/molecules/multi-select-search/multi-select-search.stories.ts +0 -188
  1036. package/src/lib/components/molecules/notes-box/notes-box.component.scss +0 -204
  1037. package/src/lib/components/molecules/notes-box/notes-box.component.ts +0 -68
  1038. package/src/lib/components/molecules/notes-box/notes-box.stories.ts +0 -308
  1039. package/src/lib/components/molecules/notes-box/types.ts +0 -36
  1040. package/src/lib/components/molecules/number-from-to/number-from-to.component.scss +0 -10
  1041. package/src/lib/components/molecules/number-from-to/number-from-to.component.ts +0 -134
  1042. package/src/lib/components/molecules/number-from-to/number-from-to.stories.ts +0 -203
  1043. package/src/lib/components/molecules/number-from-to/types.ts +0 -91
  1044. package/src/lib/components/molecules/number-input/number-input.component.scss +0 -0
  1045. package/src/lib/components/molecules/number-input/number-input.component.ts +0 -41
  1046. package/src/lib/components/molecules/number-input/number-input.stories.ts +0 -151
  1047. package/src/lib/components/molecules/number-stepper/number-stepper.component.scss +0 -252
  1048. package/src/lib/components/molecules/number-stepper/number-stepper.component.ts +0 -302
  1049. package/src/lib/components/molecules/number-stepper/number-stepper.stories.ts +0 -417
  1050. package/src/lib/components/molecules/number-stepper/types.ts +0 -101
  1051. package/src/lib/components/molecules/page-links/page-links.component.scss +0 -93
  1052. package/src/lib/components/molecules/page-links/page-links.component.ts +0 -103
  1053. package/src/lib/components/molecules/page-links/types.ts +0 -39
  1054. package/src/lib/components/molecules/pagination/pagination.component.scss +0 -50
  1055. package/src/lib/components/molecules/pagination/pagination.component.ts +0 -194
  1056. package/src/lib/components/molecules/pagination/pagination.stories.ts +0 -260
  1057. package/src/lib/components/molecules/pagination/types.ts +0 -43
  1058. package/src/lib/components/molecules/password-input/password-input.component.scss +0 -7
  1059. package/src/lib/components/molecules/password-input/password-input.component.ts +0 -93
  1060. package/src/lib/components/molecules/password-input/password-input.stories.ts +0 -187
  1061. package/src/lib/components/molecules/phone-input/phone-input.component.scss +0 -175
  1062. package/src/lib/components/molecules/phone-input/phone-input.component.ts +0 -359
  1063. package/src/lib/components/molecules/phone-input/phone-input.stories.ts +0 -229
  1064. package/src/lib/components/molecules/phone-input/types.ts +0 -126
  1065. package/src/lib/components/molecules/pill/pill.component.scss +0 -35
  1066. package/src/lib/components/molecules/pill/pill.component.ts +0 -89
  1067. package/src/lib/components/molecules/pill/pill.stories.ts +0 -219
  1068. package/src/lib/components/molecules/pill/types.ts +0 -10
  1069. package/src/lib/components/molecules/pin-input/pin-input.component.scss +0 -22
  1070. package/src/lib/components/molecules/pin-input/pin-input.component.ts +0 -83
  1071. package/src/lib/components/molecules/pin-input/pin-input.stories.ts +0 -196
  1072. package/src/lib/components/molecules/pin-input/types.ts +0 -80
  1073. package/src/lib/components/molecules/plain-code-box/plain-code-box.component.scss +0 -191
  1074. package/src/lib/components/molecules/plain-code-box/plain-code-box.component.ts +0 -86
  1075. package/src/lib/components/molecules/plain-code-box/plain-code-box.stories.ts +0 -174
  1076. package/src/lib/components/molecules/plain-code-box/types.ts +0 -12
  1077. package/src/lib/components/molecules/popover-selector/popover-selector.component.scss +0 -224
  1078. package/src/lib/components/molecules/popover-selector/popover-selector.component.ts +0 -163
  1079. package/src/lib/components/molecules/popover-selector/popover-selector.stories.ts +0 -324
  1080. package/src/lib/components/molecules/popover-selector/types.ts +0 -71
  1081. package/src/lib/components/molecules/progress-status/progress-status.component.scss +0 -41
  1082. package/src/lib/components/molecules/progress-status/progress-status.component.ts +0 -90
  1083. package/src/lib/components/molecules/progress-status/progress-status.stories.ts +0 -415
  1084. package/src/lib/components/molecules/progress-status/types.ts +0 -21
  1085. package/src/lib/components/molecules/prompter/prompter.component.scss +0 -45
  1086. package/src/lib/components/molecules/prompter/prompter.component.ts +0 -55
  1087. package/src/lib/components/molecules/prompter/prompter.stories.ts +0 -193
  1088. package/src/lib/components/molecules/prompter/types.ts +0 -26
  1089. package/src/lib/components/molecules/quote-box/quote-box.component.scss +0 -253
  1090. package/src/lib/components/molecules/quote-box/quote-box.component.ts +0 -104
  1091. package/src/lib/components/molecules/quote-box/quote-box.stories.ts +0 -264
  1092. package/src/lib/components/molecules/radio-input/radio-input.component.scss +0 -0
  1093. package/src/lib/components/molecules/radio-input/radio-input.component.ts +0 -51
  1094. package/src/lib/components/molecules/radio-input/radio-input.stories.ts +0 -197
  1095. package/src/lib/components/molecules/range-input/range-input.component.scss +0 -15
  1096. package/src/lib/components/molecules/range-input/range-input.component.ts +0 -106
  1097. package/src/lib/components/molecules/range-input/range-input.stories.ts +0 -331
  1098. package/src/lib/components/molecules/range-input/types.ts +0 -61
  1099. package/src/lib/components/molecules/rating/rating.component.scss +0 -60
  1100. package/src/lib/components/molecules/rating/rating.component.ts +0 -154
  1101. package/src/lib/components/molecules/rating/rating.stories.ts +0 -332
  1102. package/src/lib/components/molecules/rating/types.ts +0 -43
  1103. package/src/lib/components/molecules/refresher/refresher.component.ts +0 -259
  1104. package/src/lib/components/molecules/refresher/types.ts +0 -103
  1105. package/src/lib/components/molecules/searchbar/searchbar.component.scss +0 -9
  1106. package/src/lib/components/molecules/searchbar/searchbar.component.ts +0 -122
  1107. package/src/lib/components/molecules/searchbar/searchbar.stories.ts +0 -192
  1108. package/src/lib/components/molecules/searchbar/types.ts +0 -38
  1109. package/src/lib/components/molecules/segment-control/segment-control.component.scss +0 -27
  1110. package/src/lib/components/molecules/segment-control/segment-control.component.ts +0 -117
  1111. package/src/lib/components/molecules/segment-control/segment-control.stories.ts +0 -296
  1112. package/src/lib/components/molecules/segment-control/types.ts +0 -48
  1113. package/src/lib/components/molecules/select-input/select-input.component.scss +0 -0
  1114. package/src/lib/components/molecules/select-input/select-input.component.ts +0 -151
  1115. package/src/lib/components/molecules/select-input/select-input.stories.ts +0 -330
  1116. package/src/lib/components/molecules/select-search/select-search.component.ts +0 -432
  1117. package/src/lib/components/molecules/select-search/select-search.stories.ts +0 -218
  1118. package/src/lib/components/molecules/share-buttons/share-buttons.component.scss +0 -195
  1119. package/src/lib/components/molecules/share-buttons/share-buttons.component.ts +0 -269
  1120. package/src/lib/components/molecules/share-buttons/share-buttons.stories.ts +0 -343
  1121. package/src/lib/components/molecules/share-buttons/types.ts +0 -211
  1122. package/src/lib/components/molecules/stats-card/stats-card.component.scss +0 -198
  1123. package/src/lib/components/molecules/stats-card/stats-card.component.ts +0 -155
  1124. package/src/lib/components/molecules/stats-card/stats-card.stories.ts +0 -481
  1125. package/src/lib/components/molecules/stats-card/types.ts +0 -63
  1126. package/src/lib/components/molecules/stepper/stepper.component.scss +0 -156
  1127. package/src/lib/components/molecules/stepper/stepper.component.ts +0 -201
  1128. package/src/lib/components/molecules/stepper/stepper.stories.ts +0 -308
  1129. package/src/lib/components/molecules/stepper/types.ts +0 -70
  1130. package/src/lib/components/molecules/swipe-carousel/swipe-carousel.component.scss +0 -164
  1131. package/src/lib/components/molecules/swipe-carousel/swipe-carousel.component.ts +0 -215
  1132. package/src/lib/components/molecules/swipe-carousel/swipe-carousel.stories.ts +0 -406
  1133. package/src/lib/components/molecules/swipe-carousel/types.ts +0 -32
  1134. package/src/lib/components/molecules/tabs/tabs.component.scss +0 -35
  1135. package/src/lib/components/molecules/tabs/tabs.component.ts +0 -125
  1136. package/src/lib/components/molecules/tabs/tabs.stories.ts +0 -283
  1137. package/src/lib/components/molecules/tabs/types.ts +0 -47
  1138. package/src/lib/components/molecules/testimonial-card/testimonial-card.component.scss +0 -25
  1139. package/src/lib/components/molecules/testimonial-card/testimonial-card.component.ts +0 -121
  1140. package/src/lib/components/molecules/testimonial-card/testimonial-card.stories.ts +0 -130
  1141. package/src/lib/components/molecules/testimonial-card/types.ts +0 -26
  1142. package/src/lib/components/molecules/text-input/text-input.component.scss +0 -1
  1143. package/src/lib/components/molecules/text-input/text-input.component.ts +0 -86
  1144. package/src/lib/components/molecules/text-input/text-input.stories.ts +0 -301
  1145. package/src/lib/components/molecules/textarea-input/textarea-input.component.scss +0 -62
  1146. package/src/lib/components/molecules/textarea-input/textarea-input.component.ts +0 -195
  1147. package/src/lib/components/molecules/textarea-input/textarea-input.stories.ts +0 -329
  1148. package/src/lib/components/molecules/textarea-input/types.ts +0 -83
  1149. package/src/lib/components/molecules/timeline/timeline.component.scss +0 -168
  1150. package/src/lib/components/molecules/timeline/timeline.component.ts +0 -98
  1151. package/src/lib/components/molecules/timeline/timeline.stories.ts +0 -259
  1152. package/src/lib/components/molecules/timeline/types.ts +0 -41
  1153. package/src/lib/components/molecules/title-block/title-block.component.scss +0 -48
  1154. package/src/lib/components/molecules/title-block/title-block.component.ts +0 -72
  1155. package/src/lib/components/molecules/title-block/title-block.stories.ts +0 -351
  1156. package/src/lib/components/molecules/title-block/types.ts +0 -16
  1157. package/src/lib/components/molecules/toggle-input/toggle-input.component.scss +0 -7
  1158. package/src/lib/components/molecules/toggle-input/toggle-input.component.ts +0 -94
  1159. package/src/lib/components/molecules/toggle-input/toggle-input.stories.ts +0 -240
  1160. package/src/lib/components/molecules/toggle-input/types.ts +0 -31
  1161. package/src/lib/components/molecules/update-banner/index.ts +0 -1
  1162. package/src/lib/components/molecules/update-banner/update-banner.component.ts +0 -118
  1163. package/src/lib/components/molecules/username-input/index.ts +0 -2
  1164. package/src/lib/components/molecules/username-input/types.ts +0 -38
  1165. package/src/lib/components/molecules/username-input/username-input.component.ts +0 -364
  1166. package/src/lib/components/organisms/article/README.md +0 -569
  1167. package/src/lib/components/organisms/article/article.component.scss +0 -435
  1168. package/src/lib/components/organisms/article/article.component.ts +0 -474
  1169. package/src/lib/components/organisms/article/article.stories.ts +0 -625
  1170. package/src/lib/components/organisms/article/types.ts +0 -555
  1171. package/src/lib/components/organisms/avatar-upload/avatar-upload.component.scss +0 -119
  1172. package/src/lib/components/organisms/avatar-upload/avatar-upload.component.ts +0 -303
  1173. package/src/lib/components/organisms/avatar-upload/avatar-upload.stories.ts +0 -282
  1174. package/src/lib/components/organisms/avatar-upload/index.ts +0 -2
  1175. package/src/lib/components/organisms/avatar-upload/types.ts +0 -71
  1176. package/src/lib/components/organisms/banner/banner.component.scss +0 -51
  1177. package/src/lib/components/organisms/banner/banner.component.ts +0 -95
  1178. package/src/lib/components/organisms/banner/banner.stories.ts +0 -462
  1179. package/src/lib/components/organisms/banner/types.ts +0 -30
  1180. package/src/lib/components/organisms/bottom-nav/bottom-nav.component.scss +0 -343
  1181. package/src/lib/components/organisms/bottom-nav/bottom-nav.component.ts +0 -361
  1182. package/src/lib/components/organisms/bottom-nav/bottom-nav.stories.ts +0 -403
  1183. package/src/lib/components/organisms/bottom-nav/types.ts +0 -142
  1184. package/src/lib/components/organisms/cards-carousel/cards-carousel.component.ts +0 -118
  1185. package/src/lib/components/organisms/cards-carousel/cards-carousel.stories.ts +0 -502
  1186. package/src/lib/components/organisms/cards-carousel/types.ts +0 -41
  1187. package/src/lib/components/organisms/comment-section/comment-section.component.scss +0 -277
  1188. package/src/lib/components/organisms/comment-section/comment-section.component.ts +0 -429
  1189. package/src/lib/components/organisms/comment-section/comment-section.stories.ts +0 -305
  1190. package/src/lib/components/organisms/comment-section/types.ts +0 -169
  1191. package/src/lib/components/organisms/company-footer/company-footer.component.ts +0 -73
  1192. package/src/lib/components/organisms/company-footer/company-footer.stories.ts +0 -216
  1193. package/src/lib/components/organisms/company-footer/types.ts +0 -16
  1194. package/src/lib/components/organisms/cookie-banner/cookie-banner.component.scss +0 -166
  1195. package/src/lib/components/organisms/cookie-banner/cookie-banner.component.ts +0 -123
  1196. package/src/lib/components/organisms/cookie-banner/cookie-banner.stories.ts +0 -120
  1197. package/src/lib/components/organisms/cookie-banner/types.ts +0 -74
  1198. package/src/lib/components/organisms/data-table/data-table.component.scss +0 -919
  1199. package/src/lib/components/organisms/data-table/data-table.component.ts +0 -821
  1200. package/src/lib/components/organisms/data-table/data-table.stories.ts +0 -787
  1201. package/src/lib/components/organisms/data-table/types.ts +0 -258
  1202. package/src/lib/components/organisms/docs-sidebar/docs-sidebar.component.scss +0 -228
  1203. package/src/lib/components/organisms/docs-sidebar/docs-sidebar.component.ts +0 -213
  1204. package/src/lib/components/organisms/docs-sidebar/types.ts +0 -112
  1205. package/src/lib/components/organisms/docs-toc/docs-toc.component.scss +0 -119
  1206. package/src/lib/components/organisms/docs-toc/docs-toc.component.ts +0 -320
  1207. package/src/lib/components/organisms/docs-toc/types.ts +0 -73
  1208. package/src/lib/components/organisms/footer/footer.component.scss +0 -3
  1209. package/src/lib/components/organisms/footer/footer.component.ts +0 -65
  1210. package/src/lib/components/organisms/footer/footer.stories.ts +0 -278
  1211. package/src/lib/components/organisms/footer/types.ts +0 -17
  1212. package/src/lib/components/organisms/form/factory.ts +0 -46
  1213. package/src/lib/components/organisms/form/form-footer/form-footer.component.scss +0 -0
  1214. package/src/lib/components/organisms/form/form-footer/form-footer.component.ts +0 -72
  1215. package/src/lib/components/organisms/form/form.component.scss +0 -24
  1216. package/src/lib/components/organisms/form/form.component.ts +0 -448
  1217. package/src/lib/components/organisms/form/form.stories.ts +0 -694
  1218. package/src/lib/components/organisms/fun-header/fun-header.component.scss +0 -36
  1219. package/src/lib/components/organisms/fun-header/fun-header.component.ts +0 -209
  1220. package/src/lib/components/organisms/fun-header/fun-header.stories.ts +0 -272
  1221. package/src/lib/components/organisms/fun-header/types.ts +0 -29
  1222. package/src/lib/components/organisms/header/header.component.scss +0 -5
  1223. package/src/lib/components/organisms/header/header.component.ts +0 -53
  1224. package/src/lib/components/organisms/header/header.stories.ts +0 -293
  1225. package/src/lib/components/organisms/header/types.ts +0 -17
  1226. package/src/lib/components/organisms/infinite-list/infinite-list.component.ts +0 -602
  1227. package/src/lib/components/organisms/infinite-list/infinite-list.stories.ts +0 -399
  1228. package/src/lib/components/organisms/infinite-list/types.ts +0 -235
  1229. package/src/lib/components/organisms/item-list/item-list.component.scss +0 -53
  1230. package/src/lib/components/organisms/item-list/item-list.component.ts +0 -269
  1231. package/src/lib/components/organisms/item-list/item-list.stories.ts +0 -363
  1232. package/src/lib/components/organisms/item-list/types.ts +0 -130
  1233. package/src/lib/components/organisms/login/login.component.html +0 -230
  1234. package/src/lib/components/organisms/login/login.component.scss +0 -118
  1235. package/src/lib/components/organisms/login/login.component.ts +0 -866
  1236. package/src/lib/components/organisms/login/login.stories.ts +0 -283
  1237. package/src/lib/components/organisms/login/types.ts +0 -89
  1238. package/src/lib/components/organisms/menu/menu.component.scss +0 -23
  1239. package/src/lib/components/organisms/menu/menu.component.ts +0 -152
  1240. package/src/lib/components/organisms/menu/menu.stories.ts +0 -223
  1241. package/src/lib/components/organisms/menu/types.ts +0 -24
  1242. package/src/lib/components/organisms/no-content/no-content.component.scss +0 -11
  1243. package/src/lib/components/organisms/no-content/no-content.component.ts +0 -68
  1244. package/src/lib/components/organisms/no-content/no-content.stories.ts +0 -259
  1245. package/src/lib/components/organisms/no-content/types.ts +0 -18
  1246. package/src/lib/components/organisms/rotating-text/rotating-text.component.ts +0 -239
  1247. package/src/lib/components/organisms/rotating-text/types.ts +0 -29
  1248. package/src/lib/components/organisms/tabbed-content/tabbed-content.component.scss +0 -89
  1249. package/src/lib/components/organisms/tabbed-content/tabbed-content.component.ts +0 -165
  1250. package/src/lib/components/organisms/tabbed-content/tabbed-content.stories.ts +0 -326
  1251. package/src/lib/components/organisms/tabbed-content/types.ts +0 -56
  1252. package/src/lib/components/organisms/terminal-404/terminal-404.component.ts +0 -339
  1253. package/src/lib/components/organisms/terminal-404/terminal-404.stories.ts +0 -229
  1254. package/src/lib/components/organisms/terminal-404/types.ts +0 -22
  1255. package/src/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.ts +0 -70
  1256. package/src/lib/components/organisms/testimonial-carousel/testimonial-carousel.stories.ts +0 -173
  1257. package/src/lib/components/organisms/testimonial-carousel/types.ts +0 -9
  1258. package/src/lib/components/organisms/toolbar/toolbar.component.scss +0 -13
  1259. package/src/lib/components/organisms/toolbar/toolbar.component.ts +0 -205
  1260. package/src/lib/components/organisms/toolbar/toolbar.stories.ts +0 -263
  1261. package/src/lib/components/organisms/toolbar/types.ts +0 -32
  1262. package/src/lib/components/organisms/wizard/types.ts +0 -46
  1263. package/src/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.scss +0 -0
  1264. package/src/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.ts +0 -104
  1265. package/src/lib/components/organisms/wizard/wizard.component.scss +0 -16
  1266. package/src/lib/components/organisms/wizard/wizard.component.ts +0 -165
  1267. package/src/lib/components/organisms/wizard/wizard.stories.ts +0 -653
  1268. package/src/lib/components/templates/auth-background/auth-background.component.ts +0 -301
  1269. package/src/lib/components/templates/auth-background/types.ts +0 -34
  1270. package/src/lib/components/templates/docs-layout/docs-layout.component.scss +0 -218
  1271. package/src/lib/components/templates/docs-layout/docs-layout.component.ts +0 -161
  1272. package/src/lib/components/templates/docs-layout/types.ts +0 -45
  1273. package/src/lib/components/templates/docs-page/docs-page.component.ts +0 -534
  1274. package/src/lib/components/templates/docs-page/types.ts +0 -141
  1275. package/src/lib/components/templates/docs-shell/docs-shell.component.ts +0 -494
  1276. package/src/lib/components/templates/docs-shell/types.ts +0 -176
  1277. package/src/lib/components/templates/maintenance-page/index.ts +0 -2
  1278. package/src/lib/components/templates/maintenance-page/maintenance-page.component.scss +0 -44
  1279. package/src/lib/components/templates/maintenance-page/maintenance-page.component.ts +0 -120
  1280. package/src/lib/components/templates/maintenance-page/types.ts +0 -12
  1281. package/src/lib/components/templates/page-content/page-content.component.ts +0 -188
  1282. package/src/lib/components/templates/page-content/page-content.stories.ts +0 -169
  1283. package/src/lib/components/templates/page-content/types.ts +0 -28
  1284. package/src/lib/components/templates/page-template/page-template.component.ts +0 -164
  1285. package/src/lib/components/templates/page-template/page-template.stories.ts +0 -174
  1286. package/src/lib/components/templates/page-template/types.ts +0 -17
  1287. package/src/lib/components/templates/page-wrapper/page-composition.stories.ts +0 -566
  1288. package/src/lib/components/templates/page-wrapper/page-wrapper.component.ts +0 -188
  1289. package/src/lib/components/templates/page-wrapper/page-wrapper.stories.ts +0 -149
  1290. package/src/lib/components/templates/page-wrapper/types.ts +0 -27
  1291. package/src/lib/components/templates/simple/simple.component.scss +0 -29
  1292. package/src/lib/components/templates/simple/simple.component.ts +0 -86
  1293. package/src/lib/components/templates/simple/types.ts +0 -11
  1294. package/src/lib/components/types.ts +0 -321
  1295. package/src/lib/config/company-footer.config.ts +0 -169
  1296. package/src/lib/services/ads/ads-consent.service.ts +0 -166
  1297. package/src/lib/services/ads/ads-loader.service.ts +0 -133
  1298. package/src/lib/services/ads/ads.service.ts +0 -268
  1299. package/src/lib/services/ads/config.ts +0 -92
  1300. package/src/lib/services/ads/index.ts +0 -29
  1301. package/src/lib/services/ads/types.ts +0 -187
  1302. package/src/lib/services/app-config/app-config.service.ts +0 -228
  1303. package/src/lib/services/app-config/config.ts +0 -62
  1304. package/src/lib/services/app-config/index.ts +0 -48
  1305. package/src/lib/services/app-config/types.ts +0 -62
  1306. package/src/lib/services/app-config/version.ts +0 -104
  1307. package/src/lib/services/auth/auth-state.service.ts +0 -248
  1308. package/src/lib/services/auth/auth.service.ts +0 -1387
  1309. package/src/lib/services/auth/config.ts +0 -87
  1310. package/src/lib/services/auth/device.service.ts +0 -163
  1311. package/src/lib/services/auth/guards.ts +0 -234
  1312. package/src/lib/services/auth/handoff.service.ts +0 -225
  1313. package/src/lib/services/auth/index.ts +0 -128
  1314. package/src/lib/services/auth/interceptor.ts +0 -177
  1315. package/src/lib/services/auth/notification-action.service.ts +0 -133
  1316. package/src/lib/services/auth/oauth-callback.component.ts +0 -202
  1317. package/src/lib/services/auth/oauth.service.ts +0 -352
  1318. package/src/lib/services/auth/org-switch.service.ts +0 -165
  1319. package/src/lib/services/auth/session.service.ts +0 -83
  1320. package/src/lib/services/auth/storage.service.ts +0 -181
  1321. package/src/lib/services/auth/sync.service.ts +0 -158
  1322. package/src/lib/services/auth/token.service.ts +0 -132
  1323. package/src/lib/services/auth/types.ts +0 -1042
  1324. package/src/lib/services/confirmation-dialog/confirmation-dialog.service.ts +0 -206
  1325. package/src/lib/services/confirmation-dialog/types.ts +0 -74
  1326. package/src/lib/services/content/content-types/blog.ts +0 -324
  1327. package/src/lib/services/content/content-types/documentation.ts +0 -369
  1328. package/src/lib/services/content/content-types/news.ts +0 -328
  1329. package/src/lib/services/content/index.ts +0 -71
  1330. package/src/lib/services/content/transformer.ts +0 -312
  1331. package/src/lib/services/content/types.ts +0 -276
  1332. package/src/lib/services/docs/docs-navigation.service.ts +0 -91
  1333. package/src/lib/services/download.service.ts +0 -75
  1334. package/src/lib/services/feedback/config.ts +0 -61
  1335. package/src/lib/services/feedback/feedback.service.ts +0 -348
  1336. package/src/lib/services/feedback/index.ts +0 -59
  1337. package/src/lib/services/feedback/types.ts +0 -239
  1338. package/src/lib/services/firebase/README.md +0 -328
  1339. package/src/lib/services/firebase/analytics-error-handler.ts +0 -155
  1340. package/src/lib/services/firebase/analytics-router-tracker.ts +0 -109
  1341. package/src/lib/services/firebase/analytics-types.ts +0 -277
  1342. package/src/lib/services/firebase/analytics.service.ts +0 -707
  1343. package/src/lib/services/firebase/config.ts +0 -172
  1344. package/src/lib/services/firebase/firebase.service.ts +0 -502
  1345. package/src/lib/services/firebase/firestore-collection.ts +0 -390
  1346. package/src/lib/services/firebase/firestore.service.ts +0 -685
  1347. package/src/lib/services/firebase/index.ts +0 -88
  1348. package/src/lib/services/firebase/messaging.service.ts +0 -753
  1349. package/src/lib/services/firebase/notifications.service.ts +0 -295
  1350. package/src/lib/services/firebase/shared-config.ts +0 -212
  1351. package/src/lib/services/firebase/storage.service.ts +0 -536
  1352. package/src/lib/services/firebase/types.ts +0 -461
  1353. package/src/lib/services/firebase/utils/path-builder.ts +0 -210
  1354. package/src/lib/services/firebase/utils/query-builder.ts +0 -339
  1355. package/src/lib/services/i18n/config.ts +0 -146
  1356. package/src/lib/services/i18n/default-content.ts +0 -657
  1357. package/src/lib/services/i18n/i18n.service.ts +0 -243
  1358. package/src/lib/services/i18n/index.ts +0 -29
  1359. package/src/lib/services/i18n/input-i18n.helper.ts +0 -141
  1360. package/src/lib/services/i18n/translate.pipe.ts +0 -43
  1361. package/src/lib/services/i18n/types.ts +0 -108
  1362. package/src/lib/services/icons.service.ts +0 -136
  1363. package/src/lib/services/image/image.service.ts +0 -328
  1364. package/src/lib/services/image/types.ts +0 -79
  1365. package/src/lib/services/in-app-browser.service.ts +0 -30
  1366. package/src/lib/services/legal-link/legal-link.service.ts +0 -98
  1367. package/src/lib/services/link-processor.service.ts +0 -311
  1368. package/src/lib/services/local-storage.service.ts +0 -39
  1369. package/src/lib/services/locale.service.ts +0 -86
  1370. package/src/lib/services/markdown-article/legal-content.service.ts +0 -152
  1371. package/src/lib/services/markdown-article/markdown-article-parser.service.ts +0 -15
  1372. package/src/lib/services/markdown-article/markdown-article-parser.ts +0 -362
  1373. package/src/lib/services/meta/meta.service.ts +0 -64
  1374. package/src/lib/services/meta/types.ts +0 -13
  1375. package/src/lib/services/modal/modal.service.ts +0 -244
  1376. package/src/lib/services/modal/simple-modal-content.component.ts +0 -138
  1377. package/src/lib/services/modal/types.ts +0 -180
  1378. package/src/lib/services/navigation/navigation.service.ts +0 -255
  1379. package/src/lib/services/navigation/types.ts +0 -86
  1380. package/src/lib/services/pagination/index.ts +0 -13
  1381. package/src/lib/services/pagination/pagination.service.ts +0 -243
  1382. package/src/lib/services/pagination/types.ts +0 -133
  1383. package/src/lib/services/preferences/preferences.service.ts +0 -179
  1384. package/src/lib/services/preferences/preferences.types.ts +0 -37
  1385. package/src/lib/services/presets/config.ts +0 -51
  1386. package/src/lib/services/presets/index.ts +0 -8
  1387. package/src/lib/services/presets/preset.service.ts +0 -105
  1388. package/src/lib/services/presets/types.ts +0 -41
  1389. package/src/lib/services/qr-generator/qr-generator.service.ts +0 -378
  1390. package/src/lib/services/qr-generator/types.ts +0 -207
  1391. package/src/lib/services/skeleton/config.ts +0 -82
  1392. package/src/lib/services/skeleton/directives/index.ts +0 -1
  1393. package/src/lib/services/skeleton/directives/loading.directive.ts +0 -230
  1394. package/src/lib/services/skeleton/index.ts +0 -30
  1395. package/src/lib/services/skeleton/skeleton.service.ts +0 -220
  1396. package/src/lib/services/skeleton/templates/detail-skeleton.component.ts +0 -166
  1397. package/src/lib/services/skeleton/templates/form-skeleton.component.ts +0 -115
  1398. package/src/lib/services/skeleton/templates/grid-skeleton.component.ts +0 -127
  1399. package/src/lib/services/skeleton/templates/index.ts +0 -6
  1400. package/src/lib/services/skeleton/templates/list-skeleton.component.ts +0 -90
  1401. package/src/lib/services/skeleton/templates/profile-skeleton.component.ts +0 -174
  1402. package/src/lib/services/skeleton/templates/table-skeleton.component.ts +0 -113
  1403. package/src/lib/services/skeleton/types.ts +0 -142
  1404. package/src/lib/services/theme.service.ts +0 -163
  1405. package/src/lib/services/toast.service.ts +0 -42
  1406. package/src/lib/services/types.ts +0 -6
  1407. package/src/lib/shared/constants/storage.ts +0 -2
  1408. package/src/lib/shared/pipes/process-links.pipe.ts +0 -64
  1409. package/src/lib/shared/utils/datetime.ts +0 -27
  1410. package/src/lib/shared/utils/dom.ts +0 -29
  1411. package/src/lib/shared/utils/form-defaults.ts +0 -119
  1412. package/src/lib/shared/utils/styles.ts +0 -39
  1413. package/src/lib/shared/utils/text.ts +0 -12
  1414. package/src/lib/version.ts +0 -5
  1415. package/src/public-api.ts +0 -373
  1416. package/src/stories/Introduction.mdx +0 -649
  1417. package/src/stories/LayoutAndWidths.mdx +0 -161
  1418. package/src/stories/helpers/mock-services.ts +0 -27
  1419. package/src/stories/helpers/storybook-helpers.ts +0 -89
  1420. package/tsconfig.json +0 -32
  1421. package/tsconfig.lib.json +0 -15
  1422. package/tsconfig.lib.prod.json +0 -10
  1423. package/tsconfig.spec.json +0 -14
  1424. /package/{src/lib/components/molecules/image-crop/index.ts → lib/components/molecules/image-crop/index.d.ts} +0 -0
  1425. /package/{src/lib/config/index.ts → lib/config/index.d.ts} +0 -0
  1426. /package/{src/lib/services/image/index.ts → lib/services/image/index.d.ts} +0 -0
  1427. /package/{src/lib/services/meta/index.ts → lib/services/meta/index.d.ts} +0 -0
  1428. /package/{src/lib/services/navigation/index.ts → lib/services/navigation/index.d.ts} +0 -0
  1429. /package/{src/lib/services/preferences/index.ts → lib/services/preferences/index.d.ts} +0 -0
@@ -1,1387 +0,0 @@
1
- import { Injectable, Inject, OnDestroy, Optional } from '@angular/core';
2
- import { HttpClient, HttpErrorResponse } from '@angular/common/http';
3
- import { Router } from '@angular/router';
4
- import { Observable, throwError, of, from, firstValueFrom, Subscription } from 'rxjs';
5
- import { tap, catchError, switchMap, map } from 'rxjs/operators';
6
-
7
- import { VALTECH_AUTH_CONFIG } from './config';
8
- import { AuthStateService } from './auth-state.service';
9
- import { TokenService } from './token.service';
10
- import { AuthStorageService } from './storage.service';
11
- import { AuthSyncService } from './sync.service';
12
- import {
13
- SigninRequest,
14
- SigninResponse,
15
- SignupRequest,
16
- SignupResponse,
17
- VerifyEmailRequest,
18
- VerifyEmailResponse,
19
- ResendCodeRequest,
20
- ResendCodeResponse,
21
- MFAVerifyResponse,
22
- RefreshResponse,
23
- GetPermissionsResponse,
24
- GetProfileResponse,
25
- UpdateProfileRequest,
26
- UpdateProfileResponse,
27
- MFASetupResponse,
28
- MFAConfirmResponse,
29
- MFADisableResponse,
30
- ForgotPasswordRequest,
31
- ForgotPasswordResponse,
32
- ResetPasswordRequest,
33
- ResetPasswordResponse,
34
- ChangePasswordRequest,
35
- ChangePasswordResponse,
36
- DeleteAccountRequest,
37
- DeleteAccountResponse,
38
- SwitchOrgResponse,
39
- MFAMethod,
40
- AuthError,
41
- AuthSyncEvent,
42
- ValtechAuthConfig,
43
- RegisterDeviceResponse,
44
- EnableNotificationsResult,
45
- NotificationPermissionState,
46
- RegisterDeviceResult,
47
- // TOTP MFA types
48
- TOTPSetupResponse,
49
- TOTPVerifySetupResponse,
50
- TOTPDisableResponse,
51
- RegenerateBackupCodesResponse,
52
- BackupCodesCountResponse,
53
- // OAuth types
54
- OAuthProvider,
55
- OAuthResult,
56
- LinkedProvider,
57
- HasPasswordResponse,
58
- // Handle types
59
- UpdateHandleResponse,
60
- CheckHandleResponse,
61
- // Avatar types
62
- UpdateAvatarRequest,
63
- UpdateAvatarResponse,
64
- } from './types';
65
- import { OAuthService } from './oauth.service';
66
- import { FirebaseService, MessagingService } from '../firebase';
67
- import { I18nService, I18nLang } from '../i18n';
68
- import { ConfirmationDialogService } from '../confirmation-dialog/confirmation-dialog.service';
69
-
70
- /**
71
- * Servicio principal de autenticación.
72
- *
73
- * @example
74
- * ```typescript
75
- * import { AuthService } from 'valtech-components';
76
- *
77
- * @Component({...})
78
- * export class LoginComponent {
79
- * private auth = inject(AuthService);
80
- *
81
- * async login() {
82
- * await firstValueFrom(this.auth.signin({ email, password }));
83
- * if (this.auth.mfaPending().required) {
84
- * // Mostrar UI de MFA
85
- * } else {
86
- * this.router.navigate(['/']);
87
- * }
88
- * }
89
- * }
90
- * ```
91
- */
92
- @Injectable({ providedIn: 'root' })
93
- export class AuthService implements OnDestroy {
94
- // Timer para refresh proactivo
95
- private refreshTimerId: ReturnType<typeof setTimeout> | null = null;
96
- private syncSubscription: Subscription | null = null;
97
-
98
- constructor(
99
- @Inject(VALTECH_AUTH_CONFIG) private config: ValtechAuthConfig,
100
- private http: HttpClient,
101
- private router: Router,
102
- private stateService: AuthStateService,
103
- private tokenService: TokenService,
104
- private storageService: AuthStorageService,
105
- private syncService: AuthSyncService,
106
- private firebaseService: FirebaseService,
107
- private oauthService: OAuthService,
108
- @Optional() private messagingService: MessagingService | null,
109
- @Optional() private i18nService: I18nService | null,
110
- private confirmationService: ConfirmationDialogService
111
- ) {}
112
-
113
- // =============================================
114
- // ESTADO PÚBLICO (Signals readonly)
115
- // =============================================
116
-
117
- /** Estado completo de autenticación */
118
- readonly state = this.stateService.state;
119
-
120
- /** Usuario está autenticado */
121
- readonly isAuthenticated = this.stateService.isAuthenticated;
122
-
123
- /** Estado de carga */
124
- readonly isLoading = this.stateService.isLoading;
125
-
126
- /** Información del usuario */
127
- readonly user = this.stateService.user;
128
-
129
- /** Token de acceso */
130
- readonly accessToken = this.stateService.accessToken;
131
-
132
- /** Roles del usuario */
133
- readonly roles = this.stateService.roles;
134
-
135
- /** Permisos del usuario */
136
- readonly permissions = this.stateService.permissions;
137
-
138
- /** Usuario es super admin */
139
- readonly isSuperAdmin = this.stateService.isSuperAdmin;
140
-
141
- /** Estado de MFA pendiente */
142
- readonly mfaPending = this.stateService.mfaPending;
143
-
144
- /** Error actual */
145
- readonly error = this.stateService.error;
146
-
147
- // =============================================
148
- // INICIALIZACIÓN
149
- // =============================================
150
-
151
- /**
152
- * Inicializa el servicio de autenticación.
153
- * Llamado automáticamente por provideValtechAuth.
154
- */
155
- async initialize(): Promise<void> {
156
- // 1. Cargar estado desde storage
157
- const storedState = this.storageService.loadState();
158
-
159
- if (storedState.accessToken) {
160
- // 2. Verificar si token es válido
161
- if (this.tokenService.isTokenValid(storedState.accessToken)) {
162
- this.stateService.restoreFromStorage(storedState);
163
-
164
- // Extraer info del token
165
- const claims = this.tokenService.parseToken(storedState.accessToken);
166
- if (claims) {
167
- this.stateService.updateUserInfo(claims.uid, claims.email);
168
- }
169
-
170
- // 3. Iniciar timer de refresco proactivo
171
- this.startRefreshTimer();
172
- } else if (storedState.refreshToken) {
173
- // 4. Token expirado pero hay refresh token - intentar refrescar
174
- try {
175
- await firstValueFrom(this.refreshAccessToken());
176
- } catch {
177
- this.signOutFirebase();
178
- this.clearState();
179
- }
180
- } else {
181
- this.signOutFirebase();
182
- this.clearState();
183
- }
184
- }
185
-
186
- // 5. Iniciar sincronización entre pestañas
187
- if (this.config.enableTabSync) {
188
- this.syncService.start();
189
- this.syncSubscription = this.syncService.onEvent$.subscribe(event =>
190
- this.handleSyncEvent(event)
191
- );
192
- }
193
-
194
- this.stateService.setLoading(false);
195
- }
196
-
197
- ngOnDestroy(): void {
198
- this.stopRefreshTimer();
199
- this.syncSubscription?.unsubscribe();
200
- }
201
-
202
- // =============================================
203
- // AUTENTICACIÓN
204
- // =============================================
205
-
206
- /**
207
- * Inicia sesión con email y contraseña.
208
- * Detecta automáticamente la plataforma para identificar dispositivos nuevos.
209
- */
210
- signin(request: SigninRequest): Observable<SigninResponse> {
211
- this.stateService.clearError();
212
-
213
- // Agregar info de plataforma para device detection
214
- const platformInfo = this.detectPlatformInfo();
215
- const enrichedRequest: SigninRequest = {
216
- ...request,
217
- platform: request.platform ?? platformInfo.platform,
218
- browser: request.browser ?? platformInfo.browser,
219
- os: request.os ?? platformInfo.os,
220
- };
221
-
222
- return this.http.post<SigninResponse>(`${this.baseUrl}/signin`, enrichedRequest).pipe(
223
- tap(response => {
224
- if (response.mfaRequired) {
225
- // MFA requerido - guardar estado temporal
226
- this.stateService.setMFAPending({
227
- required: true,
228
- mfaToken: response.mfaToken!,
229
- method: response.mfaMethod!,
230
- });
231
- } else if (response.accessToken) {
232
- // Login exitoso sin MFA
233
- this.handleSuccessfulAuth(response);
234
-
235
- // Notificar si es un dispositivo nuevo
236
- if (response.isNewDevice) {
237
- console.log('[ValtechAuth] New device detected:', response.deviceId);
238
- }
239
- }
240
- }),
241
- catchError(error => this.handleAuthError(error))
242
- );
243
- }
244
-
245
- // =============================================
246
- // OAUTH (Login social)
247
- // =============================================
248
-
249
- /**
250
- * Inicia sesión con OAuth (Google, Apple, Microsoft).
251
- * Abre un popup para el flujo de autenticación.
252
- *
253
- * @param provider - Proveedor OAuth ('google', 'apple', 'microsoft')
254
- * @returns Observable que emite SigninResponse cuando se completa
255
- *
256
- * @example
257
- * ```typescript
258
- * this.auth.signinWithOAuth('google').subscribe({
259
- * next: () => this.router.navigate(['/']),
260
- * error: (err) => console.error('OAuth failed:', err)
261
- * });
262
- * ```
263
- */
264
- signinWithOAuth(provider: OAuthProvider): Observable<SigninResponse> {
265
- this.stateService.clearError();
266
-
267
- return this.oauthService.startFlow(provider).pipe(
268
- tap(result => {
269
- // DEBUG: Log OAuth result to check firebaseToken
270
- console.log('[ValtechAuth] OAuth result received:', {
271
- hasAccessToken: !!result.accessToken,
272
- hasRefreshToken: !!result.refreshToken,
273
- hasFirebaseToken: !!result.firebaseToken,
274
- firebaseTokenLength: result.firebaseToken?.length || 0,
275
- });
276
-
277
- // Convertir OAuthResult a SigninResponse compatible
278
- const response: SigninResponse = {
279
- operationId: 'oauth',
280
- accessToken: result.accessToken,
281
- refreshToken: result.refreshToken,
282
- firebaseToken: result.firebaseToken,
283
- expiresIn: result.expiresIn,
284
- roles: result.roles,
285
- permissions: result.permissions,
286
- };
287
- this.handleSuccessfulAuth(response);
288
- }),
289
- map(
290
- result =>
291
- ({
292
- operationId: 'oauth',
293
- accessToken: result.accessToken,
294
- refreshToken: result.refreshToken,
295
- firebaseToken: result.firebaseToken,
296
- expiresIn: result.expiresIn,
297
- roles: result.roles,
298
- permissions: result.permissions,
299
- }) as SigninResponse
300
- ),
301
- catchError(error => {
302
- const authError: AuthError = {
303
- code: error.code || 'OAUTH_ERROR',
304
- message: error.message || 'Error de autenticación OAuth',
305
- };
306
- this.stateService.setError(authError);
307
- return throwError(() => authError);
308
- })
309
- );
310
- }
311
-
312
- /**
313
- * Vincula un proveedor OAuth adicional a la cuenta actual.
314
- * Requiere que el usuario esté autenticado.
315
- *
316
- * @param provider - Proveedor OAuth a vincular
317
- */
318
- linkOAuthProvider(provider: OAuthProvider): Observable<{ success: boolean }> {
319
- return this.oauthService.startLinkFlow(provider).pipe(
320
- map(() => ({ success: true })),
321
- catchError(error => {
322
- const authError: AuthError = {
323
- code: error.code || 'LINK_ERROR',
324
- message: error.message || 'Error al vincular proveedor',
325
- };
326
- this.stateService.setError(authError);
327
- return throwError(() => authError);
328
- })
329
- );
330
- }
331
-
332
- /**
333
- * Obtiene los proveedores OAuth vinculados al usuario.
334
- */
335
- getLinkedProviders(): Observable<LinkedProvider[]> {
336
- return this.oauthService.getLinkedProviders();
337
- }
338
-
339
- /**
340
- * Desvincula un proveedor OAuth de la cuenta.
341
- *
342
- * @param provider - Proveedor a desvincular
343
- */
344
- unlinkOAuthProvider(provider: OAuthProvider): Observable<{ success: boolean }> {
345
- return this.oauthService.unlinkProvider(provider);
346
- }
347
-
348
- /**
349
- * Establece contraseña para usuarios que solo tienen OAuth.
350
- * Permite que usuarios OAuth-only puedan también usar email/password.
351
- *
352
- * @param password - Nueva contraseña
353
- */
354
- setPasswordForOAuthUser(password: string): Observable<{ success: boolean }> {
355
- return this.oauthService.setPassword(password);
356
- }
357
-
358
- /**
359
- * Verifica si el usuario tiene contraseña establecida.
360
- * Útil para mostrar/ocultar opciones de cambio de contraseña.
361
- */
362
- checkHasPassword(): Observable<HasPasswordResponse> {
363
- return this.oauthService.hasPassword();
364
- }
365
-
366
- /**
367
- * Registra un nuevo usuario.
368
- * El usuario queda en estado PENDING hasta verificar su email.
369
- */
370
- signup(request: SignupRequest): Observable<SignupResponse> {
371
- this.stateService.clearError();
372
-
373
- return this.http
374
- .post<SignupResponse>(`${this.baseUrl}/signup`, request)
375
- .pipe(catchError(error => this.handleAuthError(error)));
376
- }
377
-
378
- /**
379
- * Verifica email con código de 6 dígitos.
380
- * Si es exitoso, hace auto-login y retorna tokens.
381
- */
382
- verifyEmail(request: VerifyEmailRequest): Observable<VerifyEmailResponse> {
383
- this.stateService.clearError();
384
-
385
- return this.http.post<VerifyEmailResponse>(`${this.baseUrl}/verify-email`, request).pipe(
386
- tap(response => {
387
- if (response.verified && response.accessToken) {
388
- // Auto-login: guardar tokens y actualizar estado
389
- this.handleSuccessfulAuth(response as unknown as SigninResponse);
390
- }
391
- }),
392
- catchError(error => this.handleAuthError(error))
393
- );
394
- }
395
-
396
- /**
397
- * Reenvía código de verificación al email.
398
- */
399
- resendCode(request: ResendCodeRequest): Observable<ResendCodeResponse> {
400
- return this.http
401
- .post<ResendCodeResponse>(`${this.baseUrl}/resend-code`, request)
402
- .pipe(catchError(error => this.handleAuthError(error)));
403
- }
404
-
405
- /**
406
- * Verifica código MFA.
407
- */
408
- verifyMFA(code: string): Observable<MFAVerifyResponse> {
409
- const mfaState = this.mfaPending();
410
- if (!mfaState.mfaToken) {
411
- return throwError(() => ({
412
- code: 'MFA_NOT_PENDING',
413
- message: 'No hay verificación MFA pendiente',
414
- }));
415
- }
416
-
417
- return this.http
418
- .post<MFAVerifyResponse>(`${this.baseUrl}/mfa/verify`, {
419
- mfaToken: mfaState.mfaToken,
420
- code,
421
- })
422
- .pipe(
423
- tap(response => {
424
- this.stateService.clearMFAPending();
425
- this.handleSuccessfulAuth(response);
426
- }),
427
- catchError(error => this.handleAuthError(error))
428
- );
429
- }
430
-
431
- /**
432
- * Refresca el token de acceso.
433
- * Implementa token rotation: cada refresh genera un nuevo refresh token
434
- * que el cliente debe guardar para el próximo refresh.
435
- */
436
- refreshAccessToken(): Observable<RefreshResponse> {
437
- const refreshToken = this.state().refreshToken;
438
- if (!refreshToken) {
439
- return throwError(() => ({
440
- code: 'NO_REFRESH_TOKEN',
441
- message: 'No hay token de refresco',
442
- }));
443
- }
444
-
445
- return this.http.post<RefreshResponse>(`${this.baseUrl}/refresh`, { refreshToken }).pipe(
446
- tap(response => {
447
- const expiresAt = Date.now() + response.expiresIn * 1000;
448
-
449
- // Token rotation: guardar nuevo access token Y refresh token
450
- this.stateService.updateAccessToken(response.accessToken, response.expiresIn);
451
- this.stateService.updateRefreshToken(response.refreshToken); // NUEVO: guardar refresh rotado
452
- this.storageService.saveAccessToken(response.accessToken, expiresAt);
453
- this.storageService.saveRefreshToken(response.refreshToken); // NUEVO: persistir refresh rotado
454
-
455
- if (this.config.enableFirebaseIntegration && response.firebaseToken) {
456
- this.signInWithFirebase(response.firebaseToken);
457
- }
458
-
459
- this.startRefreshTimer();
460
- this.syncService.broadcast({
461
- type: 'TOKEN_REFRESH',
462
- payload: {
463
- accessToken: response.accessToken,
464
- refreshToken: response.refreshToken, // NUEVO: sincronizar entre tabs
465
- expiresAt,
466
- },
467
- });
468
- }),
469
- catchError(error => {
470
- this.logout();
471
- return throwError(() => error);
472
- })
473
- );
474
- }
475
-
476
- /**
477
- * Maneja autenticación exitosa desde fuentes externas (OAuth, etc).
478
- * Guarda tokens, actualiza estado, inicia Firebase si corresponde.
479
- *
480
- * @param authResult - Resultado de autenticación con tokens
481
- *
482
- * @example
483
- * ```typescript
484
- * // Desde un flujo OAuth externo
485
- * externalOAuth.signIn().subscribe({
486
- * next: (result) => {
487
- * this.authService.setExternalAuth(result);
488
- * }
489
- * });
490
- * ```
491
- */
492
- setExternalAuth(authResult: {
493
- accessToken: string;
494
- refreshToken: string;
495
- firebaseToken?: string;
496
- expiresIn: number;
497
- roles?: string[];
498
- permissions?: string[];
499
- }): void {
500
- this.handleSuccessfulAuth({
501
- ...authResult,
502
- operationId: 'external-auth',
503
- tokenType: 'Bearer',
504
- } as SigninResponse);
505
- }
506
-
507
- /**
508
- * Cierra sesión tras pedir confirmación al usuario.
509
- *
510
- * Muestra un diálogo nativo (estilo destructivo). Si el usuario confirma,
511
- * ejecuta `logout()`. Si cancela, no pasa nada.
512
- *
513
- * Texto por defecto desde `_global` i18n: `logoutConfirmTitle`,
514
- * `logoutConfirmMessage`, `logout`, `cancel`. Override via `opts`.
515
- *
516
- * @returns true si el usuario confirmó (logout ejecutado), false si canceló.
517
- *
518
- * @example
519
- * onLogoutClick() { this.auth.logoutWithConfirmation(); }
520
- */
521
- async logoutWithConfirmation(opts?: {
522
- title?: string;
523
- message?: string;
524
- confirmText?: string;
525
- cancelText?: string;
526
- }): Promise<boolean> {
527
- const t = (key: string, fallback: string) => this.i18nService?.t(key) || fallback;
528
- const result = await this.confirmationService.confirmDestructive({
529
- title: opts?.title ?? t('logoutConfirmTitle', 'Cerrar sesión'),
530
- message: opts?.message ?? t('logoutConfirmMessage', '¿Seguro que deseas cerrar sesión?'),
531
- confirmButton: { text: opts?.confirmText ?? t('logout', 'Cerrar sesión') },
532
- cancelButton: { text: opts?.cancelText ?? t('cancel', 'Cancelar') },
533
- });
534
-
535
- if (result.confirmed) {
536
- await this.logout();
537
- return true;
538
- }
539
- return false;
540
- }
541
-
542
- /**
543
- * Cierra sesión.
544
- */
545
- async logout(): Promise<void> {
546
- const refreshToken = this.state().refreshToken;
547
-
548
- // Eliminar dispositivo del backend antes de cerrar sesión
549
- await this.unregisterDevice();
550
-
551
- // Notificar al backend (fire and forget)
552
- if (refreshToken) {
553
- this.http
554
- .post(`${this.baseUrl}/logout`, { refreshToken })
555
- .pipe(catchError(() => of(null)))
556
- .subscribe();
557
- }
558
-
559
- // Cerrar sesión de Firebase si está integrado
560
- this.signOutFirebase();
561
-
562
- this.clearState();
563
- this.syncService.broadcast({ type: 'LOGOUT' });
564
- this.router.navigate([this.config.loginRoute]);
565
- }
566
-
567
- // =============================================
568
- // MFA SETUP (usuario autenticado)
569
- // =============================================
570
-
571
- /**
572
- * Configura MFA para el usuario.
573
- */
574
- setupMFA(method: MFAMethod, phone?: string): Observable<MFASetupResponse> {
575
- return this.http
576
- .post<MFASetupResponse>(`${this.baseUrl}/mfa/setup`, { method, phone })
577
- .pipe(catchError(error => this.handleAuthError(error)));
578
- }
579
-
580
- /**
581
- * Confirma la configuración de MFA.
582
- */
583
- confirmMFA(code: string): Observable<MFAConfirmResponse> {
584
- return this.http
585
- .post<MFAConfirmResponse>(`${this.baseUrl}/mfa/confirm`, { code })
586
- .pipe(catchError(error => this.handleAuthError(error)));
587
- }
588
-
589
- /**
590
- * Deshabilita MFA.
591
- */
592
- disableMFA(password: string): Observable<MFADisableResponse> {
593
- return this.http
594
- .post<MFADisableResponse>(`${this.baseUrl}/mfa/disable`, { password })
595
- .pipe(catchError(error => this.handleAuthError(error)));
596
- }
597
-
598
- // =============================================
599
- // TOTP MFA (Google Authenticator)
600
- // =============================================
601
-
602
- /**
603
- * Inicia configuración de TOTP MFA.
604
- * Retorna el secreto, URL para QR code y códigos de respaldo.
605
- */
606
- setupTOTP(): Observable<TOTPSetupResponse> {
607
- return this.http
608
- .post<TOTPSetupResponse>(`${this.baseUrl}/mfa/totp/setup`, {})
609
- .pipe(catchError(error => this.handleAuthError(error)));
610
- }
611
-
612
- /**
613
- * Verifica el código TOTP y activa MFA.
614
- * Debe llamarse después de setupTOTP con el código del authenticator.
615
- */
616
- verifyTOTPSetup(code: string): Observable<TOTPVerifySetupResponse> {
617
- return this.http
618
- .post<TOTPVerifySetupResponse>(`${this.baseUrl}/mfa/totp/verify`, { code })
619
- .pipe(catchError(error => this.handleAuthError(error)));
620
- }
621
-
622
- /**
623
- * Regenera los códigos de respaldo TOTP.
624
- * Los códigos anteriores son invalidados.
625
- */
626
- regenerateBackupCodes(): Observable<RegenerateBackupCodesResponse> {
627
- return this.http
628
- .post<RegenerateBackupCodesResponse>(`${this.baseUrl}/mfa/totp/backup-codes`, {})
629
- .pipe(catchError(error => this.handleAuthError(error)));
630
- }
631
-
632
- /**
633
- * Obtiene la cantidad de códigos de respaldo restantes.
634
- */
635
- getBackupCodesCount(): Observable<BackupCodesCountResponse> {
636
- return this.http
637
- .get<BackupCodesCountResponse>(`${this.baseUrl}/mfa/totp/backup-codes/count`)
638
- .pipe(catchError(error => this.handleAuthError(error)));
639
- }
640
-
641
- /**
642
- * Desactiva TOTP MFA (requiere contraseña).
643
- */
644
- disableTOTP(password: string): Observable<TOTPDisableResponse> {
645
- return this.http
646
- .post<TOTPDisableResponse>(`${this.baseUrl}/mfa/totp/disable`, { password })
647
- .pipe(catchError(error => this.handleAuthError(error)));
648
- }
649
-
650
- // =============================================
651
- // ORGANIZACIONES
652
- // =============================================
653
-
654
- /**
655
- * Cambia la organización activa del usuario.
656
- * Genera un nuevo Firebase token con el activeOrg actualizado.
657
- *
658
- * @param organizationId - ID de la organización a la que cambiar
659
- * @returns Observable con el nuevo Firebase token y activeOrg
660
- *
661
- * @example
662
- * ```typescript
663
- * await firstValueFrom(this.auth.switchOrg('org_xyz789'));
664
- * // Firebase ya está re-autenticado con la nueva org
665
- * const activeOrg = await this.firebase.getActiveOrg();
666
- * ```
667
- */
668
- switchOrg(organizationId: string): Observable<SwitchOrgResponse> {
669
- return this.http.post<SwitchOrgResponse>(`${this.baseUrl}/switch-org`, { organizationId }).pipe(
670
- switchMap(response => {
671
- // Re-autenticar en Firebase con el nuevo token
672
- // Usar switchMap + from para esperar a que Firebase complete
673
- const firebaseAuth$ = response.firebaseToken
674
- ? from(this.signInWithFirebase(response.firebaseToken))
675
- : of(undefined);
676
-
677
- return firebaseAuth$.pipe(
678
- tap(() => {
679
- // Notificar cambio a otras pestañas
680
- this.syncService.broadcast({
681
- type: 'ORG_SWITCH',
682
- payload: { activeOrg: response.activeOrg },
683
- });
684
- }),
685
- // Retornar response original después de que Firebase complete
686
- map(() => response)
687
- );
688
- }),
689
- catchError(error => this.handleAuthError(error))
690
- );
691
- }
692
-
693
- // =============================================
694
- // PERFIL DE USUARIO
695
- // =============================================
696
-
697
- /**
698
- * Obtiene el perfil del usuario autenticado.
699
- * Incluye información de MFA y teléfono. Hidrata el state automáticamente
700
- * con `name/handle/avatarUrl/phone` para que `auth.user()` los retorne.
701
- */
702
- getProfile(): Observable<GetProfileResponse> {
703
- return this.http.get<GetProfileResponse>(`${this.baseUrl}/profile`).pipe(
704
- tap(profile =>
705
- this.stateService.updateProfileFields({
706
- name: profile.name,
707
- handle: profile.handle ?? null,
708
- avatarUrl: profile.avatarUrl ?? null,
709
- phone: profile.phone ?? null,
710
- })
711
- ),
712
- catchError(error => this.handleAuthError(error))
713
- );
714
- }
715
-
716
- /**
717
- * Actualiza el perfil del usuario. Sincroniza state con los nuevos values
718
- * (name/phone) — el backend response no los echo'a pero el caller ya tiene
719
- * los valores que mandó.
720
- */
721
- updateProfile(request: UpdateProfileRequest): Observable<UpdateProfileResponse> {
722
- return this.http.put<UpdateProfileResponse>(`${this.baseUrl}/profile`, request).pipe(
723
- tap(() => this.stateService.updateProfileFields(request)),
724
- catchError(error => this.handleAuthError(error))
725
- );
726
- }
727
-
728
- /**
729
- * Actualiza el avatar del usuario en el backend. Sincroniza state con el
730
- * `avatarUrl` retornado para que el header / dashboard se refresquen sin
731
- * necesidad de un getProfile adicional.
732
- */
733
- updateAvatar(request: UpdateAvatarRequest): Observable<UpdateAvatarResponse> {
734
- return this.http.put<UpdateAvatarResponse>(`${this.baseUrl}/profile/avatar`, request).pipe(
735
- tap(res => this.stateService.updateProfileFields({ avatarUrl: res.avatarUrl })),
736
- catchError(error => this.handleAuthError(error))
737
- );
738
- }
739
-
740
- // =============================================
741
- // RECUPERACIÓN DE CONTRASEÑA
742
- // =============================================
743
-
744
- /**
745
- * Inicia el proceso de recuperación de contraseña.
746
- * Envía un código al email del usuario.
747
- */
748
- forgotPassword(request: ForgotPasswordRequest): Observable<ForgotPasswordResponse> {
749
- return this.http
750
- .post<ForgotPasswordResponse>(`${this.baseUrl}/forgot-password`, request)
751
- .pipe(catchError(error => this.handleAuthError(error)));
752
- }
753
-
754
- /**
755
- * Resetea la contraseña usando el código enviado por email.
756
- */
757
- resetPassword(request: ResetPasswordRequest): Observable<ResetPasswordResponse> {
758
- return this.http
759
- .post<ResetPasswordResponse>(`${this.baseUrl}/reset-password`, request)
760
- .pipe(catchError(error => this.handleAuthError(error)));
761
- }
762
-
763
- /**
764
- * Cambia la contraseña del usuario autenticado.
765
- * Requiere la contraseña actual para verificación.
766
- */
767
- changePassword(currentPassword: string, newPassword: string): Observable<ChangePasswordResponse> {
768
- const request: ChangePasswordRequest = { currentPassword, newPassword };
769
- return this.http
770
- .post<ChangePasswordResponse>(`${this.baseUrl}/change-password`, request)
771
- .pipe(catchError(error => this.handleAuthError(error)));
772
- }
773
-
774
- // =============================================
775
- // ELIMINACIÓN DE CUENTA
776
- // =============================================
777
-
778
- /**
779
- * Elimina la cuenta del usuario (soft delete).
780
- * Requiere confirmación de contraseña por seguridad.
781
- * Después de eliminar, cierra sesión automáticamente.
782
- *
783
- * @param password - Contraseña actual para confirmar
784
- * @returns Observable con resultado de la eliminación
785
- *
786
- * @example
787
- * ```typescript
788
- * async confirmDeleteAccount(password: string) {
789
- * try {
790
- * const result = await firstValueFrom(this.auth.deleteAccount(password));
791
- * console.log(result.message); // "Tu cuenta ha sido eliminada..."
792
- * // Usuario es redirigido automáticamente al login
793
- * } catch (error) {
794
- * // Manejar error (contraseña incorrecta, etc)
795
- * }
796
- * }
797
- * ```
798
- */
799
- deleteAccount(password: string): Observable<DeleteAccountResponse> {
800
- const request: DeleteAccountRequest = { password };
801
- return this.http
802
- .delete<DeleteAccountResponse>(`${this.baseUrl}/account`, { body: request })
803
- .pipe(
804
- tap(response => {
805
- if (response.deleted) {
806
- // Limpiar estado y cerrar sesión sin notificar al backend
807
- // (la sesión ya fue revocada por el backend)
808
- this.signOutFirebase();
809
- this.clearState();
810
- this.syncService.broadcast({ type: 'LOGOUT' });
811
- this.router.navigate([this.config.loginRoute]);
812
- }
813
- }),
814
- catchError(error => this.handleAuthError(error))
815
- );
816
- }
817
-
818
- // =============================================
819
- // PERMISOS
820
- // =============================================
821
-
822
- /**
823
- * Obtiene los permisos actualizados del backend.
824
- */
825
- fetchPermissions(): Observable<GetPermissionsResponse> {
826
- return this.http.get<GetPermissionsResponse>(`${this.baseUrl}/permissions`).pipe(
827
- tap(response => {
828
- this.stateService.updatePermissions(
829
- response.roles,
830
- response.permissions,
831
- response.isSuperAdmin
832
- );
833
- this.storageService.savePermissions(response);
834
- this.syncService.broadcast({ type: 'PERMISSIONS_UPDATE' });
835
- }),
836
- catchError(error => this.handleAuthError(error))
837
- );
838
- }
839
-
840
- /**
841
- * Verifica si el usuario tiene un permiso específico.
842
- * Formato: "resource:action" (ej: "templates:edit")
843
- */
844
- hasPermission(permission: string): boolean {
845
- if (this.isSuperAdmin()) return true;
846
-
847
- const [resource, action] = permission.split(':');
848
- return this.permissions().some(p => {
849
- const [pResource, pAction] = p.split(':');
850
- return (
851
- (pResource === '*' || pResource === resource) && (pAction === '*' || pAction === action)
852
- );
853
- });
854
- }
855
-
856
- /**
857
- * Verifica si el usuario tiene alguno de los permisos dados.
858
- */
859
- hasAnyPermission(permissions: string[]): boolean {
860
- return permissions.some(p => this.hasPermission(p));
861
- }
862
-
863
- /**
864
- * Verifica si el usuario tiene todos los permisos dados.
865
- */
866
- hasAllPermissions(permissions: string[]): boolean {
867
- return permissions.every(p => this.hasPermission(p));
868
- }
869
-
870
- /**
871
- * Verifica si el usuario tiene un rol específico.
872
- */
873
- hasRole(role: string): boolean {
874
- return this.roles().some(r => r.toLowerCase() === role.toLowerCase());
875
- }
876
-
877
- // =============================================
878
- // HANDLE (USERNAME)
879
- // =============================================
880
-
881
- /**
882
- * Actualiza el handle (@username) del usuario.
883
- * @param handle - Nuevo handle (sin @, ej: "victorv")
884
- */
885
- updateHandle(handle: string): Observable<UpdateHandleResponse> {
886
- return this.http.put<UpdateHandleResponse>(`${this.baseUrl}/profile/handle`, { handle }).pipe(
887
- tap(() => this.stateService.updateProfileFields({ handle })),
888
- catchError(error => this.handleAuthError(error))
889
- );
890
- }
891
-
892
- /**
893
- * Verifica si un handle está disponible.
894
- * @param handle - Handle a verificar (sin @)
895
- */
896
- checkHandleAvailability(handle: string): Observable<CheckHandleResponse> {
897
- // Server response: { operationId, user?, found }. found=true → handle taken.
898
- // Lib semantic: available = !found.
899
- return this.http
900
- .get<{
901
- operationId: string;
902
- found: boolean;
903
- }>(`${this.usersBaseUrl}/handle/${encodeURIComponent(handle)}`)
904
- .pipe(
905
- map(raw => ({
906
- operationId: raw.operationId,
907
- handle,
908
- available: !raw.found,
909
- })),
910
- catchError(error => this.handleAuthError(error))
911
- );
912
- }
913
-
914
- // =============================================
915
- // PRIVATE METHODS
916
- // =============================================
917
-
918
- private get baseUrl(): string {
919
- return `${this.config.apiUrl}${this.config.authPrefix}`;
920
- }
921
-
922
- /** Base for /v2/users endpoints (separate from /v2/auth). */
923
- private get usersBaseUrl(): string {
924
- return `${this.config.apiUrl}/v2/users`;
925
- }
926
-
927
- private handleSuccessfulAuth(response: SigninResponse | MFAVerifyResponse): void {
928
- const expiresAt = Date.now() + response.expiresIn! * 1000;
929
- const tokenData = this.tokenService.parseToken(response.accessToken!);
930
- const isPremium = tokenData?.premium === true;
931
-
932
- this.stateService.setAuthenticated({
933
- accessToken: response.accessToken!,
934
- refreshToken: response.refreshToken!,
935
- userId: tokenData?.uid,
936
- email: tokenData?.email,
937
- roles: response.roles || [],
938
- permissions: response.permissions || [],
939
- isSuperAdmin: response.permissions?.includes('*:*') || false,
940
- isPremium,
941
- expiresAt,
942
- });
943
-
944
- this.storageService.saveState({
945
- accessToken: response.accessToken!,
946
- refreshToken: response.refreshToken!,
947
- roles: response.roles || [],
948
- permissions: response.permissions || [],
949
- isSuperAdmin: response.permissions?.includes('*:*') || false,
950
- isPremium,
951
- expiresAt,
952
- });
953
-
954
- this.startRefreshTimer();
955
- this.syncService.broadcast({ type: 'LOGIN' });
956
-
957
- // Integración con Firebase
958
- console.log('[ValtechAuth] handleSuccessfulAuth - Firebase check:', {
959
- enableFirebaseIntegration: this.config.enableFirebaseIntegration,
960
- hasFirebaseTokenKey: 'firebaseToken' in response,
961
- firebaseTokenValue: !!(response as any).firebaseToken,
962
- firebaseTokenLength: (response as any).firebaseToken?.length || 0,
963
- });
964
-
965
- if (
966
- this.config.enableFirebaseIntegration &&
967
- 'firebaseToken' in response &&
968
- response.firebaseToken
969
- ) {
970
- console.log(
971
- '[ValtechAuth] Calling signInWithFirebase with token length:',
972
- response.firebaseToken.length
973
- );
974
- this.signInWithFirebase(response.firebaseToken);
975
- } else {
976
- console.log('[ValtechAuth] Firebase signin skipped - conditions not met');
977
- }
978
-
979
- // Registro automático de dispositivo para push notifications
980
- if (this.config.enableDeviceRegistration) {
981
- this.registerDeviceIfNeeded(); // fire-and-forget
982
- }
983
-
984
- // Sincronizar idioma del usuario con i18n
985
- if (this.i18nService && 'language' in response && response.language) {
986
- const userLang = response.language as I18nLang;
987
- const currentLang = this.i18nService.lang();
988
- if (userLang !== currentLang) {
989
- this.i18nService.setLanguage(userLang);
990
- console.log(`[ValtechAuth] Language synced to: ${userLang}`);
991
- }
992
- }
993
- }
994
-
995
- private clearState(): void {
996
- this.stopRefreshTimer();
997
- this.stateService.reset();
998
- this.storageService.clear();
999
- }
1000
-
1001
- private startRefreshTimer(): void {
1002
- this.stopRefreshTimer();
1003
-
1004
- const state = this.stateService.state();
1005
- if (!state.expiresAt) return;
1006
-
1007
- const refreshBeforeMs = (this.config.refreshBeforeExpiry || 60) * 1000;
1008
- const refreshAt = state.expiresAt - refreshBeforeMs;
1009
- const delay = refreshAt - Date.now();
1010
-
1011
- if (delay > 0) {
1012
- this.refreshTimerId = setTimeout(() => {
1013
- this.refreshAccessToken().subscribe({
1014
- error: () => this.logout(),
1015
- });
1016
- }, delay);
1017
- } else if (state.refreshToken) {
1018
- // Token ya debería refrescarse, intentar ahora
1019
- this.refreshAccessToken().subscribe({
1020
- error: () => this.logout(),
1021
- });
1022
- }
1023
- }
1024
-
1025
- private stopRefreshTimer(): void {
1026
- if (this.refreshTimerId) {
1027
- clearTimeout(this.refreshTimerId);
1028
- this.refreshTimerId = null;
1029
- }
1030
- }
1031
-
1032
- private handleSyncEvent(event: AuthSyncEvent): void {
1033
- switch (event.type) {
1034
- case 'LOGIN':
1035
- case 'TOKEN_REFRESH': {
1036
- // Recargar estado desde storage
1037
- const state = this.storageService.loadState();
1038
- if (state.accessToken) {
1039
- this.stateService.restoreFromStorage(state);
1040
- const claims = this.tokenService.parseToken(state.accessToken);
1041
- if (claims) {
1042
- this.stateService.updateUserInfo(claims.uid, claims.email);
1043
- }
1044
- this.startRefreshTimer();
1045
- }
1046
- break;
1047
- }
1048
- case 'LOGOUT':
1049
- this.stateService.reset();
1050
- this.stopRefreshTimer();
1051
- this.router.navigate([this.config.loginRoute]);
1052
- break;
1053
- case 'PERMISSIONS_UPDATE': {
1054
- const perms = this.storageService.loadPermissions();
1055
- this.stateService.updatePermissions(perms.roles, perms.permissions, perms.isSuperAdmin);
1056
- break;
1057
- }
1058
- case 'ORG_SWITCH':
1059
- // Otra pestaña cambió de organización - recargar página para obtener nuevo estado
1060
- window.location.reload();
1061
- break;
1062
- }
1063
- }
1064
-
1065
- private handleAuthError(error: HttpErrorResponse): Observable<never> {
1066
- const authError: AuthError = {
1067
- code: error.error?.code || 'UNKNOWN_ERROR',
1068
- message: error.error?.message || 'Error de autenticación desconocido',
1069
- };
1070
- this.stateService.setError(authError);
1071
- return throwError(() => authError);
1072
- }
1073
-
1074
- // =============================================
1075
- // FIREBASE INTEGRATION
1076
- // =============================================
1077
-
1078
- private async signInWithFirebase(firebaseToken: string): Promise<void> {
1079
- try {
1080
- if (this.firebaseService) {
1081
- await this.firebaseService.signInWithCustomToken(firebaseToken);
1082
- console.log('[ValtechAuth] Firebase signin successful');
1083
- } else {
1084
- console.warn(
1085
- '[ValtechAuth] FirebaseService not provided. Add provideValtechFirebase() to your providers.'
1086
- );
1087
- }
1088
- } catch (error) {
1089
- // No bloquear el login principal si Firebase falla
1090
- console.error('[ValtechAuth] Firebase signin failed:', error);
1091
- }
1092
- }
1093
-
1094
- private async signOutFirebase(): Promise<void> {
1095
- if (!this.config.enableFirebaseIntegration) return;
1096
-
1097
- try {
1098
- if (this.firebaseService) {
1099
- await this.firebaseService.signOut();
1100
- console.log('[ValtechAuth] Firebase signout successful');
1101
- }
1102
- } catch (error) {
1103
- // Ignorar errores de Firebase signout
1104
- console.warn('[ValtechAuth] Firebase signout failed:', error);
1105
- }
1106
- }
1107
-
1108
- // =============================================
1109
- // DEVICE REGISTRATION (Push Notifications)
1110
- // =============================================
1111
-
1112
- /**
1113
- * Solicita permisos de notificación y registra el dispositivo.
1114
- * Usar cuando el usuario acepta recibir notificaciones.
1115
- *
1116
- * @example
1117
- * ```typescript
1118
- * async onEnableNotifications() {
1119
- * const result = await this.auth.enableNotifications();
1120
- * if (result.granted) {
1121
- * console.log('Notificaciones habilitadas');
1122
- * }
1123
- * }
1124
- * ```
1125
- */
1126
- async enableNotifications(): Promise<EnableNotificationsResult> {
1127
- if (!this.messagingService) {
1128
- console.warn('[ValtechAuth] MessagingService not available');
1129
- return { granted: false };
1130
- }
1131
-
1132
- if (!(await this.messagingService.isSupported())) {
1133
- console.warn('[ValtechAuth] Push notifications not supported');
1134
- return { granted: false };
1135
- }
1136
-
1137
- const token = await this.messagingService.requestPermission();
1138
- if (!token) {
1139
- return { granted: false };
1140
- }
1141
-
1142
- // Registrar dispositivo en backend
1143
- const registered = await this.registerDeviceIfNeeded();
1144
-
1145
- return { granted: true, token, registered };
1146
- }
1147
-
1148
- /**
1149
- * Desactiva las notificaciones para este dispositivo.
1150
- * Elimina el token del backend y de FCM.
1151
- * Usar desde un toggle de preferencias cuando el usuario desactiva notificaciones.
1152
- *
1153
- * NOTA: Esto NO revoca el permiso del navegador (el usuario debe hacerlo manualmente
1154
- * desde la configuración del navegador). Solo elimina el registro del dispositivo.
1155
- *
1156
- * @example
1157
- * ```typescript
1158
- * async onToggleNotifications(enabled: boolean) {
1159
- * if (enabled) {
1160
- * await this.auth.enableNotifications();
1161
- * } else {
1162
- * await this.auth.disableNotifications();
1163
- * }
1164
- * }
1165
- * ```
1166
- */
1167
- async disableNotifications(): Promise<{ disabled: boolean }> {
1168
- if (!this.messagingService) {
1169
- return { disabled: false };
1170
- }
1171
-
1172
- try {
1173
- const token = this.messagingService.currentToken;
1174
- if (token) {
1175
- // Eliminar del backend
1176
- await firstValueFrom(
1177
- this.http
1178
- .request('DELETE', `${this.config.apiUrl}/v2/users/me/devices/by-token`, {
1179
- body: { token },
1180
- })
1181
- .pipe(catchError(() => of(null)))
1182
- );
1183
-
1184
- // Eliminar token de FCM
1185
- await this.messagingService.deleteToken();
1186
- console.log('[ValtechAuth] Notifications disabled');
1187
- return { disabled: true };
1188
- }
1189
-
1190
- return { disabled: false };
1191
- } catch (error) {
1192
- console.warn('[ValtechAuth] Failed to disable notifications:', error);
1193
- return { disabled: false };
1194
- }
1195
- }
1196
-
1197
- /**
1198
- * Retorna el estado actual de permisos de notificación.
1199
- *
1200
- * @returns 'granted' | 'denied' | 'default' | 'unsupported'
1201
- */
1202
- getNotificationPermissionState(): NotificationPermissionState {
1203
- if (!this.messagingService) {
1204
- return 'unsupported';
1205
- }
1206
- return this.messagingService.getPermissionState() as NotificationPermissionState;
1207
- }
1208
-
1209
- /**
1210
- * Registra manualmente el dispositivo en el backend.
1211
- * Útil para sincronizar dispositivos que tienen token FCM pero no están registrados.
1212
- *
1213
- * @param providedToken Token FCM opcional. Si se proporciona, se usa directamente
1214
- * sin depender del MessagingService (evita timing issues).
1215
- * @returns Resultado del registro con deviceId si fue exitoso
1216
- *
1217
- * @example
1218
- * ```typescript
1219
- * // Sincronizar con token existente (recomendado)
1220
- * const result = await this.auth.registerDevice(myToken);
1221
- *
1222
- * // Sin token, intentará obtenerlo del MessagingService
1223
- * const result = await this.auth.registerDevice();
1224
- * ```
1225
- */
1226
- async registerDevice(providedToken?: string): Promise<RegisterDeviceResult> {
1227
- if (!this.isAuthenticated()) {
1228
- return { registered: false, error: 'Usuario no autenticado' };
1229
- }
1230
-
1231
- try {
1232
- // Verificar permisos si tenemos MessagingService
1233
- if (this.messagingService) {
1234
- const permission = this.messagingService.getPermissionState();
1235
- if (permission !== 'granted') {
1236
- return { registered: false, error: 'Permiso de notificaciones no otorgado' };
1237
- }
1238
- }
1239
-
1240
- // Usar token proporcionado primero (evita timing issues con Injector)
1241
- let token = providedToken || this.messagingService?.currentToken;
1242
-
1243
- // Si no hay token, intentar obtenerlo del MessagingService
1244
- if (!token && this.messagingService) {
1245
- if (!(await this.messagingService.isSupported())) {
1246
- return { registered: false, error: 'FCM no soportado en este navegador' };
1247
- }
1248
- token = await this.messagingService.getToken();
1249
- }
1250
-
1251
- if (!token) {
1252
- return { registered: false, error: 'No se pudo obtener token FCM' };
1253
- }
1254
-
1255
- // Registrar en backend
1256
- const { platform, browser, os } = this.detectPlatformInfo();
1257
- const response = await firstValueFrom(
1258
- this.http.post<RegisterDeviceResponse>(`${this.config.apiUrl}/v2/users/me/devices`, {
1259
- token,
1260
- platform,
1261
- browser,
1262
- os,
1263
- })
1264
- );
1265
-
1266
- console.log('[ValtechAuth] Device registered manually:', response.device.deviceId);
1267
- return { registered: true, deviceId: response.device.deviceId, token };
1268
- } catch (error: any) {
1269
- console.warn('[ValtechAuth] Manual device registration failed:', error);
1270
- return {
1271
- registered: false,
1272
- error: error?.error?.message || error?.message || 'Error al registrar dispositivo',
1273
- };
1274
- }
1275
- }
1276
-
1277
- /**
1278
- * Registra el dispositivo en el backend si tiene permisos de notificación.
1279
- * Se llama automáticamente después de un login exitoso si enableDeviceRegistration=true.
1280
- */
1281
- private async registerDeviceIfNeeded(): Promise<boolean> {
1282
- // Solo si está habilitado y messaging está disponible
1283
- if (!this.config.enableDeviceRegistration || !this.messagingService) {
1284
- return false;
1285
- }
1286
-
1287
- try {
1288
- // Verificar si FCM está soportado
1289
- if (!(await this.messagingService.isSupported())) {
1290
- return false;
1291
- }
1292
-
1293
- // Verificar si ya tiene permisos
1294
- const permission = this.messagingService.getPermissionState();
1295
- if (permission !== 'granted') {
1296
- return false; // No solicitar automáticamente, solo registrar si ya tiene permiso
1297
- }
1298
-
1299
- // Obtener token existente (no solicitar nuevo)
1300
- const token = await this.messagingService.getToken();
1301
- if (!token) {
1302
- return false;
1303
- }
1304
-
1305
- // Registrar en backend
1306
- const { platform, browser, os } = this.detectPlatformInfo();
1307
- await firstValueFrom(
1308
- this.http.post<RegisterDeviceResponse>(`${this.config.apiUrl}/v2/users/me/devices`, {
1309
- token,
1310
- platform,
1311
- browser,
1312
- os,
1313
- })
1314
- );
1315
-
1316
- console.log('[ValtechAuth] Device registered successfully');
1317
- return true;
1318
- } catch (error) {
1319
- // No bloquear auth si falla device registration
1320
- console.warn('[ValtechAuth] Device registration failed:', error);
1321
- return false;
1322
- }
1323
- }
1324
-
1325
- /**
1326
- * Elimina el dispositivo del backend y borra el token FCM.
1327
- */
1328
- private async unregisterDevice(): Promise<void> {
1329
- if (!this.config.enableDeviceRegistration || !this.messagingService) {
1330
- return;
1331
- }
1332
-
1333
- try {
1334
- const token = this.messagingService.currentToken;
1335
- if (token) {
1336
- // Delete from backend (fire and forget)
1337
- this.http
1338
- .request('DELETE', `${this.config.apiUrl}/v2/users/me/devices/by-token`, {
1339
- body: { token },
1340
- })
1341
- .pipe(catchError(() => of(null)))
1342
- .subscribe();
1343
-
1344
- // Delete from FCM
1345
- await this.messagingService.deleteToken();
1346
- console.log('[ValtechAuth] Device unregistered');
1347
- }
1348
- } catch {
1349
- // Ignorar errores en cleanup
1350
- }
1351
- }
1352
-
1353
- /**
1354
- * Detecta información de la plataforma del dispositivo.
1355
- */
1356
- private detectPlatformInfo(): { platform: 'web'; browser: string; os: string } {
1357
- const ua = navigator.userAgent;
1358
-
1359
- // Detectar navegador
1360
- let browser = 'Unknown';
1361
- if (ua.includes('Firefox')) {
1362
- browser = 'Firefox';
1363
- } else if (ua.includes('Edg')) {
1364
- browser = 'Edge';
1365
- } else if (ua.includes('Chrome')) {
1366
- browser = 'Chrome';
1367
- } else if (ua.includes('Safari')) {
1368
- browser = 'Safari';
1369
- }
1370
-
1371
- // Detectar OS
1372
- let os = 'Unknown';
1373
- if (ua.includes('Windows')) {
1374
- os = 'Windows';
1375
- } else if (ua.includes('Mac OS')) {
1376
- os = 'macOS';
1377
- } else if (ua.includes('Linux')) {
1378
- os = 'Linux';
1379
- } else if (ua.includes('Android')) {
1380
- os = 'Android';
1381
- } else if (ua.includes('iOS') || ua.includes('iPhone') || ua.includes('iPad')) {
1382
- os = 'iOS';
1383
- }
1384
-
1385
- return { platform: 'web', browser, os };
1386
- }
1387
- }