@ui5/webcomponents 2.24.0-rc.1 → 2.24.0-rc.3

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 (138) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Bar.d.ts +4 -2
  4. package/dist/Bar.js +4 -2
  5. package/dist/Bar.js.map +1 -1
  6. package/dist/Breadcrumbs.d.ts +7 -0
  7. package/dist/Breadcrumbs.js +4 -1
  8. package/dist/Breadcrumbs.js.map +1 -1
  9. package/dist/ComboBox.d.ts +5 -0
  10. package/dist/ComboBox.js +26 -6
  11. package/dist/ComboBox.js.map +1 -1
  12. package/dist/ComboBoxItemCustom.d.ts +50 -0
  13. package/dist/ComboBoxItemCustom.js +71 -0
  14. package/dist/ComboBoxItemCustom.js.map +1 -0
  15. package/dist/ComboBoxItemCustomTemplate.d.ts +2 -0
  16. package/dist/ComboBoxItemCustomTemplate.js +9 -0
  17. package/dist/ComboBoxItemCustomTemplate.js.map +1 -0
  18. package/dist/ComboBoxPopoverTemplate.js +2 -2
  19. package/dist/ComboBoxPopoverTemplate.js.map +1 -1
  20. package/dist/Dialog.d.ts +19 -7
  21. package/dist/Dialog.js +88 -15
  22. package/dist/Dialog.js.map +1 -1
  23. package/dist/DialogTemplate.js +6 -10
  24. package/dist/DialogTemplate.js.map +1 -1
  25. package/dist/MenuItem.d.ts +1 -0
  26. package/dist/MenuItem.js +7 -0
  27. package/dist/MenuItem.js.map +1 -1
  28. package/dist/MultiComboBox.d.ts +2 -0
  29. package/dist/MultiComboBox.js +17 -7
  30. package/dist/MultiComboBox.js.map +1 -1
  31. package/dist/MultiComboBoxItemCustom.d.ts +67 -0
  32. package/dist/MultiComboBoxItemCustom.js +108 -0
  33. package/dist/MultiComboBoxItemCustom.js.map +1 -0
  34. package/dist/MultiComboBoxItemCustomTemplate.d.ts +2 -0
  35. package/dist/MultiComboBoxItemCustomTemplate.js +10 -0
  36. package/dist/MultiComboBoxItemCustomTemplate.js.map +1 -0
  37. package/dist/Popup.js +2 -4
  38. package/dist/Popup.js.map +1 -1
  39. package/dist/bundle.esm.js +2 -0
  40. package/dist/bundle.esm.js.map +1 -1
  41. package/dist/css/themes/ComboBoxItemCustom.css +1 -0
  42. package/dist/css/themes/Dialog.css +1 -1
  43. package/dist/css/themes/Form.css +1 -1
  44. package/dist/css/themes/FormItemSpan.css +1 -1
  45. package/dist/css/themes/FormLayout.css +1 -1
  46. package/dist/css/themes/MultiComboBoxItemCustom.css +1 -0
  47. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  48. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  49. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  50. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  51. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  52. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +2 -5
  53. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  54. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +2 -5
  55. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  56. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  57. package/dist/custom-elements-internal.json +354 -9
  58. package/dist/custom-elements.json +243 -9
  59. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  60. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  61. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  62. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  63. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  64. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  65. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  66. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  67. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  68. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  69. package/dist/generated/i18n/i18n-defaults.d.ts +12 -5
  70. package/dist/generated/i18n/i18n-defaults.js +12 -5
  71. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  72. package/dist/generated/themes/ComboBoxItemCustom.css.d.ts +2 -0
  73. package/dist/generated/themes/ComboBoxItemCustom.css.js +8 -0
  74. package/dist/generated/themes/ComboBoxItemCustom.css.js.map +1 -0
  75. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  76. package/dist/generated/themes/Dialog.css.js +1 -1
  77. package/dist/generated/themes/Dialog.css.js.map +1 -1
  78. package/dist/generated/themes/Form.css.d.ts +1 -1
  79. package/dist/generated/themes/Form.css.js +1 -1
  80. package/dist/generated/themes/Form.css.js.map +1 -1
  81. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  82. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  83. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  84. package/dist/generated/themes/FormLayout.css.d.ts +1 -1
  85. package/dist/generated/themes/FormLayout.css.js +1 -1
  86. package/dist/generated/themes/FormLayout.css.js.map +1 -1
  87. package/dist/generated/themes/MultiComboBoxItemCustom.css.d.ts +2 -0
  88. package/dist/generated/themes/MultiComboBoxItemCustom.css.js +8 -0
  89. package/dist/generated/themes/MultiComboBoxItemCustom.css.js.map +1 -0
  90. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  91. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  92. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  93. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  94. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  95. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  96. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  97. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  98. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  99. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  100. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  101. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  102. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  103. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  104. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  105. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  106. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +2 -5
  107. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  108. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  109. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  110. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  111. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  112. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +2 -5
  113. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  114. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  115. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  116. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  117. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  118. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  119. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  120. package/dist/types/ComboBoxSelectionChangeTrigger.d.ts +25 -0
  121. package/dist/types/ComboBoxSelectionChangeTrigger.js +27 -0
  122. package/dist/types/ComboBoxSelectionChangeTrigger.js.map +1 -0
  123. package/dist/vscode.html-custom-data.json +41 -2
  124. package/dist/web-types.json +112 -4
  125. package/package.json +9 -9
  126. package/src/ComboBoxItemCustomTemplate.tsx +10 -0
  127. package/src/ComboBoxPopoverTemplate.tsx +2 -2
  128. package/src/DialogTemplate.tsx +21 -14
  129. package/src/MultiComboBoxItemCustomTemplate.tsx +22 -0
  130. package/src/i18n/messagebundle.properties +29 -8
  131. package/src/themes/ComboBoxItemCustom.css +14 -0
  132. package/src/themes/Dialog.css +12 -7
  133. package/src/themes/FormItemSpan.css +4 -4
  134. package/src/themes/FormLayout.css +4 -4
  135. package/src/themes/MultiComboBoxItemCustom.css +19 -0
  136. package/src/themes/base/Dialog-parameters.css +2 -5
  137. package/src/themes/sap_horizon/Dialog-parameters.css +0 -8
  138. package/src/themes/sap_horizon_dark/Dialog-parameters.css +0 -8
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@ui5/webcomponents",
4
- "version": "2.24.0-rc.1",
4
+ "version": "2.24.0-rc.3",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -340,7 +340,7 @@
340
340
  },
