diff --git a/docs/advanced/insights/01-somewhere-on-the-way-to-ui5.md b/docs/advanced/insights/01-somewhere-on-the-way-to-ui5.md
index 75493820..a3781626 100644
--- a/docs/advanced/insights/01-somewhere-on-the-way-to-ui5.md
+++ b/docs/advanced/insights/01-somewhere-on-the-way-to-ui5.md
@@ -103,7 +103,7 @@ handed back. `comp-type` says whether a component is a DDIC type, which is
where the real labels live — the field catalog, rebuilt from its own source.
Full source:
-[`Z2UI5_CL_SMP_APP_497`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_497.clas.abap),
+[`Z2UI5_CL_SMP_APP_497`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_497.clas.abap),
one of the abap2UI5 samples, so it is compiled and linted on every commit.
A table nobody described, drawn from whatever the data turned out to be.
diff --git a/docs/cookbook/browser_interaction/clipboard.md b/docs/cookbook/browser_interaction/clipboard.md
index ae28d9f1..9d4d9f9b 100644
--- a/docs/cookbook/browser_interaction/clipboard.md
+++ b/docs/cookbook/browser_interaction/clipboard.md
@@ -72,7 +72,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Copy to Clipboard (A) | [`Z2UI5_CL_SMP_APP_325`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_325.clas.abap) |
-| Local and Session Storage (A,C) | [`Z2UI5_CL_SMP_APP_327`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_327.clas.abap) |
+| Copy to Clipboard (A) | [`Z2UI5_CL_SMP_APP_325`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_325.clas.abap) |
+| Local and Session Storage (A,C) | [`Z2UI5_CL_SMP_APP_327`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_327.clas.abap) |
diff --git a/docs/cookbook/browser_interaction/focus.md b/docs/cookbook/browser_interaction/focus.md
index 4c95e5e3..040b2bf8 100644
--- a/docs/cookbook/browser_interaction/focus.md
+++ b/docs/cookbook/browser_interaction/focus.md
@@ -108,8 +108,8 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Set Focus and Select Text in an Input (A) | [`Z2UI5_CL_SMP_APP_133`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_133.clas.abap) |
-| Jump to the Next Input on Enter (A) | [`Z2UI5_CL_SMP_APP_189`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_189.clas.abap) |
-| Focus a Table Cell by Column and Row (A) | [`Z2UI5_CL_SMP_APP_421`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_421.clas.abap) |
+| Set Focus and Select Text in an Input (A) | [`Z2UI5_CL_SMP_APP_133`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_133.clas.abap) |
+| Jump to the Next Input on Enter (A) | [`Z2UI5_CL_SMP_APP_189`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_189.clas.abap) |
+| Focus a Table Cell by Column and Row (A) | [`Z2UI5_CL_SMP_APP_421`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_421.clas.abap) |
diff --git a/docs/cookbook/browser_interaction/keyboard_shortcuts.md b/docs/cookbook/browser_interaction/keyboard_shortcuts.md
index 55dba0b3..03a20961 100644
--- a/docs/cookbook/browser_interaction/keyboard_shortcuts.md
+++ b/docs/cookbook/browser_interaction/keyboard_shortcuts.md
@@ -94,6 +94,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Keyboard Shortcuts, Ctrl+S (A) | [`Z2UI5_CL_SMP_APP_471`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_471.clas.abap) |
+| Keyboard Shortcuts, Ctrl+S (A) | [`Z2UI5_CL_SMP_APP_471`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_471.clas.abap) |
diff --git a/docs/cookbook/browser_interaction/scrolling.md b/docs/cookbook/browser_interaction/scrolling.md
index 8082e52c..2035605f 100644
--- a/docs/cookbook/browser_interaction/scrolling.md
+++ b/docs/cookbook/browser_interaction/scrolling.md
@@ -114,7 +114,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Scroll to a Pixel Position (A) | [`Z2UI5_CL_SMP_APP_362`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_362.clas.abap) |
-| Scroll a Control into View (A) | [`Z2UI5_CL_SMP_APP_363`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_363.clas.abap) |
+| Scroll to a Pixel Position (A) | [`Z2UI5_CL_SMP_APP_362`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_362.clas.abap) |
+| Scroll a Control into View (A) | [`Z2UI5_CL_SMP_APP_363`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_363.clas.abap) |
diff --git a/docs/cookbook/browser_interaction/soft_keyboard.md b/docs/cookbook/browser_interaction/soft_keyboard.md
index 605e98ee..2d099b47 100644
--- a/docs/cookbook/browser_interaction/soft_keyboard.md
+++ b/docs/cookbook/browser_interaction/soft_keyboard.md
@@ -1,78 +1,92 @@
---
outline: [2, 4]
samples:
- - z2ui5_cl_smp_app_352
- z2ui5_cl_smp_app_516
+ - z2ui5_cl_smp_app_530
---
# Soft Keyboard
-## Hide Soft Keyboard
+On a touch device the on-screen keyboard pops up whenever an input receives
+focus. Sometimes you do not want it — in a warehouse, on a handheld used mainly
+for barcode scanning, the keyboard covers half the screen and nobody ever types
+into the field. Sometimes you want a *different* one: a digit pad for a
+quantity, a phone layout for a number.
-For UI5 input fields, the soft keyboard pops up automatically when an input receives focus. Sometimes — for example, in warehouses with small devices used mainly for barcode scanning — you don't want this behavior.
+Both are the HTML `inputmode` attribute, and abap2UI5 exposes it as a **bound
+property** of a companion control.
-The `keyboard_set_mode` frontend event sets the HTML `inputmode` attribute on a UI5 input. Pass the control id and the desired mode (`none` hides the soft keyboard; `text`, `numeric`, `decimal`, `tel`, etc. restore it with the matching layout).
+## The control
+
+`z2ui5.cc.InputExt` is a `sap.m.Input` in every respect — same value binding,
+same suggestions, same value state, same events — with one property added:
+
+| Property | What it does |
+|---|---|
+| `inputMode` | the HTML `inputmode` of the inner ``: `none` keeps the keyboard down, `numeric`, `decimal`, `tel`, `email`, `url`, `search`, `text` ask for that layout. Empty leaves the field exactly as `sap.m.Input` rendered it |
+
+Declare the namespace on the view and build the field as `z2ui5:InputExt`:
```abap
-CLASS z2ui5_cl_sample_softkeyb DEFINITION PUBLIC.
-
- PUBLIC SECTION.
- INTERFACES z2ui5_if_app.
-
- DATA input TYPE string.
-
- PROTECTED SECTION.
- PRIVATE SECTION.
-ENDCLASS.
-
-CLASS z2ui5_cl_sample_softkeyb IMPLEMENTATION.
- METHOD z2ui5_if_app~main.
-
- IF client->check_on_navigated( ).
-
- DATA(view) = z2ui5_cl_ui5_view_builder=>factory(
- )->ele( n = `View` ns = `mvc`
- )->a( n = `xmlns` v = `sap.m`
- )->a( n = `xmlns:mvc` v = `sap.ui.core.mvc`
- )->a( n = `xmlns:form` v = `sap.ui.layout.form`
-
- )->ele( `Shell`
- )->ele( `Page`
- )->a( n = `title` v = `abap2UI5 - Softkeyboard on/off`
- )->a( n = `navButtonPress` v = client->_event( `BACK` )
- )->a( n = `showNavButton` b = client->check_app_prev_stack( )
-
- )->ele( n = `SimpleForm` ns = `form`
- )->a( n = `editable` b = abap_true
-
- )->ele( n = `content` ns = `form`
- )->tag( `Title`
- )->a( n = `text` v = `Keyboard on/off`
- )->tag( `Label`
- )->a( n = `text` v = `Input`
- )->tag( `Input`
- )->a( n = `id` v = `ZINPUT`
- )->a( n = `value` v = client->_bind( input )
- )->a( n = `valueHelpRequest` v = client->_event( `CALL_KEYBOARD` )
- )->a( n = `showValueHelp` b = abap_true ).
-
- client->view_display( view->stringify( ) ).
-
- RETURN.
- ENDIF.
-
- CASE client->get( )-event.
- WHEN `CALL_KEYBOARD`.
- client->follow_up_action( val = client->cs_event-keyboard_set_mode
- t_arg = VALUE #( ( `ZINPUT` ) ( `none` ) ) ).
- WHEN `BACK`.
- client->nav_app_leave( ).
- ENDCASE.
-
- ENDMETHOD.
-ENDCLASS.
+DATA(view) = z2ui5_cl_ui5_view_builder=>factory(
+ )->ele( n = `View` ns = `mvc`
+ )->a( n = `xmlns` v = `sap.m`
+ )->a( n = `xmlns:mvc` v = `sap.ui.core.mvc`
+ )->a( n = `xmlns:z2ui5` v = `z2ui5.cc` ).
+
+view->ele( `Shell`
+ )->ele( `Page`
+ )->a( n = `title` v = `abap2UI5 - Soft Keyboard`
+
+ )->tag( n = `InputExt` ns = `z2ui5`
+ )->a( n = `value` v = client->_bind( value )
+ )->a( n = `inputMode` v = client->_bind( mode ) ).
+
+client->view_display( view->stringify( ) ).
```
-To re-enable the keyboard, fire the same event with a different mode (`text`, `numeric`, …).
+`mode` is an ordinary `TYPE string` attribute of the app. Switching the keyboard
+is therefore a **model update and nothing else**:
+
+```abap
+CASE client->get_event( ).
+ WHEN `NUMERIC`.
+ mode = `numeric`.
+ WHEN `OFF`.
+ mode = `none`.
+ENDCASE.
+```
+
+No follow-up action travels, and there is no ordering to get right between an
+action and the next render.
+
+## Why it is a property and not an action
+
+`inputmode` lives on one DOM attribute, and **UI5 throws that DOM away on every
+re-render**. A frontend action that writes the attribute therefore holds only
+until the next thing redraws the field — a model update on the same input
+included — and nothing reports that it is gone: the field still works, the
+keyboard just comes back.
+
+`InputExt` writes the mode on every rendering, so it is part of what the control
+*is*. That is also why the mode survives a roundtrip without the app restoring
+anything.
+
+::: warning cs_event-keyboard_set_mode is removed
+Before 2026-09 this page taught a frontend action,
+`client->follow_up_action( val = client->cs_event-keyboard_set_mode … )`, which
+set the attribute directly on the DOM. It carried exactly the defect above and
+**was removed from the framework**; an app that still calls it fails at compile
+time. The migration is the control on this page: declare
+`xmlns:z2ui5="z2ui5.cc"`, build the field as `z2ui5:InputExt`, bind `inputMode`
+to a string attribute, and delete the action.
+:::
+
+## An unknown mode is refused, not guessed
+
+`inputMode` is checked against the HTML keyword list before it is written. A
+browser silently falls back to its default for a keyword it does not know, which
+on screen is indistinguishable from the property having had no effect at all —
+so the control logs the bad value instead and writes nothing.
@@ -85,7 +99,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Soft Keyboard Mode on Mobile (A) | [`Z2UI5_CL_SMP_APP_352`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_352.clas.abap) |
-| Keyboard Layout of an Input (inputmode) (C) | [`Z2UI5_CL_SMP_APP_516`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_516.clas.abap) |
+| Keyboard Layout of an Input (inputmode) (C) | [`Z2UI5_CL_SMP_APP_516`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_516.clas.abap) |
+| Scan Field with Submit (InputExt) (A,C) | [`Z2UI5_CL_SMP_APP_530`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_530.clas.abap) |
diff --git a/docs/cookbook/browser_interaction/timer.md b/docs/cookbook/browser_interaction/timer.md
index a76f6bfc..2e3d7f6d 100644
--- a/docs/cookbook/browser_interaction/timer.md
+++ b/docs/cookbook/browser_interaction/timer.md
@@ -101,7 +101,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Progress Indicator during a Backend Call (A) | [`Z2UI5_CL_SMP_APP_064`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_064.clas.abap) |
-| Refresh the View Every n Seconds (A) | [`Z2UI5_CL_SMP_APP_028`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_028.clas.abap) |
+| Progress Indicator during a Backend Call (A) | [`Z2UI5_CL_SMP_APP_064`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_064.clas.abap) |
+| Refresh the View Every n Seconds (A) | [`Z2UI5_CL_SMP_APP_028`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_028.clas.abap) |
diff --git a/docs/cookbook/browser_interaction/title.md b/docs/cookbook/browser_interaction/title.md
index ee575ea3..4c7fc96f 100644
--- a/docs/cookbook/browser_interaction/title.md
+++ b/docs/cookbook/browser_interaction/title.md
@@ -80,7 +80,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Set the Tab Title (A) | [`Z2UI5_CL_SMP_APP_125`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_125.clas.abap) |
-| Set the Tab Favicon (A) | [`Z2UI5_CL_SMP_APP_491`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_491.clas.abap) |
+| Set the Tab Title (A) | [`Z2UI5_CL_SMP_APP_125`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_125.clas.abap) |
+| Set the Tab Favicon (A) | [`Z2UI5_CL_SMP_APP_491`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_491.clas.abap) |
diff --git a/docs/cookbook/browser_interaction/url_handling.md b/docs/cookbook/browser_interaction/url_handling.md
index a6ac5759..4e0b594c 100644
--- a/docs/cookbook/browser_interaction/url_handling.md
+++ b/docs/cookbook/browser_interaction/url_handling.md
@@ -121,8 +121,8 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Open a URL in a New Tab (A) | [`Z2UI5_CL_SMP_APP_073`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_073.clas.abap) |
-| Open Mail, Phone and SMS Links (A) | [`Z2UI5_CL_SMP_APP_316`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_316.clas.abap) |
-| Reload the Page (A) | [`Z2UI5_CL_SMP_APP_492`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_492.clas.abap) |
+| Open a URL in a New Tab (A) | [`Z2UI5_CL_SMP_APP_073`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_073.clas.abap) |
+| Open Mail, Phone and SMS Links (A) | [`Z2UI5_CL_SMP_APP_316`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_316.clas.abap) |
+| Reload the Page (A) | [`Z2UI5_CL_SMP_APP_492`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_492.clas.abap) |
diff --git a/docs/cookbook/device_capabilities/camera.md b/docs/cookbook/device_capabilities/camera.md
index 6822f2dd..245f5a8e 100644
--- a/docs/cookbook/device_capabilities/camera.md
+++ b/docs/cookbook/device_capabilities/camera.md
@@ -64,6 +64,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Camera, Take Photos (C) | [`Z2UI5_CL_SMP_APP_306`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_306.clas.abap) |
+| Camera, Take Photos (C) | [`Z2UI5_CL_SMP_APP_306`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_306.clas.abap) |
diff --git a/docs/cookbook/device_capabilities/geolocation.md b/docs/cookbook/device_capabilities/geolocation.md
index a44867dd..6bb35bd6 100644
--- a/docs/cookbook/device_capabilities/geolocation.md
+++ b/docs/cookbook/device_capabilities/geolocation.md
@@ -93,6 +93,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Geolocation from the Browser (C) | [`Z2UI5_CL_SMP_APP_120`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_120.clas.abap) |
+| Geolocation from the Browser (C) | [`Z2UI5_CL_SMP_APP_120`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_120.clas.abap) |
diff --git a/docs/cookbook/device_capabilities/info.md b/docs/cookbook/device_capabilities/info.md
index 12fd6a7f..5cfdaa7d 100644
--- a/docs/cookbook/device_capabilities/info.md
+++ b/docs/cookbook/device_capabilities/info.md
@@ -143,7 +143,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Frontend Info: UI5 Version, Theme, OS, Browser | [`Z2UI5_CL_SMP_APP_122`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_122.clas.abap) |
-| Device Model: Phone, Tablet, Desktop (A) | [`Z2UI5_CL_SMP_APP_445`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_445.clas.abap) |
+| Frontend Info: UI5 Version, Theme, OS, Browser | [`Z2UI5_CL_SMP_APP_122`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_122.clas.abap) |
+| Device Model: Phone, Tablet, Desktop (A) | [`Z2UI5_CL_SMP_APP_445`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_445.clas.abap) |
diff --git a/docs/cookbook/device_capabilities/pdf.md b/docs/cookbook/device_capabilities/pdf.md
index cf389de0..12fe0129 100644
--- a/docs/cookbook/device_capabilities/pdf.md
+++ b/docs/cookbook/device_capabilities/pdf.md
@@ -104,6 +104,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Open the PDF Viewer by ID (A) | [`Z2UI5_CL_SMP_APP_449`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_449.clas.abap) |
+| Open the PDF Viewer by ID (A) | [`Z2UI5_CL_SMP_APP_449`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_449.clas.abap) |
diff --git a/docs/cookbook/device_capabilities/upload_download.md b/docs/cookbook/device_capabilities/upload_download.md
index 310dda3c..896e450f 100644
--- a/docs/cookbook/device_capabilities/upload_download.md
+++ b/docs/cookbook/device_capabilities/upload_download.md
@@ -102,8 +102,8 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Upload to the Backend (C) | [`Z2UI5_CL_SMP_APP_074`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_074.clas.abap) |
-| Download to the Browser (A) | [`Z2UI5_CL_SMP_APP_186`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_186.clas.abap) |
-| Upload with an UploadSet (C) | [`Z2UI5_CL_SMP_APP_517`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_517.clas.abap) |
+| Upload to the Backend (C) | [`Z2UI5_CL_SMP_APP_074`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_074.clas.abap) |
+| Download to the Browser (A) | [`Z2UI5_CL_SMP_APP_186`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_186.clas.abap) |
+| Upload with an UploadSet (C) | [`Z2UI5_CL_SMP_APP_517`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_517.clas.abap) |
diff --git a/docs/cookbook/event_navigation/backend.md b/docs/cookbook/event_navigation/backend.md
index e3c9289f..a39119d1 100644
--- a/docs/cookbook/event_navigation/backend.md
+++ b/docs/cookbook/event_navigation/backend.md
@@ -132,6 +132,53 @@ ENDMETHOD.
You can read any object attribute, but use only public and released attributes to avoid compatibility issues with future UI5 versions.
:::
+## A Control in Another View Slot
+
+The forms above read the control that fired, the event object, or a bound
+model property. None of them reaches a **different** control — an id is local
+to the view or fragment it was written in, and a `${...}` is a binding path,
+so it addresses data and never a control.
+
+`$controller.slotValue( slot, id, getter )` reads what a control in a named
+view slot currently holds. The classic case is a dialog whose value the button
+that closes it has to carry:
+
+```abap
+)->a( n = `press` v = client->_event(
+ val = `SAVE`
+ arg = `$controller.slotValue('POPUP','myEditor','getImagePngDataURL')` ) ).
+```
+
+```abap
+CASE client->get( )-event.
+ WHEN `SAVE`.
+ DATA(image) = client->get_event_arg( ).
+ client->popup_destroy( ).
+ENDCASE.
+```
+
+The slot is one of the `cs_view` keys — `MAIN`, `NEST`, `NEST2`, `POPUP`,
+`POPOVER` — and an **empty** slot searches every open one and then the global
+registry, the same resolution `cs_event-control_by_id` uses for
+`cs_view-main`.
+
+The getter takes no arguments on purpose. To *call* a control, use
+`cs_event-control_by_id`, which has a method whitelist in front of it; this is
+a read.
+
+::: tip It never throws, it logs
+A closed slot, an unknown id, a method the control does not have, or a getter
+that raises — each is written to the browser console and sent as the empty
+string. That is deliberate: an argument expression is evaluated while UI5
+dispatches the handler, so an expression that throws loses the whole **event**,
+leaving a button that does nothing and an app with no way to tell.
+:::
+
+`$controller.slotById( slot, id )` hands the control itself over, for a
+null-tolerant reader such as `$controller.textPath( )`. It answers `null` on a
+miss — and a method call on that `null` is exactly the throw the tip above
+describes, so prefer `slotValue( )` whenever you want a value.
+
## Model Properties
Read model properties bound to the event:
```abap
@@ -189,7 +236,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Extra Arguments with t_arg | [`Z2UI5_CL_SMP_APP_167`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_167.clas.abap) |
-| Control Objects in t_arg (FacetFilter) | [`Z2UI5_CL_SMP_APP_197`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_197.clas.abap) |
+| Extra Arguments with t_arg | [`Z2UI5_CL_SMP_APP_167`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_167.clas.abap) |
+| Control Objects in t_arg (FacetFilter) | [`Z2UI5_CL_SMP_APP_197`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_197.clas.abap) |
diff --git a/docs/cookbook/event_navigation/exception.md b/docs/cookbook/event_navigation/exception.md
index f5a5ee54..b8453f30 100644
--- a/docs/cookbook/event_navigation/exception.md
+++ b/docs/cookbook/event_navigation/exception.md
@@ -142,7 +142,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| MessageBox from SY, BAPIRET2 or Exception | [`Z2UI5_CL_SMP_APP_008`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_008.clas.abap) |
-| Uncaught Error and Error Popup | [`Z2UI5_CL_SMP_APP_464`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_464.clas.abap) |
+| MessageBox from SY, BAPIRET2 or Exception | [`Z2UI5_CL_SMP_APP_008`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_008.clas.abap) |
+| Uncaught Error and Error Popup | [`Z2UI5_CL_SMP_APP_464`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_464.clas.abap) |
diff --git a/docs/cookbook/event_navigation/frontend.md b/docs/cookbook/event_navigation/frontend.md
index fbf3a60d..45e8d958 100644
--- a/docs/cookbook/event_navigation/frontend.md
+++ b/docs/cookbook/event_navigation/frontend.md
@@ -88,7 +88,6 @@ The frontend events, as `z2ui5_if_client=>cs_event` carries them:
scroll_to TYPE string VALUE `SCROLL_TO`,
scroll_into_view TYPE string VALUE `SCROLL_INTO_VIEW`,
start_timer TYPE string VALUE `START_TIMER`,
- keyboard_set_mode TYPE string VALUE `KEYBOARD_SET_MODE`,
keyboard_shortcut TYPE string VALUE `KEYBOARD_SHORTCUT`,
open_new_tab TYPE string VALUE `OPEN_NEW_TAB`,
location_reload TYPE string VALUE `LOCATION_RELOAD`,
@@ -346,16 +345,16 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Link with preventDefault (A) | [`Z2UI5_CL_SMP_APP_472`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_472.clas.abap) |
-| Element Binding to the Selected Row (A) | [`Z2UI5_CL_SMP_APP_470`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_470.clas.abap) |
-| Expand a Panel by ID (setExpanded) (A) | [`Z2UI5_CL_SMP_APP_448`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_448.clas.abap) |
-| Switch NavContainer Page by ID (A) | [`Z2UI5_CL_SMP_APP_088`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_088.clas.abap) |
-| Wizard with Steps (A) | [`Z2UI5_CL_SMP_APP_202`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_202.clas.abap) |
-| Open the PDF Viewer by ID (A) | [`Z2UI5_CL_SMP_APP_449`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_449.clas.abap) |
-| Toggle by ID (toggleBy) (A) | [`Z2UI5_CL_SMP_APP_465`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_465.clas.abap) |
-| Inline CSS on a Control (css) (A) | [`Z2UI5_CL_SMP_APP_513`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_513.clas.abap) |
-| Aggregation Item by Index (A) | [`Z2UI5_CL_SMP_APP_514`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_514.clas.abap) |
-| The Global Busy Indicator (A) | [`Z2UI5_CL_SMP_APP_515`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_515.clas.abap) |
-| Register an Icon Font (A) | [`Z2UI5_CL_SMP_APP_518`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_518.clas.abap) |
+| Link with preventDefault (A) | [`Z2UI5_CL_SMP_APP_472`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_472.clas.abap) |
+| Element Binding to the Selected Row (A) | [`Z2UI5_CL_SMP_APP_470`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_470.clas.abap) |
+| Expand a Panel by ID (setExpanded) (A) | [`Z2UI5_CL_SMP_APP_448`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_448.clas.abap) |
+| Switch NavContainer Page by ID (A) | [`Z2UI5_CL_SMP_APP_088`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_088.clas.abap) |
+| Wizard with Steps (A) | [`Z2UI5_CL_SMP_APP_202`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_202.clas.abap) |
+| Open the PDF Viewer by ID (A) | [`Z2UI5_CL_SMP_APP_449`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_449.clas.abap) |
+| Toggle by ID (toggleBy) (A) | [`Z2UI5_CL_SMP_APP_465`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_465.clas.abap) |
+| Inline CSS on a Control (css) (A) | [`Z2UI5_CL_SMP_APP_513`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_513.clas.abap) |
+| Aggregation Item by Index (A) | [`Z2UI5_CL_SMP_APP_514`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_514.clas.abap) |
+| The Global Busy Indicator (A) | [`Z2UI5_CL_SMP_APP_515`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_515.clas.abap) |
+| Register an Icon Font (A) | [`Z2UI5_CL_SMP_APP_518`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_518.clas.abap) |
diff --git a/docs/cookbook/event_navigation/life_cycle.md b/docs/cookbook/event_navigation/life_cycle.md
index 024764d5..89c204fd 100644
--- a/docs/cookbook/event_navigation/life_cycle.md
+++ b/docs/cookbook/event_navigation/life_cycle.md
@@ -148,7 +148,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_495.clas.abap) |
-| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_004.clas.abap) |
+| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_495.clas.abap) |
+| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_004.clas.abap) |
diff --git a/docs/cookbook/event_navigation/navigation/app_state.md b/docs/cookbook/event_navigation/navigation/app_state.md
index 36f362d6..903b7ce0 100644
--- a/docs/cookbook/event_navigation/navigation/app_state.md
+++ b/docs/cookbook/event_navigation/navigation/app_state.md
@@ -218,6 +218,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| App State, Bookmark and Share | [`Z2UI5_CL_SMP_APP_498`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_498.clas.abap) |
+| App State, Bookmark and Share | [`Z2UI5_CL_SMP_APP_498`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_498.clas.abap) |
diff --git a/docs/cookbook/event_navigation/navigation/hash.md b/docs/cookbook/event_navigation/navigation/hash.md
index b55226cf..e5a0899e 100644
--- a/docs/cookbook/event_navigation/navigation/hash.md
+++ b/docs/cookbook/event_navigation/navigation/hash.md
@@ -207,8 +207,8 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Routing mode fresh | [`Z2UI5_CL_SMP_APP_468`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_468.clas.abap) |
-| Routing mode keep | [`Z2UI5_CL_SMP_APP_480`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_480.clas.abap) |
-| App-Owned Routing (#/detail) | [`Z2UI5_CL_SMP_APP_499`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_499.clas.abap) |
+| Routing Mode FRESH (a New Instance) | [`Z2UI5_CL_SMP_APP_468`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_468.clas.abap) |
+| Routing Mode KEEP (Back to the State) | [`Z2UI5_CL_SMP_APP_480`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_480.clas.abap) |
+| App-Owned Routing (#/detail) | [`Z2UI5_CL_SMP_APP_499`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_499.clas.abap) |
diff --git a/docs/cookbook/event_navigation/navigation/inner_app.md b/docs/cookbook/event_navigation/navigation/inner_app.md
index 0790bcdb..919022f1 100644
--- a/docs/cookbook/event_navigation/navigation/inner_app.md
+++ b/docs/cookbook/event_navigation/navigation/inner_app.md
@@ -156,8 +156,8 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Call and Leave Apps (nav_app_call) | [`Z2UI5_CL_SMP_APP_024`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_024.clas.abap) |
-| Return Data and Events to the Caller | [`Z2UI5_CL_SMP_APP_488`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_488.clas.abap) |
-| Data Loss Protection on Leaving (A,C) | [`Z2UI5_CL_SMP_APP_279`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_279.clas.abap) |
+| Call and Leave Apps (nav_app_call) | [`Z2UI5_CL_SMP_APP_024`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_024.clas.abap) |
+| Return Data and Events to the Caller | [`Z2UI5_CL_SMP_APP_488`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_488.clas.abap) |
+| Data Loss Protection on Leaving (A,C) | [`Z2UI5_CL_SMP_APP_279`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_279.clas.abap) |
diff --git a/docs/cookbook/expert_more/snippets.md b/docs/cookbook/expert_more/snippets.md
index d34f6dd1..9ae5a33d 100644
--- a/docs/cookbook/expert_more/snippets.md
+++ b/docs/cookbook/expert_more/snippets.md
@@ -369,8 +369,8 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_493.clas.abap) |
-| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_495.clas.abap) |
-| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_004.clas.abap) |
+| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_493.clas.abap) |
+| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_495.clas.abap) |
+| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_004.clas.abap) |
diff --git a/docs/cookbook/expert_more/value_help.md b/docs/cookbook/expert_more/value_help.md
index 79521f02..b90d1556 100644
--- a/docs/cookbook/expert_more/value_help.md
+++ b/docs/cookbook/expert_more/value_help.md
@@ -159,7 +159,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Value Help: Suggestions and F4 Dialog | [`Z2UI5_CL_SMP_APP_009`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_009.clas.abap) |
-| MultiInput with Tokens (C) | [`Z2UI5_CL_SMP_APP_078`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_078.clas.abap) |
+| Value Help: Suggestions and F4 Dialog | [`Z2UI5_CL_SMP_APP_009`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_009.clas.abap) |
+| MultiInput with Tokens (C) | [`Z2UI5_CL_SMP_APP_078`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_078.clas.abap) |
diff --git a/docs/cookbook/model/binding.md b/docs/cookbook/model/binding.md
index acffae21..ff4aba79 100644
--- a/docs/cookbook/model/binding.md
+++ b/docs/cookbook/model/binding.md
@@ -178,10 +178,10 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics II — Data Binding: Input and Button | [`Z2UI5_CL_SMP_APP_494`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_494.clas.abap) |
-| Types for Integer, Decimal, Date and Time | [`Z2UI5_CL_SMP_APP_047`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_047.clas.abap) |
-| Structure Fields and INCLUDEs | [`Z2UI5_CL_SMP_APP_166`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_166.clas.abap) |
-| Single Table Cell (tab_index) | [`Z2UI5_CL_SMP_APP_144`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_144.clas.abap) |
-| Dynamic Table Typed at Runtime (RTTI) | [`Z2UI5_CL_SMP_APP_061`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_061.clas.abap) |
+| Basics II — Data Binding: Input and Button | [`Z2UI5_CL_SMP_APP_494`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_494.clas.abap) |
+| Types for Integer, Decimal, Date and Time | [`Z2UI5_CL_SMP_APP_047`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_047.clas.abap) |
+| Structure Fields and INCLUDEs | [`Z2UI5_CL_SMP_APP_166`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_166.clas.abap) |
+| Single Table Cell (tab_index) | [`Z2UI5_CL_SMP_APP_144`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_144.clas.abap) |
+| Dynamic Table Typed at Runtime (RTTI) | [`Z2UI5_CL_SMP_APP_061`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_061.clas.abap) |
diff --git a/docs/cookbook/model/device_model.md b/docs/cookbook/model/device_model.md
index b2c34025..feabbe8d 100644
--- a/docs/cookbook/model/device_model.md
+++ b/docs/cookbook/model/device_model.md
@@ -136,6 +136,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Device Model: Phone, Tablet, Desktop (A) | [`Z2UI5_CL_SMP_APP_445`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_445.clas.abap) |
+| Device Model: Phone, Tablet, Desktop (A) | [`Z2UI5_CL_SMP_APP_445`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_445.clas.abap) |
diff --git a/docs/cookbook/model/expression_binding.md b/docs/cookbook/model/expression_binding.md
index 349d3361..65d31955 100644
--- a/docs/cookbook/model/expression_binding.md
+++ b/docs/cookbook/model/expression_binding.md
@@ -126,6 +126,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Expression Binding, Types and Composite Parts | [`Z2UI5_CL_SMP_APP_027`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_027.clas.abap) |
+| Expression Binding, Types and Composite Parts | [`Z2UI5_CL_SMP_APP_027`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_027.clas.abap) |
diff --git a/docs/cookbook/model/formatter.md b/docs/cookbook/model/formatter.md
index be5da013..9c5e3475 100644
--- a/docs/cookbook/model/formatter.md
+++ b/docs/cookbook/model/formatter.md
@@ -365,11 +365,11 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Currency Amounts (sap.ui.model.type.Currency) | [`Z2UI5_CL_SMP_APP_067`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_067.clas.abap) |
-| ABAP Date and Time Strings (DATS/TIMS) | [`Z2UI5_CL_SMP_APP_450`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_450.clas.abap) |
-| Date Object for the DatePicker | [`Z2UI5_CL_SMP_APP_457`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_457.clas.abap) |
-| Date Objects for the PlanningCalendar | [`Z2UI5_CL_SMP_APP_456`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_456.clas.abap) |
-| Inline Icons in a Text | [`Z2UI5_CL_SMP_APP_466`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_466.clas.abap) |
-| When Not to Use One: Compute in ABAP | [`Z2UI5_CL_SMP_APP_453`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_453.clas.abap) |
+| Currency Amounts (sap.ui.model.type.Currency) | [`Z2UI5_CL_SMP_APP_067`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_067.clas.abap) |
+| ABAP Date and Time Strings (DATS/TIMS) | [`Z2UI5_CL_SMP_APP_450`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_450.clas.abap) |
+| Date Object for the DatePicker | [`Z2UI5_CL_SMP_APP_457`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_457.clas.abap) |
+| Date Objects for the PlanningCalendar | [`Z2UI5_CL_SMP_APP_456`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_456.clas.abap) |
+| Inline Icons in a Text | [`Z2UI5_CL_SMP_APP_466`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_466.clas.abap) |
+| When Not to Use One: Compute in ABAP | [`Z2UI5_CL_SMP_APP_453`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_453.clas.abap) |
diff --git a/docs/cookbook/model/size_limit.md b/docs/cookbook/model/size_limit.md
index 35af3099..f85fa8a7 100644
--- a/docs/cookbook/model/size_limit.md
+++ b/docs/cookbook/model/size_limit.md
@@ -161,6 +161,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Model setSizeLimit for Large Tables (A) | [`Z2UI5_CL_SMP_APP_071`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_071.clas.abap) |
+| Model setSizeLimit for Large Tables (A) | [`Z2UI5_CL_SMP_APP_071`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_071.clas.abap) |
diff --git a/docs/cookbook/model/tables.md b/docs/cookbook/model/tables.md
index d32c3e0b..a11bfba3 100644
--- a/docs/cookbook/model/tables.md
+++ b/docs/cookbook/model/tables.md
@@ -229,15 +229,15 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_011.clas.abap) |
-| Selection Modes: Single and Multi Select | [`Z2UI5_CL_SMP_APP_019`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_019.clas.abap) |
-| Large Table with Growing and ScrollContainer | [`Z2UI5_CL_SMP_APP_006`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_006.clas.abap) |
-| Filter Rows in the Backend | [`Z2UI5_CL_SMP_APP_045`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_045.clas.abap) |
-| Search in the Backend (SearchField) | [`Z2UI5_CL_SMP_APP_053`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_053.clas.abap) |
-| Live Search over a Large Table | [`Z2UI5_CL_SMP_APP_059`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_059.clas.abap) |
-| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_070.clas.abap) |
-| Events on Cell Level | [`Z2UI5_CL_SMP_APP_160`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_160.clas.abap) |
-| Keep Column Filters on Refresh (C) | [`Z2UI5_CL_SMP_APP_143`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_143.clas.abap) |
-| Drag and Drop Rows (A) | [`Z2UI5_CL_SMP_APP_459`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_459.clas.abap) |
+| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_011.clas.abap) |
+| Selection Modes: Single and Multi Select | [`Z2UI5_CL_SMP_APP_019`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_019.clas.abap) |
+| Large Table with Growing and ScrollContainer | [`Z2UI5_CL_SMP_APP_006`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_006.clas.abap) |
+| Filter Rows in the Backend | [`Z2UI5_CL_SMP_APP_045`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_045.clas.abap) |
+| Search in the Backend (SearchField) | [`Z2UI5_CL_SMP_APP_053`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_053.clas.abap) |
+| Live Search over a Large Table | [`Z2UI5_CL_SMP_APP_059`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_059.clas.abap) |
+| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_070.clas.abap) |
+| Events on Cell Level | [`Z2UI5_CL_SMP_APP_160`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_160.clas.abap) |
+| Keep Column Filters on Refresh (C) | [`Z2UI5_CL_SMP_APP_143`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_143.clas.abap) |
+| Drag and Drop Rows (A) | [`Z2UI5_CL_SMP_APP_459`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_459.clas.abap) |
diff --git a/docs/cookbook/model/trees.md b/docs/cookbook/model/trees.md
index 7541f546..e1e72708 100644
--- a/docs/cookbook/model/trees.md
+++ b/docs/cookbook/model/trees.md
@@ -105,9 +105,9 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Nested ABAP Table in a sap.m.Tree | [`Z2UI5_CL_SMP_APP_460`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_460.clas.abap) |
-| Drag and Drop Nodes (A,C) | [`Z2UI5_CL_SMP_APP_461`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_461.clas.abap) |
-| Inside a Dialog (C) | [`Z2UI5_CL_SMP_APP_462`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_462.clas.abap) |
-| Editable Nodes with CustomTreeItem (C) | [`Z2UI5_CL_SMP_APP_463`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_463.clas.abap) |
+| Nested ABAP Table in a sap.m.Tree | [`Z2UI5_CL_SMP_APP_460`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_460.clas.abap) |
+| Drag and Drop Nodes (A,C) | [`Z2UI5_CL_SMP_APP_461`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_461.clas.abap) |
+| Inside a Dialog (C) | [`Z2UI5_CL_SMP_APP_462`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_462.clas.abap) |
+| Editable Nodes with CustomTreeItem (C) | [`Z2UI5_CL_SMP_APP_463`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_463.clas.abap) |
diff --git a/docs/cookbook/popup_popover/popover.md b/docs/cookbook/popup_popover/popover.md
index c76bdda0..e7da436b 100644
--- a/docs/cookbook/popup_popover/popover.md
+++ b/docs/cookbook/popup_popover/popover.md
@@ -86,11 +86,11 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basic Example with Placement | [`Z2UI5_CL_SMP_APP_026`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_026.clas.abap) |
-| Open from a Table Row (A) | [`Z2UI5_CL_SMP_APP_052`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_052.clas.abap) |
-| Select from a List | [`Z2UI5_CL_SMP_APP_081`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_081.clas.abap) |
-| QuickView Contact Card | [`Z2UI5_CL_SMP_APP_109`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_109.clas.abap) |
-| Toggle by ID (toggleBy) (A) | [`Z2UI5_CL_SMP_APP_465`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_465.clas.abap) |
-| Open Together with the View Build | [`Z2UI5_CL_SMP_APP_490`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_490.clas.abap) |
+| Basic Example with Placement | [`Z2UI5_CL_SMP_APP_026`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_026.clas.abap) |
+| Open from a Table Row (A) | [`Z2UI5_CL_SMP_APP_052`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_052.clas.abap) |
+| Select from a List | [`Z2UI5_CL_SMP_APP_081`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_081.clas.abap) |
+| QuickView Contact Card | [`Z2UI5_CL_SMP_APP_109`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_109.clas.abap) |
+| Toggle by ID (toggleBy) (A) | [`Z2UI5_CL_SMP_APP_465`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_465.clas.abap) |
+| Open Together with the View Build | [`Z2UI5_CL_SMP_APP_490`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_490.clas.abap) |
diff --git a/docs/cookbook/popup_popover/popup.md b/docs/cookbook/popup_popover/popup.md
index 12cfca6d..fe3b77df 100644
--- a/docs/cookbook/popup_popover/popup.md
+++ b/docs/cookbook/popup_popover/popup.md
@@ -189,10 +189,10 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Ways to Open a Dialog (A) | [`Z2UI5_CL_SMP_APP_012`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_012.clas.abap) |
-| Value Help: Suggestions and F4 Dialog | [`Z2UI5_CL_SMP_APP_009`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_009.clas.abap) |
-| Dialog inside a Dialog | [`Z2UI5_CL_SMP_APP_161`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_161.clas.abap) |
-| Navigate between Dialogs (NavContainer) (A) | [`Z2UI5_CL_SMP_APP_170`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_170.clas.abap) |
-| Element Binding to the Selected Row (A) | [`Z2UI5_CL_SMP_APP_470`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_470.clas.abap) |
+| Ways to Open a Dialog (A) | [`Z2UI5_CL_SMP_APP_012`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_012.clas.abap) |
+| Value Help: Suggestions and F4 Dialog | [`Z2UI5_CL_SMP_APP_009`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_009.clas.abap) |
+| Dialog inside a Dialog | [`Z2UI5_CL_SMP_APP_161`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_161.clas.abap) |
+| Navigate between Dialogs (NavContainer) (A) | [`Z2UI5_CL_SMP_APP_170`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_170.clas.abap) |
+| Element Binding to the Selected Row (A) | [`Z2UI5_CL_SMP_APP_470`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_470.clas.abap) |
diff --git a/docs/cookbook/translation_messages/logging.md b/docs/cookbook/translation_messages/logging.md
index bf5d9b1b..f768d580 100644
--- a/docs/cookbook/translation_messages/logging.md
+++ b/docs/cookbook/translation_messages/logging.md
@@ -100,6 +100,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| MessageBox for Any Data | [`Z2UI5_CL_SMP_APP_502`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_502.clas.abap) |
+| MessageBox for Any Data | [`Z2UI5_CL_SMP_APP_502`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_502.clas.abap) |
diff --git a/docs/cookbook/translation_messages/message.md b/docs/cookbook/translation_messages/message.md
index 0cf6afa7..9a0436f1 100644
--- a/docs/cookbook/translation_messages/message.md
+++ b/docs/cookbook/translation_messages/message.md
@@ -234,13 +234,13 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| MessageToast via the Global Object | [`Z2UI5_CL_SMP_APP_381`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_381.clas.abap) |
-| MessageBox, Types and Custom Actions | [`Z2UI5_CL_SMP_APP_382`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_382.clas.abap) |
-| MessageBox from SY, BAPIRET2 or Exception | [`Z2UI5_CL_SMP_APP_008`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_008.clas.abap) |
-| MessageView and MessagePopover (A) | [`Z2UI5_CL_SMP_APP_452`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_452.clas.abap) |
-| Message Model and MessageManager (C) | [`Z2UI5_CL_SMP_APP_467`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_467.clas.abap) |
-| MessagePopover URL Policy (A) | [`Z2UI5_CL_SMP_APP_474`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_474.clas.abap) |
-| MessageBox for Any Data | [`Z2UI5_CL_SMP_APP_502`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_502.clas.abap) |
-| MessageBox via the Global Object | [`Z2UI5_CL_SMP_APP_512`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_512.clas.abap) |
+| MessageToast via the Global Object | [`Z2UI5_CL_SMP_APP_381`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_381.clas.abap) |
+| MessageBox, Types and Custom Actions | [`Z2UI5_CL_SMP_APP_382`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_382.clas.abap) |
+| MessageBox from SY, BAPIRET2 or Exception | [`Z2UI5_CL_SMP_APP_008`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_008.clas.abap) |
+| MessageView and MessagePopover (A) | [`Z2UI5_CL_SMP_APP_452`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_452.clas.abap) |
+| Message Model and MessageManager (C) | [`Z2UI5_CL_SMP_APP_467`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_467.clas.abap) |
+| MessagePopover URL Policy (A) | [`Z2UI5_CL_SMP_APP_474`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_474.clas.abap) |
+| MessageBox for Any Data | [`Z2UI5_CL_SMP_APP_502`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_502.clas.abap) |
+| MessageBox via the Global Object | [`Z2UI5_CL_SMP_APP_512`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_512.clas.abap) |
diff --git a/docs/cookbook/translation_messages/translation_i18n.md b/docs/cookbook/translation_messages/translation_i18n.md
index d4e58c39..b1e3f4d0 100644
--- a/docs/cookbook/translation_messages/translation_i18n.md
+++ b/docs/cookbook/translation_messages/translation_i18n.md
@@ -176,6 +176,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics VII — Translatable Texts (Text Elements) | [`Z2UI5_CL_SMP_APP_519`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_519.clas.abap) |
+| Basics VII — Translatable Texts (Text Elements) | [`Z2UI5_CL_SMP_APP_519`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_519.clas.abap) |
diff --git a/docs/cookbook/troubleshooting/common_failures.md b/docs/cookbook/troubleshooting/common_failures.md
index e16cdc7b..ba86b775 100644
--- a/docs/cookbook/troubleshooting/common_failures.md
+++ b/docs/cookbook/troubleshooting/common_failures.md
@@ -251,6 +251,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics V — The Developer Tools (Ctrl+F12) | [`Z2UI5_CL_SMP_APP_496`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_496.clas.abap) |
+| Basics V — The Developer Tools (Ctrl+F12) | [`Z2UI5_CL_SMP_APP_496`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_496.clas.abap) |
diff --git a/docs/cookbook/view/definition.md b/docs/cookbook/view/definition.md
index 9facd4e0..c2a6ba96 100644
--- a/docs/cookbook/view/definition.md
+++ b/docs/cookbook/view/definition.md
@@ -217,8 +217,8 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_493.clas.abap) |
-| Ship Your Own CSS with the View | [`Z2UI5_CL_SMP_APP_050`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_050.clas.abap) |
-| FlexBox Layouts with Custom Classes | [`Z2UI5_CL_SMP_APP_255`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_255.clas.abap) |
+| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_493.clas.abap) |
+| Ship Your Own CSS with the View | [`Z2UI5_CL_SMP_APP_050`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_050.clas.abap) |
+| FlexBox Layouts with Custom Classes | [`Z2UI5_CL_SMP_APP_255`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_255.clas.abap) |
diff --git a/docs/cookbook/view/nested_views.md b/docs/cookbook/view/nested_views.md
index 9e09173a..bb0ca533 100644
--- a/docs/cookbook/view/nested_views.md
+++ b/docs/cookbook/view/nested_views.md
@@ -337,10 +337,10 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basic Example (nest_view_display) | [`Z2UI5_CL_SMP_APP_065`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_065.clas.abap) |
-| Embed Another App's View | [`Z2UI5_CL_SMP_APP_104`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_104.clas.abap) |
-| Master-Detail with FlexibleColumnLayout | [`Z2UI5_CL_SMP_APP_097`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_097.clas.abap) |
-| Three Columns with FlexibleColumnLayout | [`Z2UI5_CL_SMP_APP_098`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_098.clas.abap) |
-| Dynamic Content in a Nested View | [`Z2UI5_CL_SMP_APP_176`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_176.clas.abap) |
+| Basic Example (nest_view_display) | [`Z2UI5_CL_SMP_APP_065`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_065.clas.abap) |
+| Embed Another App's View | [`Z2UI5_CL_SMP_APP_104`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_104.clas.abap) |
+| Master-Detail with FlexibleColumnLayout | [`Z2UI5_CL_SMP_APP_097`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_097.clas.abap) |
+| Three Columns with FlexibleColumnLayout | [`Z2UI5_CL_SMP_APP_098`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_098.clas.abap) |
+| Dynamic Content in a Nested View | [`Z2UI5_CL_SMP_APP_176`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_176.clas.abap) |
diff --git a/docs/cookbook/view/xml_templating.md b/docs/cookbook/view/xml_templating.md
index dbbf04fa..ab593873 100644
--- a/docs/cookbook/view/xml_templating.md
+++ b/docs/cookbook/view/xml_templating.md
@@ -296,7 +296,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Build Columns Dynamically (template:repeat) | [`Z2UI5_CL_SMP_APP_173`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_173.clas.abap) |
-| Dynamic Content in a Nested View | [`Z2UI5_CL_SMP_APP_176`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_176.clas.abap) |
+| Build Columns Dynamically (template:repeat) | [`Z2UI5_CL_SMP_APP_173`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_173.clas.abap) |
+| Dynamic Content in a Nested View | [`Z2UI5_CL_SMP_APP_176`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_176.clas.abap) |
diff --git a/docs/get_started/hello_world.md b/docs/get_started/hello_world.md
index 70b2e7cd..c76adf87 100644
--- a/docs/get_started/hello_world.md
+++ b/docs/get_started/hello_world.md
@@ -161,6 +161,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_493.clas.abap) |
+| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_493.clas.abap) |
diff --git a/docs/resources/deprecations.md b/docs/resources/deprecations.md
index abe732c8..8e9e9928 100644
--- a/docs/resources/deprecations.md
+++ b/docs/resources/deprecations.md
@@ -51,6 +51,10 @@ tell you what is coming if you do not.
| `_bind_edit( )` | `_bind( )` | 1.142.0 |
| `_bind( custom_mapper = … custom_filter = … )` | `omit_initial` / `omit_initial_paths` / `json`, or shape it in ABAP | 1.143.0 |
| `_bind( view = … )` | omit the parameter | **removed**, *next release* |
+| `cs_event-keyboard_set_mode` | the bound `inputMode` property of `z2ui5.cc.InputExt` — see [Soft Keyboard](../cookbook/browser_interaction/soft_keyboard) | **removed**, *next release* |
+| `cs_event-nav_container_to` and its `nest_` / `nest2_` / `popup_` / `popover_` variants | `cs_event-control_by_id` with method `to`, the slot as the `view` parameter | **removed**, *next release* |
+| the DDIC structure `Z2UI5_T_02` | name a type your own system has | **removed**, *next release* |
+| `cs_event-image_editor_popup_close` | `_event( arg = `$controller.slotValue('POPUP','myEditor','getImagePngDataURL')` )` plus the app's own `popup_destroy( )` | **removed**, *next release* |
| `z2ui5_if_app~check_sticky` / `check_initialized` | `set_session_stateful( )` / `check_on_init( )` | **removed**, 1.143.0 |
| `set_nav_back( )` / `set_nav_routing( )` | `follow_up_action( )` | **removed**, 1.143.0 |
| `cs_event-nav_to_route` | `nav_app_call( )` | **removed**, 1.143.0 |
@@ -170,8 +174,8 @@ replacement has a sample that proves it:
| What you used AJSON for | What to write instead | Sample |
|---|---|---|
-| Drop initial fields so the UI5 default applies (`create_empty_filter`) | `omit_initial`, or `omit_initial_paths` for single columns | [`Z2UI5_CL_SMP_APP_507`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_507.clas.abap) |
-| Get a model **node** instead of a quoted string — under keys no ABAP component could be named after | `json = abap_true` | [`Z2UI5_CL_SMP_APP_509`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_509.clas.abap) |
+| Drop initial fields so the UI5 default applies (`create_empty_filter`) | `omit_initial`, or `omit_initial_paths` for single columns | [`Z2UI5_CL_SMP_APP_507`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_507.clas.abap) |
+| Get a model **node** instead of a quoted string — under keys no ABAP component could be named after | `json = abap_true` | [`Z2UI5_CL_SMP_APP_509`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_509.clas.abap) |
| Anything else | Shape the value in ABAP before you bind it | — |
```abap
@@ -220,22 +224,42 @@ compiles against.
Both parameters are still evaluated and keep working — existing code does not
break.
-### The `nav_container_to` event family
+### The `nav_container_to` event family — removed
`cs_event-nav_container_to` and its `nest_` / `nest2_` / `popup_` / `popover_`
-variants still work — the backend maps them onto `cs_event-control_by_id` with
-method `to`. New code can address the container directly:
+variants are **gone**; an app that names one fails at compile time. They never
+reached the frontend as events of their own — the backend rewrote each of them
+into `cs_event-control_by_id` with method `to` — so the migration is to write
+that call, which additionally reaches every *other* method of a NavContainer
+instead of the single `to` the constants could express:
```abap
" old
client->follow_up_action( val = client->cs_event-nav_container_to
- t_arg = VALUE #( ( `page2` ) ) ).
+ t_arg = VALUE #( ( `navcon` ) ( `page2` ) ) ).
" new
client->follow_up_action( val = client->cs_event-control_by_id
t_arg = VALUE #( ( `navcon` ) ( `to` ) ( `page2` ) ) ).
```
+A container in another view slot took a variant of its own; now it is the
+`view` parameter:
+
+```abap
+" old: cs_event-popup_nav_container_to
+" new
+client->follow_up_action( val = client->cs_event-control_by_id
+ view = client->cs_view-popup
+ t_arg = VALUE #( ( `navcon` ) ( `to` ) ( `page2` ) ) ).
+```
+
+One difference worth knowing when migrating the MAIN variant: `cs_view-main`
+travels as the *empty* slot where the removed constant injected the literal
+`MAIN`. An empty slot resolves the id across every open view, so it still finds
+a container in the main view — it is wider, never narrower, and only an id that
+exists in two open slots at once could tell the two apart.
+
`cs_event-z2ui5` sits in the same obsolete group. It calls a function you
registered as a `z2ui5.*` global; passing the expression straight to
`follow_up_action( )` is the same call without the indirection:
@@ -370,9 +394,9 @@ that; it needs no flag.
**Inbound — an event argument that arrives as JSON.** Write the few lines that
read the field you need. `Z2UI5_CL_SMP_APP_327`
-([`json_get_value`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_327.clas.abap),
+([`json_get_value`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_327.clas.abap),
one field of a flat object) and `Z2UI5_CL_SMP_APP_197`
-([`json_get_values`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_197.clas.abap),
+([`json_get_values`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_197.clas.abap),
one property across an array of objects) are the pattern to copy: find
`"":"` and take what stands up to the next quote.
diff --git a/docs/tutorials/walkthrough/step-1.md b/docs/tutorials/walkthrough/step-1.md
index da814047..a8badaa6 100644
--- a/docs/tutorials/walkthrough/step-1.md
+++ b/docs/tutorials/walkthrough/step-1.md
@@ -75,6 +75,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_493.clas.abap) |
+| Basics I — Hello World, the Smallest App | [`Z2UI5_CL_SMP_APP_493`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_493.clas.abap) |
diff --git a/docs/tutorials/walkthrough/step-10.md b/docs/tutorials/walkthrough/step-10.md
index e697c491..a30913b2 100644
--- a/docs/tutorials/walkthrough/step-10.md
+++ b/docs/tutorials/walkthrough/step-10.md
@@ -320,7 +320,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_070.clas.abap) |
-| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_011.clas.abap) |
+| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_070.clas.abap) |
+| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_011.clas.abap) |
diff --git a/docs/tutorials/walkthrough/step-3.md b/docs/tutorials/walkthrough/step-3.md
index 11f3ce7a..a929e52c 100644
--- a/docs/tutorials/walkthrough/step-3.md
+++ b/docs/tutorials/walkthrough/step-3.md
@@ -93,7 +93,7 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_495.clas.abap) |
-| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_004.clas.abap) |
+| Basics III — Lifecycle: Init, Event, Navigated | [`Z2UI5_CL_SMP_APP_495`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_495.clas.abap) |
+| Basics IV — Events, Views and Roundtrips | [`Z2UI5_CL_SMP_APP_004`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_004.clas.abap) |
diff --git a/docs/tutorials/walkthrough/step-4.md b/docs/tutorials/walkthrough/step-4.md
index 0ba8d949..a7879cbe 100644
--- a/docs/tutorials/walkthrough/step-4.md
+++ b/docs/tutorials/walkthrough/step-4.md
@@ -84,6 +84,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Basics II — Data Binding: Input and Button | [`Z2UI5_CL_SMP_APP_494`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_494.clas.abap) |
+| Basics II — Data Binding: Input and Button | [`Z2UI5_CL_SMP_APP_494`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_494.clas.abap) |
diff --git a/docs/tutorials/walkthrough/step-5.md b/docs/tutorials/walkthrough/step-5.md
index fc82b96e..5f38ce0f 100644
--- a/docs/tutorials/walkthrough/step-5.md
+++ b/docs/tutorials/walkthrough/step-5.md
@@ -97,6 +97,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| StandardListItem, Highlight and Events | [`Z2UI5_CL_SMP_APP_048`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_048.clas.abap) |
+| StandardListItem, Highlight and Events | [`Z2UI5_CL_SMP_APP_048`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_048.clas.abap) |
diff --git a/docs/tutorials/walkthrough/step-6.md b/docs/tutorials/walkthrough/step-6.md
index 5a54ea6f..42126e14 100644
--- a/docs/tutorials/walkthrough/step-6.md
+++ b/docs/tutorials/walkthrough/step-6.md
@@ -108,6 +108,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Extra Arguments with t_arg | [`Z2UI5_CL_SMP_APP_167`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_167.clas.abap) |
+| Extra Arguments with t_arg | [`Z2UI5_CL_SMP_APP_167`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_167.clas.abap) |
diff --git a/docs/tutorials/walkthrough/step-7.md b/docs/tutorials/walkthrough/step-7.md
index 3aa3883f..45c1837c 100644
--- a/docs/tutorials/walkthrough/step-7.md
+++ b/docs/tutorials/walkthrough/step-7.md
@@ -142,6 +142,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Ways to Open a Dialog (A) | [`Z2UI5_CL_SMP_APP_012`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_012.clas.abap) |
+| Ways to Open a Dialog (A) | [`Z2UI5_CL_SMP_APP_012`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_012.clas.abap) |
diff --git a/docs/tutorials/walkthrough/step-8.md b/docs/tutorials/walkthrough/step-8.md
index 3d5be4a6..073e2540 100644
--- a/docs/tutorials/walkthrough/step-8.md
+++ b/docs/tutorials/walkthrough/step-8.md
@@ -160,6 +160,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_011.clas.abap) |
+| Editable Cells, Add and Delete Rows | [`Z2UI5_CL_SMP_APP_011`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_011.clas.abap) |
diff --git a/docs/tutorials/walkthrough/step-9.md b/docs/tutorials/walkthrough/step-9.md
index 893a4f66..65c60127 100644
--- a/docs/tutorials/walkthrough/step-9.md
+++ b/docs/tutorials/walkthrough/step-9.md
@@ -188,6 +188,6 @@ unless its row names another of the three sample repositories — pull that repo
| Sample | Class |
|---|---|
-| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/01/z2ui5_cl_smp_app_070.clas.abap) |
+| Full Example with sap.ui.table | [`Z2UI5_CL_SMP_APP_070`](https://github.com/abap2UI5/samples/blob/main/src/z2ui5_cl_smp_app_070.clas.abap) |
diff --git a/scripts/lib/vocabulary.txt b/scripts/lib/vocabulary.txt
index 2e4ee71f..e15e6cf7 100644
--- a/scripts/lib/vocabulary.txt
+++ b/scripts/lib/vocabulary.txt
@@ -126,6 +126,7 @@ formatter
formatters
fullscreen
geolocation
+getter
github
gitignored
globals