@lenne.tech/ng-base 18.1.3 → 22.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/CLAUDE.md +55 -0
  2. package/LICENSE +2 -2
  3. package/README.md +237 -44
  4. package/fesm2022/lenne.tech-ng-base-ai.mjs +767 -0
  5. package/fesm2022/lenne.tech-ng-base-ai.mjs.map +1 -0
  6. package/fesm2022/lenne.tech-ng-base-auth-provide.mjs +939 -0
  7. package/fesm2022/lenne.tech-ng-base-auth-provide.mjs.map +1 -0
  8. package/fesm2022/lenne.tech-ng-base-auth.mjs +454 -0
  9. package/fesm2022/lenne.tech-ng-base-auth.mjs.map +1 -0
  10. package/fesm2022/lenne.tech-ng-base-bug-bug-report-dialog-BRzVmKJr.mjs +825 -0
  11. package/fesm2022/lenne.tech-ng-base-bug-bug-report-dialog-BRzVmKJr.mjs.map +1 -0
  12. package/fesm2022/lenne.tech-ng-base-bug-bug-report-service-DWoTb_iw.mjs +351 -0
  13. package/fesm2022/lenne.tech-ng-base-bug-bug-report-service-DWoTb_iw.mjs.map +1 -0
  14. package/fesm2022/lenne.tech-ng-base-bug-capture-engine-TkjMDdqj.mjs +1046 -0
  15. package/fesm2022/lenne.tech-ng-base-bug-capture-engine-TkjMDdqj.mjs.map +1 -0
  16. package/fesm2022/lenne.tech-ng-base-bug-constants-Brm2KGHi.mjs +4 -0
  17. package/fesm2022/lenne.tech-ng-base-bug-constants-Brm2KGHi.mjs.map +1 -0
  18. package/fesm2022/lenne.tech-ng-base-bug-messages-BsP4fRQU.mjs +179 -0
  19. package/fesm2022/lenne.tech-ng-base-bug-messages-BsP4fRQU.mjs.map +1 -0
  20. package/fesm2022/lenne.tech-ng-base-bug-provide.mjs +26 -0
  21. package/fesm2022/lenne.tech-ng-base-bug-provide.mjs.map +1 -0
  22. package/fesm2022/lenne.tech-ng-base-bug-report-Tzlhe1Cm.mjs +62 -0
  23. package/fesm2022/lenne.tech-ng-base-bug-report-Tzlhe1Cm.mjs.map +1 -0
  24. package/fesm2022/lenne.tech-ng-base-bug-server.mjs +818 -0
  25. package/fesm2022/lenne.tech-ng-base-bug-server.mjs.map +1 -0
  26. package/fesm2022/lenne.tech-ng-base-bug.mjs +196 -0
  27. package/fesm2022/lenne.tech-ng-base-bug.mjs.map +1 -0
  28. package/fesm2022/lenne.tech-ng-base-files-ui.mjs +445 -0
  29. package/fesm2022/lenne.tech-ng-base-files-ui.mjs.map +1 -0
  30. package/fesm2022/lenne.tech-ng-base-files.mjs +474 -0
  31. package/fesm2022/lenne.tech-ng-base-files.mjs.map +1 -0
  32. package/fesm2022/lenne.tech-ng-base-server.mjs +408 -0
  33. package/fesm2022/lenne.tech-ng-base-server.mjs.map +1 -0
  34. package/fesm2022/lenne.tech-ng-base-share.mjs +76 -0
  35. package/fesm2022/lenne.tech-ng-base-share.mjs.map +1 -0
  36. package/fesm2022/lenne.tech-ng-base-sync.mjs +1096 -0
  37. package/fesm2022/lenne.tech-ng-base-sync.mjs.map +1 -0
  38. package/fesm2022/lenne.tech-ng-base-testing.mjs +171 -0
  39. package/fesm2022/lenne.tech-ng-base-testing.mjs.map +1 -0
  40. package/fesm2022/lenne.tech-ng-base-ui-provide.mjs +124 -0
  41. package/fesm2022/lenne.tech-ng-base-ui-provide.mjs.map +1 -0
  42. package/fesm2022/lenne.tech-ng-base-ui.mjs +34611 -0
  43. package/fesm2022/lenne.tech-ng-base-ui.mjs.map +1 -0
  44. package/fesm2022/lenne.tech-ng-base-utils.mjs +287 -0
  45. package/fesm2022/lenne.tech-ng-base-utils.mjs.map +1 -0
  46. package/fesm2022/lenne.tech-ng-base.mjs +615 -910
  47. package/fesm2022/lenne.tech-ng-base.mjs.map +1 -1
  48. package/i18n/auth/de.json +17 -0
  49. package/i18n/auth/en.json +17 -0
  50. package/i18n/bug/de.json +85 -0
  51. package/i18n/bug/en.json +85 -0
  52. package/i18n/de.json +8 -0
  53. package/i18n/en.json +8 -0
  54. package/i18n/files/de.json +27 -0
  55. package/i18n/files/en.json +27 -0
  56. package/i18n/share/de.json +8 -0
  57. package/i18n/share/en.json +8 -0
  58. package/i18n/ui/de.json +38 -0
  59. package/i18n/ui/en.json +38 -0
  60. package/package.json +127 -58
  61. package/types/lenne.tech-ng-base-ai.d.ts +830 -0
  62. package/types/lenne.tech-ng-base-auth-provide.d.ts +603 -0
  63. package/types/lenne.tech-ng-base-auth.d.ts +320 -0
  64. package/types/lenne.tech-ng-base-bug-provide.d.ts +272 -0
  65. package/types/lenne.tech-ng-base-bug-rolldown-runtime-C25Le4-w.d.ts +1 -0
  66. package/types/lenne.tech-ng-base-bug-server.d.ts +316 -0
  67. package/types/lenne.tech-ng-base-bug.d.ts +202 -0
  68. package/types/lenne.tech-ng-base-files-ui.d.ts +116 -0
  69. package/types/lenne.tech-ng-base-files.d.ts +288 -0
  70. package/types/lenne.tech-ng-base-server.d.ts +262 -0
  71. package/types/lenne.tech-ng-base-share.d.ts +21 -0
  72. package/types/lenne.tech-ng-base-sync.d.ts +380 -0
  73. package/types/lenne.tech-ng-base-testing.d.ts +327 -0
  74. package/types/lenne.tech-ng-base-ui-provide.d.ts +65 -0
  75. package/types/lenne.tech-ng-base-ui.d.ts +7732 -0
  76. package/types/lenne.tech-ng-base-utils.d.ts +150 -0
  77. package/types/lenne.tech-ng-base.d.ts +503 -0
  78. package/ui/styles/components/accordion.css +3 -0
  79. package/ui/styles/components/alert-dialog.css +4 -0
  80. package/ui/styles/components/alert.css +3 -0
  81. package/ui/styles/components/aspect-ratio.css +3 -0
  82. package/ui/styles/components/attachment.css +4 -0
  83. package/ui/styles/components/autocomplete.css +4 -0
  84. package/ui/styles/components/avatar.css +3 -0
  85. package/ui/styles/components/badge.css +3 -0
  86. package/ui/styles/components/breadcrumb.css +3 -0
  87. package/ui/styles/components/bubble.css +3 -0
  88. package/ui/styles/components/button-group.css +3 -0
  89. package/ui/styles/components/button.css +3 -0
  90. package/ui/styles/components/calendar.css +5 -0
  91. package/ui/styles/components/card.css +3 -0
  92. package/ui/styles/components/checkbox.css +3 -0
  93. package/ui/styles/components/code-block.css +4 -0
  94. package/ui/styles/components/collapsible.css +3 -0
  95. package/ui/styles/components/combobox.css +5 -0
  96. package/ui/styles/components/command.css +5 -0
  97. package/ui/styles/components/context-menu.css +3 -0
  98. package/ui/styles/components/date-picker.css +7 -0
  99. package/ui/styles/components/dialog.css +4 -0
  100. package/ui/styles/components/drawer.css +3 -0
  101. package/ui/styles/components/dropdown-menu.css +3 -0
  102. package/ui/styles/components/empty.css +3 -0
  103. package/ui/styles/components/field.css +5 -0
  104. package/ui/styles/components/hover-card.css +3 -0
  105. package/ui/styles/components/index.css +91 -0
  106. package/ui/styles/components/input-group.css +6 -0
  107. package/ui/styles/components/input-otp.css +3 -0
  108. package/ui/styles/components/input.css +3 -0
  109. package/ui/styles/components/item.css +4 -0
  110. package/ui/styles/components/kbd.css +3 -0
  111. package/ui/styles/components/label.css +3 -0
  112. package/ui/styles/components/lt-breadcrumb.css +3 -0
  113. package/ui/styles/components/lt-bug-attachments.css +5 -0
  114. package/ui/styles/components/lt-bug-journey-timeline.css +5 -0
  115. package/ui/styles/components/lt-bug-report-dialog.css +15 -0
  116. package/ui/styles/components/lt-bug-report.css +4 -0
  117. package/ui/styles/components/lt-color-mode-button.css +3 -0
  118. package/ui/styles/components/lt-confirm-dialog.css +4 -0
  119. package/ui/styles/components/lt-data-view.css +5 -0
  120. package/ui/styles/components/lt-date-picker.css +3 -0
  121. package/ui/styles/components/lt-date-time-picker.css +5 -0
  122. package/ui/styles/components/lt-enter-action.css +2 -0
  123. package/ui/styles/components/lt-footer.css +3 -0
  124. package/ui/styles/components/lt-form-field.css +4 -0
  125. package/ui/styles/components/lt-header.css +5 -0
  126. package/ui/styles/components/lt-imports.css +21 -0
  127. package/ui/styles/components/lt-navigation-menu.css +3 -0
  128. package/ui/styles/components/lt-notice.css +3 -0
  129. package/ui/styles/components/lt-overlay-defaults.css +3 -0
  130. package/ui/styles/components/lt-page-card.css +3 -0
  131. package/ui/styles/components/lt-page-title.css +2 -0
  132. package/ui/styles/components/lt-password-input.css +4 -0
  133. package/ui/styles/components/lt-readonly-field.css +2 -0
  134. package/ui/styles/components/lt-select.css +4 -0
  135. package/ui/styles/components/lt-text-field.css +5 -0
  136. package/ui/styles/components/lt-toolbar-item.css +2 -0
  137. package/ui/styles/components/lt-toolbar.css +3 -0
  138. package/ui/styles/components/lt-tus-upload-component.css +5 -0
  139. package/ui/styles/components/marker.css +3 -0
  140. package/ui/styles/components/menubar.css +3 -0
  141. package/ui/styles/components/message-scroller.css +4 -0
  142. package/ui/styles/components/message.css +3 -0
  143. package/ui/styles/components/native-select.css +3 -0
  144. package/ui/styles/components/navigation-menu.css +3 -0
  145. package/ui/styles/components/pagination.css +4 -0
  146. package/ui/styles/components/popover.css +3 -0
  147. package/ui/styles/components/progress.css +3 -0
  148. package/ui/styles/components/questionnaire.css +4 -0
  149. package/ui/styles/components/radio-group.css +3 -0
  150. package/ui/styles/components/resizable.css +3 -0
  151. package/ui/styles/components/select.css +3 -0
  152. package/ui/styles/components/separator.css +3 -0
  153. package/ui/styles/components/sheet.css +4 -0
  154. package/ui/styles/components/sidebar.css +9 -0
  155. package/ui/styles/components/skeleton.css +3 -0
  156. package/ui/styles/components/slider.css +3 -0
  157. package/ui/styles/components/sonner.css +4 -0
  158. package/ui/styles/components/spinner.css +3 -0
  159. package/ui/styles/components/switch.css +3 -0
  160. package/ui/styles/components/table.css +3 -0
  161. package/ui/styles/components/tabs.css +4 -0
  162. package/ui/styles/components/textarea.css +3 -0
  163. package/ui/styles/components/toggle-group.css +4 -0
  164. package/ui/styles/components/toggle.css +3 -0
  165. package/ui/styles/components/tooltip.css +3 -0
  166. package/ui/styles/components/trace.css +3 -0
  167. package/ui/styles/components/typography.css +3 -0
  168. package/ui/styles/components/utils.css +2 -0
  169. package/ui/styles/core.css +137 -0
  170. package/ui/styles/palette.css +94 -0
  171. package/ui/styles/theme.css +14 -0
  172. package/ui/styles/transitions.css +131 -0
  173. package/base-cms/index.d.ts +0 -5
  174. package/base-cms/interfaces/base-cms-module-config.interface.d.ts +0 -16
  175. package/base-cms/pages/base-cms/base-cms.component.d.ts +0 -92
  176. package/base-cms/public-api.d.ts +0 -5
  177. package/base-components/components/breadcrumb/breadcrumb.component.d.ts +0 -10
  178. package/base-components/components/change-password/change-password.component.d.ts +0 -24
  179. package/base-components/components/checkbox/checkbox.component.d.ts +0 -12
  180. package/base-components/components/delete-account/delete-account.component.d.ts +0 -15
  181. package/base-components/components/fab-button/fab-button.component.d.ts +0 -16
  182. package/base-components/components/input/input.component.d.ts +0 -27
  183. package/base-components/components/loading-bar/loading-bar.component.d.ts +0 -17
  184. package/base-components/components/model-form/model-form-base.component.d.ts +0 -64
  185. package/base-components/components/model-form/model-form.component.d.ts +0 -139
  186. package/base-components/components/model-form-sub/model-form-sub.component.d.ts +0 -56
  187. package/base-components/components/model-table/model-table.component.d.ts +0 -115
  188. package/base-components/components/refence-input/refence-input.component.d.ts +0 -84
  189. package/base-components/components/select/select.component.d.ts +0 -25
  190. package/base-components/components/skeleton-loader/skeleton-loader.component.d.ts +0 -10
  191. package/base-components/components/tags/tags.component.d.ts +0 -60
  192. package/base-components/components/textarea/textarea.component.d.ts +0 -21
  193. package/base-components/components/toast/toast.component.d.ts +0 -19
  194. package/base-components/components/upload-image/upload-image.component.d.ts +0 -111
  195. package/base-components/directives/back-button.directive.d.ts +0 -9
  196. package/base-components/directives/context-menu.directive.d.ts +0 -22
  197. package/base-components/directives/sort.directive.d.ts +0 -15
  198. package/base-components/directives/stop-propagation.directive.d.ts +0 -10
  199. package/base-components/index.d.ts +0 -5
  200. package/base-components/pipes/ellipses.pipe.d.ts +0 -10
  201. package/base-components/public-api.d.ts +0 -26
  202. package/base-prototype/index.d.ts +0 -5
  203. package/base-prototype/pages/email-verification/email-verification.component.d.ts +0 -18
  204. package/base-prototype/pages/forgot-password/forgot-password.component.d.ts +0 -26
  205. package/base-prototype/pages/login/login.component.d.ts +0 -33
  206. package/base-prototype/pages/profile/profile.component.d.ts +0 -24
  207. package/base-prototype/pages/register/register.component.d.ts +0 -31
  208. package/base-prototype/pages/set-password/set-password.component.d.ts +0 -29
  209. package/base-prototype/public-api.d.ts +0 -9
  210. package/esm2022/base-cms/interfaces/base-cms-module-config.interface.mjs +0 -3
  211. package/esm2022/base-cms/lenne.tech-ng-base-base-cms.mjs +0 -5
  212. package/esm2022/base-cms/pages/base-cms/base-cms.component.mjs +0 -238
  213. package/esm2022/base-cms/public-api.mjs +0 -8
  214. package/esm2022/base-components/components/breadcrumb/breadcrumb.component.mjs +0 -23
  215. package/esm2022/base-components/components/change-password/change-password.component.mjs +0 -97
  216. package/esm2022/base-components/components/checkbox/checkbox.component.mjs +0 -38
  217. package/esm2022/base-components/components/delete-account/delete-account.component.mjs +0 -59
  218. package/esm2022/base-components/components/fab-button/fab-button.component.mjs +0 -24
  219. package/esm2022/base-components/components/input/input.component.mjs +0 -75
  220. package/esm2022/base-components/components/loading-bar/loading-bar.component.mjs +0 -37
  221. package/esm2022/base-components/components/model-form/model-form-base.component.mjs +0 -145
  222. package/esm2022/base-components/components/model-form/model-form.component.mjs +0 -591
  223. package/esm2022/base-components/components/model-form-sub/model-form-sub.component.mjs +0 -117
  224. package/esm2022/base-components/components/model-table/model-table.component.mjs +0 -478
  225. package/esm2022/base-components/components/refence-input/refence-input.component.mjs +0 -278
  226. package/esm2022/base-components/components/select/select.component.mjs +0 -62
  227. package/esm2022/base-components/components/skeleton-loader/skeleton-loader.component.mjs +0 -33
  228. package/esm2022/base-components/components/tags/tags.component.mjs +0 -227
  229. package/esm2022/base-components/components/textarea/textarea.component.mjs +0 -79
  230. package/esm2022/base-components/components/toast/toast.component.mjs +0 -69
  231. package/esm2022/base-components/components/upload-image/upload-image.component.mjs +0 -346
  232. package/esm2022/base-components/directives/back-button.directive.mjs +0 -25
  233. package/esm2022/base-components/directives/context-menu.directive.mjs +0 -112
  234. package/esm2022/base-components/directives/sort.directive.mjs +0 -61
  235. package/esm2022/base-components/directives/stop-propagation.directive.mjs +0 -24
  236. package/esm2022/base-components/lenne.tech-ng-base-base-components.mjs +0 -5
  237. package/esm2022/base-components/pipes/ellipses.pipe.mjs +0 -23
  238. package/esm2022/base-components/public-api.mjs +0 -30
  239. package/esm2022/base-prototype/lenne.tech-ng-base-base-prototype.mjs +0 -5
  240. package/esm2022/base-prototype/pages/email-verification/email-verification.component.mjs +0 -60
  241. package/esm2022/base-prototype/pages/forgot-password/forgot-password.component.mjs +0 -78
  242. package/esm2022/base-prototype/pages/login/login.component.mjs +0 -114
  243. package/esm2022/base-prototype/pages/profile/profile.component.mjs +0 -87
  244. package/esm2022/base-prototype/pages/register/register.component.mjs +0 -100
  245. package/esm2022/base-prototype/pages/set-password/set-password.component.mjs +0 -91
  246. package/esm2022/base-prototype/public-api.mjs +0 -11
  247. package/esm2022/lenne.tech-ng-base.mjs +0 -5
  248. package/esm2022/public-api.mjs +0 -25
  249. package/esm2022/shared/classes/auth.class.mjs +0 -14
  250. package/esm2022/shared/classes/basic-user.class.mjs +0 -49
  251. package/esm2022/shared/classes/graphql-enum.class.mjs +0 -10
  252. package/esm2022/shared/classes/graphql-meta.class.mjs +0 -345
  253. package/esm2022/shared/classes/graphql-type.class.mjs +0 -14
  254. package/esm2022/shared/classes/helper.class.mjs +0 -307
  255. package/esm2022/shared/classes/sort.class.mjs +0 -38
  256. package/esm2022/shared/classes/standard.class.mjs +0 -40
  257. package/esm2022/shared/decorators/debounce.decorator.mjs +0 -12
  258. package/esm2022/shared/enums/comparison-operator.enum.mjs +0 -16
  259. package/esm2022/shared/enums/graphql-request-type.enum.mjs +0 -10
  260. package/esm2022/shared/enums/logical-operator.enum.mjs +0 -10
  261. package/esm2022/shared/enums/skeleton-type.enum.mjs +0 -7
  262. package/esm2022/shared/enums/sort-order.enum.mjs +0 -6
  263. package/esm2022/shared/enums/toast-type.enum.mjs +0 -8
  264. package/esm2022/shared/functions/ws-client.function.mjs +0 -39
  265. package/esm2022/shared/interfaces/base-module-config.interface.mjs +0 -3
  266. package/esm2022/shared/interfaces/breadcrumb.interface.mjs +0 -2
  267. package/esm2022/shared/interfaces/can-component-deactivate.interface.mjs +0 -2
  268. package/esm2022/shared/interfaces/cms-enum-values.interface.mjs +0 -2
  269. package/esm2022/shared/interfaces/cms-field-config.interface.mjs +0 -2
  270. package/esm2022/shared/interfaces/cms-model-config.interface.mjs +0 -2
  271. package/esm2022/shared/interfaces/cms-table-field.interface.mjs +0 -2
  272. package/esm2022/shared/interfaces/combined-filter-input.interface.mjs +0 -2
  273. package/esm2022/shared/interfaces/compress-options.interface.mjs +0 -2
  274. package/esm2022/shared/interfaces/cropping-options.interface.mjs +0 -2
  275. package/esm2022/shared/interfaces/field-object.interface.mjs +0 -2
  276. package/esm2022/shared/interfaces/field.interface.mjs +0 -2
  277. package/esm2022/shared/interfaces/filter-input.interface.mjs +0 -2
  278. package/esm2022/shared/interfaces/find-args.interface.mjs +0 -2
  279. package/esm2022/shared/interfaces/graphql-crud-type.interface.mjs +0 -2
  280. package/esm2022/shared/interfaces/graphql-fields-object.interface.mjs +0 -2
  281. package/esm2022/shared/interfaces/graphql-options.interface.mjs +0 -2
  282. package/esm2022/shared/interfaces/graphql-plus-options.interfacen.mjs +0 -2
  283. package/esm2022/shared/interfaces/graphql-type-collection.interface.mjs +0 -2
  284. package/esm2022/shared/interfaces/login-config.interface.mjs +0 -2
  285. package/esm2022/shared/interfaces/register-config.interface.mjs +0 -2
  286. package/esm2022/shared/interfaces/single-filter-input.interface.mjs +0 -2
  287. package/esm2022/shared/interfaces/sort-input.interface.mjs +0 -2
  288. package/esm2022/shared/interfaces/time-components.interface.mjs +0 -2
  289. package/esm2022/shared/interfaces/toast.interface.mjs +0 -2
  290. package/esm2022/shared/lenne.tech-ng-base-shared.mjs +0 -5
  291. package/esm2022/shared/public-api.mjs +0 -74
  292. package/esm2022/shared/services/auth.service.mjs +0 -152
  293. package/esm2022/shared/services/breadcrumb.service.mjs +0 -69
  294. package/esm2022/shared/services/cms.service.mjs +0 -82
  295. package/esm2022/shared/services/file.service.mjs +0 -86
  296. package/esm2022/shared/services/forms.service.mjs +0 -61
  297. package/esm2022/shared/services/graphql-meta.service.mjs +0 -132
  298. package/esm2022/shared/services/graphql-plus.service.mjs +0 -93
  299. package/esm2022/shared/services/graphql.service.mjs +0 -510
  300. package/esm2022/shared/services/image.service.mjs +0 -102
  301. package/esm2022/shared/services/loader.service.mjs +0 -78
  302. package/esm2022/shared/services/navigation.service.mjs +0 -38
  303. package/esm2022/shared/services/scroll.service.mjs +0 -207
  304. package/esm2022/shared/services/storage.service.mjs +0 -149
  305. package/esm2022/shared/services/toast.service.mjs +0 -39
  306. package/esm2022/shared/services/user.service.mjs +0 -160
  307. package/esm2022/shared/services/ws.service.mjs +0 -17
  308. package/esm2022/shared/types/graphql-fields.type.mjs +0 -2
  309. package/esm2022/shared/types/storage.type.mjs +0 -2
  310. package/esm2022/shared/validators/email.validator.mjs +0 -7
  311. package/esm2022/shared/validators/match.validator.mjs +0 -22
  312. package/esm2022/shared/validators/secure-password.validator.mjs +0 -7
  313. package/esm2022/src/base.module.mjs +0 -64
  314. package/esm2022/src/decorators/auto-unsubscribe.decorator.mjs +0 -23
  315. package/esm2022/src/directives/lazy-load.directive.mjs +0 -48
  316. package/esm2022/src/directives/match-height.directive.mjs +0 -92
  317. package/esm2022/src/directives/resizable.directive.mjs +0 -92
  318. package/esm2022/src/factories/apollo-options.factory.mjs +0 -108
  319. package/esm2022/src/functions/extract-files.function.mjs +0 -87
  320. package/esm2022/src/guards/auth.guard.mjs +0 -91
  321. package/esm2022/src/guards/can-deactivate.guard.mjs +0 -16
  322. package/esm2022/src/guards/logout.guard.mjs +0 -34
  323. package/esm2022/src/pipes/date-ago.pipe.mjs +0 -64
  324. package/esm2022/src/pipes/safe-html.pipe.mjs +0 -22
  325. package/esm2022/src/services/fullscreen.service.mjs +0 -51
  326. package/esm2022/src/services/seo.service.mjs +0 -117
  327. package/esm2022/src/services/theme.service.mjs +0 -44
  328. package/fesm2022/lenne.tech-ng-base-base-cms.mjs +0 -251
  329. package/fesm2022/lenne.tech-ng-base-base-cms.mjs.map +0 -1
  330. package/fesm2022/lenne.tech-ng-base-base-components.mjs +0 -2917
  331. package/fesm2022/lenne.tech-ng-base-base-components.mjs.map +0 -1
  332. package/fesm2022/lenne.tech-ng-base-base-prototype.mjs +0 -505
  333. package/fesm2022/lenne.tech-ng-base-base-prototype.mjs.map +0 -1
  334. package/fesm2022/lenne.tech-ng-base-shared.mjs +0 -2863
  335. package/fesm2022/lenne.tech-ng-base-shared.mjs.map +0 -1
  336. package/index.d.ts +0 -5
  337. package/public-api.d.ts +0 -17
  338. package/shared/classes/auth.class.d.ts +0 -10
  339. package/shared/classes/basic-user.class.d.ts +0 -27
  340. package/shared/classes/graphql-enum.class.d.ts +0 -7
  341. package/shared/classes/graphql-meta.class.d.ts +0 -66
  342. package/shared/classes/graphql-type.class.d.ts +0 -13
  343. package/shared/classes/helper.class.d.ts +0 -99
  344. package/shared/classes/sort.class.d.ts +0 -12
  345. package/shared/classes/standard.class.d.ts +0 -32
  346. package/shared/decorators/debounce.decorator.d.ts +0 -1
  347. package/shared/enums/comparison-operator.enum.d.ts +0 -14
  348. package/shared/enums/graphql-request-type.enum.d.ts +0 -8
  349. package/shared/enums/logical-operator.enum.d.ts +0 -8
  350. package/shared/enums/skeleton-type.enum.d.ts +0 -5
  351. package/shared/enums/sort-order.enum.d.ts +0 -4
  352. package/shared/enums/toast-type.enum.d.ts +0 -6
  353. package/shared/functions/ws-client.function.d.ts +0 -5
  354. package/shared/index.d.ts +0 -5
  355. package/shared/interfaces/base-module-config.interface.d.ts +0 -61
  356. package/shared/interfaces/breadcrumb.interface.d.ts +0 -4
  357. package/shared/interfaces/can-component-deactivate.interface.d.ts +0 -7
  358. package/shared/interfaces/cms-enum-values.interface.d.ts +0 -4
  359. package/shared/interfaces/cms-field-config.interface.d.ts +0 -45
  360. package/shared/interfaces/cms-model-config.interface.d.ts +0 -14
  361. package/shared/interfaces/cms-table-field.interface.d.ts +0 -10
  362. package/shared/interfaces/combined-filter-input.interface.d.ts +0 -9
  363. package/shared/interfaces/compress-options.interface.d.ts +0 -15
  364. package/shared/interfaces/cropping-options.interface.d.ts +0 -12
  365. package/shared/interfaces/field-object.interface.d.ts +0 -6
  366. package/shared/interfaces/field.interface.d.ts +0 -5
  367. package/shared/interfaces/filter-input.interface.d.ts +0 -9
  368. package/shared/interfaces/find-args.interface.d.ts +0 -11
  369. package/shared/interfaces/graphql-crud-type.interface.d.ts +0 -7
  370. package/shared/interfaces/graphql-fields-object.interface.d.ts +0 -6
  371. package/shared/interfaces/graphql-options.interface.d.ts +0 -11
  372. package/shared/interfaces/graphql-plus-options.interfacen.d.ts +0 -9
  373. package/shared/interfaces/graphql-type-collection.interface.d.ts +0 -7
  374. package/shared/interfaces/login-config.interface.d.ts +0 -6
  375. package/shared/interfaces/register-config.interface.d.ts +0 -4
  376. package/shared/interfaces/single-filter-input.interface.d.ts +0 -11
  377. package/shared/interfaces/sort-input.interface.d.ts +0 -5
  378. package/shared/interfaces/time-components.interface.d.ts +0 -6
  379. package/shared/interfaces/toast.interface.d.ts +0 -8
  380. package/shared/public-api.d.ts +0 -65
  381. package/shared/services/auth.service.d.ts +0 -44
  382. package/shared/services/breadcrumb.service.d.ts +0 -32
  383. package/shared/services/cms.service.d.ts +0 -27
  384. package/shared/services/file.service.d.ts +0 -22
  385. package/shared/services/forms.service.d.ts +0 -14
  386. package/shared/services/graphql-meta.service.d.ts +0 -45
  387. package/shared/services/graphql-plus.service.d.ts +0 -27
  388. package/shared/services/graphql.service.d.ts +0 -71
  389. package/shared/services/image.service.d.ts +0 -27
  390. package/shared/services/loader.service.d.ts +0 -32
  391. package/shared/services/navigation.service.d.ts +0 -15
  392. package/shared/services/scroll.service.d.ts +0 -85
  393. package/shared/services/storage.service.d.ts +0 -49
  394. package/shared/services/toast.service.d.ts +0 -15
  395. package/shared/services/user.service.d.ts +0 -77
  396. package/shared/services/ws.service.d.ts +0 -8
  397. package/shared/types/graphql-fields.type.d.ts +0 -5
  398. package/shared/types/storage.type.d.ts +0 -4
  399. package/shared/validators/email.validator.d.ts +0 -1
  400. package/shared/validators/match.validator.d.ts +0 -4
  401. package/shared/validators/secure-password.validator.d.ts +0 -1
  402. package/src/base.module.d.ts +0 -16
  403. package/src/decorators/auto-unsubscribe.decorator.d.ts +0 -5
  404. package/src/directives/lazy-load.directive.d.ts +0 -17
  405. package/src/directives/match-height.directive.d.ts +0 -20
  406. package/src/directives/resizable.directive.d.ts +0 -26
  407. package/src/factories/apollo-options.factory.d.ts +0 -16
  408. package/src/functions/extract-files.function.d.ts +0 -15
  409. package/src/guards/auth.guard.d.ts +0 -27
  410. package/src/guards/can-deactivate.guard.d.ts +0 -10
  411. package/src/guards/logout.guard.d.ts +0 -16
  412. package/src/pipes/date-ago.pipe.d.ts +0 -34
  413. package/src/pipes/safe-html.pipe.d.ts +0 -13
  414. package/src/services/fullscreen.service.d.ts +0 -18
  415. package/src/services/seo.service.d.ts +0 -61
  416. package/src/services/theme.service.d.ts +0 -17