341
341
  {
342
342
  "name": "accessible-role",
343
- "description": "Specifies the ARIA role applied to the component for accessibility purposes.\n\n**Note:**\n\n- Set accessibleRole to \"toolbar\" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.\n\n- If there is only one or no active element, it is recommended to avoid using the \"toolbar\" role, as it implies a grouping of multiple interactive controls.",
343
+ "description": "Specifies the ARIA role applied to the component for accessibility purposes.\n\n**Note:**\n\n- By default, accessibleRole is set to \"Toolbar\", which renders the ARIA role \"toolbar\".\n\n- Use the default accessibleRole value \"Toolbar\" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.\n\n- If there is only one or no active element, set accessibleRole to \"None\" to avoid rendering the ARIA role \"toolbar\", as that role implies a grouping of multiple interactive controls.",
344
344
  "value": {
345
345
  "type": "\"None\" | \"Toolbar\"",
346
346
  "default": "\"Toolbar\""
@@ -384,7 +384,7 @@
384
384
  },
385
385
  {
386
386
  "name": "accessible-role",
387
- "description": "Specifies the ARIA role applied to the component for accessibility purposes.\n\n**Note:**\n\n- Set accessibleRole to \"toolbar\" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.\n\n- If there is only one or no active element, it is recommended to avoid using the \"toolbar\" role, as it implies a grouping of multiple interactive controls.",
387
+ "description": "Specifies the ARIA role applied to the component for accessibility purposes.\n\n**Note:**\n\n- By default, accessibleRole is set to \"Toolbar\", which renders the ARIA role \"toolbar\".\n\n- Use the default accessibleRole value \"Toolbar\" only when the component contains two or more active, interactive elements (such as buttons, links, or input fields) within the bar.\n\n- If there is only one or no active element, set accessibleRole to \"None\" to avoid rendering the ARIA role \"toolbar\", as that role implies a grouping of multiple interactive controls.",
388
388
  "value": { "type": "\"None\" | \"Toolbar\"" }
389
389
  },
390
390
  {
@@ -403,6 +403,11 @@
403
403
  "description": "### Overview\nEnables users to navigate between items by providing a list of links to previous steps in the user's navigation path.\nIt helps the user to be aware of their location within the application and allows faster navigation.\n\nThe last three steps can be accessed as links directly, while the remaining links prior to them are available\nin a drop-down menu.\n\nYou can choose the type of separator to be used from a number of predefined options.\n\n### Keyboard Handling\nThe `ui5-breadcrumbs` provides advanced keyboard handling.\n\n- [F4], [Alt] + [Up], [Alt] + [Down], [Space], or [Enter] - If the dropdown arrow is focused - opens/closes the drop-down.\n- [Space],[Enter] - Activates the focused item and triggers the `item-click` event.\n- [Escape] - Closes the drop-down.\n- [Left] - If the drop-down is closed - navigates one item to the left.\n- [Right] - If the drop-down is closed - navigates one item to the right.\n- [Up] - If the drop-down is open - moves focus to the next item.\n- [Down] - If the drop-down is open - moves focus to the previous item.\n- [Home] - Navigates to the first item.\n- [End] - Navigates to the last item.\n---\n\n\n### **Events:**\n - **item-click** - Fires when a `BreadcrumbsItem` is clicked.\n\n**Note:** You can prevent browser location change by calling `event.preventDefault()`.\n\n### **Slots:**\n - **default** - Defines the component items.\n\n**Note:** Use the `ui5-breadcrumbs-item` component to define the desired items.",
404
404
  "doc-url": "",
405
405
  "attributes": [
406
+ {
407
+ "name": "accessible-name",
408
+ "description": "Defines the accessible name of the component.",
409
+ "value": { "type": "string | undefined", "default": "undefined" }
410
+ },
406
411
  {
407
412
  "name": "design",
408
413
  "description": "Defines the visual appearance of the last BreadcrumbsItem.\n\nThe Breadcrumbs supports two visual appearances for the last BreadcrumbsItem:\n- \"Standard\" - displaying the last item as \"current page\" (bold and without separator)\n- \"NoCurrentPage\" - displaying the last item as a regular BreadcrumbsItem, followed by separator",
@@ -434,6 +439,11 @@
434
439
  ],
435
440
  "js": {
436
441
  "properties": [
442
+ {
443
+ "name": "accessible-name",
444
+ "description": "Defines the accessible name of the component.",
445
+ "value": { "type": "string | undefined" }
446
+ },
437
447
  {
438
448
  "name": "design",
439
449
  "description": "Defines the visual appearance of the last BreadcrumbsItem.\n\nThe Breadcrumbs supports two visual appearances for the last BreadcrumbsItem:\n- \"Standard\" - displaying the last item as \"current page\" (bold and without separator)\n- \"NoCurrentPage\" - displaying the last item as a regular BreadcrumbsItem, followed by separator",
@@ -2190,6 +2200,55 @@
2190
2200
  ]
2191
2201
  }
2192
2202
  },
2203
+ {
2204
+ "name": "ui5-cb-item-custom",
2205
+ "description": "The `ui5-cb-item-custom` is a combobox item component\nthat allows placing custom content inside a combobox item.\nThe `text` property is used for filtering and auto-complete.\nFor highlighting functionality, see `@ui5/webcomponents-base/dist/util/generateHighlightedMarkup.js`.\n---\n\n\n### **Events:**\n - **click** - Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`.\n\n### **Slots:**\n - **default** - Defines the content of the component.",
2206
+ "doc-url": "",
2207
+ "attributes": [
2208
+ {
2209
+ "name": "text",
2210
+ "description": "Defines the text of the component.\nUsed for filtering, autocomplete, and mobile rendering.",
2211
+ "value": { "type": "string | undefined", "default": "undefined" }
2212
+ },
2213
+ {
2214
+ "name": "value",
2215
+ "description": "Defines the value of the component.\nUsed for programmatic selection via the `selectedValue` property.",
2216
+ "value": { "type": "string | undefined", "default": "undefined" }
2217
+ }
2218
+ ],
2219
+ "slots": [
2220
+ {
2221
+ "name": "default",
2222
+ "description": "Defines the content of the component."
2223
+ }
2224
+ ],
2225
+ "events": [
2226
+ {
2227
+ "name": "click",
2228
+ "description": "Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`."
2229
+ }
2230
+ ],
2231
+ "js": {
2232
+ "properties": [
2233
+ {
2234
+ "name": "text",
2235
+ "description": "Defines the text of the component.\nUsed for filtering, autocomplete, and mobile rendering.",
2236
+ "value": { "type": "string | undefined" }
2237
+ },
2238
+ {
2239
+ "name": "value",
2240
+ "description": "Defines the value of the component.\nUsed for programmatic selection via the `selectedValue` property.",
2241
+ "value": { "type": "string | undefined" }
2242
+ }
2243
+ ],
2244
+ "events": [
2245
+ {
2246
+ "name": "click",
2247
+ "description": "Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`."
2248
+ }
2249
+ ]
2250
+ }
2251
+ },
2193
2252
  {
2194
2253
  "name": "ui5-cb-item-group",
2195
2254
  "description": "The `ui5-cb-group-item` is type of suggestion item,\nthat can be used to split the `ui5-combobox` suggestions into groups.\n---\n\n\n### **Events:**\n - **move** - Fired when a movable list item is dropped onto a drop target.\n\n**Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action.\n- **move-over** - Fired when a movable list item is moved over a potential drop target during a dragging operation.\n\nIf the new position is valid, prevent the default action of the event using `preventDefault()`.\n\n### **Slots:**\n - **default** - Defines the items of the <code>ui5-cb-item-group</code>.\n- **header** - Defines the header of the component.\n\n**Note:** Using this slot, the default header text of group and the value of `headerText` property will be overwritten.\n\n### **CSS Parts:**\n - **header** - Used to style the header item of the group\n- **title** - Used to style the title of the group header",
@@ -3659,7 +3718,7 @@
3659
3718
  },
3660
3719
  {
3661
3720
  "name": "ui5-dialog",
3662
- "description": "### Overview\nThe `ui5-dialog` component is used to temporarily display some information in a\nsize-limited window in front of the regular app screen.\nIt is used to prompt the user for an action or a confirmation.\nThe `ui5-dialog` interrupts the current app processing as it is the only focused UI element and\nthe main screen is dimmed/blocked.\nThe dialog combines concepts known from other technologies where the windows have\nnames such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.\n\nThe `ui5-dialog` is modal, which means that a user action is required before it is possible to return to the parent window.\nTo open multiple dialogs, each dialog element should be separate in the markup. This will ensure the correct modal behavior. Avoid nesting dialogs within each other.\nThe content of the `ui5-dialog` is fully customizable.\n\n### Structure\nA `ui5-dialog` consists of a header, content, and a footer for action buttons.\nThe `ui5-dialog` is usually displayed at the center of the screen.\nIts position can be changed by the user. To enable this, you need to set the property `draggable` accordingly.\n\n\n### Responsive Behavior\nThe `stretch` property can be used to stretch the `ui5-dialog` to full screen. For better usability, it's recommended to stretch the dialog to full screen on phone devices.\n\n**Note:** When a `ui5-bar` is used in the header or in the footer, you should remove the default dialog's paddings.\n\nFor more information see the sample \"Bar in Header/Footer\".\n\n### Keyboard Handling\n\n#### Basic Navigation\nWhen the `ui5-dialog` has the `draggable` property set to `true` and the header is focused, the user can move the dialog\nwith the following keyboard shortcuts:\n\n- [Up] or [Down] arrow keys - Move the dialog up/down.\n- [Left] or [Right] arrow keys - Move the dialog left/right.\n\n#### Resizing\nWhen the `ui5-dialog` has the `resizable` property set to `true` and the header is focused, the user can change the size of the dialog\nwith the following keyboard shortcuts:\n\n- [Shift] + [Up] or [Down] - Decrease/Increase the height of the dialog.\n- [Shift] + [Left] or [Right] - Decrease/Increase the width of the dialog.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Dialog\";`\n---\n\n\n### **Events:**\n - **before-close** - Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing.\n- **before-open** - Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening.\n- **close** - Fired after the component is closed.\n- **open** - Fired after the component is opened.\n\n### **Methods:**\n - **applyFocus(): _Promise<void>_** - Focuses the element denoted by `initialFocus`, if provided,\nor the first focusable element otherwise.\n\n### **Slots:**\n - **default** - Defines the content of the Popup.\n- **footer** - Defines the footer HTML Element.\n- **header** - Defines the header HTML Element.\n\n**Note:** If `header` slot is provided, the labelling of the dialog is a responsibility of the application developer.\n`accessibleName` should be used.\n\n### **CSS Parts:**\n - **content** - Used to style the content of the component\n- **footer** - Used to style the footer of the component\n- **header** - Used to style the header of the component",
3721
+ "description": "### Overview\nThe `ui5-dialog` component is used to temporarily display some information in a\nsize-limited window in front of the regular app screen.\nIt is used to prompt the user for an action or a confirmation.\nThe `ui5-dialog` interrupts the current app processing as it is the only focused UI element and\nthe main screen is dimmed/blocked.\nThe dialog combines concepts known from other technologies where the windows have\nnames such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.\n\nThe `ui5-dialog` is modal, which means that a user action is required before it is possible to return to the parent window.\nTo open multiple dialogs, each dialog element should be separate in the markup. This will ensure the correct modal behavior. Avoid nesting dialogs within each other.\nThe content of the `ui5-dialog` is fully customizable.\n\n### Structure\nA `ui5-dialog` consists of a header, content, and a footer for action buttons.\nThe `ui5-dialog` is usually displayed at the center of the screen.\nIts position can be changed by the user. To enable this, you need to set the property `draggable` accordingly.\n\n\n### Responsive Behavior\nThe `stretch` property can be used to stretch the `ui5-dialog` to full screen. For better usability, it's recommended to stretch the dialog to full screen on phone devices.\n\n**Note:** When a `ui5-bar` is used in the header or in the footer, you should remove the default dialog's paddings.\n\nFor more information see the sample \"Bar in Header/Footer\".\n\n### Keyboard Handling\n\n#### Basic Navigation\nWhen the `ui5-dialog` has the `draggable` property set to `true`, the user can move the dialog\nwith the following keyboard shortcuts:\n\n- [Up] or [Down] arrow keys - Move the dialog up/down.\n- [Left] or [Right] arrow keys - Move the dialog left/right.\n\n#### Resizing\nWhen the `ui5-dialog` has the `resizable` property set to `true`, the user can change the size of the dialog\nwith the following keyboard shortcuts:\n\n- [Shift] + [Up] or [Down] - Decrease/Increase the height of the dialog.\n- [Shift] + [Left] or [Right] - Decrease/Increase the width of the dialog.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Dialog\";`\n---\n\n\n### **Events:**\n - **before-close** - Fired before the component is closed. This event can be cancelled, which will prevent the popup from closing.\n- **before-open** - Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening.\n- **close** - Fired after the component is closed.\n- **open** - Fired after the component is opened.\n\n### **Methods:**\n - **applyFocus(): _Promise<void>_** - Focuses the element denoted by `initialFocus`, if provided,\nor the first focusable element otherwise.\n\n### **Slots:**\n - **default** - Defines the content of the Popup.\n- **footer** - Defines the footer HTML Element.\n- **header** - Defines the header HTML Element.\n\n**Note:** If `header` slot is provided, the labelling of the dialog is a responsibility of the application developer.\n`accessibleName` should be used.\n\n### **CSS Parts:**\n - **content** - Used to style the content of the component\n- **footer** - Used to style the footer of the component\n- **header** - Used to style the header of the component",
3663
3722
  "doc-url": "",
3664
3723
  "attributes": [
3665
3724
  {
@@ -6815,6 +6874,55 @@
6815
6874
  ]
6816
6875
  }
6817
6876
  },
6877
+ {
6878
+ "name": "ui5-mcb-item-custom",
6879
+ "description": "The `ui5-mcb-item-custom` is a multi-combobox item component\nthat allows placing custom content inside a multi-combobox item.\nThe `text` property is used for filtering and token display.\nFor highlighting functionality, see `@ui5/webcomponents-base/dist/util/generateHighlightedMarkup.js`.\n---\n\n\n### **Events:**\n - **click** - Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`.\n\n### **Slots:**\n - **default** - Defines the content of the component.",
6880
+ "doc-url": "",
6881
+ "attributes": [
6882
+ {
6883
+ "name": "text",
6884
+ "description": "Defines the text of the component.\nUsed for filtering and token display.",
6885
+ "value": { "type": "string | undefined", "default": "undefined" }
6886
+ },
6887
+ {
6888
+ "name": "value",
6889
+ "description": "Defines the value of the component.\nUsed for programmatic selection via selectedValues property.",
6890
+ "value": { "type": "string | undefined", "default": "undefined" }
6891
+ }
6892
+ ],
6893
+ "slots": [
6894
+ {
6895
+ "name": "default",
6896
+ "description": "Defines the content of the component."
6897
+ }
6898
+ ],
6899
+ "events": [
6900
+ {
6901
+ "name": "click",
6902
+ "description": "Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`."
6903
+ }
6904
+ ],
6905
+ "js": {
6906
+ "properties": [
6907
+ {
6908
+ "name": "text",
6909
+ "description": "Defines the text of the component.\nUsed for filtering and token display.",
6910
+ "value": { "type": "string | undefined" }
6911
+ },
6912
+ {
6913
+ "name": "value",
6914
+ "description": "Defines the value of the component.\nUsed for programmatic selection via selectedValues property.",
6915
+ "value": { "type": "string | undefined" }
6916
+ }
6917
+ ],
6918
+ "events": [
6919
+ {
6920
+ "name": "click",
6921
+ "description": "Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`."
6922
+ }
6923
+ ]
6924
+ }
6925
+ },
6818
6926
  {
6819
6927
  "name": "ui5-mcb-item-group",
6820
6928
  "description": "The `ui5-mcb-item-group` is type of suggestion item,\nthat can be used to split the `ui5-multi-combobox` suggestions into groups.\n---\n\n\n### **Events:**\n - **move** - Fired when a movable list item is dropped onto a drop target.\n\n**Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action.\n- **move-over** - Fired when a movable list item is moved over a potential drop target during a dragging operation.\n\nIf the new position is valid, prevent the default action of the event using `preventDefault()`.\n\n### **Slots:**\n - **default** - Defines the items of the <code>ui5-mcb-item-group</code>.\n- **header** - Defines the header of the component.\n\n**Note:** Using this slot, the default header text of group and the value of `headerText` property will be overwritten.\n\n### **CSS Parts:**\n - **header** - Used to style the header item of the group\n- **title** - Used to style the title of the group header",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents",
3
- "version": "2.24.0-rc.1",
3
+ "version": "2.24.0-rc.3",
4
4
  "description": "UI5 Web Components: webcomponents.main",
5
5
  "ui5": {
6
6
  "webComponentsPackage": true
@@ -54,22 +54,22 @@
54
54
  "directory": "packages/main"
55
55
  },
56
56
  "dependencies": {
57
- "@ui5/webcomponents-base": "2.24.0-rc.1",
58
- "@ui5/webcomponents-icons": "2.24.0-rc.1",
59
- "@ui5/webcomponents-icons-business-suite": "2.24.0-rc.1",
60
- "@ui5/webcomponents-icons-tnt": "2.24.0-rc.1",
61
- "@ui5/webcomponents-localization": "2.24.0-rc.1",
62
- "@ui5/webcomponents-theming": "2.24.0-rc.1"
57
+ "@ui5/webcomponents-base": "2.24.0-rc.3",
58
+ "@ui5/webcomponents-icons": "2.24.0-rc.3",
59
+ "@ui5/webcomponents-icons-business-suite": "2.24.0-rc.3",
60
+ "@ui5/webcomponents-icons-tnt": "2.24.0-rc.3",
61
+ "@ui5/webcomponents-localization": "2.24.0-rc.3",
62
+ "@ui5/webcomponents-theming": "2.24.0-rc.3"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@custom-elements-manifest/analyzer": "^0.10.10",
66
66
  "@ui5/cypress-internal": "0.1.0",
67
- "@ui5/webcomponents-tools": "2.24.0-rc.1",
67
+ "@ui5/webcomponents-tools": "2.24.0-rc.3",
68
68
  "cypress": "15.9.0",
69
69
  "jsdom": "^26.0.0",
70
70
  "lit": "^2.0.0",
71
71
  "vite": "5.4.21",
72
72
  "vitest": "^3.0.2"
73
73
  },
74
- "gitHead": "b9131bd79fbbe253503cb85eae4e013ba46e4313"
74
+ "gitHead": "4e2fcc7b63a5a9156ecb89f839a698f2a59743b2"
75
75
  }
@@ -0,0 +1,10 @@
1
+ import ListItemBaseTemplate from "./ListItemBaseTemplate.js";
2
+ import type ComboBoxItemCustom from "./ComboBoxItemCustom.js";
3
+
4
+ export default function ComboBoxItemCustomTemplate(this: ComboBoxItemCustom) {
5
+ return ListItemBaseTemplate.call(this, { listItemContent }, { role: "option" });
6
+ }
7
+
8
+ function listItemContent(this: ComboBoxItemCustom) {
9
+ return <slot></slot>;
10
+ }
@@ -67,11 +67,11 @@ export default function ComboBoxPopoverTemplate(this: ComboBox) {
67
67
  return item.items
68
68
  .filter(nestedItem => !!nestedItem)
69
69
  .map(nestedItem =>
70
- <SuggestionItem text={nestedItem.text} additional-text={nestedItem.additionalText} markupText={generateHighlightedMarkupFirstMatch(nestedItem.text || "", this.filterValue)}/>
70
+ <SuggestionItem text={nestedItem.text} additionalText={nestedItem.additionalText} markupText={generateHighlightedMarkupFirstMatch(nestedItem.text || "", this.filterValue)}/>
71
71
  );
72
72
  }
73
73
  // For regular items
74
- return <SuggestionItem text={item.text} additional-text={item.additionalText} markupText={generateHighlightedMarkupFirstMatch(item.text || "", this.filterValue)}/>;
74
+ return <SuggestionItem text={item.text} additionalText={item.additionalText} markupText={generateHighlightedMarkupFirstMatch(item.text || "", this.filterValue)}/>;
75
75
  })}
