@umbraco-ui/uui-tag
Version:
Tag component from Umbraco UI components library. Comes in one shape, but different looks and sizes
129 lines (123 loc) • 3.92 kB
JavaScript
import { defineElement } from '@umbraco-ui/uui-base/lib/registration';
import { css, LitElement, html } from 'lit';
import { property } from 'lit/decorators.js';
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __decorateClass = (decorators, target, key, kind) => {
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
for (var i = decorators.length - 1, decorator; i >= 0; i--)
if (decorator = decorators[i])
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
if (kind && result) __defProp(target, key, result);
return result;
};
let UUITagElement = class extends LitElement {
constructor() {
super(...arguments);
this.color = "default";
this.look = "primary";
}
render() {
return html`<slot></slot>`;
}
};
UUITagElement.styles = [
css`
:host {
display: inline-block;
font-size: var(--uui-tag-font-size, var(--uui-type-small-size,12px));
font-weight: 700;
line-height: 1;
padding: var(
--uui-tag-padding,
var(--uui-size-space-1,3px) calc(var(--uui-size-space-1,3px) + 0.5em)
);
border-radius: 100px;
user-select: none;
border-radius: var(--uui-tag-border-radius, var(--uui-size-4,12px));
border: 1px solid var(--uui-tag-border-color, transparent);
}
slot {
display: block;
align-content: center;
margin: 2px;
}
:host {
--color: var(--uui-color-default,#1b264f);
--color-standalone: var(--uui-color-default-standalone,rgb(
28,
35,
59
));
--color-contrast: var(--uui-color-default-contrast,#fff);
}
:host([color='positive']) {
--color: var(--uui-color-positive,#0b8152);
--color-standalone: var(--uui-color-positive-standalone,rgb(
10,
115,
73
));
--color-contrast: var(--uui-color-positive-contrast,#fff);
}
:host([color='warning']) {
--color: var(--uui-color-warning,#fbd142);
--color-standalone: var(--uui-color-warning-standalone,#a17700);
--color-contrast: var(--uui-color-warning-contrast,#000);
}
:host([color='danger']) {
--color: var(--uui-color-danger,#d42054);
--color-standalone: var(--uui-color-danger-standalone,rgb(
191,
33,
78
));
--color-contrast: var(--uui-color-danger-contrast,white);
}
:host([color='invalid']) {
--color: var(--uui-color-invalid,#d42054);
--color-standalone: var(--uui-color-invalid-standalone,rgb(
191,
33,
78
));
--color-contrast: var(--uui-color-invalid-contrast,white);
}
:host {
background-color: var(--uui-color-surface,#fff);
color: var(--color-standalone);
border-color: transparent;
}
:host([look='primary']) {
background-color: var(--color);
color: var(--color-contrast);
border-color: transparent;
}
:host([look='secondary']) {
background-color: var(--uui-color-surface-alt,#f3f3f5);
color: var(--color-standalone);
border-color: transparent;
}
:host([look='outline']) {
background-color: transparent;
color: var(--color-standalone);
border-color: var(--color-standalone);
}
:host([look='placeholder']) {
border-style: dashed;
background-color: transparent;
color: var(--color-standalone);
border-color: var(--uui-color-border-standalone,#c2c2c2);
}
`
];
__decorateClass([
property({ reflect: true })
], UUITagElement.prototype, "color", 2);
__decorateClass([
property({ reflect: true })
], UUITagElement.prototype, "look", 2);
UUITagElement = __decorateClass([
defineElement("uui-tag")
], UUITagElement);
export { UUITagElement };