Socket
Socket
Sign inDemoInstall

@applique-ui/banner

Package Overview
Dependencies
Maintainers
2
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@applique-ui/banner - npm Package Compare versions

Comparing version 0.0.53 to 0.0.54

6

dist/actionable.d.ts

@@ -5,3 +5,7 @@ import { PureComponent } from 'react';

data?: {
type?: 'error' | 'warning' | 'success';
/**
* @deprecated
*/
type?: 'error' | 'warning' | 'success' | 'info';
color?: 'error' | 'warning' | 'success' | 'info';
icon?: IconName;

@@ -8,0 +12,0 @@ header?: string;

85

dist/banner.cjs.js

@@ -36,5 +36,5 @@ 'use strict';

styleInject$1(".aui-banner-container{padding:16px;border:1px solid;border-radius:4px;display:flex;flex-direction:row;align-items:flex-start}.aui-banner-container.aui-banner-primary{background-color:#4f46c8;border-color:#4f46c8;color:#fff}.aui-banner-container.aui-banner-primary.aui-banner-no-fill{color:#4f46c8;background-color:transparent}.aui-banner-container.aui-banner-success{background-color:#48c76e;border-color:#48c76e;color:#fff}.aui-banner-container.aui-banner-success.aui-banner-no-fill{color:#48c76e;background-color:transparent}.aui-banner-container.aui-banner-error{background-color:#c84646;border-color:#c84646;color:#fff}.aui-banner-container.aui-banner-error.aui-banner-no-fill{color:#c84646;background-color:transparent}.aui-banner-container.aui-banner-warning{background-color:#efaa1f;border-color:#efaa1f;color:#624a19}.aui-banner-container.aui-banner-warning.aui-banner-no-fill{color:#c39232;border-color:#c39232;background-color:transparent}.aui-banner-container .aui-banner-content{flex:1}.aui-banner-container .aui-banner-icon{width:12px;height:12px;margin-right:16px;transform:scale(1.5);transform-origin:0 -2px}.aui-banner-container .aui-banner-title{font-family:Roboto,Helvetica,sans-serif;font-size:16px;font-weight:500}.aui-banner-container .aui-banner-body{font-family:Roboto,Helvetica,sans-serif;font-size:14px;font-weight:400;margin-top:8px}.aui-banner-container .aui-banner-close{margin-top:4px}.aui-banner-container .aui-banner-close svg{width:20px;height:20px}");
styleInject$1(".aui-banner-container{padding:16px;border:1px solid;border-radius:4px;display:flex;flex-direction:row;align-items:flex-start}.aui-banner-container.aui-banner-info{color:#000;background-color:#e5eefb;border-color:#e5eefb}.aui-banner-container .aui-banner-icon-info{color:#0046ae}.aui-banner-container.aui-banner-success{color:#000;background-color:#dffcf0;border-color:#dffcf0}.aui-banner-container .aui-banner-icon-success{color:#1f845a}.aui-banner-container.aui-banner-error{color:#000;background-color:#fcedeb;border-color:#fcedeb}.aui-banner-container .aui-banner-icon-error{color:#b63a2a}.aui-banner-container.aui-banner-warning{color:#000;background-color:#fff4e5;border-color:#fff4e5}.aui-banner-container .aui-banner-icon-warning{color:#b65c02}.aui-banner-container .aui-banner-content{flex:1}.aui-banner-container .aui-banner-title{font-family:Roboto,Helvetica,sans-serif;font-size:16px;font-weight:500}.aui-banner-container .aui-banner-icon{width:12px;height:12px;margin-right:16px;transform:scale(1.5);transform-origin:0 -2px}.aui-banner-container .aui-banner-body{font-family:Roboto,Helvetica,sans-serif;font-size:14px;font-weight:400;display:inline;margin-top:8px}.aui-banner-container .aui-banner-link{padding-left:4px}.aui-banner-container .aui-banner-icon-link{margin-top:2px;font-size:14px}.aui-banner-container .aui-banner-close{margin-top:4px}.aui-banner-container .aui-banner-close svg{width:20px;height:20px}");
const locals$1 = {"container":"aui-banner-container","primary":"aui-banner-primary","no-fill":"aui-banner-no-fill","success":"aui-banner-success","error":"aui-banner-error","warning":"aui-banner-warning","content":"aui-banner-content","icon":"aui-banner-icon","title":"aui-banner-title","body":"aui-banner-body","close":"aui-banner-close"};
const locals$1 = {"container":"aui-banner-container","info":"aui-banner-info","icon-info":"aui-banner-icon-info","success":"aui-banner-success","icon-success":"aui-banner-icon-success","error":"aui-banner-error","icon-error":"aui-banner-icon-error","warning":"aui-banner-warning","icon-warning":"aui-banner-icon-warning","content":"aui-banner-content","title":"aui-banner-title","icon":"aui-banner-icon","body":"aui-banner-body","link":"aui-banner-link","icon-link":"aui-banner-icon-link","close":"aui-banner-close"};

@@ -61,5 +61,5 @@ function classnames$1() {

styleInject(".aui-banner-container{padding:16px;border:1px solid;border-radius:4px;display:flex;flex-direction:row;align-items:flex-start}.aui-banner-container.aui-banner-primary{background-color:#4f46c8;border-color:#4f46c8;color:#fff}.aui-banner-container.aui-banner-primary.aui-banner-no-fill{color:#4f46c8;background-color:transparent}.aui-banner-container.aui-banner-success{background-color:#48c76e;border-color:#48c76e;color:#fff}.aui-banner-container.aui-banner-success.aui-banner-no-fill{color:#48c76e;background-color:transparent}.aui-banner-container.aui-banner-error{background-color:#c84646;border-color:#c84646;color:#fff}.aui-banner-container.aui-banner-error.aui-banner-no-fill{color:#c84646;background-color:transparent}.aui-banner-container.aui-banner-warning{background-color:#efaa1f;border-color:#efaa1f;color:#624a19}.aui-banner-container.aui-banner-warning.aui-banner-no-fill{color:#c39232;border-color:#c39232;background-color:transparent}.aui-banner-container .aui-banner-content{flex:1}.aui-banner-container .aui-banner-icon{width:12px;height:12px;margin-right:16px;transform:scale(1.5);transform-origin:0 -2px}.aui-banner-container .aui-banner-title{font-family:Roboto,Helvetica,sans-serif;font-size:16px;font-weight:500}.aui-banner-container .aui-banner-body{font-family:Roboto,Helvetica,sans-serif;font-size:14px;font-weight:400;margin-top:8px}.aui-banner-container .aui-banner-close{margin-top:4px}.aui-banner-container .aui-banner-close svg{width:20px;height:20px}.aui-banner-actionable{padding:16px;z-index:9;position:fixed;top:0;right:0;bottom:0;left:0;color:#fff}.aui-banner-actionable.aui-banner-primary{background-color:#4f46c8;border-color:#4f46c8;color:#fff}.aui-banner-actionable.aui-banner-primary.aui-banner-no-fill{color:#4f46c8;background-color:transparent}.aui-banner-actionable.aui-banner-success{background-color:#48c76e;border-color:#48c76e;color:#fff}.aui-banner-actionable.aui-banner-success.aui-banner-no-fill{color:#48c76e;background-color:transparent}.aui-banner-actionable.aui-banner-error{background-color:#c84646;border-color:#c84646;color:#fff}.aui-banner-actionable.aui-banner-error.aui-banner-no-fill{color:#c84646;background-color:transparent}.aui-banner-actionable.aui-banner-warning{background-color:#efaa1f;border-color:#efaa1f;color:#624a19}.aui-banner-actionable.aui-banner-warning.aui-banner-no-fill{color:#c39232;border-color:#c39232;background-color:transparent}.aui-banner-actionable .aui-banner-header{margin-left:32px}.aui-banner-actionable .aui-banner-contents-wrapper{position:relative;width:100vw;height:100vh;padding-left:8px}.aui-banner-actionable .aui-banner-feedback-contain{margin-left:20px}.aui-banner-actionable .aui-banner-contents{position:absolute;top:28%}.aui-banner-actionable .aui-banner-entity-id{margin-top:-8px}.aui-banner-actionable .aui-banner-action-name{width:70vw;padding-top:8px;margin-top:28px;border-top:1px solid #fff}.aui-banner-actionable .aui-banner-close{position:absolute;top:12px;right:16px}.aui-banner-actionable .aui-banner-close svg{width:20px;height:20px}.aui-banner-actionable .aui-banner-action{width:100px;min-width:100px;padding:12px;margin-top:20px;font-size:16px;font-weight:600;color:rgba(0,0,0,.6);border:none;border-radius:4px}.aui-banner-actionable .aui-banner-icon{width:28px;height:28px;margin-top:8px;transform:scale(1.5)}");
styleInject(".aui-banner-container{padding:16px;border:1px solid;border-radius:4px;display:flex;flex-direction:row;align-items:flex-start}.aui-banner-container.aui-banner-info{color:#000;background-color:#e5eefb;border-color:#e5eefb}.aui-banner-container .aui-banner-icon-info{color:#0046ae}.aui-banner-container.aui-banner-success{color:#000;background-color:#dffcf0;border-color:#dffcf0}.aui-banner-container .aui-banner-icon-success{color:#1f845a}.aui-banner-container.aui-banner-error{color:#000;background-color:#fcedeb;border-color:#fcedeb}.aui-banner-container .aui-banner-icon-error{color:#b63a2a}.aui-banner-container.aui-banner-warning{color:#000;background-color:#fff4e5;border-color:#fff4e5}.aui-banner-container .aui-banner-icon-warning{color:#b65c02}.aui-banner-container .aui-banner-content{flex:1}.aui-banner-container .aui-banner-title{font-family:Roboto,Helvetica,sans-serif;font-size:16px;font-weight:500}.aui-banner-container .aui-banner-icon{width:12px;height:12px;margin-right:16px;transform:scale(1.5);transform-origin:0 -2px}.aui-banner-container .aui-banner-body{font-family:Roboto,Helvetica,sans-serif;font-size:14px;font-weight:400;display:inline;margin-top:8px}.aui-banner-container .aui-banner-link{padding-left:4px}.aui-banner-container .aui-banner-icon-link{margin-top:2px;font-size:14px}.aui-banner-container .aui-banner-close{margin-top:4px}.aui-banner-container .aui-banner-close svg{width:20px;height:20px}.aui-banner-actionable{padding:16px;z-index:9;position:fixed;top:0;right:0;bottom:0;left:0;color:#fff}.aui-banner-actionable.aui-banner-info{color:#000;background-color:#e5eefb;border-color:#e5eefb}.aui-banner-actionable .aui-banner-icon-info{color:#0046ae}.aui-banner-actionable.aui-banner-success{color:#000;background-color:#dffcf0;border-color:#dffcf0}.aui-banner-actionable .aui-banner-icon-success{color:#1f845a}.aui-banner-actionable.aui-banner-error{color:#000;background-color:#fcedeb;border-color:#fcedeb}.aui-banner-actionable .aui-banner-icon-error{color:#b63a2a}.aui-banner-actionable.aui-banner-warning{color:#000;background-color:#fff4e5;border-color:#fff4e5}.aui-banner-actionable .aui-banner-icon-warning{color:#b65c02}.aui-banner-actionable .aui-banner-header{margin-left:32px}.aui-banner-actionable .aui-banner-contents-wrapper{position:relative;width:100vw;height:100vh;padding-left:8px}.aui-banner-actionable .aui-banner-feedback-contain{margin-left:20px}.aui-banner-actionable .aui-banner-contents{position:absolute;top:28%}.aui-banner-actionable .aui-banner-entity-id{margin-top:-8px}.aui-banner-actionable .aui-banner-action-name{width:70vw;padding-top:8px;margin-top:28px;border-top:1px solid #fff}.aui-banner-actionable .aui-banner-close{position:absolute;top:12px;right:16px}.aui-banner-actionable .aui-banner-close svg{width:20px;height:20px}.aui-banner-actionable .aui-banner-action{width:100px;min-width:100px;padding:12px;margin-top:20px;font-size:16px;font-weight:600;color:rgba(0,0,0,.6);border:none;border-radius:4px}.aui-banner-actionable .aui-banner-icon{width:28px;height:28px;margin-top:8px;transform:scale(1.5)}");
const locals = {"container":"aui-banner-container","primary":"aui-banner-primary","no-fill":"aui-banner-no-fill","success":"aui-banner-success","error":"aui-banner-error","warning":"aui-banner-warning","content":"aui-banner-content","icon":"aui-banner-icon","title":"aui-banner-title","body":"aui-banner-body","close":"aui-banner-close","actionable":"aui-banner-actionable","header":"aui-banner-header","contents-wrapper":"aui-banner-contents-wrapper","feedback-contain":"aui-banner-feedback-contain","contents":"aui-banner-contents","entity-id":"aui-banner-entity-id","action-name":"aui-banner-action-name","action":"aui-banner-action"};
const locals = {"container":"aui-banner-container","info":"aui-banner-info","icon-info":"aui-banner-icon-info","success":"aui-banner-success","icon-success":"aui-banner-icon-success","error":"aui-banner-error","icon-error":"aui-banner-icon-error","warning":"aui-banner-warning","icon-warning":"aui-banner-icon-warning","content":"aui-banner-content","title":"aui-banner-title","icon":"aui-banner-icon","body":"aui-banner-body","link":"aui-banner-link","icon-link":"aui-banner-icon-link","close":"aui-banner-close","actionable":"aui-banner-actionable","header":"aui-banner-header","contents-wrapper":"aui-banner-contents-wrapper","feedback-contain":"aui-banner-feedback-contain","contents":"aui-banner-contents","entity-id":"aui-banner-entity-id","action-name":"aui-banner-action-name","action":"aui-banner-action"};

@@ -150,2 +150,3 @@ function classnames() {

success: CheckCircleSolid,
info: ExclamationCircleSolid,
};

@@ -166,12 +167,13 @@ const RE_BACKWARD_COMPAT = /^(primary|info)$/;

return null;
const { type, icon, header, subHeader, feedback, entityName, entityId, actionToTake, actionButtonText, onClose, onActionClick, } = data;
const bannerType = type || 'error';
const typeName = RE_BACKWARD_COMPAT.test(bannerType)
? 'success'
: bannerType;
const iconName = icon === undefined ? ICONS[bannerType] : icon;
const { color, type, icon, header, subHeader, feedback, entityName, entityId, actionToTake, actionButtonText, onClose, onActionClick, } = data;
const typeName = RE_BACKWARD_COMPAT.test(color)
? 'info'
: color || RE_BACKWARD_COMPAT.test(type)
? 'info'
: type || 'info';
const iconName = icon === undefined ? ICONS[typeName] : icon;
return (React__default["default"].createElement("div", Object.assign({}, props, { className: classnames('actionable', typeName) }),
React__default["default"].createElement("div", { className: classnames('header') },
React__default["default"].createElement(Text__default["default"].h3, { color: "light" }, header),
React__default["default"].createElement(Text__default["default"].p, { color: "light" }, subHeader)),
React__default["default"].createElement(Text__default["default"].h3, null, header),
React__default["default"].createElement(Text__default["default"].p, null, subHeader)),
onClose && (React__default["default"].createElement(Button__default["default"], { className: classnames('close'), type: "link", icon: TimesSolid, inheritTextColor: true, onClick: onClose, "data-test-id": "close" })),

@@ -182,6 +184,6 @@ React__default["default"].createElement("div", { className: classnames('contents-wrapper') },

React__default["default"].createElement(Layout__default["default"], { type: "row", className: classnames('feedback-contain') },
React__default["default"].createElement(Text__default["default"].h1, { color: "light" }, feedback),
React__default["default"].createElement(Text__default["default"].body, { color: "light", emphasis: "medium" }, entityName),
React__default["default"].createElement(Text__default["default"].h2, { className: classnames('entity-id'), color: "light" }, entityId),
React__default["default"].createElement(Text__default["default"].h3, { className: classnames('action-name'), color: "light" }, actionToTake),
React__default["default"].createElement(Text__default["default"].h1, null, feedback),
React__default["default"].createElement(Text__default["default"].body, { emphasis: "medium" }, entityName),
React__default["default"].createElement(Text__default["default"].h2, { className: classnames('entity-id') }, entityId),
React__default["default"].createElement(Text__default["default"].h3, { className: classnames('action-name') }, actionToTake),
actionButtonText && (React__default["default"].createElement(Button__default["default"] //button type has to be added once new button is added

@@ -196,4 +198,4 @@ , { className: classnames('action'), inheritTextColor: true, onClick: onActionClick, "data-test-id": "action", label: actionButtonText })))))));

}
else if (!data.type) {
throw new Error(`Type not found in data, default will be taken as error.`);
else if (!data.color) {
throw new Error(`Color not found in data, default will be taken as info.`);
}

@@ -203,2 +205,21 @@ },

