@ui5/webcomponents-fiori 2.12.0-rc.0 → 2.12.0-rc.2

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 (235) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/DynamicPage.d.ts +2 -0
  4. package/dist/DynamicPage.js +6 -0
  5. package/dist/DynamicPage.js.map +1 -1
  6. package/dist/DynamicPageTemplate.js +1 -1
  7. package/dist/DynamicPageTemplate.js.map +1 -1
  8. package/dist/DynamicPageTitle.d.ts +1 -0
  9. package/dist/DynamicPageTitle.js +3 -0
  10. package/dist/DynamicPageTitle.js.map +1 -1
  11. package/dist/DynamicPageTitleTemplate.js +1 -1
  12. package/dist/DynamicPageTitleTemplate.js.map +1 -1
  13. package/dist/NavigationMenuItem.d.ts +2 -3
  14. package/dist/NavigationMenuItem.js +1 -14
  15. package/dist/NavigationMenuItem.js.map +1 -1
  16. package/dist/NavigationMenuTemplate.js +1 -1
  17. package/dist/NavigationMenuTemplate.js.map +1 -1
  18. package/dist/ShellBar.d.ts +11 -6
  19. package/dist/ShellBar.js +86 -52
  20. package/dist/ShellBar.js.map +1 -1
  21. package/dist/SideNavigation.d.ts +3 -1
  22. package/dist/SideNavigation.js +19 -4
  23. package/dist/SideNavigation.js.map +1 -1
  24. package/dist/SideNavigationPopoverTemplate.js +1 -1
  25. package/dist/SideNavigationPopoverTemplate.js.map +1 -1
  26. package/dist/UserMenuItem.js +2 -2
  27. package/dist/UserMenuItem.js.map +1 -1
  28. package/dist/css/themes/DynamicPage.css +1 -1
  29. package/dist/css/themes/DynamicPageHeader.css +1 -1
  30. package/dist/css/themes/DynamicPageHeaderActions.css +1 -1
  31. package/dist/css/themes/DynamicPageTitle.css +1 -1
  32. package/dist/css/themes/FlexibleColumnLayout.css +1 -1
  33. package/dist/css/themes/MediaGallery.css +1 -1
  34. package/dist/css/themes/MediaGalleryItem.css +1 -1
  35. package/dist/css/themes/NavigationMenu.css +1 -1
  36. package/dist/css/themes/NavigationMenuItem.css +1 -1
  37. package/dist/css/themes/NotificationListGroupItem.css +1 -1
  38. package/dist/css/themes/NotificationListItem.css +1 -1
  39. package/dist/css/themes/NotificationListItemBase.css +1 -1
  40. package/dist/css/themes/NotificationStateIcon.css +1 -1
  41. package/dist/css/themes/Page.css +1 -1
  42. package/dist/css/themes/ProductSwitchItem.css +1 -1
  43. package/dist/css/themes/Search.css +1 -1
  44. package/dist/css/themes/SearchField.css +1 -1
  45. package/dist/css/themes/SearchItem.css +1 -1
  46. package/dist/css/themes/ShellBar.css +1 -1
  47. package/dist/css/themes/ShellBarPopover.css +1 -1
  48. package/dist/css/themes/SideNavigation.css +1 -1
  49. package/dist/css/themes/SideNavigationGroup.css +1 -1
  50. package/dist/css/themes/SideNavigationItem.css +1 -1
  51. package/dist/css/themes/SideNavigationItemBase.css +1 -1
  52. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  53. package/dist/css/themes/Timeline.css +1 -1
  54. package/dist/css/themes/TimelineGroupItem.css +1 -1
  55. package/dist/css/themes/TimelineItem.css +1 -1
  56. package/dist/css/themes/UploadCollection.css +1 -1
  57. package/dist/css/themes/UploadCollectionItem.css +1 -1
  58. package/dist/css/themes/UserMenu.css +1 -1
  59. package/dist/css/themes/UserSettingsItem.css +1 -1
  60. package/dist/css/themes/ViewSettingsDialog.css +1 -1
  61. package/dist/css/themes/Wizard.css +1 -1
  62. package/dist/css/themes/WizardTab.css +1 -1
  63. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  64. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  65. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  66. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  67. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  68. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  69. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  70. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  71. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  72. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  73. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  74. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  75. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  76. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  77. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  78. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  79. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  80. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  81. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  82. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  83. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  84. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  85. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  86. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  87. package/dist/generated/themes/DynamicPage.css.d.ts +1 -1
  88. package/dist/generated/themes/DynamicPage.css.js +1 -1
  89. package/dist/generated/themes/DynamicPage.css.js.map +1 -1
  90. package/dist/generated/themes/DynamicPageHeader.css.d.ts +1 -1
  91. package/dist/generated/themes/DynamicPageHeader.css.js +1 -1
  92. package/dist/generated/themes/DynamicPageHeader.css.js.map +1 -1
  93. package/dist/generated/themes/DynamicPageHeaderActions.css.d.ts +1 -1
  94. package/dist/generated/themes/DynamicPageHeaderActions.css.js +1 -1
  95. package/dist/generated/themes/DynamicPageHeaderActions.css.js.map +1 -1
  96. package/dist/generated/themes/DynamicPageTitle.css.d.ts +1 -1
  97. package/dist/generated/themes/DynamicPageTitle.css.js +1 -1
  98. package/dist/generated/themes/DynamicPageTitle.css.js.map +1 -1
  99. package/dist/generated/themes/FlexibleColumnLayout.css.d.ts +1 -1
  100. package/dist/generated/themes/FlexibleColumnLayout.css.js +1 -1
  101. package/dist/generated/themes/FlexibleColumnLayout.css.js.map +1 -1
  102. package/dist/generated/themes/MediaGallery.css.d.ts +1 -1
  103. package/dist/generated/themes/MediaGallery.css.js +1 -1
  104. package/dist/generated/themes/MediaGallery.css.js.map +1 -1
  105. package/dist/generated/themes/MediaGalleryItem.css.d.ts +1 -1
  106. package/dist/generated/themes/MediaGalleryItem.css.js +1 -1
  107. package/dist/generated/themes/MediaGalleryItem.css.js.map +1 -1
  108. package/dist/generated/themes/NavigationMenu.css.d.ts +1 -1
  109. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  110. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  111. package/dist/generated/themes/NavigationMenuItem.css.d.ts +1 -1
  112. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  113. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  114. package/dist/generated/themes/NotificationListGroupItem.css.d.ts +1 -1
  115. package/dist/generated/themes/NotificationListGroupItem.css.js +1 -1
  116. package/dist/generated/themes/NotificationListGroupItem.css.js.map +1 -1
  117. package/dist/generated/themes/NotificationListItem.css.d.ts +1 -1
  118. package/dist/generated/themes/NotificationListItem.css.js +1 -1
  119. package/dist/generated/themes/NotificationListItem.css.js.map +1 -1
  120. package/dist/generated/themes/NotificationListItemBase.css.d.ts +1 -1
  121. package/dist/generated/themes/NotificationListItemBase.css.js +1 -1
  122. package/dist/generated/themes/NotificationListItemBase.css.js.map +1 -1
  123. package/dist/generated/themes/NotificationStateIcon.css.d.ts +1 -1
  124. package/dist/generated/themes/NotificationStateIcon.css.js +1 -1
  125. package/dist/generated/themes/NotificationStateIcon.css.js.map +1 -1
  126. package/dist/generated/themes/Page.css.d.ts +1 -1
  127. package/dist/generated/themes/Page.css.js +1 -1
  128. package/dist/generated/themes/Page.css.js.map +1 -1
  129. package/dist/generated/themes/ProductSwitchItem.css.d.ts +1 -1
  130. package/dist/generated/themes/ProductSwitchItem.css.js +1 -1
  131. package/dist/generated/themes/ProductSwitchItem.css.js.map +1 -1
  132. package/dist/generated/themes/Search.css.d.ts +1 -1
  133. package/dist/generated/themes/Search.css.js +1 -1
  134. package/dist/generated/themes/Search.css.js.map +1 -1
  135. package/dist/generated/themes/SearchField.css.d.ts +1 -1
  136. package/dist/generated/themes/SearchField.css.js +1 -1
  137. package/dist/generated/themes/SearchField.css.js.map +1 -1
  138. package/dist/generated/themes/SearchItem.css.d.ts +1 -1
  139. package/dist/generated/themes/SearchItem.css.js +1 -1
  140. package/dist/generated/themes/SearchItem.css.js.map +1 -1
  141. package/dist/generated/themes/ShellBar.css.d.ts +1 -1
  142. package/dist/generated/themes/ShellBar.css.js +1 -1
  143. package/dist/generated/themes/ShellBar.css.js.map +1 -1
  144. package/dist/generated/themes/ShellBarPopover.css.d.ts +1 -1
  145. package/dist/generated/themes/ShellBarPopover.css.js +1 -1
  146. package/dist/generated/themes/ShellBarPopover.css.js.map +1 -1
  147. package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
  148. package/dist/generated/themes/SideNavigation.css.js +1 -1
  149. package/dist/generated/themes/SideNavigation.css.js.map +1 -1
  150. package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
  151. package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
  152. package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
  153. package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
  154. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  155. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  156. package/dist/generated/themes/SideNavigationItemBase.css.d.ts +1 -1
  157. package/dist/generated/themes/SideNavigationItemBase.css.js +1 -1
  158. package/dist/generated/themes/SideNavigationItemBase.css.js.map +1 -1
  159. package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
  160. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  161. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  162. package/dist/generated/themes/Timeline.css.d.ts +1 -1
  163. package/dist/generated/themes/Timeline.css.js +1 -1
  164. package/dist/generated/themes/Timeline.css.js.map +1 -1
  165. package/dist/generated/themes/TimelineGroupItem.css.d.ts +1 -1
  166. package/dist/generated/themes/TimelineGroupItem.css.js +1 -1
  167. package/dist/generated/themes/TimelineGroupItem.css.js.map +1 -1
  168. package/dist/generated/themes/TimelineItem.css.d.ts +1 -1
  169. package/dist/generated/themes/TimelineItem.css.js +1 -1
  170. package/dist/generated/themes/TimelineItem.css.js.map +1 -1
  171. package/dist/generated/themes/UploadCollection.css.d.ts +1 -1
  172. package/dist/generated/themes/UploadCollection.css.js +1 -1
  173. package/dist/generated/themes/UploadCollection.css.js.map +1 -1
  174. package/dist/generated/themes/UploadCollectionItem.css.d.ts +1 -1
  175. package/dist/generated/themes/UploadCollectionItem.css.js +1 -1
  176. package/dist/generated/themes/UploadCollectionItem.css.js.map +1 -1
  177. package/dist/generated/themes/UserMenu.css.d.ts +1 -1
  178. package/dist/generated/themes/UserMenu.css.js +1 -1
  179. package/dist/generated/themes/UserMenu.css.js.map +1 -1
  180. package/dist/generated/themes/UserSettingsItem.css.d.ts +1 -1
  181. package/dist/generated/themes/UserSettingsItem.css.js +1 -1
  182. package/dist/generated/themes/UserSettingsItem.css.js.map +1 -1
  183. package/dist/generated/themes/ViewSettingsDialog.css.d.ts +1 -1
  184. package/dist/generated/themes/ViewSettingsDialog.css.js +1 -1
  185. package/dist/generated/themes/ViewSettingsDialog.css.js.map +1 -1
  186. package/dist/generated/themes/Wizard.css.d.ts +1 -1
  187. package/dist/generated/themes/Wizard.css.js +1 -1
  188. package/dist/generated/themes/Wizard.css.js.map +1 -1
  189. package/dist/generated/themes/WizardTab.css.d.ts +1 -1
  190. package/dist/generated/themes/WizardTab.css.js +1 -1
  191. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  192. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  193. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  194. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  195. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  196. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  197. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  198. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  199. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  200. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  201. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  202. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  203. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  204. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  205. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  206. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  207. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  208. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  209. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  210. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
  211. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  212. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  213. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
  214. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  215. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  216. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  217. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  218. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  219. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
  220. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  221. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  222. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  223. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  224. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  225. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
  226. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  227. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  228. package/dist/web-types.json +1 -1
  229. package/package.json +8 -8
  230. package/src/DynamicPageTemplate.tsx +2 -2
  231. package/src/DynamicPageTitleTemplate.tsx +1 -1
  232. package/src/NavigationMenuTemplate.tsx +0 -1
  233. package/src/SideNavigationPopoverTemplate.tsx +1 -0
  234. package/src/themes/ShellBar.css +0 -2
  235. package/src/themes/WizardTab.css +1 -0
