Merge pull request #1990 from ing-bank/subclasser-example/button
Subclasser example/button
This commit is contained in:
commit
ac2f2155f2
15 changed files with 556 additions and 268 deletions
30
docs/components/button/extensions.md
Normal file
30
docs/components/button/extensions.md
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# Button >> Extensions ||90
|
||||
|
||||
```js script
|
||||
import { html } from '@mdjs/mdjs-preview';
|
||||
import './extensions/bootstrap-button.mjs';
|
||||
```
|
||||
|
||||
## Bootstrap button
|
||||
|
||||
```js preview-story
|
||||
const capitalize = s => s[0].toUpperCase() + s.slice(1);
|
||||
|
||||
export const bootstrapButton = () => {
|
||||
const variants = [
|
||||
'primary',
|
||||
'secondary',
|
||||
'success',
|
||||
'danger',
|
||||
'warning',
|
||||
'info',
|
||||
'light',
|
||||
'dark',
|
||||
'link',
|
||||
];
|
||||
|
||||
return html`<div>
|
||||
${variants.map(v => html`<bootstrap-button variant="${v}">${capitalize(v)}</bootstrap-button>`)}
|
||||
</div>`;
|
||||
};
|
||||
```
|
||||
10
docs/components/button/extensions/BootstrapButtonTypes.ts
Normal file
10
docs/components/button/extensions/BootstrapButtonTypes.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
export type BootstrapButtonVariant =
|
||||
| 'primary'
|
||||
| 'secondary'
|
||||
| 'success'
|
||||
| 'danger'
|
||||
| 'warning'
|
||||
| 'info'
|
||||
| 'light'
|
||||
| 'dark'
|
||||
| 'link';
|
||||
240
docs/components/button/extensions/bootstrap-button.mjs
Normal file
240
docs/components/button/extensions/bootstrap-button.mjs
Normal file
|
|
@ -0,0 +1,240 @@
|
|||
import { LionButton } from '@lion/ui/button.js';
|
||||
import { css } from 'lit';
|
||||
|
||||
/**
|
||||
* @typedef {import('./BootstrapButtonTypes.js').BootstrapButtonVariant} BootstrapButtonVariant
|
||||
*/
|
||||
|
||||
export class BootstrapButton extends LionButton {
|
||||
/** @type {any} */
|
||||
static properties = {
|
||||
variant: { type: String, reflect: true },
|
||||
};
|
||||
|
||||
static styles = [
|
||||
...super.styles,
|
||||
css`
|
||||
:host {
|
||||
--bs-border-radius: 0.375rem;
|
||||
--bs-border-width: 1px;
|
||||
|
||||
--bs-btn-font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue',
|
||||
'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
|
||||
'Segoe UI Symbol', 'Noto Color Emoji';
|
||||
margin: 0.25rem 0.125rem;
|
||||
|
||||
--bs-btn-padding-x: 0.75rem;
|
||||
--bs-btn-padding-y: 0.375rem;
|
||||
--bs-btn-font-size: 1rem;
|
||||
--bs-btn-font-weight: 400;
|
||||
--bs-btn-line-height: 1.5;
|
||||
--bs-btn-color: var(--bs-body-color);
|
||||
--bs-btn-bg: transparent;
|
||||
--bs-btn-border-width: var(--bs-border-width);
|
||||
--bs-btn-border-color: transparent;
|
||||
--bs-btn-border-radius: var(--bs-border-radius);
|
||||
--bs-btn-hover-border-color: transparent;
|
||||
--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
|
||||
--bs-btn-disabled-opacity: 0.65;
|
||||
--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), 0.5);
|
||||
display: inline-block;
|
||||
padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
|
||||
font-family: var(--bs-btn-font-family);
|
||||
font-size: var(--bs-btn-font-size);
|
||||
font-weight: var(--bs-btn-font-weight);
|
||||
line-height: var(--bs-btn-line-height);
|
||||
color: var(--bs-btn-color);
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
|
||||
border-radius: var(--bs-btn-border-radius);
|
||||
background-color: var(--bs-btn-bg);
|
||||
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,
|
||||
border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
:host(:not([disabled])) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
:host(:hover) {
|
||||
color: var(--bs-btn-hover-color);
|
||||
background-color: var(--bs-btn-hover-bg);
|
||||
border-color: var(--bs-btn-hover-border-color);
|
||||
}
|
||||
|
||||
:host(:active),
|
||||
:host([active]) {
|
||||
color: var(--bs-btn-active-color);
|
||||
background-color: var(--bs-btn-active-bg);
|
||||
border-color: var(--bs-btn-active-border-color);
|
||||
}
|
||||
|
||||
:host([variant='primary']) {
|
||||
--bs-btn-color: #fff;
|
||||
--bs-btn-bg: #0d6efd;
|
||||
--bs-btn-border-color: #0d6efd;
|
||||
--bs-btn-hover-color: #fff;
|
||||
--bs-btn-hover-bg: #0b5ed7;
|
||||
--bs-btn-hover-border-color: #0a58ca;
|
||||
--bs-btn-focus-shadow-rgb: 49, 132, 253;
|
||||
--bs-btn-active-color: #fff;
|
||||
--bs-btn-active-bg: #0a58ca;
|
||||
--bs-btn-active-border-color: #0a53be;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #fff;
|
||||
--bs-btn-disabled-bg: #0d6efd;
|
||||
--bs-btn-disabled-border-color: #0d6efd;
|
||||
}
|
||||
|
||||
:host([variant='secondary']) {
|
||||
--bs-btn-color: #fff;
|
||||
--bs-btn-bg: #6c757d;
|
||||
--bs-btn-border-color: #6c757d;
|
||||
--bs-btn-hover-color: #fff;
|
||||
--bs-btn-hover-bg: #5c636a;
|
||||
--bs-btn-hover-border-color: #565e64;
|
||||
--bs-btn-focus-shadow-rgb: 130, 138, 145;
|
||||
--bs-btn-active-color: #fff;
|
||||
--bs-btn-active-bg: #565e64;
|
||||
--bs-btn-active-border-color: #51585e;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #fff;
|
||||
--bs-btn-disabled-bg: #6c757d;
|
||||
--bs-btn-disabled-border-color: #6c757d;
|
||||
}
|
||||
|
||||
:host([variant='success']) {
|
||||
--bs-btn-color: #fff;
|
||||
--bs-btn-bg: #198754;
|
||||
--bs-btn-border-color: #198754;
|
||||
--bs-btn-hover-color: #fff;
|
||||
--bs-btn-hover-bg: #157347;
|
||||
--bs-btn-hover-border-color: #146c43;
|
||||
--bs-btn-focus-shadow-rgb: 60, 153, 110;
|
||||
--bs-btn-active-color: #fff;
|
||||
--bs-btn-active-bg: #146c43;
|
||||
--bs-btn-active-border-color: #13653f;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #fff;
|
||||
--bs-btn-disabled-bg: #198754;
|
||||
--bs-btn-disabled-border-color: #198754;
|
||||
}
|
||||
|
||||
:host([variant='danger']) {
|
||||
--bs-btn-color: #fff;
|
||||
--bs-btn-bg: #dc3545;
|
||||
--bs-btn-border-color: #dc3545;
|
||||
--bs-btn-hover-color: #fff;
|
||||
--bs-btn-hover-bg: #bb2d3b;
|
||||
--bs-btn-hover-border-color: #b02a37;
|
||||
--bs-btn-focus-shadow-rgb: 225, 83, 97;
|
||||
--bs-btn-active-color: #fff;
|
||||
--bs-btn-active-bg: #b02a37;
|
||||
--bs-btn-active-border-color: #a52834;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #fff;
|
||||
--bs-btn-disabled-bg: #dc3545;
|
||||
--bs-btn-disabled-border-color: #dc3545;
|
||||
}
|
||||
|
||||
:host([variant='warning']) {
|
||||
--bs-btn-color: #000;
|
||||
--bs-btn-bg: #ffc107;
|
||||
--bs-btn-border-color: #ffc107;
|
||||
--bs-btn-hover-color: #000;
|
||||
--bs-btn-hover-bg: #ffca2c;
|
||||
--bs-btn-hover-border-color: #ffc720;
|
||||
--bs-btn-focus-shadow-rgb: 217, 164, 6;
|
||||
--bs-btn-active-color: #000;
|
||||
--bs-btn-active-bg: #ffcd39;
|
||||
--bs-btn-active-border-color: #ffc720;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #000;
|
||||
--bs-btn-disabled-bg: #ffc107;
|
||||
--bs-btn-disabled-border-color: #ffc107;
|
||||
}
|
||||
|
||||
:host([variant='info']) {
|
||||
--bs-btn-color: #000;
|
||||
--bs-btn-bg: #0dcaf0;
|
||||
--bs-btn-border-color: #0dcaf0;
|
||||
--bs-btn-hover-color: #000;
|
||||
--bs-btn-hover-bg: #31d2f2;
|
||||
--bs-btn-hover-border-color: #25cff2;
|
||||
--bs-btn-focus-shadow-rgb: 11, 172, 204;
|
||||
--bs-btn-active-color: #000;
|
||||
--bs-btn-active-bg: #3dd5f3;
|
||||
--bs-btn-active-border-color: #25cff2;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #000;
|
||||
--bs-btn-disabled-bg: #0dcaf0;
|
||||
--bs-btn-disabled-border-color: #0dcaf0;
|
||||
}
|
||||
|
||||
:host([variant='light']) {
|
||||
--bs-btn-color: #000;
|
||||
--bs-btn-bg: #f8f9fa;
|
||||
--bs-btn-border-color: #f8f9fa;
|
||||
--bs-btn-hover-color: #000;
|
||||
--bs-btn-hover-bg: #d3d4d5;
|
||||
--bs-btn-hover-border-color: #c6c7c8;
|
||||
--bs-btn-focus-shadow-rgb: 211, 212, 213;
|
||||
--bs-btn-active-color: #000;
|
||||
--bs-btn-active-bg: #c6c7c8;
|
||||
--bs-btn-active-border-color: #babbbc;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #000;
|
||||
--bs-btn-disabled-bg: #f8f9fa;
|
||||
--bs-btn-disabled-border-color: #f8f9fa;
|
||||
}
|
||||
|
||||
:host([variant='dark']) {
|
||||
--bs-btn-color: #fff;
|
||||
--bs-btn-bg: #212529;
|
||||
--bs-btn-border-color: #212529;
|
||||
--bs-btn-hover-color: #fff;
|
||||
--bs-btn-hover-bg: #424649;
|
||||
--bs-btn-hover-border-color: #373b3e;
|
||||
--bs-btn-focus-shadow-rgb: 66, 70, 73;
|
||||
--bs-btn-active-color: #fff;
|
||||
--bs-btn-active-bg: #4d5154;
|
||||
--bs-btn-active-border-color: #373b3e;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #fff;
|
||||
--bs-btn-disabled-bg: #212529;
|
||||
--bs-btn-disabled-border-color: #212529;
|
||||
}
|
||||
|
||||
:host([variant='link']) {
|
||||
--bs-btn-font-weight: 400;
|
||||
--bs-btn-color: var(--bs-link-color);
|
||||
--bs-btn-bg: transparent;
|
||||
--bs-btn-border-color: transparent;
|
||||
--bs-btn-hover-color: var(--bs-link-hover-color);
|
||||
--bs-btn-hover-border-color: transparent;
|
||||
--bs-btn-active-color: var(--bs-link-hover-color);
|
||||
--bs-btn-active-border-color: transparent;
|
||||
--bs-btn-disabled-color: #6c757d;
|
||||
--bs-btn-disabled-border-color: transparent;
|
||||
--bs-btn-box-shadow: 0 0 0 #000;
|
||||
--bs-btn-focus-shadow-rgb: 49, 132, 253;
|
||||
text-decoration: underline;
|
||||
}
|
||||
`,
|
||||
];
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
/** @type {BootstrapButtonVariant} */
|
||||
this.variant = 'primary';
|
||||
}
|
||||
}
|
||||
customElements.define('bootstrap-button', BootstrapButton);
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Combobox >> Examples ||30
|
||||
# Combobox >> Extensions ||30
|
||||
|
||||
```js script
|
||||
import { html } from '@mdjs/mdjs-preview';
|
||||
|
|
@ -46,48 +46,56 @@ export const Github = () => html`
|
|||
## Whatsapp
|
||||
|
||||
```js preview-story
|
||||
export const Whatsapp = () => html`
|
||||
<wa-combobox name="combo" label="Filter chats">
|
||||
<wa-option
|
||||
title="Barack Obama"
|
||||
text="Yup, let's try that for now👍"
|
||||
time="15:02"
|
||||
is-user-text
|
||||
is-user-text-read
|
||||
image="https://pbs.twimg.com/profile_images/822547732376207360/5g0FC8XX_400x400.jpg"
|
||||
.choiceValue=${'Barack Obama'}
|
||||
></wa-option>
|
||||
<wa-option
|
||||
title="Donald Trump"
|
||||
text="Take care!"
|
||||
time="14:59"
|
||||
is-user-text
|
||||
image="https://pbs.twimg.com/profile_images/874276197357596672/kUuht00m_400x400.jpg"
|
||||
.choiceValue=${'Donald Trump'}
|
||||
></wa-option>
|
||||
<wa-option
|
||||
title="Joe Biden"
|
||||
text="Hehe😅. You too, man, you too..."
|
||||
time="yesterday"
|
||||
image="https://pbs.twimg.com/profile_images/1308769664240160770/AfgzWVE7_400x400.jpg"
|
||||
.choiceValue=${'Joe Biden'}
|
||||
></wa-option>
|
||||
<wa-option
|
||||
title="George W. Bush"
|
||||
time="friday"
|
||||
text="You bet I will. Let's catch up soon!"
|
||||
image="https://pbs.twimg.com/profile_images/828483922266877954/ljYUWUCu_400x400.jpg"
|
||||
.choiceValue=${'George W. Bush'}
|
||||
></wa-option>
|
||||
<wa-option
|
||||
title="Bill Clinton"
|
||||
time="thursday"
|
||||
text="Dude...😂 😂 😂"
|
||||
image="https://pbs.twimg.com/profile_images/1239440892664086529/iY0Z83Dr_400x400.jpg"
|
||||
.choiceValue=${'Bill Clinton'}
|
||||
></wa-option>
|
||||
</wa-combobox>
|
||||
`;
|
||||
export const Whatsapp = () => {
|
||||
const obamaImgUrl = new URL('../src/wa-combobox/assets/obama.jpeg', import.meta.url).href;
|
||||
const trumpImgUrl = new URL('../src/wa-combobox/assets/trump.jpeg', import.meta.url).href;
|
||||
const bidenImgUrl = new URL('../src/wa-combobox/assets/biden.jpeg', import.meta.url).href;
|
||||
const bushImgUrl = new URL('../src/wa-combobox/assets/bush.jpeg', import.meta.url).href;
|
||||
const clintonImgUrl = new URL('../src/wa-combobox/assets/clinton.jpeg', import.meta.url).href;
|
||||
|
||||
return html`
|
||||
<wa-combobox name="combo" label="Filter chats">
|
||||
<wa-option
|
||||
title="Barack Obama"
|
||||
text="Yup, let's try that for now👍"
|
||||
time="15:02"
|
||||
is-user-text
|
||||
is-user-text-read
|
||||
image="${obamaImgUrl}"
|
||||
.choiceValue=${'Barack Obama'}
|
||||
></wa-option>
|
||||
<wa-option
|
||||
title="Donald Trump"
|
||||
text="Take care!"
|
||||
time="14:59"
|
||||
is-user-text
|
||||
image="${trumpImgUrl}"
|
||||
.choiceValue=${'Donald Trump'}
|
||||
></wa-option>
|
||||
<wa-option
|
||||
title="Joe Biden"
|
||||
text="Hehe😅. You too, man, you too..."
|
||||
time="yesterday"
|
||||
image="${bidenImgUrl}"
|
||||
.choiceValue=${'Joe Biden'}
|
||||
></wa-option>
|
||||
<wa-option
|
||||
title="George W. Bush"
|
||||
time="friday"
|
||||
text="You bet I will. Let's catch up soon!"
|
||||
image="${bushImgUrl}"
|
||||
.choiceValue=${'George W. Bush'}
|
||||
></wa-option>
|
||||
<wa-option
|
||||
title="Bill Clinton"
|
||||
time="thursday"
|
||||
text="Dude...😂 😂 😂"
|
||||
image="${clintonImgUrl}"
|
||||
.choiceValue=${'Bill Clinton'}
|
||||
></wa-option>
|
||||
</wa-combobox>
|
||||
`;
|
||||
};
|
||||
```
|
||||
|
||||
**Whatsapp example shows:**
|
||||
|
|
@ -33,7 +33,7 @@ export const main = () => html`
|
|||
`;
|
||||
```
|
||||
|
||||
[...show more](./examples.md)
|
||||
[...show more](./extensions.md)
|
||||
|
||||
## Features
|
||||
|
||||
|
|
|
|||
|
|
@ -397,7 +397,10 @@ export class GoogleCombobox extends LionCombobox {
|
|||
get slots() {
|
||||
return {
|
||||
...super.slots,
|
||||
label: () => renderLitAsNode(html` <img alt="Google Search" src="${googleSearchLogoUrl}" />`),
|
||||
label: () =>
|
||||
renderLitAsNode(
|
||||
html` <img alt="Google Search" src="${googleSearchLogoUrl}" style="width:auto; " />`,
|
||||
),
|
||||
prefix: () => renderLitAsNode(html` <span>${googleSearchIcon}</span> `),
|
||||
suffix: () =>
|
||||
renderLitAsNode(
|
||||
|
|
|
|||
|
|
@ -7,31 +7,29 @@ import './style/load-roboto.js';
|
|||
|
||||
// TODO: insert ink wc here
|
||||
export class MdOption extends LionOption {
|
||||
static get styles() {
|
||||
return [
|
||||
...super.styles,
|
||||
css`
|
||||
:host {
|
||||
position: relative;
|
||||
padding: 8px;
|
||||
}
|
||||
static styles = [
|
||||
...super.styles,
|
||||
css`
|
||||
:host {
|
||||
position: relative;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
:host([focused]) {
|
||||
background: lightgray;
|
||||
}
|
||||
:host([focused]) {
|
||||
background: lightgray;
|
||||
}
|
||||
|
||||
:host([active]) {
|
||||
color: #1867c0 !important;
|
||||
caret-color: #1867c0 !important;
|
||||
}
|
||||
:host([active]) {
|
||||
color: #1867c0 !important;
|
||||
caret-color: #1867c0 !important;
|
||||
}
|
||||
|
||||
:host ::slotted(.md-highlight) {
|
||||
color: rgba(0, 0, 0, 0.38);
|
||||
background: #eee;
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
:host ::slotted(.md-highlight) {
|
||||
color: rgba(0, 0, 0, 0.38);
|
||||
background: #eee;
|
||||
}
|
||||
`,
|
||||
];
|
||||
|
||||
/**
|
||||
* @override
|
||||
|
|
@ -67,23 +65,27 @@ export class MdOption extends LionOption {
|
|||
customElements.define('md-option', MdOption);
|
||||
|
||||
export class MdCombobox extends MdFieldMixin(LionCombobox) {
|
||||
static get styles() {
|
||||
return [
|
||||
...super.styles,
|
||||
css`
|
||||
.input-group__container {
|
||||
display: flex;
|
||||
border-bottom: none;
|
||||
}
|
||||
static styles = [
|
||||
...super.styles,
|
||||
css`
|
||||
.input-group__container {
|
||||
display: flex;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
* > ::slotted([role='listbox']) {
|
||||
box-shadow: 0 4px 6px 0 rgba(32, 33, 36, 0.28);
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
top: 2px;
|
||||
}
|
||||
`,
|
||||
];
|
||||
* > ::slotted([role='listbox']) {
|
||||
box-shadow: 0 4px 6px 0 rgba(32, 33, 36, 0.28);
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
top: 2px;
|
||||
}
|
||||
`,
|
||||
];
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.showAllOnEmpty = true;
|
||||
}
|
||||
}
|
||||
customElements.define('md-combobox', MdCombobox);
|
||||
|
|
|
|||
BIN
docs/components/combobox/src/wa-combobox/assets/biden.jpeg
Normal file
BIN
docs/components/combobox/src/wa-combobox/assets/biden.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 23 KiB |
BIN
docs/components/combobox/src/wa-combobox/assets/bush.jpeg
Normal file
BIN
docs/components/combobox/src/wa-combobox/assets/bush.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/components/combobox/src/wa-combobox/assets/clinton.jpeg
Normal file
BIN
docs/components/combobox/src/wa-combobox/assets/clinton.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 21 KiB |
BIN
docs/components/combobox/src/wa-combobox/assets/obama.jpeg
Normal file
BIN
docs/components/combobox/src/wa-combobox/assets/obama.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
docs/components/combobox/src/wa-combobox/assets/trump.jpeg
Normal file
BIN
docs/components/combobox/src/wa-combobox/assets/trump.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
|
|
@ -15,164 +15,162 @@ class WaOption extends LionOption {
|
|||
};
|
||||
}
|
||||
|
||||
static get styles() {
|
||||
return [
|
||||
...super.styles,
|
||||
css`
|
||||
:host {
|
||||
--background-default: white;
|
||||
--background-default-active: gray;
|
||||
--secondary: #777;
|
||||
--secondary-lighter: #aaa;
|
||||
--chatlist-icon: #aaa;
|
||||
background-color: var(--background-default);
|
||||
cursor: pointer;
|
||||
color: rgb(74, 74, 74);
|
||||
padding: 0;
|
||||
transition: max-height 0.4s ease, opacity 0.3s ease;
|
||||
max-height: 500px;
|
||||
}
|
||||
static styles = [
|
||||
...super.styles,
|
||||
css`
|
||||
:host {
|
||||
--background-default: white;
|
||||
--background-default-active: gray;
|
||||
--secondary: #777;
|
||||
--secondary-lighter: #aaa;
|
||||
--chatlist-icon: #aaa;
|
||||
background-color: var(--background-default);
|
||||
cursor: pointer;
|
||||
color: rgb(74, 74, 74);
|
||||
padding: 0;
|
||||
transition: max-height 0.4s ease, opacity 0.3s ease;
|
||||
max-height: 500px;
|
||||
}
|
||||
|
||||
:host([checked]) {
|
||||
background-color: #eee;
|
||||
}
|
||||
:host([checked]) {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
:host(:hover) {
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
:host(:hover) {
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
|
||||
.wa-option {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 72px;
|
||||
pointer-events: all;
|
||||
}
|
||||
.wa-option {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
height: 72px;
|
||||
pointer-events: all;
|
||||
}
|
||||
|
||||
.wa-option__image {
|
||||
display: flex;
|
||||
flex: none;
|
||||
align-items: center;
|
||||
margin-top: -1px;
|
||||
padding: 0 15px 0 13px;
|
||||
}
|
||||
.wa-option__image {
|
||||
display: flex;
|
||||
flex: none;
|
||||
align-items: center;
|
||||
margin-top: -1px;
|
||||
padding: 0 15px 0 13px;
|
||||
}
|
||||
|
||||
.wa-option__image-inner {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background-color: var(--avatar-background);
|
||||
border-radius: 50%;
|
||||
height: 49px;
|
||||
width: 49px;
|
||||
}
|
||||
.wa-option__image-inner {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background-color: var(--avatar-background);
|
||||
border-radius: 50%;
|
||||
height: 49px;
|
||||
width: 49px;
|
||||
}
|
||||
|
||||
.wa-option__image-inner img,
|
||||
.wa-option__image-inner svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.wa-option__image-inner img,
|
||||
.wa-option__image-inner svg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.wa-option__image-inner-inner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.wa-option__image-inner-inner {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.wa-option__content {
|
||||
display: flex;
|
||||
flex-basis: auto;
|
||||
flex-direction: column;
|
||||
flex-grow: 1;
|
||||
justify-content: center;
|
||||
min-width: 0;
|
||||
border-bottom: 1px solid #eee;
|
||||
padding-right: 15px;
|
||||
}
|
||||
.wa-option__content {
|
||||
display: flex;
|
||||
flex-basis: auto;
|
||||
flex-direction: column;
|
||||
flex-grow: 1;
|
||||
justify-content: center;
|
||||
min-width: 0;
|
||||
border-bottom: 1px solid #eee;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.wa-option__content-row1 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
line-height: normal;
|
||||
text-align: left;
|
||||
}
|
||||
.wa-option__content-row1 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
line-height: normal;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.wa-option__content-row1-title {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
overflow: hidden;
|
||||
color: var(--primary-strong);
|
||||
font-weight: 400;
|
||||
font-size: 17px;
|
||||
line-height: 21px;
|
||||
}
|
||||
.wa-option__content-row1-title {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
overflow: hidden;
|
||||
color: var(--primary-strong);
|
||||
font-weight: 400;
|
||||
font-size: 17px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.wa-option__content-row1-time {
|
||||
line-height: 14px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
margin-left: 6px;
|
||||
margin-top: 3px;
|
||||
.wa-option__content-row1-time {
|
||||
line-height: 14px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
margin-left: 6px;
|
||||
margin-top: 3px;
|
||||
|
||||
flex: none;
|
||||
max-width: 100%;
|
||||
color: var(--secondary-lighter);
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
}
|
||||
flex: none;
|
||||
max-width: 100%;
|
||||
color: var(--secondary-lighter);
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.wa-option__content-row2 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-height: 20px;
|
||||
color: var(--secondary);
|
||||
font-size: 13px;
|
||||
line-height: 20px;
|
||||
margin-top: 2px;
|
||||
/* color: var(--secondary-stronger); */
|
||||
}
|
||||
.wa-option__content-row2 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-height: 20px;
|
||||
color: var(--secondary);
|
||||
font-size: 13px;
|
||||
line-height: 20px;
|
||||
margin-top: 2px;
|
||||
/* color: var(--secondary-stronger); */
|
||||
}
|
||||
|
||||
.wa-option__content-row2-text {
|
||||
flex-grow: 1;
|
||||
overflow: hidden;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.wa-option__content-row2-text {
|
||||
flex-grow: 1;
|
||||
overflow: hidden;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.wa-option__content-row2-text-inner {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.wa-option__content-row2-text-inner {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.wa-option__content-row2-text-inner-icon {
|
||||
display: none;
|
||||
flex: none;
|
||||
color: var(--chatlist-icon);
|
||||
vertical-align: top;
|
||||
margin-right: 2px;
|
||||
}
|
||||
.wa-option__content-row2-text-inner-icon {
|
||||
display: none;
|
||||
flex: none;
|
||||
color: var(--chatlist-icon);
|
||||
vertical-align: top;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
:host([is-user-text]) .wa-option__content-row2-text-inner-icon {
|
||||
display: inline-block;
|
||||
}
|
||||
:host([is-user-text]) .wa-option__content-row2-text-inner-icon {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
:host([is-user-text-read]) .wa-option__content-row2-text-inner-icon {
|
||||
color: lightblue;
|
||||
}
|
||||
/*
|
||||
:host([is-user-text-read]) .wa-option__content-row2-text-inner-icon {
|
||||
color: lightblue;
|
||||
}
|
||||
/*
|
||||
.wa-option__content-row2-menu {
|
||||
} */
|
||||
`,
|
||||
];
|
||||
}
|
||||
`,
|
||||
];
|
||||
|
||||
render() {
|
||||
return html`<div class="wa-option">
|
||||
|
|
@ -285,59 +283,56 @@ class WaOption extends LionOption {
|
|||
customElements.define('wa-option', WaOption);
|
||||
|
||||
class WaCombobox extends LionCombobox {
|
||||
static get styles() {
|
||||
return [
|
||||
...super.styles,
|
||||
css`
|
||||
:host {
|
||||
font-family: SF Pro Text, SF Pro Icons, system, -apple-system, system-ui,
|
||||
BlinkMacSystemFont, Helvetica Neue, Helvetica, Lucida Grande, Kohinoor Devanagari,
|
||||
sans-serif;
|
||||
}
|
||||
static styles = [
|
||||
...super.styles,
|
||||
css`
|
||||
:host {
|
||||
font-family: SF Pro Text, SF Pro Icons, system, -apple-system, system-ui, BlinkMacSystemFont,
|
||||
Helvetica Neue, Helvetica, Lucida Grande, Kohinoor Devanagari, sans-serif;
|
||||
}
|
||||
|
||||
.input-group__container {
|
||||
display: flex;
|
||||
border-bottom: none;
|
||||
}
|
||||
.input-group__container {
|
||||
display: flex;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
* > ::slotted([role='listbox']) {
|
||||
max-height: none;
|
||||
}
|
||||
* > ::slotted([role='listbox']) {
|
||||
max-height: none;
|
||||
}
|
||||
|
||||
* > ::slotted([slot='input']) {
|
||||
font-size: 14px;
|
||||
}
|
||||
* > ::slotted([slot='input']) {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.input-group {
|
||||
padding: 15px;
|
||||
background: #f6f6f6;
|
||||
}
|
||||
.input-group {
|
||||
padding: 15px;
|
||||
background: #f6f6f6;
|
||||
}
|
||||
|
||||
.input-group__prefix {
|
||||
margin-right: 20px;
|
||||
color: #999;
|
||||
display: flex;
|
||||
}
|
||||
.input-group__prefix {
|
||||
margin-right: 20px;
|
||||
color: #999;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.input-group__container {
|
||||
border-radius: 18px;
|
||||
background: white;
|
||||
padding: 7px;
|
||||
padding-left: 16px;
|
||||
}
|
||||
.input-group__container {
|
||||
border-radius: 18px;
|
||||
background: white;
|
||||
padding: 7px;
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
/** Undo Popper */
|
||||
#overlay-content-node-wrapper {
|
||||
position: static !important;
|
||||
width: auto !important;
|
||||
transform: none !important;
|
||||
/** Undo Popper */
|
||||
#overlay-content-node-wrapper {
|
||||
position: static !important;
|
||||
width: auto !important;
|
||||
transform: none !important;
|
||||
|
||||
/* height: 300px;
|
||||
/* height: 300px;
|
||||
overflow: scroll; */
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
}
|
||||
`,
|
||||
];
|
||||
|
||||
get slots() {
|
||||
return {
|
||||
|
|
@ -360,7 +355,7 @@ class WaCombobox extends LionCombobox {
|
|||
/** @configure OverlayMixin */
|
||||
this.opened = true;
|
||||
/** @configure LionCombobox */
|
||||
this.showAllOnEmpty = true;
|
||||
this.showAllOnEmpty = false;
|
||||
/** @configure LionCombobox */
|
||||
this.rotateKeyboardNavigation = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Input Tel Dropdown >> Examples ||30
|
||||
# Input Tel Dropdown >> Extensions ||30
|
||||
|
||||
```js script
|
||||
import { html } from '@mdjs/mdjs-preview';
|
||||
|
|
@ -47,7 +47,7 @@ export class LionButton extends DisabledWithTabIndexMixin(LitElement) {
|
|||
box-sizing: border-box;
|
||||
vertical-align: middle;
|
||||
line-height: 24px;
|
||||
background: #eee; /* minimal styling to make it recognizable as btn */
|
||||
background-color: #eee; /* minimal styling to make it recognizable as btn */
|
||||
padding: 8px; /* padding to fix with min-height */
|
||||
outline: none; /* focus style handled below */
|
||||
cursor: default; /* we should always see the default arrow, never a caret */
|
||||
|
|
|
|||
Loading…
Reference in a new issue