@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
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Copyright (c) Siemens 2016 - 2026
3
+ * SPDX-License-Identifier: MIT
4
+ */
5
+ import { Element } from '@angular/compiler';
6
+ import { dirname, join } from 'path/posix';
7
+ import ts from 'typescript';
8
+ import { discoverSourceFiles, findElement, getInlineTemplates, getTemplateUrl } from '../utils/index.js';
9
+ export const splitSizesMigrationRule = (options) => {
10
+ return async (tree, context) => {
11
+ const processedTemplates = new Set();
12
+ for await (const discoveredSourceFile of discoverSourceFiles(tree, context, options.path)) {
13
+ const { path: filePath, sourceFile } = discoveredSourceFile;
14
+ const recorder = tree.beginUpdate(filePath);
15
+ for (const template of getInlineTemplates(sourceFile)) {
16
+ const templateText = sourceFile.text.substring(template.getStart() + 1, template.getEnd() - 1);
17
+ migrateSplitSizes(templateText, template.getStart() + 1, recorder);
18
+ migrateMissingSplitUnit(templateText, template.getStart() + 1, recorder);
19
+ }
20
+ tree.commitUpdate(recorder);
21
+ for (const templateUrl of getTemplateUrl(sourceFile)) {
22
+ const templatePath = join(dirname(filePath), templateUrl);
23
+ if (processedTemplates.has(templatePath) || !tree.exists(templatePath)) {
24
+ continue;
25
+ }
26
+ processedTemplates.add(templatePath);
27
+ const templateContent = tree.read(templatePath).toString('utf-8');
28
+ const templateRecorder = tree.beginUpdate(templatePath);
29
+ migrateSplitSizes(templateContent, 0, templateRecorder);
30
+ migrateMissingSplitUnit(templateContent, 0, templateRecorder);
31
+ tree.commitUpdate(templateRecorder);
32
+ }
33
+ }
34
+ return tree;
35
+ };
36
+ };
37
+ const migrateSplitSizes = (template, offset, recorder) => {
38
+ findElement(template, element => element.name === 'si-split').forEach(split => {
39
+ const sizes = split.attrs.find(attribute => attribute.name === '[sizes]');
40
+ if (!sizes) {
41
+ return;
42
+ }
43
+ const parts = split.children.filter((child) => child instanceof Element && child.name === 'si-split-part');
44
+ const literalSizes = getNumericArrayLiteral(sizes.value);
45
+ parts.forEach((part, index) => {
46
+ if (part.attrs.some(attribute => attribute.name === 'size' || attribute.name === '[size]')) {
47
+ return;
48
+ }
49
+ const sizeAttribute = literalSizes
50
+ ? ` size="${literalSizes[index]}" unit="fr"`
51
+ : ` [size]="${getIndexedSizeExpression(sizes.value, index)}" unit="fr"`;
52
+ const startTag = part.startSourceSpan.toString();
53
+ const insertOffset = part.startSourceSpan.end.offset - (startTag.endsWith('/>') ? 2 : 1);
54
+ recorder.insertLeft(insertOffset + offset, sizeAttribute);
55
+ });
56
+ const precedingCharacter = template[sizes.sourceSpan.start.offset - 1];
57
+ const removeOffset = sizes.sourceSpan.start.offset - (precedingCharacter === ' ' ? 1 : 0);
58
+ const removeLength = sizes.sourceSpan.end.offset - removeOffset;
59
+ recorder.remove(removeOffset + offset, removeLength);
60
+ });
61
+ };
62
+ const getNumericArrayLiteral = (value) => {
63
+ const sourceFile = ts.createSourceFile('sizes.ts', `const sizes = ${value};`, ts.ScriptTarget.Latest, true);
64
+ const declaration = sourceFile.statements[0];
65
+ if (!declaration || !ts.isVariableStatement(declaration)) {
66
+ return undefined;
67
+ }
68
+ const initializer = declaration.declarationList.declarations[0]?.initializer;
69
+ if (!initializer || !ts.isArrayLiteralExpression(initializer)) {
70
+ return undefined;
71
+ }
72
+ const sizes = initializer.elements.map(element => {
73
+ if (ts.isNumericLiteral(element)) {
74
+ return element.text;
75
+ }
76
+ if (ts.isPrefixUnaryExpression(element) &&
77
+ element.operator === ts.SyntaxKind.MinusToken &&
78
+ ts.isNumericLiteral(element.operand)) {
79
+ return `-${element.operand.text}`;
80
+ }
81
+ return undefined;
82
+ });
83
+ return sizes.every((size) => size !== undefined) ? sizes : undefined;
84
+ };
85
+ const getIndexedSizeExpression = (expression, index) => {
86
+ const isPropertyAccess = /^[A-Za-z_$][\w$]*(?:\??\.[A-Za-z_$][\w$]*)*$/.test(expression);
87
+ return `${isPropertyAccess ? expression : `(${expression})`}[${index}]`;
88
+ };
89
+ /**
90
+ * Adds `unit="px"` to every `si-split-part` that already carries an explicit
91
+ * `size` / `[size]` attribute but no `unit` / `[unit]` attribute. Parts that
92
+ * lack a size attribute are handled by {@link migrateSplitSizes} instead.
93
+ */
94
+ const migrateMissingSplitUnit = (template, offset, recorder) => {
95
+ findElement(template, element => element.name === 'si-split-part').forEach(part => {
96
+ const hasSize = part.attrs.some(a => a.name === 'size' || a.name === '[size]');
97
+ const hasUnit = part.attrs.some(a => a.name === 'unit' || a.name === '[unit]');
98
+ if (!hasSize || hasUnit) {
99
+ return;
100
+ }
101
+ const startTag = part.startSourceSpan.toString();
102
+ const insertOffset = part.startSourceSpan.end.offset - (startTag.endsWith('/>') ? 2 : 1);
103
+ recorder.insertLeft(insertOffset + offset, ' unit="px"');
104
+ });
105
+ };
@@ -7,15 +7,17 @@ import { getElementMigrationData } from '../migrations/data/index.js';
7
7
  import { elementMigrationRule } from '../migrations/element-migration/element-migration.js';