package/dist/ShellBar.js CHANGED
@@ -16,6 +16,7 @@ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
16
16
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
17
17
  import { isSpace, isEnter, isLeft, isRight, } from "@ui5/webcomponents-base/dist/Keys.js";
18
18
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js";
19
+ import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
19
20
  import ListItemStandard from "@ui5/webcomponents/dist/ListItemStandard.js";
20
21
  import List from "@ui5/webcomponents/dist/List.js";
21
22
  import Popover from "@ui5/webcomponents/dist/Popover.js";
@@ -182,6 +183,9 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
182
183
  this._lastOffsetWidth = 0;
183
184
  this._observableContent = [];
184
185
  this._autoRestoreSearchField = false;
186
+ this._onSearchOpenBound = this._onSearchOpen.bind(this);
187
+ this._onSearchCloseBound = this._onSearchClose.bind(this);
188
+ this._onSearchBound = this._onSearch.bind(this);
185
189
  this._hiddenIcons = [];
186
190
  this._isInitialRendering = true;
187
191
  this._overflowNotifications = null;
@@ -197,21 +201,6 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
197
201
  menuPopover.open = true;
198
202
  }
199
203
  };
200
- this.onSearchOpen = () => {
201
- if (isPhone()) {
202
- this.setSearchState(true);
203
- }
204
- };
205
- this.onSearchClose = () => {
206
- if (isPhone()) {
207
- this.setSearchState(false);
208
- }
209
- };
210
- this.onSearch = () => {
211
- if (!isPhone() && !this.search?.value) {
212
- this.setSearchState(!this.showSearchField);
213
- }
214
- };
215
204
  this._handleResize = throttle(() => {
216
205
  this.menuPopover = this._getMenuPopover();
217
206
  this.overflowPopover = this._getOverflowPopover();
@@ -224,6 +213,33 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
224
213
  }
225
214
  }, RESIZE_THROTTLE_RATE);
