@fluentui/web-components 3.0.0-rc.14 → 3.0.0-rc.16
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/CHANGELOG.md +26 -2
- package/custom-elements.json +10963 -11559
- package/dist/esm/accordion/accordion.d.ts +4 -7
- package/dist/esm/accordion/accordion.definition.js +2 -2
- package/dist/esm/accordion/accordion.definition.js.map +1 -1
- package/dist/esm/accordion/accordion.js +4 -7
- package/dist/esm/accordion/accordion.js.map +1 -1
- package/dist/esm/accordion/accordion.options.d.ts +7 -1
- package/dist/esm/accordion/accordion.options.js +7 -0
- package/dist/esm/accordion/accordion.options.js.map +1 -1
- package/dist/esm/accordion/accordion.styles.js +1 -1
- package/dist/esm/accordion/accordion.styles.js.map +1 -1
- package/dist/esm/accordion/index.d.ts +1 -0
- package/dist/esm/accordion/index.js +1 -0
- package/dist/esm/accordion/index.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.base.d.ts +0 -8
- package/dist/esm/accordion-item/accordion-item.base.js +3 -12
- package/dist/esm/accordion-item/accordion-item.base.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.d.ts +2 -4
- package/dist/esm/accordion-item/accordion-item.definition.js +2 -2
- package/dist/esm/accordion-item/accordion-item.definition.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.js +1 -1
- package/dist/esm/accordion-item/accordion-item.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.options.d.ts +6 -0
- package/dist/esm/accordion-item/accordion-item.options.js +7 -0
- package/dist/esm/accordion-item/accordion-item.options.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.styles.js +1 -1
- package/dist/esm/accordion-item/accordion-item.styles.js.map +1 -1
- package/dist/esm/accordion-item/accordion-item.template.js +7 -7
- package/dist/esm/accordion-item/accordion-item.template.js.map +1 -1
- package/dist/esm/accordion-item/index.d.ts +1 -0
- package/dist/esm/accordion-item/index.js +1 -0
- package/dist/esm/accordion-item/index.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.base.d.ts +1 -1
- package/dist/esm/anchor-button/anchor-button.base.js +7 -7
- package/dist/esm/anchor-button/anchor-button.base.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.d.ts +1 -2
- package/dist/esm/anchor-button/anchor-button.definition.js +2 -2
- package/dist/esm/anchor-button/anchor-button.definition.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.js +1 -1
- package/dist/esm/anchor-button/anchor-button.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.options.d.ts +7 -1
- package/dist/esm/anchor-button/anchor-button.options.js +7 -0
- package/dist/esm/anchor-button/anchor-button.options.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.styles.js +4 -3
- package/dist/esm/anchor-button/anchor-button.styles.js.map +1 -1
- package/dist/esm/anchor-button/anchor-button.template.js +1 -1
- package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
- package/dist/esm/anchor-button/index.d.ts +1 -0
- package/dist/esm/anchor-button/index.js +1 -0
- package/dist/esm/anchor-button/index.js.map +1 -1
- package/dist/esm/avatar/avatar.definition.js +2 -2
- package/dist/esm/avatar/avatar.definition.js.map +1 -1
- package/dist/esm/avatar/avatar.options.d.ts +7 -1
- package/dist/esm/avatar/avatar.options.js +7 -0
- package/dist/esm/avatar/avatar.options.js.map +1 -1
- package/dist/esm/avatar/avatar.styles.js +1 -1
- package/dist/esm/avatar/avatar.styles.js.map +1 -1
- package/dist/esm/avatar/index.d.ts +1 -0
- package/dist/esm/avatar/index.js +1 -0
- package/dist/esm/avatar/index.js.map +1 -1
- package/dist/esm/badge/badge.d.ts +1 -1
- package/dist/esm/badge/badge.definition.js +2 -2
- package/dist/esm/badge/badge.definition.js.map +1 -1
- package/dist/esm/badge/badge.js +1 -1
- package/dist/esm/badge/badge.js.map +1 -1
- package/dist/esm/badge/badge.options.d.ts +9 -2
- package/dist/esm/badge/badge.options.js +7 -0
- package/dist/esm/badge/badge.options.js.map +1 -1
- package/dist/esm/badge/badge.styles.js +5 -4
- package/dist/esm/badge/badge.styles.js.map +1 -1
- package/dist/esm/badge/badge.template.js +1 -1
- package/dist/esm/badge/badge.template.js.map +1 -1
- package/dist/esm/badge/index.d.ts +1 -0
- package/dist/esm/badge/index.js +1 -0
- package/dist/esm/badge/index.js.map +1 -1
- package/dist/esm/button/button.d.ts +1 -1
- package/dist/esm/button/button.definition.js +2 -2
- package/dist/esm/button/button.definition.js.map +1 -1
- package/dist/esm/button/button.js +1 -1
- package/dist/esm/button/button.js.map +1 -1
- package/dist/esm/button/button.options.d.ts +8 -2
- package/dist/esm/button/button.options.js +7 -0
- package/dist/esm/button/button.options.js.map +1 -1
- package/dist/esm/button/button.styles.js +5 -3
- package/dist/esm/button/button.styles.js.map +1 -1
- package/dist/esm/button/button.template.js +1 -1
- package/dist/esm/button/button.template.js.map +1 -1
- package/dist/esm/button/index.d.ts +1 -0
- package/dist/esm/button/index.js +1 -0
- package/dist/esm/button/index.js.map +1 -1
- package/dist/esm/checkbox/checkbox.definition.js +2 -2
- package/dist/esm/checkbox/checkbox.definition.js.map +1 -1
- package/dist/esm/checkbox/checkbox.options.d.ts +6 -0
- package/dist/esm/checkbox/checkbox.options.js +7 -0
- package/dist/esm/checkbox/checkbox.options.js.map +1 -1
- package/dist/esm/checkbox/checkbox.styles.js +4 -3
- package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
- package/dist/esm/checkbox/index.d.ts +1 -0
- package/dist/esm/checkbox/index.js +1 -0
- package/dist/esm/checkbox/index.js.map +1 -1
- package/dist/esm/compound-button/compound-button.definition.js +2 -2
- package/dist/esm/compound-button/compound-button.definition.js.map +1 -1
- package/dist/esm/compound-button/compound-button.options.d.ts +7 -1
- package/dist/esm/compound-button/compound-button.options.js +7 -0
- package/dist/esm/compound-button/compound-button.options.js.map +1 -1
- package/dist/esm/compound-button/compound-button.styles.js +4 -3
- package/dist/esm/compound-button/compound-button.styles.js.map +1 -1
- package/dist/esm/compound-button/compound-button.template.js +1 -1
- package/dist/esm/compound-button/compound-button.template.js.map +1 -1
- package/dist/esm/compound-button/index.d.ts +1 -0
- package/dist/esm/compound-button/index.js +1 -0
- package/dist/esm/compound-button/index.js.map +1 -1
- package/dist/esm/counter-badge/counter-badge.d.ts +1 -1
- package/dist/esm/counter-badge/counter-badge.definition.js +2 -2
- package/dist/esm/counter-badge/counter-badge.definition.js.map +1 -1
- package/dist/esm/counter-badge/counter-badge.js +1 -1
- package/dist/esm/counter-badge/counter-badge.js.map +1 -1
- package/dist/esm/counter-badge/counter-badge.options.d.ts +7 -1
- package/dist/esm/counter-badge/counter-badge.options.js +7 -0
- package/dist/esm/counter-badge/counter-badge.options.js.map +1 -1
- package/dist/esm/counter-badge/counter-badge.styles.js +1 -1
- package/dist/esm/counter-badge/counter-badge.styles.js.map +1 -1
- package/dist/esm/counter-badge/index.d.ts +1 -0
- package/dist/esm/counter-badge/index.js +1 -0
- package/dist/esm/counter-badge/index.js.map +1 -1
- package/dist/esm/dialog/dialog.definition.js +2 -2
- package/dist/esm/dialog/dialog.definition.js.map +1 -1
- package/dist/esm/dialog/dialog.options.d.ts +7 -1
- package/dist/esm/dialog/dialog.options.js +7 -0
- package/dist/esm/dialog/dialog.options.js.map +1 -1
- package/dist/esm/dialog/dialog.styles.js +4 -3
- package/dist/esm/dialog/dialog.styles.js.map +1 -1
- package/dist/esm/dialog/index.d.ts +1 -0
- package/dist/esm/dialog/index.js +1 -0
- package/dist/esm/dialog/index.js.map +1 -1
- package/dist/esm/dialog-body/dialog-body.definition.js +2 -2
- package/dist/esm/dialog-body/dialog-body.definition.js.map +1 -1
- package/dist/esm/dialog-body/dialog-body.options.d.ts +6 -0
- package/dist/esm/dialog-body/dialog-body.options.js +8 -0
- package/dist/esm/dialog-body/dialog-body.options.js.map +1 -0
- package/dist/esm/dialog-body/dialog-body.styles.js +1 -1
- package/dist/esm/dialog-body/dialog-body.styles.js.map +1 -1
- package/dist/esm/dialog-body/index.d.ts +1 -0
- package/dist/esm/dialog-body/index.js +1 -0
- package/dist/esm/dialog-body/index.js.map +1 -1
- package/dist/esm/divider/divider.definition.js +2 -2
- package/dist/esm/divider/divider.definition.js.map +1 -1
- package/dist/esm/divider/divider.options.d.ts +7 -1
- package/dist/esm/divider/divider.options.js +7 -0
- package/dist/esm/divider/divider.options.js.map +1 -1
- package/dist/esm/divider/divider.styles.js +5 -3
- package/dist/esm/divider/divider.styles.js.map +1 -1
- package/dist/esm/divider/index.d.ts +1 -0
- package/dist/esm/divider/index.js +1 -0
- package/dist/esm/divider/index.js.map +1 -1
- package/dist/esm/drawer/drawer.d.ts +8 -7
- package/dist/esm/drawer/drawer.definition.js +2 -2
- package/dist/esm/drawer/drawer.definition.js.map +1 -1
- package/dist/esm/drawer/drawer.js +8 -8
- package/dist/esm/drawer/drawer.js.map +1 -1
- package/dist/esm/drawer/drawer.options.d.ts +7 -1
- package/dist/esm/drawer/drawer.options.js +7 -0
- package/dist/esm/drawer/drawer.options.js.map +1 -1
- package/dist/esm/drawer/drawer.styles.js +1 -1
- package/dist/esm/drawer/drawer.styles.js.map +1 -1
- package/dist/esm/drawer/index.d.ts +1 -0
- package/dist/esm/drawer/index.js +1 -0
- package/dist/esm/drawer/index.js.map +1 -1
- package/dist/esm/drawer-body/drawer-body.definition.js +2 -2
- package/dist/esm/drawer-body/drawer-body.definition.js.map +1 -1
- package/dist/esm/drawer-body/drawer-body.options.d.ts +6 -0
- package/dist/esm/drawer-body/drawer-body.options.js +8 -0
- package/dist/esm/drawer-body/drawer-body.options.js.map +1 -0
- package/dist/esm/drawer-body/drawer-body.styles.js +1 -1
- package/dist/esm/drawer-body/drawer-body.styles.js.map +1 -1
- package/dist/esm/drawer-body/index.d.ts +1 -0
- package/dist/esm/drawer-body/index.js +1 -0
- package/dist/esm/drawer-body/index.js.map +1 -1
- package/dist/esm/dropdown/dropdown.definition.js +2 -2
- package/dist/esm/dropdown/dropdown.definition.js.map +1 -1
- package/dist/esm/dropdown/dropdown.options.d.ts +6 -0
- package/dist/esm/dropdown/dropdown.options.js +7 -0
- package/dist/esm/dropdown/dropdown.options.js.map +1 -1
- package/dist/esm/dropdown/index.d.ts +1 -0
- package/dist/esm/dropdown/index.js +1 -0
- package/dist/esm/dropdown/index.js.map +1 -1
- package/dist/esm/field/field.definition.js +2 -2
- package/dist/esm/field/field.definition.js.map +1 -1
- package/dist/esm/field/field.options.d.ts +6 -0
- package/dist/esm/field/field.options.js +7 -0
- package/dist/esm/field/field.options.js.map +1 -1
- package/dist/esm/field/index.d.ts +1 -0
- package/dist/esm/field/index.js +1 -0
- package/dist/esm/field/index.js.map +1 -1
- package/dist/esm/fluent-design-system.js +1 -1
- package/dist/esm/fluent-design-system.js.map +1 -1
- package/dist/esm/image/image.definition.js +2 -2
- package/dist/esm/image/image.definition.js.map +1 -1
- package/dist/esm/image/image.options.d.ts +7 -1
- package/dist/esm/image/image.options.js +7 -0
- package/dist/esm/image/image.options.js.map +1 -1
- package/dist/esm/image/index.d.ts +1 -0
- package/dist/esm/image/index.js +1 -0
- package/dist/esm/image/index.js.map +1 -1
- package/dist/esm/index.d.ts +0 -2
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/label/index.d.ts +1 -0
- package/dist/esm/label/index.js +1 -0
- package/dist/esm/label/index.js.map +1 -1
- package/dist/esm/label/label.definition.js +2 -2
- package/dist/esm/label/label.definition.js.map +1 -1
- package/dist/esm/label/label.options.d.ts +7 -1
- package/dist/esm/label/label.options.js +7 -0
- package/dist/esm/label/label.options.js.map +1 -1
- package/dist/esm/label/label.styles.js +1 -1
- package/dist/esm/label/label.styles.js.map +1 -1
- package/dist/esm/link/index.d.ts +1 -0
- package/dist/esm/link/index.js +1 -0
- package/dist/esm/link/index.js.map +1 -1
- package/dist/esm/link/link.definition.js +2 -2
- package/dist/esm/link/link.definition.js.map +1 -1
- package/dist/esm/link/link.options.d.ts +7 -1
- package/dist/esm/link/link.options.js +7 -0
- package/dist/esm/link/link.options.js.map +1 -1
- package/dist/esm/link/link.styles.js +5 -3
- package/dist/esm/link/link.styles.js.map +1 -1
- package/dist/esm/listbox/index.d.ts +1 -0
- package/dist/esm/listbox/index.js +1 -0
- package/dist/esm/listbox/index.js.map +1 -1
- package/dist/esm/listbox/listbox.definition.js +2 -2
- package/dist/esm/listbox/listbox.definition.js.map +1 -1
- package/dist/esm/listbox/listbox.options.d.ts +6 -0
- package/dist/esm/listbox/listbox.options.js +7 -0
- package/dist/esm/listbox/listbox.options.js.map +1 -1
- package/dist/esm/menu/index.d.ts +1 -0
- package/dist/esm/menu/index.js +1 -0
- package/dist/esm/menu/index.js.map +1 -1
- package/dist/esm/menu/menu.definition.js +2 -2
- package/dist/esm/menu/menu.definition.js.map +1 -1
- package/dist/esm/menu/menu.js +4 -3
- package/dist/esm/menu/menu.js.map +1 -1
- package/dist/esm/menu/menu.options.d.ts +6 -0
- package/dist/esm/menu/menu.options.js +8 -0
- package/dist/esm/menu/menu.options.js.map +1 -0
- package/dist/esm/menu/menu.styles.js +1 -1
- package/dist/esm/menu/menu.styles.js.map +1 -1
- package/dist/esm/menu-button/index.d.ts +1 -0
- package/dist/esm/menu-button/index.js +1 -0
- package/dist/esm/menu-button/index.js.map +1 -1
- package/dist/esm/menu-button/menu-button.definition.js +2 -2
- package/dist/esm/menu-button/menu-button.definition.js.map +1 -1
- package/dist/esm/menu-button/menu-button.options.d.ts +7 -1
- package/dist/esm/menu-button/menu-button.options.js +7 -0
- package/dist/esm/menu-button/menu-button.options.js.map +1 -1
- package/dist/esm/menu-item/index.d.ts +1 -0
- package/dist/esm/menu-item/index.js +1 -0
- package/dist/esm/menu-item/index.js.map +1 -1
- package/dist/esm/menu-item/menu-item.d.ts +3 -1
- package/dist/esm/menu-item/menu-item.definition.js +2 -2
- package/dist/esm/menu-item/menu-item.definition.js.map +1 -1
- package/dist/esm/menu-item/menu-item.js +19 -7
- package/dist/esm/menu-item/menu-item.js.map +1 -1
- package/dist/esm/menu-item/menu-item.options.d.ts +7 -1
- package/dist/esm/menu-item/menu-item.options.js +7 -0
- package/dist/esm/menu-item/menu-item.options.js.map +1 -1
- package/dist/esm/menu-item/menu-item.styles.js +5 -3
- package/dist/esm/menu-item/menu-item.styles.js.map +1 -1
- package/dist/esm/menu-item/menu-item.template.js +3 -2
- package/dist/esm/menu-item/menu-item.template.js.map +1 -1
- package/dist/esm/menu-list/index.d.ts +1 -0
- package/dist/esm/menu-list/index.js +1 -0
- package/dist/esm/menu-list/index.js.map +1 -1
- package/dist/esm/menu-list/menu-list.base.d.ts +5 -24
- package/dist/esm/menu-list/menu-list.base.js +20 -125
- package/dist/esm/menu-list/menu-list.base.js.map +1 -1
- package/dist/esm/menu-list/menu-list.d.ts +5 -1
- package/dist/esm/menu-list/menu-list.definition.js +2 -2
- package/dist/esm/menu-list/menu-list.definition.js.map +1 -1
- package/dist/esm/menu-list/menu-list.js +23 -1
- package/dist/esm/menu-list/menu-list.js.map +1 -1
- package/dist/esm/menu-list/menu-list.options.d.ts +6 -0
- package/dist/esm/menu-list/menu-list.options.js +8 -0
- package/dist/esm/menu-list/menu-list.options.js.map +1 -0
- package/dist/esm/menu-list/menu-list.styles.js +1 -1
- package/dist/esm/menu-list/menu-list.styles.js.map +1 -1
- package/dist/esm/menu-list/menu-list.template.js +1 -5
- package/dist/esm/menu-list/menu-list.template.js.map +1 -1
- package/dist/esm/message-bar/index.d.ts +1 -0
- package/dist/esm/message-bar/index.js +1 -0
- package/dist/esm/message-bar/index.js.map +1 -1
- package/dist/esm/message-bar/message-bar.definition.js +2 -1
- package/dist/esm/message-bar/message-bar.definition.js.map +1 -1
- package/dist/esm/message-bar/message-bar.options.d.ts +6 -0
- package/dist/esm/message-bar/message-bar.options.js +7 -0
- package/dist/esm/message-bar/message-bar.options.js.map +1 -1
- package/dist/esm/message-bar/message-bar.template.d.ts +3 -3
- package/dist/esm/message-bar/message-bar.template.js +3 -3
- package/dist/esm/option/index.d.ts +1 -0
- package/dist/esm/option/index.js +1 -0
- package/dist/esm/option/index.js.map +1 -1
- package/dist/esm/option/option.definition.js +2 -2
- package/dist/esm/option/option.definition.js.map +1 -1
- package/dist/esm/option/option.options.d.ts +6 -0
- package/dist/esm/option/option.options.js +7 -0
- package/dist/esm/option/option.options.js.map +1 -1
- package/dist/esm/patterns/start-end.d.ts +1 -1
- package/dist/esm/patterns/start-end.js +1 -1
- package/dist/esm/patterns/start-end.js.map +1 -1
- package/dist/esm/progress-bar/index.d.ts +1 -0
- package/dist/esm/progress-bar/index.js +1 -0
- package/dist/esm/progress-bar/index.js.map +1 -1
- package/dist/esm/progress-bar/progress-bar.definition.js +2 -2
- package/dist/esm/progress-bar/progress-bar.definition.js.map +1 -1
- package/dist/esm/progress-bar/progress-bar.options.d.ts +7 -1
- package/dist/esm/progress-bar/progress-bar.options.js +7 -0
- package/dist/esm/progress-bar/progress-bar.options.js.map +1 -1
- package/dist/esm/progress-bar/progress-bar.styles.js +5 -3
- package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
- package/dist/esm/radio/index.d.ts +1 -0
- package/dist/esm/radio/index.js +1 -0
- package/dist/esm/radio/index.js.map +1 -1
- package/dist/esm/radio/radio.d.ts +1 -1
- package/dist/esm/radio/radio.definition.js +2 -2
- package/dist/esm/radio/radio.definition.js.map +1 -1
- package/dist/esm/radio/radio.js +1 -1
- package/dist/esm/radio/radio.options.d.ts +6 -0
- package/dist/esm/radio/radio.options.js +7 -0
- package/dist/esm/radio/radio.options.js.map +1 -1
- package/dist/esm/radio/radio.styles.js +4 -3
- package/dist/esm/radio/radio.styles.js.map +1 -1
- package/dist/esm/radio/radio.template.js +1 -1
- package/dist/esm/radio/radio.template.js.map +1 -1
- package/dist/esm/radio-group/index.d.ts +1 -0
- package/dist/esm/radio-group/index.js +1 -0
- package/dist/esm/radio-group/index.js.map +1 -1
- package/dist/esm/radio-group/radio-group.base.d.ts +3 -16
- package/dist/esm/radio-group/radio-group.base.js +30 -88
- package/dist/esm/radio-group/radio-group.base.js.map +1 -1
- package/dist/esm/radio-group/radio-group.d.ts +5 -0
- package/dist/esm/radio-group/radio-group.definition.js +2 -2
- package/dist/esm/radio-group/radio-group.definition.js.map +1 -1
- package/dist/esm/radio-group/radio-group.js +22 -0
- package/dist/esm/radio-group/radio-group.js.map +1 -1
- package/dist/esm/radio-group/radio-group.options.d.ts +7 -1
- package/dist/esm/radio-group/radio-group.options.js +7 -0
- package/dist/esm/radio-group/radio-group.options.js.map +1 -1
- package/dist/esm/radio-group/radio-group.styles.js +1 -1
- package/dist/esm/radio-group/radio-group.styles.js.map +1 -1
- package/dist/esm/radio-group/radio-group.template.js +1 -1
- package/dist/esm/radio-group/radio-group.template.js.map +1 -1
- package/dist/esm/rating-display/index.d.ts +1 -0
- package/dist/esm/rating-display/index.js +1 -0
- package/dist/esm/rating-display/index.js.map +1 -1
- package/dist/esm/rating-display/rating-display.definition.js +2 -2
- package/dist/esm/rating-display/rating-display.definition.js.map +1 -1
- package/dist/esm/rating-display/rating-display.options.d.ts +7 -1
- package/dist/esm/rating-display/rating-display.options.js +7 -0
- package/dist/esm/rating-display/rating-display.options.js.map +1 -1
- package/dist/esm/rating-display/rating-display.styles.js +5 -3
- package/dist/esm/rating-display/rating-display.styles.js.map +1 -1
- package/dist/esm/slider/index.d.ts +1 -0
- package/dist/esm/slider/index.js +1 -0
- package/dist/esm/slider/index.js.map +1 -1
- package/dist/esm/slider/slider.definition.js +2 -2
- package/dist/esm/slider/slider.definition.js.map +1 -1
- package/dist/esm/slider/slider.options.d.ts +8 -1
- package/dist/esm/slider/slider.options.js +7 -0
- package/dist/esm/slider/slider.options.js.map +1 -1
- package/dist/esm/slider/slider.styles.js +5 -3
- package/dist/esm/slider/slider.styles.js.map +1 -1
- package/dist/esm/spinner/index.d.ts +1 -0
- package/dist/esm/spinner/index.js +1 -0
- package/dist/esm/spinner/index.js.map +1 -1
- package/dist/esm/spinner/spinner.definition.js +2 -2
- package/dist/esm/spinner/spinner.definition.js.map +1 -1
- package/dist/esm/spinner/spinner.options.d.ts +7 -1
- package/dist/esm/spinner/spinner.options.js +7 -0
- package/dist/esm/spinner/spinner.options.js.map +1 -1
- package/dist/esm/spinner/spinner.styles.js +5 -3
- package/dist/esm/spinner/spinner.styles.js.map +1 -1
- package/dist/esm/styles/index.d.ts +2 -1
- package/dist/esm/styles/index.js +2 -1
- package/dist/esm/styles/index.js.map +1 -1
- package/dist/esm/styles/partials/badge.partials.js +1 -1
- package/dist/esm/styles/partials/badge.partials.js.map +1 -1
- package/dist/esm/switch/index.d.ts +1 -0
- package/dist/esm/switch/index.js +1 -0
- package/dist/esm/switch/index.js.map +1 -1
- package/dist/esm/switch/switch.d.ts +1 -1
- package/dist/esm/switch/switch.definition.js +2 -2
- package/dist/esm/switch/switch.definition.js.map +1 -1
- package/dist/esm/switch/switch.options.d.ts +7 -1
- package/dist/esm/switch/switch.options.js +7 -0
- package/dist/esm/switch/switch.options.js.map +1 -1
- package/dist/esm/switch/switch.styles.js +4 -3
- package/dist/esm/switch/switch.styles.js.map +1 -1
- package/dist/esm/switch/switch.template.js +1 -1
- package/dist/esm/switch/switch.template.js.map +1 -1
- package/dist/esm/tab/index.d.ts +1 -0
- package/dist/esm/tab/index.js +1 -0
- package/dist/esm/tab/index.js.map +1 -1
- package/dist/esm/tab/tab.d.ts +2 -0
- package/dist/esm/tab/tab.definition.js +2 -2
- package/dist/esm/tab/tab.definition.js.map +1 -1
- package/dist/esm/tab/tab.js +13 -3
- package/dist/esm/tab/tab.js.map +1 -1
- package/dist/esm/tab/tab.options.d.ts +6 -0
- package/dist/esm/tab/tab.options.js +7 -0
- package/dist/esm/tab/tab.options.js.map +1 -1
- package/dist/esm/tab/tab.styles.js +23 -3
- package/dist/esm/tab/tab.styles.js.map +1 -1
- package/dist/esm/tab/tab.template.js +2 -2
- package/dist/esm/tab/tab.template.js.map +1 -1
- package/dist/esm/tablist/index.d.ts +1 -0
- package/dist/esm/tablist/index.js +1 -0
- package/dist/esm/tablist/index.js.map +1 -1
- package/dist/esm/tablist/tablist.base.d.ts +13 -45
- package/dist/esm/tablist/tablist.base.js +76 -185
- package/dist/esm/tablist/tablist.base.js.map +1 -1
- package/dist/esm/tablist/tablist.d.ts +5 -73
- package/dist/esm/tablist/tablist.definition.js +2 -2
- package/dist/esm/tablist/tablist.definition.js.map +1 -1
- package/dist/esm/tablist/tablist.js +20 -130
- package/dist/esm/tablist/tablist.js.map +1 -1
- package/dist/esm/tablist/tablist.options.d.ts +7 -1
- package/dist/esm/tablist/tablist.options.js +7 -0
- package/dist/esm/tablist/tablist.options.js.map +1 -1
- package/dist/esm/tablist/tablist.styles.js +83 -65
- package/dist/esm/tablist/tablist.styles.js.map +1 -1
- package/dist/esm/tablist/tablist.template.js +5 -1
- package/dist/esm/tablist/tablist.template.js.map +1 -1
- package/dist/esm/text/index.d.ts +1 -0
- package/dist/esm/text/index.js +1 -0
- package/dist/esm/text/index.js.map +1 -1
- package/dist/esm/text/text.definition.js +2 -2
- package/dist/esm/text/text.definition.js.map +1 -1
- package/dist/esm/text/text.options.d.ts +7 -1
- package/dist/esm/text/text.options.js +7 -0
- package/dist/esm/text/text.options.js.map +1 -1
- package/dist/esm/text/text.styles.js +1 -1
- package/dist/esm/text/text.styles.js.map +1 -1
- package/dist/esm/text-input/index.d.ts +1 -0
- package/dist/esm/text-input/index.js +1 -0
- package/dist/esm/text-input/index.js.map +1 -1
- package/dist/esm/text-input/text-input.definition.js +2 -2
- package/dist/esm/text-input/text-input.definition.js.map +1 -1
- package/dist/esm/text-input/text-input.options.d.ts +6 -0
- package/dist/esm/text-input/text-input.options.js +7 -0
- package/dist/esm/text-input/text-input.options.js.map +1 -1
- package/dist/esm/textarea/index.d.ts +1 -0
- package/dist/esm/textarea/index.js +1 -0
- package/dist/esm/textarea/index.js.map +1 -1
- package/dist/esm/textarea/textarea.base.js +1 -1
- package/dist/esm/textarea/textarea.base.js.map +1 -1
- package/dist/esm/textarea/textarea.definition.js +2 -2
- package/dist/esm/textarea/textarea.definition.js.map +1 -1
- package/dist/esm/textarea/textarea.options.d.ts +6 -0
- package/dist/esm/textarea/textarea.options.js +7 -0
- package/dist/esm/textarea/textarea.options.js.map +1 -1
- package/dist/esm/textarea/textarea.styles.js +4 -3
- package/dist/esm/textarea/textarea.styles.js.map +1 -1
- package/dist/esm/toggle-button/index.d.ts +1 -0
- package/dist/esm/toggle-button/index.js +1 -0
- package/dist/esm/toggle-button/index.js.map +1 -1
- package/dist/esm/toggle-button/toggle-button.definition.js +2 -2
- package/dist/esm/toggle-button/toggle-button.definition.js.map +1 -1
- package/dist/esm/toggle-button/toggle-button.options.d.ts +8 -2
- package/dist/esm/toggle-button/toggle-button.options.js +7 -0
- package/dist/esm/toggle-button/toggle-button.options.js.map +1 -1
- package/dist/esm/toggle-button/toggle-button.styles.js +4 -3
- package/dist/esm/toggle-button/toggle-button.styles.js.map +1 -1
- package/dist/esm/tooltip/index.d.ts +1 -0
- package/dist/esm/tooltip/index.js +1 -0
- package/dist/esm/tooltip/index.js.map +1 -1
- package/dist/esm/tooltip/tooltip.d.ts +2 -2
- package/dist/esm/tooltip/tooltip.definition.js +2 -2
- package/dist/esm/tooltip/tooltip.definition.js.map +1 -1
- package/dist/esm/tooltip/tooltip.js +2 -2
- package/dist/esm/tooltip/tooltip.options.d.ts +6 -0
- package/dist/esm/tooltip/tooltip.options.js +7 -0
- package/dist/esm/tooltip/tooltip.options.js.map +1 -1
- package/dist/esm/tree/index.d.ts +1 -0
- package/dist/esm/tree/index.js +1 -0
- package/dist/esm/tree/index.js.map +1 -1
- package/dist/esm/tree/tree.base.d.ts +5 -28
- package/dist/esm/tree/tree.base.js +20 -105
- package/dist/esm/tree/tree.base.js.map +1 -1
- package/dist/esm/tree/tree.d.ts +5 -0
- package/dist/esm/tree/tree.definition.js +2 -2
- package/dist/esm/tree/tree.definition.js.map +1 -1
- package/dist/esm/tree/tree.js +23 -0
- package/dist/esm/tree/tree.js.map +1 -1
- package/dist/esm/tree/tree.options.d.ts +6 -0
- package/dist/esm/tree/tree.options.js +8 -0
- package/dist/esm/tree/tree.options.js.map +1 -0
- package/dist/esm/tree/tree.template.js +2 -3
- package/dist/esm/tree/tree.template.js.map +1 -1
- package/dist/esm/tree-item/index.d.ts +1 -0
- package/dist/esm/tree-item/index.js +1 -0
- package/dist/esm/tree-item/index.js.map +1 -1
- package/dist/esm/tree-item/tree-item.base.d.ts +6 -3
- package/dist/esm/tree-item/tree-item.base.js +31 -11
- package/dist/esm/tree-item/tree-item.base.js.map +1 -1
- package/dist/esm/tree-item/tree-item.definition.js +2 -2
- package/dist/esm/tree-item/tree-item.definition.js.map +1 -1
- package/dist/esm/tree-item/tree-item.options.d.ts +6 -0
- package/dist/esm/tree-item/tree-item.options.js +7 -0
- package/dist/esm/tree-item/tree-item.options.js.map +1 -1
- package/dist/esm/tree-item/tree-item.template.js +1 -1
- package/dist/esm/tree-item/tree-item.template.js.map +1 -1
- package/dist/esm/utils/focusgroup.d.ts +22 -0
- package/dist/esm/utils/focusgroup.js +42 -0
- package/dist/esm/utils/focusgroup.js.map +1 -0
- package/dist/esm/utils/index.d.ts +0 -1
- package/dist/esm/utils/index.js +0 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/web-components.d.ts +70 -347
- package/dist/web-components.js +1279 -1321
- package/dist/web-components.min.js +242 -259
- package/package.json +4 -2
- package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.d.ts +0 -124
- package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js +0 -142
- package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js.map +0 -1
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { attr, FASTElement, observable } from '@microsoft/fast-element';
|
|
3
|
-
import {
|
|
3
|
+
import { uniqueId } from '@microsoft/fast-web-utilities';
|
|
4
4
|
import { isTab } from '../tab/tab.options.js';
|
|
5
5
|
import { swapStates, toggleState } from '../utils/element-internals.js';
|
|
6
|
-
import { isFocusableElement } from '../utils/focusable-element.js';
|
|
7
|
-
import { getDirection } from '../utils/index.js';
|
|
8
6
|
import { waitForConnectedDescendants } from '../utils/request-idle-callback.js';
|
|
9
7
|
import { TablistOrientation } from './tablist.options.js';
|
|
10
8
|
/**
|
|
@@ -12,20 +10,13 @@ import { TablistOrientation } from './tablist.options.js';
|
|
|
12
10
|
* @public
|
|
13
11
|
*/
|
|
14
12
|
export class BaseTablist extends FASTElement {
|
|
15
|
-
/**
|
|
16
|
-
* Handles disabled changes
|
|
17
|
-
* @param prev - previous value
|
|
18
|
-
* @param next - next value
|
|
19
|
-
*
|
|
20
|
-
* @internal
|
|
21
|
-
*/
|
|
13
|
+
/** @internal */
|
|
22
14
|
disabledChanged(prev, next) {
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
if (this.elementInternals) {
|
|
16
|
+
toggleState(this.elementInternals, 'disabled', next);
|
|
17
|
+
}
|
|
18
|
+
this.setTabs({ forceDisabled: true });
|
|
25
19
|
}
|
|
26
|
-
/**
|
|
27
|
-
* @internal
|
|
28
|
-
*/
|
|
29
20
|
orientationChanged(prev, next) {
|
|
30
21
|
if (this.elementInternals) {
|
|
31
22
|
this.elementInternals.ariaOrientation = next ?? TablistOrientation.horizontal;
|
|
@@ -33,54 +24,53 @@ export class BaseTablist extends FASTElement {
|
|
|
33
24
|
}
|
|
34
25
|
this.setTabs();
|
|
35
26
|
}
|
|
36
|
-
/**
|
|
37
|
-
* @internal
|
|
38
|
-
*/
|
|
27
|
+
/** @internal */
|
|
39
28
|
activeidChanged(oldValue, newValue) {
|
|
40
29
|
if (this.tabs?.length > 0) {
|
|
41
|
-
this.
|
|
42
|
-
this.setTabs();
|
|
43
|
-
if (oldValue) {
|
|
44
|
-
const prevActiveTab = this.tabs[this.prevActiveTabIndex];
|
|
45
|
-
const prevActivePanel = this.tabPanelMap.get(prevActiveTab);
|
|
46
|
-
if (prevActivePanel) {
|
|
47
|
-
prevActivePanel.hidden = true;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (newValue && this.activetab) {
|
|
51
|
-
const activePanel = this.tabPanelMap.get(this.activetab);
|
|
52
|
-
if (activePanel) {
|
|
53
|
-
activePanel.hidden = false;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (oldValue !== newValue) {
|
|
57
|
-
this.change();
|
|
58
|
-
}
|
|
30
|
+
this.changeTab(oldValue, newValue);
|
|
59
31
|
}
|
|
60
32
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Updates the tabs property when content in the tabs slot changes.
|
|
63
|
-
* @internal
|
|
64
|
-
*/
|
|
33
|
+
/** @internal */
|
|
65
34
|
slottedTabsChanged(prev, next) {
|
|
66
35
|
this.tabs = next?.filter(tab => isTab(tab)) ?? [];
|
|
67
36
|
}
|
|
37
|
+
/** @internal */
|
|
38
|
+
tabsChanged(prev, next) {
|
|
39
|
+
if (this.tabs?.length > 0) {
|
|
40
|
+
this.setTabs({ connectToPanel: true });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
68
43
|
/**
|
|
69
|
-
*
|
|
44
|
+
* Function that is invoked whenever the selected tab or the tab collection changes.
|
|
70
45
|
*/
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
tab.removeEventListener('click', this.handleTabClick);
|
|
75
|
-
tab.removeEventListener('keydown', this.handleTabKeyDown);
|
|
76
|
-
});
|
|
46
|
+
setTabs({ connectToPanel = false, forceDisabled = false } = {}) {
|
|
47
|
+
if (!this.tabs) {
|
|
48
|
+
return;
|
|
77
49
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
50
|
+
const hasStartSlot = this.tabs.some(tab => !!tab.querySelector("[slot='start']"));
|
|
51
|
+
const rootNode = this.getRootNode();
|
|
52
|
+
let firstEnabledTabId = '';
|
|
53
|
+
for (const tab of this.tabs) {
|
|
54
|
+
if (tab.slot !== 'tab') {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
tab.id ||= uniqueId('tab-');
|
|
58
|
+
if (forceDisabled) {
|
|
59
|
+
tab.disabled = this.disabled;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
tab.disabled = tab.disabled || this.disabled;
|
|
63
|
+
}
|
|
64
|
+
if (!firstEnabledTabId && !tab.disabled) {
|
|
65
|
+
firstEnabledTabId = tab.id;
|
|
66
|
+
}
|
|
67
|
+
const isSelected = this.activeid === tab.id;
|
|
68
|
+
tab.toggleAttribute('focusgroupstart', isSelected);
|
|
69
|
+
tab.setAttribute('aria-selected', isSelected.toString());
|
|
70
|
+
// Only set the data-hasIndent attribute if the tab has a start slot and the orientation is vertical
|
|
71
|
+
tab.toggleAttribute('data-hasIndent', hasStartSlot && this.orientation === TablistOrientation.vertical);
|
|
72
|
+
if (connectToPanel) {
|
|
82
73
|
const ariaControls = tab.getAttribute('aria-controls') ?? '';
|
|
83
|
-
const rootNode = this.getRootNode();
|
|
84
74
|
const panel = rootNode.getElementById(ariaControls);
|
|
85
75
|
if (ariaControls && panel) {
|
|
86
76
|
panel.role ??= 'tabpanel';
|
|
@@ -89,87 +79,44 @@ export class BaseTablist extends FASTElement {
|
|
|
89
79
|
}
|
|
90
80
|
}
|
|
91
81
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
82
|
+
if (!this.disabled) {
|
|
83
|
+
if (this.activeid) {
|
|
84
|
+
this.changeTab(undefined, this.activeid);
|
|
85
|
+
}
|
|
86
|
+
else if (firstEnabledTabId) {
|
|
87
|
+
this.activeid = firstEnabledTabId;
|
|
88
|
+
}
|
|
97
89
|
}
|
|
98
|
-
|
|
99
|
-
|
|
90
|
+
}
|
|
91
|
+
/** @internal */
|
|
92
|
+
handleFocusIn(event) {
|
|
93
|
+
const target = event.target;
|
|
94
|
+
if (!isTab(target) || target.disabled) {
|
|
95
|
+
return;
|
|
100
96
|
}
|
|
97
|
+
this.activeid = target.id;
|
|
101
98
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (!tab.disabled) {
|
|
115
|
-
this.disabled ? tab.setAttribute('aria-disabled', 'true') : tab.removeAttribute('aria-disabled');
|
|
116
|
-
}
|
|
117
|
-
tab.setAttribute('id', tabId);
|
|
118
|
-
tab.setAttribute('aria-selected', isActiveTab ? 'true' : 'false');
|
|
119
|
-
tab.addEventListener('click', this.handleTabClick);
|
|
120
|
-
tab.addEventListener('keydown', this.handleTabKeyDown);
|
|
121
|
-
tab.setAttribute('tabindex', isActiveTab && !this.disabled ? '0' : '-1');
|
|
122
|
-
if (isActiveTab) {
|
|
123
|
-
this.activetab = tab;
|
|
124
|
-
this.activeid = tabId;
|
|
125
|
-
}
|
|
126
|
-
// Only set the data-hasIndent attribute if the tab has a start slot and the orientation is vertical
|
|
127
|
-
if (hasStartSlot && this.orientation === TablistOrientation.vertical) {
|
|
128
|
-
tab.setAttribute('data-hasIndent', '');
|
|
129
|
-
}
|
|
99
|
+
changeTab(oldId, newId) {
|
|
100
|
+
const rootNode = this.getRootNode();
|
|
101
|
+
const prevTab = oldId ? rootNode.getElementById(oldId) : null;
|
|
102
|
+
const nextTab = rootNode.getElementById(newId);
|
|
103
|
+
if (!isTab(nextTab) || !this.contains(nextTab)) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (prevTab) {
|
|
107
|
+
prevTab.setAttribute('aria-selected', 'false');
|
|
108
|
+
const prevPanel = this.tabPanelMap.get(prevTab);
|
|
109
|
+
if (prevPanel) {
|
|
110
|
+
prevPanel.hidden = true;
|
|
130
111
|
}
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
getTabIds() {
|
|
134
|
-
return (this.tabs?.map((tab) => {
|
|
135
|
-
return tab.getAttribute('id') ?? `tab-${uniqueId()}`;
|
|
136
|
-
}) ?? []);
|
|
137
|
-
}
|
|
138
|
-
setComponent() {
|
|
139
|
-
if (this.activeTabIndex !== this.prevActiveTabIndex) {
|
|
140
|
-
this.activeid = this.tabIds[this.activeTabIndex];
|
|
141
|
-
this.focusTab();
|
|
142
112
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* The adjust method for FASTTabs
|
|
149
|
-
* @public
|
|
150
|
-
* @remarks
|
|
151
|
-
* This method allows the active index to be adjusted by numerical increments
|
|
152
|
-
*/
|
|
153
|
-
adjust(adjustment) {
|
|
154
|
-
const focusableTabs = this.tabs.filter(t => isFocusableElement(t));
|
|
155
|
-
const currentActiveTabIndex = focusableTabs.indexOf(this.activetab);
|
|
156
|
-
const nextTabIndex = wrapInBounds(0, focusableTabs.length - 1, currentActiveTabIndex + adjustment);
|
|
157
|
-
// the index of the next focusable tab within the context of all available tabs
|
|
158
|
-
const nextIndex = this.tabs.indexOf(focusableTabs[nextTabIndex]);
|
|
159
|
-
if (nextIndex > -1) {
|
|
160
|
-
this.activateTabByIndex(this.tabs, nextIndex);
|
|
113
|
+
nextTab.setAttribute('aria-selected', 'true');
|
|
114
|
+
const nextPanel = this.tabPanelMap.get(nextTab);
|
|
115
|
+
if (nextPanel) {
|
|
116
|
+
nextPanel.hidden = false;
|
|
161
117
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
const tab = group[index];
|
|
165
|
-
this.activetab = tab;
|
|
166
|
-
this.prevActiveTabIndex = this.activeTabIndex;
|
|
167
|
-
this.activeTabIndex = index;
|
|
168
|
-
tab.focus();
|
|
169
|
-
this.setComponent();
|
|
170
|
-
}
|
|
171
|
-
focusTab() {
|
|
172
|
-
this.tabs[this.activeTabIndex].focus();
|
|
118
|
+
this.activetab = nextTab;
|
|
119
|
+
this.change();
|
|
173
120
|
}
|
|
174
121
|
constructor() {
|
|
175
122
|
super();
|
|
@@ -193,67 +140,12 @@ export class BaseTablist extends FASTElement {
|
|
|
193
140
|
* HTML Attribute: orientation
|
|
194
141
|
*/
|
|
195
142
|
this.orientation = TablistOrientation.horizontal;
|
|
196
|
-
|
|
197
|
-
this.
|
|
143
|
+
/** @internal */
|
|
144
|
+
this.tabs = [];
|
|
198
145
|
this.tabPanelMap = new WeakMap();
|
|
199
146
|
this.change = () => {
|
|
200
147
|
this.$emit('change', this.activetab);
|
|
201
148
|
};
|
|
202
|
-
this.handleTabClick = (event) => {
|
|
203
|
-
const selectedTab = event.currentTarget;
|
|
204
|
-
if (selectedTab.disabled || this.disabled) {
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
if (selectedTab.nodeType === Node.ELEMENT_NODE && isFocusableElement(selectedTab)) {
|
|
208
|
-
this.prevActiveTabIndex = this.activeTabIndex;
|
|
209
|
-
this.activeTabIndex = this.tabs.indexOf(selectedTab);
|
|
210
|
-
this.setComponent();
|
|
211
|
-
}
|
|
212
|
-
};
|
|
213
|
-
this.handleTabKeyDown = (event) => {
|
|
214
|
-
if (this.disabled) {
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
const dir = getDirection(this);
|
|
218
|
-
switch (event.key) {
|
|
219
|
-
case keyArrowLeft:
|
|
220
|
-
if (!this.isHorizontal()) {
|
|
221
|
-
return;
|
|
222
|
-
}
|
|
223
|
-
event.preventDefault();
|
|
224
|
-
this.adjust(dir === 'ltr' ? -1 : 1);
|
|
225
|
-
break;
|
|
226
|
-
case keyArrowRight:
|
|
227
|
-
if (!this.isHorizontal()) {
|
|
228
|
-
return;
|
|
229
|
-
}
|
|
230
|
-
event.preventDefault();
|
|
231
|
-
this.adjust(dir === 'ltr' ? 1 : -1);
|
|
232
|
-
break;
|
|
233
|
-
case keyArrowUp:
|
|
234
|
-
if (this.isHorizontal()) {
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
event.preventDefault();
|
|
238
|
-
this.adjust(-1);
|
|
239
|
-
break;
|
|
240
|
-
case keyArrowDown:
|
|
241
|
-
if (this.isHorizontal()) {
|
|
242
|
-
return;
|
|
243
|
-
}
|
|
244
|
-
event.preventDefault();
|
|
245
|
-
this.adjust(1);
|
|
246
|
-
break;
|
|
247
|
-
case keyHome:
|
|
248
|
-
event.preventDefault();
|
|
249
|
-
this.adjust(-this.activeTabIndex);
|
|
250
|
-
break;
|
|
251
|
-
case keyEnd:
|
|
252
|
-
event.preventDefault();
|
|
253
|
-
this.adjust(this.tabs.filter(t => isFocusableElement(t)).length - this.activeTabIndex - 1);
|
|
254
|
-
break;
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
149
|
this.elementInternals.role = 'tablist';
|
|
258
150
|
this.elementInternals.ariaOrientation = this.orientation ?? TablistOrientation.horizontal;
|
|
259
151
|
}
|
|
@@ -263,7 +155,6 @@ export class BaseTablist extends FASTElement {
|
|
|
263
155
|
connectedCallback() {
|
|
264
156
|
super.connectedCallback();
|
|
265
157
|
waitForConnectedDescendants(this, () => {
|
|
266
|
-
this.tabIds = this.getTabIds();
|
|
267
158
|
this.setTabs();
|
|
268
159
|
}, { shallow: true });
|
|
269
160
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tablist.base.js","sourceRoot":"","sources":["../../../src/tablist/tablist.base.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"tablist.base.js","sourceRoot":"","sources":["../../../src/tablist/tablist.base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,14 @@
|
|
|
1
1
|
import type { Tab } from '../tab/tab.js';
|
|
2
2
|
import { BaseTablist } from './tablist.base.js';
|
|
3
|
-
import { TablistAppearance, TablistSize } from './tablist.options.js';
|
|
3
|
+
import { TablistAppearance, type TablistSize } from './tablist.options.js';
|
|
4
4
|
/**
|
|
5
|
-
* A
|
|
5
|
+
* A Tablist component.
|
|
6
6
|
*
|
|
7
7
|
* @tag fluent-tablist
|
|
8
8
|
*
|
|
9
9
|
* @public
|
|
10
10
|
*/
|
|
11
11
|
export declare class Tablist extends BaseTablist {
|
|
12
|
-
/**
|
|
13
|
-
* activeTabData
|
|
14
|
-
* The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
|
|
15
|
-
*/
|
|
16
|
-
private activeTabData;
|
|
17
|
-
/**
|
|
18
|
-
* previousActiveTabData
|
|
19
|
-
* The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
|
|
20
|
-
*/
|
|
21
|
-
private previousActiveTabData;
|
|
22
|
-
/**
|
|
23
|
-
* activeTabOffset
|
|
24
|
-
* Used to position the active indicator for animations of the active indicator on active tab changes.
|
|
25
|
-
*/
|
|
26
|
-
private activeTabOffset;
|
|
27
|
-
/**
|
|
28
|
-
* activeTabScale
|
|
29
|
-
* Used to scale the tab active indicator up or down as animations of the active indicator occur.
|
|
30
|
-
*/
|
|
31
|
-
private activeTabScale;
|
|
32
12
|
/**
|
|
33
13
|
* appearance
|
|
34
14
|
* There are two modes of appearance: transparent and subtle.
|
|
@@ -40,56 +20,8 @@ export declare class Tablist extends BaseTablist {
|
|
|
40
20
|
* Used to set the size of all the tab controls, which effects text size and margins. Three sizes: small, medium and large.
|
|
41
21
|
*/
|
|
42
22
|
size?: TablistSize;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* Recalculates the active tab offset and scale.
|
|
47
|
-
* These values will be applied to css variables that control the tab active indicator position animations
|
|
48
|
-
*/
|
|
49
|
-
private calculateAnimationProperties;
|
|
50
|
-
/**
|
|
51
|
-
* getSelectedTabPosition - gets the x or y coordinates of the tab
|
|
52
|
-
*/
|
|
53
|
-
private getTabPosition;
|
|
54
|
-
/**
|
|
55
|
-
* getSelectedTabScale - gets the scale of the tab
|
|
56
|
-
*/
|
|
57
|
-
private getTabScale;
|
|
58
|
-
/**
|
|
59
|
-
* Calculates and applies updated values to CSS variables.
|
|
60
|
-
*
|
|
61
|
-
* @param tab - the tab element to apply the updated values to
|
|
62
|
-
* @internal
|
|
63
|
-
*/
|
|
64
|
-
private applyUpdatedCSSValues;
|
|
65
|
-
/**
|
|
66
|
-
* Runs through all the operations required for setting the tab active indicator to its starting location, ending
|
|
67
|
-
* location, and applying the animated css class to the tab.
|
|
68
|
-
*
|
|
69
|
-
* @param tab - the tab element to apply the updated values to
|
|
70
|
-
* @internal
|
|
71
|
-
*/
|
|
72
|
-
private animationLoop;
|
|
73
|
-
/**
|
|
74
|
-
* Sets the data from the active tab onto the class. used for making all the animation calculations for the active
|
|
75
|
-
* tab indicator.
|
|
76
|
-
*
|
|
77
|
-
* @internal
|
|
78
|
-
*/
|
|
79
|
-
private setTabData;
|
|
80
|
-
/**
|
|
81
|
-
* Sets the css variables for the active tab indicator.
|
|
82
|
-
* @internal
|
|
83
|
-
*/
|
|
84
|
-
private setAnimationVars;
|
|
85
|
-
/**
|
|
86
|
-
* Initiates the active tab indicator animation loop when activeid changes.
|
|
87
|
-
* @param oldValue - the previous tabId
|
|
88
|
-
* @param newValue - the new tabId
|
|
89
|
-
*/
|
|
90
|
-
activeidChanged(oldValue: string, newValue: string): void;
|
|
91
|
-
/**
|
|
92
|
-
* Initiates the active tab indicator animation loop when tabs change.
|
|
93
|
-
*/
|
|
23
|
+
private fg?;
|
|
24
|
+
private fgItems?;
|
|
25
|
+
disconnectedCallback(): void;
|
|
94
26
|
tabsChanged(prev: Tab[] | undefined, next: Tab[] | undefined): void;
|
|
95
27
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { tagName } from './tablist.options.js';
|
|
2
2
|
import { Tablist } from './tablist.js';
|
|
3
3
|
import { template } from './tablist.template.js';
|
|
4
4
|
import { styles } from './tablist.styles.js';
|
|
@@ -8,7 +8,7 @@ import { styles } from './tablist.styles.js';
|
|
|
8
8
|
* HTML Element: \<fluent-tablist\>
|
|
9
9
|
*/
|
|
10
10
|
export const definition = Tablist.compose({
|
|
11
|
-
name:
|
|
11
|
+
name: tagName,
|
|
12
12
|
template,
|
|
13
13
|
styles,
|
|
14
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tablist.definition.js","sourceRoot":"","sources":["../../../src/tablist/tablist.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"tablist.definition.js","sourceRoot":"","sources":["../../../src/tablist/tablist.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IACxC,IAAI,EAAE,OAAO;IACb,QAAQ;IACR,MAAM;CACP,CAAC,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { attr } from '@microsoft/fast-element';
|
|
3
|
+
import { FocusGroup } from '@microsoft/focusgroup-polyfill/shadowless';
|
|
4
|
+
import { ArrayItemCollection } from '../utils/focusgroup.js';
|
|
3
5
|
import { BaseTablist } from './tablist.base.js';
|
|
4
|
-
import { TablistAppearance
|
|
6
|
+
import { TablistAppearance } from './tablist.options.js';
|
|
5
7
|
/**
|
|
6
|
-
* A
|
|
8
|
+
* A Tablist component.
|
|
7
9
|
*
|
|
8
10
|
* @tag fluent-tablist
|
|
9
11
|
*
|
|
@@ -12,143 +14,31 @@ import { TablistAppearance, TablistOrientation } from './tablist.options.js';
|
|
|
12
14
|
export class Tablist extends BaseTablist {
|
|
13
15
|
constructor() {
|
|
14
16
|
super(...arguments);
|
|
15
|
-
/**
|
|
16
|
-
* activeTabData
|
|
17
|
-
* The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
|
|
18
|
-
*/
|
|
19
|
-
this.activeTabData = { x: 0, y: 0, height: 0, width: 0 };
|
|
20
|
-
/**
|
|
21
|
-
* previousActiveTabData
|
|
22
|
-
* The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
|
|
23
|
-
*/
|
|
24
|
-
this.previousActiveTabData = { x: 0, y: 0, height: 0, width: 0 };
|
|
25
|
-
/**
|
|
26
|
-
* activeTabOffset
|
|
27
|
-
* Used to position the active indicator for animations of the active indicator on active tab changes.
|
|
28
|
-
*/
|
|
29
|
-
this.activeTabOffset = 0;
|
|
30
|
-
/**
|
|
31
|
-
* activeTabScale
|
|
32
|
-
* Used to scale the tab active indicator up or down as animations of the active indicator occur.
|
|
33
|
-
*/
|
|
34
|
-
this.activeTabScale = 1;
|
|
35
17
|
/**
|
|
36
18
|
* appearance
|
|
37
19
|
* There are two modes of appearance: transparent and subtle.
|
|
38
20
|
*/
|
|
39
21
|
this.appearance = TablistAppearance.transparent;
|
|
40
22
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
* Recalculates the active tab offset and scale.
|
|
45
|
-
* These values will be applied to css variables that control the tab active indicator position animations
|
|
46
|
-
*/
|
|
47
|
-
calculateAnimationProperties(tab) {
|
|
48
|
-
this.activeTabOffset = this.getTabPosition(tab);
|
|
49
|
-
this.activeTabScale = this.getTabScale(tab);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* getSelectedTabPosition - gets the x or y coordinates of the tab
|
|
53
|
-
*/
|
|
54
|
-
getTabPosition(tab) {
|
|
55
|
-
if (this.orientation === TablistOrientation.horizontal) {
|
|
56
|
-
return this.previousActiveTabData.x - (tab.getBoundingClientRect().x - this.getBoundingClientRect().x);
|
|
57
|
-
}
|
|
58
|
-
else
|
|
59
|
-
return this.previousActiveTabData.y - (tab.getBoundingClientRect().y - this.getBoundingClientRect().y);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* getSelectedTabScale - gets the scale of the tab
|
|
63
|
-
*/
|
|
64
|
-
getTabScale(tab) {
|
|
65
|
-
if (this.orientation === TablistOrientation.horizontal) {
|
|
66
|
-
return this.previousActiveTabData.width / tab.getBoundingClientRect().width;
|
|
67
|
-
}
|
|
68
|
-
else
|
|
69
|
-
return this.previousActiveTabData.height / tab.getBoundingClientRect().height;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Calculates and applies updated values to CSS variables.
|
|
73
|
-
*
|
|
74
|
-
* @param tab - the tab element to apply the updated values to
|
|
75
|
-
* @internal
|
|
76
|
-
*/
|
|
77
|
-
applyUpdatedCSSValues(tab) {
|
|
78
|
-
this.calculateAnimationProperties(tab);
|
|
79
|
-
this.setAnimationVars();
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Runs through all the operations required for setting the tab active indicator to its starting location, ending
|
|
83
|
-
* location, and applying the animated css class to the tab.
|
|
84
|
-
*
|
|
85
|
-
* @param tab - the tab element to apply the updated values to
|
|
86
|
-
* @internal
|
|
87
|
-
*/
|
|
88
|
-
animationLoop(tab) {
|
|
89
|
-
// remove the animated class so nothing animates yet
|
|
90
|
-
tab.setAttribute('data-animate', 'false');
|
|
91
|
-
// animation start - this applyUpdatedCSSValues sets the active indicator to the location of the previously selected tab
|
|
92
|
-
this.applyUpdatedCSSValues(tab);
|
|
93
|
-
// changing the previously active tab allows the applyUpdatedCSSValues method to calculate the correct end to the animation.
|
|
94
|
-
this.previousActiveTabData = this.activeTabData;
|
|
95
|
-
// calculate and apply updated css values for animation.
|
|
96
|
-
this.applyUpdatedCSSValues(tab);
|
|
97
|
-
// add the css class and active indicator will animate from the previous tab location to its tab location
|
|
98
|
-
tab.setAttribute('data-animate', 'true');
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Sets the data from the active tab onto the class. used for making all the animation calculations for the active
|
|
102
|
-
* tab indicator.
|
|
103
|
-
*
|
|
104
|
-
* @internal
|
|
105
|
-
*/
|
|
106
|
-
setTabData() {
|
|
107
|
-
if (this.tabs && this.tabs.length > 0) {
|
|
108
|
-
const tabs = this.tabs;
|
|
109
|
-
const activeTab = this.activetab || tabs[0];
|
|
110
|
-
const activeRect = activeTab?.getBoundingClientRect();
|
|
111
|
-
const parentRect = this.getBoundingClientRect();
|
|
112
|
-
this.activeTabData = {
|
|
113
|
-
x: activeRect.x - parentRect.x,
|
|
114
|
-
y: activeRect.y - parentRect.y,
|
|
115
|
-
height: activeRect.height,
|
|
116
|
-
width: activeRect.width,
|
|
117
|
-
};
|
|
118
|
-
if (this.previousActiveTabData?.x !== this.activeTabData?.x &&
|
|
119
|
-
this.previousActiveTabData?.y !== this.activeTabData?.y) {
|
|
120
|
-
this.previousActiveTabData = this.activeTabData;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Sets the css variables for the active tab indicator.
|
|
126
|
-
* @internal
|
|
127
|
-
*/
|
|
128
|
-
setAnimationVars() {
|
|
129
|
-
this.style.setProperty('--tabIndicatorOffset', `${this.activeTabOffset}px`);
|
|
130
|
-
this.style.setProperty('--tabIndicatorScale', `${this.activeTabScale}`);
|
|
23
|
+
disconnectedCallback() {
|
|
24
|
+
this.fg?.disconnect();
|
|
25
|
+
super.disconnectedCallback();
|
|
131
26
|
}
|
|
132
|
-
/**
|
|
133
|
-
* Initiates the active tab indicator animation loop when activeid changes.
|
|
134
|
-
* @param oldValue - the previous tabId
|
|
135
|
-
* @param newValue - the new tabId
|
|
136
|
-
*/
|
|
137
|
-
activeidChanged(oldValue, newValue) {
|
|
138
|
-
super.activeidChanged(oldValue, newValue);
|
|
139
|
-
this.setTabData();
|
|
140
|
-
if (this.activetab) {
|
|
141
|
-
this.animationLoop(this.activetab);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Initiates the active tab indicator animation loop when tabs change.
|
|
146
|
-
*/
|
|
147
27
|
tabsChanged(prev, next) {
|
|
148
28
|
super.tabsChanged(prev, next);
|
|
149
|
-
this.
|
|
150
|
-
if (this.
|
|
151
|
-
this.
|
|
29
|
+
this.fgItems ??= new ArrayItemCollection(() => this.tabs?.filter(t => (t.getAttribute('aria-selected') === 'true' || !t.disabled) && !t.hidden) ?? [], () => this.activetab ?? null);
|
|
30
|
+
if (!this.fg) {
|
|
31
|
+
this.fg = new FocusGroup(this, this.fgItems, {
|
|
32
|
+
definition: {
|
|
33
|
+
behavior: 'tablist',
|
|
34
|
+
axis: undefined,
|
|
35
|
+
memory: false,
|
|
36
|
+
wrap: true,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.fg.update();
|
|
152
42
|
}
|
|
153
43
|
}
|
|
154
44
|
}
|