@ui5/webcomponents 2.22.1-rc.0 → 2.23.0-rc.1

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 (155) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/DateComponentBase.d.ts +8 -0
  4. package/dist/DateComponentBase.js +10 -8
  5. package/dist/DateComponentBase.js.map +1 -1
  6. package/dist/DayPicker.d.ts +16 -1
  7. package/dist/DayPicker.js +28 -7
  8. package/dist/DayPicker.js.map +1 -1
  9. package/dist/Form.d.ts +9 -25
  10. package/dist/Form.js +42 -207
  11. package/dist/Form.js.map +1 -1
  12. package/dist/FormGroup.d.ts +11 -0
  13. package/dist/FormGroup.js +3 -0
  14. package/dist/FormGroup.js.map +1 -1
  15. package/dist/FormItem.d.ts +2 -0
  16. package/dist/FormItem.js.map +1 -1
  17. package/dist/FormTemplate.js +26 -15
  18. package/dist/FormTemplate.js.map +1 -1
  19. package/dist/Icon.d.ts +19 -0
  20. package/dist/Icon.js +17 -0
  21. package/dist/Icon.js.map +1 -1
  22. package/dist/IconTemplate.js +4 -1
  23. package/dist/IconTemplate.js.map +1 -1
  24. package/dist/ListItem.d.ts +2 -0
  25. package/dist/ListItem.js +4 -0
  26. package/dist/ListItem.js.map +1 -1
  27. package/dist/ListItemTemplate.js +1 -1
  28. package/dist/ListItemTemplate.js.map +1 -1
  29. package/dist/MenuItem.d.ts +1 -0
  30. package/dist/MultiInput.js +2 -1
  31. package/dist/MultiInput.js.map +1 -1
  32. package/dist/Panel.d.ts +2 -23
  33. package/dist/Panel.js +2 -52
  34. package/dist/Panel.js.map +1 -1
  35. package/dist/PanelTemplate.js +3 -6
  36. package/dist/PanelTemplate.js.map +1 -1
  37. package/dist/TabContainer.js +4 -2
  38. package/dist/TabContainer.js.map +1 -1
  39. package/dist/TableRowActionBase.d.ts +1 -1
  40. package/dist/TableRowActionBase.js +1 -1
  41. package/dist/TableRowActionBase.js.map +1 -1
  42. package/dist/TableRowActionNavigation.d.ts +2 -1
  43. package/dist/TableRowActionNavigation.js +11 -1
  44. package/dist/TableRowActionNavigation.js.map +1 -1
  45. package/dist/Token.js +9 -5
  46. package/dist/Token.js.map +1 -1
  47. package/dist/Tokenizer.js +19 -5
  48. package/dist/Tokenizer.js.map +1 -1
  49. package/dist/TreeItemBase.d.ts +1 -0
  50. package/dist/css/themes/Form.css +1 -1
  51. package/dist/css/themes/FormItem.css +1 -1
  52. package/dist/css/themes/FormItemSpan.css +1 -1
  53. package/dist/css/themes/FormLayout.css +1 -1
  54. package/dist/css/themes/Icon.css +1 -1
  55. package/dist/css/themes/Panel.css +1 -1
  56. package/dist/css/themes/Table.css +1 -1
  57. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  58. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  59. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  60. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  61. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  62. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +0 -1
  63. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  64. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +0 -1
  65. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  66. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  67. package/dist/custom-elements-internal.json +50 -8
  68. package/dist/custom-elements.json +45 -8
  69. package/dist/form-utils/FormUtils.d.ts +9 -0
  70. package/dist/form-utils/FormUtils.js +47 -0
  71. package/dist/form-utils/FormUtils.js.map +1 -0
  72. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  73. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  74. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  75. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  76. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  77. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  78. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  79. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  80. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  81. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  82. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  83. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  84. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  85. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  86. package/dist/generated/themes/Form.css.d.ts +1 -1
  87. package/dist/generated/themes/Form.css.js +1 -1
  88. package/dist/generated/themes/Form.css.js.map +1 -1
  89. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  90. package/dist/generated/themes/FormItem.css.js +1 -1
  91. package/dist/generated/themes/FormItem.css.js.map +1 -1
  92. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  93. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  94. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  95. package/dist/generated/themes/FormLayout.css.d.ts +1 -1
  96. package/dist/generated/themes/FormLayout.css.js +1 -1
  97. package/dist/generated/themes/FormLayout.css.js.map +1 -1
  98. package/dist/generated/themes/Icon.css.d.ts +1 -1
  99. package/dist/generated/themes/Icon.css.js +1 -1
  100. package/dist/generated/themes/Icon.css.js.map +1 -1
  101. package/dist/generated/themes/Panel.css.d.ts +1 -1
  102. package/dist/generated/themes/Panel.css.js +1 -1
  103. package/dist/generated/themes/Panel.css.js.map +1 -1
  104. package/dist/generated/themes/Table.css.d.ts +1 -1
  105. package/dist/generated/themes/Table.css.js +1 -1
  106. package/dist/generated/themes/Table.css.js.map +1 -1
  107. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  108. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  109. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  110. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  111. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  112. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  113. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  114. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  115. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  116. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  117. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  118. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  119. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  120. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  121. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  122. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  123. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +0 -1
  124. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  125. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  126. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  127. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  128. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  129. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +0 -1
  130. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  131. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  132. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  133. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  134. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  135. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  136. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  137. package/dist/vscode.html-custom-data.json +9 -4
  138. package/dist/web-types.json +26 -9
  139. package/package.json +9 -9
  140. package/src/FormTemplate.tsx +41 -23
  141. package/src/IconTemplate.tsx +18 -0
  142. package/src/ListItemTemplate.tsx +1 -1
  143. package/src/PanelTemplate.tsx +6 -12
  144. package/src/i18n/messagebundle_en.properties +341 -0
  145. package/src/i18n/messagebundle_en_US_sappsd.properties +1 -0
  146. package/src/i18n/messagebundle_en_US_saprigi.properties +1 -0
  147. package/src/i18n/messagebundle_en_US_saptrc.properties +1 -0
  148. package/src/themes/Form.css +4 -2
  149. package/src/themes/FormItem.css +5 -51
  150. package/src/themes/FormItemSpan.css +9 -9
  151. package/src/themes/FormLayout.css +30 -113
  152. package/src/themes/Icon.css +6 -0
  153. package/src/themes/Panel.css +2 -19
  154. package/src/themes/Table.css +1 -4
  155. package/src/themes/base/Panel-parameters.css +0 -1
