first commit

This commit is contained in:
Stefan Hacker
2026-04-03 09:38:48 +02:00
commit 37ad745546
47450 changed files with 3120798 additions and 0 deletions
@@ -0,0 +1,3 @@
import * as React from 'react';
import type { IMessageBarProps } from './MessageBar.types';
export declare const MessageBarBase: React.FunctionComponent<IMessageBarProps>;
@@ -0,0 +1,87 @@
var _a;
import { __assign } from "tslib";
import * as React from 'react';
import { DelayedRender, classNamesFunction, getNativeProps, htmlElementProperties, css } from '../../Utilities';
import { IconButton } from '../../Button';
import { Icon } from '../../Icon';
import { MessageBarType } from './MessageBar.types';
import { useId, useBoolean } from '@fluentui/react-hooks';
var ICON_MAP = (_a = {},
_a[MessageBarType.info] = 'Info',
_a[MessageBarType.warning] = 'Info',
_a[MessageBarType.error] = 'ErrorBadge',
_a[MessageBarType.blocked] = 'Blocked2',
_a[MessageBarType.severeWarning] = 'Warning',
_a[MessageBarType.success] = 'Completed',
_a);
var COMPONENT_NAME = 'MessageBar';
var getClassNames = classNamesFunction();
var getAnnouncementPriority = function (messageBarType) {
switch (messageBarType) {
case MessageBarType.blocked:
case MessageBarType.error:
case MessageBarType.severeWarning:
return 'assertive';
}
return 'polite';
};
var getRole = function (messageBarType) {
switch (messageBarType) {
case MessageBarType.blocked:
case MessageBarType.error:
case MessageBarType.severeWarning:
return 'alert';
}
return 'status';
};
export var MessageBarBase = React.forwardRef(function (props, ref) {
var _a = useBoolean(false), expandSingleLine = _a[0], toggleExpandSingleLine = _a[1].toggle;
var labelId = useId('MessageBar');
var actions = props.actions, className = props.className, children = props.children,
// eslint-disable-next-line @typescript-eslint/no-deprecated
overflowButtonAriaLabel = props.overflowButtonAriaLabel, dismissIconProps = props.dismissIconProps, styles = props.styles, theme = props.theme, _b = props.messageBarType, messageBarType = _b === void 0 ? MessageBarType.info : _b, _c = props.onDismiss, onDismiss = _c === void 0 ? undefined : _c, _d = props.isMultiline, isMultiline = _d === void 0 ? true : _d, truncated = props.truncated, dismissButtonAriaLabel = props.dismissButtonAriaLabel, messageBarIconProps = props.messageBarIconProps, role = props.role, _e = props.delayedRender, delayedRender = _e === void 0 ? true : _e, expandButtonProps = props.expandButtonProps, _f = props.onExpandButtonToggled, onExpandButtonToggled = _f === void 0 ? undefined : _f, showExpandButton = props.showExpandButton;
// Wrap 'toggleExpandSingleLine' to execute the 'onExpandButtonToggled' callback whenever the expand button toggles
var handleToggleExpandSingleLine = React.useCallback(function () {
toggleExpandSingleLine();
if (onExpandButtonToggled) {
// We use the opposite of 'expandSingleLine' here because at this point the useBoolean's
// useState hasn't been updated yet.
onExpandButtonToggled(!expandSingleLine);
}
}, [expandSingleLine, onExpandButtonToggled, toggleExpandSingleLine]);
var nativeProps = getNativeProps(props, htmlElementProperties, [
'className',
'role',
]);
var classNames = getClassNames(styles, {
theme: theme,
messageBarType: messageBarType || MessageBarType.info,
onDismiss: onDismiss !== undefined,
actions: actions !== undefined,
truncated: truncated,
isMultiline: isMultiline,
expandSingleLine: expandSingleLine,
className: className,
});
var expandIconProps = { iconName: expandSingleLine ? 'DoubleChevronUp' : 'DoubleChevronDown' };
var regionProps = actions || onDismiss ? { 'aria-describedby': labelId, role: 'region' } : {};
var actionsDiv = actions ? React.createElement("div", { className: classNames.actions }, actions) : null;
var dismissButton = onDismiss ? (React.createElement(IconButton, { disabled: false, className: classNames.dismissal, onClick: onDismiss, iconProps: dismissIconProps ? dismissIconProps : { iconName: 'Clear' }, title: dismissButtonAriaLabel, ariaLabel: dismissButtonAriaLabel })) : null;
return (React.createElement("div", __assign({ ref: ref, className: classNames.root }, regionProps),
React.createElement("div", { className: classNames.content },
React.createElement("div", { className: classNames.iconContainer, "aria-hidden": true }, messageBarIconProps ? (React.createElement(Icon, __assign({}, messageBarIconProps, { className: css(classNames.icon, messageBarIconProps.className) }))) : (React.createElement(Icon, { iconName: ICON_MAP[messageBarType], className: classNames.icon }))),
React.createElement("div", { className: classNames.text, id: labelId, role: role || getRole(messageBarType), "aria-live": getAnnouncementPriority(messageBarType) },
React.createElement("span", __assign({ className: classNames.innerText }, nativeProps), delayedRender ? (React.createElement(DelayedRender, null,
React.createElement("span", null, children))) : (
// this span is probably not necessary, but preserving it for now in case anyone
// has styling that expects it to be present
React.createElement("span", null, children)))),
/* singleline expand/collapse button */ (showExpandButton || (!isMultiline && !actionsDiv && truncated)) && (React.createElement("div", { className: classNames.expandSingleLine },
React.createElement(IconButton, __assign({ disabled: false, className: classNames.expand, onClick: handleToggleExpandSingleLine, iconProps: expandIconProps, ariaLabel: overflowButtonAriaLabel, "aria-expanded": expandSingleLine }, expandButtonProps)))), /* singleline actions */
!isMultiline && actionsDiv,
/* singleline dismiss */ !isMultiline && dismissButton && (React.createElement("div", { className: classNames.dismissSingleLine }, dismissButton)), /* multiline dismiss */
isMultiline && dismissButton), /* multiline actions */
isMultiline && actionsDiv));
});
MessageBarBase.displayName = COMPONENT_NAME;
//# sourceMappingURL=MessageBar.base.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,3 @@
import * as React from 'react';
import type { IMessageBarProps } from './MessageBar.types';
export declare const MessageBar: React.FunctionComponent<IMessageBarProps>;
+7
View File
@@ -0,0 +1,7 @@
import { styled } from '../../Utilities';
import { MessageBarBase } from './MessageBar.base';
import { getStyles } from './MessageBar.styles';
export var MessageBar = styled(MessageBarBase, getStyles, undefined, {
scope: 'MessageBar',
});
//# sourceMappingURL=MessageBar.js.map
@@ -0,0 +1 @@
{"version":3,"file":"MessageBar.js","sourceRoot":"../src/","sources":["components/MessageBar/MessageBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,CAAC,IAAM,UAAU,GAA8C,MAAM,CAIzE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE;IACtC,KAAK,EAAE,YAAY;CACpB,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { styled } from '../../Utilities';\nimport { MessageBarBase } from './MessageBar.base';\nimport { getStyles } from './MessageBar.styles';\nimport type { IMessageBarProps, IMessageBarStyleProps, IMessageBarStyles } from './MessageBar.types';\n\nexport const MessageBar: React.FunctionComponent<IMessageBarProps> = styled<\n IMessageBarProps,\n IMessageBarStyleProps,\n IMessageBarStyles\n>(MessageBarBase, getStyles, undefined, {\n scope: 'MessageBar',\n});\n"]}
@@ -0,0 +1,2 @@
import type { IMessageBarStyleProps, IMessageBarStyles } from './MessageBar.types';
export declare const getStyles: (props: IMessageBarStyleProps) => IMessageBarStyles;
@@ -0,0 +1,272 @@
var _a, _b, _c, _d;
import { __assign } from "tslib";
import { HighContrastSelector, HighContrastSelectorWhite, ScreenWidthMaxSmall, getScreenSelector, getGlobalClassNames, getFocusStyle, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';
import { MessageBarType } from './MessageBar.types';
var GlobalClassNames = {
root: 'ms-MessageBar',
error: 'ms-MessageBar--error',
blocked: 'ms-MessageBar--blocked',
severeWarning: 'ms-MessageBar--severeWarning',
success: 'ms-MessageBar--success',
warning: 'ms-MessageBar--warning',
multiline: 'ms-MessageBar-multiline',
singleline: 'ms-MessageBar-singleline',
dismissalSingleLine: 'ms-MessageBar-dismissalSingleLine',
expandingSingleLine: 'ms-MessageBar-expandingSingleLine',
content: 'ms-MessageBar-content',
iconContainer: 'ms-MessageBar-icon',
text: 'ms-MessageBar-text',
innerText: 'ms-MessageBar-innerText',
dismissSingleLine: 'ms-MessageBar-dismissSingleLine',
expandSingleLine: 'ms-MessageBar-expandSingleLine',
dismissal: 'ms-MessageBar-dismissal',
expand: 'ms-MessageBar-expand',
actions: 'ms-MessageBar-actions',
actionsSingleline: 'ms-MessageBar-actionsSingleLine',
};
var backgroundColor = (_a = {},
_a[MessageBarType.error] = 'errorBackground',
_a[MessageBarType.blocked] = 'errorBackground',
_a[MessageBarType.success] = 'successBackground',
_a[MessageBarType.warning] = 'warningBackground',
_a[MessageBarType.severeWarning] = 'severeWarningBackground',
_a[MessageBarType.info] = 'infoBackground',
_a);
var iconColor = (_b = {},
_b[MessageBarType.error] = 'errorIcon',
_b[MessageBarType.blocked] = 'errorIcon',
_b[MessageBarType.success] = 'successIcon',
_b[MessageBarType.warning] = 'warningIcon',
_b[MessageBarType.severeWarning] = 'severeWarningIcon',
_b[MessageBarType.info] = 'infoIcon',
_b);
var highContrastBorderColor = (_c = {},
_c[MessageBarType.error] = '#ff0000',
_c[MessageBarType.blocked] = '#ff0000',
_c[MessageBarType.success] = '#bad80a',
_c[MessageBarType.warning] = '#fff100',
_c[MessageBarType.severeWarning] = '#ff0000',
_c[MessageBarType.info] = 'WindowText',
_c);
var highContrastWhiteBorderColor = (_d = {},
_d[MessageBarType.error] = '#e81123',
_d[MessageBarType.blocked] = '#e81123',
_d[MessageBarType.success] = '#107c10',
_d[MessageBarType.warning] = '#966400',
_d[MessageBarType.severeWarning] = '#d83b01',
_d[MessageBarType.info] = 'WindowText',
_d);
export var getStyles = function (props) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
var theme = props.theme, className = props.className, onDismiss = props.onDismiss, truncated = props.truncated, isMultiline = props.isMultiline, expandSingleLine = props.expandSingleLine, _m = props.messageBarType, messageBarType = _m === void 0 ? MessageBarType.info : _m;
var semanticColors = theme.semanticColors, fonts = theme.fonts;
var SmallScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);
var classNames = getGlobalClassNames(GlobalClassNames, theme);
var dismissalAndExpandIconStyle = {
fontSize: IconFontSizes.xSmall,
height: 10,
lineHeight: '10px',
color: semanticColors.messageText,
selectors: (_a = {},
_a[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),
_a),
};
var dismissalAndExpandStyle = [
getFocusStyle(theme, {
inset: 1,
highContrastStyle: {
outlineOffset: '-6px',
outline: '1px solid Highlight',
},
borderColor: 'transparent',
}),
{
flexShrink: 0,
width: 32,
height: 32,
padding: '8px 12px',
selectors: {
'& .ms-Button-icon': dismissalAndExpandIconStyle,
':hover': {
backgroundColor: 'transparent',
},
':active': {
backgroundColor: 'transparent',
},
},
},
];
return {
root: [
classNames.root,
fonts.medium,
messageBarType === MessageBarType.error && classNames.error,
messageBarType === MessageBarType.blocked && classNames.blocked,
messageBarType === MessageBarType.severeWarning && classNames.severeWarning,
messageBarType === MessageBarType.success && classNames.success,
messageBarType === MessageBarType.warning && classNames.warning,
isMultiline ? classNames.multiline : classNames.singleline,
!isMultiline && onDismiss && classNames.dismissalSingleLine,
!isMultiline && truncated && classNames.expandingSingleLine,
{
background: semanticColors[backgroundColor[messageBarType]],
boxSizing: 'border-box',
color: semanticColors.messageText,
minHeight: 32,
width: '100%',
display: 'flex',
wordBreak: 'break-word',
selectors: (_b = {
'.ms-Link': {
color: semanticColors.messageLink,
selectors: {
':hover': {
color: semanticColors.messageLinkHovered,
},
},
}
},
_b[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { background: 'transparent', border: "1px solid ".concat(highContrastBorderColor[messageBarType]), color: 'WindowText' }),
_b[HighContrastSelectorWhite] = {
border: "1px solid ".concat(highContrastWhiteBorderColor[messageBarType]),
},
_b),
},
isMultiline && {
flexDirection: 'column',
},
className,
],
content: [
classNames.content,
(_c = {
display: 'flex',
width: '100%',
lineHeight: 'normal'
},
_c[SmallScreenSelector] = {
display: 'grid',
gridTemplateColumns: 'auto 1fr auto',
gridTemplateRows: '1fr auto',
gridTemplateAreas: "\n \"icon text close\"\n \"action action action\"\n ",
},
_c),
],
iconContainer: [
classNames.iconContainer,
(_d = {
fontSize: IconFontSizes.medium,
minWidth: 16,
minHeight: 16,
display: 'flex',
flexShrink: 0,
margin: '8px 0 8px 12px'
},
_d[SmallScreenSelector] = {
gridArea: 'icon',
},
_d),
],
icon: {
color: semanticColors[iconColor[messageBarType]],
selectors: (_e = {},
_e[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),
_e),
},
text: [
classNames.text,
__assign(__assign({ minWidth: 0, display: 'flex', flexGrow: 1, margin: 8 }, fonts.small), (_f = {}, _f[SmallScreenSelector] = {
gridArea: 'text',
}, _f.selectors = (_g = {},
_g[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),
_g), _f)),
!onDismiss && {
marginRight: 12,
},
],
innerText: [
classNames.innerText,
{
lineHeight: 16,
selectors: {
'& span a:last-child': {
paddingLeft: 4,
},
},
},
truncated && {
overflow: 'visible',
whiteSpace: 'pre-wrap',
},
!isMultiline && {
// In high contrast this causes the top and bottom of links' focus outline to be clipped
// (not sure of a good way around that while still maintaining text clipping)
overflow: 'hidden',
textOverflow: 'ellipsis',
whiteSpace: 'nowrap',
},
!isMultiline &&
!truncated && {
selectors: (_h = {},
_h[SmallScreenSelector] = {
overflow: 'visible',
whiteSpace: 'pre-wrap',
},
_h),
},
expandSingleLine && {
overflow: 'visible',
whiteSpace: 'pre-wrap',
},
],
dismissSingleLine: [
classNames.dismissSingleLine,
(_j = {},
_j[SmallScreenSelector] = {
gridArea: 'close',
},
_j),
],
expandSingleLine: classNames.expandSingleLine,
dismissal: [classNames.dismissal, dismissalAndExpandStyle],
expand: [classNames.expand, dismissalAndExpandStyle],
actions: [
isMultiline ? classNames.actions : classNames.actionsSingleline,
(_k = {
display: 'flex',
flexGrow: 0,
flexShrink: 0,
flexBasis: 'auto',
flexDirection: 'row-reverse',
alignItems: 'center',
margin: '0 12px 0 8px',
// reset forced colors to browser control for inner actions
forcedColorAdjust: 'auto',
MsHighContrastAdjust: 'auto'
},
_k[SmallScreenSelector] = {
gridArea: 'action',
marginRight: 8,
marginBottom: 8,
},
_k.selectors = {
'& button:nth-child(n+2)': (_l = {
marginLeft: 8
},
_l[SmallScreenSelector] = {
marginBottom: 0,
},
_l),
},
_k),
isMultiline && {
marginBottom: 8,
},
onDismiss &&
!isMultiline && {
marginRight: 0,
},
],
};
};
//# sourceMappingURL=MessageBar.styles.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,222 @@
import * as React from 'react';
import { BaseButton, Button, IButtonProps } from '../../Button';
import type { ITheme, IStyle } from '../../Styling';
import type { IRefObject, IStyleFunctionOrObject } from '../../Utilities';
import type { IIconProps } from '../../Icon';
import type { JSXElement } from '@fluentui/utilities';
/**
* {@docCategory MessageBar}
*/
export interface IMessageBar {
}
/**
* {@docCategory MessageBar}
*/
export interface IMessageBarProps extends React.HTMLAttributes<HTMLElement>, React.RefAttributes<HTMLDivElement> {
/**
* Optional callback to access the IMessageBar interface. Use this instead of ref for accessing
* the public methods and properties of the component.
*/
componentRef?: IRefObject<IMessageBar>;
/**
* The type of MessageBar to render.
* @defaultvalue MessageBarType.info
*/
messageBarType?: MessageBarType;
/**
* The actions you want to show on the other side.
*/
actions?: JSXElement;
/**
* A description of the message bar for the benefit of screen readers.
* @deprecated Use native prop `aria-label` instead.
*/
ariaLabel?: string;
/**
* Whether the message bar has a dismiss button and its callback.
* If null, we don't show a dismiss button.
* @defaultvalue null
*/
onDismiss?: (ev?: React.MouseEvent<HTMLElement | BaseButton | Button>) => any;
/**
* Determines if the message bar is multi lined.
* If false, and the text overflows over buttons or to another line, it is clipped.
* @defaultvalue true
*/
isMultiline?: boolean;
/**
* Aria label on dismiss button if onDismiss is defined.
*/
dismissButtonAriaLabel?: string;
/**
* Determines if the message bar text is truncated.
* If true, a button will render to toggle between a single line view and multiline view.
* This prop is for single line message bars with no buttons only in a limited space scenario.
* @defaultvalue false
*/
truncated?: boolean;
/**
* Aria label on overflow button if truncated is defined.
* @deprecated Use `expandButtonProps` instead.
*/
overflowButtonAriaLabel?: string;
/**
* Additional CSS class(es) to apply to the MessageBar.
*/
className?: string;
/**
* Theme (provided through customization.)
*/
theme?: ITheme;
/**
* Call to provide customized styling that will layer on top of the variant rules.
*/
styles?: IStyleFunctionOrObject<IMessageBarStyleProps, IMessageBarStyles>;
/**
* Custom icon prop to replace the dismiss icon.
* If unset, default will be the Fabric Clear icon.
*/
dismissIconProps?: IIconProps;
/**
* Custom icon prop to replace the message bar icon.
* If unset, default will be the icon set by messageBarType.
*/
messageBarIconProps?: IIconProps;
/**
* Button props that can be applied to the expand button of the MessageBar.
*/
expandButtonProps?: IButtonProps;
/**
* Callback to execute when expand button is toggled
* @returns
*/
onExpandButtonToggled?: (expandSingleLine: boolean) => void;
/**
* Custom role to apply to the MessageBar.
* @defaultvalue `alert` if `messageBarType` is `error`, `blocked`, or `severeWarning`;
* or `status` otherwise
*/
role?: 'alert' | 'status' | 'none';
/**
* By default, MessageBar delay-renders its content within an internal live region to help ensure
* it's announced by screen readers. You can disable that behavior by setting this prop to `false`.
*
* If you set this prop to `false`, to ensure proper announcement you should either:
* - If appropriate, ensure that the `role` prop is set to `alert` (this will be done by default
* if `messageBarType` is `error`, `blocked`, or `severeWarning`), OR
* - Set the `role` prop to `none` (to avoid nested `status` regions), wrap the whole MessageBar
* in a `<div role="status">` which is always rendered, and ensure that the MessageBar is
* rendered either conditionally or with a delay.
* @default true
*/
delayedRender?: boolean;
/**
* An optional override to show the expand/collapse icon. It will only be shown by default for
* single-line truncated MessageBars that do not have actions.
* @defaultvalue false
*/
showExpandButton?: boolean;
}
/**
* {@docCategory MessageBar}
*/
export interface IMessageBarStyleProps {
/**
* Theme (provided through customization).
*/
theme: ITheme;
/**
* Additional CSS class(es).
*/
className?: string;
/**
* Type of the MessageBar.
*/
messageBarType?: MessageBarType;
/**
* Whether the MessageBar contains a dismiss button.
*/
onDismiss?: boolean;
/**
* Whether the text is truncated.
*/
truncated?: boolean;
/**
* Whether the MessageBar is rendered in multi line (as opposed to single line) mode.
*/
isMultiline?: boolean;
/**
* Whether the single line MessageBar is being expanded.
*/
expandSingleLine?: boolean;
/**
* Whether the MessageBar contains any action elements.
*/
actions?: boolean;
}
/**
* {@docCategory MessageBar}
*/
export interface IMessageBarStyles {
/**
* Style set for the root element.
*/
root?: IStyle;
/**
* Style set for the element containing the icon, text, and optional dismiss button.
*/
content?: IStyle;
/**
* Style set for the element containing the icon.
*/
iconContainer?: IStyle;
/**
* Style set for the icon.
*/
icon?: IStyle;
/**
* Style set for the element containing the text.
*/
text?: IStyle;
/**
* Style set for the text.
*/
innerText?: IStyle;
/**
* Style set for the optional dismiss button.
*/
dismissal?: IStyle;
/**
* Style set for the icon used to expand and collapse the MessageBar.
*/
expand?: IStyle;
/**
* Style set for the element containing the dismiss button.
*/
dismissSingleLine?: IStyle;
/**
* Style set for the element containing the expand icon.
*/
expandSingleLine?: IStyle;
/**
* Style set for the optional element containing the action elements.
*/
actions?: IStyle;
}
/**
* {@docCategory MessageBar}
*/
export declare enum MessageBarType {
/** Info styled MessageBar */
info = 0,
/** Error styled MessageBar */
error = 1,
/** Blocked styled MessageBar */
blocked = 2,
/** SevereWarning styled MessageBar */
severeWarning = 3,
/** Success styled MessageBar */
success = 4,
/** Warning styled MessageBar */
warning = 5
}
@@ -0,0 +1,19 @@
/**
* {@docCategory MessageBar}
*/
export var MessageBarType;
(function (MessageBarType) {
/** Info styled MessageBar */
MessageBarType[MessageBarType["info"] = 0] = "info";
/** Error styled MessageBar */
MessageBarType[MessageBarType["error"] = 1] = "error";
/** Blocked styled MessageBar */
MessageBarType[MessageBarType["blocked"] = 2] = "blocked";
/** SevereWarning styled MessageBar */
MessageBarType[MessageBarType["severeWarning"] = 3] = "severeWarning";
/** Success styled MessageBar */
MessageBarType[MessageBarType["success"] = 4] = "success";
/** Warning styled MessageBar */
MessageBarType[MessageBarType["warning"] = 5] = "warning";
})(MessageBarType || (MessageBarType = {}));
//# sourceMappingURL=MessageBar.types.js.map
File diff suppressed because one or more lines are too long
+3
View File
@@ -0,0 +1,3 @@
export * from './MessageBar';
export * from './MessageBar.base';
export * from './MessageBar.types';
+4
View File
@@ -0,0 +1,4 @@
export * from './MessageBar';
export * from './MessageBar.base';
export * from './MessageBar.types';
//# sourceMappingURL=index.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"../src/","sources":["components/MessageBar/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './MessageBar';\nexport * from './MessageBar.base';\nexport * from './MessageBar.types';\n"]}