76
76
  </Input>
77
77
  </div>
@@ -19,10 +19,6 @@ function beforeContent(this: Dialog) {
19
19
  id="ui5-popup-header"
20
20
  role="region"
21
21
  aria-label={this._headerAriaLabel}
22
- aria-describedby={this.effectiveAriaDescribedBy}
23
- aria-roledescription={this.ariaRoleDescriptionHeaderText}
24
- tabIndex={this._headerTabIndex}
25
- onKeyDown={this._onDragOrResizeKeyDown}
26
22
  onMouseDown={this._onDragMouseDown}
27
23
  part="header"
28
24
  // state={this.state}
@@ -35,16 +31,6 @@ function beforeContent(this: Dialog) {
35
31
  :
36
32
  <Title level="H1" id="ui5-popup-header-text" class="ui5-popup-header-text">{this.headerText}</Title>
37
33
  }
38
-
39
- {this.resizable ?
40
- this.draggable ?
41
- <span id={`${this._id}-descr`} aria-hidden="true" class="ui5-hidden-text">{this.ariaDescribedByHeaderTextDraggableAndResizable}</span>
42
- :
43
- <span id={`${this._id}-descr`} aria-hidden="true" class="ui5-hidden-text">{this.ariaDescribedByHeaderTextResizable}</span>
44
- :
45
- this.draggable &&
46
- <span id={`${this._id}-descr`} aria-hidden="true" class="ui5-hidden-text">{this.ariaDescribedByHeaderTextDraggable}</span>
47
- }
48
34
  </div>
49
35
  }
