@crowdstrike/glide-core 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +41 -0
- package/dist/accordion.d.ts +23 -0
- package/dist/accordion.js +1 -0
- package/dist/accordion.stories.d.ts +9 -0
- package/dist/accordion.styles.d.ts +2 -0
- package/dist/accordion.styles.js +98 -0
- package/dist/accordion.test.basics.d.ts +1 -0
- package/dist/accordion.test.events.d.ts +1 -0
- package/dist/button-group.button.d.ts +33 -0
- package/dist/button-group.button.js +1 -0
- package/dist/button-group.button.styles.d.ts +2 -0
- package/dist/button-group.button.styles.js +99 -0
- package/dist/button-group.button.test.basics.d.ts +1 -0
- package/dist/button-group.button.test.events.d.ts +1 -0
- package/dist/button-group.d.ts +26 -0
- package/dist/button-group.js +1 -0
- package/dist/button-group.stories.d.ts +16 -0
- package/dist/button-group.styles.d.ts +2 -0
- package/dist/button-group.styles.js +18 -0
- package/dist/button-group.test.basics.d.ts +1 -0
- package/dist/button-group.test.events.d.ts +1 -0
- package/dist/button.d.ts +29 -0
- package/dist/button.js +1 -0
- package/dist/button.stories.d.ts +17 -0
- package/dist/button.styles.d.ts +2 -0
- package/dist/button.styles.js +133 -0
- package/dist/button.test.basics.d.ts +1 -0
- package/dist/button.test.events.d.ts +1 -0
- package/dist/button.test.form.d.ts +1 -0
- package/dist/checkbox-group.d.ts +43 -0
- package/dist/checkbox-group.js +1 -0
- package/dist/checkbox-group.stories.d.ts +7 -0
- package/dist/checkbox-group.styles.d.ts +2 -0
- package/dist/checkbox-group.styles.js +20 -0
- package/dist/checkbox-group.test.basics.d.ts +1 -0
- package/dist/checkbox-group.test.events.d.ts +1 -0
- package/dist/checkbox-group.test.focus.d.ts +1 -0
- package/dist/checkbox-group.test.form.d.ts +1 -0
- package/dist/checkbox-group.test.validity.d.ts +1 -0
- package/dist/checkbox.d.ts +50 -0
- package/dist/checkbox.js +1 -0
- package/dist/checkbox.stories.d.ts +9 -0
- package/dist/checkbox.styles.d.ts +2 -0
- package/dist/checkbox.styles.js +116 -0
- package/dist/checkbox.test.basics.d.ts +1 -0
- package/dist/checkbox.test.events.d.ts +1 -0
- package/dist/checkbox.test.focus.d.ts +1 -0
- package/dist/checkbox.test.form.d.ts +1 -0
- package/dist/checkbox.test.states.d.ts +1 -0
- package/dist/checkbox.test.validity.d.ts +1 -0
- package/dist/drawer.d.ts +30 -0
- package/dist/drawer.js +15 -0
- package/dist/drawer.stories.d.ts +7 -0
- package/dist/drawer.styles.d.ts +2 -0
- package/dist/drawer.styles.js +34 -0
- package/dist/drawer.test.accessibility.d.ts +1 -0
- package/dist/drawer.test.basics.d.ts +1 -0
- package/dist/drawer.test.closing.d.ts +1 -0
- package/dist/drawer.test.events.d.ts +1 -0
- package/dist/drawer.test.methods.d.ts +1 -0
- package/dist/dropdown.d.ts +66 -0
- package/dist/dropdown.js +1 -0
- package/dist/dropdown.option.d.ts +33 -0
- package/dist/dropdown.option.js +1 -0
- package/dist/dropdown.option.styles.d.ts +2 -0
- package/dist/dropdown.option.styles.js +64 -0
- package/dist/dropdown.option.test.basics.d.ts +1 -0
- package/dist/dropdown.option.test.basics.multiple.d.ts +1 -0
- package/dist/dropdown.option.test.basics.single.d.ts +1 -0
- package/dist/dropdown.option.test.events.d.ts +1 -0
- package/dist/dropdown.option.test.focus.multiple.d.ts +1 -0
- package/dist/dropdown.option.test.focus.single.d.ts +1 -0
- package/dist/dropdown.option.test.interactions.multiple.d.ts +1 -0
- package/dist/dropdown.option.test.interactions.single.d.ts +1 -0
- package/dist/dropdown.stories.d.ts +15 -0
- package/dist/dropdown.styles.d.ts +2 -0
- package/dist/dropdown.styles.js +162 -0
- package/dist/dropdown.test.basics.d.ts +1 -0
- package/dist/dropdown.test.basics.filterable.d.ts +1 -0
- package/dist/dropdown.test.basics.multiple.d.ts +1 -0
- package/dist/dropdown.test.basics.single.d.ts +1 -0
- package/dist/dropdown.test.events.d.ts +1 -0
- package/dist/dropdown.test.focus.filterable.d.ts +1 -0
- package/dist/dropdown.test.focus.multiple.d.ts +1 -0
- package/dist/dropdown.test.focus.single.d.ts +1 -0
- package/dist/dropdown.test.form.d.ts +1 -0
- package/dist/dropdown.test.form.multiple.d.ts +1 -0
- package/dist/dropdown.test.form.single.d.ts +1 -0
- package/dist/dropdown.test.interactions.d.ts +1 -0
- package/dist/dropdown.test.interactions.filterable.d.ts +1 -0
- package/dist/dropdown.test.interactions.multiple.d.ts +1 -0
- package/dist/dropdown.test.interactions.single.d.ts +1 -0
- package/dist/dropdown.test.validity.d.ts +1 -0
- package/dist/icon-button.d.ts +22 -0
- package/dist/icon-button.js +1 -0
- package/dist/icon-button.stories.d.ts +8 -0
- package/dist/icon-button.styles.d.ts +2 -0
- package/dist/icon-button.styles.js +112 -0
- package/dist/icon-button.test.basics.d.ts +1 -0
- package/dist/icons/checked.d.ts +2 -0
- package/dist/icons/checked.js +1 -0
- package/dist/icons/magnifying-glass.d.ts +2 -0
- package/dist/icons/magnifying-glass.js +1 -0
- package/dist/input.d.ts +67 -0
- package/dist/input.js +1 -0
- package/dist/input.stories.d.ts +19 -0
- package/dist/input.styles.d.ts +2 -0
- package/dist/input.styles.js +109 -0
- package/dist/input.test.basics.d.ts +1 -0
- package/dist/input.test.events.d.ts +1 -0
- package/dist/input.test.focus.d.ts +1 -0
- package/dist/input.test.form.d.ts +1 -0
- package/dist/input.test.validity.d.ts +1 -0
- package/dist/label.d.ts +33 -0
- package/dist/label.js +1 -0
- package/dist/label.styles.d.ts +2 -0
- package/dist/label.styles.js +154 -0
- package/dist/label.test.basics.d.ts +1 -0
- package/dist/library/expect-argument-error.d.ts +1 -0
- package/dist/library/expect-argument-error.js +1 -0
- package/dist/library/ow.d.ts +16 -0
- package/dist/library/ow.js +1 -0
- package/dist/library/ow.test.d.ts +4 -0
- package/dist/menu.button.d.ts +21 -0
- package/dist/menu.button.js +1 -0
- package/dist/menu.button.styles.d.ts +2 -0
- package/dist/menu.button.styles.js +20 -0
- package/dist/menu.button.test.basics.d.ts +1 -0
- package/dist/menu.d.ts +27 -0
- package/dist/menu.js +1 -0
- package/dist/menu.link.d.ts +22 -0
- package/dist/menu.link.js +1 -0
- package/dist/menu.link.styles.d.ts +2 -0
- package/dist/menu.link.styles.js +22 -0
- package/dist/menu.link.test.basics.d.ts +1 -0
- package/dist/menu.stories.d.ts +9 -0
- package/dist/menu.styles.d.ts +2 -0
- package/dist/menu.styles.js +61 -0
- package/dist/menu.test.basics.d.ts +1 -0
- package/dist/menu.test.focus.d.ts +2 -0
- package/dist/menu.test.interactions.d.ts +2 -0
- package/dist/modal.d.ts +51 -0
- package/dist/modal.icon-button.d.ts +26 -0
- package/dist/modal.icon-button.js +1 -0
- package/dist/modal.icon-button.styles.d.ts +2 -0
- package/dist/modal.icon-button.styles.js +8 -0
- package/dist/modal.icon-button.test.basics.d.ts +1 -0
- package/dist/modal.js +15 -0
- package/dist/modal.stories.d.ts +14 -0
- package/dist/modal.styles.d.ts +2 -0
- package/dist/modal.styles.js +169 -0
- package/dist/modal.tertiary-icon.d.ts +21 -0
- package/dist/modal.tertiary-icon.js +1 -0
- package/dist/modal.tertiary-icon.test.basics.d.ts +1 -0
- package/dist/modal.test.accessibility.d.ts +1 -0
- package/dist/modal.test.basics.d.ts +3 -0
- package/dist/modal.test.close.d.ts +1 -0
- package/dist/modal.test.events.d.ts +1 -0
- package/dist/modal.test.lock-scroll.d.ts +1 -0
- package/dist/modal.test.methods.d.ts +1 -0
- package/dist/modal.test.scrollbars.d.ts +1 -0
- package/dist/radio-group.d.ts +48 -0
- package/dist/radio-group.js +1 -0
- package/dist/radio-group.stories.d.ts +8 -0
- package/dist/radio-group.styles.d.ts +2 -0
- package/dist/radio-group.styles.js +40 -0
- package/dist/radio-group.test.basics.d.ts +2 -0
- package/dist/radio-group.test.events.d.ts +2 -0
- package/dist/radio-group.test.focus.d.ts +2 -0
- package/dist/radio-group.test.form.d.ts +1 -0
- package/dist/radio-group.test.validity.d.ts +1 -0
- package/dist/radio.d.ts +23 -0
- package/dist/radio.js +1 -0
- package/dist/radio.styles.d.ts +2 -0
- package/dist/radio.styles.js +92 -0
- package/dist/status-indicator.d.ts +30 -0
- package/dist/status-indicator.js +1 -0
- package/dist/status-indicator.stories.d.ts +17 -0
- package/dist/status-indicator.styles.d.ts +2 -0
- package/dist/status-indicator.styles.js +58 -0
- package/dist/status-indicator.test.basics.d.ts +1 -0
- package/dist/styles/focus-outline.d.ts +2 -0
- package/dist/styles/focus-outline.js +4 -0
- package/dist/styles/fonts.css +1 -0
- package/dist/styles/variables.css +1 -0
- package/dist/styles/visually-hidden.d.ts +2 -0
- package/dist/styles/visually-hidden.js +11 -0
- package/dist/tab.d.ts +32 -0
- package/dist/tab.group.d.ts +35 -0
- package/dist/tab.group.js +1 -0
- package/dist/tab.group.styles.d.ts +2 -0
- package/dist/tab.group.styles.js +27 -0
- package/dist/tab.group.test.basics.d.ts +3 -0
- package/dist/tab.js +1 -0
- package/dist/tab.panel.d.ts +26 -0
- package/dist/tab.panel.js +1 -0
- package/dist/tab.panel.styles.d.ts +2 -0
- package/dist/tab.panel.styles.js +9 -0
- package/dist/tab.styles.d.ts +2 -0
- package/dist/tab.styles.js +83 -0
- package/dist/tab.test.basics.d.ts +1 -0
- package/dist/tabs.stories.d.ts +9 -0
- package/dist/tag.d.ts +25 -0
- package/dist/tag.js +1 -0
- package/dist/tag.stories.d.ts +9 -0
- package/dist/tag.styles.d.ts +2 -0
- package/dist/tag.styles.js +133 -0
- package/dist/tag.test.basics.d.ts +1 -0
- package/dist/tag.test.events.d.ts +1 -0
- package/dist/tag.test.focus.d.ts +1 -0
- package/dist/textarea.d.ts +49 -0
- package/dist/textarea.js +2 -0
- package/dist/textarea.stories.d.ts +13 -0
- package/dist/textarea.styles.d.ts +2 -0
- package/dist/textarea.styles.js +69 -0
- package/dist/textarea.test.basics.d.ts +1 -0
- package/dist/textarea.test.events.d.ts +1 -0
- package/dist/textarea.test.form.d.ts +1 -0
- package/dist/textarea.test.validity.d.ts +1 -0
- package/dist/toasts.d.ts +29 -0
- package/dist/toasts.js +1 -0
- package/dist/toasts.stories.d.ts +7 -0
- package/dist/toasts.styles.d.ts +2 -0
- package/dist/toasts.styles.js +15 -0
- package/dist/toasts.test.basics.d.ts +1 -0
- package/dist/toasts.toast.d.ts +28 -0
- package/dist/toasts.toast.js +1 -0
- package/dist/toasts.toast.styles.d.ts +2 -0
- package/dist/toasts.toast.styles.js +60 -0
- package/dist/toasts.toast.test.basics.d.ts +1 -0
- package/dist/toggle.d.ts +31 -0
- package/dist/toggle.js +1 -0
- package/dist/toggle.stories.d.ts +7 -0
- package/dist/toggle.styles.d.ts +2 -0
- package/dist/toggle.styles.js +81 -0
- package/dist/toggle.test.basics.d.ts +1 -0
- package/dist/toggle.test.events.d.ts +1 -0
- package/dist/toggle.test.focus.d.ts +1 -0
- package/dist/toggle.test.states.d.ts +1 -0
- package/dist/tooltip.d.ts +21 -0
- package/dist/tooltip.js +1 -0
- package/dist/tooltip.stories.d.ts +7 -0
- package/dist/tooltip.styles.d.ts +2 -0
- package/dist/tooltip.styles.js +66 -0
- package/dist/tooltip.test.basics.d.ts +1 -0
- package/dist/tooltip.test.interactions.d.ts +1 -0
- package/dist/tree.d.ts +26 -0
- package/dist/tree.item.d.ts +43 -0
- package/dist/tree.item.icon-button.d.ts +20 -0
- package/dist/tree.item.icon-button.js +1 -0
- package/dist/tree.item.icon-button.styles.d.ts +2 -0
- package/dist/tree.item.icon-button.styles.js +9 -0
- package/dist/tree.item.icon-button.test.basics.d.ts +1 -0
- package/dist/tree.item.js +1 -0
- package/dist/tree.item.menu.d.ts +21 -0
- package/dist/tree.item.menu.js +1 -0
- package/dist/tree.item.menu.styles.d.ts +2 -0
- package/dist/tree.item.menu.styles.js +17 -0
- package/dist/tree.item.menu.test.basics.d.ts +1 -0
- package/dist/tree.item.styles.d.ts +2 -0
- package/dist/tree.item.styles.js +130 -0
- package/dist/tree.item.test.basics.d.ts +1 -0
- package/dist/tree.js +1 -0
- package/dist/tree.stories.d.ts +17 -0
- package/dist/tree.styles.d.ts +2 -0
- package/dist/tree.styles.js +7 -0
- package/dist/tree.test.aria.d.ts +1 -0
- package/dist/tree.test.basics.d.ts +3 -0
- package/dist/tree.test.events.d.ts +2 -0
- package/dist/tree.test.focus.d.ts +1 -0
- package/package.json +129 -0
@@ -0,0 +1,83 @@
|
|
1
|
+
"use strict";import{css as e}from"lit";export default[e`
|
2
|
+
.component {
|
3
|
+
align-items: center;
|
4
|
+
cursor: pointer;
|
5
|
+
display: inline-flex;
|
6
|
+
font-family: var(--glide-core-heading-xxs-font-family);
|
7
|
+
font-size: var(--glide-core-heading-xxxs-font-size);
|
8
|
+
font-style: var(--glide-core-heading-xxs-font-style);
|
9
|
+
gap: 0.4375rem;
|
10
|
+
justify-content: center;
|
11
|
+
line-height: 1.1875rem;
|
12
|
+
padding-block: var(--glide-core-spacing-xs);
|
13
|
+
padding-inline: var(--glide-core-spacing-md);
|
14
|
+
}
|
15
|
+
|
16
|
+
/* Primary */
|
17
|
+
|
18
|
+
.primary {
|
19
|
+
border: 1px solid transparent;
|
20
|
+
border-block-end-width: 0;
|
21
|
+
border-end-end-radius: 0;
|
22
|
+
border-end-start-radius: 0;
|
23
|
+
border-start-end-radius: var(--glide-core-spacing-sm);
|
24
|
+
border-start-start-radius: var(--glide-core-spacing-sm);
|
25
|
+
font-weight: var(--glide-core-heading-xxs-font-weight);
|
26
|
+
|
27
|
+
&.active,
|
28
|
+
&.tab:hover:not(.disabled) {
|
29
|
+
background-color: var(--glide-core-surface-base);
|
30
|
+
border: 1px solid var(--glide-core-border-primary);
|
31
|
+
|
32
|
+
/* hide the outer tab-group bottom border */
|
33
|
+
border-block-end: 1px solid var(--glide-core-surface-base);
|
34
|
+
margin-block-end: -1px;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
.tab:hover {
|
39
|
+
color: var(--glide-core-text-primary);
|
40
|
+
}
|
41
|
+
|
42
|
+
.disabled {
|
43
|
+
border: none;
|
44
|
+
color: var(--glide-core-text-tertiary-disabled);
|
45
|
+
pointer-events: none;
|
46
|
+
}
|
47
|
+
|
48
|
+
/* Secondary */
|
49
|
+
|
50
|
+
.secondary {
|
51
|
+
border-color: transparent;
|
52
|
+
border-style: solid;
|
53
|
+
border-width: 1px;
|
54
|
+
font-weight: var(--glide-core-body-sm-font-weight);
|
55
|
+
|
56
|
+
&.active {
|
57
|
+
border-block-end: 2px solid var(--glide-core-border-focus);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
/* Vertical */
|
62
|
+
|
63
|
+
.vertical {
|
64
|
+
flex-direction: column;
|
65
|
+
font-weight: var(--glide-core-body-sm-font-weight);
|
66
|
+
padding-inline: var(--glide-core-spacing-xxs);
|
67
|
+
|
68
|
+
& .default-slot {
|
69
|
+
transform: rotate(180deg);
|
70
|
+
writing-mode: vertical-lr;
|
71
|
+
}
|
72
|
+
|
73
|
+
&.active {
|
74
|
+
border-inline-start: 2px solid var(--glide-core-border-focus);
|
75
|
+
}
|
76
|
+
|
77
|
+
&.active,
|
78
|
+
&.disabled,
|
79
|
+
&.tab-wrapper:hover {
|
80
|
+
background-color: var(--glide-core-surface-base);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
`];
|
@@ -0,0 +1 @@
|
|
1
|
+
import './tab.js';
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import './tab.group.js';
|
2
|
+
import './tab.js';
|
3
|
+
import './tab.panel.js';
|
4
|
+
import type { Meta, StoryObj } from '@storybook/web-components';
|
5
|
+
declare const meta: Meta;
|
6
|
+
export default meta;
|
7
|
+
export declare const Primary: StoryObj;
|
8
|
+
export declare const Secondary: StoryObj;
|
9
|
+
export declare const Vertical: StoryObj;
|
package/dist/tag.d.ts
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
import { LitElement } from 'lit';
|
2
|
+
declare global {
|
3
|
+
interface HTMLElementTagNameMap {
|
4
|
+
'glide-core-tag': GlideCoreTag;
|
5
|
+
}
|
6
|
+
}
|
7
|
+
/**
|
8
|
+
* @description A tag component to categorize information.
|
9
|
+
*
|
10
|
+
* @event remove - Emitted when `glide-core-tag` is removed
|
11
|
+
*
|
12
|
+
* @slot - The content of the tag
|
13
|
+
*
|
14
|
+
* @slot prefix - A slot for an optional icon
|
15
|
+
*/
|
16
|
+
export default class GlideCoreTag extends LitElement {
|
17
|
+
#private;
|
18
|
+
static shadowRootOptions: ShadowRootInit;
|
19
|
+
static styles: import("lit").CSSResult[];
|
20
|
+
size: 'small' | 'medium' | 'large';
|
21
|
+
removableLabel?: string | undefined;
|
22
|
+
click(): void;
|
23
|
+
firstUpdated(): void;
|
24
|
+
render(): import("lit").TemplateResult<1>;
|
25
|
+
}
|
package/dist/tag.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var y=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var h=(t,e,o,c)=>{for(var s=c>1?void 0:c?H(e,o):e,E=t.length-1,L;E>=0;E--)(L=t[E])&&(s=(c?L(e,o,s):L(s))||s);return c&&s&&y(e,o,s),s};var k=(t,e,o)=>{if(!e.has(t))throw TypeError("Cannot "+o)};var i=(t,e,o)=>(k(t,e,"read from private field"),o?o.call(t):e.get(t)),r=(t,e,o)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,o)};var g=(t,e,o)=>(k(t,e,"access private method"),o);var m,a,n,v,p,f,b,x;import{LitElement as w,html as $}from"lit";import{classMap as M}from"lit/directives/class-map.js";import{createRef as u,ref as d}from"lit/directives/ref.js";import{customElement as z,property as R}from"lit/decorators.js";import{owSlot as S}from"./library/ow.js";import{when as D}from"lit/directives/when.js";import j from"./tag.styles.js";let l=class extends w{constructor(){super(...arguments);r(this,b);this.size="medium";this.removableLabel="";r(this,m,u());r(this,a,u());r(this,n,u());r(this,v,u());r(this,p,200);r(this,f,()=>{new Promise(()=>setTimeout(()=>{this.remove()},i(this,p))),i(this,a).value?.classList.toggle("activate"),i(this,a).value?.classList.toggle("deactivate"),this.dispatchEvent(new Event("remove"))})}click(){i(this,m).value?.click()}firstUpdated(){S(i(this,n).value)}render(){return $`<div class="${M({component:!0,activate:!0,[this.size]:!0})}" ${d(i(this,a))}><slot name="prefix" ${d(i(this,v))}></slot><slot @slotchange="${g(this,b,x)}" ${d(i(this,n))}></slot>${D(this.removableLabel,()=>$`<button type="button" class="${M({[this.size]:!0})}" aria-label="Remove ${this.removableLabel}" data-test="button" ${d(i(this,m))} @click="${i(this,f)}"><svg width="12" height="12" viewBox="0 0 24 24" fill="none"><path d="M6 6L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M18 6L6 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></button>`)}</div>`}};m=new WeakMap,a=new WeakMap,n=new WeakMap,v=new WeakMap,p=new WeakMap,f=new WeakMap,b=new WeakSet,x=function(){S(i(this,n).value)},l.shadowRootOptions={...w.shadowRootOptions,delegatesFocus:!0,mode:"closed"},l.styles=j,h([R({reflect:!0})],l.prototype,"size",2),h([R({attribute:"removable-label"})],l.prototype,"removableLabel",2),l=h([z("glide-core-tag")],l);export{l as default};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import './icons/storybook.js';
|
2
|
+
import './tag.js';
|
3
|
+
import type { Meta, StoryObj } from '@storybook/web-components';
|
4
|
+
declare const meta: Meta;
|
5
|
+
export default meta;
|
6
|
+
export declare const Default: StoryObj;
|
7
|
+
export declare const DefaultWithPrefixIcon: StoryObj;
|
8
|
+
export declare const Removable: StoryObj;
|
9
|
+
export declare const RemovableWithIcon: StoryObj;
|
@@ -0,0 +1,133 @@
|
|
1
|
+
"use strict";import{css as e}from"lit";import i from"./styles/focus-outline.js";export default[e`
|
2
|
+
.component {
|
3
|
+
align-items: center;
|
4
|
+
background: var(--glide-core-surface-base);
|
5
|
+
border-radius: var(--glide-core-border-radius-round);
|
6
|
+
color: var(--glide-core-text-body-1);
|
7
|
+
display: inline-flex;
|
8
|
+
font-family: var(--glide-core-body-xs-font-family);
|
9
|
+
font-size: var(--glide-core-body-xs-font-size);
|
10
|
+
font-style: var(--glide-core-body-xs-font-variant);
|
11
|
+
font-weight: var(--glide-core-body-xs-font-weight);
|
12
|
+
justify-content: center;
|
13
|
+
line-height: 1;
|
14
|
+
margin: 0;
|
15
|
+
min-block-size: var(--glide-core-spacing-md);
|
16
|
+
opacity: 1;
|
17
|
+
overflow: hidden;
|
18
|
+
padding: var(--glide-core-spacing-xxxs) var(--glide-core-spacing-xs);
|
19
|
+
|
20
|
+
&.large {
|
21
|
+
min-block-size: 0.875rem;
|
22
|
+
padding: var(--glide-core-spacing-xxs) var(--glide-core-spacing-sm);
|
23
|
+
}
|
24
|
+
|
25
|
+
&.small {
|
26
|
+
font-size: 0.625rem;
|
27
|
+
min-block-size: var(--glide-core-spacing-md);
|
28
|
+
padding: 0 var(--glide-core-spacing-xs);
|
29
|
+
}
|
30
|
+
|
31
|
+
&.activate {
|
32
|
+
animation: fade-in 100ms ease-in-out;
|
33
|
+
}
|
34
|
+
|
35
|
+
&.deactivate {
|
36
|
+
animation: fade-out 200ms ease-in-out;
|
37
|
+
animation-fill-mode: forwards;
|
38
|
+
}
|
39
|
+
|
40
|
+
& ::slotted([slot='prefix']) {
|
41
|
+
--size: var(--glide-core-spacing-sm);
|
42
|
+
|
43
|
+
align-items: center;
|
44
|
+
block-size: var(--glide-core-spacing-sm);
|
45
|
+
display: flex;
|
46
|
+
inline-size: var(--glide-core-spacing-sm);
|
47
|
+
justify-content: center;
|
48
|
+
margin-inline-end: 0.375rem;
|
49
|
+
}
|
50
|
+
|
51
|
+
&.small ::slotted([slot='prefix']) {
|
52
|
+
--size: 0.625rem;
|
53
|
+
|
54
|
+
align-items: center;
|
55
|
+
block-size: 0.625rem;
|
56
|
+
display: flex;
|
57
|
+
inline-size: 0.625rem;
|
58
|
+
justify-content: center;
|
59
|
+
margin-inline-end: var(--glide-core-spacing-xxs);
|
60
|
+
}
|
61
|
+
|
62
|
+
&.large ::slotted([slot='prefix']) {
|
63
|
+
--size: 0.875rem;
|
64
|
+
|
65
|
+
align-items: center;
|
66
|
+
block-size: 0.875rem;
|
67
|
+
display: flex;
|
68
|
+
inline-size: 0.875rem;
|
69
|
+
justify-content: center;
|
70
|
+
margin-inline-end: var(--glide-core-spacing-xs);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
@keyframes fade-in {
|
75
|
+
0% {
|
76
|
+
opacity: 0;
|
77
|
+
}
|
78
|
+
|
79
|
+
100% {
|
80
|
+
opacity: 1;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
@keyframes fade-out {
|
85
|
+
0% {
|
86
|
+
opacity: 1;
|
87
|
+
}
|
88
|
+
|
89
|
+
100% {
|
90
|
+
opacity: 0;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
button {
|
95
|
+
align-items: center;
|
96
|
+
background-color: transparent;
|
97
|
+
block-size: var(--glide-core-spacing-sm);
|
98
|
+
border: none;
|
99
|
+
color: var(--glide-core-icon-display);
|
100
|
+
cursor: pointer;
|
101
|
+
display: flex;
|
102
|
+
inline-size: var(--glide-core-spacing-sm);
|
103
|
+
justify-content: center;
|
104
|
+
margin: 0;
|
105
|
+
margin-inline-start: 0.375rem;
|
106
|
+
padding: 0;
|
107
|
+
transition: color 200ms ease-in-out;
|
108
|
+
|
109
|
+
&.large {
|
110
|
+
block-size: 0.875rem;
|
111
|
+
inline-size: 0.875rem;
|
112
|
+
margin-inline-start: var(--glide-core-spacing-xs);
|
113
|
+
}
|
114
|
+
|
115
|
+
&.small {
|
116
|
+
block-size: 0.625rem;
|
117
|
+
inline-size: 0.6215rem;
|
118
|
+
margin-inline-start: var(--glide-core-spacing-xxs);
|
119
|
+
}
|
120
|
+
|
121
|
+
&:hover {
|
122
|
+
color: var(--glide-core-icon-primary-hover);
|
123
|
+
}
|
124
|
+
|
125
|
+
&:focus {
|
126
|
+
outline: none;
|
127
|
+
}
|
128
|
+
|
129
|
+
&:focus-visible {
|
130
|
+
${i};
|
131
|
+
}
|
132
|
+
}
|
133
|
+
`];
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
import './tag.js';
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import './label.js';
|
2
|
+
import { LitElement } from 'lit';
|
3
|
+
declare global {
|
4
|
+
interface HTMLElementTagNameMap {
|
5
|
+
'glide-core-textarea': GlideCoreTextarea;
|
6
|
+
}
|
7
|
+
}
|
8
|
+
/**
|
9
|
+
* @description A textarea with a label and optional description and toolip. Participates in forms and validation via `FormData` and various methods.
|
10
|
+
*
|
11
|
+
* @event change - (same as native textarea's `change` event)
|
12
|
+
* @event input - (same as native textarea's `input` event)
|
13
|
+
*
|
14
|
+
* @slot tooltip - Content for the tooltip.
|
15
|
+
* @slot description - Additional information or context.
|
16
|
+
*/
|
17
|
+
export default class GlideCoreTextarea extends LitElement {
|
18
|
+
#private;
|
19
|
+
static formAssociated: boolean;
|
20
|
+
static shadowRootOptions: ShadowRootInit;
|
21
|
+
static styles: import("lit").CSSResult;
|
22
|
+
value: string;
|
23
|
+
label?: string;
|
24
|
+
hideLabel?: boolean | undefined;
|
25
|
+
orientation: 'horizontal' | 'vertical';
|
26
|
+
placeholder?: string;
|
27
|
+
rows: number;
|
28
|
+
required: boolean;
|
29
|
+
readonly: boolean;
|
30
|
+
disabled: boolean;
|
31
|
+
maxlength?: number;
|
32
|
+
name?: string;
|
33
|
+
spellcheck: boolean;
|
34
|
+
autocapitalize: 'on' | 'off' | 'none' | 'sentences' | 'words' | 'characters';
|
35
|
+
blur(): void;
|
36
|
+
checkValidity(): boolean;
|
37
|
+
disconnectedCallback(): void;
|
38
|
+
get form(): HTMLFormElement | null;
|
39
|
+
get validity(): ValidityState;
|
40
|
+
get willValidate(): boolean;
|
41
|
+
formAssociatedCallback(): void;
|
42
|
+
formResetCallback(): void;
|
43
|
+
render(): import("lit").TemplateResult<1>;
|
44
|
+
reportValidity(): boolean;
|
45
|
+
updated(): void;
|
46
|
+
constructor();
|
47
|
+
private isCheckingValidity;
|
48
|
+
private isReportValidityOrSubmit;
|
49
|
+
}
|
package/dist/textarea.js
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
"use strict";var O=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var l=(a,s,t,d)=>{for(var u=d>1?void 0:d?N(s,t):s,E=a.length-1,k;E>=0;E--)(k=a[E])&&(u=(d?k(s,t,u):k(u))||u);return d&&u&&O(s,t,u),u};var w=(a,s,t)=>{if(!s.has(a))throw TypeError("Cannot "+t)};var e=(a,s,t)=>(w(a,s,"read from private field"),t?t.call(a):s.get(a)),o=(a,s,t)=>{if(s.has(a))throw TypeError("Cannot add the same private member more than once");s instanceof WeakSet?s.add(a):s.set(a,t)},S=(a,s,t,d)=>(w(a,s,"write to private field"),d?d.call(a,t):s.set(a,t),t);var c=(a,s,t)=>(w(a,s,"access private method"),t);var n,h,f,b,R,m,p,$,F,V,M,y,I,v,g;import"./label.js";import{LitElement as A,html as q}from"lit";import{classMap as z}from"lit/directives/class-map.js";import{createRef as D,ref as H}from"lit/directives/ref.js";import{customElement as U,property as r,state as B}from"lit/decorators.js";import{ifDefined as L}from"lit/directives/if-defined.js";import{when as j}from"lit/directives/when.js";import x from"./textarea.styles.js";let i=class extends A{constructor(){super();o(this,b);o(this,m);o(this,$);o(this,V);o(this,y);o(this,v);this.value="";this.label="";this.hideLabel=!1;this.orientation="horizontal";this.placeholder="";this.rows=2;this.required=!1;this.readonly=!1;this.disabled=!1;this.spellcheck=!1;this.autocapitalize="on";this.isCheckingValidity=!1;this.isReportValidityOrSubmit=!1;o(this,n,void 0);o(this,h,D());o(this,f,({formData:t})=>{this.value.length>0&&this.name&&this.value&&!this.disabled&&t.append(this.name,this.value)});S(this,n,this.attachInternals()),this.addEventListener("invalid",c(this,y,I))}blur(){e(this,h).value?.blur()}checkValidity(){return this.isCheckingValidity=!0,e(this,n).checkValidity()}disconnectedCallback(){super.disconnectedCallback(),this.form?.removeEventListener("formdata",e(this,f)),this.removeEventListener("invalid",c(this,y,I))}get form(){return e(this,n).form}get validity(){return e(this,n).validity}get willValidate(){return e(this,n).willValidate}formAssociatedCallback(){this.form?.addEventListener("formdata",e(this,f))}formResetCallback(){this.value=this.getAttribute("value")??""}render(){return q`<glide-core-label orientation="${this.orientation}" ?disabled="${this.disabled}" ?error="${e(this,b,R)||e(this,m,p)}" ?hide="${this.hideLabel}" ?required="${this.required}"><slot name="tooltip" slot="tooltip"></slot><label class="label" for="textarea">${this.label}</label><div class="textarea-container" slot="control"><textarea class="${z({error:e(this,b,R)||e(this,m,p)})}" id="textarea" name="${L(this.name)}" placeholder="${L(this.placeholder)}" rows="${this.rows}" autocapitalize="${L(this.autocapitalize)}" spellcheck="${this.spellcheck}" ?required="${this.required}" ?readonly="${this.readonly}" ?disabled="${this.disabled}" aria-describedby="meta" ${H(e(this,h))} @input="${c(this,V,M)}" @change="${c(this,$,F)}">
|
2
|
+
</textarea></div><div class="meta" data-test-description-container id="meta" slot="description"><slot name="description"></slot>${j(this.maxlength,()=>q`<div class="${z({"character-count":!0,error:e(this,m,p)})}" data-test-maxlength>${this.value.length}/${this.maxlength}</div>`)}</div></glide-core-label>`}reportValidity(){return e(this,n).reportValidity()}updated(){e(this,h).value&&(e(this,h).value.value=this.value),c(this,v,g).call(this)}};n=new WeakMap,h=new WeakMap,f=new WeakMap,b=new WeakSet,R=function(){return!this.disabled&&!this.readonly&&!this.validity.valid&&this.isReportValidityOrSubmit},m=new WeakSet,p=function(){return!this.maxlength||this.disabled?!1:this.value.length>this.maxlength},$=new WeakSet,F=function(t){const d=e(this,h).value.value;this.value=d,c(this,v,g).call(this),this.dispatchEvent(new Event(t.type,t))},V=new WeakSet,M=function(){const t=e(this,h).value.value;this.value=t,e(this,n).setFormValue(this.value),c(this,v,g).call(this)},y=new WeakSet,I=function(t){t.preventDefault(),this.isCheckingValidity||(this.isCheckingValidity=!1,this.isReportValidityOrSubmit=!0)},v=new WeakSet,g=async function(){const t=e(this,h).value;e(this,m,p)?e(this,n).setValidity({...t?.validity,tooLong:!0}," ",t):e(this,n).setValidity(t?.validity,t?.validationMessage,t),await this.updateComplete},i.formAssociated=!0,i.shadowRootOptions={...A.shadowRootOptions,mode:"closed",delegatesFocus:!0},i.styles=x,l([r()],i.prototype,"value",2),l([r()],i.prototype,"label",2),l([r({attribute:"hide-label",type:Boolean})],i.prototype,"hideLabel",2),l([r({reflect:!0})],i.prototype,"orientation",2),l([r()],i.prototype,"placeholder",2),l([r({reflect:!0,type:Number})],i.prototype,"rows",2),l([r({type:Boolean})],i.prototype,"required",2),l([r({type:Boolean})],i.prototype,"readonly",2),l([r({type:Boolean})],i.prototype,"disabled",2),l([r({type:Number,converter(t){return t&&Number.parseInt(t,10)}})],i.prototype,"maxlength",2),l([r({reflect:!0})],i.prototype,"name",2),l([r({type:Boolean})],i.prototype,"spellcheck",2),l([r()],i.prototype,"autocapitalize",2),l([B()],i.prototype,"isCheckingValidity",2),l([B()],i.prototype,"isReportValidityOrSubmit",2),i=l([U("glide-core-textarea")],i);export{i as default};
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components';
|
2
|
+
declare const meta: Meta;
|
3
|
+
export default meta;
|
4
|
+
export declare const Default: StoryObj;
|
5
|
+
export declare const Required: StoryObj;
|
6
|
+
export declare const Vertical: StoryObj;
|
7
|
+
export declare const Readonly: StoryObj;
|
8
|
+
export declare const Disabled: StoryObj;
|
9
|
+
export declare const Placeholder: StoryObj;
|
10
|
+
export declare const MaxLength: StoryObj;
|
11
|
+
export declare const Description: StoryObj;
|
12
|
+
export declare const WithError: StoryObj;
|
13
|
+
export declare const Tooltip: StoryObj;
|
@@ -0,0 +1,69 @@
|
|
1
|
+
"use strict";import{css as e}from"lit";export default e`
|
2
|
+
glide-core-label::part(tooltip-and-label-container) {
|
3
|
+
align-items: flex-start;
|
4
|
+
margin-block-start: var(--glide-core-spacing-sm);
|
5
|
+
}
|
6
|
+
|
7
|
+
.textarea-container {
|
8
|
+
display: flex;
|
9
|
+
}
|
10
|
+
|
11
|
+
textarea {
|
12
|
+
appearance: none;
|
13
|
+
background-color: var(--glide-core-surface-base-lighter);
|
14
|
+
border: 1px solid var(--glide-core-border-base-light);
|
15
|
+
border-radius: 0.5rem;
|
16
|
+
color: var(--glide-core-text-body-1);
|
17
|
+
cursor: inherit;
|
18
|
+
display: block;
|
19
|
+
flex-grow: 1;
|
20
|
+
font-family: var(--glide-core-body-xs-font-family);
|
21
|
+
font-size: var(--glide-core-body-sm-font-size);
|
22
|
+
font-weight: var(--glide-core-body-xs-font-weight);
|
23
|
+
min-block-size: 1.1875rem;
|
24
|
+
padding: var(--glide-core-spacing-xs) var(--glide-core-spacing-sm);
|
25
|
+
resize: vertical;
|
26
|
+
transition: border-color 200ms ease-in-out;
|
27
|
+
|
28
|
+
&:hover {
|
29
|
+
border-color: var(--glide-core-border-base);
|
30
|
+
}
|
31
|
+
|
32
|
+
&:focus {
|
33
|
+
outline: none;
|
34
|
+
}
|
35
|
+
|
36
|
+
&:focus-visible {
|
37
|
+
border-color: var(--glide-core-border-focus);
|
38
|
+
}
|
39
|
+
|
40
|
+
&.error {
|
41
|
+
border-color: var(--glide-core-status-error);
|
42
|
+
}
|
43
|
+
|
44
|
+
&[readonly] {
|
45
|
+
border-color: transparent;
|
46
|
+
outline: none;
|
47
|
+
transition: none;
|
48
|
+
}
|
49
|
+
|
50
|
+
&[disabled] {
|
51
|
+
background-color: var(--glide-core-surface-base-gray-light);
|
52
|
+
border: 0.0625rem solid var(--glide-core-border-base-light);
|
53
|
+
color: var(--glide-core-text-tertiary-disabled);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
.meta {
|
58
|
+
column-gap: var(--glide-core-spacing-xs);
|
59
|
+
display: flex;
|
60
|
+
font-size: var(--glide-core-body-xs-font-size);
|
61
|
+
justify-content: space-between;
|
62
|
+
}
|
63
|
+
|
64
|
+
.character-count {
|
65
|
+
&.error {
|
66
|
+
font-weight: var(--glide-core-font-weight-bold);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
`;
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
import './textarea.js';
|
@@ -0,0 +1 @@
|
|
1
|
+
import './textarea.js';
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
package/dist/toasts.d.ts
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
import './toasts.toast.js';
|
2
|
+
import { LitElement } from 'lit';
|
3
|
+
declare global {
|
4
|
+
interface HTMLElementTagNameMap {
|
5
|
+
'glide-core-toasts': GlideCoreToasts;
|
6
|
+
}
|
7
|
+
}
|
8
|
+
export interface Toast {
|
9
|
+
label: string;
|
10
|
+
description: string;
|
11
|
+
variant: 'informational' | 'success';
|
12
|
+
duration?: number;
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* @description A container and controller for toast messages
|
16
|
+
|
17
|
+
*/
|
18
|
+
export default class GlideCoreToasts extends LitElement {
|
19
|
+
#private;
|
20
|
+
static shadowRootOptions: ShadowRootInit;
|
21
|
+
static styles: import("lit").CSSResult[];
|
22
|
+
add(toast: Toast): import("./toasts.toast.js").default & {
|
23
|
+
variant: "success" | "informational";
|
24
|
+
label: string;
|
25
|
+
description: string;
|
26
|
+
duration: number | undefined;
|
27
|
+
};
|
28
|
+
render(): import("lit").TemplateResult<1>;
|
29
|
+
}
|
package/dist/toasts.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var u=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var d=(t,e,o,i)=>{for(var r=i>1?void 0:i?v(e,o):e,a=t.length-1,s;a>=0;a--)(s=t[a])&&(r=(i?s(e,o,r):s(r))||r);return i&&r&&u(e,o,r),r};var g=(t,e,o)=>{if(!e.has(t))throw TypeError("Cannot "+o)};var m=(t,e,o)=>(g(t,e,"read from private field"),o?o.call(t):e.get(t)),p=(t,e,o)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,o)};var c;import"./toasts.toast.js";import{LitElement as f,html as E}from"lit";import{createRef as b,ref as h}from"lit/directives/ref.js";import{customElement as R}from"lit/decorators.js";import x from"./toasts.styles.js";let n=class extends f{constructor(){super(...arguments);p(this,c,b())}add(o){const{variant:i,label:r,description:a,duration:s}=o,l=Object.assign(document.createElement("glide-core-toast"),{variant:i,label:r,description:a,duration:s});return m(this,c).value.append(l),l.addEventListener("close",()=>{l.remove()},{once:!0}),l}render(){return E`<div class="component" role="region" tabindex="-1" aria-label="Notifications" ${h(m(this,c))}></div>`}};c=new WeakMap,n.shadowRootOptions={...f.shadowRootOptions,mode:"closed"},n.styles=x,n=d([R("glide-core-toasts")],n);export{n as default};
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";import{css as i}from"lit";export default[i`
|
2
|
+
.component {
|
3
|
+
display: flex;
|
4
|
+
flex-direction: column;
|
5
|
+
gap: var(--glide-core-spacing-md);
|
6
|
+
inline-size: 24.25rem;
|
7
|
+
inset-block-start: 0;
|
8
|
+
inset-inline-end: 0;
|
9
|
+
max-block-size: 100%;
|
10
|
+
max-inline-size: 100%;
|
11
|
+
overflow: hidden;
|
12
|
+
padding: var(--glide-core-spacing-sm);
|
13
|
+
position: fixed;
|
14
|
+
}
|
15
|
+
`];
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import './icon-button.js';
|
2
|
+
import './status-indicator.js';
|
3
|
+
import './tooltip.js';
|
4
|
+
import { LitElement } from 'lit';
|
5
|
+
import type { Toast } from './toasts.js';
|
6
|
+
declare global {
|
7
|
+
interface HTMLElementTagNameMap {
|
8
|
+
'glide-core-toast': GlideCoreToast;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
/**
|
12
|
+
* @private
|
13
|
+
*
|
14
|
+
* @description A message that animates onto the screen
|
15
|
+
*/
|
16
|
+
export default class GlideCoreToast extends LitElement {
|
17
|
+
#private;
|
18
|
+
static shadowRootOptions: ShadowRootInit;
|
19
|
+
static styles: import("lit").CSSResult[];
|
20
|
+
label?: string;
|
21
|
+
description?: string;
|
22
|
+
variant: Toast['variant'];
|
23
|
+
duration?: number | undefined;
|
24
|
+
close(): void;
|
25
|
+
firstUpdated(): void;
|
26
|
+
open(): void;
|
27
|
+
render(): import("lit").TemplateResult<1>;
|
28
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
"use strict";var k=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var r=(i,e,t,l)=>{for(var o=l>1?void 0:l?w(e,t):e,u=i.length-1,h;u>=0;u--)(h=i[u])&&(o=(l?h(e,t,o):h(o))||o);return l&&o&&k(e,t,o),o};var v=(i,e,t)=>{if(!e.has(i))throw TypeError("Cannot "+t)};var a=(i,e,t)=>(v(i,e,"read from private field"),t?t.call(i):e.get(i)),c=(i,e,t)=>{if(e.has(i))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(i):e.set(i,t)};var f=(i,e,t)=>(v(i,e,"access private method"),t);var n,m,b,p,L;import"./icon-button.js";import"./status-indicator.js";import"./tooltip.js";import{LitElement as g,html as E}from"lit";import{classMap as y}from"lit/directives/class-map.js";import{createRef as I,ref as M}from"lit/directives/ref.js";import{customElement as $,property as d}from"lit/decorators.js";import N from"./toasts.toast.styles.js";let s=class extends g{constructor(){super(...arguments);c(this,m);c(this,p);this.duration=5e3;c(this,n,I())}close(){const t=a(this,n)?.value;t?.addEventListener("transitionend",()=>{t?.classList?.remove("open"),t?.classList?.remove("closing"),t?.classList?.add("closed"),this.dispatchEvent(new Event("close",{bubbles:!0}))},{once:!0}),t?.classList?.add("closing")}firstUpdated(){requestAnimationFrame(()=>{this.open()})}open(){const t=Math.max(this.duration??0,5e3);t<Number.POSITIVE_INFINITY&&setTimeout(()=>{this.close()},t),a(this,n)?.value?.classList?.add("open")}render(){return E`<div class="${y({component:!0,[this.variant]:!0})}" role="alert" aria-labelledby="label description" ${M(a(this,n))}><glide-core-status-indicator style="--size: 1.25rem;" class="icon" variant="${a(this,p,L)}"></glide-core-status-indicator><div class="label" id="label">${this.label}</div><glide-core-icon-button label="Close" variant="tertiary" class="close-button" @click="${f(this,m,b)}"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M6 6L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M18 6L6 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg></glide-core-icon-button><div class="description" id="description">${this.description}</div></div>`}};n=new WeakMap,m=new WeakSet,b=function(){this.close()},p=new WeakSet,L=function(){return{informational:"warning-informational",success:"success"}[this.variant]},s.shadowRootOptions={...g.shadowRootOptions,mode:"closed"},s.styles=N,r([d({reflect:!0})],s.prototype,"label",2),r([d({reflect:!0})],s.prototype,"description",2),r([d()],s.prototype,"variant",2),r([d({type:Number})],s.prototype,"duration",2),s=r([$("glide-core-toast")],s);export{s as default};
|
@@ -0,0 +1,60 @@
|
|
1
|
+
"use strict";import{css as o}from"lit";export default[o`
|
2
|
+
.component {
|
3
|
+
align-items: center;
|
4
|
+
border-radius: var(--glide-core-spacing-sm);
|
5
|
+
box-shadow: var(--glide-core-shadow-lg);
|
6
|
+
column-gap: var(--glide-core-spacing-xs);
|
7
|
+
display: grid;
|
8
|
+
font-family: var(--glide-core-body-xs-font-family);
|
9
|
+
font-size: var(--glide-core-body-sm-font-size);
|
10
|
+
font-weight: var(--glide-core-body-xs-font-weight);
|
11
|
+
grid-template-columns: auto minmax(0, 1fr);
|
12
|
+
line-height: var(--glide-core-body-xs-line-height);
|
13
|
+
padding: var(--glide-core-spacing-sm);
|
14
|
+
transform: translateX(110%);
|
15
|
+
transition:
|
16
|
+
transform 0.2s ease-out,
|
17
|
+
opacity 0.3s ease-out;
|
18
|
+
|
19
|
+
&.informational {
|
20
|
+
background-color: var(--glide-core-surface-informational);
|
21
|
+
}
|
22
|
+
|
23
|
+
&.success {
|
24
|
+
background-color: var(--glide-core-surface-success);
|
25
|
+
}
|
26
|
+
|
27
|
+
&.open {
|
28
|
+
opacity: 1;
|
29
|
+
transform: none;
|
30
|
+
visibility: visible;
|
31
|
+
}
|
32
|
+
|
33
|
+
&.closing {
|
34
|
+
opacity: 0;
|
35
|
+
transform: none;
|
36
|
+
}
|
37
|
+
|
38
|
+
&.closed {
|
39
|
+
display: none;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
.icon {
|
44
|
+
grid-column: 1;
|
45
|
+
}
|
46
|
+
|
47
|
+
.label {
|
48
|
+
font-size: var(--glide-core-heading-xs-font-size);
|
49
|
+
font-weight: var(--glide-core-heading-xs-font-weight);
|
50
|
+
grid-column: 2;
|
51
|
+
}
|
52
|
+
|
53
|
+
.close-button {
|
54
|
+
grid-column: 3;
|
55
|
+
}
|
56
|
+
|
57
|
+
.description {
|
58
|
+
grid-column: 2;
|
59
|
+
}
|
60
|
+
`];
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
package/dist/toggle.d.ts
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
import './label.js';
|
2
|
+
import { LitElement } from 'lit';
|
3
|
+
declare global {
|
4
|
+
interface HTMLElementTagNameMap {
|
5
|
+
'glide-core-toggle': GlideCoreToggle;
|
6
|
+
}
|
7
|
+
}
|
8
|
+
/**
|
9
|
+
* @description A toggle with a label and optional tooltip, summary, and description.
|
10
|
+
*
|
11
|
+
* @event change - Dispatched when checked or unchecked.
|
12
|
+
* @event input - Dispatched when checked or unchecked.
|
13
|
+
|
14
|
+
* @slot description - Additional information or context.
|
15
|
+
* @slot tooltip - Content for the tooltip.
|
16
|
+
*/
|
17
|
+
export default class GlideCoreToggle extends LitElement {
|
18
|
+
#private;
|
19
|
+
static shadowRootOptions: ShadowRootInit;
|
20
|
+
static styles: import("lit").CSSResult[];
|
21
|
+
checked: boolean;
|
22
|
+
disabled: boolean;
|
23
|
+
hideLabel: boolean;
|
24
|
+
label?: string;
|
25
|
+
orientation: 'horizontal' | 'vertical';
|
26
|
+
name?: string;
|
27
|
+
summary?: string;
|
28
|
+
click(): void;
|
29
|
+
focus(options?: FocusOptions): void;
|
30
|
+
render(): import("lit").TemplateResult<1>;
|
31
|
+
}
|