@smartbit4all/ng-client 7.3.5 → 7.3.6

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.
package/MIGRATION-7.0.md CHANGED
@@ -2143,7 +2143,7 @@ Additive: a host without a keymap gets one binding, Escape closes a dialog that
2143
2143
  - **New in the public API:** model `Keybinding`, `View.keybindings`,
2144
2144
  `ComponentModel.keybindings`; Java `KeyChord`, `KeyboardKeys`, `KeybindingSettingApi`.
2145
2145
 
2146
- ### New in 7.3.3: a stored layout names its HTML template by key (#30388)
2146
+ ### New in 7.3.5: a stored layout names its HTML template by key (#30388)
2147
2147
 
2148
2148
  Additive, and needs the matching platform. Nothing changes for a layout that names no key.
2149
2149
 
package/WIDGETS.md CHANGED
@@ -159,6 +159,34 @@ An action trigger (`data-sb4-action`) looks its action up in the same list, and
159
159
  (`data-sb4-icon`, `data-sb4-icon-key`) hydrates into a `smart-icon` the same way. See
160
160
  `HTML-WIDGET.md`.
161
161
 
162
+ **A toolbar can be drawn as tabs.** How it draws its actions is the `appearance` of its
163
+ `[toolbarPropertes]` (`ToolbarAppearance`: `BUTTONS`, the default, or `TABS`), next to `direction`,
164
+ `alignment` and `scrollable`. A backend layout sends it in the toolbar's properties; a template
165
+ sets it the same way:
166
+
167
+ ```html
168
+ <smart-ui-action-toolbar [id]="toolbarId" [toolbarPropertes]="{ appearance: 'TABS' }">
169
+ </smart-ui-action-toolbar>
170
+ ```
171
+
172
+ A `TABS` toolbar draws every action that takes part in view-activation (`viewActivated` is not
173
+ `null`) as a tab and the activated one as the selected tab; any other action stays the button it
174
+ would be, in the same row. The row gets the class `sb4-tabs` and the role `tablist`, a tab the
175
+ class `sb4-tab`, the role `tab` and `aria-selected`, on top of the `sb4-view-opener` /
176
+ `sb4-view-activated` classes it had anyway — so the selected tab is
177
+ `button.sb4-tab.sb4-view-activated`. An action with a `rowState` gets, as a tab, the class of a
178
+ grid row in that state (`sm-grid-row-new`, `-modified`, `-deleted`).
179
+
180
+ The row follows `direction`: a horizontal one marks the selected tab on its bottom edge and
181
+ scrolls with the arrow buttons when `scrollable`; a vertical one marks it on the edge facing the
182
+ content, ignores `scrollable` and scrolls natively, so its holder has to give it a height. Restyle
183
+ through the `--sb4-tab-*` custom properties (`-color`, `-selected-color`, `-indicator-color`,
184
+ `-indicator-width`, `-bg`, `-selected-bg`, `-hover-bg`, `-font-weight`, `-selected-font-weight`,
185
+ `-gap`, `-row-border-color`), set on any element around the toolbar. The tab look lives in the
186
+ toolbar's stylesheet: a `ui-action-button` with `[tab]="true"` outside a `TABS` toolbar gets the
187
+ role and the class but not the look. Which action is a tab, and which one is selected, is the
188
+ backend's to say — a widget never sets `viewActivated`.
189
+
162
190
  **A `UiActionModel` is frozen.** Every field is `readonly`, and `[uiActionModels]` takes
163
191
  `readonly UiActionModel[]`. Build a new entry; never edit one. Writing into an entry a
164
192
  toolbar is already rendering never reached the screen under zone.js either — it only appeared