8
8
  import { iconPathMigrationRule } from '../migrations/icon-path-migration/index.js';
9
9
  import { missingTranslateMigrationRule } from '../migrations/ngx-translate/index.js';
10
- export const migrateToV49 = () => {
10
+ import { splitSizesMigrationRule } from './migrate-split-sizes.js';
11
+ export const migrateToV51 = () => {
11
12
  return (tree, context) => {
12
- context.logger.info('🚀 Starting update from version 48 to 49...');
13
+ context.logger.info('🚀 Starting update from version 49 to 51...');
13
14
  const migrationData = getElementMigrationData();
14
15
  const options = { path: '/' };
15
16
  return chain([
16
17
  elementMigrationRule(options, migrationData),
17
18
  missingTranslateMigrationRule(options),
18
- iconPathMigrationRule(options)
19
+ iconPathMigrationRule(options),
20
+ splitSizesMigrationRule(options)
19
21
  ])(tree, context);
20
22
  };
21
23
  };
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "SI_ABOUT.LOGO_ALT": "{{appName}} logo",
3
- "SI_AI_MESSAGE.SECONDARY_ACTIONS": "More actions",
3
+ "SI_AI_MESSAGE.SECONDARY_ACTIONS": "Additional actions",
4
4
  "SI_ALERT_DIALOG.OK": "OK",
5
5
  "SI_APPLICATION_HEADER.LAUNCHPAD": "Launchpad",
6
- "SI_APPLICATION_HEADER.TOGGLE_ACTIONS": "Toggle actions",
7
- "SI_APPLICATION_HEADER.TOGGLE_NAVIGATION": "Toggle navigation",
8
- "SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT": "Remove attachment",
9
- "SI_BREADCRUMB": "Breadcrumbs",
6
+ "SI_APPLICATION_HEADER.TOGGLE_ACTIONS": "Show actions",
7
+ "SI_APPLICATION_HEADER.TOGGLE_NAVIGATION": "Show navigation",
8
+ "SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT": "Remove {{attachment}}",
9
+ "SI_BREADCRUMB": "Breadcrumb navigation",
10
10
  "SI_BREADCRUMB_ROUTER_LABEL": "breadcrumb",
11
11
  "SI_CAROUSEL.NEXT": "Next slide",
12
12
  "SI_CAROUSEL.PAUSE": "Pause",
@@ -17,16 +17,16 @@
17
17
  "SI_CAROUSEL.SLIDE_ROLE_DESCRIPTION": "Slide",
18
18
  "SI_CHANGE_PASSWORD.BACK": "Back",
19
19
  "SI_CHANGE_PASSWORD.CHANGE": "Change",
20
- "SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD": "Factory set password must be changed",
20
+ "SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD": "Default password must be changed",
21
21
  "SI_CHANGE_PASSWORD.CHANGE_PASSWORD": "Change password",
22
22
  "SI_CHANGE_PASSWORD.CONFIRM_PASSWORD": "Confirm password",
23
23
  "SI_CHANGE_PASSWORD.NEW_PASSWORD": "New password",
24
24
  "SI_CHANGE_PASSWORD.PASSWORD_POLICY": "Password policy",
25
25
  "SI_CHAT_INPUT.ATTACH_FILE": "Attach file",
26
- "SI_CHAT_INPUT.INTERRUPT": "Interrupt",
27
- "SI_CHAT_INPUT.LABEL": "Chat message input",
26
+ "SI_CHAT_INPUT.INTERRUPT": "Stop processing",
27
+ "SI_CHAT_INPUT.LABEL": "Chat input",
28
28
  "SI_CHAT_INPUT.PLACEHOLDER": "Enter a message…",
29
- "SI_CHAT_INPUT.SECONDARY_ACTIONS": "More actions",
29
+ "SI_CHAT_INPUT.SECONDARY_ACTIONS": "Additional actions",
30
30
  "SI_CHAT_INPUT.SEND": "Send",
31
31
  "SI_COLOR_PICKER.SELECTED_LABEL": "Selected color {{color}}",
32
32
  "SI_COLUMN_SELECTION_DIALOG.CANCEL": "Cancel",
@@ -40,16 +40,16 @@
40
40
  "SI_COLUMN_SELECTION_DIALOG.VISIBLE": "Visible",
41
41
  "SI_CONFIRMATION_DIALOG.NO": "No",
42
42
  "SI_CONFIRMATION_DIALOG.YES": "Yes",
43
- "SI_CONTENT_ACTION_BAR.TOGGLE": "Toggle",
43
+ "SI_CONTENT_ACTION_BAR.TOGGLE": "Show actions",
44
44
  "SI_DASHBOARD.EXPAND": "Expand",
45
- "SI_DASHBOARD.EXPAND_WIDGET_ACTIONS": "Expand actions",
45
+ "SI_DASHBOARD.EXPAND_WIDGET_ACTIONS": "Show actions",
46
46
  "SI_DASHBOARD.RESTORE": "Restore",
47
47
  "SI_DATEPICKER.CALENDAR_TOGGLE_BUTTON": "Open calendar",
48
48
  "SI_DATEPICKER.CALENDAR_WEEK_LABEL": "Calendar week",
49
49
  "SI_DATEPICKER.DISABLED_TIME_TEXT": "Ignore time",
50
50
  "SI_DATEPICKER.ENABLED_TIME_TEXT": "Consider time",
51
51
  "SI_DATEPICKER.END_DATE_PLACEHOLDER": "End date",
52
- "SI_DATEPICKER.END_TIME_LABEL": "to",
52
+ "SI_DATEPICKER.END_TIME_LABEL": "To",
53
53
  "SI_DATEPICKER.HOURS": "Hours",
54
54
  "SI_DATEPICKER.MILLISECONDS": "Milliseconds",
55
55
  "SI_DATEPICKER.MINUTES": "Minutes",
@@ -58,7 +58,7 @@
58
58
  "SI_DATEPICKER.PREVIOUS": "Previous",
59
59
  "SI_DATEPICKER.SECONDS": "Seconds",
60
60
  "SI_DATEPICKER.START_DATE_PLACEHOLDER": "Start date",
61
- "SI_DATEPICKER.START_TIME_LABEL": "from",
61
+ "SI_DATEPICKER.START_TIME_LABEL": "From",
62
62
  "SI_DATEPICKER.TODAY": "Today",
63
63
  "SI_DATE_RANGE_FILTER.ADVANCED": "Advanced",
64
64
  "SI_DATE_RANGE_FILTER.AFTER": "After",
@@ -91,35 +91,34 @@
91
91
  "SI_DELETE_CONFIRMATION_DIALOG.MESSAGE": "Do you really want to delete the selected elements?",
92
92
  "SI_EDIT_DISCARD_DIALOG.CANCEL_BTN": "Cancel",
93
93
  "SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_DISCARD_BTN": "Discard",
94
- "SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE": "Do you want to discard the changes",
94
+ "SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE": "Discard changes?",
95
95
  "SI_EDIT_DISCARD_DIALOG.DISCARD_BTN": "Discard",
96
- "SI_EDIT_DISCARD_DIALOG.MESSAGE": "Do you want to save changes to the modified element?",
96
+ "SI_EDIT_DISCARD_DIALOG.MESSAGE": "Save changes?",
97
97
  "SI_EDIT_DISCARD_DIALOG.SAVE_BTN": "Save",
98
98
  "SI_ELECTRON_TITLEBAR.BACK": "Back",
99
99
  "SI_ELECTRON_TITLEBAR.FORWARD": "Forward",
100
- "SI_ELECTRON_TITLEBAR.MENU": "Menu",
100
+ "SI_ELECTRON_TITLEBAR.MENU": "Show actions",
101
101
  "SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT": "Accept",
102
102
  "SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK": "Back",
103
103
  "SI_FILE_UPLOADER.ACCEPTED_FILE_TYPES": "Accepted file types: {{accept}}.",
104
104
  "SI_FILE_UPLOADER.CANCEL": "Cancel",
105
105
  "SI_FILE_UPLOADER.CLEAR": "Clear",
106
- "SI_FILE_UPLOADER.DROP": "Drop files here or",
107
- "SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED": "File exceeds allowed maximum size of {{maxFileSize}}",
108
- "SI_FILE_UPLOADER.ERROR_FILE_TYPE": "Incorrect file type selected",
109
- "SI_FILE_UPLOADER.FILE_SELECT": "click to upload",
106
+ "SI_FILE_UPLOADER.DROP": "Drop files here or click to upload",
107
+ "SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED": "Max. {{maxFileSize}}",
108
+ "SI_FILE_UPLOADER.ERROR_FILE_TYPE": "Invalid file type",
110
109
  "SI_FILE_UPLOADER.MAX_FILE_REACHED": "Max. {{maxFiles}} files",
111
- "SI_FILE_UPLOADER.MAX_SIZE": "Max. {{maxFileSize}} upload size.",
110
+ "SI_FILE_UPLOADER.MAX_SIZE": "Upload max. {{maxFileSize}}",
112
111
  "SI_FILE_UPLOADER.REMOVE": "Remove",
113
112
  "SI_FILE_UPLOADER.UPLOAD": "Upload",
114
113
  "SI_FILE_UPLOADER.UPLOADING": "Uploading",
115
114
  "SI_FILE_UPLOADER.UPLOAD_COMPLETED": "Upload completed",
116
115
  "SI_FILE_UPLOADER.UPLOAD_FAILED": "Upload failed",
117
116
  "SI_FILTERED_SEARCH.CLEAR": "Clear",
118
- "SI_FILTERED_SEARCH.ITEM_COUNT": "{{itemCount}} items",
119
- "SI_FILTERED_SEARCH.SEARCH": "Search",
117
+ "SI_FILTERED_SEARCH.ITEM_COUNT": "{{itemCount}} selected",
118
+ "SI_FILTERED_SEARCH.SEARCH": "Search…",
120
119
  "SI_FILTERED_SEARCH.SEARCH_FOR_FREE_TEXT": "Search for \"{{query}}\"",
121
- "SI_FILTERED_SEARCH.SUBMIT_BUTTON": "Submit search",
122
- "SI_FILTER_BAR.COLLAPSED_FILTERS_DESCRIPTION": "+ {{count}} filters",
120
+ "SI_FILTERED_SEARCH.SUBMIT_BUTTON": "Apply search criteria",
121
+ "SI_FILTER_BAR.COLLAPSED_FILTERS_DESCRIPTION": "+ {{count}} criteria",
123
122
  "SI_FILTER_BAR.NO_FILTERS": "No filters applied",
124
123
  "SI_FILTER_BAR.RESET_FILTERS": "Reset filters",
125
124
  "SI_FORM_CONTAINER.ERROR.DATE_FORMAT": "Invalid date",
@@ -142,7 +141,7 @@
142
141
  "SI_FORM_CONTAINER.ERROR.MIN_LENGTH": "Min. {{requiredLength}} characters",
143
142
  "SI_FORM_CONTAINER.ERROR.MIN_TIME": "Time from {{minString}} required",
144
143
  "SI_FORM_CONTAINER.ERROR.NUMBER_FORMAT": "Number required",
145
- "SI_FORM_CONTAINER.ERROR.PATTERN": "The value does not match the predefined pattern.",
144
+ "SI_FORM_CONTAINER.ERROR.PATTERN": "Required value format not fulfilled",
146
145
  "SI_FORM_CONTAINER.ERROR.PHONE_COUNTRY": "Unsupported country/region code",
147
146
  "SI_FORM_CONTAINER.ERROR.RANGE_AFTER_MAX_DATE": "Period up to and including {{maxString}} required",
148
147
  "SI_FORM_CONTAINER.ERROR.RANGE_BEFORE_MIN_DATE": "Period from {{minString}} required",
@@ -161,31 +160,31 @@
161
160
  "SI_LANGUAGE_SWITCHER.LABEL": "Language switcher",
162
161
  "SI_LAUNCHPAD.CLOSE": "Close launchpad",
163
162
  "SI_LAUNCHPAD.DEFAULT_CATEGORY_TITLE": "Apps",
164
- "SI_LAUNCHPAD.EXTERNAL_LINK": "External application",
163
+ "SI_LAUNCHPAD.EXTERNAL_LINK": "Open in new tab",
165
164
  "SI_LAUNCHPAD.FAVORITE_APPS": "Favorites",
166
165
  "SI_LAUNCHPAD.SHOW_LESS": "Show less",
167
166
  "SI_LAUNCHPAD.SHOW_MORE": "Show more",
168
167
  "SI_LAUNCHPAD.SUB_TITLE": "Access all your apps",
169
- "SI_LAUNCHPAD.TITLE": "Switch applications",
168
+ "SI_LAUNCHPAD.TITLE": "Switch app",
170
169
  "SI_LIST_DETAILS.BACK": "Back",
171
- "SI_LIST_WIDGET.SEARCH_PLACEHOLDER": "Search...",
170
+ "SI_LIST_WIDGET.SEARCH_PLACEHOLDER": "Search…",
172
171
  "SI_LIST_WIDGET.SORT_ASCENDING": "Sort ascending",
173
172
  "SI_LIST_WIDGET.SORT_DESCENDING": "Sort descending",
174
173
  "SI_LOADING_SPINNER.LABEL": "Loading",
175
174
  "SI_LOGIN_BASIC.BACK": "Back",
176
175
  "SI_LOGIN_BASIC.FORGOT_PASSWORD": "Forgot password",
177
- "SI_LOGIN_BASIC.LOGIN": "Login",
176
+ "SI_LOGIN_BASIC.LOGIN": "Log in",
178
177
  "SI_LOGIN_BASIC.NEXT": "Next",
179
178
  "SI_LOGIN_BASIC.PASSWORD": "Password",
180
179
  "SI_LOGIN_BASIC.REGISTER_NOW": "Register now",
181
180
  "SI_LOGIN_BASIC.USERNAME": "Username",
182
181
  "SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP": "Login / Sign un",
183
182
  "SI_MAIN_DETAIL_CONTAINER.BACK": "Back",
184
- "SI_NAVBAR.OPEN_LAUNCHPAD": "Open launchpad",
185
- "SI_NAVBAR.TOGGLE_NAVIGATION": "Toggle navigation",
183
+ "SI_NAVBAR.OPEN_LAUNCHPAD": "Switch app",
184
+ "SI_NAVBAR.TOGGLE_NAVIGATION": "Show navigation",
186
185
  "SI_NAVBAR_VERTICAL.COLLAPSE": "Collapse",
187
186
  "SI_NAVBAR_VERTICAL.EXPAND": "Expand",
188
- "SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER": "Search ...",
187
+ "SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER": "Search…",
189
188
  "SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL": "Main content",
190
189
  "SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL": "Navigation",
191
190
  "SI_NAVBAR_VERTICAL.TOGGLE": "Toggle",
@@ -201,33 +200,32 @@
201
200
  "SI_PHOTO_UPLOAD.APPLY_PHOTO": "Apply",
202
201
  "SI_PHOTO_UPLOAD.CANCEL": "Cancel",
203
202
  "SI_PHOTO_UPLOAD.CHANGE_PHOTO": "Change",
204
- "SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL": "Crop photo",
205
- "SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED": "The actual file size {{mb}} MB exceeds the {{maxSizeMb}} MB limit.",
203
+ "SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL": "Crop picture",
204
+ "SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED": "Current file size of {{mb}} MB exceeds file size of max. {{maxSizeMb}} MB",
206
205
  "SI_PHOTO_UPLOAD.ERROR_FILE_TYPE": "The image file is not valid. Please upload a PNG or JP(E)G.",
207
- "SI_PHOTO_UPLOAD.MODAL_TITLE": "Avatar photo",
206
+ "SI_PHOTO_UPLOAD.MODAL_TITLE": "Profile picture",
208
207
  "SI_PHOTO_UPLOAD.REMOVE": "Remove",
209
- "SI_PHOTO_UPLOAD.UPLOAD_PHOTO": "Upload photo",
208
+ "SI_PHOTO_UPLOAD.UPLOAD_PHOTO": "Upload picture",
210
209
  "SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL": "Create item",
211
210
  "SI_PROGRESSBAR.LABEL": "Progress",
212
- "SI_SEARCH_BAR.CLEAR_BUTTON": "clear",
211
+ "SI_SEARCH_BAR.CLEAR_BUTTON": "Clear",
213
212
  "SI_SELECT.NO-RESULTS-FOUND": "No results found",
214
- "SI_SELECT.SEARCH-PLACEHOLDER": "Search...",
213
+ "SI_SELECT.SEARCH-PLACEHOLDER": "Search…",
215
214
  "SI_SIDE_PANEL.CLOSE": "Close",
216
- "SI_SIDE_PANEL.ENTER_FULLSCREEN": "Enter fullscreen",
217
- "SI_SIDE_PANEL.EXIT_FULLSCREEN": "Exit fullscreen",
218
- "SI_SIDE_PANEL.SEARCH_PLACEHOLDER": "Search...",
215
+ "SI_SIDE_PANEL.ENTER_FULLSCREEN": "Full screen",
216
+ "SI_SIDE_PANEL.EXIT_FULLSCREEN": "Exit full screen",
217
+ "SI_SIDE_PANEL.SEARCH_PLACEHOLDER": "Search…",
219
218
  "SI_SIDE_PANEL.TOGGLE": "Toggle",
220
219
  "SI_SKIP_LINKS.JUMP_TO": "Jump to {{link}}",
221
220
  "SI_SLIDER.DECREMENT": "Decrement",
222
221
  "SI_SLIDER.INCREMENT": "Increment",
223
222
  "SI_SLIDER.LABEL": "Value",
224
- "SI_SORT_BAR.TITLE": "Sort by",
223
+ "SI_SPLIT.COLLAPSE_LABEL": "Collapse",
225
224
  "SI_STATUS_BAR.ALL_OK": "All OK",
226
- "SI_STATUS_BAR.COLLAPSE": "Collapse",
227
- "SI_STATUS_BAR.EXPAND": "Expand",
228
225
  "SI_STATUS_BAR.MUTE": "Mute/unmute",
226
+ "SI_STATUS_BAR.TOGGLE": "Toggle",
229
227
  "SI_THRESHOLD.ADD": "Add step",
230
- "SI_THRESHOLD.DELETE": "Delete step",
228
+ "SI_THRESHOLD.DELETE": "Remove step",
231
229
  "SI_THRESHOLD.INPUT_LABEL": "Threshold value",
232
230
  "SI_THRESHOLD.STATUS": "Status",
233
231
  "SI_TOAST.CLOSE": "Close",
@@ -240,7 +238,7 @@
240
238
  "SI_TREE_VIEW.COLLAPSE_ALL": "Collapse all",
241
239
  "SI_TREE_VIEW.EXPAND_ALL": "Expand all",
242
240
  "SI_TYPEAHEAD.AUTOCOMPLETE_LIST_LABEL": "Suggestions",
243
- "SI_USER_MESSAGE.SECONDARY_ACTIONS": "More actions",
241
+ "SI_USER_MESSAGE.SECONDARY_ACTIONS": "Additional actions",
244
242
  "SI_WEATHER_WIDGET.FORECAST_LABEL": "Weather forecast",
245
243
  "SI_WEATHER_WIDGET.ILLUSTRATION_ALT": "Weather illustration",
246
244
  "SI_WEATHER_WIDGET.METRICS_LABEL": "Additional weather data",
@@ -95,7 +95,7 @@ declare class SiHeaderCollapsibleActionsComponent implements OnDestroy {
95
95
  *
96
96
  * @defaultValue
97
97
  * ```
98
- * t(() => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_ACTIONS:Toggle actions`)
98
+ * t(() => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_ACTIONS:Show actions`)
99
99
  * ```
100
100
  */
101
101
  readonly mobileToggleLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -125,10 +125,10 @@ declare class SiHeaderCollapsibleActionsComponent implements OnDestroy {
125
125
 
126
126
  declare abstract class SiHeaderActionItemBase implements OnInit {
127
127
  /** @internal */
128
- dropdownTrigger: SiHeaderDropdownTriggerDirective | null;
129
- protected collapsibleActions: SiHeaderCollapsibleActionsComponent | null;
128
+ readonly dropdownTrigger: SiHeaderDropdownTriggerDirective | null;
129
+ protected readonly collapsibleActions: SiHeaderCollapsibleActionsComponent | null;
130
130
  protected readonly icons: Record<"elementDown2", string>;
131
- private header;
131
+ private readonly header;
132
132
  ngOnInit(): void;
133
133
  protected click(): void;
134
134
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiHeaderActionItemBase, never>;
@@ -139,7 +139,7 @@ declare abstract class SiHeaderActionItemBase implements OnInit {
139
139
  * Base for icon based actions.
140
140
  * @internal
141
141
  */
142
- declare abstract class SiHeaderActionIconItemBase extends SiHeaderActionItemBase implements OnChanges, OnInit {
142
+ declare abstract class SiHeaderActionIconItemBase extends SiHeaderActionItemBase implements OnChanges {
143
143
  /**
144
144
  * Adds a badge to the header item.
145
145
  * If type
@@ -151,10 +151,10 @@ declare abstract class SiHeaderActionIconItemBase extends SiHeaderActionItemBase
151
151
  private readonly tooltipService;
152
152
  private readonly elementRef;
153
153
  private readonly existingTooltip;
154
+ private readonly canShowTooltip;
154
155
  protected readonly badgeDot: Signal<boolean>;
155
156
  protected readonly badgeValue: Signal<string | undefined>;
156
157
  constructor();
157
- private setupTooltip;
158
158
  ngOnChanges(changes: SimpleChanges<this>): void;
159
159
  protected readonly visuallyHideTitle: Signal<boolean>;
160
160
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiHeaderActionIconItemBase, never>;
@@ -205,26 +205,6 @@ declare class SiHeaderLogoDirective implements OnInit {
205
205
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiHeaderLogoDirective, "si-header-logo, [siHeaderLogo]", never, {}, {}, never, never, true, never>;
206
206
  }
207
207
 
208
- /**
209
- * The siemens logo.
210
- * Should be located inside `.header-brand`.
211
- *
212
- * @deprecated Use the {@link SiHeaderLogoDirective} instead.
213
- * The new component will use the logo provided by the global theme instead
214
- * of containing a hard coded siemens logo.
215
- * ```html
216
- * // previous
217
- * <a si-header-siemens-logo routerLink="/" aria-label="Siemens" class="d-none d-md-flex"></a>
218
- * // new
219
- * <a siHeaderLogo routerLink="/" class="d-none d-md-flex"></a>
220
- * ```
221
- *
222
- */
223
- declare class SiHeaderSiemensLogoComponent extends SiHeaderLogoDirective {
224
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiHeaderSiemensLogoComponent, never>;
225
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiHeaderSiemensLogoComponent, "si-header-siemens-logo, [si-header-siemens-logo]", never, {}, {}, never, never, true, never>;
226
- }
227
-
228
208
  declare class SiHeaderActionsDirective {
229
209
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiHeaderActionsDirective, never>;
230
210
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SiHeaderActionsDirective, "si-header-actions", never, {}, {}, never, never, true, never>;
@@ -318,7 +298,7 @@ declare class SiLaunchpadFactoryComponent {
318
298
  *
319
299
  * @defaultValue
320
300
  * ```
321
- * t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch applications`)
301
+ * t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch app`)
322
302
  * ```
323
303
  */
324
304
  readonly titleText: _angular_core.InputSignal<TranslatableString>;
@@ -379,5 +359,5 @@ declare class SiLaunchpadFactoryComponent {
379
359
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiLaunchpadFactoryComponent, "si-launchpad-factory", never, { "closeText": { "alias": "closeText"; "required": false; "isSignal": true; }; "titleText": { "alias": "titleText"; "required": false; "isSignal": true; }; "subtitleText": { "alias": "subtitleText"; "required": false; "isSignal": true; }; "apps": { "alias": "apps"; "required": true; "isSignal": true; }; "enableFavorites": { "alias": "enableFavorites"; "required": false; "isSignal": true; }; "favoriteAppsText": { "alias": "favoriteAppsText"; "required": false; "isSignal": true; }; "showMoreAppsText": { "alias": "showMoreAppsText"; "required": false; "isSignal": true; }; "showLessAppsText": { "alias": "showLessAppsText"; "required": false; "isSignal": true; }; }, { "favoriteChange": "favoriteChange"; }, never, never, true, never>;
380
360
  }
381
361
 
382
- export { SiAccountDetailsComponent, SiApplicationHeaderComponent, SiHeaderAccountItemComponent, SiHeaderActionItemComponent, SiHeaderActionsDirective, SiHeaderBrandDirective, SiHeaderCollapsibleActionsComponent, SiHeaderLogoDirective, SiHeaderNavigationComponent, SiHeaderNavigationItemComponent, SiHeaderSelectionItemComponent, SiHeaderSiemensLogoComponent, SiLaunchpadFactoryComponent };
362
+ export { SiAccountDetailsComponent, SiApplicationHeaderComponent, SiHeaderAccountItemComponent, SiHeaderActionItemComponent, SiHeaderActionsDirective, SiHeaderBrandDirective, SiHeaderCollapsibleActionsComponent, SiHeaderLogoDirective, SiHeaderNavigationComponent, SiHeaderNavigationItemComponent, SiHeaderSelectionItemComponent, SiLaunchpadFactoryComponent };
383
363
  export type { App, AppBase, AppCategory, AppLink, AppRouterLink, FavoriteChangeEvent };
@@ -54,7 +54,7 @@ declare class SiBreadcrumbComponent implements OnChanges, OnDestroy {
54
54
  *
55
55
  * @defaultValue
56
56
  * ```
57
- * t(() => $localize`:@@SI_BREADCRUMB:Breadcrumbs`)
57
+ * t(() => $localize`:@@SI_BREADCRUMB:Breadcrumb navigation`)
58
58
  * ```
59
59
  */
60
60
  readonly ariaLabel: i0.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -104,7 +104,7 @@ declare class SiAiMessageComponent {
104
104
  *
105
105
  * @defaultValue
106
106
  * ```
107
- * t(() => $localize`:@@SI_AI_MESSAGE.SECONDARY_ACTIONS:More actions`)
107
+ * t(() => $localize`:@@SI_AI_MESSAGE.SECONDARY_ACTIONS:Additional actions`)
108
108
  * ```
109
109
  */
110
110
  readonly secondaryActionsLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -168,11 +168,12 @@ declare class SiAttachmentListComponent {
168
168
  */
169
169
  readonly removable: _angular_core.InputSignalWithTransform<boolean, unknown>;
170
170
  /**
171
- * Label for remove attachment button
171
+ * Label for remove attachment button.
172
+ * The attachment name is available with `{{attachment}}`.
172
173
  *
173
174
  * @defaultValue
174
175
  * ```
175
- * t(() => $localize`:@@SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT:Remove attachment`)
176
+ * t(() => $localize`:@@SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT:Remove {{attachment}}`)
176
177
  * ```
177
178
  */
178
179
  readonly removeLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -404,7 +405,7 @@ declare class SiChatInputComponent implements AfterViewInit {
404
405
  * The label for the input, used for accessibility
405
406
  * @defaultValue
406
407
  * ```
407
- * t(() => $localize`:@@SI_CHAT_INPUT.LABEL:Chat message input`)
408
+ * t(() => $localize`:@@SI_CHAT_INPUT.LABEL:Chat input`)
408
409
  * ```
409
410
  */
410
411
  readonly label: _angular_core.InputSignal<string>;
@@ -430,7 +431,7 @@ declare class SiChatInputComponent implements AfterViewInit {
430
431
  *
431
432
  * @defaultValue
432
433
  * ```
433
- * t(() => $localize`:@@SI_CHAT_INPUT.INTERRUPT:Interrupt`)
434
+ * t(() => $localize`:@@SI_CHAT_INPUT.INTERRUPT:Stop processing`)
434
435
  * ```
435
436
  */
436
437
  readonly interruptButtonLabel: _angular_core.InputSignal<TranslatableString$1>;
@@ -449,11 +450,12 @@ declare class SiChatInputComponent implements AfterViewInit {
449
450
  */
450
451
  readonly attachFileLabel: _angular_core.InputSignal<TranslatableString$1>;
451
452
  /**
452
- * Remove attachment aria label prefix
453
+ * Remove attachment aria label.
454
+ * The attachment name is available with `{{attachment}}`.
453
455
  *
454
456
  * @defaultValue
455
457
  * ```
456
- * t(() => $localize`:@@SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT:Remove attachment`)
458
+ * t(() => $localize`:@@SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT:Remove {{attachment}}`)
457
459
  * ```
458
460
  */
459
461
  readonly removeAttachmentLabel: _angular_core.InputSignal<TranslatableString$1>;
@@ -462,7 +464,7 @@ declare class SiChatInputComponent implements AfterViewInit {
462
464
  *
463
465
  * @defaultValue
464
466
  * ```
465
- * t(() => $localize`:@@SI_CHAT_INPUT.SECONDARY_ACTIONS:More actions`)
467
+ * t(() => $localize`:@@SI_CHAT_INPUT.SECONDARY_ACTIONS:Additional actions`)
466
468
  * ```
467
469
  */
468
470
  readonly secondaryActionsLabel: _angular_core.InputSignal<TranslatableString$1>;
@@ -677,7 +679,7 @@ declare class SiUserMessageComponent {
677
679
  *
678
680
  * @defaultValue
679
681
  * ```
680
- * t(() => $localize`:@@SI_USER_MESSAGE.SECONDARY_ACTIONS:More actions`)
682
+ * t(() => $localize`:@@SI_USER_MESSAGE.SECONDARY_ACTIONS:Additional actions`)
681
683
  * ```
682
684
  */
683
685
  readonly secondaryActionsLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -25,7 +25,7 @@ declare class SiCircleStatusComponent implements OnChanges, OnDestroy {
25
25
  *
26
26
  * @defaultValue 'regular'
27
27
  */
28
- readonly size: _angular_core.InputSignal<"regular" | "small">;
28
+ readonly size: _angular_core.InputSignal<"small" | "regular">;
29
29
  /**
30
30
  * event direction is out
31
31
  *
@@ -40,7 +40,7 @@ declare class SiContentActionBarComponent implements AfterViewInit {
40
40
  *
41
41
  * @defaultValue
42
42
  * ```
43
- * t(() => $localize`:@@SI_CONTENT_ACTION_BAR.TOGGLE:Toggle`)
43
+ * t(() => $localize`:@@SI_CONTENT_ACTION_BAR.TOGGLE:Show actions`)
44
44
  * ```
45
45
  */
46
46
  readonly toggleItemLabel: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;
@@ -301,7 +301,7 @@ declare class SiListWidgetBodyComponent extends SiWidgetBaseDirective<SiListWidg
301
301
  *
302
302
  * @defaultValue
303
303
  * ```
304
- * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)
304
+ * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search…`)
305
305
  * ```
306
306
  */
307
307
  readonly searchPlaceholderLabel: _angular_core.InputSignal<TranslatableString>;
@@ -394,7 +394,7 @@ declare class SiListWidgetComponent extends SiWidgetBaseDirective<SiListWidgetIt
394
394
  *
395
395
  * @defaultValue
396
396
  * ```
397
- * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search...`)
397
+ * t(() => $localize`:@@SI_LIST_WIDGET.SEARCH_PLACEHOLDER:Search…`)
398
398
  * ```
399
399
  */
400
400
  readonly searchPlaceholderLabel: _angular_core.InputSignal<TranslatableString>;
@@ -283,7 +283,7 @@ declare class SiDateRangeFilterComponent implements OnChanges {
283
283
  protected readonly advancedMode: _angular_core.WritableSignal<boolean>;
284
284
  protected readonly dateRange: _angular_core.WritableSignal<DateRange>;
285
285
  protected readonly point1Now: _angular_core.WritableSignal<boolean>;
286
- protected readonly point2Mode: _angular_core.WritableSignal<"duration" | "date">;
286
+ protected readonly point2Mode: _angular_core.WritableSignal<"date" | "duration">;
287
287
  protected readonly point1date: _angular_core.WritableSignal<Date>;
288
288
  protected readonly point2date: _angular_core.WritableSignal<Date>;
289
289
  protected readonly point2offset: _angular_core.WritableSignal<number>;
@@ -334,16 +334,6 @@ declare class SiDatepickerComponent implements OnInit, OnChanges, AfterViewInit
334
334
  * ```
335
335
  */
336
336
  readonly nextLabel: _angular_core.InputSignal<TranslatableString>;
337
- /**
338
- * Aria label for week number column
339
- *
340
- * @deprecated Use `calendarWeekLabel` instead.
341
- * @defaultValue
342
- * ```
343
- * t(() => $localize`:@@SI_DATEPICKER.CALENDAR_WEEK_LABEL:Calendar week`)
344
- * ```
345
- */
346
- readonly calenderWeekLabel: _angular_core.InputSignal<TranslatableString | undefined>;
347
337
  /**
348
338
  * Aria label for week number column
349
339
  *
@@ -353,7 +343,6 @@ declare class SiDatepickerComponent implements OnInit, OnChanges, AfterViewInit
353
343
  * ```
354
344
  */
355
345
  readonly calendarWeekLabel: _angular_core.InputSignal<TranslatableString>;
356
- protected readonly derivedWeekLabel: _angular_core.Signal<TranslatableString>;
357
346
  /**
358
347
  * Enable/disable 12H mode in timepicker. Defaults to locale
359
348
  *
@@ -500,7 +489,7 @@ declare class SiDatepickerComponent implements OnInit, OnChanges, AfterViewInit
500
489
  focusActiveCell(): void;
501
490
  protected onActiveHoverChange(event?: Cell): void;
502
491
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SiDatepickerComponent, never>;
503
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiDatepickerComponent, "si-datepicker", never, { "focusedDate": { "alias": "focusedDate"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "dateRange": { "alias": "dateRange"; "required": false; "isSignal": true; }; "dateRangeRole": { "alias": "dateRangeRole"; "required": false; "isSignal": true; }; "initialFocus": { "alias": "initialFocus"; "required": false; "isSignal": true; }; "disabledTime": { "alias": "disabledTime"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "previousLabel": { "alias": "previousLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "calenderWeekLabel": { "alias": "calenderWeekLabel"; "required": false; "isSignal": true; }; "calendarWeekLabel": { "alias": "calendarWeekLabel"; "required": false; "isSignal": true; }; "time12h": { "alias": "time12h"; "required": false; "isSignal": true; }; "rangeType": { "alias": "rangeType"; "required": false; "isSignal": true; }; "minMonth": { "alias": "minMonth"; "required": false; "isSignal": true; }; "maxMonth": { "alias": "maxMonth"; "required": false; "isSignal": true; }; "hideTimeToggle": { "alias": "hideTimeToggle"; "required": false; "isSignal": true; }; "hideCalendar": { "alias": "hideCalendar"; "required": false; "isSignal": true; }; "timepickerLabel": { "alias": "timepickerLabel"; "required": false; "isSignal": true; }; "activeHover": { "alias": "activeHover"; "required": false; "isSignal": true; }; }, { "focusedDate": "focusedDateChange"; "date": "dateChange"; "dateRange": "dateRangeChange"; "disabledTime": "disabledTimeChange"; "config": "configChange"; "rangeType": "rangeTypeChange"; "activeHover": "activeHoverChange"; }, never, never, true, never>;
492
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SiDatepickerComponent, "si-datepicker", never, { "focusedDate": { "alias": "focusedDate"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "dateRange": { "alias": "dateRange"; "required": false; "isSignal": true; }; "dateRangeRole": { "alias": "dateRangeRole"; "required": false; "isSignal": true; }; "initialFocus": { "alias": "initialFocus"; "required": false; "isSignal": true; }; "disabledTime": { "alias": "disabledTime"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "previousLabel": { "alias": "previousLabel"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "calendarWeekLabel": { "alias": "calendarWeekLabel"; "required": false; "isSignal": true; }; "time12h": { "alias": "time12h"; "required": false; "isSignal": true; }; "rangeType": { "alias": "rangeType"; "required": false; "isSignal": true; }; "minMonth": { "alias": "minMonth"; "required": false; "isSignal": true; }; "maxMonth": { "alias": "maxMonth"; "required": false; "isSignal": true; }; "hideTimeToggle": { "alias": "hideTimeToggle"; "required": false; "isSignal": true; }; "hideCalendar": { "alias": "hideCalendar"; "required": false; "isSignal": true; }; "timepickerLabel": { "alias": "timepickerLabel"; "required": false; "isSignal": true; }; "activeHover": { "alias": "activeHover"; "required": false; "isSignal": true; }; }, { "focusedDate": "focusedDateChange"; "date": "dateChange"; "dateRange": "dateRangeChange"; "disabledTime": "disabledTimeChange"; "config": "configChange"; "rangeType": "rangeTypeChange"; "activeHover": "activeHoverChange"; }, never, never, true, never>;
504
493
  }
505
494
 
506
495
  declare class SiDatepickerOverlayComponent implements OnChanges, OnInit, OnDestroy {
@@ -986,7 +975,7 @@ declare class SiDateRangeComponent implements ControlValueAccessor, Validator, A
986
975
  *
987
976
  * @defaultValue
988
977
  * ```
989
- * t(() => $localize`:@@SI_DATEPICKER.START_TIME_LABEL:from`)
978
+ * t(() => $localize`:@@SI_DATEPICKER.START_TIME_LABEL:From`)
990
979
  * ```
991
980
  */
992
981
  readonly startTimeLabel: _angular_core.InputSignal<TranslatableString>;
@@ -995,7 +984,7 @@ declare class SiDateRangeComponent implements ControlValueAccessor, Validator, A
995
984
  *
996
985
  * @defaultValue
997
986
  * ```
998
- * t(() => $localize`:@@SI_DATEPICKER.END_TIME_LABEL:to`)
987
+ * t(() => $localize`:@@SI_DATEPICKER.END_TIME_LABEL:To`)
999
988
  * ```
1000
989
  */
1001
990
  readonly endTimeLabel: _angular_core.InputSignal<TranslatableString>;
@@ -64,7 +64,7 @@ declare class SiElectrontitlebarComponent {
64
64
  *
65
65
  * @defaultValue
66
66
  * ```
67
- * t(() => $localize`:@@SI_ELECTRON_TITLEBAR.MENU:Menu`)
67
+ * t(() => $localize`:@@SI_ELECTRON_TITLEBAR.MENU:Show actions`)
68
68
  * ```
69
69
  */
70
70
  readonly ariaLabelMenu: _angular_core.InputSignal<_siemens_element_translate_ng_translate.TranslatableString>;