@@ -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.22.1-rc.0",
4
+ "version": "2.23.0-rc.1",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -4225,7 +4225,7 @@
4225
4225
  },
4226
4226
  {
4227
4227
  "name": "ui5-form",
4228
- "description": "### Overview\n\nThe Form is a layout component that arranges labels and form fields (like input fields) pairs\ninto a specific number of columns.\n\n**Note:** The Form web component is a layout component, it isn't a replacement for the native `form` HTML element.\nThe Form web component does not provide any APIs for form submission.\n\n### Structure\n\n- **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.\n- **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.\n- **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.\n\nThe simplest Form (`ui5-form`) consists of a header area on top,\ndisplaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),\nrepresenting the pairs of label and form fields.\n\nAnd, there is also \"grouping\" available to assist the implementation of richer UIs.\nThis is enabled by the FormGroup (`ui5-form-group`) component.\nIn this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.\n\n### Responsiveness\n\nThe Form component reacts and changes its layout on predefined breakpoints.\nDepending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:\n- **S** (0 - 599px) – 1 column is recommended (default: 1)\n- **M** (600px - 1023px) – up to 2 columns are recommended (default: 1)\n- **L** (1024px - 1439px) - up to 3 columns are recommended (default: 2)\n- **XL** (>= 1440px) – up to 6 columns are recommended (default: 3)\n\nTo change the layout, use the `layout` property - f.e. layout=\"S1 M2 L3 XL6\".\n\n### Groups\n\nTo make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.\n\n- **Example #1** (perfect match):\n4 columns and 4 groups: each group will use 1 column.\n\n- **Example #2** (balanced distribution):\n4 columns and 2 groups: each group will use 2 columns.\n6 columns and 2 groups: each group will use 3 columns.\n\n- **Example #3** (unbalanced distribution):\n3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.\n5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.\n\n**Note:** The size of a group element is determined by the number of FormItems assigned to it.\nIn the case of equality, the first in the DOM will use more columns, and the last - fewer columns.\n\n- **Example #4** (more groups than columns):\n3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.\n\n### Groups Column Span\n\nTo influence the built-in group distribution, described in the previous section,\nyou can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.\n\n### Items Column Span\n\nFormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.\n\n### Items Label Span\n\nThe placement of the labels depends on the size of the used column.\nIf there is enough space, the labels are next to their associated fields, otherwise - above the fields.\nBy default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.\nYou can control what space the labels should take via the `labelSpan` property.\n\n**For example:** To always place the labels on top set: `labelSpan=\"S12 M12 L12 XL12\"` property.\n\n### Items Empty Span\n\nBy default, a form item spans 12 cells, fully divided between its label and field, with no empty space at the end:\n- **Label:** occupies 4 cells.\n- **Field:** occupies 8 cells.\n\nThe `emptySpan` property provides additional layout flexibility by defining empty space at the form item’s end.\n\n**For example:** Setting \"S0 M0 L3 XL3\" (or just \"L3 XL3\") adjusts the layout as follows:\n- **Label:** remains 4 cells.\n- **Field:** is reduced to 5 cells.\n- **Empty space:** 3 cells are added at the end.\n\nGreater values increase the empty space at the end of the form item, reducing the space available for the label and its field.\nHowever, setting `emptySpan` to 1 cell is recommended and typically sufficient to achieve a balanced layout.\n\n### Navigation flow\n\nThe Form component supports two layout options for keyboard navigation:\n\n#### Simple form\n\nIn this \"simple form\" layout, each `ui5-form-item` acts as a standalone group\nwith one item, so focus moves horizontally across the grid from one `ui5-form-item` to the next.\nThis layout is ideal for simpler forms and supports custom arrangements, e.g.,\n\n```\n| 1 | 2 |\n| 3 |\n| 4 | 5 |\n```\n\n#### Complex form\n\nIn this layout, items are grouped into `ui5-form-group` elements, allowing more complex configurations:\n\n- **Single-Column Group**: Focus moves vertically down from one item to the next.\n ```\n | 1 |\n | 2 |\n | 3 |\n ```\n\n- **Multi-Column Group**: Focus moves horizontally within each row, advancing to the next row after completing the current one.\n ```\n | 1 | 4 |\n | 2 | 5 |\n | 3 | 6 |\n ```\n\n### Keyboard Handling\n\n- [Tab] - Moves the focus to the next interactive element within the Form/FormGroup (if available) or to the next element in the tab chain outside the Form\n- [Shift] + [Tab] - Moves the focus to the previous interactive element within the Form/FormGroup (if available) or to the previous element in the tab chain outside the Form\n- [F6] - Moves the focus to the first interactive element of the next FormGroup (if available) or to the next element in the tab chain outside the Form\n- [Shift] + [F6] - Moves the focus to the first interactive element of the previous FormGroup (if available) or to the previous element in the tab chain outside the Form\n\n### ES6 Module Import\n\n- import @ui5/webcomponents/dist/Form.js\";\n- import @ui5/webcomponents/dist/FormGroup.js\";\n- import @ui5/webcomponents/dist/FormItem.js\";\n---\n\n\n### **Slots:**\n - **default** - Defines the component content - FormGroups or FormItems.\n\n**Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\nEither use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n- **header** - Defines the component header area.\n\n**Note:** When a `header` is provided, the `headerText` property is ignored.\n\n### **CSS Parts:**\n - **column** - Used to style a single column of the form column layout.\n- **header** - Used to style the wrapper of the header.\n- **layout** - Used to style the element defining the form column layout.",
4228
+ "description": "### Overview\n\nThe Form is a layout component that arranges labels and form fields (like input fields) pairs\ninto a specific number of columns.\n\n**Note:** The Form web component is a layout component, it isn't a replacement for the native `form` HTML element.\nThe Form web component does not provide any APIs for form submission.\n\n### Structure\n\n- **Form** (`ui5-form`) is the top-level container component, responsible for the content layout and responsiveness.\n- **FormGroup** (`ui5-form-group`) enables the grouping of the Form content.\n- **FormItem** (`ui5-form-item`) is a pair of label and form fields and can be used directly in a Form, or as part of a FormGroup.\n\nThe simplest Form (`ui5-form`) consists of a header area on top,\ndisplaying a header text (see the `headingText` property) and content below - an arbitrary number of FormItems (ui5-form-item),\nrepresenting the pairs of label and form fields.\n\nAnd, there is also \"grouping\" available to assist the implementation of richer UIs.\nThis is enabled by the FormGroup (`ui5-form-group`) component.\nIn this case, the Form is structured into FormGroups and each FormGroup consists of FormItems.\n\n### Responsiveness\n\nThe Form component reacts and changes its layout on predefined breakpoints.\nDepending on its size, the Form content (FormGroups and FormItems) gets divided into one or more columns as follows:\n- **S** (0 - 599px) – 1 column is recommended (default: 1)\n- **M** (600px - 1023px) – up to 2 columns are recommended (default: 1)\n- **L** (1024px - 1439px) - up to 3 columns are recommended (default: 2)\n- **XL** (>= 1440px) – up to 6 columns are recommended (default: 3)\n\nTo change the layout, use the `layout` property - f.e. layout=\"S1 M2 L3 XL6\".\n\n### Groups\n\nTo make better use of screen space, there is built-in logic to determine how many columns should a FormGroup occupy.\n\n- **Example #1** (perfect match):\n4 columns and 4 groups: each group will use 1 column.\n\n- **Example #2** (balanced distribution):\n4 columns and 2 groups: each group will use 2 columns.\n6 columns and 2 groups: each group will use 3 columns.\n\n- **Example #3** (unbalanced distribution):\n3 columns and 2 groups: the larger one will use 2 columns, the smaller 1 column.\n5 columns and 3 groups: two of the groups will use 2 columns each, the smallest 1 column.\n\n**Note:** The size of a group element is determined by the number of FormItems assigned to it.\nIn the case of equality, the first in the DOM will use more columns, and the last - fewer columns.\n\n- **Example #4** (more groups than columns):\n3 columns and 4 groups: each FormGroup uses only 1 column, the last FormGroup will wrap on the second row.\n\n### Groups Column Span\n\nTo influence the built-in group distribution, described in the previous section,\nyou can use the FormGroup's `columnSpan` property, that defines how many columns the group should expand to.\n\n### Items Column Span\n\nFormItem's columnSpan property defines how many columns the form item should expand to inside a form group or the form.\n\n### Items Label Span\n\nThe placement of the labels depends on the size of the used column.\nIf there is enough space, the labels are next to their associated fields, otherwise - above the fields.\nBy default, the labels take 4/12 of the FormItem, leaving 8/12 parts to associated fields.\nYou can control what space the labels should take via the `labelSpan` property.\n\n**For example:** To always place the labels on top set: `labelSpan=\"S12 M12 L12 XL12\"` property.\n\n### Items Empty Span\n\nBy default, a form item spans 12 cells, fully divided between its label and field, with no empty space at the end:\n- **Label:** occupies 4 cells.\n- **Field:** occupies 8 cells.\n\nThe `emptySpan` property provides additional layout flexibility by defining empty space at the form item’s end.\n\n**For example:** Setting \"S0 M0 L3 XL3\" (or just \"L3 XL3\") adjusts the layout as follows:\n- **Label:** remains 4 cells.\n- **Field:** is reduced to 5 cells.\n- **Empty space:** 3 cells are added at the end.\n\nGreater values increase the empty space at the end of the form item, reducing the space available for the label and its field.\nHowever, setting `emptySpan` to 1 cell is recommended and typically sufficient to achieve a balanced layout.\n\n### Navigation flow\n\nItems are grouped into `ui5-form-group` elements, allowing the following navigation:\n\n- **Single-Column Group**: Focus moves vertically down from one item to the next.\n ```\n | 1 |\n | 2 |\n | 3 |\n ```\n\n- **Multi-Column Group**: Focus moves horizontally within each row, advancing to the next row after completing the current one.\n ```\n | 1 | 4 |\n | 2 | 5 |\n | 3 | 6 |\n ```\n\n### Keyboard Handling\n\n- [Tab] - Moves the focus to the next interactive element within the Form/FormGroup (if available) or to the next element in the tab chain outside the Form\n- [Shift] + [Tab] - Moves the focus to the previous interactive element within the Form/FormGroup (if available) or to the previous element in the tab chain outside the Form\n- [F6] - Moves the focus to the first interactive element of the next FormGroup (if available) or to the next element in the tab chain outside the Form\n- [Shift] + [F6] - Moves the focus to the first interactive element of the previous FormGroup (if available) or to the previous element in the tab chain outside the Form\n\n### ES6 Module Import\n\n- import @ui5/webcomponents/dist/Form.js\";\n- import @ui5/webcomponents/dist/FormGroup.js\";\n- import @ui5/webcomponents/dist/FormItem.js\";\n---\n\n\n### **Slots:**\n - **default** - Defines the component content - FormGroups or FormItems.\n\n**Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\nEither use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n\n**Note:** As of version 2.23.0 the support for standalone FormItems (not belonging to a group) is deprecated.\nWe recommend using FormGroups, as they provide better accessibility and layout options.\n- **header** - Defines the component header area.\n\n**Note:** When a `header` is provided, the `headerText` property is ignored.\n\n### **CSS Parts:**\n - **column** - Used to style a single column of the form column layout.\n- **header** - Used to style the wrapper of the header.\n- **layout** - Used to style the element defining the form column layout.",
4229
4229
  "doc-url": "",
4230
4230
  "attributes": [
4231
4231
  {
@@ -4286,7 +4286,7 @@
4286
4286
  "slots": [
4287
4287
  {
4288
4288
  "name": "default",
4289
- "description": "Defines the component content - FormGroups or FormItems.\n\n**Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\nEither use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups."
4289
+ "description": "Defines the component content - FormGroups or FormItems.\n\n**Note:** Mixing FormGroups and standalone FormItems (not belonging to a group) is not supported.\nEither use FormGroups and make sure all FormItems are part of a FormGroup, or use just FormItems without any FormGroups.\n\n**Note:** As of version 2.23.0 the support for standalone FormItems (not belonging to a group) is deprecated.\nWe recommend using FormGroups, as they provide better accessibility and layout options."
4290
4290
  },
4291
4291
  {
4292
4292
  "name": "header",
@@ -4362,9 +4362,14 @@
4362
4362
  "description": "Defines id (or many ids) of the element (or elements) that label the component.",
4363
4363
  "value": { "type": "string | undefined", "default": "undefined" }
4364
4364
  },
4365
+ {
4366
+ "name": "col-span",
4367
+ "description": "Defines the number of columns to distribute the form content by breakpoint (S1 M2 L3 XL4 for example).\n\n**Note:** This property is ignored if `columnSpan` is set, as it is expected that the column span is defined.",
4368
+ "value": { "type": "string | undefined", "default": "undefined" }
4369
+ },
4365
4370
  {
4366
4371
  "name": "column-span",
4367
- "description": "Defines column span of the component,\ne.g how many columns the group should span to.",
4372
+ "description": "Defines column span of the component,\ne.g how many columns the group should span to.\n\n**Note:** If this property is set, it has higher priority than `colSpan` and `colSpan` will be ignored.",
4368
4373
  "value": { "type": "number | undefined", "default": "undefined" }
4369
4374
  },
4370
4375
  {
@@ -4400,9 +4405,14 @@
4400
4405
  "description": "Defines id (or many ids) of the element (or elements) that label the component.",
4401
4406
  "value": { "type": "string | undefined" }
4402
4407
  },
4408
+ {
4409
+ "name": "col-span",
4410
+ "description": "Defines the number of columns to distribute the form content by breakpoint (S1 M2 L3 XL4 for example).\n\n**Note:** This property is ignored if `columnSpan` is set, as it is expected that the column span is defined.",
4411
+ "value": { "type": "string | undefined" }
4412
+ },
4403
4413
  {
4404
4414
  "name": "column-span",
4405
- "description": "Defines column span of the component,\ne.g how many columns the group should span to.",
4415
+ "description": "Defines column span of the component,\ne.g how many columns the group should span to.\n\n**Note:** If this property is set, it has higher priority than `colSpan` and `colSpan` will be ignored.",
4406
4416
  "value": { "type": "number | undefined" }
4407
4417
  },
4408
4418
  {
@@ -4456,7 +4466,7 @@
4456
4466
  },
4457
4467
  {
4458
4468
  "name": "ui5-icon",
4459
- "description": "### Overview\n\nThe `ui5-icon` component represents an SVG icon.\nThere are two main scenarios how the `ui5-icon` component is used:\nas a purely decorative element,\nor as an interactive element that can be focused and clicked.\n\n### Usage\n\n1. **Get familiar with the icons collections.**\n\nBefore displaying an icon, you need to explore the icons collections to find and import the desired icon.\n\nCurrently there are 3 icons collection, available as 3 npm packages:\n\n- [@ui5/webcomponents-icons](https://www.npmjs.com/package/@ui5/webcomponents-icons) represents the \"SAP-icons\" collection and includes the following\n[icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons).\n- [@ui5/webcomponents-icons-tnt](https://www.npmjs.com/package/@ui5/webcomponents-icons-tnt) represents the \"tnt\" collection and includes the following\n[icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons-TNT).\n- [@ui5/webcomponents-icons-business-suite](https://www.npmjs.com/package/@ui5/webcomponents-icons-business-suite) represents the \"business-suite\" collection and includes the following\n[icons](https://ui5.sap.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/BusinessSuiteInAppSymbols).\n\n2. **After exploring the icons collections, add one or more of the packages as dependencies to your project.**\n\n`npm i @ui5/webcomponents-icons`\n`npm i @ui5/webcomponents-icons-tnt`\n`npm i @ui5/webcomponents-icons-business-suite`\n\n3. **Then, import the desired icon**.\n\n`import \"@ui5/\\{package_name\\}/dist/\\{icon_name\\}.js\";`\n\n**For Example**:\n\nFor the standard \"SAP-icons\" icon collection, import an icon from the `@ui5/webcomponents-icons` package:\n\n`import \"@ui5/webcomponents-icons/dist/employee.js\";`\n\nFor the \"tnt\" (SAP Fiori Tools) icon collection, import an icon from the `@ui5/webcomponents-icons-tnt` package:\n\n`import \"@ui5/webcomponents-icons-tnt/dist/antenna.js\";`\n\nFor the \"business-suite\" (SAP Business Suite) icon collection, import an icon from the `@ui5/webcomponents-icons-business-suite` package:\n\n`import \"@ui5/webcomponents-icons-business-suite/dist/ab-testing.js\";`\n\n4. **Display the icon using the `ui5-icon` web component.**\nSet the icon collection (\"SAP-icons\", \"tnt\" or \"business-suite\" - \"SAP-icons\" is the default icon collection and can be skipped)\nand the icon name to the `name` property.\n\n`<ui5-icon name=\"employee\"></ui5-icon>`\n`<ui5-icon name=\"tnt/antenna\"></ui5-icon>`\n`<ui5-icon name=\"business-suite/ab-testing\"></ui5-icon>`\n\n### Keyboard Handling\n\n- [Space] / [Enter] or [Return] - Fires the `click` event if the `mode` property is set to `Interactive`.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Icon.js\";`\n---\n\n\n### **Events:**\n - **click** - Fired when the component is activated by mouse/touch, keyboard (Enter or Space),\nor screen reader virtual cursor activation.\n\n**Note:** The event will not be fired if the `mode` property is set to `Decorative` or `Image`.\n\n### **CSS Parts:**\n - **root** - Used to style the outermost wrapper of the `ui5-icon`.",
4469
+ "description": "### Overview\n\nThe `ui5-icon` component represents an SVG icon.\nThere are two main scenarios how the `ui5-icon` component is used:\nas a purely decorative element,\nor as an interactive element that can be focused and clicked.\n\n### Usage\n\n1. **Get familiar with the icons collections.**\n\nBefore displaying an icon, you need to explore the icons collections to find and import the desired icon.\n\nCurrently there are 3 icons collection, available as 3 npm packages:\n\n- [@ui5/webcomponents-icons](https://www.npmjs.com/package/@ui5/webcomponents-icons) represents the \"SAP-icons\" collection and includes the following\n[icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons).\n- [@ui5/webcomponents-icons-tnt](https://www.npmjs.com/package/@ui5/webcomponents-icons-tnt) represents the \"tnt\" collection and includes the following\n[icons](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/SAP-icons-TNT).\n- [@ui5/webcomponents-icons-business-suite](https://www.npmjs.com/package/@ui5/webcomponents-icons-business-suite) represents the \"business-suite\" collection and includes the following\n[icons](https://ui5.sap.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html#/overview/BusinessSuiteInAppSymbols).\n\n2. **After exploring the icons collections, add one or more of the packages as dependencies to your project.**\n\n`npm i @ui5/webcomponents-icons`\n`npm i @ui5/webcomponents-icons-tnt`\n`npm i @ui5/webcomponents-icons-business-suite`\n\n3. **Then, import the desired icon**.\n\n`import \"@ui5/\\{package_name\\}/dist/\\{icon_name\\}.js\";`\n\n**For Example**:\n\nFor the standard \"SAP-icons\" icon collection, import an icon from the `@ui5/webcomponents-icons` package:\n\n`import \"@ui5/webcomponents-icons/dist/employee.js\";`\n\nFor the \"tnt\" (SAP Fiori Tools) icon collection, import an icon from the `@ui5/webcomponents-icons-tnt` package:\n\n`import \"@ui5/webcomponents-icons-tnt/dist/antenna.js\";`\n\nFor the \"business-suite\" (SAP Business Suite) icon collection, import an icon from the `@ui5/webcomponents-icons-business-suite` package:\n\n`import \"@ui5/webcomponents-icons-business-suite/dist/ab-testing.js\";`\n\n4. **Display the icon using the `ui5-icon` web component.**\nSet the icon collection (\"SAP-icons\", \"tnt\" or \"business-suite\" - \"SAP-icons\" is the default icon collection and can be skipped)\nand the icon name to the `name` property.\n\n`<ui5-icon name=\"employee\"></ui5-icon>`\n`<ui5-icon name=\"tnt/antenna\"></ui5-icon>`\n`<ui5-icon name=\"business-suite/ab-testing\"></ui5-icon>`\n\n### Keyboard Handling\n\n- [Space] / [Enter] or [Return] - Fires the `click` event if the `mode` property is set to `Interactive`.\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Icon.js\";`\n---\n\n\n### **Events:**\n - **click** - Fired when the component is activated by mouse/touch, keyboard (Enter or Space),\nor screen reader virtual cursor activation.\n\n**Note:** The event will not be fired if the `mode` property is set to `Decorative` or `Image`.\n\n### **Slots:**\n - **fontIcon** - Defines the font icon to be used as an icon.\nIntended for font-based icon libraries where\nthe application loads the font and provides a slotted element with the unicode character.\nWhen this slot is used, the component renders a `<span>` instead of an `<svg>`.\nAccessibility is fully delegated to the application — set `accessible-name` and `mode` explicitly.\n\n**Example:**\n```html\n<ui5-icon mode=\"Image\" accessible-name=\"Home\">\n <i class=\"fa fa-home\" slot=\"fontIcon\"></i>\n</ui5-icon>\n```\n\n### **CSS Parts:**\n - **root** - Used to style the outermost wrapper of the `ui5-icon`.",
4460
4470
  "doc-url": "",
4461
4471
  "attributes": [
4462
4472
  {
@@ -4491,6 +4501,12 @@
4491
4501
  "value": { "type": "boolean", "default": "false" }
4492
4502
  }
4493
4503
  ],
4504
+ "slots": [
4505
+ {
4506
+ "name": "fontIcon",
4507
+ "description": "Defines the font icon to be used as an icon.\nIntended for font-based icon libraries where\nthe application loads the font and provides a slotted element with the unicode character.\nWhen this slot is used, the component renders a `<span>` instead of an `<svg>`.\nAccessibility is fully delegated to the application — set `accessible-name` and `mode` explicitly.\n\n**Example:**\n```html\n<ui5-icon mode=\"Image\" accessible-name=\"Home\">\n <i class=\"fa fa-home\" slot=\"fontIcon\"></i>\n</ui5-icon>\n```"
4508
+ }
4509
+ ],
4494
4510
  "events": [
4495
4511
  {
4496
4512
  "name": "click",
@@ -7325,7 +7341,7 @@
7325
7341
  },
7326
7342
  {
7327
7343
  "name": "ui5-panel",
7328
- "description": "### Overview\n\nThe `ui5-panel` component is a container which has a header and a\ncontent area and is used\nfor grouping and displaying information. It can be collapsed to save space on the screen.\n\n### Guidelines:\n\n- Nesting two or more panels is not recommended.\n- Do not stack too many panels on one page.\n\n### Structure\nThe panel's header area consists of a title bar with a header text or custom header.\n\nThe header is clickable and can be used to toggle between the expanded and collapsed state. It includes an icon which rotates depending on the state.\n\nThe custom header can be set through the `header` slot and it may contain arbitraray content, such as: title, buttons or any other HTML elements.\n\nThe content area can contain an arbitrary set of controls.\n\n**Note:** The custom header is not clickable out of the box, but in this case the icon is interactive and allows to show/hide the content area.\n\n### Responsive Behavior\n\n- If the width of the panel is set to 100% (default), the panel and its children are\nresized responsively,\ndepending on its parent container.\n- If the panel has a fixed height, it will take up the space even if the panel is\ncollapsed.\n- When the panel is expandable (the `fixed` property is set to `false`),\nan arrow icon (pointing to the right) appears in front of the header.\n- When the animation is activated, expand/collapse uses a smooth animation to open or\nclose the content area.\n- When the panel expands/collapses, the arrow icon rotates 90 degrees\nclockwise/counter-clockwise.\n\n### Keyboard Handling\n\n#### Fast Navigation\nThis component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\nIn order to use this functionality, you need to import the following module:\n`import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Panel.js\";`\n---\n\n\n### **Events:**\n - **toggle** - Fired when the component is expanded/collapsed by user interaction.\n\n### **Slots:**\n - **default** - Defines the content of the component. The content is visible only when the component is expanded.\n- **header** - Defines the component header area.\n\n**Note:** When a header is provided, the `headerText` property is ignored.\n\n### **CSS Parts:**\n - **content** - Used to style the wrapper of the content.\n- **header** - Used to style the wrapper of the header.",
7344
+ "description": "### Overview\n\nThe `ui5-panel` component is a container which has a header and a\ncontent area and is used\nfor grouping and displaying information. It can be collapsed to save space on the screen.\n\n### Guidelines:\n\n- Nesting two or more panels is not recommended.\n- Do not stack too many panels on one page.\n\n### Structure\nThe panel's header area consists of a title bar with a header text or custom header.\n\nThe header is clickable and can be used to toggle between the expanded and collapsed state. It includes an icon which rotates depending on the state.\n\nThe custom header can be set through the `header` slot and it may contain arbitraray content, such as: title, buttons or any other HTML elements.\n\nThe content area can contain an arbitrary set of controls.\n\n**Note:** The custom header is not clickable out of the box, but in this case the icon is interactive and allows to show/hide the content area.\n\n### Responsive Behavior\n\n- If the width of the panel is set to 100% (default), the panel and its children are\nresized responsively,\ndepending on its parent container.\n- If the panel has a fixed height, it will take up the space even if the panel is\ncollapsed.\n- When the panel is expandable (the `fixed` property is set to `false`),\nan arrow icon (pointing to the right) appears in front of the header.\n- When the animation is activated, expand/collapse uses a smooth animation to open or\nclose the content area.\n- When the panel expands/collapses, the arrow icon rotates 90 degrees\nclockwise/counter-clockwise.\n\n### Keyboard Handling\n\n#### Fast Navigation\nThis component provides a build in fast navigation group which can be used via [F6] / [Shift] + [F6] / [Ctrl] + [Alt/Option] / [Down] or [Ctrl] + [Alt/Option] + [Up].\nIn order to use this functionality, you need to import the following module:\n`import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"`\n\n### ES6 Module Import\n\n`import \"@ui5/webcomponents/dist/Panel.js\";`\n---\n\n\n### **Events:**\n - **toggle** - Fired when the component is expanded/collapsed by user interaction.\n\n### **Slots:**\n - **default** - Defines the content of the component. The content is visible only when the component is expanded.\n- **header** - Defines the component header area.\n\n**Note:** When a header is provided, the `headerText` property is ignored.\n\n### **CSS Parts:**\n - **content** - Used to style the wrapper of the content.\n- **header** - Used to style the header.\n- **header-wrapper** - Used to style the outermost header wrapper, useful for adjusting sticky header position.",
7329
7345
  "doc-url": "",
7330
7346
  "attributes": [
7331
7347
  {
@@ -14035,9 +14051,10 @@
14035
14051
  "name": "part(content)",
14036
14052
  "description": "Used to style the wrapper of the content."
14037
14053
  },
14054
+ { "name": "part(header)", "description": "Used to style the header." },
14038
14055
  {
14039
- "name": "part(header)",
14040
- "description": "Used to style the wrapper of the header."
14056
+ "name": "part(header-wrapper)",
14057
+ "description": "Used to style the outermost header wrapper, useful for adjusting sticky header position."
14041
14058
  },
14042
14059
  {
14043
14060
  "name": "part(content)",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents",
3
- "version": "2.22.1-rc.0",
3
+ "version": "2.23.0-rc.1",
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.22.1-rc.0",
58
- "@ui5/webcomponents-icons": "2.22.1-rc.0",
59
- "@ui5/webcomponents-icons-business-suite": "2.22.1-rc.0",
60
- "@ui5/webcomponents-icons-tnt": "2.22.1-rc.0",
61
- "@ui5/webcomponents-localization": "2.22.1-rc.0",
62
- "@ui5/webcomponents-theming": "2.22.1-rc.0"
57
+ "@ui5/webcomponents-base": "2.23.0-rc.1",
58
+ "@ui5/webcomponents-icons": "2.23.0-rc.1",
59
+ "@ui5/webcomponents-icons-business-suite": "2.23.0-rc.1",
60
+ "@ui5/webcomponents-icons-tnt": "2.23.0-rc.1",
61
+ "@ui5/webcomponents-localization": "2.23.0-rc.1",
62
+ "@ui5/webcomponents-theming": "2.23.0-rc.1"
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.22.1-rc.0",
67
+ "@ui5/webcomponents-tools": "2.23.0-rc.1",
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": "9e6891583a3a6f14d19812a700c86495a46ee276"
74
+ "gitHead": "ab89a5f83b5dbd4bca2ba6e6b145f54c548c5dd0"
75
75
  }
@@ -8,6 +8,16 @@ export default function FormTemplate(this: Form) {
8
8
  role={this.effectiveAccessibleRole}
9
9
  aria-label={this.effectiveAccessibleName}
10
10
  aria-labelledby={this.effectiveАccessibleNameRef}
11
+ style={{
12
+ "--ui5-form-columns-s": this.columnsS,
13
+ "--ui5-form-columns-m": this.columnsM,
14
+ "--ui5-form-columns-l": this.columnsL,
15
+ "--ui5-form-columns-xl": this.columnsXl,
16
+ "--ui5-form-item-layout-S": this.getFormItemLayout("S"),
17
+ "--ui5-form-item-layout-M": this.getFormItemLayout("M"),
18
+ "--ui5-form-item-layout-L": this.getFormItemLayout("L"),
19
+ "--ui5-form-item-layout-XL": this.getFormItemLayout("XL"),
20
+ }}
11
21
  >
12
22
  {this.hasHeader &&
13
23
  <div class="ui5-form-header" part="header">
@@ -19,22 +29,22 @@ export default function FormTemplate(this: Form) {
19
29
  </div>
20
30
  }
21
31
 
22
- { this.hasGroupItems ? groupedItemsLayout.call(this) : standaloneItemsLayout.call(this) }
32
+ {this.hasGroupItems ? groupedItemsLayout.call(this) : standaloneItemsLayout.call(this)}
23
33
  </div>
24
34
  );
25
35
  }
26
36
 
27
37
  function groupedItemsLayout(this: Form) {
28
38
  return <div class="ui5-form-layout" part="layout">
29
- { this.groupItemsInfo.map(groupItemInfo => {
39
+ {this.groupItemsInfo.map(groupItemInfo => {
30
40
  const groupItem = groupItemInfo.groupItem;
31
41
  return <div
32
- class={{
33
- "ui5-form-column": true,
34
- [`ui5-form-column-spanL-${groupItem.colsL}`]: true,
35
- [`ui5-form-column-spanXL-${groupItem.colsXl}`]: true,
36
- [`ui5-form-column-spanM-${groupItem.colsM}`]: true,
37
- [`ui5-form-column-spanS-${groupItem.colsS}`]: true,
42
+ class="ui5-form-column"
43
+ style={{
44
+ "--ui5-form-column-span-s": groupItem.colsS,
45
+ "--ui5-form-column-span-m": groupItem.colsM,
46
+ "--ui5-form-column-span-l": groupItem.colsL,
47
+ "--ui5-form-column-span-xl": groupItem.colsXl,
38
48
  }}
39
49
  part="column"
40
50
  >
@@ -43,12 +53,12 @@ function groupedItemsLayout(this: Form) {
43
53
  aria-labelledby={groupItemInfo.accessibleNameRef}
44
54
  aria-label={groupItemInfo.accessibleName}
45
55
  >
46
- { groupItem.headerText &&
56
+ {groupItem.headerText &&
47
57
  <div class="ui5-form-group-heading">
48
58
  <Title id={`${groupItem._id}-group-header-text`} level={groupItem.headerLevel} size="H6">{groupItem.headerText}</Title>
49
59
  </div>
50
60
  }
51
- { this.accessibleMode === "Edit" ?
61
+ {this.accessibleMode === "Edit" ?
52
62
  <div class="ui5-form-group-layout">
53
63
  <slot name={groupItem._individualSlot}></slot>
54
64
  </div>
@@ -64,29 +74,37 @@ function groupedItemsLayout(this: Form) {
64
74
  }
65
75
 
66
76
  function standaloneItemsLayout(this: Form) {
67
- return (
68
- this.accessibleMode === "Edit" ?
69
- <div class="ui5-form-layout" part="layout">
70
- { standaloneItemsLayoutContent.call(this) }
77
+ const column = <div
78
+ class="ui5-form-column"
79
+ style={{
80
+ "--ui5-form-column-span-s": this.columnsS,
81
+ "--ui5-form-column-span-m": this.columnsM,
82
+ "--ui5-form-column-span-l": this.columnsL,
83
+ "--ui5-form-column-span-xl": this.columnsXl,
84
+ }}
85
+ part="column"
86
+ >
87
+ {this.accessibleMode === "Edit" ?
88
+ <div class="ui5-form-group-layout">
89
+ {standaloneItemsLayoutContent.call(this)}
71
90
  </div>
72
91
  :
73
- <dl class="ui5-form-layout" part="layout">
74
- { standaloneItemsLayoutContent.call(this) }
92
+ <dl class="ui5-form-group-layout">
93
+ {standaloneItemsLayoutContent.call(this)}
75
94
  </dl>
76
- );
95
+ }
96
+ </div>;
97
+
98
+ return <div class="ui5-form-layout" part="layout">{column}</div>;
77
99
  }
78
100
 
79
101
  function standaloneItemsLayoutContent(this: Form) {
80
102
  return this.itemsInfo.map(itemInfo => {
81
103
  const item = itemInfo.item;
82
104
  return (
83
- <div class={{
84
- "ui5-form-item": true,
85
- [`ui5-form-item-span-${item.columnSpan}`]: item.columnSpan !== undefined,
86
- }}
87
- >
105
+ <div class="ui5-form-item">
88
106
  <slot name={item._individualSlot}></slot>
89
- </div>
107
+ </div >
90
108
  );
91
109
  });
92
110
  }
@@ -1,6 +1,24 @@
1
1
  import type Icon from "./Icon.js";
2
2
 
3
3
  export default function IconTemplate(this: Icon) {
4
+ if (this.hasFontIcon) {
5
+ return (
6
+ <span
7
+ class="ui5-icon-root"
8
+ part="root"
9
+ tabindex={this._tabIndex}
10
+ role={this.effectiveAccessibleRole}
11
+ aria-label={this.effectiveAccessibleName}
12
+ aria-hidden={this.effectiveAriaHidden}
13
+ onKeyDown={this._onkeydown}
14
+ onKeyUp={this._onkeyup}
15
+ onClick={this._onclick}
16
+ >
17
+ <slot name="fontIcon"></slot>
18
+ </span>
19
+ );
20
+ }
21
+
4
22
  return (
5
23
  <svg
6
24
  class="ui5-icon-root"
@@ -53,7 +53,7 @@ export default function ListItemTemplate(this: ListItem, hooks?: Partial<ListIte
53
53
  aria-haspopup={this._accInfo.ariaHaspopup}
54
54
  aria-posinset={this._accInfo.posinset}
55
55
  aria-setsize={this._accInfo.setsize}
56
- aria-describedby={`${this._id}-invisibleText-describedby`}
56
+ aria-describedby={this._accInfo.ariaDescribedBy}
57
57
  aria-labelledby={this._accessibleNameRef}
58
58
  aria-disabled={this._ariaDisabled}
59
59
  aria-selected={this._accInfo.ariaSelected}
@@ -21,6 +21,7 @@ export default function PanelTemplate(this: Panel) {
21
21
  }}
22
22
  role={this.headingWrapperRole}
23
23
  aria-level={this.headingWrapperAriaLevel}
24
+ part="header-wrapper"
24
25
  >
25
26
  <div
26
27
  onClick={this._headerClick}
@@ -89,22 +90,15 @@ export default function PanelTemplate(this: Panel) {
89
90
 
90
91
  {/* content area */}
91
92
  <div
92
- class={{
93
- "ui5-panel-content-wrapper": true,
94
- "ui5-panel-content-focusable": this._contentFocusable,
95
- }}
93
+ class="ui5-panel-content"
94
+ id={ `${this._id}-content` }
95
+ tabindex={ -1 }
96
96
  style={{
97
97
  display: this._contentExpanded ? "block" : "none",
98
98
  }}
99
+ part="content"
99
100
  >
100
- <div
101
- class="ui5-panel-content"
102
- id={ `${this._id}-content` }
103
- tabindex={ this._contentTabIndex }
104
- part="content"
105
- >
106
- <slot></slot>
107
- </div>
101
+ <slot></slot>
108
102
  </div>
109
103
  </div>
110
104
  </>);