50
36
  </>);
@@ -66,9 +52,30 @@ function afterContent(this: Dialog) {
66
52
  <div
67
53
  class="ui5-popup-resize-handle"
68
54
  onMouseDown={this._onResizeMouseDown}
55
+ title={this._resizeHandleTooltip}
69
56
  >
70
57
  <Icon name={resizeCorner}></Icon>
71
58
  </div>
72
59
  }
60
+ {this._movable &&
61
+ <>
62
+ <span
63
+ id={`${this._id}-dragResizeHandler`}
64
+ class="ui5-popup-drag-resize-handler ui5-hidden-text"
65
+ tabIndex={this._dragResizeHandleTabIndex}
66
+ role="img"
67
+ aria-roledescription={this._dragResizeHandleAriaRoleDescription}
68
+ aria-label={this._dragResizeHandleAriaLabel}
69
+ aria-describedby={this._dragResizeHandleAriaDescribedBy}
70
+ onKeyDown={this._onDragOrResizeKeyDown}
71
+ ></span>
72
+ {this.ariaDescribedByHandlerText &&
73
+ <span id={`${this._id}-descr`} aria-hidden="true" class="ui5-hidden-text">{this.ariaDescribedByHandlerText}</span>
74
+ }
75
+ {this.dialogAriaDescribedByText &&
76
+ <span id={`${this._id}-dialog-descr`} aria-hidden="true" class="ui5-hidden-text">{this.dialogAriaDescribedByText}</span>
77
+ }
78
+ </>
79
+ }
73
80
  </>);
