@ui5/webcomponents 2.27.0-rc.2 → 2.27.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 (116) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/Calendar.d.ts +1 -1
  4. package/dist/Calendar.js +1 -2
  5. package/dist/Calendar.js.map +1 -1
  6. package/dist/ListItemGroupBase.d.ts +1 -1
  7. package/dist/ListItemGroupBase.js +1 -1
  8. package/dist/ListItemGroupBase.js.map +1 -1
  9. package/dist/MultiComboBox.js +1 -1
  10. package/dist/MultiComboBox.js.map +1 -1
  11. package/dist/NumberInput.d.ts +2 -2
  12. package/dist/NumberInput.js +1 -1
  13. package/dist/NumberInput.js.map +1 -1
  14. package/dist/RatingIndicator.d.ts +1 -5
  15. package/dist/RatingIndicator.js +6 -11
  16. package/dist/RatingIndicator.js.map +1 -1
  17. package/dist/RatingIndicatorTemplate.js +1 -1
  18. package/dist/RatingIndicatorTemplate.js.map +1 -1
  19. package/dist/Select.d.ts +1 -0
  20. package/dist/Select.js.map +1 -1
  21. package/dist/Token.d.ts +1 -0
  22. package/dist/Token.js +6 -0
  23. package/dist/Token.js.map +1 -1
  24. package/dist/Toolbar.js +1 -1
  25. package/dist/Toolbar.js.map +1 -1
  26. package/dist/ToolbarItemBase.d.ts +3 -3
  27. package/dist/ToolbarItemBase.js +5 -29
  28. package/dist/ToolbarItemBase.js.map +1 -1
  29. package/dist/css/themes/CalendarHeader.css +1 -1
  30. package/dist/css/themes/DynamicDateRangePopover.css +1 -1
  31. package/dist/css/themes/ListItemBase.css +1 -1
  32. package/dist/css/themes/RatingIndicator.css +1 -1
  33. package/dist/css/themes/Token.css +1 -1
  34. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  35. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  36. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  37. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +1 -1
  38. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  39. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +2 -2
  40. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  41. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  42. package/dist/custom-elements-internal.json +27 -64
  43. package/dist/custom-elements.json +30 -68
  44. package/dist/dynamic-date-range-options/DateRange.js +3 -4
  45. package/dist/dynamic-date-range-options/DateRange.js.map +1 -1
  46. package/dist/dynamic-date-range-options/FromDateTime.js +4 -5
  47. package/dist/dynamic-date-range-options/FromDateTime.js.map +1 -1
  48. package/dist/dynamic-date-range-options/SingleDate.js +2 -2
  49. package/dist/dynamic-date-range-options/SingleDate.js.map +1 -1
  50. package/dist/dynamic-date-range-options/ToDateTime.js +4 -5
  51. package/dist/dynamic-date-range-options/ToDateTime.js.map +1 -1
  52. package/dist/dynamic-date-range-options/toDates.d.ts +2 -1
  53. package/dist/dynamic-date-range-options/toDates.js +5 -1
  54. package/dist/dynamic-date-range-options/toDates.js.map +1 -1
  55. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  56. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  57. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  58. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  59. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  60. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  61. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  62. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  63. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  64. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  65. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  66. package/dist/generated/themes/DynamicDateRangePopover.css.d.ts +1 -1
  67. package/dist/generated/themes/DynamicDateRangePopover.css.js +1 -1
  68. package/dist/generated/themes/DynamicDateRangePopover.css.js.map +1 -1
  69. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  70. package/dist/generated/themes/ListItemBase.css.js +1 -1
  71. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  72. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  73. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  74. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  75. package/dist/generated/themes/Token.css.d.ts +1 -1
  76. package/dist/generated/themes/Token.css.js +1 -1
  77. package/dist/generated/themes/Token.css.js.map +1 -1
  78. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  79. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  80. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  81. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  82. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  83. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  84. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  85. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  86. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  87. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  88. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +1 -1
  89. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  90. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  91. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  92. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  93. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  94. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +2 -2
  95. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  96. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  97. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  98. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  99. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  100. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  101. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  102. package/dist/vscode.html-custom-data.json +0 -10
  103. package/dist/web-types.json +11 -31
  104. package/package.json +9 -9
  105. package/src/RatingIndicatorTemplate.tsx +0 -1
  106. package/src/themes/CalendarHeader.css +7 -6
  107. package/src/themes/DynamicDateRangePopover.css +2 -3
  108. package/src/themes/ListItemBase.css +1 -1
  109. package/src/themes/RatingIndicator.css +2 -1
  110. package/src/themes/Token.css +6 -3
  111. package/src/themes/sap_fiori_3_hcb/CalendarHeader-parameters.css +3 -4
  112. package/src/themes/sap_fiori_3_hcw/CalendarHeader-parameters.css +3 -4
  113. package/src/themes/sap_horizon/CalendarHeader-parameters.css +0 -1
  114. package/src/themes/sap_horizon_dark/CalendarHeader-parameters.css +0 -1
  115. package/src/themes/sap_horizon_hcb/CalendarHeader-parameters.css +3 -3
  116. package/src/themes/sap_horizon_hcw/CalendarHeader-parameters.css +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../src/Toolbar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ChangeInfo, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\n\nimport {\n\tTOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL,\n\tTOOLBAR_POPOVER_AVAILABLE_VALUES,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport ToolbarTemplate from \"./ToolbarTemplate.js\";\nimport ToolbarCss from \"./generated/themes/Toolbar.css.js\";\n\nimport ToolbarPopoverCss from \"./generated/themes/ToolbarPopover.css.js\";\n\nimport type ToolbarAlign from \"./types/ToolbarAlign.js\";\nimport type ToolbarDesign from \"./types/ToolbarDesign.js\";\nimport ToolbarItemOverflowBehavior from \"./types/ToolbarItemOverflowBehavior.js\";\n\nimport ToolbarItemBase from \"./ToolbarItemBase.js\";\nimport type ToolbarSeparator from \"./ToolbarSeparator.js\";\n\nimport type Button from \"./Button.js\";\nimport type Popover from \"./Popover.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\n\ntype ToolbarMinWidthChangeEventDetail = {\n\tminWidth: number,\n};\n\n/**\n * One step of the overflow distribution algorithm — either a single ungrouped item or\n * all members of one non-empty `overflowGroup`, treated atomically. A unit's order key\n * for the right-to-left distribution walk is the rightmost member's slot index; its\n * width is the sum of member widths.\n */\ntype DistributionUnit = {\n\tmembers: Array<ToolbarItemBase>,\n\twidth: number,\n\trightmostIndex: number,\n};\n\nfunction calculateCSSREMValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"rem\", \"\")) * parseInt(getComputedStyle(document.body).getPropertyValue(\"font-size\"));\n}\n\nfunction parsePxValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"px\", \"\"));\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-toolbar` component is used to create a horizontal layout with items.\n * The items can be overflowing in a popover, when the space is not enough to show all of them.\n *\n * ### Grouped Overflow\n *\n * Items that share the same non-empty `overflowGroup` string are treated as one atomic\n * unit during overflow distribution: when any member must move into the overflow\n * popover, all members move together. The visible bar always preserves slot order;\n * the group becomes adjacent only inside the popover. See the `overflowGroup` property\n * on `ToolbarItemBase` for the full contract.\n *\n * ### Keyboard Handling\n * The `ui5-toolbar` provides advanced keyboard handling.\n *\n * - [Left]/[Right] - navigate among toolbar items\n * - [Home]/[End] - move to first/last toolbar item\n * - [Tab] / [Shift]+[Tab] - exit the toolbar\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/Toolbar.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: ToolbarTemplate,\n})\n/**\n * @private\n*/\n@event(\"_min-content-width-change\", {\n\tbubbles: true,\n})\n\nclass Toolbar extends UI5Element {\n\teventDetails!: {\n\t\t\"_min-content-width-change\": ToolbarMinWidthChangeEventDetail\n\t}\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Indicated the direction in which the Toolbar items will be aligned.\n\t * @public\n\t * @default \"End\"\n\t */\n\t@property()\n\talignContent: `${ToolbarAlign}` = \"End\";\n\n\t/**\n\t * Calculated width of the whole toolbar.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ type: Number })\n\twidth?: number;\n\n\t/**\n\t * Calculated width of the toolbar content.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ type: Number })\n\tcontentWidth?: number;\n\n\t/**\n\t * Notifies the toolbar if it should show the items in a reverse way if Toolbar Popover needs to be placed on \"Top\" position.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\treverseOverflow = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * **Note:** It is strongly recommended to always set this property or `accessibleNameRef`\n\t * when the toolbar has `role=\"toolbar\"` (i.e. when it contains more than one interactive item).\n\t * Without an accessible name, screen readers will announce the toolbar without any context,\n\t * making it harder for keyboard-only and AT users to understand its purpose.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input.\n\t *\n\t * **Note:** When the toolbar has `role=\"toolbar\"`, at least one of `accessibleName` or\n\t * `accessibleNameRef` should be provided to satisfy WCAG 2.1 success criterion 4.1.2.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the overflow button of the component.\n\t *\n\t * **Note:** When not set, the built-in translation for \"Additional Options\" is used.\n\t * @default undefined\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@property()\n\toverflowButtonAccessibleName?: string;\n\n\t/**\n\t * Defines the toolbar design.\n\t * @public\n\t * @default \"Solid\"\n\t * @since 2.0.0\n\t */\n\t@property()\n\tdesign: `${ToolbarDesign}` = \"Solid\"\n\n\t@property({ type: Boolean })\n\tpopoverOpen = false;\n\n\t/**\n\t * Defines the items of the component.\n\t *\n\t * **Note:** Use `ui5-toolbar-button`, `ui5-toolbar-select`, `ui5-toolbar-separator` and `ui5-toolbar-spacer` for the most common toolbar actions. To place any other UI5 Web Component into the toolbar and have it participate in overflow handling, wrap it in a `ui5-toolbar-item`.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true, type: HTMLElement, invalidateOnChildChange: true, individualSlots: true,\n\t})\n\titems!: DefaultSlot<ToolbarItemBase>\n\n\t_onResize!: ResizeObserverCallback;\n\t_onCloseOverflow!: EventListener;\n\t_onFocusIn!: (e: FocusEvent) => void;\n\t_onKeyDown!: (e: KeyboardEvent) => void;\n\titemsToOverflow: Array<ToolbarItemBase> = [];\n\titemsWidth = 0;\n\tminContentWidth = 0;\n\t// Snapshot of children's `overflowGroup` values, joined with \"|\". Tracks whether\n\t// the grouping decision has changed even when total content width has not.\n\t_groupingKey = \"\";\n\t_lastFocusedItem?: ToolbarItemBase | HTMLElement;\n\n\tITEMS_WIDTH_MAP: Map<string, number> = new Map();\n\n\tstatic get styles() {\n\t\treturn [\n\t\t\tToolbarCss,\n\t\t\tToolbarPopoverCss,\n\t\t];\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._onResize = this.onResize.bind(this);\n\t\tthis._onCloseOverflow = this.closeOverflow.bind(this);\n\t\tthis._onFocusIn = this._onfocusin.bind(this);\n\t\tthis._onKeyDown = this._onkeydown.bind(this);\n\t}\n\t/**\n\t * Read-only members\n\t */\n\tget overflowButtonSize(): number {\n\t\treturn this.overflowButtonDOM?.getBoundingClientRect().width || 0;\n\t}\n\tget padding(): number {\n\t\tconst toolbarComputedStyle = getComputedStyle(this.getDomRef()!);\n\t\treturn calculateCSSREMValue(toolbarComputedStyle, \"--_ui5-toolbar-padding-left\")\n\t\t\t+ calculateCSSREMValue(toolbarComputedStyle, \"--_ui5-toolbar-padding-right\");\n\t}\n\n\tget alwaysOverflowItems() {\n\t\treturn this.items.filter(item => item.effectiveOverflowPriority === ToolbarItemOverflowBehavior.AlwaysOverflow);\n\t}\n\n\tget movableItems() {\n\t\treturn this.items.filter(item => item.effectiveOverflowPriority !== ToolbarItemOverflowBehavior.AlwaysOverflow && item.effectiveOverflowPriority !== ToolbarItemOverflowBehavior.NeverOverflow);\n\t}\n\n\tget overflowItems() {\n\t\t// spacers are ignored\n\t\tconst overflowItems = this.itemsToOverflow.filter(item => !item.ignoreSpace);\n\t\treturn this.reverseOverflow ? overflowItems.reverse() : overflowItems;\n\t}\n\n\tget standardItems() {\n\t\treturn this.items.filter(item => this.itemsToOverflow.indexOf(item) === -1);\n\t}\n\n\tget hideOverflowButton() {\n\t\treturn this.itemsToOverflow.filter(item => !(item.ignoreSpace || item.isSeparator)).length === 0;\n\t}\n\n\tget interactiveItems() {\n\t\treturn this.items.filter((item: ToolbarItemBase) => item.isInteractive);\n\t}\n\n\t/**\n\t * Accessibility\n\t */\n\n\tget hasAriaSemantics() {\n\t\treturn this.interactiveItems.length > 1;\n\t}\n\n\tget accessibleRole() {\n\t\treturn this.hasAriaSemantics ? \"toolbar\" as const : undefined;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn this.hasAriaSemantics ? getEffectiveAriaLabelText(this) : undefined;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\trole: this.accessibleRole,\n\t\t\t\taccessibleName: this.ariaLabelText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\taccessibleName: this.overflowButtonAccessibleName || Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\ttooltip: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\taccessibilityAttributes: {\n\t\t\t\t\texpanded: this.popoverOpen,\n\t\t\t\t\thasPopup: \"menu\" as const,\n\t\t\t\t},\n\t\t\t},\n\t\t\tpopover: {\n\t\t\t\taccessibleName: Toolbar.i18nBundle.getText(TOOLBAR_POPOVER_AVAILABLE_VALUES),\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Toolbar Overflow Popover\n\t */\n\n\tget overflowButtonDOM(): Button | null {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-overflow-btn\");\n\t}\n\n\tget hasFlexibleSpacers() {\n\t\treturn this.items.some((item: ToolbarItemBase) => item.hasFlexibleWidth);\n\t}\n\n\t/**\n\t * Lifecycle methods\n\t */\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResize);\n\t\tthis.attachListeners();\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResize);\n\t\tthis.detachListeners();\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\") {\n\t\t\tconst currentItemsWidth = this.items.reduce((total, item) => total + this.getItemWidth(item), 0);\n\t\t\tconst currentGroupingKey = this.items.map(item => item.effectiveOverflowGroup).join(\"|\");\n\t\t\tif (currentItemsWidth !== this.itemsWidth || currentGroupingKey !== this._groupingKey) {\n\t\t\t\tthis.onToolbarItemChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tif (getActiveElement() === this.overflowButtonDOM?.getFocusDomRef() && this.hideOverflowButton) {\n\t\t\tconst items = this.standardItems.filter(item => item.isToolbarNavigatable);\n\t\t\tconst lastItem = items.at(-1);\n\t\t\tif (lastItem) {\n\t\t\t\tthis._lastFocusedItem = lastItem;\n\t\t\t\tlastItem.focusForToolbarNavigation(false);\n\t\t\t}\n\t\t}\n\t\tthis.prePopulateAlwaysOverflowItems();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\t\tthis.storeItemsWidth();\n\t\tthis.processOverflowLayout();\n\t\tthis.items.forEach(item => {\n\t\t\tthis.addItemsAdditionalProperties(item);\n\t\t});\n\t\tthis._reconcileLastFocusedItem();\n\t}\n\n\t/**\n\t * Drops the tracked re-entry item once it leaves the navigation chain\n\t * (moved to overflow or removed), so Tab re-entry and arrow/Home/End\n\t * navigation don't silently restart from the first item.\n\t */\n\t_reconcileLastFocusedItem() {\n\t\tif (this._lastFocusedItem instanceof ToolbarItemBase && !this._getNavigationChain().includes(this._lastFocusedItem)) {\n\t\t\tthis._lastFocusedItem = undefined;\n\t\t}\n\t}\n\n\taddItemsAdditionalProperties(item: ToolbarItemBase) {\n\t\titem.isOverflowed = this.overflowItems.indexOf(item) !== -1;\n\t\tconst itemWrapper = this.shadowRoot!.querySelector(`#${item._individualSlot}`) as HTMLElement;\n\t\tif (item.hasOverflow && !item.isOverflowed && itemWrapper) {\n\t\t\t// We need to set the max-width to the self-overflow element in order ot prevent it from taking all the available space,\n\t\t\t// since, unlike the other items, it is allowed to grow and shrink\n\t\t\t// We need to set the max-width to none and its position to absolute to allow the item to grow and measure its width,\n\t\t\t// then when set, the max-width will be cached and we will set its highest value to not cut it when the Toolbar shrinks it\n\t\t\t// on rendering and then we resize it manually.\n\t\t\titemWrapper.style.maxWidth = `none`;\n\t\t\titemWrapper?.classList.add(\"ui5-tb-self-overflow-grow\");\n\t\t\titem._maxWidth = Math.max(this.getItemWidth(item), item._maxWidth);\n\t\t\titemWrapper.style.maxWidth = `${item._maxWidth}px`;\n\t\t\titemWrapper?.classList.remove(\"ui5-tb-self-overflow-grow\");\n\t\t}\n\t}\n\n\t/**\n\t * Returns if the overflow popup is open.\n\t * @public\n\t */\n\tisOverflowOpen(): boolean {\n\t\tconst overflowPopover = this.getOverflowPopover();\n\t\treturn overflowPopover.open;\n\t}\n\n\topenOverflow(): void {\n\t\tconst overflowPopover = this.getOverflowPopover();\n\t\toverflowPopover.opener = this.overflowButtonDOM!;\n\t\toverflowPopover.open = true;\n\t\tthis.reverseOverflow = overflowPopover.actualPlacement === \"Top\";\n\t}\n\n\tcloseOverflow() {\n\t\tconst overflowPopover = this.getOverflowPopover();\n\t\toverflowPopover.open = false;\n\t}\n\n\ttoggleOverflow() {\n\t\tif (this.popoverOpen) {\n\t\t\tthis.closeOverflow();\n\t\t} else {\n\t\t\tthis.openOverflow();\n\t\t}\n\t}\n\n\tgetOverflowPopover(): Popover {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\".ui5-overflow-popover\")!;\n\t}\n\n\t/**\n\t * Layout management\n\t */\n\n\tprocessOverflowLayout() {\n\t\tif (this.offsetWidth === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst containerWidth = this.offsetWidth - this.padding;\n\t\tconst contentWidth = this.itemsWidth;\n\t\tlet overflowSpace = contentWidth - containerWidth + this.overflowButtonSize;\n\n\t\tif (contentWidth <= containerWidth) {\n\t\t\toverflowSpace = 0;\n\t\t}\n\n\t\t// skip calculation if the width has not been changed or if the items width has not been changed\n\t\tif (this.width === containerWidth && this.contentWidth === contentWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.distributeItems(overflowSpace);\n\t\tthis.width = containerWidth;\n\t\tthis.contentWidth = contentWidth;\n\t}\n\n\tstoreItemsWidth() {\n\t\tlet totalWidth = 0,\n\t\t\tminWidth = 0;\n\n\t\tthis.items.forEach(item => {\n\t\t\tconst itemWidth = this.getItemWidth(item);\n\t\t\ttotalWidth += itemWidth;\n\t\t\tif (item.effectiveOverflowPriority === ToolbarItemOverflowBehavior.NeverOverflow) {\n\t\t\t\tminWidth += itemWidth;\n\t\t\t}\n\t\t\tthis.ITEMS_WIDTH_MAP.set(item._id, itemWidth);\n\t\t});\n\n\t\tif (minWidth !== this.minContentWidth) {\n\t\t\tconst spaceAroundContent = this.offsetWidth - this.getDomRef()!.offsetWidth;\n\t\t\tthis.fireDecoratorEvent(\"_min-content-width-change\", {\n\t\t\t\tminWidth: minWidth + spaceAroundContent + this.overflowButtonSize,\n\t\t\t});\n\t\t}\n\n\t\tthis.itemsWidth = totalWidth;\n\t\tthis.minContentWidth = minWidth;\n\t\tthis._groupingKey = this.items.map(item => item.effectiveOverflowGroup).join(\"|\");\n\t}\n\n\tdistributeItems(overflowSpace = 0) {\n\t\tthis.itemsToOverflow = [];\n\n\t\t// distribute items that always overflow\n\t\tthis.distributeItemsThatAlwaysOverflow();\n\n\t\t// Bucket movable items (in slot order) into distribution units.\n\t\t// A unit is either a single ungrouped item, or a group of items\n\t\t// sharing the same non-empty `overflowGroup`. A unit is atomic:\n\t\t// when it is pushed into overflow, all its members move together.\n\t\t// The unit's representative slot position is its rightmost member's\n\t\t// index — that index is what orders the unit during distribution.\n\t\tconst slotIndex = new Map<ToolbarItemBase, number>();\n\t\tthis.items.forEach((item, idx) => slotIndex.set(item, idx));\n\t\tconst units = this.buildDistributionUnits(slotIndex);\n\n\t\t// Walk units from rightmost to leftmost, pushing each atomically.\n\t\t// A unit is pushed in full as soon as overflowSpace is still positive;\n\t\t// the post-push budget is allowed to go negative — over-shoot is accepted\n\t\t// by design because a group is indivisible.\n\t\tconst overflowedItems: Array<ToolbarItemBase> = [];\n\t\tlet nextNonOverflowedUnitIndex = units.length - 1;\n\t\tfor (let i = units.length - 1; i >= 0; i--) {\n\t\t\tif (overflowSpace <= 0) {\n\t\t\t\tnextNonOverflowedUnitIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst unit = units[i];\n\t\t\toverflowedItems.push(...unit.members);\n\t\t\toverflowSpace -= unit.width;\n\t\t\tnextNonOverflowedUnitIndex = i - 1;\n\t\t}\n\n\t\t// If the last bar item is a separator, force it (and any contiguous\n\t\t// trailing separators) into overflow even if there is enough space.\n\t\t// Only single-member separator units are considered — pushing a\n\t\t// group's entire content (non-separator content included) because its\n\t\t// rightmost member happens to be a separator would be wrong.\n\t\twhile (nextNonOverflowedUnitIndex >= 0) {\n\t\t\tconst unit = units[nextNonOverflowedUnitIndex];\n\t\t\tif (unit.members.length === 1 && unit.members[0].isSeparator) {\n\t\t\t\toverflowedItems.push(...unit.members);\n\t\t\t\tnextNonOverflowedUnitIndex--;\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// itemsToOverflow must be in slot order so popover rendering matches\n\t\t// the developer's source order (group members adjacent by construction).\n\t\toverflowedItems.sort((a, b) => (slotIndex.get(a)! - slotIndex.get(b)!));\n\t\tthis.itemsToOverflow.push(...overflowedItems);\n\n\t\tthis.setSeperatorsVisibilityInOverflow();\n\t}\n\n\t/**\n\t * Buckets `movableItems` (in slot order) into atomic distribution units.\n\t * Each unit either holds a single ungrouped item or all members of one\n\t * non-empty `overflowGroup`. A unit's order key is its rightmost member's\n\t * slot index. Returned units are sorted ascending by that key.\n\t */\n\tbuildDistributionUnits(slotIndex: Map<ToolbarItemBase, number>): Array<DistributionUnit> {\n\t\tconst movable = this.movableItems;\n\n\t\tconst groupUnits = new Map<string, DistributionUnit>();\n\t\tconst units: Array<DistributionUnit> = [];\n\n\t\tmovable.forEach(item => {\n\t\t\tconst itemWidth = this.getCachedItemWidth(item._id) || 0;\n\t\t\tconst slotIdx = slotIndex.get(item)!;\n\t\t\tconst groupKey = item.effectiveOverflowGroup;\n\t\t\tif (groupKey === \"\") {\n\t\t\t\tunits.push({\n\t\t\t\t\tmembers: [item],\n\t\t\t\t\twidth: itemWidth,\n\t\t\t\t\trightmostIndex: slotIdx,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst existing = groupUnits.get(groupKey);\n\t\t\tif (existing) {\n\t\t\t\texisting.members.push(item);\n\t\t\t\texisting.width += itemWidth;\n\t\t\t\tif (slotIdx > existing.rightmostIndex) {\n\t\t\t\t\texisting.rightmostIndex = slotIdx;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst unit: DistributionUnit = {\n\t\t\t\t\tmembers: [item],\n\t\t\t\t\twidth: itemWidth,\n\t\t\t\t\trightmostIndex: slotIdx,\n\t\t\t\t};\n\t\t\t\tgroupUnits.set(groupKey, unit);\n\t\t\t\tunits.push(unit);\n\t\t\t}\n\t\t});\n\n\t\tunits.sort((a, b) => a.rightmostIndex - b.rightmostIndex);\n\t\treturn units;\n\t}\n\n\tdistributeItemsThatAlwaysOverflow() {\n\t\tthis.alwaysOverflowItems.forEach((item: ToolbarItemBase) => {\n\t\t\tthis.itemsToOverflow.push(item);\n\t\t});\n\t}\n\n\tsetSeperatorsVisibilityInOverflow() {\n\t\tthis.itemsToOverflow.forEach((item, idx, items) => {\n\t\t\tif (item.isSeparator) {\n\t\t\t\t(item as ToolbarSeparator).visible = this.shouldShowSeparatorInOverflow(idx, items);\n\t\t\t}\n\t\t});\n\t}\n\n\tshouldShowSeparatorInOverflow(separatorIdx: number, overflowItems: Array<ToolbarItemBase>) {\n\t\tlet foundPrevNonSeparatorItem = false;\n\t\tlet foundNextNonSeperatorItem = false;\n\n\t\t// search for non-separator item before and after the seperator\n\t\toverflowItems.forEach((item, idx) => {\n\t\t\tif (idx < separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundPrevNonSeparatorItem = true;\n\t\t\t}\n\t\t\tif (idx > separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundNextNonSeperatorItem = true;\n\t\t\t}\n\t\t});\n\n\t\treturn foundPrevNonSeparatorItem && foundNextNonSeperatorItem;\n\t}\n\n\t/**\n\t * Adds AlwaysOverflow items to overflow to ensure they are never rendered outside overflow (and visual flash is prevented)\n\t */\n\tprePopulateAlwaysOverflowItems() {\n\t\tthis.alwaysOverflowItems.forEach(item => {\n\t\t\tif (!this.itemsToOverflow.includes(item)) {\n\t\t\t\tthis.itemsToOverflow.push(item);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Event Handlers\n\t */\n\n\tonOverflowPopoverClosed() {\n\t\tthis.popoverOpen = false;\n\t}\n\n\tonOverflowPopoverOpened() {\n\t\tthis.popoverOpen = true;\n\t\tconst firstItem = this.overflowItems.find(item => item.isInteractive && !item.hidden);\n\t\tfirstItem?.focusForToolbarNavigation(true);\n\t}\n\n\tonResize() {\n\t\tthis.closeOverflow();\n\t\tthis.storeItemsWidth();\n\t\tthis.processOverflowLayout();\n\t}\n\n\t/**\n\t * Private members\n\t */\n\n\tattachListeners() {\n\t\tthis.addEventListener(\"ui5-close-overflow\", this._onCloseOverflow);\n\t\tthis.addEventListener(\"focusin\", this._onFocusIn);\n\t\tthis.addEventListener(\"keydown\", this._onKeyDown, true);\n\t}\n\n\tdetachListeners() {\n\t\tthis.removeEventListener(\"ui5-close-overflow\", this._onCloseOverflow);\n\t\tthis.removeEventListener(\"focusin\", this._onFocusIn);\n\t\tthis.removeEventListener(\"keydown\", this._onKeyDown, true);\n\t}\n\n\tonToolbarItemChange() {\n\t\t// some items were updated reset the cache and trigger a re-render\n\t\tthis.itemsToOverflow = [];\n\t\tthis.contentWidth = 0; // re-render\n\t}\n\n\tgetItemWidth(item: ToolbarItemBase): number {\n\t\t// Spacer width - always 0 for flexible spacers, so that they shrink, otherwise - measure the width normally\n\t\tif (item.ignoreSpace || item.isSeparator) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst id: string = item._id;\n\t\t// Measure rendered width for spacers with width, and for normal items\n\t\tconst renderedItem = this.shadowRoot!.querySelector<HTMLElement>(`#${item._individualSlot}`);\n\n\t\tlet itemWidth = 0;\n\n\t\tif (renderedItem && !renderedItem.classList.contains(\"ui5-tb-popover-item\") && renderedItem.offsetWidth && item._isRendering === false) {\n\t\t\tconst ItemCSSStyleSet = getComputedStyle(renderedItem);\n\t\t\titemWidth = renderedItem.offsetWidth + parsePxValue(ItemCSSStyleSet, \"margin-inline-end\")\n\t\t\t\t+ parsePxValue(ItemCSSStyleSet, \"margin-inline-start\");\n\t\t} else {\n\t\t\titemWidth = this.getCachedItemWidth(id) || 0;\n\t\t}\n\n\t\treturn Math.ceil(itemWidth);\n\t}\n\n\tgetCachedItemWidth(id: string) {\n\t\treturn this.ITEMS_WIDTH_MAP.get(id);\n\t}\n\n\t/**\n\t * Keyboard Navigation\n\t */\n\n\t_isFocusInsideOverflow(path: Array<EventTarget>): boolean {\n\t\tconst popover = this.getOverflowPopover();\n\t\tif (!popover) {\n\t\t\treturn false;\n\t\t}\n\t\t// Check popover shadow DOM (e.g. focus trap sentinels)\n\t\tif ((path as Node[]).some(node => popover === node || popover.shadowRoot === node)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Check if the event originates from a slotted overflow item (light DOM, not contained by popover)\n\t\tconst overflowItemSet = new Set<ToolbarItemBase>(this.overflowItems);\n\t\treturn (path as Node[]).some(node => overflowItemSet.has(node as ToolbarItemBase));\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst path = e.composedPath();\n\n\t\tif (this.popoverOpen && this._isFocusInsideOverflow(path)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentTarget = this._findItemByPath(path)\n\t\t\t|| this._findOverflowButtonByPath(path)\n\t\t\t|| this._findCurrentTargetByActiveElement();\n\n\t\tif (currentTarget) {\n\t\t\tthis._setCurrentItem(currentTarget);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst path = e.composedPath();\n\n\t\tif (this.popoverOpen && this._isFocusInsideOverflow(path)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tconst tabTarget = this._findItemByPath(path)\n\t\t\t\t|| this._findOverflowButtonByPath(path)\n\t\t\t\t|| this._findCurrentTargetByActiveElement()\n\t\t\t\t|| this._lastFocusedItem;\n\t\t\tif (tabTarget) {\n\t\t\t\tthis._setCurrentItem(tabTarget);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst isForward = this.effectiveDir === \"rtl\" ? isLeft(e) : isRight(e);\n\t\tconst isBackward = this.effectiveDir === \"rtl\" ? isRight(e) : isLeft(e);\n\t\tconst isHomeKey = isHome(e);\n\t\tconst isEndKey = isEnd(e);\n\n\t\tif (!isForward && !isBackward && !isHomeKey && !isEndKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentTarget = this._findItemByPath(path)\n\t\t\t|| this._findOverflowButtonByPath(path)\n\t\t\t|| this._findCurrentTargetByActiveElement()\n\t\t\t|| this._lastFocusedItem;\n\t\tif (!currentTarget) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Items that manage their own internal navigation (Input caret, Breadcrumbs,\n\t\t// checkbox groups) report a boundary state; the toolbar only takes over the\n\t\t// key once the item is at the relevant end.\n\t\tconst navState = currentTarget instanceof ToolbarItemBase ? currentTarget.getArrowNavState() : undefined;\n\n\t\tif (navState && (isForward || isBackward)) {\n\t\t\tconst atEnd = isForward ? navState.atRightEnd : navState.atLeftEnd;\n\t\t\tif (!atEnd) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (navState && (isHomeKey || isEndKey)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHomeKey) {\n\t\t\tthis._moveToFirst();\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEndKey) {\n\t\t\tthis._moveToLast();\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isForward || isBackward) {\n\t\t\tif (isForward) {\n\t\t\t\tthis._moveToNext();\n\t\t\t} else {\n\t\t\t\tthis._moveToPrev();\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_findItemByPath(path: Array<EventTarget>): ToolbarItemBase | undefined {\n\t\treturn (path as HTMLElement[]).find((el): el is ToolbarItemBase => el instanceof ToolbarItemBase);\n\t}\n\n\t_findOverflowButtonByPath(path: Array<EventTarget>): HTMLElement | undefined {\n\t\tconst overflowButton = this.overflowButtonDOM;\n\t\tif (!overflowButton) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst active = getActiveElement() as HTMLElement | null;\n\t\treturn path.includes(overflowButton)\n\t\t\t|| !!(active && this._isNodeInsideElement(active, overflowButton))\n\t\t\t? overflowButton\n\t\t\t: undefined;\n\t}\n\n\t_isNodeInsideElement(node: Node, element: HTMLElement) {\n\t\tlet current: Node | null = node;\n\n\t\twhile (current) {\n\t\t\tif (current === element) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst root = current.getRootNode?.();\n\t\t\tif (root instanceof ShadowRoot) {\n\t\t\t\tcurrent = root.host;\n\t\t\t} else {\n\t\t\t\tcurrent = current.parentNode;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t_findCurrentTargetByActiveElement(): ToolbarItemBase | HTMLElement | undefined {\n\t\tconst active = getActiveElement() as HTMLElement | null;\n\t\tif (!active) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst overflowButton = this.overflowButtonDOM;\n\t\tif (overflowButton && this._isNodeInsideElement(active, overflowButton)) {\n\t\t\treturn overflowButton;\n\t\t}\n\n\t\t// _getNavigationTargets() already includes the item's focus ref, so a single\n\t\t// membership check per item is enough - no need to test getFocusDomRef separately.\n\t\treturn this._getNavigableItems().find(item => item._getNavigationTargets().some(target => this._isNodeInsideElement(active, target)));\n\t}\n\n\t_getNavigationChain() {\n\t\tconst chain: Array<ToolbarItemBase | HTMLElement> = [...this._getNavigableItems()];\n\t\tconst overflowButton = this.overflowButtonDOM;\n\n\t\tif (!this.hideOverflowButton && overflowButton) {\n\t\t\tchain.push(overflowButton);\n\t\t}\n\n\t\treturn chain;\n\t}\n\n\t_getNavigableItems() {\n\t\treturn this.items.filter(item => item.isToolbarNavigatable && !item.isOverflowed);\n\t}\n\n\t_setCurrentItem(item: ToolbarItemBase | HTMLElement) {\n\t\tthis._lastFocusedItem = item;\n\t}\n\n\t_moveToNext() {\n\t\tthis._moveToItem((current, items) => Math.min(current + 1, items.length - 1), true);\n\t}\n\n\t_moveToPrev() {\n\t\tthis._moveToItem(current => Math.max(current - 1, 0), false);\n\t}\n\n\t_moveToFirst() {\n\t\tthis._moveToItem(() => 0, true);\n\t}\n\n\t_moveToLast() {\n\t\tthis._moveToItem((_, items) => items.length - 1, false);\n\t}\n\n\t_moveToItem(indexCalc: (currentIndex: number, items: Array<ToolbarItemBase | HTMLElement>) => number, isForward: boolean) {\n\t\tconst items = this._getNavigationChain();\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentIndex = this._lastFocusedItem ? items.indexOf(this._lastFocusedItem) : -1;\n\n\t\t// No tracked item in the current chain: enter at the near end for the\n\t\t// pressed direction (first item for forward, last for backward) instead\n\t\t// of coercing to 0 and then stepping past it.\n\t\tif (currentIndex === -1) {\n\t\t\tconst entryItem = items[isForward ? 0 : items.length - 1];\n\t\t\tthis._setCurrentItem(entryItem);\n\t\t\tthis._focusNavigationItem(entryItem, isForward);\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextIndex = indexCalc(currentIndex, items);\n\n\t\tif (nextIndex === currentIndex) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextItem = items[nextIndex];\n\t\tthis._setCurrentItem(nextItem);\n\t\tthis._focusNavigationItem(nextItem, isForward);\n\t}\n\n\t_focusNavigationItem(item: ToolbarItemBase | HTMLElement, isForward: boolean) {\n\t\tif (item instanceof ToolbarItemBase) {\n\t\t\titem.focusForToolbarNavigation(isForward);\n\t\t} else {\n\t\t\titem.focus();\n\t\t}\n\t}\n}\n\nToolbar.define();\n\nexport default Toolbar;\nexport type {\n\tToolbarMinWidthChangeEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../src/Toolbar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ChangeInfo, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n\tisTabNext,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getEffectiveAriaLabelText } from \"@ui5/webcomponents-base/dist/util/AccessibilityTextsHelper.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\n\nimport {\n\tTOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL,\n\tTOOLBAR_POPOVER_AVAILABLE_VALUES,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport ToolbarTemplate from \"./ToolbarTemplate.js\";\nimport ToolbarCss from \"./generated/themes/Toolbar.css.js\";\n\nimport ToolbarPopoverCss from \"./generated/themes/ToolbarPopover.css.js\";\n\nimport type ToolbarAlign from \"./types/ToolbarAlign.js\";\nimport type ToolbarDesign from \"./types/ToolbarDesign.js\";\nimport ToolbarItemOverflowBehavior from \"./types/ToolbarItemOverflowBehavior.js\";\n\nimport ToolbarItemBase from \"./ToolbarItemBase.js\";\nimport type ToolbarSeparator from \"./ToolbarSeparator.js\";\n\nimport type Button from \"./Button.js\";\nimport type Popover from \"./Popover.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\n\ntype ToolbarMinWidthChangeEventDetail = {\n\tminWidth: number,\n};\n\n/**\n * One step of the overflow distribution algorithm — either a single ungrouped item or\n * all members of one non-empty `overflowGroup`, treated atomically. A unit's order key\n * for the right-to-left distribution walk is the rightmost member's slot index; its\n * width is the sum of member widths.\n */\ntype DistributionUnit = {\n\tmembers: Array<ToolbarItemBase>,\n\twidth: number,\n\trightmostIndex: number,\n};\n\nfunction calculateCSSREMValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"rem\", \"\")) * parseInt(getComputedStyle(document.body).getPropertyValue(\"font-size\"));\n}\n\nfunction parsePxValue(styleSet: CSSStyleDeclaration, propertyName: string): number {\n\treturn Number(styleSet.getPropertyValue(propertyName).replace(\"px\", \"\"));\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-toolbar` component is used to create a horizontal layout with items.\n * The items can be overflowing in a popover, when the space is not enough to show all of them.\n *\n * ### Grouped Overflow\n *\n * Items that share the same non-empty `overflowGroup` string are treated as one atomic\n * unit during overflow distribution: when any member must move into the overflow\n * popover, all members move together. The visible bar always preserves slot order;\n * the group becomes adjacent only inside the popover. See the `overflowGroup` property\n * on `ToolbarItemBase` for the full contract.\n *\n * ### Keyboard Handling\n * The `ui5-toolbar` provides advanced keyboard handling.\n *\n * - [Left]/[Right] - navigate among toolbar items\n * - [Home]/[End] - move to first/last toolbar item\n * - [Tab] / [Shift]+[Tab] - exit the toolbar\n *\n * ### ES6 Module Import\n * `import \"@ui5/webcomponents/dist/Toolbar.js\";`\n * @constructor\n * @extends UI5Element\n * @public\n * @since 1.17.0\n */\n@customElement({\n\ttag: \"ui5-toolbar\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: ToolbarTemplate,\n})\n/**\n * @private\n*/\n@event(\"_min-content-width-change\", {\n\tbubbles: true,\n})\n\nclass Toolbar extends UI5Element {\n\teventDetails!: {\n\t\t\"_min-content-width-change\": ToolbarMinWidthChangeEventDetail\n\t}\n\t@i18n(\"@ui5/webcomponents\")\n\tstatic i18nBundle: I18nBundle;\n\n\t/**\n\t * Indicated the direction in which the Toolbar items will be aligned.\n\t * @public\n\t * @default \"End\"\n\t */\n\t@property()\n\talignContent: `${ToolbarAlign}` = \"End\";\n\n\t/**\n\t * Calculated width of the whole toolbar.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ type: Number })\n\twidth?: number;\n\n\t/**\n\t * Calculated width of the toolbar content.\n\t * @private\n\t * @default undefined\n\t */\n\t@property({ type: Number })\n\tcontentWidth?: number;\n\n\t/**\n\t * Notifies the toolbar if it should show the items in a reverse way if Toolbar Popover needs to be placed on \"Top\" position.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\treverseOverflow = false;\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t *\n\t * **Note:** It is strongly recommended to always set this property or `accessibleNameRef`\n\t * when the toolbar has `role=\"toolbar\"` (i.e. when it contains more than one interactive item).\n\t * Without an accessible name, screen readers will announce the toolbar without any context,\n\t * making it harder for keyboard-only and AT users to understand its purpose.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Receives id(or many ids) of the elements that label the input.\n\t *\n\t * **Note:** When the toolbar has `role=\"toolbar\"`, at least one of `accessibleName` or\n\t * `accessibleNameRef` should be provided to satisfy WCAG 2.1 success criterion 4.1.2.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\taccessibleNameRef?: string;\n\n\t/**\n\t * Defines the accessible ARIA name of the overflow button of the component.\n\t *\n\t * **Note:** When not set, the built-in translation for \"Additional Options\" is used.\n\t * @default undefined\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@property()\n\toverflowButtonAccessibleName?: string;\n\n\t/**\n\t * Defines the toolbar design.\n\t * @public\n\t * @default \"Solid\"\n\t * @since 2.0.0\n\t */\n\t@property()\n\tdesign: `${ToolbarDesign}` = \"Solid\"\n\n\t@property({ type: Boolean })\n\tpopoverOpen = false;\n\n\t/**\n\t * Defines the items of the component.\n\t *\n\t * **Note:** Use `ui5-toolbar-button`, `ui5-toolbar-select`, `ui5-toolbar-separator` and `ui5-toolbar-spacer` for the most common toolbar actions. To place any other UI5 Web Component into the toolbar and have it participate in overflow handling, wrap it in a `ui5-toolbar-item`.\n\t * @public\n\t */\n\t@slot({\n\t\t\"default\": true, type: HTMLElement, invalidateOnChildChange: true, individualSlots: true,\n\t})\n\titems!: DefaultSlot<ToolbarItemBase>\n\n\t_onResize!: ResizeObserverCallback;\n\t_onCloseOverflow!: EventListener;\n\t_onFocusIn!: (e: FocusEvent) => void;\n\t_onKeyDown!: (e: KeyboardEvent) => void;\n\titemsToOverflow: Array<ToolbarItemBase> = [];\n\titemsWidth = 0;\n\tminContentWidth = 0;\n\t// Snapshot of children's `overflowGroup` values, joined with \"|\". Tracks whether\n\t// the grouping decision has changed even when total content width has not.\n\t_groupingKey = \"\";\n\t_lastFocusedItem?: ToolbarItemBase | HTMLElement;\n\n\tITEMS_WIDTH_MAP: Map<string, number> = new Map();\n\n\tstatic get styles() {\n\t\treturn [\n\t\t\tToolbarCss,\n\t\t\tToolbarPopoverCss,\n\t\t];\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis._onResize = this.onResize.bind(this);\n\t\tthis._onCloseOverflow = this.closeOverflow.bind(this);\n\t\tthis._onFocusIn = this._onfocusin.bind(this);\n\t\tthis._onKeyDown = this._onkeydown.bind(this);\n\t}\n\t/**\n\t * Read-only members\n\t */\n\tget overflowButtonSize(): number {\n\t\treturn this.overflowButtonDOM?.getBoundingClientRect().width || 0;\n\t}\n\tget padding(): number {\n\t\tconst toolbarComputedStyle = getComputedStyle(this.getDomRef()!);\n\t\treturn calculateCSSREMValue(toolbarComputedStyle, \"--_ui5-toolbar-padding-left\")\n\t\t\t+ calculateCSSREMValue(toolbarComputedStyle, \"--_ui5-toolbar-padding-right\");\n\t}\n\n\tget alwaysOverflowItems() {\n\t\treturn this.items.filter(item => item.effectiveOverflowPriority === ToolbarItemOverflowBehavior.AlwaysOverflow);\n\t}\n\n\tget movableItems() {\n\t\treturn this.items.filter(item => item.effectiveOverflowPriority !== ToolbarItemOverflowBehavior.AlwaysOverflow && item.effectiveOverflowPriority !== ToolbarItemOverflowBehavior.NeverOverflow);\n\t}\n\n\tget overflowItems() {\n\t\t// spacers are ignored\n\t\tconst overflowItems = this.itemsToOverflow.filter(item => !item.ignoreSpace);\n\t\treturn this.reverseOverflow ? overflowItems.reverse() : overflowItems;\n\t}\n\n\tget standardItems() {\n\t\treturn this.items.filter(item => this.itemsToOverflow.indexOf(item) === -1);\n\t}\n\n\tget hideOverflowButton() {\n\t\treturn this.itemsToOverflow.filter(item => !(item.ignoreSpace || item.isSeparator)).length === 0;\n\t}\n\n\tget interactiveItems() {\n\t\treturn this.items.filter((item: ToolbarItemBase) => item.isInteractive);\n\t}\n\n\t/**\n\t * Accessibility\n\t */\n\n\tget hasAriaSemantics() {\n\t\treturn this.interactiveItems.length > 1;\n\t}\n\n\tget accessibleRole() {\n\t\treturn this.hasAriaSemantics ? \"toolbar\" as const : undefined;\n\t}\n\n\tget ariaLabelText() {\n\t\treturn this.hasAriaSemantics ? getEffectiveAriaLabelText(this) : undefined;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\trole: this.accessibleRole,\n\t\t\t\taccessibleName: this.ariaLabelText,\n\t\t\t},\n\t\t\toverflowButton: {\n\t\t\t\taccessibleName: this.overflowButtonAccessibleName || Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\ttooltip: Toolbar.i18nBundle.getText(TOOLBAR_OVERFLOW_BUTTON_ARIA_LABEL),\n\t\t\t\taccessibilityAttributes: {\n\t\t\t\t\texpanded: this.popoverOpen,\n\t\t\t\t\thasPopup: \"menu\" as const,\n\t\t\t\t},\n\t\t\t},\n\t\t\tpopover: {\n\t\t\t\taccessibleName: Toolbar.i18nBundle.getText(TOOLBAR_POPOVER_AVAILABLE_VALUES),\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Toolbar Overflow Popover\n\t */\n\n\tget overflowButtonDOM(): Button | null {\n\t\treturn this.shadowRoot!.querySelector(\".ui5-tb-overflow-btn\");\n\t}\n\n\tget hasFlexibleSpacers() {\n\t\treturn this.items.some((item: ToolbarItemBase) => item.hasFlexibleWidth);\n\t}\n\n\t/**\n\t * Lifecycle methods\n\t */\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._onResize);\n\t\tthis.attachListeners();\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResize);\n\t\tthis.detachListeners();\n\t}\n\n\tonInvalidation(changeInfo: ChangeInfo) {\n\t\tif (changeInfo.reason === \"childchange\") {\n\t\t\tconst currentItemsWidth = this.items.reduce((total, item) => total + this.getItemWidth(item), 0);\n\t\t\tconst currentGroupingKey = this.items.map(item => item.effectiveOverflowGroup).join(\"|\");\n\t\t\tif (currentItemsWidth !== this.itemsWidth || currentGroupingKey !== this._groupingKey) {\n\t\t\t\tthis.onToolbarItemChange();\n\t\t\t}\n\t\t}\n\t}\n\n\tonBeforeRendering() {\n\t\tif (getActiveElement() === this.overflowButtonDOM?.getFocusDomRef() && this.hideOverflowButton) {\n\t\t\tconst items = this.standardItems.filter(item => item.isToolbarNavigatable);\n\t\t\tconst lastItem = items.at(-1);\n\t\t\tif (lastItem) {\n\t\t\t\tthis._lastFocusedItem = lastItem;\n\t\t\t\tlastItem.focusForToolbarNavigation(false);\n\t\t\t}\n\t\t}\n\t\tthis.prePopulateAlwaysOverflowItems();\n\t}\n\n\tasync onAfterRendering() {\n\t\tawait renderFinished();\n\t\tthis.storeItemsWidth();\n\t\tthis.processOverflowLayout();\n\t\tthis.items.forEach(item => {\n\t\t\tthis.addItemsAdditionalProperties(item);\n\t\t});\n\t\tthis._reconcileLastFocusedItem();\n\t}\n\n\t/**\n\t * Drops the tracked re-entry item once it leaves the navigation chain\n\t * (moved to overflow or removed), so Tab re-entry and arrow/Home/End\n\t * navigation don't silently restart from the first item.\n\t */\n\t_reconcileLastFocusedItem() {\n\t\tif (this._lastFocusedItem instanceof ToolbarItemBase && !this._getNavigationChain().includes(this._lastFocusedItem)) {\n\t\t\tthis._lastFocusedItem = undefined;\n\t\t}\n\t}\n\n\taddItemsAdditionalProperties(item: ToolbarItemBase) {\n\t\titem.isOverflowed = this.overflowItems.indexOf(item) !== -1;\n\t\tconst itemWrapper = this.shadowRoot!.querySelector(`#${item._individualSlot}`) as HTMLElement;\n\t\tif (item.hasOverflow && !item.isOverflowed && itemWrapper) {\n\t\t\t// We need to set the max-width to the self-overflow element in order ot prevent it from taking all the available space,\n\t\t\t// since, unlike the other items, it is allowed to grow and shrink\n\t\t\t// We need to set the max-width to none and its position to absolute to allow the item to grow and measure its width,\n\t\t\t// then when set, the max-width will be cached and we will set its highest value to not cut it when the Toolbar shrinks it\n\t\t\t// on rendering and then we resize it manually.\n\t\t\titemWrapper.style.maxWidth = `none`;\n\t\t\titemWrapper?.classList.add(\"ui5-tb-self-overflow-grow\");\n\t\t\titem._maxWidth = Math.max(this.getItemWidth(item), item._maxWidth);\n\t\t\titemWrapper.style.maxWidth = `${item._maxWidth}px`;\n\t\t\titemWrapper?.classList.remove(\"ui5-tb-self-overflow-grow\");\n\t\t}\n\t}\n\n\t/**\n\t * Returns if the overflow popup is open.\n\t * @public\n\t */\n\tisOverflowOpen(): boolean {\n\t\tconst overflowPopover = this.getOverflowPopover();\n\t\treturn overflowPopover.open;\n\t}\n\n\topenOverflow(): void {\n\t\tconst overflowPopover = this.getOverflowPopover();\n\t\toverflowPopover.opener = this.overflowButtonDOM!;\n\t\toverflowPopover.open = true;\n\t\tthis.reverseOverflow = overflowPopover.actualPlacement === \"Top\";\n\t}\n\n\tcloseOverflow() {\n\t\tconst overflowPopover = this.getOverflowPopover();\n\t\toverflowPopover.open = false;\n\t}\n\n\ttoggleOverflow() {\n\t\tif (this.popoverOpen) {\n\t\t\tthis.closeOverflow();\n\t\t} else {\n\t\t\tthis.openOverflow();\n\t\t}\n\t}\n\n\tgetOverflowPopover(): Popover {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\".ui5-overflow-popover\")!;\n\t}\n\n\t/**\n\t * Layout management\n\t */\n\n\tprocessOverflowLayout() {\n\t\tif (this.offsetWidth === 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst containerWidth = this.offsetWidth - this.padding;\n\t\tconst contentWidth = this.itemsWidth;\n\t\tlet overflowSpace = contentWidth - containerWidth + this.overflowButtonSize;\n\n\t\tif (contentWidth <= containerWidth) {\n\t\t\toverflowSpace = 0;\n\t\t}\n\n\t\t// skip calculation if the width has not been changed or if the items width has not been changed\n\t\tif (this.width === containerWidth && this.contentWidth === contentWidth) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.distributeItems(overflowSpace);\n\t\tthis.width = containerWidth;\n\t\tthis.contentWidth = contentWidth;\n\t}\n\n\tstoreItemsWidth() {\n\t\tlet totalWidth = 0,\n\t\t\tminWidth = 0;\n\n\t\tthis.items.forEach(item => {\n\t\t\tconst itemWidth = this.getItemWidth(item);\n\t\t\ttotalWidth += itemWidth;\n\t\t\tif (item.effectiveOverflowPriority === ToolbarItemOverflowBehavior.NeverOverflow) {\n\t\t\t\tminWidth += itemWidth;\n\t\t\t}\n\t\t\tthis.ITEMS_WIDTH_MAP.set(item._id, itemWidth);\n\t\t});\n\n\t\tif (minWidth !== this.minContentWidth) {\n\t\t\tconst spaceAroundContent = this.offsetWidth - this.getDomRef()!.offsetWidth;\n\t\t\tthis.fireDecoratorEvent(\"_min-content-width-change\", {\n\t\t\t\tminWidth: minWidth + spaceAroundContent + this.overflowButtonSize,\n\t\t\t});\n\t\t}\n\n\t\tthis.itemsWidth = totalWidth;\n\t\tthis.minContentWidth = minWidth;\n\t\tthis._groupingKey = this.items.map(item => item.effectiveOverflowGroup).join(\"|\");\n\t}\n\n\tdistributeItems(overflowSpace = 0) {\n\t\tthis.itemsToOverflow = [];\n\n\t\t// distribute items that always overflow\n\t\tthis.distributeItemsThatAlwaysOverflow();\n\n\t\t// Bucket movable items (in slot order) into distribution units.\n\t\t// A unit is either a single ungrouped item, or a group of items\n\t\t// sharing the same non-empty `overflowGroup`. A unit is atomic:\n\t\t// when it is pushed into overflow, all its members move together.\n\t\t// The unit's representative slot position is its rightmost member's\n\t\t// index — that index is what orders the unit during distribution.\n\t\tconst slotIndex = new Map<ToolbarItemBase, number>();\n\t\tthis.items.forEach((item, idx) => slotIndex.set(item, idx));\n\t\tconst units = this.buildDistributionUnits(slotIndex);\n\n\t\t// Walk units from rightmost to leftmost, pushing each atomically.\n\t\t// A unit is pushed in full as soon as overflowSpace is still positive;\n\t\t// the post-push budget is allowed to go negative — over-shoot is accepted\n\t\t// by design because a group is indivisible.\n\t\tconst overflowedItems: Array<ToolbarItemBase> = [];\n\t\tlet nextNonOverflowedUnitIndex = units.length - 1;\n\t\tfor (let i = units.length - 1; i >= 0; i--) {\n\t\t\tif (overflowSpace <= 0) {\n\t\t\t\tnextNonOverflowedUnitIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst unit = units[i];\n\t\t\toverflowedItems.push(...unit.members);\n\t\t\toverflowSpace -= unit.width;\n\t\t\tnextNonOverflowedUnitIndex = i - 1;\n\t\t}\n\n\t\t// If the last bar item is a separator, force it (and any contiguous\n\t\t// trailing separators) into overflow even if there is enough space.\n\t\t// Only single-member separator units are considered — pushing a\n\t\t// group's entire content (non-separator content included) because its\n\t\t// rightmost member happens to be a separator would be wrong.\n\t\twhile (nextNonOverflowedUnitIndex >= 0) {\n\t\t\tconst unit = units[nextNonOverflowedUnitIndex];\n\t\t\tif (unit.members.length === 1 && unit.members[0].isSeparator) {\n\t\t\t\toverflowedItems.push(...unit.members);\n\t\t\t\tnextNonOverflowedUnitIndex--;\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// itemsToOverflow must be in slot order so popover rendering matches\n\t\t// the developer's source order (group members adjacent by construction).\n\t\toverflowedItems.sort((a, b) => (slotIndex.get(a)! - slotIndex.get(b)!));\n\t\tthis.itemsToOverflow.push(...overflowedItems);\n\n\t\tthis.setSeperatorsVisibilityInOverflow();\n\t}\n\n\t/**\n\t * Buckets `movableItems` (in slot order) into atomic distribution units.\n\t * Each unit either holds a single ungrouped item or all members of one\n\t * non-empty `overflowGroup`. A unit's order key is its rightmost member's\n\t * slot index. Returned units are sorted ascending by that key.\n\t */\n\tbuildDistributionUnits(slotIndex: Map<ToolbarItemBase, number>): Array<DistributionUnit> {\n\t\tconst movable = this.movableItems;\n\n\t\tconst groupUnits = new Map<string, DistributionUnit>();\n\t\tconst units: Array<DistributionUnit> = [];\n\n\t\tmovable.forEach(item => {\n\t\t\tconst itemWidth = this.getCachedItemWidth(item._id) || 0;\n\t\t\tconst slotIdx = slotIndex.get(item)!;\n\t\t\tconst groupKey = item.effectiveOverflowGroup;\n\t\t\tif (!groupKey) {\n\t\t\t\tunits.push({\n\t\t\t\t\tmembers: [item],\n\t\t\t\t\twidth: itemWidth,\n\t\t\t\t\trightmostIndex: slotIdx,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst existing = groupUnits.get(groupKey);\n\t\t\tif (existing) {\n\t\t\t\texisting.members.push(item);\n\t\t\t\texisting.width += itemWidth;\n\t\t\t\tif (slotIdx > existing.rightmostIndex) {\n\t\t\t\t\texisting.rightmostIndex = slotIdx;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst unit: DistributionUnit = {\n\t\t\t\t\tmembers: [item],\n\t\t\t\t\twidth: itemWidth,\n\t\t\t\t\trightmostIndex: slotIdx,\n\t\t\t\t};\n\t\t\t\tgroupUnits.set(groupKey, unit);\n\t\t\t\tunits.push(unit);\n\t\t\t}\n\t\t});\n\n\t\tunits.sort((a, b) => a.rightmostIndex - b.rightmostIndex);\n\t\treturn units;\n\t}\n\n\tdistributeItemsThatAlwaysOverflow() {\n\t\tthis.alwaysOverflowItems.forEach((item: ToolbarItemBase) => {\n\t\t\tthis.itemsToOverflow.push(item);\n\t\t});\n\t}\n\n\tsetSeperatorsVisibilityInOverflow() {\n\t\tthis.itemsToOverflow.forEach((item, idx, items) => {\n\t\t\tif (item.isSeparator) {\n\t\t\t\t(item as ToolbarSeparator).visible = this.shouldShowSeparatorInOverflow(idx, items);\n\t\t\t}\n\t\t});\n\t}\n\n\tshouldShowSeparatorInOverflow(separatorIdx: number, overflowItems: Array<ToolbarItemBase>) {\n\t\tlet foundPrevNonSeparatorItem = false;\n\t\tlet foundNextNonSeperatorItem = false;\n\n\t\t// search for non-separator item before and after the seperator\n\t\toverflowItems.forEach((item, idx) => {\n\t\t\tif (idx < separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundPrevNonSeparatorItem = true;\n\t\t\t}\n\t\t\tif (idx > separatorIdx && !item.isSeparator) {\n\t\t\t\tfoundNextNonSeperatorItem = true;\n\t\t\t}\n\t\t});\n\n\t\treturn foundPrevNonSeparatorItem && foundNextNonSeperatorItem;\n\t}\n\n\t/**\n\t * Adds AlwaysOverflow items to overflow to ensure they are never rendered outside overflow (and visual flash is prevented)\n\t */\n\tprePopulateAlwaysOverflowItems() {\n\t\tthis.alwaysOverflowItems.forEach(item => {\n\t\t\tif (!this.itemsToOverflow.includes(item)) {\n\t\t\t\tthis.itemsToOverflow.push(item);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Event Handlers\n\t */\n\n\tonOverflowPopoverClosed() {\n\t\tthis.popoverOpen = false;\n\t}\n\n\tonOverflowPopoverOpened() {\n\t\tthis.popoverOpen = true;\n\t\tconst firstItem = this.overflowItems.find(item => item.isInteractive && !item.hidden);\n\t\tfirstItem?.focusForToolbarNavigation(true);\n\t}\n\n\tonResize() {\n\t\tthis.closeOverflow();\n\t\tthis.storeItemsWidth();\n\t\tthis.processOverflowLayout();\n\t}\n\n\t/**\n\t * Private members\n\t */\n\n\tattachListeners() {\n\t\tthis.addEventListener(\"ui5-close-overflow\", this._onCloseOverflow);\n\t\tthis.addEventListener(\"focusin\", this._onFocusIn);\n\t\tthis.addEventListener(\"keydown\", this._onKeyDown, true);\n\t}\n\n\tdetachListeners() {\n\t\tthis.removeEventListener(\"ui5-close-overflow\", this._onCloseOverflow);\n\t\tthis.removeEventListener(\"focusin\", this._onFocusIn);\n\t\tthis.removeEventListener(\"keydown\", this._onKeyDown, true);\n\t}\n\n\tonToolbarItemChange() {\n\t\t// some items were updated reset the cache and trigger a re-render\n\t\tthis.itemsToOverflow = [];\n\t\tthis.contentWidth = 0; // re-render\n\t}\n\n\tgetItemWidth(item: ToolbarItemBase): number {\n\t\t// Spacer width - always 0 for flexible spacers, so that they shrink, otherwise - measure the width normally\n\t\tif (item.ignoreSpace || item.isSeparator) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst id: string = item._id;\n\t\t// Measure rendered width for spacers with width, and for normal items\n\t\tconst renderedItem = this.shadowRoot!.querySelector<HTMLElement>(`#${item._individualSlot}`);\n\n\t\tlet itemWidth = 0;\n\n\t\tif (renderedItem && !renderedItem.classList.contains(\"ui5-tb-popover-item\") && renderedItem.offsetWidth && item._isRendering === false) {\n\t\t\tconst ItemCSSStyleSet = getComputedStyle(renderedItem);\n\t\t\titemWidth = renderedItem.offsetWidth + parsePxValue(ItemCSSStyleSet, \"margin-inline-end\")\n\t\t\t\t+ parsePxValue(ItemCSSStyleSet, \"margin-inline-start\");\n\t\t} else {\n\t\t\titemWidth = this.getCachedItemWidth(id) || 0;\n\t\t}\n\n\t\treturn Math.ceil(itemWidth);\n\t}\n\n\tgetCachedItemWidth(id: string) {\n\t\treturn this.ITEMS_WIDTH_MAP.get(id);\n\t}\n\n\t/**\n\t * Keyboard Navigation\n\t */\n\n\t_isFocusInsideOverflow(path: Array<EventTarget>): boolean {\n\t\tconst popover = this.getOverflowPopover();\n\t\tif (!popover) {\n\t\t\treturn false;\n\t\t}\n\t\t// Check popover shadow DOM (e.g. focus trap sentinels)\n\t\tif ((path as Node[]).some(node => popover === node || popover.shadowRoot === node)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Check if the event originates from a slotted overflow item (light DOM, not contained by popover)\n\t\tconst overflowItemSet = new Set<ToolbarItemBase>(this.overflowItems);\n\t\treturn (path as Node[]).some(node => overflowItemSet.has(node as ToolbarItemBase));\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tconst path = e.composedPath();\n\n\t\tif (this.popoverOpen && this._isFocusInsideOverflow(path)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentTarget = this._findItemByPath(path)\n\t\t\t|| this._findOverflowButtonByPath(path)\n\t\t\t|| this._findCurrentTargetByActiveElement();\n\n\t\tif (currentTarget) {\n\t\t\tthis._setCurrentItem(currentTarget);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tconst path = e.composedPath();\n\n\t\tif (this.popoverOpen && this._isFocusInsideOverflow(path)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isTabNext(e) || isTabPrevious(e)) {\n\t\t\tconst tabTarget = this._findItemByPath(path)\n\t\t\t\t|| this._findOverflowButtonByPath(path)\n\t\t\t\t|| this._findCurrentTargetByActiveElement()\n\t\t\t\t|| this._lastFocusedItem;\n\t\t\tif (tabTarget) {\n\t\t\t\tthis._setCurrentItem(tabTarget);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tconst isForward = this.effectiveDir === \"rtl\" ? isLeft(e) : isRight(e);\n\t\tconst isBackward = this.effectiveDir === \"rtl\" ? isRight(e) : isLeft(e);\n\t\tconst isHomeKey = isHome(e);\n\t\tconst isEndKey = isEnd(e);\n\n\t\tif (!isForward && !isBackward && !isHomeKey && !isEndKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentTarget = this._findItemByPath(path)\n\t\t\t|| this._findOverflowButtonByPath(path)\n\t\t\t|| this._findCurrentTargetByActiveElement()\n\t\t\t|| this._lastFocusedItem;\n\t\tif (!currentTarget) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Items that manage their own internal navigation (Input caret, Breadcrumbs,\n\t\t// checkbox groups) report a boundary state; the toolbar only takes over the\n\t\t// key once the item is at the relevant end.\n\t\tconst navState = currentTarget instanceof ToolbarItemBase ? currentTarget.getArrowNavState() : undefined;\n\n\t\tif (navState && (isForward || isBackward)) {\n\t\t\tconst atEnd = isForward ? navState.atRightEnd : navState.atLeftEnd;\n\t\t\tif (!atEnd) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (navState && (isHomeKey || isEndKey)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isHomeKey) {\n\t\t\tthis._moveToFirst();\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEndKey) {\n\t\t\tthis._moveToLast();\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isForward || isBackward) {\n\t\t\tif (isForward) {\n\t\t\t\tthis._moveToNext();\n\t\t\t} else {\n\t\t\t\tthis._moveToPrev();\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\t}\n\n\t_findItemByPath(path: Array<EventTarget>): ToolbarItemBase | undefined {\n\t\treturn (path as HTMLElement[]).find((el): el is ToolbarItemBase => el instanceof ToolbarItemBase);\n\t}\n\n\t_findOverflowButtonByPath(path: Array<EventTarget>): HTMLElement | undefined {\n\t\tconst overflowButton = this.overflowButtonDOM;\n\t\tif (!overflowButton) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst active = getActiveElement() as HTMLElement | null;\n\t\treturn path.includes(overflowButton)\n\t\t\t|| !!(active && this._isNodeInsideElement(active, overflowButton))\n\t\t\t? overflowButton\n\t\t\t: undefined;\n\t}\n\n\t_isNodeInsideElement(node: Node, element: HTMLElement) {\n\t\tlet current: Node | null = node;\n\n\t\twhile (current) {\n\t\t\tif (current === element) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst root = current.getRootNode?.();\n\t\t\tif (root instanceof ShadowRoot) {\n\t\t\t\tcurrent = root.host;\n\t\t\t} else {\n\t\t\t\tcurrent = current.parentNode;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t_findCurrentTargetByActiveElement(): ToolbarItemBase | HTMLElement | undefined {\n\t\tconst active = getActiveElement() as HTMLElement | null;\n\t\tif (!active) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst overflowButton = this.overflowButtonDOM;\n\t\tif (overflowButton && this._isNodeInsideElement(active, overflowButton)) {\n\t\t\treturn overflowButton;\n\t\t}\n\n\t\t// _getNavigationTargets() already includes the item's focus ref, so a single\n\t\t// membership check per item is enough - no need to test getFocusDomRef separately.\n\t\treturn this._getNavigableItems().find(item => item._getNavigationTargets().some(target => this._isNodeInsideElement(active, target)));\n\t}\n\n\t_getNavigationChain() {\n\t\tconst chain: Array<ToolbarItemBase | HTMLElement> = [...this._getNavigableItems()];\n\t\tconst overflowButton = this.overflowButtonDOM;\n\n\t\tif (!this.hideOverflowButton && overflowButton) {\n\t\t\tchain.push(overflowButton);\n\t\t}\n\n\t\treturn chain;\n\t}\n\n\t_getNavigableItems() {\n\t\treturn this.items.filter(item => item.isToolbarNavigatable && !item.isOverflowed);\n\t}\n\n\t_setCurrentItem(item: ToolbarItemBase | HTMLElement) {\n\t\tthis._lastFocusedItem = item;\n\t}\n\n\t_moveToNext() {\n\t\tthis._moveToItem((current, items) => Math.min(current + 1, items.length - 1), true);\n\t}\n\n\t_moveToPrev() {\n\t\tthis._moveToItem(current => Math.max(current - 1, 0), false);\n\t}\n\n\t_moveToFirst() {\n\t\tthis._moveToItem(() => 0, true);\n\t}\n\n\t_moveToLast() {\n\t\tthis._moveToItem((_, items) => items.length - 1, false);\n\t}\n\n\t_moveToItem(indexCalc: (currentIndex: number, items: Array<ToolbarItemBase | HTMLElement>) => number, isForward: boolean) {\n\t\tconst items = this._getNavigationChain();\n\t\tif (!items.length) {\n\t\t\treturn;\n\t\t}\n\t\tconst currentIndex = this._lastFocusedItem ? items.indexOf(this._lastFocusedItem) : -1;\n\n\t\t// No tracked item in the current chain: enter at the near end for the\n\t\t// pressed direction (first item for forward, last for backward) instead\n\t\t// of coercing to 0 and then stepping past it.\n\t\tif (currentIndex === -1) {\n\t\t\tconst entryItem = items[isForward ? 0 : items.length - 1];\n\t\t\tthis._setCurrentItem(entryItem);\n\t\t\tthis._focusNavigationItem(entryItem, isForward);\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextIndex = indexCalc(currentIndex, items);\n\n\t\tif (nextIndex === currentIndex) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextItem = items[nextIndex];\n\t\tthis._setCurrentItem(nextItem);\n\t\tthis._focusNavigationItem(nextItem, isForward);\n\t}\n\n\t_focusNavigationItem(item: ToolbarItemBase | HTMLElement, isForward: boolean) {\n\t\tif (item instanceof ToolbarItemBase) {\n\t\t\titem.focusForToolbarNavigation(isForward);\n\t\t} else {\n\t\t\titem.focus();\n\t\t}\n\t}\n}\n\nToolbar.define();\n\nexport default Toolbar;\nexport type {\n\tToolbarMinWidthChangeEventDetail,\n};\n"]}
@@ -35,10 +35,10 @@ declare class ToolbarItemBase extends UI5Element {
35
35
  * group members appear adjacent in slot order.
36
36
  *
37
37
  * @public
38
- * @default ""
38
+ * @default undefined
39
39
  * @since 2.27.0
40
40
  */
41
- overflowGroup: string;
41
+ overflowGroup?: string;
42
42
  /**
43
43
  * Defines if the toolbar overflow popup should close upon interaction with the item.
44
44
  * It will close by default.
@@ -124,7 +124,7 @@ declare class ToolbarItemBase extends UI5Element {
124
124
  *
125
125
  * @protected
126
126
  */
127
- get effectiveOverflowGroup(): string;
127
+ get effectiveOverflowGroup(): string | undefined;
128
128
  get stableDomRef(): string;
129
129
  get classes(): {
130
130
  root: {
@@ -32,30 +32,6 @@ class ToolbarItemBase extends UI5Element {
32
32
  * @default "Default"
33
33
  */
34
34
  this.overflowPriority = "Default";
35
- /**
36
- * Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same
37
- * non-empty string overflow as one atomic unit: either all visible in the bar, or all
38
- * in the overflow popover, never split. The empty string (the default) means "no group" —
39
- * the item participates in overflow independently.
40
- *
41
- * The tag is a free-form, case-sensitive string label (e.g. `"filters"`, `"search"`). It is
42
- * layout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a
43
- * non-empty group must have `overflowPriority = "Default"`; `AlwaysOverflow` and
44
- * `NeverOverflow` are forbidden inside a group — setting one of those on a grouped item
45
- * emits a one-shot `console.warn` and the item's priority is treated as `Default` for
46
- * the layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting
47
- * a non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's
48
- * existing overflow behavior is unchanged.
49
- *
50
- * The visible bar always preserves slot order — ungrouped items between group members
51
- * keep their slot positions and the toolbar never reorders DOM children. In the popover
52
- * group members appear adjacent in slot order.
53
- *
54
- * @public
55
- * @default ""
56
- * @since 2.27.0
57
- */
58
- this.overflowGroup = "";
59
35
  /**
60
36
  * Defines if the toolbar overflow popup should close upon interaction with the item.
61
37
  * It will close by default.
@@ -116,7 +92,7 @@ class ToolbarItemBase extends UI5Element {
116
92
  */
117
93
  validateOverflowGroupConstraints() {
118
94
  if (!this.isSpacer
119
- && this.overflowGroup !== ""
95
+ && this.overflowGroup
120
96
  && (this.overflowPriority === "AlwaysOverflow" || this.overflowPriority === "NeverOverflow")) {
121
97
  if (!this._overflowGroupPriorityWarned) {
122
98
  this._overflowGroupPriorityWarned = true;
@@ -125,7 +101,7 @@ class ToolbarItemBase extends UI5Element {
125
101
  + `Items in a non-empty overflow-group must use overflow-priority="Default"; priority dropped to Default for layout.`, this);
126
102
  }
127
103
  }
128
- if (this.isSpacer && this.overflowGroup !== "") {
104
+ if (this.isSpacer && this.overflowGroup) {
129
105
  if (!this._overflowGroupSpacerWarned) {
130
106
  this._overflowGroupSpacerWarned = true;
131
107
  // eslint-disable-next-line no-console
@@ -192,7 +168,7 @@ class ToolbarItemBase extends UI5Element {
192
168
  get effectiveOverflowPriority() {
193
169
  const declared = this.overflowPriority;
194
170
  if (!this.isSpacer
195
- && this.overflowGroup !== ""
171
+ && this.overflowGroup
196
172
  && (declared === "AlwaysOverflow" || declared === "NeverOverflow")) {
197
173
  return "Default";
198
174
  }
@@ -207,8 +183,8 @@ class ToolbarItemBase extends UI5Element {
207
183
  * @protected
208
184
  */
209
185
  get effectiveOverflowGroup() {
210
- if (this.isSpacer && this.overflowGroup !== "") {
211
- return "";
186
+ if (this.isSpacer && this.overflowGroup) {
187
+ return undefined;
212
188
  }
213
189
  return this.overflowGroup;
214
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarItemBase.js","sourceRoot":"","sources":["../src/ToolbarItemBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AA0B5E,IAAM,eAAe;AAdrB;;;;;;;;;;;;;GAaG;AACH,MAAM,eAAgB,SAAQ,UAAU;IAAxC;;QAKC;;;;;UAKE;QAEF,qBAAgB,GAAqC,SAAS,CAAC;QAE/D;;;;;;;;;;;;;;;;;;;;;;WAsBG;QAEH,kBAAa,GAAG,EAAE,CAAC;QAEnB;;;;;WAKG;QAEH,2BAAsB,GAAG,KAAK,CAAC;QAqB/B,kBAAa,GAAY,KAAK,CAAC;QAE/B,4EAA4E;QAC5E,6EAA6E;QAC7E,iCAA4B,GAAG,KAAK,CAAC;QACrC,+BAA0B,GAAG,KAAK,CAAC;QAuBnC,cAAS,GAAG,CAAC,CAAC;QACd,iBAAY,GAAG,IAAI,CAAC;IAmJrB,CAAC;IAnMA,qBAAqB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,6DAA6D;IAC7D,yBAAyB,CAAC,SAAkB;QAC3C,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IASD,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IAEH,IAAI,YAAY,CAAC,KAAc;QAC9B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAE3B,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IAKD,gBAAgB;QACf,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,gCAAgC,EAAE,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,gCAAgC;QAC/B,IACC,CAAC,IAAI,CAAC,QAAQ;eACX,IAAI,CAAC,aAAa,KAAK,EAAE;eACzB,CAAC,IAAI,CAAC,gBAAgB,KAAK,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,KAAK,eAAe,CAAC,EAC3F,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC;gBACxC,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;gBACzC,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CACX,iBAAiB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,6BAA6B,IAAI,CAAC,aAAa,4BAA4B,IAAI,CAAC,gBAAgB,KAAK;sBAC9I,mHAAmH,EACrH,IAAI,CACJ,CAAC;YACH,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACtC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;gBACvC,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CACX,iBAAiB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,wBAAwB,IAAI,CAAC,aAAa,KAAK;sBACxF,4EAA4E,EAC9E,IAAI,CACJ,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED;;;MAGE;IACF,IAAI,WAAW;QACd,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,IAAI,gBAAgB;QACnB,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,CAAE,IAA+B,CAAC,QAAQ,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,WAAW;QACd,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACd,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IAEH,IAAI,QAAQ;QACX,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,yBAAyB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACvC,IACC,CAAC,IAAI,CAAC,QAAQ;eACX,IAAI,CAAC,aAAa,KAAK,EAAE;eACzB,CAAC,QAAQ,KAAK,gBAAgB,IAAI,QAAQ,KAAK,eAAe,CAAC,EACjE,CAAC;YACF,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,sBAAsB;QACzB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa,KAAK,EAAE,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACX,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,iBAAiB,CAAC;IAC5E,CAAC;IAED,IAAI,OAAO;QACV,OAAO;YACN,IAAI,EAAE;gBACL,qBAAqB,EAAE,IAAI,CAAC,YAAY;gBACxC,aAAa,EAAE,IAAI;aACnB;SACD,CAAC;IACH,CAAC;IAED,IAAI,MAAM;QACT,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAA;AAxOA;IADC,QAAQ,EAAE;yDACoD;AA0B/D;IADC,QAAQ,EAAE;sDACQ;AASnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+DACG;AAuC/B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;mDAS3B;AA9FI,eAAe;IAjBpB,KAAK,CAAC,gBAAgB,EAAE;QACxB,OAAO,EAAE,IAAI;KACb,CAAC;IACF;;;;;;;;;;;;;OAaG;GACG,eAAe,CAoPpB;AAKD,eAAe,eAAe,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\n\nimport type ToolbarItemOverflowBehavior from \"./types/ToolbarItemOverflowBehavior.js\";\nimport type { ToolbarArrowNavState } from \"./IToolbarArrowNavProvider.js\";\n\ntype ToolbarItemEventDetail = {\n\ttargetRef: HTMLElement;\n}\n\n@event(\"close-overflow\", {\n\tbubbles: true,\n})\n/**\n * @class\n * Represents an abstract base class for items used in the `ui5-toolbar`.\n *\n *\n * @cssState overflowed - When the item is displayed in the overflow popover.\n * Use this state to apply different styles when the item is overflowed.\n * Available since 2.20.0.\n * @constructor\n * @extends UI5Element\n * @abstract\n * @public\n * @since 1.17.0\n */\nclass ToolbarItemBase extends UI5Element {\n\teventDetails!: {\n\t\t\"close-overflow\": void;\n\t}\n\n\t/**\n\t* Property used to define the access of the item to the overflow Popover. If \"NeverOverflow\" option is set,\n\t* the item never goes in the Popover, if \"AlwaysOverflow\" - it never comes out of it.\n\t* @public\n\t* @default \"Default\"\n\t*/\n\t@property()\n\toverflowPriority: `${ToolbarItemOverflowBehavior}` = \"Default\";\n\n\t/**\n\t * Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same\n\t * non-empty string overflow as one atomic unit: either all visible in the bar, or all\n\t * in the overflow popover, never split. The empty string (the default) means \"no group\" —\n\t * the item participates in overflow independently.\n\t *\n\t * The tag is a free-form, case-sensitive string label (e.g. `\"filters\"`, `\"search\"`). It is\n\t * layout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a\n\t * non-empty group must have `overflowPriority = \"Default\"`; `AlwaysOverflow` and\n\t * `NeverOverflow` are forbidden inside a group — setting one of those on a grouped item\n\t * emits a one-shot `console.warn` and the item's priority is treated as `Default` for\n\t * the layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting\n\t * a non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's\n\t * existing overflow behavior is unchanged.\n\t *\n\t * The visible bar always preserves slot order — ungrouped items between group members\n\t * keep their slot positions and the toolbar never reorders DOM children. In the popover\n\t * group members appear adjacent in slot order.\n\t *\n\t * @public\n\t * @default \"\"\n\t * @since 2.27.0\n\t */\n\t@property()\n\toverflowGroup = \"\";\n\n\t/**\n\t * Defines if the toolbar overflow popup should close upon interaction with the item.\n\t * It will close by default.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tpreventOverflowClosing = false;\n\n\t_getNavigationTargets(): HTMLElement[] {\n\t\tconst ref = this.getFocusDomRef();\n\t\treturn ref ? [ref] : [];\n\t}\n\n\t/**\n\t * Focus entry point when toolbar navigates into this item.\n\t * Override in complex items (e.g., Breadcrumbs) to handle direction-aware entry.\n\t * @private\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tfocusForToolbarNavigation(isForward: boolean) {\n\t\tthis.getFocusDomRef()?.focus();\n\t}\n\n\tgetArrowNavState(): ToolbarArrowNavState | undefined {\n\t\treturn undefined;\n\t}\n\n\t_isOverflowed: boolean = false;\n\n\t// One-shot guards for `overflowGroup` validation warnings — suppress repeat\n\t// warnings across re-renders, consistent with `ToolbarItem.checkForWrapper`.\n\t_overflowGroupPriorityWarned = false;\n\t_overflowGroupSpacerWarned = false;\n\n\tget isOverflowed(): boolean {\n\t\treturn this._isOverflowed;\n\t}\n\n\t/**\n\t * Defines if the toolbar item is overflowed.\n\t * @default false\n\t * @protected\n\t * @since 2.11.0\n\t */\n\t@property({ type: Boolean })\n\tset isOverflowed(value: boolean) {\n\t\tthis._isOverflowed = value;\n\n\t\tif (value) {\n\t\t\tthis._internals.states.add(\"overflowed\");\n\t\t} else {\n\t\t\tthis._internals.states.delete(\"overflowed\");\n\t\t}\n\t}\n\n\t_maxWidth = 0;\n\t_isRendering = true;\n\n\tonAfterRendering(): void {\n\t\tthis._isRendering = false;\n\t\tthis.validateOverflowGroupConstraints();\n\t}\n\n\t/**\n\t * Emits one-time developer warnings for invalid `overflowGroup` configurations.\n\t * Called once per render from `onAfterRendering` so getters stay pure.\n\t * Each warning fires at most once per element lifetime via one-shot guards.\n\t */\n\tvalidateOverflowGroupConstraints(): void {\n\t\tif (\n\t\t\t!this.isSpacer\n\t\t\t&& this.overflowGroup !== \"\"\n\t\t\t&& (this.overflowPriority === \"AlwaysOverflow\" || this.overflowPriority === \"NeverOverflow\")\n\t\t) {\n\t\t\tif (!this._overflowGroupPriorityWarned) {\n\t\t\t\tthis._overflowGroupPriorityWarned = true;\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`[ui5-toolbar] ${this.tagName.toLowerCase()} has both overflow-group=\"${this.overflowGroup}\" and overflow-priority=\"${this.overflowPriority}\". `\n\t\t\t\t\t+ `Items in a non-empty overflow-group must use overflow-priority=\"Default\"; priority dropped to Default for layout.`,\n\t\t\t\t\tthis,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (this.isSpacer && this.overflowGroup !== \"\") {\n\t\t\tif (!this._overflowGroupSpacerWarned) {\n\t\t\t\tthis._overflowGroupSpacerWarned = true;\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`[ui5-toolbar] ${this.tagName.toLowerCase()} has overflow-group=\"${this.overflowGroup}\". `\n\t\t\t\t\t+ `Spacers cannot participate in an overflow-group; the group tag is ignored.`,\n\t\t\t\t\tthis,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Defines if the width of the item should be ignored in calculating the whole width of the toolbar\n\t* @protected\n\t*/\n\tget ignoreSpace(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns if the item is flexible. An item that is returning true for this property will make\n\t * the toolbar expand to fill the 100% width of its container.\n\t * @protected\n\t */\n\tget hasFlexibleWidth(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns if the item is interactive.\n\t * This value is used to determinate if the toolbar should have its accessibility role and attributes set.\n\t * At least two interactive items are needed for the toolbar to have the role=\"toolbar\" attribute set.\n\t * @protected\n\t */\n\tget isInteractive(): boolean {\n\t\treturn true;\n\t}\n\n\tget isToolbarNavigatable(): boolean {\n\t\treturn this.isInteractive && !this.hidden && !(\"disabled\" in this && !!(this as { disabled?: boolean }).disabled);\n\t}\n\n\tget hasOverflow(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns if the item is separator.\n\t * @protected\n\t */\n\tget isSeparator() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns if the item is a spacer.\n\t * A spacer item is an item that takes space in the toolbar, but does not render any content.\n\t * @protected\n\t * @since 2.21.0\n\t */\n\n\tget isSpacer() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns the `overflowPriority` actually used by the toolbar's distribution\n\t * algorithm. Items in a non-empty `overflowGroup` must have `Default` priority;\n\t * when a developer puts `AlwaysOverflow` or `NeverOverflow` on a\n\t * grouped non-spacer item, the priority is treated as `\"Default\"` for layout.\n\t * Spacers are exempt from this rule and keep their declared priority.\n\t *\n\t * @protected\n\t */\n\tget effectiveOverflowPriority(): `${ToolbarItemOverflowBehavior}` {\n\t\tconst declared = this.overflowPriority;\n\t\tif (\n\t\t\t!this.isSpacer\n\t\t\t&& this.overflowGroup !== \"\"\n\t\t\t&& (declared === \"AlwaysOverflow\" || declared === \"NeverOverflow\")\n\t\t) {\n\t\t\treturn \"Default\";\n\t\t}\n\t\treturn declared;\n\t}\n\n\t/**\n\t * Returns the `overflowGroup` actually used by the toolbar's distribution\n\t * algorithm. Spacers cannot participate in grouping; a spacer\n\t * with a non-empty `overflowGroup` returns `\"\"` so the spacer is treated\n\t * as ungrouped by the algorithm.\n\t *\n\t * @protected\n\t */\n\tget effectiveOverflowGroup(): string {\n\t\tif (this.isSpacer && this.overflowGroup !== \"\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn this.overflowGroup;\n\t}\n\n\tget stableDomRef() {\n\t\treturn this.getAttribute(\"stable-dom-ref\") || `${this._id}-stable-dom-ref`;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-tb-popover-item\": this.isOverflowed,\n\t\t\t\t\"ui5-tb-item\": true,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {};\n\t}\n}\n\nexport type {\n\tToolbarItemEventDetail,\n};\nexport default ToolbarItemBase;\n"]}
1
+ {"version":3,"file":"ToolbarItemBase.js","sourceRoot":"","sources":["../src/ToolbarItemBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\n\nimport type ToolbarItemOverflowBehavior from \"./types/ToolbarItemOverflowBehavior.js\";\nimport type { ToolbarArrowNavState } from \"./IToolbarArrowNavProvider.js\";\n\ntype ToolbarItemEventDetail = {\n\ttargetRef: HTMLElement;\n}\n\n@event(\"close-overflow\", {\n\tbubbles: true,\n})\n/**\n * @class\n * Represents an abstract base class for items used in the `ui5-toolbar`.\n *\n *\n * @cssState overflowed - When the item is displayed in the overflow popover.\n * Use this state to apply different styles when the item is overflowed.\n * Available since 2.20.0.\n * @constructor\n * @extends UI5Element\n * @abstract\n * @public\n * @since 1.17.0\n */\nclass ToolbarItemBase extends UI5Element {\n\teventDetails!: {\n\t\t\"close-overflow\": void;\n\t}\n\n\t/**\n\t* Property used to define the access of the item to the overflow Popover. If \"NeverOverflow\" option is set,\n\t* the item never goes in the Popover, if \"AlwaysOverflow\" - it never comes out of it.\n\t* @public\n\t* @default \"Default\"\n\t*/\n\t@property()\n\toverflowPriority: `${ToolbarItemOverflowBehavior}` = \"Default\";\n\n\t/**\n\t * Co-overflow tag. Items in the same `ui5-toolbar` whose `overflowGroup` is the same\n\t * non-empty string overflow as one atomic unit: either all visible in the bar, or all\n\t * in the overflow popover, never split. The empty string (the default) means \"no group\" —\n\t * the item participates in overflow independently.\n\t *\n\t * The tag is a free-form, case-sensitive string label (e.g. `\"filters\"`, `\"search\"`). It is\n\t * layout-only and carries no ARIA, keyboard, or visual-cluster semantics. Items in a\n\t * non-empty group must have `overflowPriority = \"Default\"`; `AlwaysOverflow` and\n\t * `NeverOverflow` are forbidden inside a group — setting one of those on a grouped item\n\t * emits a one-shot `console.warn` and the item's priority is treated as `Default` for\n\t * the layout pass. Spacers (`ui5-toolbar-spacer`) do not participate in grouping; setting\n\t * a non-empty `overflowGroup` on a spacer emits a one-shot `console.warn` and the spacer's\n\t * existing overflow behavior is unchanged.\n\t *\n\t * The visible bar always preserves slot order — ungrouped items between group members\n\t * keep their slot positions and the toolbar never reorders DOM children. In the popover\n\t * group members appear adjacent in slot order.\n\t *\n\t * @public\n\t * @default undefined\n\t * @since 2.27.0\n\t */\n\t@property()\n\toverflowGroup?: string;\n\n\t/**\n\t * Defines if the toolbar overflow popup should close upon interaction with the item.\n\t * It will close by default.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tpreventOverflowClosing = false;\n\n\t_getNavigationTargets(): HTMLElement[] {\n\t\tconst ref = this.getFocusDomRef();\n\t\treturn ref ? [ref] : [];\n\t}\n\n\t/**\n\t * Focus entry point when toolbar navigates into this item.\n\t * Override in complex items (e.g., Breadcrumbs) to handle direction-aware entry.\n\t * @private\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tfocusForToolbarNavigation(isForward: boolean) {\n\t\tthis.getFocusDomRef()?.focus();\n\t}\n\n\tgetArrowNavState(): ToolbarArrowNavState | undefined {\n\t\treturn undefined;\n\t}\n\n\t_isOverflowed: boolean = false;\n\n\t// One-shot guards for `overflowGroup` validation warnings — suppress repeat\n\t// warnings across re-renders, consistent with `ToolbarItem.checkForWrapper`.\n\t_overflowGroupPriorityWarned = false;\n\t_overflowGroupSpacerWarned = false;\n\n\tget isOverflowed(): boolean {\n\t\treturn this._isOverflowed;\n\t}\n\n\t/**\n\t * Defines if the toolbar item is overflowed.\n\t * @default false\n\t * @protected\n\t * @since 2.11.0\n\t */\n\t@property({ type: Boolean })\n\tset isOverflowed(value: boolean) {\n\t\tthis._isOverflowed = value;\n\n\t\tif (value) {\n\t\t\tthis._internals.states.add(\"overflowed\");\n\t\t} else {\n\t\t\tthis._internals.states.delete(\"overflowed\");\n\t\t}\n\t}\n\n\t_maxWidth = 0;\n\t_isRendering = true;\n\n\tonAfterRendering(): void {\n\t\tthis._isRendering = false;\n\t\tthis.validateOverflowGroupConstraints();\n\t}\n\n\t/**\n\t * Emits one-time developer warnings for invalid `overflowGroup` configurations.\n\t * Called once per render from `onAfterRendering` so getters stay pure.\n\t * Each warning fires at most once per element lifetime via one-shot guards.\n\t */\n\tvalidateOverflowGroupConstraints(): void {\n\t\tif (\n\t\t\t!this.isSpacer\n\t\t\t&& this.overflowGroup\n\t\t\t&& (this.overflowPriority === \"AlwaysOverflow\" || this.overflowPriority === \"NeverOverflow\")\n\t\t) {\n\t\t\tif (!this._overflowGroupPriorityWarned) {\n\t\t\t\tthis._overflowGroupPriorityWarned = true;\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`[ui5-toolbar] ${this.tagName.toLowerCase()} has both overflow-group=\"${this.overflowGroup}\" and overflow-priority=\"${this.overflowPriority}\". `\n\t\t\t\t\t+ `Items in a non-empty overflow-group must use overflow-priority=\"Default\"; priority dropped to Default for layout.`,\n\t\t\t\t\tthis,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (this.isSpacer && this.overflowGroup) {\n\t\t\tif (!this._overflowGroupSpacerWarned) {\n\t\t\t\tthis._overflowGroupSpacerWarned = true;\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`[ui5-toolbar] ${this.tagName.toLowerCase()} has overflow-group=\"${this.overflowGroup}\". `\n\t\t\t\t\t+ `Spacers cannot participate in an overflow-group; the group tag is ignored.`,\n\t\t\t\t\tthis,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Defines if the width of the item should be ignored in calculating the whole width of the toolbar\n\t* @protected\n\t*/\n\tget ignoreSpace(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns if the item is flexible. An item that is returning true for this property will make\n\t * the toolbar expand to fill the 100% width of its container.\n\t * @protected\n\t */\n\tget hasFlexibleWidth(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns if the item is interactive.\n\t * This value is used to determinate if the toolbar should have its accessibility role and attributes set.\n\t * At least two interactive items are needed for the toolbar to have the role=\"toolbar\" attribute set.\n\t * @protected\n\t */\n\tget isInteractive(): boolean {\n\t\treturn true;\n\t}\n\n\tget isToolbarNavigatable(): boolean {\n\t\treturn this.isInteractive && !this.hidden && !(\"disabled\" in this && !!(this as { disabled?: boolean }).disabled);\n\t}\n\n\tget hasOverflow(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns if the item is separator.\n\t * @protected\n\t */\n\tget isSeparator() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns if the item is a spacer.\n\t * A spacer item is an item that takes space in the toolbar, but does not render any content.\n\t * @protected\n\t * @since 2.21.0\n\t */\n\n\tget isSpacer() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns the `overflowPriority` actually used by the toolbar's distribution\n\t * algorithm. Items in a non-empty `overflowGroup` must have `Default` priority;\n\t * when a developer puts `AlwaysOverflow` or `NeverOverflow` on a\n\t * grouped non-spacer item, the priority is treated as `\"Default\"` for layout.\n\t * Spacers are exempt from this rule and keep their declared priority.\n\t *\n\t * @protected\n\t */\n\tget effectiveOverflowPriority(): `${ToolbarItemOverflowBehavior}` {\n\t\tconst declared = this.overflowPriority;\n\t\tif (\n\t\t\t!this.isSpacer\n\t\t\t&& this.overflowGroup\n\t\t\t&& (declared === \"AlwaysOverflow\" || declared === \"NeverOverflow\")\n\t\t) {\n\t\t\treturn \"Default\";\n\t\t}\n\t\treturn declared;\n\t}\n\n\t/**\n\t * Returns the `overflowGroup` actually used by the toolbar's distribution\n\t * algorithm. Spacers cannot participate in grouping; a spacer\n\t * with a non-empty `overflowGroup` returns `\"\"` so the spacer is treated\n\t * as ungrouped by the algorithm.\n\t *\n\t * @protected\n\t */\n\tget effectiveOverflowGroup(): string | undefined {\n\t\tif (this.isSpacer && this.overflowGroup) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn this.overflowGroup;\n\t}\n\n\tget stableDomRef() {\n\t\treturn this.getAttribute(\"stable-dom-ref\") || `${this._id}-stable-dom-ref`;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\troot: {\n\t\t\t\t\"ui5-tb-popover-item\": this.isOverflowed,\n\t\t\t\t\"ui5-tb-item\": true,\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {};\n\t}\n}\n\nexport type {\n\tToolbarItemEventDetail,\n};\nexport default ToolbarItemBase;\n"]}
@@ -1 +1 @@
1
- :host{display:block;width:100%;height:100%}.ui5-calheader-root{display:flex;height:100%;padding:var(--_ui5_calendar_header_padding);box-sizing:border-box}.ui5-calheader-arrowbtn{display:flex;justify-content:center;align-items:center;width:var(--_ui5_calendar_header_arrow_button_width);background-color:var(--sapButton_Lite_Background);color:var(--sapButton_Lite_TextColor);cursor:pointer;overflow:hidden;white-space:nowrap;padding:0;font-size:var(--sapFontSize);user-select:none;position:relative;box-sizing:border-box}.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled:hover,.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled:active,.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled:focus,.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled{opacity:.4;cursor:default;outline:none;background-color:var(--sapButton_Lite_Background);color:var(--sapButton_Lite_TextColor)}[hidden].ui5-calheader-arrowbtn.ui5-calheader-middlebtn{display:none}.ui5-calheader-arrowbtn:hover{background-color:var(--sapButton_Hover_Background);color:var(--sapButton_Lite_TextColor);box-shadow:var(--_ui5_calendar_header_arrow_button_box_shadow)}.ui5-calheader-arrowbtn:active{background-color:var(--sapButton_Active_Background);color:var(--sapButton_Active_TextColor)}.ui5-calheader-arrowbtn,.ui5-calheader-middlebtn{border:var(--_ui5_calendar_header_arrow_button_border);border-radius:var(--_ui5_calendar_header_arrow_button_border_radius);display:flex;background-color:var(--sapButton_Lite_Background);border-color:var(--sapButton_Lite_BorderColor)}.ui5-calheader-middlebtn{flex-direction:column;align-items:center;justify-content:center}.ui5-calheader-arrowbtn:not(:active) .ui5-calheader-btn-sectext{color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize)}.ui5-calheader-arrowicon{color:currentColor;pointer-events:none}.ui5-calheader-midcontainer{display:flex;justify-content:space-around;flex:1 1 auto;padding:0 .5rem}.ui5-calheader-midcontainer .ui5-calheader-middlebtn:first-child{margin-inline-end:.5rem}.ui5-calheader-middlebtn{font-family:var(--_ui5_button_fontFamily);width:var(--_ui5_calendar_header_middle_button_width);flex:var(--_ui5_calendar_header_middle_button_flex);position:relative;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ui5-calheader-middlebtn:focus,.ui5-calheader-arrowbtn:focus{border:var(--_ui5_calendar_header_middle_button_focus_border);border-radius:var(--_ui5_calendar_header_middle_button_focus_border_radius);outline:var(--_ui5_calendar_header_middle_button_focus_outline);outline-offset:-.125rem;background:var(--_ui5_calendar_header_middle_button_focus_background)}.ui5-calheader-middlebtn:focus:active,.ui5-calheader-arrowbtn:focus:active{outline:var(--_ui5_calendar_header_middle_button_focus_active_outline);outline-offset:-.0625rem;background:var(--_ui5_calendar_header_middle_button_focus_active_background)}.ui5-calheader-middlebtn:focus:after,.ui5-calheader-arrowbtn:focus:after{content:"";display:var(--_ui5_calendar_header_middle_button_focus_after_display);width:var(--_ui5_calendar_header_middle_button_focus_after_width);height:var(--_ui5_calendar_header_middle_button_focus_after_height);border:var(--_ui5_calendar_header_middle_button_focus_after_border);position:absolute;top:var(--_ui5_calendar_header_middle_button_focus_after_top_offset);left:var(--_ui5_calendar_header_middle_button_focus_after_left_offset)}.ui5-calheader-middlebtn:focus:active:after,.ui5-calheader-arrowbtn:focus:active:after{border-color:var(--sapContent_ContrastFocusColor)}
1
+ :host{display:block;width:100%;height:100%}.ui5-calheader-root{display:flex;height:100%;padding:var(--_ui5_calendar_header_padding);box-sizing:border-box}.ui5-calheader-arrowbtn{display:flex;justify-content:center;align-items:center;width:var(--_ui5_calendar_header_arrow_button_width);background-color:var(--sapButton_Lite_Background);color:var(--sapButton_Lite_TextColor);cursor:pointer;overflow:hidden;white-space:nowrap;padding:0;font-size:var(--sapFontSize);user-select:none;position:relative;box-sizing:border-box}.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled:hover,.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled:active,.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled:focus,.ui5-calheader-arrowbtn.ui5-calheader-arrowbtn-disabled{opacity:.4;cursor:default;outline:none;background-color:var(--sapButton_Lite_Background);color:var(--sapButton_Lite_TextColor)}[hidden].ui5-calheader-arrowbtn.ui5-calheader-middlebtn{display:none}.ui5-calheader-arrowbtn:hover{background-color:var(--sapButton_Lite_Hover_Background);color:var(--sapButton_Lite_Hover_TextColor);box-shadow:var(--_ui5_calendar_header_arrow_button_box_shadow);border-color:var(--sapButton_Lite_Hover_BorderColor)}.ui5-calheader-arrowbtn:active{background-color:var(--sapButton_Active_Background);color:var(--sapButton_Active_TextColor);border-color:var(--sapButton_Lite_Active_BorderColor)}.ui5-calheader-arrowbtn,.ui5-calheader-middlebtn{border:var(--sapButton_BorderWidth) solid var(--sapButton_Lite_BorderColor);border-radius:var(--_ui5_calendar_header_arrow_button_border_radius, var(--sapButton_BorderCornerRadius));display:flex;background-color:var(--sapButton_Lite_Background)}.ui5-calheader-middlebtn{flex-direction:column;align-items:center;justify-content:center}.ui5-calheader-arrowbtn:not(:active) .ui5-calheader-btn-sectext{color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize)}.ui5-calheader-arrowicon{color:currentColor;pointer-events:none}.ui5-calheader-midcontainer{display:flex;justify-content:space-around;flex:1 1 auto;padding:0 .5rem}.ui5-calheader-midcontainer .ui5-calheader-middlebtn:first-child{margin-inline-end:.5rem}.ui5-calheader-middlebtn{font-family:var(--_ui5_button_fontFamily);width:var(--_ui5_calendar_header_middle_button_width);flex:var(--_ui5_calendar_header_middle_button_flex);position:relative;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ui5-calheader-middlebtn:focus,.ui5-calheader-arrowbtn:focus{border:var(--_ui5_calendar_header_middle_button_focus_border);border-radius:var(--_ui5_calendar_header_middle_button_focus_border_radius, var(--sapButton_BorderCornerRadius));outline:var(--_ui5_calendar_header_middle_button_focus_outline);outline-offset:-.125rem;background:var(--_ui5_calendar_header_middle_button_focus_background)}.ui5-calheader-middlebtn:focus:active,.ui5-calheader-arrowbtn:focus:active{outline:var(--_ui5_calendar_header_middle_button_focus_active_outline);outline-offset:-.0625rem;background:var(--_ui5_calendar_header_middle_button_focus_active_background)}.ui5-calheader-middlebtn:focus:after,.ui5-calheader-arrowbtn:focus:after{content:"";display:var(--_ui5_calendar_header_middle_button_focus_after_display);width:var(--_ui5_calendar_header_middle_button_focus_after_width);height:var(--_ui5_calendar_header_middle_button_focus_after_height);border:var(--_ui5_calendar_header_middle_button_focus_after_border);position:absolute;top:var(--_ui5_calendar_header_middle_button_focus_after_top_offset);left:var(--_ui5_calendar_header_middle_button_focus_after_left_offset)}.ui5-calheader-middlebtn:focus:active:after,.ui5-calheader-arrowbtn:focus:active:after{border-color:var(--sapContent_ContrastFocusColor)}
@@ -1 +1 @@
1
- [ui5-responsive-popover]::part(content){padding:0}[ui5-responsive-popover]{width:20rem;height:35.625rem}[ui5-responsive-popover]::part(content){width:20rem;height:35.625rem}.ui5-dynamic-date-range-option-container{display:flex;flex-direction:column;align-content:center;justify-content:space-around;height:100%;width:100%}.ui5-dynamic-date-range-unified-option,.ui5-last-next-container{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;height:100%}.ui5-last-next-container-padded{padding:0 1rem .5rem}.ui5-ddr-input-container{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.25rem;width:fit-content}.ui5-ddr-input-container-right-aligned{text-align:right}.ui5-ddr-label{margin:1rem 0 .5rem;text-align:left}.ui5-ddr-input-row{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem}.ui5-ddr-current-value{display:flex;justify-content:flex-start;align-items:center;height:3.125rem;font-size:.875rem;font-family:var(--sapFontFamily);font-weight:400;color:var(--sapContentLabelColor);background-color:#d3d3d3;padding-inline-start:10px;font-style:italic;text-overflow:ellipsis;overflow:hidden}[ui5-responsive-popover]::part(footer){display:flex;justify-content:end;padding-top:.125rem;padding-bottom:.125rem}.ui5-ddr-arrow-back-btn{display:flex;justify-content:center;align-items:center;width:var(--_ui5_calendar_header_arrow_button_width);background-color:var(--sapButton_Lite_Background);color:var(--sapButton_Lite_TextColor);cursor:pointer;overflow:hidden;white-space:nowrap;padding:0;font-size:var(--sapFontSize);user-select:none}.ui5-ddr-arrow-back-btn{border:var(--_ui5_calendar_header_arrow_button_border);border-radius:var(--_ui5_calendar_header_arrow_button_border_radius);display:flex;background-color:var(--sapButton_Lite_Background);border-color:var(--sapButton_Lite_BorderColor)}.ui5-ddr-arrow-back-btn-arrow-icon{color:currentColor;pointer-events:none}[ui5-responsive-popover]::part(header){display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:2.5rem}.ui5-ddr-header{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:2.5rem}.ui5-dynamic-date-range-option-datetime-container{height:100%}.ui5-dt-picker-header{display:flex;justify-content:center;padding-top:.5rem}
1
+ [ui5-responsive-popover]::part(content){padding:0}[ui5-responsive-popover]{width:20rem;height:35.625rem}[ui5-responsive-popover]::part(content){width:20rem;height:35.625rem}.ui5-dynamic-date-range-option-container{display:flex;flex-direction:column;align-content:center;justify-content:space-around;height:100%;width:100%}.ui5-dynamic-date-range-unified-option,.ui5-last-next-container{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;height:100%}.ui5-last-next-container-padded{padding:0 1rem .5rem}.ui5-ddr-input-container{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:.25rem;width:fit-content}.ui5-ddr-input-container-right-aligned{text-align:right}.ui5-ddr-label{margin:1rem 0 .5rem;text-align:left}.ui5-ddr-input-row{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem}.ui5-ddr-current-value{display:flex;justify-content:flex-start;align-items:center;height:3.125rem;font-size:.875rem;font-family:var(--sapFontFamily);font-weight:400;color:var(--sapContentLabelColor);background-color:#d3d3d3;padding-inline-start:10px;font-style:italic;text-overflow:ellipsis;overflow:hidden}[ui5-responsive-popover]::part(footer){display:flex;justify-content:end;padding-top:.125rem;padding-bottom:.125rem}.ui5-ddr-arrow-back-btn{display:flex;justify-content:center;align-items:center;width:var(--_ui5_calendar_header_arrow_button_width);background-color:var(--sapButton_Lite_Background);color:var(--sapButton_Lite_TextColor);cursor:pointer;overflow:hidden;white-space:nowrap;padding:0;font-size:var(--sapFontSize);user-select:none}.ui5-ddr-arrow-back-btn{border:var(--sapButton_BorderWidth) solid var(--sapButton_Lite_BorderColor);border-radius:var(--_ui5_calendar_header_arrow_button_border_radius, var(--sapButton_BorderCornerRadius));display:flex;background-color:var(--sapButton_Lite_Background)}.ui5-ddr-arrow-back-btn-arrow-icon{color:currentColor;pointer-events:none}[ui5-responsive-popover]::part(header){display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:2.5rem}.ui5-ddr-header{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;height:2.5rem}.ui5-dynamic-date-range-option-datetime-container{height:100%}.ui5-dt-picker-header{display:flex;justify-content:center;padding-top:.5rem}
@@ -1 +1 @@
1
- :host{box-sizing:border-box;height:var(--_ui5_list_item_base_height);background-color:var(--ui5-listitem-background-color);border-bottom:.0625rem solid transparent}:host(:not([hidden])){display:block}:host([disabled]){opacity:var(--_ui5-listitembase_disabled_opacity);pointer-events:none}:host([actionable]:not([disabled]):not([ui5-li-group-header])){cursor:pointer}:host([has-border]){border-bottom:var(--ui5-listitem-border-bottom)}:host([selected]){background-color:var(--sapList_SelectionBackgroundColor);border-bottom:var(--ui5-listitem-selected-border-bottom)}:host([selected]) .ui5-li-additional-text{text-shadow:var(--sapContent_TextShadow)}:host([actionable]:not([active]):not(:active):not([selected]):not([ui5-li-group-header]):hover){background-color:var(--sapList_Hover_Background)}:host([actionable]:not([active]):not(:active):not([selected]):not([ui5-li-group-header]):hover) .ui5-li-additional-text{text-shadow:var(--sapContent_TextShadow)}:host([actionable][selected]:not([active]):not(:active):not([data-moving]):hover){background-color:var(--sapList_Hover_SelectionBackground)}:host([active][actionable]:not([data-moving])),:host([active][actionable][selected]:not([data-moving])){background-color:var(--sapList_Active_Background);border-bottom-color:var(--sapList_Active_Background)}:host([desktop]:not([data-moving])) .ui5-li-root.ui5-li--focusable:focus:after,:host([desktop][focused]:not([data-moving])) .ui5-li-root.ui5-li--focusable:after,:host(:not([data-moving])) .ui5-li-root.ui5-li--focusable:focus-visible:after,:host([desktop]:not([data-moving])) .ui5-li-root .ui5-li-content:focus:after,:host([desktop][focused]:not([data-moving])) .ui5-li-root .ui5-li-content:after,:host(:not([data-moving])) .ui5-li-root .ui5-li-content:focus-visible:after{content:"";border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);position:absolute;inset:.125rem;pointer-events:none}.ui5-li-root{position:relative;display:flex;align-items:center;width:100%;height:100%;padding:var(--_ui5_list_item_base_padding);box-sizing:border-box;background-color:inherit}.ui5-li-root.ui5-li--focusable{outline:none}.ui5-li-content{display:flex;align-items:center;flex:auto;overflow:hidden;max-width:100%;font-family:var(--sapFontFamily);color:var(--sapList_TextColor)}.ui5-li-content .ui5-li-title{color:var(--sapList_TextColor);font-size:var(--_ui5_list_item_title_size)}.ui5-li-text-wrapper{display:flex;flex-direction:row;justify-content:space-between;flex:auto;min-width:1px;line-height:normal}
1
+ :host{box-sizing:border-box;height:var(--_ui5_list_item_base_height);background-color:var(--ui5-listitem-background-color);border-bottom:.0625rem solid transparent}:host(:not([hidden])){display:block}:host([disabled]){opacity:var(--_ui5-listitembase_disabled_opacity);pointer-events:none}:host([actionable]:not([disabled]):not([ui5-li-group-header])){cursor:pointer}:host([has-border]){border-bottom:var(--ui5-listitem-border-bottom)}:host([selected]){background-color:var(--sapList_SelectionBackgroundColor);border-bottom:var(--ui5-listitem-selected-border-bottom)}:host([selected]) .ui5-li-additional-text{text-shadow:var(--sapContent_TextShadow)}:host([actionable]:not([active]):not(:active):not([selected]):not([ui5-li-group-header]):hover){background-color:var(--sapList_Hover_Background)}:host([actionable]:not([active]):not(:active):not([selected]):not([ui5-li-group-header]):hover) .ui5-li-additional-text{text-shadow:var(--sapContent_TextShadow)}:host([actionable][selected]:not([active]):not(:active):not([data-moving]):hover){background-color:var(--sapList_Hover_SelectionBackground)}:host([active][actionable]:not([data-moving])),:host([active][actionable][selected]:not([data-moving])){background-color:var(--sapList_Active_Background);border-bottom-color:var(--sapList_Active_Background)}:host([desktop]:not([data-moving])) .ui5-li-root.ui5-li--focusable:focus:after,:host([desktop][focused]:not([data-moving])) .ui5-li-root.ui5-li--focusable:after,:host(:not([data-moving])) .ui5-li-root.ui5-li--focusable:focus-visible:after,:host([desktop]:not([data-moving])) .ui5-li-root .ui5-li-content:focus:after,:host([desktop][focused]:not([data-moving])) .ui5-li-root .ui5-li-content:after,:host(:not([data-moving])) .ui5-li-root .ui5-li-content:focus-visible:after{content:"";border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);position:absolute;inset:.125rem;pointer-events:none}.ui5-li-root{position:relative;display:flex;align-items:center;width:100%;height:100%;padding:var(--_ui5_list_item_base_padding);box-sizing:border-box;background-color:inherit}.ui5-li-root.ui5-li--focusable{outline:none}.ui5-li-content{display:flex;align-items:center;flex:auto;overflow:hidden;max-width:100%;font-family:var(--sapFontFamily);color:var(--sapList_TextColor)}.ui5-li-content .ui5-li-title{color:var(--sapList_TextColor);font-size:var(--_ui5_list_item_title_size)}.ui5-li-text-wrapper{display:flex;flex-direction:row;justify-content:space-between;flex:var(--_ui5_li_text_wrapper_flex, auto);min-width:1px;line-height:normal}
@@ -1 +1 @@
1
- :host{vertical-align:middle}:host(:not([hidden])){display:inline-block;font-size:24px;margin:var(--_ui5_rating_indicator_component_spacing);cursor:pointer}:host([disabled]){opacity:var(--sapContent_DisabledOpacity);cursor:initial;outline:none}:host([readonly]),:host([display-only]){cursor:initial}:host([readonly]) .ui5-rating-indicator-item-unsel,:host([display-only]) .ui5-rating-indicator-item-unsel{padding-inline:var(--_ui5_rating_indicator_readonly_item_spacing);width:var(--_ui5_rating_indicator_readonly_item_width);height:var(--_ui5_rating_indicator_readonly_item_height)}:host(:not([readonly]):not([disabled]):not([display-only])) .ui5-rating-indicator-root:hover{opacity:.9}:host([_focused]){outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);outline-offset:var(--_ui5_rating_indicator_outline_offset);border-radius:var(--_ui5_rating_indicator_border_radius)}:host([size="S"]) .ui5-rating-indicator-item{font-size:var(--_ui5_rating_indicator_item_size_s)}:host([size="L"]) .ui5-rating-indicator-item{font-size:var(--_ui5_rating_indicator_item_size_l)}[ui5-icon]{display:flex;text-shadow:var(--sapContent_TextShadow)}.ui5-rating-indicator-root{outline:none;position:relative;padding:var(--_ui5_rating_indicator_component_padding)}.ui5-rating-indicator-list{list-style-type:none;display:flex;align-items:center;margin:0;padding:0}.ui5-rating-indicator-item{position:relative;width:var(--_ui5_rating_indicator_item_width);height:var(--_ui5_rating_indicator_item_height)}:host([size="L"]) .ui5-rating-indicator-item:not(:last-child){margin-inline-end:.25rem}.ui5-rating-indicator-item:not(:last-child){margin-inline-end:.1875rem}.ui5-rating-indicator-item [ui5-icon]{width:100%;height:100%;color:inherit;user-select:none}.ui5-rating-indicator-item.ui5-rating-indicator-item-sel{color:var(--sapContent_RatedColor)}.ui5-rating-indicator-item.ui5-rating-indicator-item-unsel{color:var(--sapContent_UnratedColor)}.ui5-rating-indicator-item.ui5-rating-indicator-item-half{display:flex;flex-direction:row}.ui5-rating-indicator-half-icon-wrapper{width:50%;height:100%;overflow:hidden;position:relative}.ui5-rating-indicator-half-icon-wrapper [ui5-icon]{position:absolute;width:var(--_ui5_rating_indicator_item_width);height:var(--_ui5_rating_indicator_item_height)}.ui5-rating-indicator-half-icon-left{color:var(--sapContent_RatedColor)}.ui5-rating-indicator-half-icon-left [ui5-icon]{inset-inline-start:0}.ui5-rating-indicator-half-icon-right{color:var(--sapContent_UnratedColor)}.ui5-rating-indicator-half-icon-right [ui5-icon]{inset-inline-end:0}
1
+ :host{vertical-align:middle}:host(:not([hidden])){display:inline-block;font-size:24px;margin:var(--_ui5_rating_indicator_component_spacing);cursor:pointer}:host([disabled]){opacity:var(--sapContent_DisabledOpacity);cursor:initial;outline:none}:host([readonly]),:host([display-only]){cursor:initial}:host([readonly]) .ui5-rating-indicator-item-unsel,:host([display-only]) .ui5-rating-indicator-item-unsel{padding-inline:var(--_ui5_rating_indicator_readonly_item_spacing);width:var(--_ui5_rating_indicator_readonly_item_width);height:var(--_ui5_rating_indicator_readonly_item_height)}:host(:not([readonly]):not([disabled]):not([display-only])) .ui5-rating-indicator-root:hover{opacity:.9}:host([desktop]:not([disabled]):not([display-only])) .ui5-rating-indicator-root:focus,:host(:not([disabled]):not([display-only])) .ui5-rating-indicator-root:focus-visible{outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);outline-offset:var(--_ui5_rating_indicator_outline_offset);border-radius:var(--_ui5_rating_indicator_border_radius)}:host([size="S"]) .ui5-rating-indicator-item{font-size:var(--_ui5_rating_indicator_item_size_s)}:host([size="L"]) .ui5-rating-indicator-item{font-size:var(--_ui5_rating_indicator_item_size_l)}[ui5-icon]{display:flex;text-shadow:var(--sapContent_TextShadow)}.ui5-rating-indicator-root{outline:none;position:relative;padding:var(--_ui5_rating_indicator_component_padding)}.ui5-rating-indicator-list{list-style-type:none;display:flex;align-items:center;margin:0;padding:0}.ui5-rating-indicator-item{position:relative;width:var(--_ui5_rating_indicator_item_width);height:var(--_ui5_rating_indicator_item_height)}:host([size="L"]) .ui5-rating-indicator-item:not(:last-child){margin-inline-end:.25rem}.ui5-rating-indicator-item:not(:last-child){margin-inline-end:.1875rem}.ui5-rating-indicator-item [ui5-icon]{width:100%;height:100%;color:inherit;user-select:none}.ui5-rating-indicator-item.ui5-rating-indicator-item-sel{color:var(--sapContent_RatedColor)}.ui5-rating-indicator-item.ui5-rating-indicator-item-unsel{color:var(--sapContent_UnratedColor)}.ui5-rating-indicator-item.ui5-rating-indicator-item-half{display:flex;flex-direction:row}.ui5-rating-indicator-half-icon-wrapper{width:50%;height:100%;overflow:hidden;position:relative}.ui5-rating-indicator-half-icon-wrapper [ui5-icon]{position:absolute;width:var(--_ui5_rating_indicator_item_width);height:var(--_ui5_rating_indicator_item_height)}.ui5-rating-indicator-half-icon-left{color:var(--sapContent_RatedColor)}.ui5-rating-indicator-half-icon-left [ui5-icon]{inset-inline-start:0}.ui5-rating-indicator-half-icon-right{color:var(--sapContent_UnratedColor)}.ui5-rating-indicator-half-icon-right [ui5-icon]{inset-inline-end:0}
@@ -1 +1 @@
1
- :host{display:inline-block;background:var(--_ui5_token_background);border:var(--sapButton_BorderWidth) solid var(--sapButton_TokenBorderColor);border-radius:var(--_ui5_token_border_radius);color:var(--_ui5_token_text_color);height:var(--_ui5_token_height);box-sizing:border-box}:host(:not([single-token])){margin-inline-end:var(--_ui5_token_right_margin)}:host([last-visible-token]){margin-inline-end:0}:host([overflows]){display:none}:host(:not([readonly]):hover){background:var(--sapButton_Hover_Background)}:host(:not([readonly])[selected]){background:var(--sapButton_Selected_Background);border:var(--sapButton_BorderWidth) solid var(--sapButton_Selected_BorderColor);color:var(--sapButton_Selected_TextColor)}:host(:not([readonly])[selected]) .ui5-token--wrapper:before{content:"";position:absolute;border-bottom:var(--_ui5_token_selected_internal_border_bottom);border-bottom-left-radius:var(--_ui5_token_selected_internal_border_bottom_radius);border-bottom-right-radius:var(--_ui5_token_selected_internal_border_bottom_radius);inset:0;background:transparent;pointer-events:none}:host([readonly][selected]) .ui5-token--text{background:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}:host(:not([readonly])[selected]:hover){background:var(--sapButton_Selected_Hover_Background)}:host([readonly]:not([selected])){background:var(--_ui5_token_readonly_background);border-color:var(--sapField_ReadOnly_BorderColor);color:var(--_ui5_token_readonly_color)}:host([readonly]) .ui5-token--wrapper{padding:var(--_ui5_token_readonly_padding)}:host([selected]) .ui5-token--wrapper:focus{outline:var(--_ui5_token_selected_focus_outline)}:host(:not([readonly])[focused][selected]:not(:hover)){background:var(--sapButton_Selected_Background);color:var(--sapButton_Selected_TextColor);border:var(--_ui5_token_focused_selected_border)}.ui5-token--wrapper{display:flex;align-items:center;height:100%;width:100%;cursor:pointer;position:relative;padding-inline-start:var(--_ui5_token_left_padding);box-sizing:border-box;font-size:var(--sapFontSize);font-family:var(--sapFontFamily);user-select:none}.ui5-token--wrapper{position:relative}:host([selected]) .ui5-token--wrapper{font-family:var(--_ui5_token_selected_text_font_family)}.ui5-token--wrapper:focus{outline-offset:var(--_ui5_token_outline_offset);outline:var(--_ui5_token_focus_outline)}.ui5-token--wrapper:focus:after{content:var(--ui5_token_focus_pseudo_element_content);position:absolute;pointer-events:none;z-index:2;border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--_ui5_token_focus_outline_border_radius);top:var(--_ui5_token_focus_offset);bottom:var(--_ui5_token_focus_offset);left:var(--_ui5_token_focus_offset);right:var(--_ui5_token_focus_offset)}.ui5-token--text{white-space:nowrap}.ui5-token--icon{display:flex}:host([selected]) .ui5-token--icon>[ui5-icon],:host([selected]) ::slotted([ui5-icon]){color:var(--sapButton_Selected_TextColor)}.ui5-token--icon>[ui5-icon],::slotted([ui5-icon]){color:inherit;cursor:pointer;width:var(--_ui5_token_icon_size);height:var(--_ui5_token_icon_size);padding:var(--_ui5_token_icon_padding);color:var(--sapContent_IconColor)}:host([single-token]){max-width:100%}:host([single-token]) .ui5-token--wrapper{max-width:100%}:host([single-token]) .ui5-token--text{overflow:hidden;text-overflow:ellipsis;max-width:100%}
1
+ :host{display:inline-block;background:var(--_ui5_token_background);border:var(--sapButton_BorderWidth) solid var(--sapButton_TokenBorderColor);border-radius:var(--_ui5_token_border_radius);color:var(--_ui5_token_text_color);height:var(--_ui5_token_height);box-sizing:border-box}:host(:not([single-token])){margin-inline-end:var(--_ui5_token_right_margin)}:host([last-visible-token]){margin-inline-end:0}:host([overflows]){display:none}:host(:not([readonly]):hover){background:var(--sapButton_Hover_Background)}:host(:not([readonly])[selected]){background:var(--sapButton_Selected_Background);border:var(--sapButton_BorderWidth) solid var(--sapButton_Selected_BorderColor);color:var(--sapButton_Selected_TextColor)}:host(:not([readonly])[selected]) .ui5-token--wrapper:before{content:"";position:absolute;border-bottom:var(--_ui5_token_selected_internal_border_bottom);border-bottom-left-radius:var(--_ui5_token_selected_internal_border_bottom_radius);border-bottom-right-radius:var(--_ui5_token_selected_internal_border_bottom_radius);inset:0;background:transparent;pointer-events:none}:host([readonly][selected]) .ui5-token--text{background:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}:host(:not([readonly])[selected]:hover){background:var(--sapButton_Selected_Hover_Background)}:host([readonly]:not([selected])){background:var(--_ui5_token_readonly_background);border-color:var(--sapField_ReadOnly_BorderColor);color:var(--_ui5_token_readonly_color)}:host([readonly]) .ui5-token--wrapper{padding:var(--_ui5_token_readonly_padding)}:host([desktop][selected]) .ui5-token--wrapper:focus,:host([selected]) .ui5-token--wrapper:focus-visible{outline:var(--_ui5_token_selected_focus_outline)}:host(:not([readonly])[focused][selected]:not(:hover)){background:var(--sapButton_Selected_Background);color:var(--sapButton_Selected_TextColor);border:var(--_ui5_token_focused_selected_border)}.ui5-token--wrapper{display:flex;align-items:center;height:100%;width:100%;cursor:pointer;position:relative;padding-inline-start:var(--_ui5_token_left_padding);box-sizing:border-box;font-size:var(--sapFontSize);font-family:var(--sapFontFamily);user-select:none}.ui5-token--wrapper{position:relative}:host([selected]) .ui5-token--wrapper{font-family:var(--_ui5_token_selected_text_font_family)}:host([desktop]) .ui5-token--wrapper:focus,.ui5-token--wrapper:focus-visible{outline-offset:var(--_ui5_token_outline_offset);outline:var(--_ui5_token_focus_outline)}:host([desktop]) .ui5-token--wrapper:focus:after,.ui5-token--wrapper:focus-visible:after{content:var(--ui5_token_focus_pseudo_element_content);position:absolute;pointer-events:none;z-index:2;border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--_ui5_token_focus_outline_border_radius);top:var(--_ui5_token_focus_offset);bottom:var(--_ui5_token_focus_offset);left:var(--_ui5_token_focus_offset);right:var(--_ui5_token_focus_offset)}.ui5-token--text{white-space:nowrap}.ui5-token--icon{display:flex}:host([selected]) .ui5-token--icon>[ui5-icon],:host([selected]) ::slotted([ui5-icon]){color:var(--sapButton_Selected_TextColor)}.ui5-token--icon>[ui5-icon],::slotted([ui5-icon]){color:inherit;cursor:pointer;width:var(--_ui5_token_icon_size);height:var(--_ui5_token_icon_size);padding:var(--_ui5_token_icon_padding);color:var(--sapContent_IconColor)}:host([single-token]){max-width:100%}:host([single-token]) .ui5-token--wrapper{max-width:100%}:host([single-token]) .ui5-token--text{overflow:hidden;text-overflow:ellipsis;max-width:100%}