@@ -0,0 +1,150 @@
1
+ import * as i0 from "@angular/core";
2
+ import { WritableSignal } from "@angular/core";
3
+ /**
4
+ * Form helpers that work with Signal Forms, Reactive Forms and plain HTML alike: they look at the rendered DOM
5
+ * (`aria-invalid="true"`, `:invalid`) instead of a form model.
6
+ */
7
+ /** The first invalid control inside `root` (default `document`), in DOM order. */
8
+ export declare function ltFirstInvalidControl(root?: ParentNode | null | undefined): HTMLElement | null;
9
+ /**
10
+ * Scroll to and focus the first invalid control (call it after a failed submit). Returns whether one was found.
11
+ * `offset` keeps it clear of a sticky header.
12
+ */
13
+ export declare function ltFocusFirstInvalid(root?: ParentNode | null, options?: {
14
+ offset?: number;
15
+ }): boolean;
16
+ /** Options of {@link ltMap}. */
17
+ interface LtMapOptions {
18
+ /** Convert ISO date strings into `Date` (all keys, or only the listed ones). Default `false`. */
19
+ dateStringToDate?: boolean | string[];
20
+ /** Copy function values too (default `false`). */
21
+ funcAllowed?: boolean;
22
+ }
23
+ /**
24
+ * Copy the properties of `source` that exist on `target` (keys of `target` decide, unknown keys are ignored).
25
+ * Ported from ng-base 18 `Helper.map` without its defects (the function check was always true, dates were parsed by
26
+ * default and silently turned any string into an invalid `Date`).
27
+ */
28
+ export declare function ltMap<T extends object>(source: unknown, target: T, options?: LtMapOptions): T;
29
+ /** Deep equality of JSON-like values (functions ignored, `Date` compared by time). */
30
+ export declare function ltIsEqual(a: unknown, b: unknown): boolean;
31
+ /** First-level properties of `a` that differ from `b` (changed arrays/objects are returned as a whole). */
32
+ export declare function ltGetDiff<T extends object>(a: T, b: Partial<T> | Record<string, unknown>): Partial<T>;
33
+ /**
34
+ * Base class for client-side models with `map`, `clone` and `getDiff` (the `Standard` idea of ng-base 18). Declare
35
+ * the properties with initial values (`id = ''`), only declared keys are mapped.
36
+ *
37
+ * @example
38
+ * class Contact extends LtStandard { id = ''; name = ''; createdAt?: Date = undefined; }
39
+ * const contact = Contact.map({ id: '1', name: 'Ada', role: 'ignored' });
40
+ */
41
+ export declare class LtStandard {
42
+ /** Create an instance and map `data` onto it. */
43
+ static map<T extends LtStandard>(this: new () => T, data: unknown, options?: LtMapOptions): T;
44
+ /** Map an array (or one item) of plain objects. */
45
+ static maps<T extends LtStandard>(this: new () => T, data: unknown, options?: LtMapOptions): T[];
46
+ /** Map `data` onto this instance. */
47
+ map(data: unknown, options?: LtMapOptions): this;
48
+ /** Deep copy (structuredClone), optionally with changes. */
49
+ clone(changes?: Partial<this>): this;
50
+ /** First-level properties that differ from `compare`. */
51
+ getDiff(compare: Record<string, unknown>): Partial<this>;
52
+ }
53
+ /**
54
+ * URL slug: lower case, umlauts transliterated (`ä` → `ae`, `ß` → `ss`), whitespace → `-`, other characters removed,
55
+ * repeated hyphens collapsed.
56
+ */
57
+ export declare function ltSlug(value: unknown): string;
58
+ /** Random id of hex characters (default 24, like a MongoDB ObjectId). */
59
+ export declare function ltUid(length?: number): string;
60
+ /** Promise that resolves after `ms` milliseconds. */
61
+ export declare function ltDelay(ms: number): Promise<void>;
62
+ /** Recursively freeze an object (cycle-safe). */
63
+ export declare function ltDeepFreeze<T>(value: T, seen?: WeakSet<object>): Readonly<T>;
64
+ /** Options of {@link LtScrollService.scrollTo}. */
65
+ interface LtScrollOptions {
66
+ /** Scroll behaviour (default `smooth`, `auto` when the user prefers reduced motion). */
67
+ behavior?: ScrollBehavior;
68
+ /** Focus the target after scrolling (default `false`). */
69
+ focus?: boolean;
70
+ /** Offset in pixels above the target, e.g. for a sticky header (default `0`). */
71
+ offset?: number;
72
+ }
73
+ /** Scrolling helpers (browser only, no-ops on the server). */
74
+ export declare class LtScrollService {
75
+ private readonly document;
76
+ private readonly isBrowser;
77
+ /** Scroll to an element (id or element). Returns `false` when it does not exist. */
78
+ scrollTo(target: string | Element, options?: LtScrollOptions): boolean;
79
+ /** Scroll to the top of the page. */
80
+ scrollToTop(behavior?: ScrollBehavior): void;
81
+ private defaultBehavior;
82
+ static ɵfac: i0.ɵɵFactoryDeclaration<LtScrollService, never>;
83
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
84
+ }
85
+ /** SEO data of a page. */
86
+ interface LtSeoData {
87
+ /** Canonical URL (absolute, or a path resolved against `NG_PUBLIC_SITE_URL`). Default: `url`. */
88
+ canonical?: string;
89
+ description?: string;
90
+ /** Social image (absolute URL, or a path resolved against the site URL). */
91
+ image?: string;
92
+ keywords?: string;
93
+ /** Locale for `og:locale`, e.g. `de_DE`. */
94
+ locale?: string;
95
+ /** `false` adds `noindex, nofollow`. Default `true`. */
96
+ index?: boolean;
97
+ /** Site name for `og:site_name`. */
98
+ siteName?: string;
99
+ title: string;
100
+ /** `og:type` (default `website`). */
101
+ type?: string;
102
+ /** Page URL (absolute, or a path resolved against the site URL). Default: the current URL. */
103
+ url?: string;
104
+ }
105
+ /**
106
+ * Title, description, Open Graph, Twitter and robots meta tags, plus the canonical link (SSR-safe: tags are rendered
107
+ * on the server). Ported from ng-base 18 (`SEOService`, fixed 2026-11-03) and extended by canonical, robots and
108
+ * site-URL resolution.
109
+ */
110
+ export declare class LtSeoService {
111
+ private readonly title;
112
+ private readonly meta;
113
+ private readonly document;
114
+ private readonly runtime;
115
+ /** Set every tag for a page. Tags of an earlier page that `data` leaves out are removed. */
116
+ set(data: LtSeoData): void;
117
+ /** Mark the page as not indexable (`noindex, nofollow`). */
118
+ setNoIndex(): void;
119
+ /** Set or remove `<link rel="canonical">`. */
120
+ setCanonical(url: string | undefined): void;
121
+ private tag;
122
+ private absolute;
123
+ private currentUrl;
124
+ static ɵfac: i0.ɵɵFactoryDeclaration<LtSeoService, never>;
125
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
126
+ }
127
+ /**
128
+ * JSON values in `localStorage` (or `sessionStorage`) under the project prefix (`NG_PUBLIC_STORAGE_PREFIX` →
129
+ * `<prefix>_<key>`). SSR-safe: on the server every read returns the fallback and writes are ignored.
130
+ */
131
+ export declare class LtStorageService {
132
+ private readonly isBrowser;
133
+ private readonly prefix;
134
+ /** Store a JSON-serialisable value. Returns `false` when no storage is available or it is full. */
135
+ save(key: string, value: unknown, type?: 'local' | 'session'): boolean;
136
+ /** Load a value (`fallback` when missing, unparsable or on the server). */
137
+ load<T>(key: string, fallback: T, type?: 'local' | 'session'): T;
138
+ load<T>(key: string, fallback?: T, type?: 'local' | 'session'): T | undefined;
139
+ /** Remove a value. */
140
+ remove(key: string, type?: 'local' | 'session'): void;
141
+ /** Remove every value under the project prefix. */
142
+ clear(type?: 'local' | 'session'): void;
143
+ /** A writable signal persisted under `key` (initial value from storage, every `set` saved). */
144
+ signal<T>(key: string, fallback: T, type?: 'local' | 'session'): WritableSignal<T>;
145
+ private key;
146
+ private storage;
147
+ static ɵfac: i0.ɵɵFactoryDeclaration<LtStorageService, never>;
148
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
149
+ }
150
+ export type { LtMapOptions, LtScrollOptions, LtSeoData };
@@ -0,0 +1,503 @@
1
+ import * as i0 from "@angular/core";
2
+ import { EnvironmentProviders, InjectionToken, Signal } from "@angular/core";
3
+ /** Render scope an API URL is resolved for. */
4
+ type LtRenderScope = 'browser' | 'server';
5
+ /** Outcome of resolving the API base URL for the current render scope. */
6
+ interface LtApiUrlResolution {
7
+ /** Base URL to prefix onto API paths: `'/api'` in proxy mode, `''` when unresolved. No trailing slash. */
8
+ baseUrl: string;
9
+ /** `true` when no API URL is configured for {@link scope}. */
10
+ missing: boolean;
11
+ /** `true` when the dev-server proxy prefix `/api` is in use. */
12
+ proxy: boolean;
13
+ /** Scope the resolution was performed for. */
14
+ scope: LtRenderScope;
15
+ }
16
+ /** Inputs of {@link resolveLtApiBaseUrl}. */
17
+ interface LtApiUrlInputs {
18
+ /** `NG_PUBLIC_API_PROXY` (`null` = unset). */
19
+ apiProxy: boolean | null;
20
+ /** `NG_PUBLIC_API_URL`. */
21
+ apiUrl: string;
22
+ /** Whether the app runs in dev mode (`isDevMode()`), used when `apiProxy` is unset. */
23
+ devMode: boolean;
24
+ /** Render scope. */
25
+ scope: LtRenderScope;
26
+ /** `NG_API_URL` (server only). */
27
+ serverApiUrl?: string;
28
+ }
29
+ /**
30
+ * Pure resolution of the API base URL (no DI, no logging).
31
+ *
32
+ * - Server: `NG_API_URL` → `NG_PUBLIC_API_URL` → `''`. The proxy is never used during SSR.
33
+ * - Browser: `/api` when the proxy is on (explicitly, or implicitly in dev mode while unset), else `NG_PUBLIC_API_URL` → `''`.
34
+ *
35
+ * Trailing slashes are stripped so `${baseUrl}${path}` never produces a double slash.
36
+ */
37
+ export declare function resolveLtApiBaseUrl(inputs: LtApiUrlInputs): LtApiUrlResolution;
38
+ /** Whether `url` is absolute (`scheme:` or protocol-relative `//`). */
39
+ export declare function isLtAbsoluteUrl(url: string): boolean;
40
+ /**
41
+ * The single URL builder used by auth, system setup, error translation, files, AI and sync.
42
+ *
43
+ * Reads {@link LT_RUNTIME_CONFIG} and, on the server, {@link LT_SERVER_RUNTIME_CONFIG}. A missing API URL is warned
44
+ * about once per scope; an implicit dev proxy (unset `NG_PUBLIC_API_PROXY` in dev mode) once as well.
45
+ */
46
+ export declare class LtApiUrlService {
47
+ private readonly runtimeConfig;
48
+ private readonly serverConfig;
49
+ private readonly isServer;
50
+ /** Resolve the base URL for the current scope without logging. */
51
+ resolve(): LtApiUrlResolution;
52
+ /** Base URL (no trailing slash) for the current scope. */
53
+ baseUrl(): string;
54
+ /** Build a full API URL for a path such as `/iam/sign-in/email`. Absolute URLs are returned unchanged. */
55
+ buildUrl(path: string): string;
56
+ /** Whether browser requests go through the dev-server proxy under `/api`. Always `false` on the server. */
57
+ isProxy(): boolean;
58
+ /** Report a missing API URL (`dev`: warning, production: error), at most once per scope. Used by the config check. */
59
+ reportMissing(): boolean;
60
+ private resolveAndWarn;
61
+ static ɵfac: i0.ɵɵFactoryDeclaration<LtApiUrlService, never>;
62
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
63
+ }
64
+ /** Options for {@link LtCookieService.set}. */
65
+ interface LtCookieOptions {
66
+ /** Cookie domain. Omit for a host-only cookie. */
67
+ domain?: string;
68
+ /** Lifetime in seconds. Omit for a session cookie. */
69
+ maxAge?: number;
70
+ /** Cookie path (default `/`). */
71
+ path?: string;
72
+ /** SameSite attribute (default `lax`). */
73
+ sameSite?: 'lax' | 'none' | 'strict';
74
+ /** Secure attribute (default: `true` on `https:`). */
75
+ secure?: boolean;
76
+ }
77
+ /**
78
+ * SSR-aware cookie access.
79
+ *
80
+ * - Browser: reads and writes `document.cookie`.
81
+ * - Server: reads the `Cookie` header of the incoming request (`REQUEST`); never writes. A server render must not
82
+ * set auth cookies (it would write `{ user: null }` over a valid browser state), so `set`/`delete` are no-ops there.
83
+ */
84
+ export declare class LtCookieService {
85
+ private readonly document;
86
+ private readonly request;
87
+ private readonly isServer;
88
+ /** Raw cookie string (`a=1; b=2`) of the current request or document. */
89
+ raw(): string;
90
+ /** First decoded value of `name`, or `null`. */
91
+ get(name: string): string | null;
92
+ /**
93
+ * Every decoded value of `name`, in header order. A host-only cookie and a domain-scoped twin can coexist; callers
94
+ * that must pick the right one (the auth state) look at all of them.
95
+ */
96
+ getAll(name: string): string[];
97
+ /** Write a cookie (browser only). The value is URI-encoded. */
98
+ set(name: string, value: string, options?: LtCookieOptions): void;
99
+ /** Delete a cookie on the given path/domain slot (browser only). */
100
+ delete(name: string, options?: Pick<LtCookieOptions, 'domain' | 'path'>): void;
101
+ static ɵfac: i0.ɵɵFactoryDeclaration<LtCookieService, never>;
102
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
103
+ }
104
+ /** Parse every value of cookie `name` out of a raw cookie string (decoded; malformed encodings are kept raw). */
105
+ export declare function parseLtCookies(cookieString: string, name: string): string[];
106
+ /**
107
+ * SHA-256 of a string as lowercase hex (WebCrypto).
108
+ *
109
+ * nest-server expects every password to arrive SHA-256 hashed (it re-hashes server-side). The auth service applies
110
+ * this to each credential field; use it yourself only for custom endpoints that follow the same rule. Because the
111
+ * hash hides the length, enforce password rules in the form, not on the server.
112
+ */
113
+ export declare function ltSha256(message: string): Promise<string>;
114
+ /** Encode bytes as base64url without padding (WebAuthn). */
115
+ export declare function ltArrayBufferToBase64Url(buffer: ArrayBuffer | Uint8Array): string;
116
+ /** Decode base64url (with or without padding) into bytes (WebAuthn). */
117
+ export declare function ltBase64UrlToUint8Array(base64url: string): Uint8Array<ArrayBuffer>;
118
+ /** Response of nest-server `GET /i18n/errors/:locale`. */
119
+ interface LtErrorTranslationResponse {
120
+ errors: Record<string, string>;
121
+ }
122
+ /** Result of {@link LtErrorTranslationService.parseError}. */
123
+ interface LtParsedError {
124
+ /** Error code such as `LTNS_0100`, or `null` when the message carries none. */
125
+ code: string | null;
126
+ /** Message as sent by the backend (without the `#CODE:` marker). */
127
+ developerMessage: string;
128
+ /** Translated message for the active locale; falls back to the developer message, never empty for a message-bearing error. */
129
+ translatedMessage: string;
130
+ }
131
+ /** Options of the error translation (part of `provideLtNgBase({ errorTranslation })`, runtime `NG_PUBLIC_LT_ERROR_TRANSLATION_*`). */
132
+ interface LtErrorTranslationOptions {
133
+ /** Locale used when i18n does not decide (default `de`). */
134
+ defaultLocale?: string;
135
+ /** Load and apply backend translations (default `true`). */
136
+ enabled?: boolean;
137
+ /** Load the translations for the detected locale while the app starts, browser only (default `true`). */
138
+ preload?: boolean;
139
+ }
140
+ /** Resolved error translation options. */
141
+ export declare const LT_ERROR_TRANSLATION_OPTIONS: InjectionToken<Required<LtErrorTranslationOptions>>;
142
+ /**
143
+ * Translates nest-server error messages of the form `#LTNS_0100: Developer message` with the backend's
144
+ * `GET /i18n/errors/:locale` table.
145
+ */
146
+ export declare class LtErrorTranslationService {
147
+ private readonly api;
148
+ private readonly fetch;
149
+ private readonly i18n;
150
+ private readonly toast;
151
+ private readonly options;
152
+ private readonly isBrowser;
153
+ private readonly translations;
154
+ private readonly inFlight;
155
+ /** Locale used for lookups. */
156
+ readonly currentLocale: import("@angular/core").Signal<string>;
157
+ /** Whether translations for the current locale are loaded. */
158
+ readonly isLoaded: import("@angular/core").Signal<boolean>;
159
+ /** Whether a load is running. */
160
+ readonly isLoading: import("@angular/core").WritableSignal<boolean>;
161
+ /** Load the backend translations for `locale` (default: current locale). Cached per locale, one request in flight per locale. */
162
+ loadTranslations(locale?: string): Promise<void>;
163
+ /** Parse any error shape (string, `Error`, `HttpErrorResponse`, response body) into code + messages. */
164
+ parseError(errorOrMessage: unknown): LtParsedError;
165
+ /** Translated message for an error (never empty for a message-bearing error). */
166
+ translateError(errorOrMessage: unknown): string;
167
+ /** Show the translated error as an error toast (browser only); logs to the console when no toaster is bound. */
168
+ showErrorToast(errorOrMessage: unknown, title?: string): void;
169
+ static ɵfac: i0.ɵɵFactoryDeclaration<LtErrorTranslationService, never>;
170
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
171
+ }
172
+ /**
173
+ * Extract the human-relevant message from an error.
174
+ *
175
+ * The response body wins over a transport message: `HttpErrorResponse.message` is
176
+ * `Http failure response for …: 400 Bad Request`, while the backend message (the only one that can carry a
177
+ * `#LTNS_` marker) is in `error.message`. Better Auth errors (`{ code, message }`) and arrays of messages
178
+ * (class-validator) are handled too.
179
+ */
180
+ export declare function extractLtErrorMessage(errorOrMessage: unknown): string;
181
+ /** A `fetch`-compatible function. */
182
+ type LtFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
183
+ /**
184
+ * The fetch used by every library call that does not go through `HttpClient`: error translation, system setup,
185
+ * AI (incl. the SSE stream), offline sync and its hint stream, the Better Auth client.
186
+ *
187
+ * The default sends cookies (`credentials: 'include'`). `provideLtAuth()` replaces it with the auth-aware fetch
188
+ * (Bearer token in JWT mode, cookie → JWT switch on 401, stale-JWT refresh, session-loss handling), so SSE and sync
189
+ * get the same auth behaviour as `HttpClient` calls behind `ltAuthInterceptor`.
190
+ */
191
+ export declare const LT_FETCH: InjectionToken<LtFetch>;
192
+ /** `fetch` with `credentials: 'include'` unless the caller decided otherwise. */
193
+ export declare const ltCredentialsFetch: LtFetch;
194
+ /** Nested message tree as in the shipped `i18n/de.json` / `i18n/en.json`. */
195
+ interface LtI18nMessages {
196
+ [key: string]: LtI18nMessages | string;
197
+ }
198
+ /**
199
+ * Bridge to the app's translation library (Transloco, ngx-translate, …).
200
+ *
201
+ * Bind it when the app already has an i18n setup, so library texts follow the app language and can be overridden
202
+ * in the app's own translation files (keys `lt.error.*` of the core and `lt.<entry>.*` of the entry points: `lt.auth.*`,
203
+ * `lt.files.*`, `lt.share.*`, `lt.ui.*`, `lt.bug.*`; shipped as `i18n/{de,en}.json` and `i18n/<entry>/{de,en}.json`).
204
+ *
205
+ * @example Transloco
206
+ * { provide: LT_I18N_ADAPTER, useFactory: () => {
207
+ * const transloco = inject(TranslocoService);
208
+ * const lang = toSignal(transloco.langChanges$, { initialValue: transloco.getActiveLang() });
209
+ * return { locale: lang, translate: (key, params) => transloco.translate(key, params) };
210
+ * } }
211
+ */
212
+ interface LtI18nAdapter {
213
+ /** Active locale (`de`, `en`, …). */
214
+ readonly locale: Signal<string>;
215
+ /** Translate a key; return `null` (or the key itself) when the app has no translation, then the library text is used. */
216
+ translate(key: string, params?: Record<string, unknown>): string | null;
217
+ }
218
+ /** Optional adapter to the app's i18n library. */
219
+ export declare const LT_I18N_ADAPTER: InjectionToken<LtI18nAdapter>;
220
+ /** Options of the built-in i18n (part of `provideLtNgBase({ i18n })`). */
221
+ interface LtI18nOptions {
222
+ /** Locale used when neither the adapter nor the browser language (de/en) decides. Default `de`. */
223
+ defaultLocale?: string;
224
+ /** Additional or overriding messages per locale, merged over the shipped de/en texts. */
225
+ messages?: Record<string, LtI18nMessages>;
226
+ }
227
+ /** i18n options token (set by `provideLtNgBase`). */
228
+ export declare const LT_I18N_OPTIONS: InjectionToken<LtI18nOptions>;
229
+ /** The core's shipped messages (`lt.error.*`); the entry points register theirs with `registerLibraryMessages()`. */
230
+ export declare const LT_I18N_MESSAGES: Readonly<Record<'de' | 'en', LtI18nMessages>>;
231
+ /**
232
+ * Signal-based translations for library texts, with an optional adapter to the app's i18n library.
233
+ *
234
+ * Lookup order for `t(key)`: adapter → messages of the active locale → German messages → the key.
235
+ * Locale order: adapter → `setLocale()` → browser language (de/en, browser only) → `defaultLocale` → `de`.
236
+ */
237
+ export declare class LtI18nService {
238
+ private readonly adapter;
239
+ private readonly options;
240
+ private readonly isBrowser;
241
+ private readonly explicitLocale;
242
+ private readonly extraMessages;
243
+ /**
244
+ * Texts of the entry points (`lt.ui.*`, `lt.auth.*` …) registered by {@link registerLibraryMessages}. A plain object:
245
+ * every entry registers its texts before its own components read them, so nothing has to react to a registration.
246
+ */
247
+ private readonly libraryMessages;
248
+ private readonly libraryIds;
249
+ /** Active locale. */
250
+ readonly locale: Signal<string>;
251
+ /** Set the locale (ignored for lookups while an adapter provides one). */
252
+ setLocale(locale: string): void;
253
+ /** Merge messages for a locale over the shipped ones. */
254
+ registerMessages(locale: string, messages: LtI18nMessages): void;
255
+ /**
256
+ * Register the default texts of an entry point once per `id` (`ui`, `auth`, `files` …). They rank below the app's
257
+ * own texts (`provideLtNgBase({ i18n: { messages } })`, `registerMessages()`, the adapter), like the shipped core
258
+ * texts. Entry points call it when they are first used (synchronously, on the server and in the browser alike), so
259
+ * their texts travel with their code instead of the initial bundle.
260
+ */
261
+ registerLibraryMessages(id: string, messages: Readonly<Record<string, LtI18nMessages>>): void;
262
+ /** Translate `key`, interpolating `{name}` placeholders from `params`. */
263
+ t(key: string, params?: Record<string, unknown>): string;
264
+ private detectBrowserLocale;
265
+ static ɵfac: i0.ɵɵFactoryDeclaration<LtI18nService, never>;
266
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
267
+ }
268
+ /** Options of the pre-hydration input preservation (`provideLtNgBase({ preHydrationInput })`). */
269
+ interface LtPreHydrationInputOptions {
270
+ /** Keep what users type before hydration (default `true`). */
271
+ enabled?: boolean;
272
+ /**
273
+ * How long after hydration to keep restoring, in milliseconds (default `1500`; `0` restores once). Clamped to 30000.
274
+ * When it elapses the snapshot is dropped, so preserved values (passwords included) are not kept for the session.
275
+ */
276
+ maxRestoreMs?: number;
277
+ }
278
+ type LtEditableField = HTMLInputElement | HTMLTextAreaElement;
279
+ /** Every `input`/`textarea` under `root` whose value differs from its server-rendered default, with that value. */
280
+ export declare function collectLtEditedFields(root: ParentNode): Map<LtEditableField, string>;
281
+ /**
282
+ * Write `value` back into `field` and dispatch a bubbling `input` event, so `(input)` handlers, `model()` and Signal
283
+ * Forms adopt it. Returns `false` when the field is detached or already holds the value.
284
+ */
285
+ export declare function restoreLtField(field: LtEditableField, value: string): boolean;
286
+ /**
287
+ * Pre-hydration input preservation (browser only).
288
+ *
289
+ * Text typed into a server-rendered field before hydration is in the DOM, but the first change detection after
290
+ * hydration writes the component's (empty) value over it — `[value]` bindings and Signal Forms do — before the replayed
291
+ * events run, so `withEventReplay()` alone loses it (measured in the ng-base playground E2E). The fields are snapshot
292
+ * at app initialisation (the SSR DOM is reused by hydration, so the element references stay valid) and restored once
293
+ * the app is stable, then every 250 ms for `maxRestoreMs` for fields hydrated late; fields stay ordinary editable
294
+ * fields throughout (autofill and screen readers untouched).
295
+ */
296
+ export declare function provideLtPreHydrationInput(options?: LtPreHydrationInputOptions): EnvironmentProviders;
297
+ /**
298
+ * Inline script (for `<head>`) that blocks the native submission of forms without `action` until the app handles them.
299
+ * A server-rendered login form submitted before hydration would otherwise send a native GET with the password in the
300
+ * URL. `ltAngularRequestHandler()` writes it into every SSR HTML response; add it to `index.html` yourself without SSR.
301
+ */
302
+ export declare const LT_PRE_HYDRATION_SUBMIT_GUARD_SCRIPT = "document.addEventListener('submit',function(e){var f=e.target;if(f instanceof HTMLFormElement&&!f.hasAttribute('action')){e.preventDefault();}},true);";
303
+ /**
304
+ * Feature options that can be overridden per stage at runtime (`NG_PUBLIC_LT_<FEATURE>_<OPTION>`).
305
+ *
306
+ * Each feature provider (`provideLtAuth`, `provideLtFiles`, `provideLtAi`, `provideLtSync`, `provideLtNgBase`)
307
+ * merges, in this order: its defaults, the options passed in code, and the values found here.
308
+ */
309
+ interface LtPublicFeatureConfig {
310
+ ai?: Record<string, unknown>;
311
+ auth?: Record<string, unknown>;
312
+ errorTranslation?: Record<string, unknown>;
313
+ sync?: Record<string, unknown>;
314
+ tus?: Record<string, unknown>;
315
+ [feature: string]: Record<string, unknown> | undefined;
316
+ }
317
+ /**
318
+ * Public runtime configuration of the app, the Angular counterpart of Nuxt's `runtimeConfig.public`.
319
+ *
320
+ * With SSR the server reads it per request from the `NG_*` environment (`readLtRequestContext()` in
321
+ * `@lenne.tech/ng-base/server`), passes it to `AngularNodeAppEngine.handle(req, context)` as request context
322
+ * (`REQUEST_CONTEXT`) and writes it as JSON `<script id="ng-runtime-config">` into every HTML response, also for
323
+ * `RenderMode.Client` routes; the browser reads that script. One build can therefore be promoted from stage to stage.
324
+ * Without SSR the values come from `provideLtNgBase({ runtime })`.
325
+ *
326
+ * Projects may carry additional public values (e.g. `plausibleApiHost`); they travel the same way.
327
+ * Never put a secret here: everything in this object reaches the browser.
328
+ */
329
+ interface LtRuntimeConfig {
330
+ [key: string]: unknown;
331
+ /** Commit of the running build (`NG_PUBLIC_APP_COMMIT`, fallback `APP_VERSION_COMMIT`), `unknown` when unset. */
332
+ appCommit?: string;
333
+ /**
334
+ * Deployment stage (`NG_PUBLIC_APP_ENV`), using nest-server's NODE_ENV block names: `local`, `ci`, `e2e`, `develop`,
335
+ * `test`, `production`. Only `production` counts as production; features that are off in production fail closed.
336
+ */
337
+ appEnv?: string;
338
+ /** Version of the running build (from the server, e.g. package.json). */
339
+ appVersion?: string;
340
+ /** Public API base URL (`NG_PUBLIC_API_URL`), e.g. `https://api.example.com`. Empty = relative to the app origin. */
341
+ apiUrl: string;
342
+ /**
343
+ * Route browser API calls through the dev-server proxy under `/api` (`NG_PUBLIC_API_PROXY`).
344
+ * `null` = not configured: the proxy is used in dev mode (`isDevMode()`) with a one-time warning.
345
+ * Never used during SSR.
346
+ */
347
+ apiProxy: boolean | null;
348
+ /** Opt-in cookie namespace (`NG_PUBLIC_COOKIE_PREFIX`); must mirror the backend `COOKIE_PREFIX`. */
349
+ cookiePrefix: string;
350
+ /** Feature options overridden at runtime (`NG_PUBLIC_LT_*`). */
351
+ lt: LtPublicFeatureConfig;
352
+ /** Absolute public URL of the app (`NG_PUBLIC_SITE_URL`), used for redirect/callback URLs, SEO and security.txt. */
353
+ siteUrl: string;
354
+ /** Prefix for `localStorage` keys (`NG_PUBLIC_STORAGE_PREFIX`). */
355
+ storagePrefix: string;
356
+ }
357
+ /** Defaults of {@link LtRuntimeConfig}. */
358
+ export declare const LT_RUNTIME_CONFIG_DEFAULTS: LtRuntimeConfig;
359
+ /** The resolved public runtime configuration (defaults ← `provideLtNgBase({ runtime })` ← request context / `<script id="ng-runtime-config">`). */
360
+ export declare const LT_RUNTIME_CONFIG: InjectionToken<LtRuntimeConfig>;
361
+ /** What the SSR server passes to `AngularNodeAppEngine.handle(req, context)` (see `readLtRequestContext()`). */
362
+ interface LtRequestContext {
363
+ /** Public runtime configuration (also written into the HTML as `<script id="ng-runtime-config">`). */
364
+ runtimeConfig: Partial<LtRuntimeConfig>;
365
+ /** Internal API URL for SSR requests only (`NG_API_URL`), never sent to the browser. */
366
+ serverApiUrl?: string;
367
+ }
368
+ /**
369
+ * Runtime configuration on the server: public part plus the server-only API URL. Read from `REQUEST_CONTEXT`
370
+ * (an {@link LtRequestContext}) by default; `provideLtServerRuntimeConfig()` provides it from the environment instead
371
+ * for servers that pass no request context. `null` in the browser.
372
+ */
373
+ interface LtServerRuntimeConfig {
374
+ /** Public part. */
375
+ public: Partial<LtRuntimeConfig>;
376
+ /** Internal API URL for SSR requests only (`NG_API_URL`), never sent to the browser. */
377
+ serverApiUrl: string;
378
+ }
379
+ /** Server-only runtime configuration (see {@link LtServerRuntimeConfig}). `null` in the browser. */
380
+ export declare const LT_SERVER_RUNTIME_CONFIG: InjectionToken<LtServerRuntimeConfig | null>;
381
+ /** Id of the JSON `<script>` that carries the public runtime configuration into the browser. */
382
+ export declare const LT_RUNTIME_CONFIG_SCRIPT_ID = "ng-runtime-config";
383
+ /** Read the runtime configuration the server wrote into the document (`null` when missing or unreadable). */
384
+ export declare function readLtRuntimeConfigFromDocument(doc: Document | null | undefined): Partial<LtRuntimeConfig> | null;
385
+ /**
386
+ * Serialise the public runtime configuration for an inline `<script type="application/json">`: `<`, `>`, `&`, U+2028
387
+ * and U+2029 are escaped, so a value can never close the script element, open a comment or form an HTML entity.
388
+ */
389
+ export declare function serializeLtRuntimeConfig(config: Partial<LtRuntimeConfig>): string;
390
+ /**
391
+ * Insert the runtime configuration as the first child of `<head>` (documents without `<head>` stay untouched), by
392
+ * default preceded by the pre-hydration submit guard (`LT_PRE_HYDRATION_SUBMIT_GUARD_SCRIPT`).
393
+ */
394
+ export declare function injectLtRuntimeConfigScript(html: string, config: Partial<LtRuntimeConfig>, options?: {
395
+ submitGuard?: boolean;
396
+ }): string;
397
+ /**
398
+ * Merge partial runtime configurations onto a base. `lt` is merged per feature; `undefined` values never
399
+ * override (an unset env variable keeps the code default).
400
+ */
401
+ export declare function mergeLtRuntimeConfig(base: LtRuntimeConfig, ...overrides: (Partial<LtRuntimeConfig> | null | undefined)[]): LtRuntimeConfig;
402
+ /**
403
+ * Merge feature options: defaults ← code options ← runtime overrides. Nested plain objects are merged one level
404
+ * deep (e.g. `auth.interceptor`), arrays and primitives replace. `undefined` never overrides.
405
+ */
406
+ export declare function mergeLtFeatureOptions<T extends object>(defaults: T, ...overrides: (object | null | undefined)[]): T;
407
+ /** Options of {@link provideLtNgBase}. */
408
+ interface LtNgBaseConfig {
409
+ /**
410
+ * Check at startup that an API URL is configured for the current scope (default `true`): a warning in dev mode, a
411
+ * console error in production. Turn it off for apps without a backend (ng-base/ui only).
412
+ */
413
+ configCheck?: boolean;
414
+ /** Backend error translation (`#LTNS_xxxx`). Turn it off (`enabled: false`) for apps without nest-server. */
415
+ errorTranslation?: LtErrorTranslationOptions;
416
+ /** Library i18n (locale, extra messages). Bind `LT_I18N_ADAPTER` to use the app's i18n library. */
417
+ i18n?: LtI18nOptions;
418
+ /** Keep what users type into server-rendered fields before hydration (default on, see `provideLtPreHydrationInput`). */
419
+ preHydrationInput?: LtPreHydrationInputOptions;
420
+ /**
421
+ * Static runtime configuration: the base that the per-request values of the SSR server (`NG_*` via
422
+ * `readLtRequestContext()`, `<script id="ng-runtime-config">` in the browser) override. Use it for apps without SSR,
423
+ * tests, or defaults.
424
+ */
425
+ runtime?: Partial<LtRuntimeConfig>;
426
+ }
427
+ /** Name of the window flag set once the app is stable (hydrated) in the browser; read by `waitForHydration()`. */
428
+ export declare const LT_HYDRATED_FLAG = "__ltNgBaseHydrated";
429
+ /**
430
+ * Core providers of `@lenne.tech/ng-base`.
431
+ *
432
+ * - {@link LT_RUNTIME_CONFIG}: defaults ← `config.runtime` ← request context (server) / `<script id="ng-runtime-config">` (browser).
433
+ * - Error translation options and preload of the backend translations (browser only, in the background: the start
434
+ * never waits for the API; until they arrive errors show the developer message).
435
+ * - i18n options.
436
+ * - API URL config check.
437
+ * - Pre-hydration input preservation (typed text survives hydration).
438
+ * - Hydration flag `window.__ltNgBaseHydrated` for the Playwright helpers.
439
+ *
440
+ * Feature providers live in the secondary entry points: `provideLtAuth()` (`/auth`), `provideLtFiles()` (`/files`),
441
+ * `provideLtAi()` (`/ai`), `provideLtSync()` (`/sync`), `provideLtUi()` (`/ui`), `provideLtServerRuntimeConfig()` (`/server`).
442
+ *
443
+ * @example app.config.ts
444
+ * export const appConfig: ApplicationConfig = {
445
+ * providers: [
446
+ * provideHttpClient(withInterceptors([ltAuthInterceptor])),
447
+ * provideLtNgBase(),
448
+ * provideLtAuth({ systemSetup: { enabled: true } }),
449
+ * provideLtUi(),
450
+ * ],
451
+ * };
452
+ */
453
+ export declare function provideLtNgBase(config?: LtNgBaseConfig): EnvironmentProviders;
454
+ /** Toast colors (same set as Nuxt UI). */
455
+ type LtToastColor = 'error' | 'info' | 'neutral' | 'primary' | 'secondary' | 'success' | 'warning';
456
+ /** A toast message. */
457
+ interface LtToastOptions {
458
+ color?: LtToastColor;
459
+ description?: string;
460
+ /** Display time in milliseconds (adapter default when omitted). */
461
+ duration?: number;
462
+ title?: string;
463
+ }
464
+ /**
465
+ * Bridge to the app's toaster. `provideLtUi()` binds it to Spartan Sonner (`<hlm-toaster />`); bind your own for
466
+ * another UI library. Return `false` when nothing could be shown, the caller then logs to the console.
467
+ */
468
+ interface LtToastAdapter {
469
+ show(options: LtToastOptions): boolean;
470
+ }
471
+ /** Optional toaster bridge (see {@link LtToastAdapter}). */
472
+ export declare const LT_TOAST_ADAPTER: InjectionToken<LtToastAdapter>;
473
+ /** Shows toasts through {@link LT_TOAST_ADAPTER}; without an adapter, `show` returns `false`. */
474
+ export declare class LtToastService {
475
+ private readonly adapter;
476
+ /** Show a toast. Returns `false` when no toaster is bound or it threw. */
477
+ show(options: LtToastOptions): boolean;
478
+ /** Shortcut for a success toast. */
479
+ success(title: string, description?: string): boolean;
480
+ /** Shortcut for an error toast. */
481
+ error(title: string, description?: string): boolean;
482
+ static ɵfac: i0.ɵɵFactoryDeclaration<LtToastService, never>;
483
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
484
+ }
485
+ /**
486
+ * Identity function and tagged template for Tailwind class strings outside templates, so the Tailwind IntelliSense
487
+ * extension recognises them (configure `"tailwindCSS.experimental.classRegex": ["tw`([^`]*)`", "tw\\(['\"]([^'\"]*)"]`).
488
+ *
489
+ * @example
490
+ * const card = tw`rounded-lg border p-4`;
491
+ * const active = tw('bg-primary text-primary-foreground');
492
+ */
493
+ export declare function tw(strings: TemplateStringsArray | string, ...values: unknown[]): string;
494
+ /** Version of `@lenne.tech/ng-base`; kept in sync with `package.json` by `scripts/sync-version.mjs`. */
495
+ export declare const LT_NG_BASE_VERSION = "22.0.0";
496
+ /**
497
+ * Log `message` the first time `key` is seen; ignore later calls. The conditions behind these messages (missing API
498
+ * URL, implicit dev proxy) are constant for the process, so repeating them only drowns other output.
499
+ */
500
+ export declare function warnLtOnce(key: string, message: string, level?: 'error' | 'warn'): void;
501
+ /** Test only: forget which one-shot messages were emitted. */
502
+ export declare function resetLtWarnOnceState(): void;
503
+ export type { LtApiUrlInputs, LtApiUrlResolution, LtCookieOptions, LtErrorTranslationOptions, LtErrorTranslationResponse, LtFetch, LtI18nAdapter, LtI18nMessages, LtI18nOptions, LtNgBaseConfig, LtParsedError, LtPreHydrationInputOptions, LtPublicFeatureConfig, LtRenderScope, LtRequestContext, LtRuntimeConfig, LtServerRuntimeConfig, LtToastAdapter, LtToastColor, LtToastOptions };
@@ -0,0 +1,3 @@
1
+ /* Generated by scripts/generate-ui-sources.mjs from ui/src/lib/helm/accordion/index.ts — do not edit. */
2
+ @import './utils.css';
3
+ @source inline("**:data-[slot=accordion-trigger-icon]:ms-auto **:data-[slot=accordion-trigger-icon]:text-[length:--spacing(4)] **:data-[slot=accordion-trigger-icon]:text-muted-foreground! ../../utils ./lib/hlm-accordion ./lib/hlm-accordion-content ./lib/hlm-accordion-content-lazy ./lib/hlm-accordion-item ./lib/hlm-accordion-trigger </button> </div> </h3> <button <div <h3 <ng-content <ng-icon @angular/core @ng-icons/core @ng-icons/lucide @spartan-ng/brain/accordion [&_a]:hover:text-foreground [&_a]:underline [&_a]:underline-offset-3 [hlmAccordionItem],hlm-accordion-item [hlmAccordion], accordion accordion-content accordion-item aria-disabled:opacity-50 aria-disabled:pointer-events-none border border-transparent brnAccordionHeader brnAccordionTrigger clsx data-[state=closed]:h-0 data-[state=open]:h-(--brn-accordion-content-height) data-slot disabled flex flex-1 flex-col focus-visible:after:border-ring focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 font-medium group-aria-expanded/accordion-trigger:inline group/accordion-trigger hlm-accordion hlm-accordion-content hlm-accordion-trigger hlmAccordion hlmAccordionContent hlmAccordionContentLazy hlmAccordionItem hlmAccordionTrigger hover:underline isOpened items-start justify-between ng-template[hlmAccordionContentLazy] not-last:border-b openedChange orientation outline-none pb-4 py-4 relative rounded-md shrink-0 style text-sm text-start transition-all type w-full");