@siemens/element-ng 49.14.0 → 51.0.0-rc.5

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 (254) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/siemens-element-ng-about.mjs +41 -25
  3. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  4. package/fesm2022/siemens-element-ng-accordion.mjs +58 -40
  5. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  6. package/fesm2022/siemens-element-ng-action-modal.mjs +83 -53
  7. package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
  8. package/fesm2022/siemens-element-ng-ag-grid.mjs +15 -12
  9. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  10. package/fesm2022/siemens-element-ng-application-header.mjs +176 -166
  11. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  12. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +34 -28
  13. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  14. package/fesm2022/siemens-element-ng-autocomplete.mjs +27 -22
  15. package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
  16. package/fesm2022/siemens-element-ng-avatar.mjs +31 -21
  17. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  18. package/fesm2022/siemens-element-ng-badge.mjs +9 -8
  19. package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
  20. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +17 -14
  21. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
  22. package/fesm2022/siemens-element-ng-breadcrumb.mjs +21 -17
  23. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  24. package/fesm2022/siemens-element-ng-card.mjs +71 -46
  25. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  26. package/fesm2022/siemens-element-ng-carousel.mjs +57 -33
  27. package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-chat-messages.mjs +181 -117
  29. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  30. package/fesm2022/siemens-element-ng-circle-status.mjs +39 -25
  31. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  32. package/fesm2022/siemens-element-ng-color-picker.mjs +26 -17
  33. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  34. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +56 -35
  35. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  36. package/fesm2022/siemens-element-ng-common.mjs +12 -12
  37. package/fesm2022/siemens-element-ng-connection-strength.mjs +14 -12
  38. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-content-action-bar.mjs +36 -27
  40. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-copyright-notice.mjs +19 -14
  42. package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-dashboard.mjs +335 -221
  44. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-datatable.mjs +8 -8
  46. package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-date-range-filter.mjs +119 -72
  48. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-datepicker.mjs +376 -244
  50. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +22 -17
  52. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-empty-state.mjs +15 -12
  54. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-file-uploader.mjs +105 -91
  56. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-filter-bar.mjs +32 -24
  58. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-filtered-search.mjs +251 -153
  60. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-footer.mjs +12 -10
  62. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-form.mjs +345 -113
  64. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-formly-legacy.mjs +99 -0
  66. package/fesm2022/siemens-element-ng-formly-legacy.mjs.map +1 -0
  67. package/fesm2022/siemens-element-ng-formly.mjs +222 -316
  68. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-header-dropdown.mjs +40 -30
  70. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-help-button.mjs +5 -5
  72. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-icon.mjs +46 -47
  74. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-info-page.mjs +17 -11
  76. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-inline-notification.mjs +19 -14
  78. package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-ip-input.mjs +25 -25
  80. package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-landing-page.mjs +120 -74
  82. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-language-switcher.mjs +16 -12
  84. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-link.mjs +31 -21
  86. package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-list-details.mjs +76 -56
  88. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-loading-spinner.mjs +46 -63
  90. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-localization.mjs +14 -12
  92. package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-main-detail-container.mjs +47 -30
  94. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-maplibre.mjs +42 -0
  96. package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -0
  97. package/fesm2022/siemens-element-ng-markdown-renderer.mjs +6 -5
  98. package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
  99. package/fesm2022/siemens-element-ng-menu.mjs +56 -48
  100. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  101. package/fesm2022/siemens-element-ng-modal.mjs +14 -11
  102. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  103. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +249 -204
  104. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  105. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +120 -83
  106. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  107. package/fesm2022/siemens-element-ng-navbar.mjs +72 -45
  108. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  109. package/fesm2022/siemens-element-ng-notification-item.mjs +19 -11
  110. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  111. package/fesm2022/siemens-element-ng-number-input.mjs +40 -28
  112. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  113. package/fesm2022/siemens-element-ng-pagination.mjs +31 -20
  114. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  115. package/fesm2022/siemens-element-ng-password-strength.mjs +32 -23
  116. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  117. package/fesm2022/siemens-element-ng-password-toggle.mjs +18 -13
  118. package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
  119. package/fesm2022/siemens-element-ng-phone-number.mjs +123 -139
  120. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  121. package/fesm2022/siemens-element-ng-photo-upload.mjs +84 -51
  122. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  123. package/fesm2022/siemens-element-ng-pills-input.mjs +63 -58
  124. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  125. package/fesm2022/siemens-element-ng-popover-legacy.mjs +43 -28
  126. package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
  127. package/fesm2022/siemens-element-ng-popover.mjs +35 -27
  128. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  129. package/fesm2022/siemens-element-ng-progressbar.mjs +23 -16
  130. package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
  131. package/fesm2022/siemens-element-ng-resize-observer.mjs +32 -43
  132. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  133. package/fesm2022/siemens-element-ng-result-details-list.mjs +12 -10
  134. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  135. package/fesm2022/siemens-element-ng-search-bar.mjs +38 -31
  136. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  137. package/fesm2022/siemens-element-ng-select.mjs +218 -163
  138. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  139. package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
  140. package/fesm2022/siemens-element-ng-side-panel.mjs +128 -86
  141. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  142. package/fesm2022/siemens-element-ng-skip-links.mjs +21 -24
  143. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  144. package/fesm2022/siemens-element-ng-slider.mjs +44 -29
  145. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  146. package/fesm2022/siemens-element-ng-split.mjs +273 -293
  147. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  148. package/fesm2022/siemens-element-ng-status-bar.mjs +65 -51
  149. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  150. package/fesm2022/siemens-element-ng-status-counter.mjs +15 -11
  151. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  152. package/fesm2022/siemens-element-ng-status-toggle.mjs +26 -16
  153. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  154. package/fesm2022/siemens-element-ng-summary-chip.mjs +25 -16
  155. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  156. package/fesm2022/siemens-element-ng-summary-widget.mjs +27 -17
  157. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  158. package/fesm2022/siemens-element-ng-system-banner.mjs +11 -8
  159. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  160. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +20 -17
  161. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  162. package/fesm2022/siemens-element-ng-tabs.mjs +73 -70
  163. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  164. package/fesm2022/siemens-element-ng-theme.mjs +29 -6
  165. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  166. package/fesm2022/siemens-element-ng-threshold.mjs +60 -41
  167. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  168. package/fesm2022/siemens-element-ng-toast-notification.mjs +45 -40
  169. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  170. package/fesm2022/siemens-element-ng-tooltip.mjs +105 -82
  171. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  172. package/fesm2022/siemens-element-ng-tour.mjs +24 -18
  173. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  174. package/fesm2022/siemens-element-ng-translate.mjs +0 -1
  175. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  176. package/fesm2022/siemens-element-ng-tree-view.mjs +96 -75
  177. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  178. package/fesm2022/siemens-element-ng-typeahead.mjs +76 -70
  179. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  180. package/fesm2022/siemens-element-ng-wizard.mjs +72 -48
  181. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  182. package/formly-legacy/package.json +4 -0
  183. package/maplibre/package.json +4 -0
  184. package/maplibre/styles/_index.scss +1 -0
  185. package/maplibre/styles/maplibre-gl.scss +715 -0
  186. package/package.json +37 -23
  187. package/schematics/migration.json +4 -4
  188. package/schematics/migrations/data/class-member-replacement.js +1 -19
  189. package/schematics/migrations/data/component-property-names.js +1 -25
  190. package/schematics/migrations/data/element-class-changes.js +1 -28
  191. package/schematics/migrations/data/element-migration-data.js +2 -0
  192. package/schematics/migrations/data/element-selectors.js +1 -11
  193. package/schematics/migrations/data/index.js +0 -4
  194. package/schematics/migrations/data/migration-test-data.js +9 -6
  195. package/schematics/migrations/data/provider-function-removals.js +7 -0
  196. package/schematics/migrations/data/symbol-removals.js +7 -7
  197. package/schematics/migrations/data/symbol-renaming.js +1 -48
  198. package/schematics/migrations/element-migration/element-migration.js +3 -6
  199. package/schematics/migrations/utilities/import-removal.js +39 -0
  200. package/schematics/migrations/utilities/index.js +2 -0
  201. package/schematics/migrations/utilities/provider-function-removal.migration.js +116 -0
  202. package/schematics/ng-update/index.js +1 -1
  203. package/schematics/ng-update/migrate-split-sizes.js +105 -0
  204. package/schematics/ng-update/{migrate-to-v49.js → migrate-to-v51.js} +5 -3
  205. package/template-i18n.json +45 -47
  206. package/types/siemens-element-ng-application-header.d.ts +8 -28
  207. package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
  208. package/types/siemens-element-ng-chat-messages.d.ts +11 -9
  209. package/types/siemens-element-ng-circle-status.d.ts +1 -1
  210. package/types/siemens-element-ng-content-action-bar.d.ts +1 -1
  211. package/types/siemens-element-ng-dashboard.d.ts +2 -2
  212. package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
  213. package/types/siemens-element-ng-datepicker.d.ts +3 -14
  214. package/types/siemens-element-ng-electron-titlebar.d.ts +1 -1
  215. package/types/siemens-element-ng-file-uploader.d.ts +13 -31
  216. package/types/siemens-element-ng-filter-bar.d.ts +1 -1
  217. package/types/siemens-element-ng-filtered-search.d.ts +4 -4
  218. package/types/siemens-element-ng-form.d.ts +180 -44
  219. package/types/siemens-element-ng-formly-legacy.d.ts +40 -0
  220. package/types/siemens-element-ng-formly.d.ts +34 -167
  221. package/types/siemens-element-ng-icon.d.ts +2 -19
  222. package/types/siemens-element-ng-ip-input.d.ts +1 -1
  223. package/types/siemens-element-ng-landing-page.d.ts +2 -2
  224. package/types/siemens-element-ng-loading-spinner.d.ts +7 -17
  225. package/types/siemens-element-ng-maplibre.d.ts +26 -0
  226. package/types/siemens-element-ng-navbar-vertical-next.d.ts +86 -38
  227. package/types/siemens-element-ng-navbar-vertical.d.ts +1 -1
  228. package/types/siemens-element-ng-navbar.d.ts +3 -3
  229. package/types/siemens-element-ng-notification-item.d.ts +12 -0
  230. package/types/siemens-element-ng-phone-number.d.ts +5 -8
  231. package/types/siemens-element-ng-photo-upload.d.ts +4 -4
  232. package/types/siemens-element-ng-resize-observer.d.ts +0 -17
  233. package/types/siemens-element-ng-search-bar.d.ts +1 -1
  234. package/types/siemens-element-ng-select.d.ts +1 -1
  235. package/types/siemens-element-ng-side-panel.d.ts +3 -3
  236. package/types/siemens-element-ng-split.d.ts +99 -70
  237. package/types/siemens-element-ng-status-bar.d.ts +5 -13
  238. package/types/siemens-element-ng-status-counter.d.ts +1 -1
  239. package/types/siemens-element-ng-tabs.d.ts +1 -2
  240. package/types/siemens-element-ng-theme.d.ts +12 -2
  241. package/types/siemens-element-ng-threshold.d.ts +1 -1
  242. package/types/siemens-element-ng-toast-notification.d.ts +0 -1
  243. package/types/siemens-element-ng-tooltip.d.ts +7 -7
  244. package/types/siemens-element-ng-translate.d.ts +2 -5
  245. package/fesm2022/siemens-element-ng-icon-status.mjs +0 -46
  246. package/fesm2022/siemens-element-ng-icon-status.mjs.map +0 -1
  247. package/fesm2022/siemens-element-ng-sort-bar.mjs +0 -99
  248. package/fesm2022/siemens-element-ng-sort-bar.mjs.map +0 -1
  249. package/icon-status/package.json +0 -4
  250. package/schematics/vitest-setup.js +0 -5
  251. package/sort-bar/package.json +0 -4
  252. package/types/siemens-element-ng-icon-status.d.ts +0 -25
  253. package/types/siemens-element-ng-sort-bar.d.ts +0 -59
  254. /package/{LICENSE.md → LICENSE} +0 -0
