70 lines
1.5 KiB
TypeScript
70 lines
1.5 KiB
TypeScript
|
import {
|
||
|
customElement,
|
||
|
DeesElement,
|
||
|
type TemplateResult,
|
||
|
state,
|
||
|
html,
|
||
|
domtools,
|
||
|
property,
|
||
|
css,
|
||
|
cssManager,
|
||
|
} from '@design.estate/dees-element';
|
||
|
|
||
|
const { demoFunc } = await import('./dees-input-multiselect.demo.js');
|
||
|
|
||
|
@customElement('dees-input-multiselect')
|
||
|
export class DeesInputMultiselect extends DeesElement {
|
||
|
public static demo = demoFunc;
|
||
|
|
||
|
constructor() {
|
||
|
super();
|
||
|
}
|
||
|
|
||
|
public static styles = [
|
||
|
cssManager.defaultStyles,
|
||
|
css`
|
||
|
:host {
|
||
|
color: ${cssManager.bdTheme('#333', '#fff')}
|
||
|
}
|
||
|
.label {
|
||
|
font-size: 14px;
|
||
|
margin-bottom: 4px;
|
||
|
}
|
||
|
.mainbox {
|
||
|
border-radius: 3px;
|
||
|
background: #222;
|
||
|
overflow: hidden;
|
||
|
border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #444')};
|
||
|
border-bottom: ${cssManager.bdTheme('1px solid #CCC', '1px solid #333')};
|
||
|
border-right: ${cssManager.bdTheme('1px solid #CCC', 'none')};
|
||
|
border-left: ${cssManager.bdTheme('1px solid #CCC', 'none')};
|
||
|
}
|
||
|
|
||
|
.selections {
|
||
|
padding: 8px;
|
||
|
}
|
||
|
|
||
|
input {
|
||
|
background: #181818;
|
||
|
width: 100%;
|
||
|
outline: none;
|
||
|
border: none;
|
||
|
color: inherit;
|
||
|
padding: 8px;
|
||
|
}
|
||
|
`,
|
||
|
];
|
||
|
|
||
|
public render(): TemplateResult {
|
||
|
return html`
|
||
|
<div class="label">MultiSelect</div>
|
||
|
<div class="mainbox">
|
||
|
<div class="selections">
|
||
|
Nothing selected...
|
||
|
</div>
|
||
|
<input type="text" placeholder="Type to select" />
|
||
|
</div>
|
||
|
`;
|
||
|
}
|
||
|
}
|