@sapudex/web-components 2.47.0 → 2.49.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle.esm.js +2 -0
- package/cypress/specs/AccordionSpotlight.cy.tsx +402 -0
- package/cypress/specs/BusyIndicator.cy.tsx +15 -0
- package/cypress/specs/Carousel.cy.tsx +142 -0
- package/cypress/specs/DatePicker.cy.tsx +62 -0
- package/cypress/specs/FilterMenu.cy.tsx +968 -10
- package/cypress/specs/List.cy.tsx +106 -0
- package/cypress/specs/ListItem.cy.tsx +291 -1
- package/cypress/specs/MediaPlayer.cy.tsx +32 -0
- package/cypress/specs/SelectBox.cy.tsx +134 -3
- package/cypress/specs/Tag.cy.tsx +34 -3
- package/cypress/specs/TextField.cy.tsx +68 -0
- package/cypress/support/component-imports.instrumented.ts +6 -0
- package/cypress/support/component-imports.src.ts +6 -0
- package/dist/AccordionSpotlight.d.ts +149 -0
- package/dist/AccordionSpotlight.js +284 -0
- package/dist/AccordionSpotlight.js.map +1 -0
- package/dist/AccordionSpotlightItem.d.ts +76 -0
- package/dist/AccordionSpotlightItem.js +115 -0
- package/dist/AccordionSpotlightItem.js.map +1 -0
- package/dist/AccordionSpotlightItemTemplate.d.ts +2 -0
- package/dist/AccordionSpotlightItemTemplate.js +5 -0
- package/dist/AccordionSpotlightItemTemplate.js.map +1 -0
- package/dist/AccordionSpotlightTemplate.d.ts +2 -0
- package/dist/AccordionSpotlightTemplate.js +10 -0
- package/dist/AccordionSpotlightTemplate.js.map +1 -0
- package/dist/BusyIndicator.d.ts +9 -0
- package/dist/BusyIndicator.js +7 -1
- package/dist/BusyIndicator.js.map +1 -1
- package/dist/Carousel.d.ts +64 -8
- package/dist/Carousel.js +191 -33
- package/dist/Carousel.js.map +1 -1
- package/dist/CarouselTemplate.js +9 -2
- package/dist/CarouselTemplate.js.map +1 -1
- package/dist/DatePicker.d.ts +5 -0
- package/dist/DatePicker.js +10 -0
- package/dist/DatePicker.js.map +1 -1
- package/dist/DatePickerTemplate.js +1 -1
- package/dist/DatePickerTemplate.js.map +1 -1
- package/dist/FilterMenu.d.ts +12 -2
- package/dist/FilterMenu.js +24 -4
- package/dist/FilterMenu.js.map +1 -1
- package/dist/FilterMenuTemplate.js +1 -1
- package/dist/FilterMenuTemplate.js.map +1 -1
- package/dist/List.d.ts +1 -0
- package/dist/List.js +24 -11
- package/dist/List.js.map +1 -1
- package/dist/ListGroupHeader.js +5 -1
- package/dist/ListGroupHeader.js.map +1 -1
- package/dist/ListGroupHeaderBase.d.ts +22 -0
- package/dist/ListGroupHeaderBase.js +44 -0
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListItem.d.ts +4 -0
- package/dist/ListItem.js +32 -0
- package/dist/ListItem.js.map +1 -1
- package/dist/MediaPlayer.d.ts +2 -0
- package/dist/MediaPlayer.js +12 -0
- package/dist/MediaPlayer.js.map +1 -1
- package/dist/PromoTile.js +1 -1
- package/dist/PromoTile.js.map +1 -1
- package/dist/SearchableListBase.d.ts +10 -1
- package/dist/SearchableListBase.js +23 -7
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +3 -2
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/SelectBase.d.ts +14 -0
- package/dist/SelectBase.js +56 -3
- package/dist/SelectBase.js.map +1 -1
- package/dist/SelectBoxTemplate.js +1 -1
- package/dist/SelectBoxTemplate.js.map +1 -1
- package/dist/TabNavigation.d.ts +6 -0
- package/dist/TabNavigation.js +5 -0
- package/dist/TabNavigation.js.map +1 -1
- package/dist/Tag.js +3 -2
- package/dist/Tag.js.map +1 -1
- package/dist/TagTemplate.js +2 -2
- package/dist/TagTemplate.js.map +1 -1
- package/dist/TextField.d.ts +12 -0
- package/dist/TextField.js +15 -0
- package/dist/TextField.js.map +1 -1
- package/dist/TextFieldTemplate.js +1 -1
- package/dist/TextFieldTemplate.js.map +1 -1
- package/dist/assets/{InputSuggestions-CbKVAumI.js → InputSuggestions-DaB1A6jW.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-C3-WJZBS.js → ListItemStandardExpandableTextTemplate-Co4KQuVw.js} +1 -1
- package/dist/assets/{bundle-JYo3bV8v.css → bundle-CkxyEA8c.css} +1 -1
- package/dist/assets/{bundle.esm-D8jQybCx.js → bundle.esm-al3NYhoB.js} +242 -239
- package/dist/assets/messagebundle_ar-BUZ_gTvQ.js +1 -0
- package/dist/assets/messagebundle_en-DoNTK1BE.js +1 -0
- package/dist/assets/messagebundle_no-BZQfeWxT.js +1 -0
- package/dist/assets/messagebundle_pl-CsXeN1y6.js +1 -0
- package/dist/assets/messagebundle_pt_PT-CQ5YAsmx.js +1 -0
- package/dist/css/themes/Accordion.css +1 -1
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/AccordionSpotlight.css +1 -0
- package/dist/css/themes/AccordionSpotlightItem.css +1 -0
- package/dist/css/themes/Badge.css +1 -1
- package/dist/css/themes/BusyIndicator.css +1 -0
- package/dist/css/themes/Button.css +1 -1
- package/dist/css/themes/Carousel.css +1 -1
- package/dist/css/themes/Divider.css +1 -1
- package/dist/css/themes/Dropdown.css +1 -1
- package/dist/css/themes/FilterMenu.css +1 -1
- package/dist/css/themes/Footer.css +1 -1
- package/dist/css/themes/ImageGridTableItem.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/MediaPlayer.css +1 -1
- package/dist/css/themes/PhoneNumberField.css +1 -1
- package/dist/css/themes/ProgressBar.css +1 -1
- package/dist/css/themes/PromoTile.css +1 -1
- package/dist/css/themes/Review.css +1 -1
- package/dist/css/themes/ReviewItem.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SelectBase.css +1 -1
- package/dist/css/themes/SelectBox.css +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/css/themes/SideNavigationGroup.css +1 -1
- package/dist/css/themes/SocialMediaButton.css +1 -1
- package/dist/css/themes/StepInput.css +1 -1
- package/dist/css/themes/Switch.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCell.css +1 -1
- package/dist/css/themes/TableGroupRow.css +1 -1
- package/dist/css/themes/TableHeaderCell.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/TagGroup.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/css/themes/Toast.css +1 -1
- package/dist/custom-elements-internal.json +511 -35
- package/dist/custom-elements.json +455 -49
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
- package/dist/generated/i18n/i18n-defaults.js +3 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +24 -21
- package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
- package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
- package/dist/generated/themes/Accordion.css.d.ts +1 -1
- package/dist/generated/themes/Accordion.css.js +1 -1
- package/dist/generated/themes/Accordion.css.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.d.ts +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.d.ts +2 -0
- package/dist/generated/themes/AccordionSpotlight.css.js +8 -0
- package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -0
- package/dist/generated/themes/AccordionSpotlightItem.css.d.ts +2 -0
- package/dist/generated/themes/AccordionSpotlightItem.css.js +8 -0
- package/dist/generated/themes/AccordionSpotlightItem.css.js.map +1 -0
- package/dist/generated/themes/Badge.css.d.ts +1 -1
- package/dist/generated/themes/Badge.css.js +1 -1
- package/dist/generated/themes/Badge.css.js.map +1 -1
- package/dist/generated/themes/BusyIndicator.css.d.ts +2 -0
- package/dist/generated/themes/BusyIndicator.css.js +8 -0
- package/dist/generated/themes/BusyIndicator.css.js.map +1 -0
- package/dist/generated/themes/Button.css.d.ts +1 -1
- package/dist/generated/themes/Button.css.js +1 -1
- package/dist/generated/themes/Button.css.js.map +1 -1
- package/dist/generated/themes/Carousel.css.d.ts +1 -1
- package/dist/generated/themes/Carousel.css.js +1 -1
- package/dist/generated/themes/Carousel.css.js.map +1 -1
- package/dist/generated/themes/Divider.css.d.ts +1 -1
- package/dist/generated/themes/Divider.css.js +1 -1
- package/dist/generated/themes/Divider.css.js.map +1 -1
- package/dist/generated/themes/Dropdown.css.d.ts +1 -1
- package/dist/generated/themes/Dropdown.css.js +1 -1
- package/dist/generated/themes/Dropdown.css.js.map +1 -1
- package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
- package/dist/generated/themes/FilterMenu.css.js +1 -1
- package/dist/generated/themes/FilterMenu.css.js.map +1 -1
- package/dist/generated/themes/Footer.css.d.ts +1 -1
- package/dist/generated/themes/Footer.css.js +1 -1
- package/dist/generated/themes/Footer.css.js.map +1 -1
- package/dist/generated/themes/ImageGridTableItem.css.d.ts +1 -1
- package/dist/generated/themes/ImageGridTableItem.css.js +1 -1
- package/dist/generated/themes/ImageGridTableItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.d.ts +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.d.ts +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js.map +1 -1
- package/dist/generated/themes/ProgressBar.css.d.ts +1 -1
- package/dist/generated/themes/ProgressBar.css.js +1 -1
- package/dist/generated/themes/ProgressBar.css.js.map +1 -1
- package/dist/generated/themes/PromoTile.css.d.ts +1 -1
- package/dist/generated/themes/PromoTile.css.js +1 -1
- package/dist/generated/themes/PromoTile.css.js.map +1 -1
- package/dist/generated/themes/Review.css.d.ts +1 -1
- package/dist/generated/themes/Review.css.js +1 -1
- package/dist/generated/themes/Review.css.js.map +1 -1
- package/dist/generated/themes/ReviewItem.css.d.ts +1 -1
- package/dist/generated/themes/ReviewItem.css.js +1 -1
- package/dist/generated/themes/ReviewItem.css.js.map +1 -1
- package/dist/generated/themes/Search.css.d.ts +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/SelectBase.css.d.ts +1 -1
- package/dist/generated/themes/SelectBase.css.js +1 -1
- package/dist/generated/themes/SelectBase.css.js.map +1 -1
- package/dist/generated/themes/SelectBox.css.d.ts +1 -1
- package/dist/generated/themes/SelectBox.css.js +1 -1
- package/dist/generated/themes/SelectBox.css.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigation.css.js +1 -1
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js +1 -1
- package/dist/generated/themes/SideNavigationGroup.css.js.map +1 -1
- package/dist/generated/themes/SocialMediaButton.css.d.ts +1 -1
- package/dist/generated/themes/SocialMediaButton.css.js +1 -1
- package/dist/generated/themes/SocialMediaButton.css.js.map +1 -1
- package/dist/generated/themes/StepInput.css.d.ts +1 -1
- package/dist/generated/themes/StepInput.css.js +1 -1
- package/dist/generated/themes/StepInput.css.js.map +1 -1
- package/dist/generated/themes/Switch.css.d.ts +1 -1
- package/dist/generated/themes/Switch.css.js +1 -1
- package/dist/generated/themes/Switch.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Table.css.d.ts +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCell.css.d.ts +1 -1
- package/dist/generated/themes/TableCell.css.js +1 -1
- package/dist/generated/themes/TableCell.css.js.map +1 -1
- package/dist/generated/themes/TableGroupRow.css.d.ts +1 -1
- package/dist/generated/themes/TableGroupRow.css.js +1 -1
- package/dist/generated/themes/TableGroupRow.css.js.map +1 -1
- package/dist/generated/themes/TableHeaderCell.css.d.ts +1 -1
- package/dist/generated/themes/TableHeaderCell.css.js +1 -1
- package/dist/generated/themes/TableHeaderCell.css.js.map +1 -1
- package/dist/generated/themes/Tag.css.d.ts +1 -1
- package/dist/generated/themes/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/TagGroup.css.d.ts +1 -1
- package/dist/generated/themes/TagGroup.css.js +1 -1
- package/dist/generated/themes/TagGroup.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.d.ts +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.d.ts +1 -1
- package/dist/generated/themes/TextField.css.js +1 -1
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/generated/themes/Toast.css.d.ts +1 -1
- package/dist/generated/themes/Toast.css.js +1 -1
- package/dist/generated/themes/Toast.css.js.map +1 -1
- package/dist/messagebundle.properties +3 -0
- package/dist/messagebundle_ar.properties +99 -0
- package/dist/messagebundle_en.properties +2 -0
- package/dist/messagebundle_no.properties +126 -1
- package/dist/messagebundle_pl.properties +134 -1
- package/dist/messagebundle_pt_PT.properties +126 -1
- package/dist/vscode.html-custom-data.json +92 -12
- package/dist/web-types.json +233 -27
- package/package.json +1 -1
- package/src/AccordionSpotlight.ts +321 -0
- package/src/AccordionSpotlightItem.ts +117 -0
- package/src/AccordionSpotlightItemTemplate.tsx +7 -0
- package/src/AccordionSpotlightTemplate.tsx +107 -0
- package/src/BusyIndicator.ts +17 -2
- package/src/Carousel.ts +243 -34
- package/src/CarouselTemplate.tsx +66 -27
- package/src/DatePicker.ts +9 -0
- package/src/DatePickerTemplate.tsx +2 -1
- package/src/FilterMenu.ts +25 -4
- package/src/FilterMenuTemplate.tsx +1 -1
- package/src/List.ts +23 -11
- package/src/ListGroupHeader.hbs +11 -10
- package/src/ListGroupHeader.ts +5 -1
- package/src/ListGroupHeaderBase.ts +48 -0
- package/src/ListItem.hbs +5 -1
- package/src/ListItem.ts +36 -0
- package/src/MediaPlayer.ts +11 -0
- package/src/PromoTile.ts +1 -1
- package/src/SearchableListBase.ts +24 -7
- package/src/SearchableListBaseTemplate.tsx +5 -2
- package/src/SelectBase.ts +58 -3
- package/src/SelectBoxTemplate.tsx +1 -0
- package/src/TabNavigation.ts +6 -0
- package/src/Tag.ts +3 -2
- package/src/TagTemplate.tsx +2 -0
- package/src/TextField.ts +26 -1
- package/src/TextFieldTemplate.tsx +1 -0
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +24 -21
- package/src/generated/templates/ListItemTemplate.lit.ts +2 -2
- package/src/generated/themes/Accordion.css.ts +1 -1
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/AccordionSpotlight.css.ts +9 -0
- package/src/generated/themes/AccordionSpotlightItem.css.ts +9 -0
- package/src/generated/themes/Badge.css.ts +1 -1
- package/src/generated/themes/BusyIndicator.css.ts +9 -0
- package/src/generated/themes/Button.css.ts +1 -1
- package/src/generated/themes/Carousel.css.ts +1 -1
- package/src/generated/themes/Divider.css.ts +1 -1
- package/src/generated/themes/Dropdown.css.ts +1 -1
- package/src/generated/themes/FilterMenu.css.ts +1 -1
- package/src/generated/themes/Footer.css.ts +1 -1
- package/src/generated/themes/ImageGridTableItem.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/PhoneNumberField.css.ts +1 -1
- package/src/generated/themes/ProgressBar.css.ts +1 -1
- package/src/generated/themes/PromoTile.css.ts +1 -1
- package/src/generated/themes/Review.css.ts +1 -1
- package/src/generated/themes/ReviewItem.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/SelectBase.css.ts +1 -1
- package/src/generated/themes/SelectBox.css.ts +1 -1
- package/src/generated/themes/SideNavigation.css.ts +1 -1
- package/src/generated/themes/SideNavigationGroup.css.ts +1 -1
- package/src/generated/themes/SocialMediaButton.css.ts +1 -1
- package/src/generated/themes/StepInput.css.ts +1 -1
- package/src/generated/themes/Switch.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/generated/themes/Table.css.ts +1 -1
- package/src/generated/themes/TableCell.css.ts +1 -1
- package/src/generated/themes/TableGroupRow.css.ts +1 -1
- package/src/generated/themes/TableHeaderCell.css.ts +1 -1
- package/src/generated/themes/Tag.css.ts +1 -1
- package/src/generated/themes/TagGroup.css.ts +1 -1
- package/src/generated/themes/TextArea.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/generated/themes/Toast.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_ar.properties +99 -0
- package/src/i18n/messagebundle_en.properties +2 -0
- package/src/i18n/messagebundle_no.properties +126 -1
- package/src/i18n/messagebundle_pl.properties +134 -1
- package/src/i18n/messagebundle_pt_PT.properties +126 -1
- package/src/themes/Accordion.css +1 -1
- package/src/themes/AccordionItem.css +4 -4
- package/src/themes/AccordionSpotlight.css +264 -0
- package/src/themes/AccordionSpotlightItem.css +3 -0
- package/src/themes/Badge.css +7 -7
- package/src/themes/BusyIndicator.css +24 -0
- package/src/themes/Button.css +57 -57
- package/src/themes/Carousel.css +20 -8
- package/src/themes/Divider.css +1 -1
- package/src/themes/Dropdown.css +1 -1
- package/src/themes/FilterMenu.css +2 -2
- package/src/themes/Footer.css +1 -1
- package/src/themes/ImageGridTableItem.css +1 -1
- package/src/themes/MastheadItem.css +7 -4
- package/src/themes/MastheadProfileMenu.css +0 -13
- package/src/themes/MastheadShell.css +2 -2
- package/src/themes/MediaPlayer.css +5 -34
- package/src/themes/PhoneNumberField.css +6 -6
- package/src/themes/ProgressBar.css +4 -0
- package/src/themes/PromoTile.css +4 -4
- package/src/themes/Review.css +2 -2
- package/src/themes/ReviewItem.css +2 -2
- package/src/themes/Search.css +5 -5
- package/src/themes/SelectBase.css +14 -14
- package/src/themes/SelectBox.css +1 -1
- package/src/themes/SideNavigation.css +1 -1
- package/src/themes/SideNavigationGroup.css +1 -1
- package/src/themes/SocialMediaButton.css +2 -2
- package/src/themes/StepInput.css +8 -8
- package/src/themes/Switch.css +9 -9
- package/src/themes/TabNavigation.css +1 -1
- package/src/themes/Table.css +1 -1
- package/src/themes/TableCell.css +3 -3
- package/src/themes/TableGroupRow.css +1 -1
- package/src/themes/TableHeaderCell.css +3 -4
- package/src/themes/Tag.css +28 -4
- package/src/themes/TagGroup.css +1 -0
- package/src/themes/TextArea.css +4 -4
- package/src/themes/TextField.css +13 -13
- package/src/themes/Toast.css +1 -1
- package/dist/assets/messagebundle_ar-BNhVFt1-.js +0 -1
- package/dist/assets/messagebundle_en-BZqDcZHN.js +0 -1
- package/dist/assets/messagebundle_no-BIUfmTWJ.js +0 -1
- package/dist/assets/messagebundle_pl-BmaELnDD.js +0 -1
- package/dist/assets/messagebundle_pt_PT-DcVh6BH6.js +0 -1
|
@@ -704,18 +704,21 @@ describe("SelectBox", () => {
|
|
|
704
704
|
|
|
705
705
|
cy.get("#select-box").shadow()
|
|
706
706
|
.find("udex-list-item").eq(0)
|
|
707
|
+
.shadow().find("[part=item]")
|
|
707
708
|
.should("be.focused");
|
|
708
709
|
|
|
709
710
|
cy.realPress("ArrowDown");
|
|
710
711
|
|
|
711
712
|
cy.get("#select-box").shadow()
|
|
712
713
|
.find("udex-list-item").eq(1)
|
|
714
|
+
.shadow().find("[part=item]")
|
|
713
715
|
.should("be.focused");
|
|
714
716
|
|
|
715
717
|
cy.realPress("ArrowUp");
|
|
716
718
|
|
|
717
719
|
cy.get("#select-box").shadow()
|
|
718
720
|
.find("udex-list-item").eq(0)
|
|
721
|
+
.shadow().find("[part=item]")
|
|
719
722
|
.should("be.focused");
|
|
720
723
|
});
|
|
721
724
|
|
|
@@ -727,34 +730,88 @@ describe("SelectBox", () => {
|
|
|
727
730
|
|
|
728
731
|
cy.get("#select-box").shadow()
|
|
729
732
|
.find("udex-list-group-header").shadow()
|
|
730
|
-
.find(".udex-list__group-header-wrap")
|
|
733
|
+
.find(".udex-list__group-header-wrap").shadow()
|
|
734
|
+
.find("[part=item]")
|
|
731
735
|
.should("be.focused");
|
|
732
736
|
|
|
733
737
|
cy.realPress("ArrowDown");
|
|
734
738
|
|
|
735
739
|
cy.get("#select-box").shadow()
|
|
736
740
|
.find("udex-list-item").eq(0)
|
|
741
|
+
.shadow().find("[part=item]")
|
|
737
742
|
.should("be.focused");
|
|
738
743
|
|
|
739
744
|
cy.realPress("ArrowDown");
|
|
740
745
|
|
|
741
746
|
cy.get("#select-box").shadow()
|
|
742
747
|
.find("udex-list-item").eq(1)
|
|
748
|
+
.shadow().find("[part=item]")
|
|
743
749
|
.should("be.focused");
|
|
744
750
|
|
|
745
751
|
cy.realPress("ArrowUp");
|
|
746
752
|
|
|
747
753
|
cy.get("#select-box").shadow()
|
|
748
754
|
.find("udex-list-item").eq(0)
|
|
755
|
+
.shadow().find("[part=item]")
|
|
749
756
|
.should("be.focused");
|
|
750
757
|
|
|
751
758
|
cy.realPress("ArrowUp");
|
|
752
759
|
|
|
753
760
|
cy.get("#select-box").shadow()
|
|
754
761
|
.find("udex-list-group-header").shadow()
|
|
755
|
-
.find(".udex-list__group-header-wrap")
|
|
762
|
+
.find(".udex-list__group-header-wrap").shadow()
|
|
763
|
+
.find("[part=item]")
|
|
756
764
|
.should("be.focused");
|
|
757
765
|
});
|
|
766
|
+
|
|
767
|
+
it("MultiSelect mode - Left arrow collapses a collapsible group header, Right arrow expands it", () => {
|
|
768
|
+
cy.mount(groupHeaderCollapsible);
|
|
769
|
+
|
|
770
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
771
|
+
cy.realPress("ArrowDown");
|
|
772
|
+
|
|
773
|
+
// Focus the collapsible group header wrapper.
|
|
774
|
+
cy.get("#select-box").shadow()
|
|
775
|
+
.find("udex-list-group-header").shadow()
|
|
776
|
+
.find(".udex-list__group-header-wrap").shadow()
|
|
777
|
+
.find("[part=item]")
|
|
778
|
+
.should("be.focused");
|
|
779
|
+
|
|
780
|
+
// Fixture starts expanded: neither the header host nor its children are collapsed.
|
|
781
|
+
cy.get("#select-box").shadow()
|
|
782
|
+
.find("udex-list-group-header")
|
|
783
|
+
.should("not.have.attr", "collapsed");
|
|
784
|
+
cy.get("#select-box").shadow()
|
|
785
|
+
.find("udex-list-item")
|
|
786
|
+
.should("have.length", 2)
|
|
787
|
+
.each($item => {
|
|
788
|
+
cy.wrap($item).should("not.have.attr", "collapsed");
|
|
789
|
+
});
|
|
790
|
+
|
|
791
|
+
// Left arrow collapses the group.
|
|
792
|
+
cy.realPress("ArrowLeft");
|
|
793
|
+
|
|
794
|
+
cy.get("#select-box").shadow()
|
|
795
|
+
.find("udex-list-group-header")
|
|
796
|
+
.should("have.attr", "collapsed");
|
|
797
|
+
cy.get("#select-box").shadow()
|
|
798
|
+
.find("udex-list-item")
|
|
799
|
+
.each($item => {
|
|
800
|
+
cy.wrap($item).should("have.attr", "collapsed");
|
|
801
|
+
});
|
|
802
|
+
|
|
803
|
+
// Right arrow expands the group again.
|
|
804
|
+
cy.realPress("ArrowRight");
|
|
805
|
+
|
|
806
|
+
cy.get("#select-box").shadow()
|
|
807
|
+
.find("udex-list-group-header")
|
|
808
|
+
.should("not.have.attr", "collapsed");
|
|
809
|
+
cy.get("#select-box").shadow()
|
|
810
|
+
.find("udex-list-item")
|
|
811
|
+
.each($item => {
|
|
812
|
+
cy.wrap($item).should("not.have.attr", "collapsed");
|
|
813
|
+
});
|
|
814
|
+
});
|
|
758
815
|
});
|
|
759
816
|
|
|
760
817
|
describe("Select Box focus tests", () => {
|
|
@@ -1488,6 +1545,7 @@ describe("SelectBox", () => {
|
|
|
1488
1545
|
cy.get("#select-box").shadow()
|
|
1489
1546
|
.find("udex-list-item")
|
|
1490
1547
|
.last()
|
|
1548
|
+
.shadow().find("[part=item]")
|
|
1491
1549
|
.should("be.focused");
|
|
1492
1550
|
});
|
|
1493
1551
|
|
|
@@ -1508,7 +1566,8 @@ describe("SelectBox", () => {
|
|
|
1508
1566
|
|
|
1509
1567
|
// A list item should now be focused (not the search input).
|
|
1510
1568
|
cy.get("#select-box").shadow()
|
|
1511
|
-
.find("udex-list-item").eq(0)
|
|
1569
|
+
.find("udex-list-item").eq(0).shadow()
|
|
1570
|
+
.find("[part=item]")
|
|
1512
1571
|
.should("be.focused");
|
|
1513
1572
|
|
|
1514
1573
|
// Tab should be intercepted and focus redirected into the footer.
|
|
@@ -1883,6 +1942,7 @@ describe("SelectBox", () => {
|
|
|
1883
1942
|
|
|
1884
1943
|
cy.get("#select-box").shadow()
|
|
1885
1944
|
.find("udex-list-item").eq(0)
|
|
1945
|
+
.shadow().find("[part=item]")
|
|
1886
1946
|
.should("be.focused");
|
|
1887
1947
|
});
|
|
1888
1948
|
|
|
@@ -1895,6 +1955,7 @@ describe("SelectBox", () => {
|
|
|
1895
1955
|
|
|
1896
1956
|
cy.get("#select-box").shadow()
|
|
1897
1957
|
.find("udex-list-item").eq(1)
|
|
1958
|
+
.shadow().find("[part=item]")
|
|
1898
1959
|
.should("be.focused");
|
|
1899
1960
|
});
|
|
1900
1961
|
|
|
@@ -1907,6 +1968,7 @@ describe("SelectBox", () => {
|
|
|
1907
1968
|
|
|
1908
1969
|
cy.get("#select-box").shadow()
|
|
1909
1970
|
.find("udex-list-item").last()
|
|
1971
|
+
.shadow().find("[part=item]")
|
|
1910
1972
|
.should("be.focused");
|
|
1911
1973
|
});
|
|
1912
1974
|
|
|
@@ -1920,6 +1982,7 @@ describe("SelectBox", () => {
|
|
|
1920
1982
|
|
|
1921
1983
|
cy.get("#select-box").shadow()
|
|
1922
1984
|
.find("udex-list-item").eq(1)
|
|
1985
|
+
.shadow().find("[part=item]")
|
|
1923
1986
|
.should("be.focused");
|
|
1924
1987
|
});
|
|
1925
1988
|
|
|
@@ -2304,4 +2367,72 @@ describe("SelectBox", () => {
|
|
|
2304
2367
|
.should("be.greaterThan", 0);
|
|
2305
2368
|
});
|
|
2306
2369
|
});
|
|
2370
|
+
|
|
2371
|
+
// Added: regression coverage for the WCAG 4.1.2 Treeview Checkbox pattern
|
|
2372
|
+
// in SearchableListBase. SelectBox sets defaultAccessibleRole = "listbox",
|
|
2373
|
+
// so it must NOT switch to the tree pattern even in MultiSelect + groups.
|
|
2374
|
+
describe("Tree accessibility pattern regression", () => {
|
|
2375
|
+
const selectBoxMultiSelectGroup = <div style="width: 350px; position:relative;">
|
|
2376
|
+
<UDExSelectBox
|
|
2377
|
+
id="select-box-tree-regression"
|
|
2378
|
+
mode={UDExListMode.MultiSelect}
|
|
2379
|
+
label="Programming languages">
|
|
2380
|
+
<UDExSelectBoxGroupHeader label="Programming Languages">
|
|
2381
|
+
<UDExSelectBoxItem label="JavaScript"></UDExSelectBoxItem>
|
|
2382
|
+
<UDExSelectBoxItem label="Python"></UDExSelectBoxItem>
|
|
2383
|
+
</UDExSelectBoxGroupHeader>
|
|
2384
|
+
</UDExSelectBox>
|
|
2385
|
+
</div>;
|
|
2386
|
+
|
|
2387
|
+
beforeEach(() => {
|
|
2388
|
+
cy.mount(selectBoxMultiSelectGroup);
|
|
2389
|
+
cy.get("#select-box-tree-regression").shadow()
|
|
2390
|
+
.find(".udex-text-field__trigger").click();
|
|
2391
|
+
});
|
|
2392
|
+
|
|
2393
|
+
it("host [udex-list] has NO aria-multiselectable attribute", () => {
|
|
2394
|
+
cy.get("#select-box-tree-regression").shadow()
|
|
2395
|
+
.find("[udex-list]").should("not.have.attr", "aria-multiselectable");
|
|
2396
|
+
});
|
|
2397
|
+
|
|
2398
|
+
// Updated: `accessibleRoleForList` no longer collapses to `"group"` for grouped
|
|
2399
|
+
// non-tree mode — it now returns `defaultAccessibleRole` (`"listbox"` for SelectBox)
|
|
2400
|
+
// in every non-tree case. This aligns with the test's original intent (title says
|
|
2401
|
+
// "keeps role=\"listbox\""); the prior `role="group"` assertion was already stale.
|
|
2402
|
+
it("inner list div keeps role=\"listbox\" (not \"tree\")", () => {
|
|
2403
|
+
cy.get("#select-box-tree-regression").shadow()
|
|
2404
|
+
.find("[udex-list]").shadow()
|
|
2405
|
+
.find("#udex-list").should("have.attr", "role", "listbox");
|
|
2406
|
+
});
|
|
2407
|
+
|
|
2408
|
+
// Updated: `accessibleRole` string property on udex-list-group-header was replaced
|
|
2409
|
+
// by a `_treeMode` boolean (reflected as the `_tree-mode` attribute). SelectBox is
|
|
2410
|
+
// not tree-capable so the boolean must stay false and the attribute must be absent.
|
|
2411
|
+
it("group header host has NO _tree-mode attribute", () => {
|
|
2412
|
+
cy.get("#select-box-tree-regression").shadow()
|
|
2413
|
+
.find("udex-list-group-header")
|
|
2414
|
+
.should("not.have.attr", "_tree-mode");
|
|
2415
|
+
});
|
|
2416
|
+
|
|
2417
|
+
it("child items have role=\"option\", not \"treeitem\"", () => {
|
|
2418
|
+
cy.get("#select-box-tree-regression").shadow()
|
|
2419
|
+
.find("udex-list-group-header")
|
|
2420
|
+
.find("udex-list-item").eq(0).shadow()
|
|
2421
|
+
.find("[part=item]").should("have.attr", "role", "option");
|
|
2422
|
+
});
|
|
2423
|
+
|
|
2424
|
+
it("child items have NO aria-checked (roleItem !== treeitem)", () => {
|
|
2425
|
+
cy.get("#select-box-tree-regression").shadow()
|
|
2426
|
+
.find("udex-list-group-header")
|
|
2427
|
+
.find("udex-list-item").eq(0).shadow()
|
|
2428
|
+
.find("[part=item]").should("not.have.attr", "aria-checked");
|
|
2429
|
+
});
|
|
2430
|
+
|
|
2431
|
+
it("child items' checkbox is NOT aria-hidden (JAWS double-announce guard only applies to tree)", () => {
|
|
2432
|
+
cy.get("#select-box-tree-regression").shadow()
|
|
2433
|
+
.find("udex-list-group-header")
|
|
2434
|
+
.find("udex-list-item").eq(0).shadow()
|
|
2435
|
+
.find("udex-checkbox").should("not.have.attr", "aria-hidden");
|
|
2436
|
+
});
|
|
2437
|
+
});
|
|
2307
2438
|
});
|
package/cypress/specs/Tag.cy.tsx
CHANGED
|
@@ -10,10 +10,11 @@ const outlineTag =<UDExTag id="tag-outlined" text="Outlined" design="Outlined"><
|
|
|
10
10
|
const iconTag = <UDExTag id="tag-icon" text="Tag text" icon="decline"></UDExTag>
|
|
11
11
|
const startIconTag = <UDExTag id="tag-icon-start" text="Tag text" icon="decline" iconPlacement="Start"></UDExTag>
|
|
12
12
|
const readonlyTag = <UDExTag id="tag-readonly" text="Tag text" icon="accept" readOnly></UDExTag>
|
|
13
|
+
const readonlyNoIconTag = <UDExTag id="tag-readonly-no-icon" text="Tag text" readOnly></UDExTag>
|
|
13
14
|
const nonselectableTag = <UDExTag id="tag-nonselectable" text="Non selectable" non-selectable></UDExTag>
|
|
14
15
|
const nonselectableIconTag = <UDExTag id="tag-nonselectable-icon" text="Non selectable" icon="decline" non-selectable></UDExTag>
|
|
15
16
|
const linkTag = <UDExTag id="tag-link" text="SAP home page" href="https://sap.com"></UDExTag>
|
|
16
|
-
const nonInteractiveTag = <UDExTag id="tag-
|
|
17
|
+
const nonInteractiveTag = <UDExTag id="tag-noninteractive" text="Non selectable" icon="decline" non-interactive></UDExTag>
|
|
17
18
|
|
|
18
19
|
describe("Tag", () => {
|
|
19
20
|
it("is rendered", () => {
|
|
@@ -118,8 +119,38 @@ describe("Tag", () => {
|
|
|
118
119
|
|
|
119
120
|
it("icon is not focusable when non-interactive attribute is set", () => {
|
|
120
121
|
cy.mount(nonInteractiveTag)
|
|
121
|
-
cy.get("#tag-
|
|
122
|
-
});
|
|
122
|
+
cy.get("#tag-noninteractive").shadow().find(".udex-tag__icon").should("have.attr", "mode", "Decorative")
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it("non-interactive tag renders with udex-tag--noninteractive class", () => {
|
|
126
|
+
cy.mount(nonInteractiveTag)
|
|
127
|
+
cy.get("#tag-noninteractive").shadow().find(".udex-tag--noninteractive").should("be.visible")
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
it("non-interactive tag icon has no wrapping button", () => {
|
|
131
|
+
cy.mount(nonInteractiveTag)
|
|
132
|
+
cy.get("#tag-noninteractive").shadow().find(".udex-tag__btn-icon").should("not.exist")
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
it("readonly tag renders the icon inside shadow DOM", () => {
|
|
136
|
+
cy.mount(readonlyTag)
|
|
137
|
+
cy.get("#tag-readonly").shadow().find(".udex-tag__icon").should("be.visible")
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
it("readonly tag icon has no wrapping button", () => {
|
|
141
|
+
cy.mount(readonlyTag)
|
|
142
|
+
cy.get("#tag-readonly").shadow().find(".udex-tag__btn-icon").should("not.exist")
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it("readonly tag icon is non-interactive (decorative)", () => {
|
|
146
|
+
cy.mount(readonlyTag)
|
|
147
|
+
cy.get("#tag-readonly").shadow().find(".udex-tag__icon").should("have.attr", "mode", "Decorative")
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it("readonly tag without icon renders no icon", () => {
|
|
151
|
+
cy.mount(readonlyNoIconTag)
|
|
152
|
+
cy.get("#tag-readonly-no-icon").shadow().find(".udex-tag__icon").should("not.exist")
|
|
153
|
+
});
|
|
123
154
|
|
|
124
155
|
it("tests if tag with link is correctly rendered", () => {
|
|
125
156
|
cy.mount(linkTag)
|
|
@@ -262,6 +262,74 @@ describe("Text Field", () => {
|
|
|
262
262
|
});
|
|
263
263
|
});
|
|
264
264
|
|
|
265
|
+
describe("icon accessibility attributes (a11y)", () => {
|
|
266
|
+
// Updated: the accessibility fix now uses two private string properties on TextField —
|
|
267
|
+
// `_iconAriaHasPopup` and `_iconAriaExpanded` (both @property type String, reflected as the
|
|
268
|
+
// kebab attributes `_icon-aria-has-popup` / `_icon-aria-expanded`). The `iconAccessibilityAttributes`
|
|
269
|
+
// getter assembles a ButtonAccessibilityAttributes object from them (returning undefined when both
|
|
270
|
+
// are unset) and forwards it to the internal UDExControlButton via `accessibilityAttributes`, so
|
|
271
|
+
// aria-haspopup / aria-expanded land on the icon *button* (its shadow `.ui5-button-root`), not the input.
|
|
272
|
+
// The previous object-based `_iconAccessibilityAttributes` approach no longer exists.
|
|
273
|
+
// Traversal to the button root:
|
|
274
|
+
// [udex-text-field] -> shadow -> [udex-control-button] -> shadow -> .ui5-button-root
|
|
275
|
+
|
|
276
|
+
const controlButtonRoot = (id: string) =>
|
|
277
|
+
cy
|
|
278
|
+
.get(`#${id}`)
|
|
279
|
+
.shadow()
|
|
280
|
+
.find("[udex-control-button]")
|
|
281
|
+
.shadow()
|
|
282
|
+
.find(".ui5-button-root");
|
|
283
|
+
|
|
284
|
+
it("does NOT render aria-haspopup on the native input", () => {
|
|
285
|
+
// The input's aria-haspopup is driven only by `_ariaHasPopup`, which is unset here.
|
|
286
|
+
cy.mount(<UDExTextField id="noHasPopupTextField" icon="appointment-2"></UDExTextField>);
|
|
287
|
+
cy.get("#noHasPopupTextField").shadow().find("input").should("not.have.attr", "aria-haspopup");
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
it("does not forward accessibilityAttributes when neither string prop is set", () => {
|
|
291
|
+
// getter returns undefined => the control button renders no aria-haspopup / aria-expanded.
|
|
292
|
+
cy.mount(<UDExTextField id="noIconA11yTextField" icon="appointment-2"></UDExTextField>);
|
|
293
|
+
controlButtonRoot("noIconA11yTextField").should("not.have.attr", "aria-haspopup");
|
|
294
|
+
controlButtonRoot("noIconA11yTextField").should("not.have.attr", "aria-expanded");
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
it("forwards _iconAriaHasPopup / _iconAriaExpanded to the control button (aria-haspopup / aria-expanded)", () => {
|
|
298
|
+
// Both string props supplied as the reflected kebab attributes on the host.
|
|
299
|
+
cy.mount(
|
|
300
|
+
<UDExTextField
|
|
301
|
+
id="iconA11yTextField"
|
|
302
|
+
icon="appointment-2"
|
|
303
|
+
_icon-aria-has-popup="grid"
|
|
304
|
+
_icon-aria-expanded="false"
|
|
305
|
+
></UDExTextField>,
|
|
306
|
+
);
|
|
307
|
+
|
|
308
|
+
controlButtonRoot("iconA11yTextField").should("have.attr", "aria-haspopup", "grid");
|
|
309
|
+
controlButtonRoot("iconA11yTextField").should("have.attr", "aria-expanded", "false");
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
it("reflects an updated expanded value onto the control button", () => {
|
|
313
|
+
cy.mount(
|
|
314
|
+
<UDExTextField
|
|
315
|
+
id="iconExpandedTextField"
|
|
316
|
+
icon="appointment-2"
|
|
317
|
+
_icon-aria-has-popup="grid"
|
|
318
|
+
_icon-aria-expanded="false"
|
|
319
|
+
></UDExTextField>,
|
|
320
|
+
);
|
|
321
|
+
|
|
322
|
+
controlButtonRoot("iconExpandedTextField").should("have.attr", "aria-expanded", "false");
|
|
323
|
+
|
|
324
|
+
// Flip the reactive string property; the getter re-derives and the button re-renders.
|
|
325
|
+
cy.get("#iconExpandedTextField").then($el => {
|
|
326
|
+
($el[0] as unknown as { _iconAriaExpanded: string })._iconAriaExpanded = "true";
|
|
327
|
+
});
|
|
328
|
+
|
|
329
|
+
controlButtonRoot("iconExpandedTextField").should("have.attr", "aria-expanded", "true");
|
|
330
|
+
});
|
|
331
|
+
});
|
|
332
|
+
|
|
265
333
|
describe("with the type Number", () => {
|
|
266
334
|
beforeEach( () => {
|
|
267
335
|
cy.mount(numberTextField)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import UDExAccordion from "../../instrumented/Accordion.js";
|
|
2
2
|
import UDExAccordionItem from "../../instrumented/AccordionItem.js";
|
|
3
|
+
import UDExAccordionSpotlight from "../../instrumented/AccordionSpotlight.js";
|
|
4
|
+
import UDExAccordionSpotlightItem from "../../instrumented/AccordionSpotlightItem.js";
|
|
3
5
|
import UDExAvatar from "../../instrumented/Avatar.js";
|
|
4
6
|
import UDExAvatarGroup from "../../instrumented/AvatarGroup.js";
|
|
5
7
|
import UDExBadge from "../../instrumented/Badge.js";
|
|
@@ -7,6 +9,7 @@ import UDExBreadcrumbs from "../../instrumented/Breadcrumbs.js";
|
|
|
7
9
|
import UDExBreadcrumbsItem from "../../instrumented/BreadcrumbsItem.js";
|
|
8
10
|
import UDExBusyIndicator from "../../instrumented/BusyIndicator.js";
|
|
9
11
|
import UDExButton from "../../instrumented/Button.js";
|
|
12
|
+
import UDExCarousel from "../../instrumented/Carousel.js";
|
|
10
13
|
import UDExCheckbox from "../../instrumented/Checkbox.js";
|
|
11
14
|
import UDExContact from "../../instrumented/Contact.js";
|
|
12
15
|
import UDExContactItem from "../../instrumented/ContactItem.js";
|
|
@@ -89,6 +92,8 @@ import UDExWizardStep from "../../instrumented/WizardStep.js";
|
|
|
89
92
|
export {
|
|
90
93
|
UDExAccordion,
|
|
91
94
|
UDExAccordionItem,
|
|
95
|
+
UDExAccordionSpotlight,
|
|
96
|
+
UDExAccordionSpotlightItem,
|
|
92
97
|
UDExAvatar,
|
|
93
98
|
UDExAvatarGroup,
|
|
94
99
|
UDExBadge,
|
|
@@ -96,6 +101,7 @@ export {
|
|
|
96
101
|
UDExBreadcrumbsItem,
|
|
97
102
|
UDExBusyIndicator,
|
|
98
103
|
UDExButton,
|
|
104
|
+
UDExCarousel,
|
|
99
105
|
UDExCheckbox,
|
|
100
106
|
UDExContact,
|
|
101
107
|
UDExContactItem,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import UDExAccordion from "../../src/Accordion.js";
|
|
2
2
|
import UDExAccordionItem from "../../src/AccordionItem.js";
|
|
3
|
+
import UDExAccordionSpotlight from "../../src/AccordionSpotlight.js";
|
|
4
|
+
import UDExAccordionSpotlightItem from "../../src/AccordionSpotlightItem.js";
|
|
3
5
|
import UDExAvatar from "../../src/Avatar.js";
|
|
4
6
|
import UDExAvatarGroup from "../../src/AvatarGroup.js";
|
|
5
7
|
import UDExBadge from "../../src/Badge.js";
|
|
@@ -7,6 +9,7 @@ import UDExBreadcrumbs from "../../src/Breadcrumbs.js";
|
|
|
7
9
|
import UDExBreadcrumbsItem from "../../src/BreadcrumbsItem.js";
|
|
8
10
|
import UDExBusyIndicator from "../../src/BusyIndicator.js";
|
|
9
11
|
import UDExButton from "../../src/Button.js";
|
|
12
|
+
import UDExCarousel from "../../src/Carousel.js";
|
|
10
13
|
import UDExCheckbox from "../../src/Checkbox.js";
|
|
11
14
|
import UDExContact from "../../src/Contact.js";
|
|
12
15
|
import UDExContactItem from "../../src/ContactItem.js";
|
|
@@ -89,6 +92,8 @@ import UDExWizardStep from "../../src/WizardStep.js";
|
|
|
89
92
|
export {
|
|
90
93
|
UDExAccordion,
|
|
91
94
|
UDExAccordionItem,
|
|
95
|
+
UDExAccordionSpotlight,
|
|
96
|
+
UDExAccordionSpotlightItem,
|
|
92
97
|
UDExAvatar,
|
|
93
98
|
UDExAvatarGroup,
|
|
94
99
|
UDExBadge,
|
|
@@ -96,6 +101,7 @@ export {
|
|
|
96
101
|
UDExBreadcrumbsItem,
|
|
97
102
|
UDExBusyIndicator,
|
|
98
103
|
UDExButton,
|
|
104
|
+
UDExCarousel,
|
|
99
105
|
UDExCheckbox,
|
|
100
106
|
UDExContact,
|
|
101
107
|
UDExContactItem,
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import type { DefaultSlot, Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
3
|
+
import AccordionSpotlightItem from "./AccordionSpotlightItem.js";
|
|
4
|
+
import "@ui5/webcomponents-icons/dist/play.js";
|
|
5
|
+
import "@ui5/webcomponents-icons/dist/pause.js";
|
|
6
|
+
import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
7
|
+
export declare enum UDExAccordionSpotlightVerticalAlignment {
|
|
8
|
+
Top = "Top",
|
|
9
|
+
Center = "Center"
|
|
10
|
+
}
|
|
11
|
+
export declare enum UDExAccordionSpotlightPlacement {
|
|
12
|
+
Start = "Start",
|
|
13
|
+
End = "End"
|
|
14
|
+
}
|
|
15
|
+
export declare enum UDExAccordionSpotlightMediaMode {
|
|
16
|
+
Dynamic = "Dynamic",
|
|
17
|
+
Static = "Static"
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @class
|
|
21
|
+
*
|
|
22
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
23
|
+
*
|
|
24
|
+
* Vertical accordion navigation with spotlight layout. Items are listed on the
|
|
25
|
+
* left; the expanded panel is displayed on the right (desktop) or inline below
|
|
26
|
+
* the heading (mobile). Follows the WAI-ARIA APG Accordion pattern.
|
|
27
|
+
*
|
|
28
|
+
* <h3>Usage</h3>
|
|
29
|
+
*
|
|
30
|
+
* For the <code>udex-accordion-spotlight</code>
|
|
31
|
+
* <h3>ES6 Module Import</h3>
|
|
32
|
+
*
|
|
33
|
+
* <code>import "@sapudex/web-components/dist/AccordionSpotlight.js";</code>
|
|
34
|
+
*
|
|
35
|
+
* @constructor
|
|
36
|
+
* @extends UI5Element
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
declare class UDExAccordionSpotlight extends UI5Element {
|
|
40
|
+
eventDetails: {
|
|
41
|
+
"item-click": {
|
|
42
|
+
item: AccordionSpotlightItem;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* The index of the currently expanded item (0-based).
|
|
47
|
+
* Derived from items' <code>selected</code> attribute; kept in sync by the parent.
|
|
48
|
+
*
|
|
49
|
+
* @private
|
|
50
|
+
*/
|
|
51
|
+
_selectedIndex: number;
|
|
52
|
+
/**
|
|
53
|
+
* Vertical alignment of the navigation sidebar relative to the content panel.
|
|
54
|
+
*
|
|
55
|
+
* @default "Top"
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
verticalAlignment: `${UDExAccordionSpotlightVerticalAlignment}`;
|
|
59
|
+
/**
|
|
60
|
+
* Placement of the navigation sidebar — "Start" (left) or "End" (right).
|
|
61
|
+
*
|
|
62
|
+
* @default "Start"
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
placement: `${UDExAccordionSpotlightPlacement}`;
|
|
66
|
+
/**
|
|
67
|
+
* Enables automatic cycling through items on an interval.
|
|
68
|
+
*
|
|
69
|
+
* @default false
|
|
70
|
+
* @public
|
|
71
|
+
*/
|
|
72
|
+
autoPlay: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Interval in milliseconds between automatic item advances. Applies only when autoPlay is enabled.
|
|
75
|
+
*
|
|
76
|
+
* @default 5000
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
79
|
+
autoPlayInterval: number;
|
|
80
|
+
/**
|
|
81
|
+
* Defines the width of the navigation panel.
|
|
82
|
+
*
|
|
83
|
+
* @default "auto"
|
|
84
|
+
* @public
|
|
85
|
+
*/
|
|
86
|
+
tabWidth: string;
|
|
87
|
+
/**
|
|
88
|
+
* Controls how the media area behaves. In <code>Static</code> mode a single
|
|
89
|
+
* persistent media element (image or video) is displayed alongside the nav
|
|
90
|
+
* list and never changes when items are expanded. In <code>Dynamic</code>
|
|
91
|
+
* mode (default) each item provides its own content panel.
|
|
92
|
+
*
|
|
93
|
+
* @default "Dynamic"
|
|
94
|
+
* @public
|
|
95
|
+
*/
|
|
96
|
+
mediaMode: `${UDExAccordionSpotlightMediaMode}`;
|
|
97
|
+
/**
|
|
98
|
+
* @private
|
|
99
|
+
*/
|
|
100
|
+
_isMobile: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* @private
|
|
103
|
+
*/
|
|
104
|
+
_isPaused: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* The slotted AccordionSpotlightItem elements.
|
|
107
|
+
*
|
|
108
|
+
* @public
|
|
109
|
+
*/
|
|
110
|
+
items: DefaultSlot<AccordionSpotlightItem>;
|
|
111
|
+
/**
|
|
112
|
+
* Defines optional content rendered below the navigation items.
|
|
113
|
+
* Use to place a button or any action element beneath the items.
|
|
114
|
+
*
|
|
115
|
+
* @slot footer
|
|
116
|
+
* @public
|
|
117
|
+
*/
|
|
118
|
+
footer: Slot<HTMLElement>;
|
|
119
|
+
/**
|
|
120
|
+
* Persistent media area shown in <code>Static</code> media mode.
|
|
121
|
+
* Place an <code><img></code> or <code><video></code> element here;
|
|
122
|
+
* it remains visible regardless of which item is currently expanded.
|
|
123
|
+
*
|
|
124
|
+
* @slot media
|
|
125
|
+
* @public
|
|
126
|
+
*/
|
|
127
|
+
media: Slot<HTMLElement>;
|
|
128
|
+
_handleResizeBound: ResizeObserverCallback;
|
|
129
|
+
_autoPlayTimer?: number;
|
|
130
|
+
constructor();
|
|
131
|
+
onBeforeRendering(): void;
|
|
132
|
+
onAfterRendering(): void;
|
|
133
|
+
onEnterDOM(): void;
|
|
134
|
+
onExitDOM(): void;
|
|
135
|
+
_handleResize(): void;
|
|
136
|
+
_checkMobile(): void;
|
|
137
|
+
_syncItemStates(): void;
|
|
138
|
+
_startAutoPlay(): void;
|
|
139
|
+
_stopAutoPlay(): void;
|
|
140
|
+
_advanceItem(): void;
|
|
141
|
+
onPlayButtonClick(): void;
|
|
142
|
+
handleNavItemClick(e: MouseEvent): void;
|
|
143
|
+
private _selectItem;
|
|
144
|
+
get playBtnIcon(): string;
|
|
145
|
+
get showFooterSlot(): boolean;
|
|
146
|
+
get isStaticMedia(): boolean;
|
|
147
|
+
get showMediaSlot(): boolean;
|
|
148
|
+
}
|
|
149
|
+
export default UDExAccordionSpotlight;
|