@@ -48,7 +48,7 @@ declare class SiFileUploadDirective {
48
48
  *
49
49
  * @defaultValue
50
50
  * ```
51
- * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_TYPE:Incorrect file type selected`)
51
+ * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_TYPE:Invalid file type`)
52
52
  * ```
53
53
  */
54
54
  readonly errorTextFileType: _angular_core.InputSignal<TranslatableString>;
@@ -57,7 +57,7 @@ declare class SiFileUploadDirective {
57
57
  *
58
58
  * @defaultValue
59
59
  * ```
60
- * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED:File exceeds allowed maximum size of {{maxFileSize}}`)
60
+ * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED:Max. {{maxFileSize}}`)
61
61
  * ```
62
62
  */
63
63
  readonly errorTextFileMaxSize: _angular_core.InputSignal<TranslatableString>;
@@ -128,20 +128,11 @@ declare class SiFileUploadDirective {
128
128
 
129
129
  declare class SiFileDropzoneComponent {
130
130
  /**
131
- * Text or translation key of the input file selector (is combined with the `uploadTextRest`).
131
+ * Text or translation key of the drag&drop field.
132
132
  *
133
133
  * @defaultValue
134
134
  * ```
135
- * t(() => $localize`:@@SI_FILE_UPLOADER.FILE_SELECT:click to upload`)
136
- * ```
137
- */
138
- readonly uploadTextFileSelect: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
139
- /**
140
- * Text or translation key of the drag&drop field (is combined with the `uploadTextFileSelect`).
141
- *
142
- * @defaultValue
143
- * ```
144
- * t(() => $localize`:@@SI_FILE_UPLOADER.DROP:Drop files here or`)
135
+ * t(() => $localize`:@@SI_FILE_UPLOADER.DROP:Drop files here or click to upload`)
145
136
  * ```
146
137
  */
147
138
  readonly uploadDropText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -150,7 +141,7 @@ declare class SiFileDropzoneComponent {
150
141
  *
151
142
  * @defaultValue
152
143
  * ```
153
- * t(() => $localize`:@@SI_FILE_UPLOADER.MAX_SIZE:Max. {{maxFileSize}} upload size.`)
144
+ * t(() => $localize`:@@SI_FILE_UPLOADER.MAX_SIZE:Upload max. {{maxFileSize}}`)
154
145
  * ```
155
146
  */
156
147
  readonly maxFileSizeText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -168,7 +159,7 @@ declare class SiFileDropzoneComponent {
168
159
  *
169
160
  * @defaultValue
170
161
  * ```
171
- * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_TYPE:Incorrect file type selected`)
162
+ * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_TYPE:Invalid file type`)
172
163
  * ```
173
164
  */
174
165
  readonly errorTextFileType: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -177,7 +168,7 @@ declare class SiFileDropzoneComponent {
177
168
  *
178
169
  * @defaultValue
179
170
  * ```
180
- * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED:File exceeds allowed maximum size of {{maxFileSize}}`)
171
+ * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED:Max. {{maxFileSize}}`)
181
172
  * ```
182
173
  */
183
174
  readonly errorTextFileMaxSize: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -226,7 +217,7 @@ declare class SiFileDropzoneComponent {
226
217
  */
227
218
  reset(): void;
228
219
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiFileDropzoneComponent, never>;
229
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFileDropzoneComponent, "si-file-dropzone", never, { "uploadTextFileSelect": { "alias": "uploadTextFileSelect"; "required": false; "isSignal": true; }; "uploadDropText": { "alias": "uploadDropText"; "required": false; "isSignal": true; }; "maxFileSizeText": { "alias": "maxFileSizeText"; "required": false; "isSignal": true; }; "acceptText": { "alias": "acceptText"; "required": false; "isSignal": true; }; "errorTextFileType": { "alias": "errorTextFileType"; "required": false; "isSignal": true; }; "errorTextFileMaxSize": { "alias": "errorTextFileMaxSize"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "directoryUpload": { "alias": "directoryUpload"; "required": false; "isSignal": true; }; }, { "filesAdded": "filesAdded"; "fileError": "fileError"; }, never, never, true, never>;
220
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFileDropzoneComponent, "si-file-dropzone", never, { "uploadDropText": { "alias": "uploadDropText"; "required": false; "isSignal": true; }; "maxFileSizeText": { "alias": "maxFileSizeText"; "required": false; "isSignal": true; }; "acceptText": { "alias": "acceptText"; "required": false; "isSignal": true; }; "errorTextFileType": { "alias": "errorTextFileType"; "required": false; "isSignal": true; }; "errorTextFileMaxSize": { "alias": "errorTextFileMaxSize"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "directoryUpload": { "alias": "directoryUpload"; "required": false; "isSignal": true; }; }, { "filesAdded": "filesAdded"; "fileError": "fileError"; }, never, never, true, never>;
230
221
  }
231
222
 
232
223
  /**
@@ -271,21 +262,12 @@ interface ExtUploadFile extends UploadFile {
271
262
  fadeOut?: boolean;
272
263
  }
273
264
  declare class SiFileUploaderComponent {
274
- /**
275
- * Text of the link to open the file select dialog (follows `uploadDropText`).
276
- *
277
- * @defaultValue
278
- * ```
279
- * t(() => $localize`:@@SI_FILE_UPLOADER.FILE_SELECT:click to upload`)
280
- * ```
281
- */
282
- readonly uploadTextFileSelect: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
283
265
  /**
284
266
  * Text instructing a user to drop the files inside the dropzone.
285
267
  *
286
268
  * @defaultValue
287
269
  * ```
288
- * t(() => $localize`:@@SI_FILE_UPLOADER.DROP:Drop files here or`)
270
+ * t(() => $localize`:@@SI_FILE_UPLOADER.DROP:Drop files here or click to upload`)
289
271
  * ```
290
272
  */
291
273
  readonly uploadDropText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -294,7 +276,7 @@ declare class SiFileUploaderComponent {
294
276
  *
295
277
  * @defaultValue
296
278
  * ```
297
- * t(() => $localize`:@@SI_FILE_UPLOADER.MAX_SIZE:Max. {{maxFileSize}} upload size.`)
279
+ * t(() => $localize`:@@SI_FILE_UPLOADER.MAX_SIZE:Upload max. {{maxFileSize}}`)
298
280
  * ```
299
281
  */
300
282
  readonly maxFileSizeText: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -390,7 +372,7 @@ declare class SiFileUploaderComponent {
390
372
  *
391
373
  * @defaultValue
392
374
  * ```
393
- * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_TYPE:Incorrect file type selected`)
375
+ * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_TYPE:Invalid file type`)
394
376
  * ```
395
377
  */
396
378
  readonly errorTextFileType: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -399,7 +381,7 @@ declare class SiFileUploaderComponent {
399
381
  *
400
382
  * @defaultValue
401
383
  * ```
402
- * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED:File exceeds allowed maximum size of {{maxFileSize}}`)
384
+ * t(() => $localize`:@@SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED:Max. {{maxFileSize}}`)
403
385
  * ```
404
386
  */
405
387
  readonly errorTextFileMaxSize: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -516,7 +498,7 @@ declare class SiFileUploaderComponent {
516
498
  private updateStates;
517
499
  private countValid;
518
500
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiFileUploaderComponent, never>;
519
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFileUploaderComponent, "si-file-uploader", never, { "uploadTextFileSelect": { "alias": "uploadTextFileSelect"; "required": false; "isSignal": true; }; "uploadDropText": { "alias": "uploadDropText"; "required": false; "isSignal": true; }; "maxFileSizeText": { "alias": "maxFileSizeText"; "required": false; "isSignal": true; }; "maxFilesReachedText": { "alias": "maxFilesReachedText"; "required": false; "isSignal": true; }; "acceptText": { "alias": "acceptText"; "required": false; "isSignal": true; }; "uploadButtonText": { "alias": "uploadButtonText"; "required": false; "isSignal": true; }; "clearButtonText": { "alias": "clearButtonText"; "required": false; "isSignal": true; }; "uploadingText": { "alias": "uploadingText"; "required": false; "isSignal": true; }; "removeButtonText": { "alias": "removeButtonText"; "required": false; "isSignal": true; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; "isSignal": true; }; "successTextTitle": { "alias": "successTextTitle"; "required": false; "isSignal": true; }; "errorUploadFailed": { "alias": "errorUploadFailed"; "required": false; "isSignal": true; }; "showHttpError": { "alias": "showHttpError"; "required": false; "isSignal": true; }; "errorTextFileType": { "alias": "errorTextFileType"; "required": false; "isSignal": true; }; "errorTextFileMaxSize": { "alias": "errorTextFileMaxSize"; "required": false; "isSignal": true; }; "uploadConfig": { "alias": "uploadConfig"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "maxConcurrentUploads": { "alias": "maxConcurrentUploads"; "required": false; "isSignal": true; }; "retries": { "alias": "retries"; "required": false; "isSignal": true; }; "autoUpload": { "alias": "autoUpload"; "required": false; "isSignal": true; }; "disableUpload": { "alias": "disableUpload"; "required": false; "isSignal": true; }; "directoryUpload": { "alias": "directoryUpload"; "required": false; "isSignal": true; }; }, { "uploadCanceled": "uploadCanceled"; "uploadCompleted": "uploadCompleted"; "filesChanges": "filesChanges"; }, never, never, true, never>;
501
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFileUploaderComponent, "si-file-uploader", never, { "uploadDropText": { "alias": "uploadDropText"; "required": false; "isSignal": true; }; "maxFileSizeText": { "alias": "maxFileSizeText"; "required": false; "isSignal": true; }; "maxFilesReachedText": { "alias": "maxFilesReachedText"; "required": false; "isSignal": true; }; "acceptText": { "alias": "acceptText"; "required": false; "isSignal": true; }; "uploadButtonText": { "alias": "uploadButtonText"; "required": false; "isSignal": true; }; "clearButtonText": { "alias": "clearButtonText"; "required": false; "isSignal": true; }; "uploadingText": { "alias": "uploadingText"; "required": false; "isSignal": true; }; "removeButtonText": { "alias": "removeButtonText"; "required": false; "isSignal": true; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; "isSignal": true; }; "successTextTitle": { "alias": "successTextTitle"; "required": false; "isSignal": true; }; "errorUploadFailed": { "alias": "errorUploadFailed"; "required": false; "isSignal": true; }; "showHttpError": { "alias": "showHttpError"; "required": false; "isSignal": true; }; "errorTextFileType": { "alias": "errorTextFileType"; "required": false; "isSignal": true; }; "errorTextFileMaxSize": { "alias": "errorTextFileMaxSize"; "required": false; "isSignal": true; }; "uploadConfig": { "alias": "uploadConfig"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "maxConcurrentUploads": { "alias": "maxConcurrentUploads"; "required": false; "isSignal": true; }; "retries": { "alias": "retries"; "required": false; "isSignal": true; }; "autoUpload": { "alias": "autoUpload"; "required": false; "isSignal": true; }; "disableUpload": { "alias": "disableUpload"; "required": false; "isSignal": true; }; "directoryUpload": { "alias": "directoryUpload"; "required": false; "isSignal": true; }; }, { "uploadCanceled": "uploadCanceled"; "uploadCompleted": "uploadCompleted"; "filesChanges": "filesChanges"; }, never, never, true, never>;
520
502
  }
521
503
 
522
504
  declare class SiFileUploaderModule {
@@ -85,7 +85,7 @@ declare class SiFilterBarComponent {
85
85
  * Custom text for the collapsed filters.
86
86
  * @defaultValue
87
87
  * ```
88
- * t(() => $localize`:@@SI_FILTER_BAR.COLLAPSED_FILTERS_DESCRIPTION:+ {{count}} filters`)
88
+ * t(() => $localize`:@@SI_FILTER_BAR.COLLAPSED_FILTERS_DESCRIPTION:+ {{count}} criteria`)
89
89
  * ```
90
90
  */
91
91
  readonly collapsedFiltersDescription: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -61,7 +61,7 @@ interface CriterionDefinition {
61
61
  /**
62
62
  * Optional configuration object for the datepicker.
63
63
  */
64
- datepickerConfig?: DatepickerInputConfig;
64
+ datepickerConfig?: Omit<DatepickerInputConfig, 'enableDateRange' | 'enableTwoMonthDateRange'>;
65
65
  /**
66
66
  * Limit criterion options to the predefined ones.
67
67
  */
@@ -261,7 +261,7 @@ declare class SiFilteredSearchComponent implements OnInit, OnChanges {
261
261
  *
262
262
  * @defaultValue
263
263
  * ```
264
- * t(() => $localize`:@@SI_FILTERED_SEARCH.SEARCH:Search`)
264
+ * t(() => $localize`:@@SI_FILTERED_SEARCH.SEARCH:Search…`)
265
265
  * ```
266
266
  */
267
267
  readonly searchLabel: _angular_core.InputSignal<TranslatableString>;
@@ -279,7 +279,7 @@ declare class SiFilteredSearchComponent implements OnInit, OnChanges {
279
279
  *
280
280
  * @defaultValue
281
281
  * ```
282
- * t(() => $localize`:@@SI_FILTERED_SEARCH.SUBMIT_BUTTON:Submit search`)
282
+ * t(() => $localize`:@@SI_FILTERED_SEARCH.SUBMIT_BUTTON:Apply search criteria`)
283
283
  * ```
284
284
  */
285
285
  readonly submitButtonLabel: _angular_core.InputSignal<TranslatableString>;
@@ -289,7 +289,7 @@ declare class SiFilteredSearchComponent implements OnInit, OnChanges {
289
289
  *
290
290
  * @defaultValue
291
291
  * ```
292
- * t(() => $localize`:@@SI_FILTERED_SEARCH.ITEM_COUNT:{{itemCount}} items`)
292
+ * t(() => $localize`:@@SI_FILTERED_SEARCH.ITEM_COUNT:{{itemCount}} selected`)
293
293
  * ```
294
294
  */
295
295
  readonly itemCountText: _angular_core.InputSignal<TranslatableString>;
@@ -1,10 +1,12 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { DoCheck, InjectionToken, Signal, AfterContentInit, AfterContentChecked, OnChanges, OnInit, OnDestroy, ElementRef, SimpleChanges, ModuleWithProviders, Provider } from '@angular/core';
2
+ import { InjectionToken, Signal, AfterContentInit, AfterContentChecked, OnChanges, OnInit, OnDestroy, ElementRef, SimpleChanges, Provider, DoCheck, ModuleWithProviders } from '@angular/core';
3
3
  import * as _angular_forms from '@angular/forms';
4
4
  import { AbstractControl, FormGroup, NgControl, RequiredValidator } from '@angular/forms';
5
5
  import { Breakpoints } from '@siemens/element-ng/resize-observer';
6
6
  import { TranslatableString } from '@siemens/element-translate-ng/translate';
7
7
  import * as _siemens_element_ng_form from '@siemens/element-ng/form';
8
+ import * as _angular_forms_signals from '@angular/forms/signals';
9
+ import { SignalFormsConfig } from '@angular/forms/signals';
8
10
 
9
11
  /**
10
12
  * Copyright (c) Siemens 2016 - 2026
@@ -69,6 +71,43 @@ interface SiFormValidationError {
69
71
  errorCodeTranslationKey?: string;
70
72
  errorParams?: any;
71
73
  }
74
+ /**
75
+ * @deprecated This component should no longer be used.
76
+ *
77
+ * When providing a form wide error mapper, use the {@link provideFormValidationErrorMapper}.
78
+ * ```ts
79
+ * import { provideFormValidationErrorMapper } form '@siemens/element-ng/forms'
80
+ *
81
+ * @Component({
82
+ * template: `<form>...</form>`
83
+ * providers: [provideFormValidationErrorMapper({
84
+ * 'name.required': 'CUSTOM_REQUIRED_ERROR'
85
+ * })]
86
+ * })
87
+ * class MyFormComponent {}
88
+ * ```
89
+ *
90
+ * When using the column layout, use the `form-col-layout` classes.
91
+ *
92
+ * ```html
93
+ * <!-- Responsive column layout -->
94
+ * <form class="responsive-form-col-layout">...</form>
95
+ * <!-- Always column layout -->
96
+ * <form class="form-col-layout">...</form>
97
+ * ```
98
+ *
99
+ * For a custom breakpoint use the SCSS mixin:
100
+ *
101
+ * ```scss
102
+ * @use '@siemens/element-theme/src/styles/bootstrap/mixins/form-layout';
103
+ *
104
+ * // Custom responsive breakpoint
105
+ * .custom-form-col-layout {
106
+ * // Above 400px the column layout is used
107
+ * @include form-layout.responsive-form-col-layout(400px);
108
+ * }
109
+ * ```
110
+ */
72
111
  declare class SiFormContainerComponent<TControl extends {
73
112
  [K in keyof TControl]: AbstractControl;
74
113
  }> {
@@ -202,40 +241,6 @@ declare class SiFormContainerComponent<TControl extends {
202
241
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFormContainerComponent<any>, "si-form-container", never, { "form": { "alias": "form"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "contentContainerBreakpoints": { "alias": "contentContainerBreakpoints"; "required": false; "isSignal": true; }; "disableContainerBreakpoints": { "alias": "disableContainerBreakpoints"; "required": false; "isSignal": true; }; "errorCodeTranslateKeyMap": { "alias": "errorCodeTranslateKeyMap"; "required": false; "isSignal": true; }; "controlNameTranslateKeyMap": { "alias": "controlNameTranslateKeyMap"; "required": false; "isSignal": true; }; "disableErrorPrinting": { "alias": "disableErrorPrinting"; "required": false; "isSignal": true; }; "labelWidth": { "alias": "labelWidth"; "required": false; "isSignal": true; }; }, {}, never, ["[si-form-container-message]", "[si-form-container-buttons]", "[si-form-container-content]"], true, never>;
203
242
  }
204
243
 
205
- declare class SiFormFieldsetComponent implements DoCheck {
206
- private static labelIdCounter;
207
- /** The label for the entire fieldset. */
208
- readonly label: _angular_core.InputSignal<TranslatableString>;
209
- /** Overrides the parent label width. */
210
- readonly labelWidth: _angular_core.InputSignal<string | undefined>;
211
- /**
212
- * Adds a required marker to the label
213
- *
214
- * @defaultValue false
215
- */
216
- readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
217
- /**
218
- * Switches all child inputs to inline mode
219
- *
220
- * @defaultValue false
221
- */
222
- readonly inline: _angular_core.InputSignalWithTransform<boolean, unknown>;
223
- private readonly formItems;
224
- /** @internal */
225
- readonly hasOnlyRadios: _angular_core.Signal<boolean>;
226
- protected readonly errors: _angular_core.Signal<_siemens_element_ng_form.SiFormError[]>;
227
- protected readonly touched: _angular_core.WritableSignal<boolean>;
228
- protected readonly isRequired: _angular_core.Signal<boolean>;
229
- protected readonly labelId: string;
230
- ngDoCheck(): void;
231
- /** @internal */
232
- registerFormItem(item: SiFormItemComponent): void;
233
- /** @internal */
234
- unregisterFormItem(item: SiFormItemComponent): void;
235
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiFormFieldsetComponent, never>;
236
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFormFieldsetComponent, "si-form-fieldset", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "labelWidth": { "alias": "labelWidth"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; }, {}, never, ["[si-help-button]", "*"], true, never>;
237
- }
238
-
239
244
  /**
240
245
  * Copyright (c) Siemens 2016 - 2026
241
246
  * SPDX-License-Identifier: MIT
@@ -276,7 +281,7 @@ interface SiFormError {
276
281
  message?: TranslatableString;
277
282
  params: any;
278
283
  }
279
- declare class SiFormItemComponent implements AfterContentInit, AfterContentChecked, OnChanges, OnInit, OnDestroy {
284
+ declare class SiFormItemComponent implements AfterContentInit, AfterContentChecked, OnChanges, OnInit, OnDestroy, SiFormFieldsetControl {
280
285
  /**
281
286
  * The label to be displayed in the form item.
282
287
  * It will be translated if a translation key is available.
@@ -312,6 +317,8 @@ declare class SiFormItemComponent implements AfterContentInit, AfterContentCheck
312
317
  protected readonly requiredValidator: _angular_core.Signal<RequiredValidator | undefined>;
313
318
  /** @internal */
314
319
  readonly errors: _angular_core.WritableSignal<SiFormError[]>;
320
+ /** @internal */
321
+ readonly touched: _angular_core.WritableSignal<boolean>;
315
322
  protected fieldset: SiFormFieldsetComponent | null;
316
323
  protected container: SiFormContainerComponent<{
317
324
  [x: string]: _angular_forms.AbstractControl<any, any, any>;
@@ -330,6 +337,8 @@ declare class SiFormItemComponent implements AfterContentInit, AfterContentCheck
330
337
  protected readonly printErrors: _angular_core.Signal<boolean>;
331
338
  /** @internal */
332
339
  readonly required: _angular_core.Signal<boolean>;
340
+ /** @internal */
341
+ readonly control: _angular_core.Signal<_angular_forms.AbstractControl<any, any, any> | null | undefined>;
333
342
  ngOnChanges(changes: SimpleChanges<this>): void;
334
343
  ngOnInit(): void;
335
344
  ngAfterContentInit(): void;
@@ -341,6 +350,135 @@ declare class SiFormItemComponent implements AfterContentInit, AfterContentCheck
341
350
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFormItemComponent, "si-form-item", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "labelWidth": { "alias": "labelWidth"; "required": false; "isSignal": true; }; "disableErrorPrinting": { "alias": "disableErrorPrinting"; "required": false; "isSignal": true; }; "formErrorMapper": { "alias": "formErrorMapper"; "required": false; "isSignal": true; }; "requiredInput": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, ["fieldControlQuery", "ngControl", "controlElementRef", "requiredValidator"], ["[si-help-button]", ".warning-feedback, .info-feedback, .invalid-feedback", "*"], true, never>;
342
351
  }
343
352
 
353
+ /**
354
+ * Copyright (c) Siemens 2016 - 2026
355
+ * SPDX-License-Identifier: MIT
356
+ */
357
+
358
+ interface SiFormFieldsetControl {
359
+ readonly control: Signal<unknown>;
360
+ readonly required: Signal<boolean>;
361
+ readonly touched: Signal<boolean>;
362
+ readonly errors: Signal<readonly SiFormError[]>;
363
+ }
364
+
365
+ declare class SiFormFieldsetComponent {
366
+ private static labelIdCounter;
367
+ /** The label for the entire fieldset. */
368
+ readonly label: _angular_core.InputSignal<TranslatableString>;
369
+ /** Overrides the parent label width. */
370
+ readonly labelWidth: _angular_core.InputSignal<string | undefined>;
371
+ /**
372
+ * Adds a required marker to the label
373
+ *
374
+ * @defaultValue false
375
+ */
376
+ readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
377
+ /**
378
+ * Switches all child inputs to inline mode
379
+ *
380
+ * @defaultValue false
381
+ */
382
+ readonly inline: _angular_core.InputSignalWithTransform<boolean, unknown>;
383
+ private readonly formItems;
384
+ /** @internal */
385
+ readonly hasOnlyRadios: _angular_core.Signal<boolean>;
386
+ protected readonly errors: _angular_core.Signal<readonly _siemens_element_ng_form.SiFormError[]>;
387
+ protected readonly touched: _angular_core.Signal<boolean>;
388
+ protected readonly isRequired: _angular_core.Signal<boolean>;
389
+ protected readonly labelId: string;
390
+ /** @internal */
391
+ registerControl(item: SiFormFieldsetControl): void;
392
+ /** @internal */
393
+ unregisterControl(item: SiFormFieldsetControl): void;
394
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiFormFieldsetComponent, never>;
395
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFormFieldsetComponent, "si-form-fieldset", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "labelWidth": { "alias": "labelWidth"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; }, {}, never, ["[si-help-button]", "*"], true, never>;
396
+ }
397
+
398
+ /**
399
+ * Constructs a full form field including error messages, labels and aria-* attributes.
400
+ * It must be used with Angular's signal forms.
401
+ *
402
+ * @example
403
+ * ```html
404
+ * <si-form-field label="Name">
405
+ * <input class="form-control" [formField]="form.name" />
406
+ *
407
+ * <!-- Optional help button -->
408
+ * <button
409
+ * si-help-button
410
+ * type="button"
411
+ * siHelpTitle="Help for name"
412
+ * siHelpContent="The context help description"
413
+ * >More information about the name</button>
414
+ * </si-form-field>
415
+ * ```
416
+ */
417
+ declare class SiFormFieldComponent implements SiFormFieldsetControl {
418
+ private static idCounter;
419
+ /**
420
+ * The label to be displayed in the form field.
421
+ * It will be translated if a translation key is available.
422
+ */
423
+ readonly label: _angular_core.InputSignal<TranslatableString>;
424
+ private readonly formField;
425
+ private readonly fieldControl;
426
+ protected readonly fieldset: SiFormFieldsetComponent | null;
427
+ private readonly validationErrorService;
428
+ private readonly generatedId;
429
+ /** The id of the connected control, used for the label's `for` attribute. */
430
+ protected readonly controlId: _angular_core.Signal<string>;
431
+ protected readonly errormessageId: _angular_core.Signal<string>;
432
+ protected readonly labelledby: _angular_core.Signal<string | null | undefined>;
433
+ /** Whether the connected control is a form-check (checkbox, radio or switch). */
434
+ protected readonly isFormCheck: _angular_core.Signal<boolean>;
435
+ private readonly fieldState;
436
+ /** @internal */
437
+ readonly control: _angular_core.Signal<_angular_forms_signals.FieldTree<unknown, string | number, "writable">>;
438
+ /** @internal */
439
+ readonly required: _angular_core.Signal<boolean>;
440
+ /** @internal */
441
+ readonly showRequired: _angular_core.Signal<boolean>;
442
+ private readonly invalid;
443
+ /** @internal */
444
+ readonly touched: _angular_core.Signal<boolean>;
445
+ protected readonly isPartOfRadioGroup: _angular_core.Signal<boolean>;
446
+ /** @internal */
447
+ readonly errors: _angular_core.Signal<_siemens_element_ng_form.SiFormError[]>;
448
+ constructor();
449
+ private syncControlId;
450
+ /** Associates the error messages with the projected control for assistive technologies. */
451
+ private syncErrorDescription;
452
+ /**
453
+ * Reflects the validation state onto the projected control via `aria-invalid`. This is needed
454
+ * because signal forms does not set `aria-invalid`, and the native `:user-invalid` pseudo-class
455
+ * ignores `markAsTouched()`. The matching `.ng-invalid`/`.ng-touched` classes that drive the
456
+ * styling are added by signal forms itself, see `provideSiFormFieldConfig()`.
457
+ */
458
+ private syncInvalidState;
459
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiFormFieldComponent, never>;
460
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiFormFieldComponent, "si-form-field", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, ["formField", "fieldControl"], ["*", "[si-help-button]"], true, never>;
461
+ }
462
+
463
+ /**
464
+ * Copyright (c) Siemens 2016 - 2026
465
+ * SPDX-License-Identifier: MIT
466
+ */
467
+
468
+ /**
469
+ * Provides the signal forms configuration required by {@link SiFormFieldComponent}.
470
+ *
471
+ * It restores the `ng-*` classes applied by the directives of {@link @angular/forms#FormsModule | FormsModule} / {@link @angular/forms#ReactiveFormsModule | ReactiveFormsModule}.
472
+ *
473
+ * @example
474
+ * ```ts
475
+ * bootstrapApplication(AppComponent, {
476
+ * providers: [provideSiFormFieldConfig()]
477
+ * });
478
+ * ```
479
+ */
480
+ declare const provideSiFormFieldConfig: (config?: SignalFormsConfig) => Provider[];
481
+
344
482
  /**
345
483
  * Directive to show a tooltip with validation errors of a form control.
346
484
  *
@@ -353,7 +491,7 @@ declare class SiFormItemComponent implements AfterContentInit, AfterContentCheck
353
491
  * <input siFormValidationTooltip [formControl]="control" />
354
492
  * ```
355
493
  */
356
- declare class SiFormValidationTooltipDirective implements OnDestroy, DoCheck {
494
+ declare class SiFormValidationTooltipDirective implements DoCheck {
357
495
  private static idCounter;
358
496
  private tooltipService;
359
497
  private formValidationService;
@@ -361,16 +499,14 @@ declare class SiFormValidationTooltipDirective implements OnDestroy, DoCheck {
361
499
  readonly formErrorMapper: _angular_core.InputSignal<SiFormValidationErrorMapper | undefined>;
362
500
  private ngControl;
363
501
  private elementRef;
364
- private tooltipRef?;
502
+ protected readonly describedBy: string;
365
503
  private readonly errors;
504
+ private readonly touched;
505
+ private readonly canShowTooltip;
366
506
  private currentErrors;
367
- private touched;
368
- protected readonly describedBy: string;
507
+ constructor();
369
508
  ngDoCheck(): void;
370
- ngOnDestroy(): void;
371
509
  private updateErrors;
372
- private createTooltip;
373
- private destroyTooltip;
374
510
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiFormValidationTooltipDirective, never>;
375
511
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiFormValidationTooltipDirective, "[siFormValidationTooltip]", never, { "formErrorMapper": { "alias": "formErrorMapper"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
376
512
  }
@@ -406,5 +542,5 @@ declare class SiFormModule {
406
542
  */
407
543
  declare const provideFormValidationErrorMapper: (mapper: SiFormValidationErrorMapper) => Provider;
408
544
 
409
- export { SI_FORM_ITEM_CONTROL, SiFormContainerComponent, SiFormFieldsetComponent, SiFormItemComponent, SiFormModule, SiFormValidationTooltipDirective, provideFormValidationErrorMapper };
545
+ export { SI_FORM_ITEM_CONTROL, SiFormContainerComponent, SiFormFieldComponent, SiFormFieldsetComponent, SiFormItemComponent, SiFormModule, SiFormValidationTooltipDirective, provideFormValidationErrorMapper, provideSiFormFieldConfig };
410
546
  export type { SiFormError, SiFormItemControl, SiFormValidationError, SiFormValidationErrorMapper };
@@ -0,0 +1,40 @@
1
+ import { SiFormlyComponent as SiFormlyComponent$1 } from '@siemens/element-ng/formly';
2
+ export { SiFormlyTranslateExtension, dynamicUiConfig } from '@siemens/element-ng/formly';
3
+ import * as i5 from '@angular/forms';
4
+ import { AbstractControl } from '@angular/forms';
5
+ import * as i0 from '@angular/core';
6
+ import { ModuleWithProviders } from '@angular/core';
7
+ import * as i4 from '@ngx-formly/core';
8
+ import { ConfigOption } from '@ngx-formly/core';
9
+ import * as i2 from '@angular/common';
10
+ import * as i3 from '@ngx-formly/bootstrap';
11
+ import * as i6 from '@siemens/element-ng/form';
12
+
13
+ /**
14
+ * @deprecated This component is based on Angular Formly v6 and will be removed in
15
+ * a future release. Migrate to the standalone `SiFormlyComponent` from
16
+ * `@siemens/element-ng/formly` (Formly v7.1) instead.
17
+ */
18
+ declare class SiFormlyComponent<TControl extends {
19
+ [K in keyof TControl]: AbstractControl;
20
+ }> extends SiFormlyComponent$1<TControl> {
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyComponent<any>, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<SiFormlyComponent<any>, "si-formly", never, {}, {}, never, never, false, never>;
23
+ }
24
+
25
+ /**
26
+ * @deprecated This module is based on Angular Formly v6 and will be removed in a
27
+ * future release. Migrate to the standalone `SiFormlyComponent` from
28
+ * `@siemens/element-ng/formly` (Formly v7.1) instead.
29
+ */
30
+ declare class SiFormlyModule {
31
+ private config;
32
+ private configs;
33
+ static forRoot(formlyConfig?: ConfigOption): ModuleWithProviders<SiFormlyModule>;
34
+ constructor();
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<SiFormlyModule, never>;
36
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SiFormlyModule, [typeof SiFormlyComponent], [typeof i2.CommonModule, typeof i3.FormlyBootstrapModule, typeof i4.FormlyModule, typeof i5.ReactiveFormsModule, typeof i6.SiFormModule], [typeof SiFormlyComponent]>;
37
+ static ɵinj: i0.ɵɵInjectorDeclaration<SiFormlyModule>;
38
+ }
39
+
40
+ export { SiFormlyComponent, SiFormlyModule };