74
81
  }
@@ -0,0 +1,22 @@
1
+ import CheckBox from "./CheckBox.js";
2
+ import ListItemBaseTemplate from "./ListItemBaseTemplate.js";
3
+ import type MultiComboBoxItemCustom from "./MultiComboBoxItemCustom.js";
4
+
5
+ export default function MultiComboBoxItemCustomTemplate(this: MultiComboBoxItemCustom) {
6
+ return ListItemBaseTemplate.call(this, { listItemContent }, { role: "option" });
7
+ }
8
+
9
+ function listItemContent(this: MultiComboBoxItemCustom) {
10
+ return (
11
+ <>
12
+ <CheckBox
13
+ disabled={this._readonly}
14
+ checked={this.selected}
15
+ _accInfo={this.checkBoxAccInfo}
16
+ />
17
+ <div part="content" id="content" class="ui5-li-content">
18
+ <slot></slot>
19
+ </div>
20
+ </>
21
+ );
22
+ }
@@ -832,17 +832,38 @@ MENU_ITEM_END_CONTENT_ACCESSIBLE_NAME=Additional Actions
832
832
  #XACT: ARIA information for the Menu Item loading state
833
833
  MENU_ITEM_LOADING=Loading
834
834
 
835
- #XACT: ARIA announcement for roldesecription attribute of Dialog header
836
- DIALOG_HEADER_ARIA_ROLE_DESCRIPTION=Interactive Header
835
+ #XACT: ARIA announcement for describedby attribute of resizable Dialog
836
+ DIALOG_ARIA_DESCRIBEDBY_RESIZABLE=Use Shift+Arrow keys to resize
837
837
 
838
- #XACT: ARIA announcement for describedby attribute of resizable Dialog header
839
- DIALOG_HEADER_ARIA_DESCRIBEDBY_RESIZABLE=Use Shift+Arrow keys to resize
838
+ #XACT: ARIA announcement for describedby attribute of draggable Dialog
839
+ DIALOG_ARIA_DESCRIBEDBY_DRAGGABLE=Use Arrow keys to move
840
840
 
841
- #XACT: ARIA announcement for describedby attribute of draggable Dialog header
842
- DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE=Use Arrow keys to move
841
+ #XACT: ARIA announcement for describedby attribute of draggable and resizable Dialog
842
+ DIALOG_ARIA_DESCRIBEDBY_DRAGGABLE_RESIZABLE=Use Arrow keys to move, Shift+Arrow keys to resize
843
843
 
844
- #XACT: ARIA announcement for describedby attribute of draggable and resizable Dialog header
845
- DIALOG_HEADER_ARIA_DESCRIBEDBY_DRAGGABLE_RESIZABLE=Use Arrow keys to move, Shift+Arrow keys to resize
844
+ #XACT: ARIA announcement for describedby attribute informing users how to reach drag and resize handle
845
+ DIALOG_ARIA_DESCRIBEDBY_REACH_DRAGGABLE_RESIZABLE=Tab to the end of dialog to reach drag and resize handle.
846
+
847
+ #XACT: ARIA announcement for describedby attribute informing users how to reach drag handle
848
+ DIALOG_ARIA_DESCRIBEDBY_REACH_DRAGGABLE=Tab to the end of dialog to reach drag handle.
849
+
850
+ #XACT: ARIA announcement for describedby attribute informing users how to reach resize handle
851
+ DIALOG_ARIA_DESCRIBEDBY_REACH_RESIZABLE=Tab to the end of dialog to reach resize handle.
852
+
853
+ #XACT: Tooltip for the resize handle icon in the Dialog
854
+ DIALOG_RESIZE_HANDLE_TOOLTIP=Drag handle to resize (Shift+Arrow)
855
+
856
+ #XACT: ARIA label for drag and resize handle
857
+ DIALOG_DRAG_AND_RESIZE_HANDLE_ARIA_LABEL=Drag and resize dialog
858
+
859
+ #XACT: ARIA label for drag handle
860
+ DIALOG_DRAG_HANDLE_ARIA_LABEL=Drag dialog
861
+
862
+ #XACT: ARIA label for resize handle
863
+ DIALOG_RESIZE_HANDLE_ARIA_LABEL=Resize dialog
864
+
865
+ #XACT: ARIA role description for drag/resize handle
866
+ DIALOG_HANDLE_ARIA_ROLEDESCRIPTION=Handle
846
867
 
847
868
  #XACT: ARIA label for the Dialog header region
848
869
  DIALOG_HEADER_ARIA_LABEL=Header
@@ -0,0 +1,14 @@
1
+ :host([ui5-cb-item-custom]) {
2
+ height: auto;
3
+ min-height: var(--_ui5_list_item_base_height);
4
+ }
5
+
6
+ :host([ui5-cb-item-custom]) .ui5-li-root {
7
+ min-height: var(--_ui5_list_item_base_height);
8
+ }
9
+
10
+ :host([ui5-cb-item-custom]) .ui5-li-content {
11
+ padding-bottom: .5rem;
12
+ padding-top: .5rem;
13
+ box-sizing: border-box;
14
+ }
@@ -102,17 +102,22 @@
102
102
  outline: none;
103
103
  }
104
104
 
105
- :host([desktop]) .ui5-popup-header-root:focus:after,
106
- .ui5-popup-header-root:focus-visible:after {
105
+ .ui5-popup-drag-resize-handler:focus {
106
+ outline: none;
107
+ }
108
+
109
+ .ui5-popup-root:has(.ui5-popup-drag-resize-handler:focus)::before {
107
110
  content: '';
108
111
  position: absolute;
109
- left: var(--_ui5_dialog_header_focus_left_offset);
110
- bottom: var(--_ui5_dialog_header_focus_bottom_offset);
111
- right: var(--_ui5_dialog_header_focus_right_offset);
112
- top: var(--_ui5_dialog_header_focus_top_offset);
112
+ inset: var(--_ui5_dialog_focus_outline_offset);
113
113
  border: var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);
114
- border-radius: var(--_ui5_dialog_header_border_radius) var(--_ui5_dialog_header_border_radius) 0 0;
114
+ border-radius: var(--sapElement_BorderCornerRadius);
115
115
  pointer-events: none;
116
+ z-index: 5;
117
+ }
118
+
119
+ :host([resizable]) .ui5-popup-root:has(.ui5-popup-drag-resize-handler:focus)::before {
120
+ border-end-end-radius: var(--_ui5_dialog_resizable_bottom_right_radius);
116
121
  }
117
122
 
118
123
  :host([stretch]) .ui5-popup-content {
@@ -11,7 +11,7 @@
11
11
  --ui5-form-item-label-padding-internal: 0.625rem 0.25rem 0 0.25rem;
12
12
  }