226
215
  }
216
+ _onSearchOpen(e) {
217
+ if (e.target !== this.search) {
218
+ this._detachSearchFieldListeners(e.target);
219
+ return;
220
+ }
221
+ if (isPhone()) {
222
+ this.setSearchState(true);
223
+ }
224
+ }
225
+ _onSearchClose(e) {
226
+ if (e.target !== this.search) {
227
+ this._detachSearchFieldListeners(e.target);
228
+ return;
229
+ }
230
+ if (isPhone()) {
231
+ this.setSearchState(false);
232
+ }
233
+ }
234
+ _onSearch(e) {
235
+ if (e.target !== this.search) {
236
+ this._detachSearchFieldListeners(e.target);
237
+ return;
238
+ }
239
+ if (!isPhone() && !this.search?.value) {
240
+ this.setSearchState(!this.showSearchField);
241
+ }
242
+ }
227
243
  _updateSearchFieldState() {
228
244
  const spacerWidth = this.shadowRoot.querySelector(".ui5-shellbar-spacer") ? this.shadowRoot.querySelector(".ui5-shellbar-spacer").getBoundingClientRect().width : 0;
229
245
  const searchFieldWidth = this.domCalculatedValues("--_ui5_shellbar_search_field_width");
@@ -241,11 +257,27 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
241
257
  }