const ChevronRightSolid = () =>
React__default["default"].createElement(
'svg',
{
'aria-hidden': 'true',
focusable: 'false',
'data-prefix': 'fas',
'data-icon': 'chevron-right',
role: 'img',
xmlns: 'http://www.w3.org/2000/svg',
viewBox: '0 0 320 512',
},
React__default["default"].createElement('path', {
fill: 'currentColor',
d:
'M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z',
})
);
// Design: https://zpl.io/bA7ZRWp

@@ -218,14 +239,15 @@ // Documentation: https://zpl.io/bJGxg6E

render() {
const { className, type, icon, title, solid, onClose, noFill, children, ...props } = this.props;
const typeName = RE_BACKWARD_COMPAT.test(type) ? 'success' : type;
const { className, icon, title, solid, onClose, noFill, children, link, color, type, ...props } = this.props;
const typeName = RE_BACKWARD_COMPAT.test(color) || RE_BACKWARD_COMPAT.test(type)
? 'info'
: color || type || 'info';
const heading = title || children;
const body = title ? children : null;
const iconName = icon === undefined ? ICONS[type] : icon;
return (React__default["default"].createElement("div", Object.assign({}, props, { className: classnames$1('container', typeName, className, {
'no-fill': noFill,
}), role: "alert" }),
iconName ? (React__default["default"].createElement(Icon__default["default"], { className: classnames$1('icon', { top: !!body }), name: iconName })) : null,
const iconName = icon === undefined ? ICONS[typeName] : icon;
return (React__default["default"].createElement("div", Object.assign({}, props, { className: classnames$1('container', typeName, className), role: "alert" }),
iconName ? (React__default["default"].createElement(Icon__default["default"], { className: classnames$1(`icon-${typeName}`, 'icon', { top: !!body }), name: iconName })) : null,
React__default["default"].createElement("div", { className: classnames$1('content') },
React__default["default"].createElement("div", { className: classnames$1('title') }, heading),
body ? React__default["default"].createElement("div", { className: classnames$1('body') }, body) : null),
body ? React__default["default"].createElement("div", { className: classnames$1('body') }, body) : null,
link?.href && (React__default["default"].createElement(Button__default["default"], { type: "link", target: "_blank", href: link.href, secondaryIcon: ChevronRightSolid, className: classnames$1('link'), "data-test-id": "link" }, link.displayText))),
onClose && (React__default["default"].createElement(Button__default["default"], { className: classnames$1('close'), type: "link", icon: TimesSolid, inheritTextColor: true, onClick: onClose, "data-test-id": "close" }))));

@@ -235,6 +257,13 @@ }

Banner.Actionable = Actionable;
Banner.defaultProps = {
type: 'error',
Banner.propTypes = {
__$validation({ link }) {
if (link?.href && !link?.displayText) {
throw new Error(`link should also have a 'displayText'`);
}
if (!link?.href && link?.displayText) {
throw new Error(`link should also have a 'href'`);
}
},
};
exports["default"] = Banner;
import { PureComponent } from 'react';
import { IconName } from '@applique-ui/icon';
import Actionable from './actionable';
import { Link } from './constants';
export interface Props extends BaseProps {

@@ -8,4 +9,8 @@ /**

*/
type?: 'error' | 'warning' | 'success';
/**
* @deprecated
*/
type?: 'error' | 'warning' | 'success' | 'info';
color?: 'error' | 'warning' | 'success' | 'info';
/**
*

@@ -30,5 +35,5 @@ * _TIP:_ Set `icon` to `null` to remove icon.

/**
* Only border based Alert
* If you need to add link to the banner
*/
noFill: boolean;
link?: Link;
}

@@ -47,6 +52,8 @@ /**

static Actionable: typeof Actionable;
static defaultProps: {
type: string;
static propTypes: {
__$validation({ link }: {
link: any;
}): void;
};
render(): JSX.Element;
}

@@ -24,5 +24,5 @@ import React, { PureComponent } from 'react';

styleInject$1(".aui-banner-container{padding:16px;border:1px solid;border-radius:4px;display:flex;flex-direction:row;align-items:flex-start}.aui-banner-container.aui-banner-primary{background-color:#4f46c8;border-color:#4f46c8;color:#fff}.aui-banner-container.aui-banner-primary.aui-banner-no-fill{color:#4f46c8;background-color:transparent}.aui-banner-container.aui-banner-success{background-color:#48c76e;border-color:#48c76e;color:#fff}.aui-banner-container.aui-banner-success.aui-banner-no-fill{color:#48c76e;background-color:transparent}.aui-banner-container.aui-banner-error{background-color:#c84646;border-color:#c84646;color:#fff}.aui-banner-container.aui-banner-error.aui-banner-no-fill{color:#c84646;background-color:transparent}.aui-banner-container.aui-banner-warning{background-color:#efaa1f;border-color:#efaa1f;color:#624a19}.aui-banner-container.aui-banner-warning.aui-banner-no-fill{color:#c39232;border-color:#c39232;background-color:transparent}.aui-banner-container .aui-banner-content{flex:1}.aui-banner-container .aui-banner-icon{width:12px;height:12px;margin-right:16px;transform:scale(1.5);transform-origin:0 -2px}.aui-banner-container .aui-banner-title{font-family:Roboto,Helvetica,sans-serif;font-size:16px;font-weight:500}.aui-banner-container .aui-banner-body{font-family:Roboto,Helvetica,sans-serif;font-size:14px;font-weight:400;margin-top:8px}.aui-banner-container .aui-banner-close{margin-top:4px}.aui-banner-container .aui-banner-close svg{width:20px;height:20px}");
styleInject$1(".aui-banner-container{padding:16px;border:1px solid;border-radius:4px;display:flex;flex-direction:row;align-items:flex-start}.aui-banner-container.aui-banner-info{color:#000;background-color:#e5eefb;border-color:#e5eefb}.aui-banner-container .aui-banner-icon-info{color:#0046ae}.aui-banner-container.aui-banner-success{color:#000;background-color:#dffcf0;border-color:#dffcf0}.aui-banner-container .aui-banner-icon-success{color:#1f845a}.aui-banner-container.aui-banner-error{color:#000;background-color:#fcedeb;border-color:#fcedeb}.aui-banner-container .aui-banner-icon-error{color:#b63a2a}.aui-banner-container.aui-banner-warning{color:#000;background-color:#fff4e5;border-color:#fff4e5}.aui-banner-container .aui-banner-icon-warning{color:#b65c02}.aui-banner-container .aui-banner-content{flex:1}.aui-banner-container .aui-banner-title{font-family:Roboto,Helvetica,sans-serif;font-size:16px;font-weight:500}.aui-banner-container .aui-banner-icon{width:12px;height:12px;margin-right:16px;transform:scale(1.5);transform-origin:0 -2px}.aui-banner-container .aui-banner-body{font-family:Roboto,Helvetica,sans-serif;font-size:14px;font-weight:400;display:inline;margin-top:8px}.aui-banner-container .aui-banner-link{padding-left:4px}.aui-banner-container .aui-banner-icon-link{margin-top:2px;font-size:14px}.aui-banner-container .aui-banner-close{margin-top:4px}.aui-banner-container .aui-banner-close svg{width:20px;height:20px}");
const locals$1 = {"container":"aui-banner-container","primary":"aui-banner-primary","no-fill":"aui-banner-no-fill","success":"aui-banner-success","error":"aui-banner-error","warning":"aui-banner-warning","content":"aui-banner-content","icon":"aui-banner-icon","title":"aui-banner-title","body":"aui-banner-body","close":"aui-banner-close"};
const locals$1 = {"container":"aui-banner-container","info":"aui-banner-info","icon-info":"aui-banner-icon-info","success":"aui-banner-success","icon-success":"aui-banner-icon-success","error":"aui-banner-error","icon-error":"aui-banner-icon-error","warning":"aui-banner-warning","icon-warning":"aui-banner-icon-warning","content":"aui-banner-content","title":"aui-banner-title","icon":"aui-banner-icon","body":"aui-banner-body","link":"aui-banner-link","icon-link":"aui-banner-icon-link","close":"aui-banner-close"};

@@ -49,5 +49,5 @@ function classnames$1() {

styleInject(".aui-banner-container{padding:16px;border:1px solid;border-radius:4px;display:flex;flex-direction:row;align-items:flex-start}.aui-banner-container.aui-banner-primary{background-color:#4f46c8;border-color:#4f46c8;color:#fff}.aui-banner-container.aui-banner-primary.aui-banner-no-fill{color:#4f46c8;background-color:transparent}.aui-banner-container.aui-banner-success{background-color:#48c76e;border-color:#48c76e;color:#fff}.aui-banner-container.aui-banner-success.aui-banner-no-fill{color:#48c76e;background-color:transparent}.aui-banner-container.aui-banner-error{background-color:#c84646;border-color:#c84646;color:#fff}.aui-banner-container.aui-banner-error.aui-banner-no-fill{color:#c84646;background-color:transparent}.aui-banner-container.aui-banner-warning{background-color:#efaa1f;border-color:#efaa1f;color:#624a19}.aui-banner-container.aui-banner-warning.aui-banner-no-fill{color:#c39232;border-color:#c39232;background-color:transparent}.aui-banner-container .aui-banner-content{flex:1}.aui-banner-container .aui-banner-icon{width:12px;height:12px;margin-right:16px;transform:scale(1.5);transform-origin:0 -2px}.aui-banner-container .aui-banner-title{font-family:Roboto,Helvetica,sans-serif;font-size:16px;font-weight:500}.aui-banner-container .aui-banner-body{font-family:Roboto,Helvetica,sans-serif;font-size:14px;font-weight:400;margin-top:8px}.aui-banner-container .aui-banner-close{margin-top:4px}.aui-banner-container .aui-banner-close svg{width:20px;height:20px}.aui-banner-actionable{padding:16px;z-index:9;position:fixed;top:0;right:0;bottom:0;left:0;color:#fff}.aui-banner-actionable.aui-banner-primary{background-color:#4f46c8;border-color:#4f46c8;color:#fff}.aui-banner-actionable.aui-banner-primary.aui-banner-no-fill{color:#4f46c8;background-color:transparent}.aui-banner-actionable.aui-banner-success{background-color:#48c76e;border-color:#48c76e;color:#fff}.aui-banner-actionable.aui-banner-success.aui-banner-no-fill{color:#48c76e;background-color:transparent}.aui-banner-actionable.aui-banner-error{background-color:#c84646;border-color:#c84646;color:#fff}.aui-banner-actionable.aui-banner-error.aui-banner-no-fill{color:#c84646;background-color:transparent}.aui-banner-actionable.aui-banner-warning{background-color:#efaa1f;border-color:#efaa1f;color:#624a19}.aui-banner-actionable.aui-banner-warning.aui-banner-no-fill{color:#c39232;border-color:#c39232;background-color:transparent}.aui-banner-actionable .aui-banner-header{margin-left:32px}.aui-banner-actionable .aui-banner-contents-wrapper{position:relative;width:100vw;height:100vh;padding-left:8px}.aui-banner-actionable .aui-banner-feedback-contain{margin-left:20px}.aui-banner-actionable .aui-banner-contents{position:absolute;top:28%}.aui-banner-actionable .aui-banner-entity-id{margin-top:-8px}.aui-banner-actionable .aui-banner-action-name{width:70vw;padding-top:8px;margin-top:28px;border-top:1px solid #fff}.aui-banner-actionable .aui-banner-close{position:absolute;top:12px;right:16px}.aui-banner-actionable .aui-banner-close svg{width:20px;height:20px}.aui-banner-actionable .aui-banner-action{width:100px;min-width:100px;padding:12px;margin-top:20px;font-size:16px;font-weight:600;color:rgba(0,0,0,.6);border:none;border-radius:4px}.aui-banner-actionable .aui-banner-icon{width:28px;height:28px;margin-top:8px;transform:scale(1.5)}");
styleInject(".aui-banner-container{padding:16px;border:1px solid;border-radius:4px;display:flex;flex-direction:row;align-items:flex-start}.aui-banner-container.aui-banner-info{color:#000;background-color:#e5eefb;border-color:#e5eefb}.aui-banner-container .aui-banner-icon-info{color:#0046ae}.aui-banner-container.aui-banner-success{color:#000;background-color:#dffcf0;border-color:#dffcf0}.aui-banner-container .aui-banner-icon-success{color:#1f845a}.aui-banner-container.aui-banner-error{color:#000;background-color:#fcedeb;border-color:#fcedeb}.aui-banner-container .aui-banner-icon-error{color:#b63a2a}.aui-banner-container.aui-banner-warning{color:#000;background-color:#fff4e5;border-color:#fff4e5}.aui-banner-container .aui-banner-icon-warning{color:#b65c02}.aui-banner-container .aui-banner-content{flex:1}.aui-banner-container .aui-banner-title{font-family:Roboto,Helvetica,sans-serif;font-size:16px;font-weight:500}.aui-banner-container .aui-banner-icon{width:12px;height:12px;margin-right:16px;transform:scale(1.5);transform-origin:0 -2px}.aui-banner-container .aui-banner-body{font-family:Roboto,Helvetica,sans-serif;font-size:14px;font-weight:400;display:inline;margin-top:8px}.aui-banner-container .aui-banner-link{padding-left:4px}.aui-banner-container .aui-banner-icon-link{margin-top:2px;font-size:14px}.aui-banner-container .aui-banner-close{margin-top:4px}.aui-banner-container .aui-banner-close svg{width:20px;height:20px}.aui-banner-actionable{padding:16px;z-index:9;position:fixed;top:0;right:0;bottom:0;left:0;color:#fff}.aui-banner-actionable.aui-banner-info{color:#000;background-color:#e5eefb;border-color:#e5eefb}.aui-banner-actionable .aui-banner-icon-info{color:#0046ae}.aui-banner-actionable.aui-banner-success{color:#000;background-color:#dffcf0;border-color:#dffcf0}.aui-banner-actionable .aui-banner-icon-success{color:#1f845a}.aui-banner-actionable.aui-banner-error{color:#000;background-color:#fcedeb;border-color:#fcedeb}.aui-banner-actionable .aui-banner-icon-error{color:#b63a2a}.aui-banner-actionable.aui-banner-warning{color:#000;background-color:#fff4e5;border-color:#fff4e5}.aui-banner-actionable .aui-banner-icon-warning{color:#b65c02}.aui-banner-actionable .aui-banner-header{margin-left:32px}.aui-banner-actionable .aui-banner-contents-wrapper{position:relative;width:100vw;height:100vh;padding-left:8px}.aui-banner-actionable .aui-banner-feedback-contain{margin-left:20px}.aui-banner-actionable .aui-banner-contents{position:absolute;top:28%}.aui-banner-actionable .aui-banner-entity-id{margin-top:-8px}.aui-banner-actionable .aui-banner-action-name{width:70vw;padding-top:8px;margin-top:28px;border-top:1px solid #fff}.aui-banner-actionable .aui-banner-close{position:absolute;top:12px;right:16px}.aui-banner-actionable .aui-banner-close svg{width:20px;height:20px}.aui-banner-actionable .aui-banner-action{width:100px;min-width:100px;padding:12px;margin-top:20px;font-size:16px;font-weight:600;color:rgba(0,0,0,.6);border:none;border-radius:4px}.aui-banner-actionable .aui-banner-icon{width:28px;height:28px;margin-top:8px;transform:scale(1.5)}");
const locals = {"container":"aui-banner-container","primary":"aui-banner-primary","no-fill":"aui-banner-no-fill","success":"aui-banner-success","error":"aui-banner-error","warning":"aui-banner-warning","content":"aui-banner-content","icon":"aui-banner-icon","title":"aui-banner-title","body":"aui-banner-body","close":"aui-banner-close","actionable":"aui-banner-actionable","header":"aui-banner-header","contents-wrapper":"aui-banner-contents-wrapper","feedback-contain":"aui-banner-feedback-contain","contents":"aui-banner-contents","entity-id":"aui-banner-entity-id","action-name":"aui-banner-action-name","action":"aui-banner-action"};
const locals = {"container":"aui-banner-container","info":"aui-banner-info","icon-info":"aui-banner-icon-info","success":"aui-banner-success","icon-success":"aui-banner-icon-success","error":"aui-banner-error","icon-error":"aui-banner-icon-error","warning":"aui-banner-warning","icon-warning":"aui-banner-icon-warning","content":"aui-banner-content","title":"aui-banner-title","icon":"aui-banner-icon","body":"aui-banner-body","link":"aui-banner-link","icon-link":"aui-banner-icon-link","close":"aui-banner-close","actionable":"aui-banner-actionable","header":"aui-banner-header","contents-wrapper":"aui-banner-contents-wrapper","feedback-contain":"aui-banner-feedback-contain","contents":"aui-banner-contents","entity-id":"aui-banner-entity-id","action-name":"aui-banner-action-name","action":"aui-banner-action"};

@@ -138,2 +138,3 @@ function classnames() {

success: CheckCircleSolid,
info: ExclamationCircleSolid,
};

@@ -154,12 +155,13 @@ const RE_BACKWARD_COMPAT = /^(primary|info)$/;

return null;
const { type, icon, header, subHeader, feedback, entityName, entityId, actionToTake, actionButtonText, onClose, onActionClick, } = data;
const bannerType = type || 'error';
const typeName = RE_BACKWARD_COMPAT.test(bannerType)
? 'success'
: bannerType;
const iconName = icon === undefined ? ICONS[bannerType] : icon;
const { color, type, icon, header, subHeader, feedback, entityName, entityId, actionToTake, actionButtonText, onClose, onActionClick, } = data;
const typeName = RE_BACKWARD_COMPAT.test(color)
? 'info'
: color || RE_BACKWARD_COMPAT.test(type)
? 'info'
: type || 'info';
const iconName = icon === undefined ? ICONS[typeName] : icon;
return (React.createElement("div", Object.assign({}, props, { className: classnames('actionable', typeName) }),
React.createElement("div", { className: classnames('header') },
React.createElement(Text.h3, { color: "light" }, header),
React.createElement(Text.p, { color: "light" }, subHeader)),
React.createElement(Text.h3, null, header),
React.createElement(Text.p, null, subHeader)),
onClose && (React.createElement(Button, { className: classnames('close'), type: "link", icon: TimesSolid, inheritTextColor: true, onClick: onClose, "data-test-id": "close" })),

@@ -170,6 +172,6 @@ React.createElement("div", { className: classnames('contents-wrapper') },

React.createElement(Layout, { type: "row", className: classnames('feedback-contain') },
React.createElement(Text.h1, { color: "light" }, feedback),
React.createElement(Text.body, { color: "light", emphasis: "medium" }, entityName),
React.createElement(Text.h2, { className: classnames('entity-id'), color: "light" }, entityId),
React.createElement(Text.h3, { className: classnames('action-name'), color: "light" }, actionToTake),
React.createElement(Text.h1, null, feedback),
React.createElement(Text.body, { emphasis: "medium" }, entityName),
React.createElement(Text.h2, { className: classnames('entity-id') }, entityId),
React.createElement(Text.h3, { className: classnames('action-name') }, actionToTake),
actionButtonText && (React.createElement(Button //button type has to be added once new button is added

@@ -184,4 +186,4 @@ , { className: classnames('action'), inheritTextColor: true, onClick: onActionClick, "data-test-id": "action", label: actionButtonText })))))));

}
else if (!data.type) {
throw new Error(`Type not found in data, default will be taken as error.`);
else if (!data.color) {
throw new Error(`Color not found in data, default will be taken as info.`);
}

@@ -191,2 +193,21 @@ },

const ChevronRightSolid = () =>
React.createElement(
'svg',
{
'aria-hidden': 'true',
focusable: 'false',
'data-prefix': 'fas',
'data-icon': 'chevron-right',
role: 'img',
xmlns: 'http://www.w3.org/2000/svg',
viewBox: '0 0 320 512',
},
React.createElement('path', {
fill: 'currentColor',
d:
'M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z',
})
);
// Design: https://zpl.io/bA7ZRWp

@@ -206,14 +227,15 @@ // Documentation: https://zpl.io/bJGxg6E

render() {
const { className, type, icon, title, solid, onClose, noFill, children, ...props } = this.props;
const typeName = RE_BACKWARD_COMPAT.test(type) ? 'success' : type;
const { className, icon, title, solid, onClose, noFill, children, link, color, type, ...props } = this.props;
const typeName = RE_BACKWARD_COMPAT.test(color) || RE_BACKWARD_COMPAT.test(type)
? 'info'
: color || type || 'info';
const heading = title || children;
const body = title ? children : null;
const iconName = icon === undefined ? ICONS[type] : icon;
return (React.createElement("div", Object.assign({}, props, { className: classnames$1('container', typeName, className, {
'no-fill': noFill,
}), role: "alert" }),
iconName ? (React.createElement(Icon, { className: classnames$1('icon', { top: !!body }), name: iconName })) : null,
const iconName = icon === undefined ? ICONS[typeName] : icon;
return (React.createElement("div", Object.assign({}, props, { className: classnames$1('container', typeName, className), role: "alert" }),
iconName ? (React.createElement(Icon, { className: classnames$1(`icon-${typeName}`, 'icon', { top: !!body }), name: iconName })) : null,
React.createElement("div", { className: classnames$1('content') },
React.createElement("div", { className: classnames$1('title') }, heading),
body ? React.createElement("div", { className: classnames$1('body') }, body) : null),
body ? React.createElement("div", { className: classnames$1('body') }, body) : null,
link?.href && (React.createElement(Button, { type: "link", target: "_blank", href: link.href, secondaryIcon: ChevronRightSolid, className: classnames$1('link'), "data-test-id": "link" }, link.displayText))),
onClose && (React.createElement(Button, { className: classnames$1('close'), type: "link", icon: TimesSolid, inheritTextColor: true, onClick: onClose, "data-test-id": "close" }))));

@@ -223,6 +245,13 @@ }

Banner.Actionable = Actionable;
Banner.defaultProps = {
type: 'error',
Banner.propTypes = {
__$validation({ link }) {
if (link?.href && !link?.displayText) {
throw new Error(`link should also have a 'displayText'`);
}
if (!link?.href && link?.displayText) {
throw new Error(`link should also have a 'href'`);
}
},
};
export { Banner as default };
import { IconName } from '@applique-ui/icon';
export declare const ICONS: Record<string, IconName>;
export interface Link {
href: string;
displayText: string;
}
export declare const RE_BACKWARD_COMPAT: RegExp;
{
"name": "@applique-ui/banner",
"version": "0.0.53",
"version": "0.0.54",
"main": "dist/banner.cjs.js",

@@ -5,0 +5,0 @@ "module": "dist/banner.esm.js",

@@ -21,3 +21,46 @@ import React from 'react'

})
it('calls `onClick` prop if action Button element is clicked', () => {
const handleClick = jest.fn()
const wrapper = shallow(
<Alert.Actionable
data={{
color: 'info',
actionButtonText: 'OKAY',
onActionClick: handleClick,
}}
/>
)
wrapper.find('[data-test-id="action"]').simulate('click')
expect(handleClick).toHaveBeenCalled()
wrapper.unmount()
})
it('throws error if both href and displayText are not there in link prop', () => {
const linkProps = {
link: {
href: 'https://myntra.com',
},
}
shallow(<Alert {...linkProps}>Click me</Alert>)
})
it('throws error if data not there in actionable', () => {
shallow(<Alert.Actionable />)
})
it('throws error if data.color not there in actionable', () => {
shallow(
<Alert.Actionable
data={{
feedback: 'Wrong Carton!',
header: 'Adding MasterBags',
subHeader: 'Deepak Kumar - New Whitefield',
}}
/>
)
})
})
})

@@ -10,4 +10,8 @@ import { IconName } from '@applique-ui/icon'

success: CheckCircleSolid,
info: ExclamationCircleSolid,
}
export interface Link {
href: string
displayText: string
}
export const RE_BACKWARD_COMPAT = /^(primary|info)$/

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc