The Tab Panel component is presentational and only renders markup related to the tabs themselves (that is, tab panel content areas are managed and rendered separately). Being a presentational component, tabs hold no state and therefore rely on parent controllers to provide statefulness.
TabPanelBindings = { tabs: '<', onChanges: '&?', onTabSelected: '&', bottomHighlight: '<', topHighlight: '<', centerTabs: '<?', isOpen: '<?', hideSingleTab: '<?' };
Several of the bindings related only to style: bottomHighlight
(default), topHighlight
, centerTabs
, isOpen
(only for responsive panel), and hideSingleTab
(Tab Cards). onChanges
and onTabSelected
provide callback actions to the parent controller. tabs
is the array of tabs to be displayed:
[{ name : 'Summary', active : true, notificationCount: 2 }, { name : 'Comments', active : false, notificationCount: 4 }, { name : 'Emphasized', active : false, hasEmphasis: true, notificationCount: 4 }, { name: 'Has Error', hasError: true }];
name
and notificationCount
will be rendered as part of the tab. active
indicates state. hasEmphasis
changes the color of the notification count badge. hasError
shows a small error icon to indicate the tab content may be invalid.
No default styles are provided for the tab content area. This depends on context and should be informed by placement and size (cards vs. side panels, etc.).