242
258
  }
243
259
  _onKeyDown(e) {
244
- const items = this._getVisibleAndInteractiveItems();
260
+ if (!isLeft(e) && !isRight(e)) {
261
+ return;
262
+ }
263
+ const domRef = this.getDomRef();
264
+ if (!domRef) {
265
+ // If the component is not rendered yet, we should not handle the keydown event
266
+ return;
267
+ }
245
268
  const activeElement = getActiveElement();
269
+ if (!activeElement) {
270
+ return;
271
+ }
272
+ // Check if the active elements should "steal" the navigation
273
+ if (this._allowChildNavigation(activeElement, e)) {
274
+ return;
275
+ }
276
+ const items = getTabbableElements(domRef).filter(el => this._isVisible(el));
246
277
  const currentIndex = items.findIndex(el => el === activeElement);
247
- if (isLeft(e) || isRight(e)) {
248
- e.preventDefault(); // Prevent the default behavior to avoid any further automatic focus movemen
278
+ // Only handle arrow navigation if the focus is on a ShellBar item
279
+ if (currentIndex !== -1) {
280
+ e.preventDefault();
249
281
  // Focus navigation based on the key pressed
250
282
  if (isLeft(e)) {
251
283
  this._focusPreviousItem(items, currentIndex);
@@ -255,6 +287,23 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
255
287
  }
256
288
  }
257
289
  }
290
+ _allowChildNavigation(activeElement, e) {
291
+ if (activeElement.tagName === "INPUT" || activeElement.tagName === "TEXTAREA") {
292
+ return this._allowInputNavigation(activeElement, e);
293
+ }
294
+ return false; // Default to false for other elements
295
+ }
296
+ _allowInputNavigation(inputElement, e) {
297
+ const cursorPosition = inputElement.selectionStart || 0;
298
+ const textLength = inputElement.value.length;
299
+ // Allow internal navigation if cursor is not at the boundaries
300
+ if ((isLeft(e) && cursorPosition > 0)
301
+ || (isRight(e) && cursorPosition < textLength)) {
302
+ return true;
303
+ }
304
+ // Let ShellBar handle navigation if at boundaries
305
+ return false;
306
+ }
258
307
  _focusNextItem(items, currentIndex) {
259
308
  if (currentIndex < items.length - 1) {
260
309
  (items[currentIndex + 1]).focus(); // Focus the next element
@@ -269,24 +318,6 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
269
318
  const style = getComputedStyle(element);
270
319
  return style.display !== "none" && style.visibility !== "hidden" && element.offsetWidth > 0 && element.offsetHeight > 0;
271
320
  }
272
- _getNavigableContent() {
273
- const elements = [
274
- ...this.startButton,
275
- ...this.logo,
276
- ...this.shadowRoot.querySelectorAll(".ui5-shellbar-logo"),
277
- ...this.shadowRoot.querySelectorAll(".ui5-shellbar-logo-area"),
278
- ...this.shadowRoot.querySelectorAll(".ui5-shellbar-menu-button"),
279
- ...this.contentItems,
280
- ...this._getRightChildItems(),
281
- ];
282
- return elements.map((element) => {
283
- const component = element;
284
- if (component.isUI5Element) {
285
- return component.getFocusDomRef();
286
- }
287
- return element;
288
- }).filter(el => !!el);
289
- }
290
321
  _getRightChildItems() {
291
322
  return [
292
323
  ...this.searchField,
@@ -295,13 +326,6 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
295
326
  ...this.shadowRoot.querySelectorAll(".ui5-shellbar-items-for-arrow-nav"),
296
327
  ];
297
328
  }
298
- _getVisibleAndInteractiveItems() {
299
- const items = this._getNavigableContent();
300
- const visibleAndInteractiveItems = items.filter(item => {
301
- return this._isVisible(item) && item.tabIndex === 0;
302
- });
303
- return visibleAndInteractiveItems;
304
- }
305
329
  _menuItemPress(e) {
306
330
  const shouldContinue = this.fireDecoratorEvent("menu-item-click", {
307
331
  item: e.detail.item,
@@ -377,6 +401,8 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
377
401
  else {
378
402
  this.search.collapsed = !this.showSearchField;
379
403
  }
404
+ this._detachSearchFieldListeners(this.search);
405
+ this._attachSearchFieldListeners(this.search);
380
406
  }
381
407
  }
382
408
  /**
@@ -481,24 +507,32 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
481
507
  }
482
508
  onEnterDOM() {
483
509
  ResizeHandler.register(this, this._handleResize);
484
- if (isSelfCollapsibleSearch(this.search)) {
485
- this.search.addEventListener("ui5-open", this.onSearchOpen);
486
- this.search.addEventListener("ui5-close", this.onSearchClose);
487
- this.search.addEventListener("ui5-search", this.onSearch);
488
- }
489
510
  if (isDesktop()) {
490
511
  this.setAttribute("desktop", "");
491
512
  }
513
+ this._attachSearchFieldListeners(this.search);
492
514
  }
493
515
  onExitDOM() {
494
516
  this.contentItemsObserver.disconnect();
495
517
  this._observableContent = [];
496
518
  ResizeHandler.deregister(this, this._handleResize);
497
- if (isSelfCollapsibleSearch(this.search)) {
498
- this.search.removeEventListener("ui5-open", this.onSearchOpen);
499
- this.search.removeEventListener("ui5-close", this.onSearchClose);
500
- this.search.removeEventListener("ui5-search", this.onSearch);
519
+ this._detachSearchFieldListeners(this.search);
520
+ }
521
+ _attachSearchFieldListeners(searchField) {
522
+ if (!searchField) {
523
+ return;
524
+ }
525
+ searchField.addEventListener("ui5-open", this._onSearchOpenBound);
526
+ searchField.addEventListener("ui5-close", this._onSearchCloseBound);
527
+ searchField.addEventListener("ui5-search", this._onSearchBound);
528
+ }
529
+ _detachSearchFieldListeners(searchField) {
530
+ if (!searchField) {
531
+ return;
501
532
  }
533
+ searchField.removeEventListener("ui5-open", this._onSearchOpenBound);
534
+ searchField.removeEventListener("ui5-close", this._onSearchCloseBound);
535
+ searchField.removeEventListener("ui5-search", this._onSearchBound);
502
536
  }
503
537
  _handleSearchIconPress() {
504
538
  const searchButtonRef = this.shadowRoot.querySelector(".ui5-shellbar-search-button");