13
13
 
14
- @container (max-width: 599px) {
14
+ @container (width < 600px) {
15
15
  .ui5-form-item,
16
16
  .ui5-form-group {
17
17
  --ui5-form-item-layout: var(--ui5-form-item-layout-S);
@@ -24,7 +24,7 @@
24
24
  }
25
25
  }
26
26
 
27
- @container (min-width: 600px) and (max-width: 1023px) {
27
+ @container (600px <= width < 1024px) {
28
28
  .ui5-form-item,
29
29
  .ui5-form-group {
30
30
  --ui5-form-item-layout: var(--ui5-form-item-layout-M);
@@ -37,7 +37,7 @@
37
37
  }
38
38
  }
39
39
 
40
- @container (min-width: 1024px) and (max-width: 1439px) {
40
+ @container (1024px <= width < 1440px) {
41
41
  .ui5-form-item,
42
42
  .ui5-form-group {
43
43
  --ui5-form-item-layout: var(--ui5-form-item-layout-L);
@@ -50,7 +50,7 @@
50
50
  }
51
51
  }
52
52
 
53
- @container (min-width: 1440px) {
53
+ @container (width >= 1440px) {
54
54
  .ui5-form-item,
55
55
  .ui5-form-group {
56
56
  --ui5-form-item-layout: var(--ui5-form-item-layout-XL);
@@ -7,7 +7,7 @@
7
7
  */
8
8
 
9
9
  /* S - 1 column */
10
- @container (max-width: 599px) {
10
+ @container (width < 600px) {
11
11
  .ui5-form-layout {
12
12
  grid-template-columns: repeat(var(--ui5-form-columns-s), 1fr);
13
13
  }
@@ -30,7 +30,7 @@
30
30
  }
31
31
 
32
32
  /* M - 1 column by default, up to 2 columns */
33
- @container (min-width: 600px) and (max-width: 1023px) {
33
+ @container (600px <= width < 1024px) {
34
34
  .ui5-form-layout {
35
35
  grid-template-columns: repeat(var(--ui5-form-columns-m), 1fr);
36
36
  }
@@ -45,7 +45,7 @@
45
45
  }
46
46
 
47
47
  /* L - 2 columns by default, up to 3 columns */
48
- @container (min-width: 1024px) and (max-width: 1439px) {
48
+ @container (1024px <= width < 1440px) {
49
49
 
50
50
  .ui5-form-layout {
51
51
  grid-template-columns: repeat(var(--ui5-form-columns-l), 1fr);
@@ -61,7 +61,7 @@
61
61
  }
62
62
 
63
63
  /* XL - 3 columns by default, up to 6 */
64
- @container (min-width: 1440px) {
64
+ @container (width >= 1440px) {
65
65
  .ui5-form-layout {
66
66
  grid-template-columns: repeat(var(--ui5-form-columns-xl), 1fr);
67
67
  }
@@ -0,0 +1,19 @@
1
+ :host([ui5-mcb-item-custom]) {
2
+ height: auto;
3
+ min-height: var(--_ui5_list_item_base_height);
4
+ }
5
+
6
+ :host([ui5-mcb-item-custom]) .ui5-li-root {
7
+ padding-inline-start: 0;
8
+ min-height: var(--_ui5_list_item_base_height);
9
+ }
10
+
11
+ :host([ui5-mcb-item-custom]) .ui5-li-content {
12
+ padding-bottom: .5rem;
13
+ padding-top: .5rem;
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ :host([ui5-mcb-item-custom]) [ui5-checkbox] {
18
+ overflow: visible;
19
+ }
@@ -1,8 +1,5 @@
1
1
  :host {
2
- --_ui5_dialog_header_focus_bottom_offset: 3px;
3
- --_ui5_dialog_header_focus_top_offset: 2px;
4
- --_ui5_dialog_header_focus_left_offset: 2px;
5
- --_ui5_dialog_header_focus_right_offset: 2px;
6
- --_ui5_dialog_header_border_radius: 0px;
7
2
  --_ui5_dialog_header_state_line_height: 0.0625rem;
3
+ --_ui5_dialog_focus_outline_offset: 0.0625rem;
4
+ --_ui5_dialog_resizable_bottom_right_radius: 1.75rem;
8
5
  }
@@ -1,9 +1 @@
1
1
  @import "../base/Dialog-parameters.css";
2
-
3
- :host {
4
- --_ui5_dialog_header_focus_bottom_offset: 2px;
5
- --_ui5_dialog_header_focus_top_offset: 1px;
6
- --_ui5_dialog_header_focus_left_offset: 1px;
7
- --_ui5_dialog_header_focus_right_offset: 1px;
8
- --_ui5_dialog_header_border_radius: var(--sapElement_BorderCornerRadius);
9
- }
@@ -1,9 +1 @@
1
1
  @import "../base/Dialog-parameters.css";
2
-
3
- :host {
4
- --_ui5_dialog_header_focus_bottom_offset: 2px;
5
- --_ui5_dialog_header_focus_top_offset: 1px;
6
- --_ui5_dialog_header_focus_left_offset: 1px;
7
- --_ui5_dialog_header_focus_right_offset: 1px;
8
- --_ui5_dialog_header_border_radius: var(--sapElement_BorderCornerRadius);
9
- }