kempo-ui 0.0.14 → 0.0.16
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/dist/kempo-vars.css +1 -0
- package/dist/src/components/Accordion.js +40 -9
- package/dist/src/components/Tabs.js +9 -8
- package/docs/dev.config.json +5 -9
- package/docs/kempo-ui/components/accordion.html +236 -0
- package/docs/{components → kempo-ui/components}/card.html +8 -8
- package/docs/{components → kempo-ui/components}/content-slider.html +8 -8
- package/docs/kempo-ui/components/dialog.html +339 -0
- package/docs/{components → kempo-ui/components}/focus-capture.html +9 -9
- package/docs/{components → kempo-ui/components}/hybrid-component.html +7 -7
- package/docs/{components → kempo-ui/components}/icon.html +9 -8
- package/docs/{components → kempo-ui/components}/import.html +8 -8
- package/docs/{components → kempo-ui/components}/light-component.html +7 -7
- package/docs/{components → kempo-ui/components}/photo-viewer.html +8 -8
- package/docs/{components → kempo-ui/components}/resize.html +8 -8
- package/docs/{components → kempo-ui/components}/shadow-component.html +7 -7
- package/docs/{components → kempo-ui/components}/show-more.html +8 -8
- package/docs/{components → kempo-ui/components}/side-menu.html +8 -8
- package/docs/{components → kempo-ui/components}/sortable.html +8 -8
- package/docs/{components → kempo-ui/components}/split.html +9 -9
- package/docs/{components → kempo-ui/components}/table.html +32 -32
- package/docs/{components → kempo-ui/components}/tableControls.html +12 -12
- package/docs/{components → kempo-ui/components}/tableCustomFields.html +9 -9
- package/docs/{components → kempo-ui/components}/tableFetchRecords.html +16 -16
- package/docs/{components → kempo-ui/components}/tableFieldSortHide.html +11 -11
- package/docs/{components → kempo-ui/components}/tablePagination.html +17 -17
- package/docs/{components → kempo-ui/components}/tableRecordEditing.html +12 -12
- package/docs/{components → kempo-ui/components}/tableRecordFiltering.html +11 -11
- package/docs/{components → kempo-ui/components}/tableRecordHiding.html +13 -13
- package/docs/{components → kempo-ui/components}/tableRecordSearching.html +11 -11
- package/docs/{components → kempo-ui/components}/tableRecordSelection.html +11 -11
- package/docs/{components → kempo-ui/components}/tableRowControls.html +12 -12
- package/docs/{components → kempo-ui/components}/tableSorting.html +9 -9
- package/docs/{components → kempo-ui/components}/tabs.html +8 -8
- package/docs/{components → kempo-ui/components}/tags.html +8 -8
- package/docs/{components → kempo-ui/components}/theme-switcher.html +8 -8
- package/docs/{components → kempo-ui/components}/timestamp.html +8 -8
- package/docs/kempo-ui/components/toast.html +315 -0
- package/docs/{components → kempo-ui/components}/toggle.html +8 -8
- package/docs/{components → kempo-ui/components}/tree.html +16 -14
- package/docs/{index.html → kempo-ui/index.html} +7 -18
- package/docs/kempo-ui/kempo-vars.css +1 -0
- package/docs/kempo-ui/nav.inc.html +67 -0
- package/docs/kempo-ui/src/components/Accordion.js +67 -0
- package/docs/{src → kempo-ui/src}/components/Tabs.js +9 -8
- package/docs/kempo-ui/utils/debounce.html +56 -0
- package/docs/{utils → kempo-ui/utils}/drag.html +8 -17
- package/docs/{utils → kempo-ui/utils}/formatTimestamp.html +12 -29
- package/docs/kempo-ui/utils/propConverters.html +90 -0
- package/docs/{utils → kempo-ui/utils}/toTitleCase.html +7 -6
- package/docs/kempo-ui/utils/watchWindowSize.html +72 -0
- package/docs/prod.config.json +0 -8
- package/package.json +2 -2
- package/scripts/build.js +8 -8
- package/scripts/docs.js +3 -0
- package/src/components/Accordion.js +145 -57
- package/src/components/Tabs.js +14 -23
- package/src/kempo-vars.css +1 -0
- package/dist/src/components/Collapsible.js +0 -41
- package/dist/src/components/PersistantCollapsible.js +0 -1
- package/docs/components/accordion.html +0 -162
- package/docs/components/collapsible.html +0 -194
- package/docs/components/dialog.html +0 -106
- package/docs/components/init.js +0 -7
- package/docs/components/persistant-collapsible.html +0 -118
- package/docs/components/toast.html +0 -53
- package/docs/init.js +0 -7
- package/docs/kempo-vars.css +0 -0
- package/docs/kempo.css +0 -1
- package/docs/nav.inc.html +0 -69
- package/docs/src/components/Accordion.js +0 -36
- package/docs/src/components/Collapsible.js +0 -41
- package/docs/src/components/PersistantCollapsible.js +0 -1
- package/docs/utils/debounce.html +0 -74
- package/docs/utils/init.js +0 -8
- package/docs/utils/propConverters.html +0 -128
- package/docs/utils/watchWindowSize.html +0 -162
- package/src/components/Collapsible.js +0 -109
- package/src/components/PersistantCollapsible.js +0 -69
- /package/docs/{icons → kempo-ui/icons}/add.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/arrow-back.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/arrow-down-double.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/arrow-down.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/arrow-forward.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/arrow-up-double.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/arrow-up.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/cards.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/check.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/chevron-left.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/chevron-right.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/close.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/compare.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/delete.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/drag-handle.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/drawing2.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/edit.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/error.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/export-file.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/file-text.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/file.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/filter-off.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/filter.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/first.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/folder-clear.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/folder-create.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/folder-open.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/folder.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/hide.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/image.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/label-add.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/label.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/last.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/menu.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/mode-auto.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/mode-dark.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/mode-light.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/open-in-browser.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/pause.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/play.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/refresh.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/remove.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/save.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/search.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/settings.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/show.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/storage.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/table-visibility.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/tag.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/tools.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/trash-x.svg +0 -0
- /package/docs/{icons → kempo-ui/icons}/warning.svg +0 -0
- /package/docs/{kempo-hljs.css → kempo-ui/kempo-hljs.css} +0 -0
- /package/docs/{kempo.min.css → kempo-ui/kempo.min.css} +0 -0
- /package/docs/{media → kempo-ui/media}/civic.jpg +0 -0
- /package/docs/{media → kempo-ui/media}/corvette.jpg +0 -0
- /package/docs/{media → kempo-ui/media}/evo.jpg +0 -0
- /package/docs/{media → kempo-ui/media}/gtr.jpg +0 -0
- /package/docs/{media → kempo-ui/media}/nsx.jpg +0 -0
- /package/docs/{nav.inc.js → kempo-ui/nav.inc.js} +0 -0
- /package/docs/{src → kempo-ui/src}/components/Card.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/ContentSlider.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Dialog.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/FocusCapture.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/HybridComponent.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Icon.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Import.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/LightComponent.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/PhotoViewer.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Resize.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/ShadowComponent.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/ShowMore.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/SideMenu.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Sortable.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Split.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Table.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Tags.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/ThemeSwitcher.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Timestamp.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Toast.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Toggle.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/Tree.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/DeleteRecord.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/Edit.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/ExportCSV.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/ExportJson.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/FieldSortHide.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/Filters.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/FirstPage.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/HiddenCount.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/Hide.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/LastPage.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/NextPage.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/PageSelect.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/PageSize.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/PrevPage.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/Search.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/ShowAll.js +0 -0
- /package/docs/{src → kempo-ui/src}/components/tableControls/TableControl.js +0 -0
- /package/docs/{src → kempo-ui/src}/lit-all.min.js +0 -0
- /package/docs/{src → kempo-ui/src}/utils/debounce.js +0 -0
- /package/docs/{src → kempo-ui/src}/utils/drag.js +0 -0
- /package/docs/{src → kempo-ui/src}/utils/formatTimestamp.js +0 -0
- /package/docs/{src → kempo-ui/src}/utils/propConverters.js +0 -0
- /package/docs/{src → kempo-ui/src}/utils/toTitleCase.js +0 -0
- /package/docs/{src → kempo-ui/src}/utils/watchWindowSize.js +0 -0
- /package/docs/{styles.css → kempo-ui/styles.css} +0 -0
package/dist/kempo-vars.css
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/* Define Kempo Vars Here */
|
|
@@ -1,28 +1,59 @@
|
|
|
1
|
-
import ShadowComponent from"./ShadowComponent.js";import{html,css}from"../lit-all.min.js";import{boolTrueFalse}from"../utils/propConverters.js";export default class Accordion extends ShadowComponent{static properties={};getHeader(e){return this.querySelector(`k-accordion-header[for-panel="${e}"]`)}getPanel(e){return this.querySelector(`k-accordion-panel[name="${e}"]`)}openPanel(e){
|
|
1
|
+
import ShadowComponent from"./ShadowComponent.js";import{html,css}from"../lit-all.min.js";import{boolExists,boolTrueFalse}from"../utils/propConverters.js";export default class Accordion extends ShadowComponent{static properties={multiple:{type:Boolean,reflect:!0,converter:boolExists},persistentId:{type:String,reflect:!0,attribute:"persistent-id"}};constructor(){super(),this.multiple=!1,this.persistentId=null}connectedCallback(){super.connectedCallback?.()}updated(e){if(super.updated?.(e),e.has("persistentId")&&this.persistentId&&window?.localStorage){const e=`accordion-persistent-id-${this.persistentId}`,t=window.localStorage.getItem(e);if(t){const e=t.split(",");this.querySelectorAll("k-accordion-panel").forEach(t=>{t.active=e.includes(t.name);const o=this.getHeader(t.name);o&&(o.active=e.includes(t.name))})}}}getHeader(e){return this.querySelector(`k-accordion-header[for-panel="${e}"]`)}getPanel(e){return this.querySelector(`k-accordion-panel[name="${e}"]`)}openPanel(e){this.multiple||this.querySelectorAll("k-accordion-panel[active]").forEach(t=>{if(t.name!==e){t.active=!1;const e=this.getHeader(t.name);e&&(e.active=!1)}});const t=this.getPanel(e);if(t){t.active=!0,t.transitioning=!0,setTimeout(()=>{t.transitioning=!1},parseInt(getComputedStyle(this).getPropertyValue("--animation_ms")||256));const o=this.getHeader(e);o&&(o.active=!0),this.dispatchEvent(new CustomEvent("openpanel",{detail:{panelName:e}})),setTimeout(()=>{if(this.persistentId&&window?.localStorage){const e=`accordion-persistent-id-${this.persistentId}`,t=Array.from(this.querySelectorAll("k-accordion-panel[active]")).map(e=>e.name);window.localStorage.setItem(e,t.join(","))}},parseInt(getComputedStyle(this).getPropertyValue("--animation_ms")||256))}}closePanel(e){const t=this.getPanel(e);if(t){t.active=!1,t.transitioning=!0,setTimeout(()=>{t.transitioning=!1},parseInt(getComputedStyle(this).getPropertyValue("--animation_ms")||256));const o=this.getHeader(e);o&&(o.active=!1),this.dispatchEvent(new CustomEvent("closepanel",{detail:{panelName:e}})),setTimeout(()=>{if(this.persistentId&&window?.localStorage){const e=`accordion-persistent-id-${this.persistentId}`,t=Array.from(this.querySelectorAll("k-accordion-panel[active]")).map(e=>e.name);window.localStorage.setItem(e,t.join(","))}},parseInt(getComputedStyle(this).getPropertyValue("--animation_ms")||256))}}togglePanel(e){const t=this.getPanel(e);t&&(t.active?this.closePanel(e):this.openPanel(e),this.dispatchEvent(new CustomEvent("togglepanel",{detail:{panelName:e}})))}get activeHeader(){return this.querySelector('k-accordion-header[active="true"]')}get activePanel(){return this.querySelector('k-accordion-panel[active="true"]')}static styles=css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
|
-
border: 1px solid var(--c_border);
|
|
4
|
+
border: 1px solid var(--c_border, #ccc);
|
|
5
5
|
border-radius: var(--radius);
|
|
6
6
|
}
|
|
7
7
|
::slotted(k-accordion-header) {
|
|
8
|
-
border-top: 1px solid var(--c_border);
|
|
8
|
+
border-top: 1px solid var(--c_border, #ccc);
|
|
9
9
|
}
|
|
10
|
-
::slotted(k-accordion-header
|
|
11
|
-
|
|
10
|
+
::slotted(k-accordion-header) {
|
|
11
|
+
position: relative;
|
|
12
|
+
}
|
|
13
|
+
::slotted(k-accordion-header)::after {
|
|
14
|
+
content: '';
|
|
15
|
+
display: block;
|
|
16
|
+
position: absolute;
|
|
17
|
+
left: var(--spacer_h, 0.5rem);
|
|
18
|
+
right: var(--spacer_h, 0.5rem);
|
|
19
|
+
bottom: 0;
|
|
20
|
+
height: 0;
|
|
21
|
+
width: calc(100% - var(--spacer, 1rem));
|
|
22
|
+
border-bottom: 1px solid var(--c_border, #ccc);
|
|
23
|
+
opacity: 0;
|
|
24
|
+
transition: opacity var(--animation_ms, 256ms);
|
|
25
|
+
pointer-events: none;
|
|
26
|
+
}
|
|
27
|
+
::slotted(k-accordion-header[active])::after {
|
|
28
|
+
opacity: 0.4;
|
|
12
29
|
}
|
|
13
30
|
::slotted(k-accordion-header:first-of-type) {
|
|
14
31
|
border-top: 0;
|
|
15
32
|
}
|
|
16
|
-
::slotted(k-accordion-header:last-of-type:not([active
|
|
33
|
+
::slotted(k-accordion-header:last-of-type:not([active])) {
|
|
17
34
|
border-bottom: 0;
|
|
18
35
|
}
|
|
19
|
-
`;render(){return html`<slot></slot>`}}export class AccordionHeader extends ShadowComponent{static properties={forPanel:{type:String,reflect:!0,attribute:"for-panel"},active:{type:Boolean,reflect:!0,converter:
|
|
36
|
+
`;render(){return html`<slot></slot>`}}export class AccordionHeader extends ShadowComponent{static properties={forPanel:{type:String,reflect:!0,attribute:"for-panel"},active:{type:Boolean,reflect:!0,converter:boolExists}};constructor(){super(),this.forPanel="",this.active=!1}handleClick=()=>{this.accordion?.togglePanel(this.forPanel)};connectedCallback(){super.connectedCallback(),this.addEventListener("click",this.handleClick)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",this.handleClick)}get accordion(){return this.closest("k-accordion")}render(){return html`
|
|
37
|
+
<slot name="left-icon">
|
|
38
|
+
<k-icon id="icon" name="chevron-right"></k-icon>
|
|
39
|
+
</slot>
|
|
40
|
+
<slot></slot>
|
|
41
|
+
<slot name="right-icon"></slot>
|
|
42
|
+
`}static styles=css`
|
|
20
43
|
:host {
|
|
21
44
|
display: block;
|
|
22
45
|
padding: 1rem;
|
|
23
46
|
cursor: pointer;
|
|
24
47
|
}
|
|
25
|
-
|
|
48
|
+
#icon {
|
|
49
|
+
will-change: trnasform;
|
|
50
|
+
transition: transform var(--animation_ms, 256ms);
|
|
51
|
+
transform: rotate(0deg);
|
|
52
|
+
}
|
|
53
|
+
:host([active]) #icon {
|
|
54
|
+
transform: rotate(90deg);
|
|
55
|
+
}
|
|
56
|
+
`}export class AccordionPanel extends ShadowComponent{static properties={name:{type:String,reflect:!0},active:{type:Boolean,reflect:!0,converter:boolExists},transitioning:{type:Boolean,reflect:!0,converter:boolExists}};constructor(){super(),this.name="",this.active=!1,this.transitioning=!1}get accordion(){return this.closest("k-accordion")}static styles=css`
|
|
26
57
|
:host {
|
|
27
58
|
display: block;
|
|
28
59
|
interpolate-size: allow-keywords;
|
|
@@ -30,7 +61,7 @@ import ShadowComponent from"./ShadowComponent.js";import{html,css}from"../lit-al
|
|
|
30
61
|
overflow: hidden;
|
|
31
62
|
transition: height var(--animation_ms, 256ms) ease-in-out;
|
|
32
63
|
}
|
|
33
|
-
|
|
64
|
+
:host([active]) {
|
|
34
65
|
height: max-content;
|
|
35
66
|
}
|
|
36
67
|
`;render(){return html`<slot></slot>`}}customElements.define("k-accordion",Accordion),customElements.define("k-accordion-header",AccordionHeader),customElements.define("k-accordion-panel",AccordionPanel);
|
|
@@ -99,7 +99,11 @@ import{html,css}from"../lit-all.min.js";import ShadowComponent from"./ShadowComp
|
|
|
99
99
|
<slot></slot>
|
|
100
100
|
</div>
|
|
101
101
|
</div>
|
|
102
|
-
`}}export class Tab extends ShadowComponent{static properties={active:{type:Boolean,reflect:!0,converter:boolExists},for:{type:String,reflect:!0}};constructor(){super(),this.active=!1,this.for="",this.slot="tabs"}handleClick=()=>{if(!this.active){const t=this.parentElement;t&&"K-TABS"===t.tagName&&(t.active=this.for||t.tabs.indexOf(this).toString())}};get tabs(){return"K-TABS"===this.parentElement?.tagName?this.parentElement:null}
|
|
102
|
+
`}}export class Tab extends ShadowComponent{static properties={active:{type:Boolean,reflect:!0,converter:boolExists},for:{type:String,reflect:!0}};constructor(){super(),this.active=!1,this.for="",this.slot="tabs"}handleClick=()=>{if(!this.active){const t=this.parentElement;t&&"K-TABS"===t.tagName&&(t.active=this.for||t.tabs.indexOf(this).toString())}};get tabs(){return"K-TABS"===this.parentElement?.tagName?this.parentElement:null}render(){return html`
|
|
103
|
+
<button id="button" @click=${this.handleClick}>
|
|
104
|
+
<slot></slot>
|
|
105
|
+
</button>
|
|
106
|
+
`}static styles=css`
|
|
103
107
|
:host {
|
|
104
108
|
margin-bottom: -1px;
|
|
105
109
|
flex: 0 0 auto;
|
|
@@ -120,24 +124,21 @@ import{html,css}from"../lit-all.min.js";import ShadowComponent from"./ShadowComp
|
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
:host([active]) {
|
|
123
|
-
border-bottom:
|
|
127
|
+
border-bottom: 3px solid var(--c_primary);
|
|
124
128
|
margin-bottom: -1px;
|
|
125
129
|
}
|
|
126
130
|
|
|
127
131
|
:host([active]) #button {
|
|
128
132
|
color: var(--tc_primary);
|
|
129
133
|
}
|
|
130
|
-
|
|
131
|
-
<button id="button" @click=${this.handleClick}>
|
|
132
|
-
<slot></slot>
|
|
133
|
-
</button>
|
|
134
|
-
`}}export class TabContent extends ShadowComponent{static properties={active:{type:Boolean,reflect:!0,converter:boolExists},name:{type:String,reflect:!0}};constructor(){super(),this.active=!1,this.name=""}get tabs(){return"K-TABS"===this.parentElement?.tagName?this.parentElement:null}static styles=css`
|
|
134
|
+
`}export class TabContent extends ShadowComponent{static properties={active:{type:Boolean,reflect:!0,converter:boolExists},name:{type:String,reflect:!0}};constructor(){super(),this.active=!1,this.name=""}get tabs(){return"K-TABS"===this.parentElement?.tagName?this.parentElement:null}render(){return html`<slot></slot>`}static styles=css`
|
|
135
135
|
:host {
|
|
136
136
|
display: block;
|
|
137
137
|
height: 100%;
|
|
138
138
|
max-height: 100%;
|
|
139
139
|
flex: 1 1 auto;
|
|
140
140
|
overflow: auto;
|
|
141
|
+
padding-top: var(--spacer, 1rem);
|
|
141
142
|
}
|
|
142
143
|
|
|
143
144
|
:host([active]) {
|
|
@@ -147,7 +148,7 @@ import{html,css}from"../lit-all.min.js";import ShadowComponent from"./ShadowComp
|
|
|
147
148
|
:host(:not([active])) {
|
|
148
149
|
display: none;
|
|
149
150
|
}
|
|
150
|
-
|
|
151
|
+
`}export class TabSpacer extends ShadowComponent{constructor(){super(),this.slot="tabs"}static styles=css`
|
|
151
152
|
:host {
|
|
152
153
|
flex: 1 1 auto !important;
|
|
153
154
|
height: 1px;
|
package/docs/dev.config.json
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"customRoutes": {
|
|
3
|
-
"/": "
|
|
4
|
-
"/kempo.min.css": "../node_modules/kempo-css/dist/kempo.min.css",
|
|
5
|
-
"/kempo-vars.css": "../kempo-vars.css",
|
|
6
|
-
"/kempo-hljs.css": "../src/kempo-hljs.css",
|
|
3
|
+
"/kempo.min.css": "../node_modules/kempo-css/dist/kempo.min.css",
|
|
4
|
+
"/kempo-ui/kempo.min.css": "../node_modules/kempo-css/dist/kempo.min.css",
|
|
5
|
+
"/kempo-ui/kempo-vars.css": "../src/kempo-vars.css",
|
|
6
|
+
"/kempo-ui/kempo-hljs.css": "../src/kempo-hljs.css",
|
|
7
7
|
"/icons/**": "../icons/**",
|
|
8
|
-
"/src/**": "../src/**"
|
|
9
|
-
},
|
|
10
|
-
"mimeTypes": {
|
|
11
|
-
".js": "application/javascript",
|
|
12
|
-
".mjs": "application/javascript"
|
|
8
|
+
"/kempo-ui/src/**": "../src/**"
|
|
13
9
|
},
|
|
14
10
|
"middleware": {
|
|
15
11
|
"logging": {
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<base href="/kempo-ui/">
|
|
6
|
+
<meta charset="UTF-8">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
+
<title>Accordion - Components - Kempo Docs - A Web Components Solution</title>
|
|
9
|
+
<link rel="stylesheet" href="kempo-vars.css" />
|
|
10
|
+
<link rel="stylesheet" href="kempo.min.css" />
|
|
11
|
+
<link rel="stylesheet" href="kempo-hljs.css" />
|
|
12
|
+
<link rel="stylesheet" href="styles.css" />
|
|
13
|
+
<script>window.litDisableBundleWarning = true;</script>
|
|
14
|
+
</head>
|
|
15
|
+
|
|
16
|
+
<body>
|
|
17
|
+
<k-import src="/kempo-ui/nav.inc.html"></k-import>
|
|
18
|
+
<h1 class="ta-center">Accordion</h1>
|
|
19
|
+
<main>
|
|
20
|
+
<k-accordion persistent-id="toc" class="b r mb">
|
|
21
|
+
<k-accordion-header for-panel="toc-panel">Table of Contents</k-accordion-header>
|
|
22
|
+
<k-accordion-panel name="toc-panel">
|
|
23
|
+
<div class="m pl">
|
|
24
|
+
<h6>Examples</h6>
|
|
25
|
+
<a href="#basicUsage" class="scroll-link">Basic Usage</a><br />
|
|
26
|
+
<a href="#defaultOpen" class="scroll-link">Default Open Panel</a><br />
|
|
27
|
+
<a href="#multiple" class="scroll-link">Multiple Panels Mode</a><br />
|
|
28
|
+
<a href="#persistent" class="scroll-link">Persistent State Example</a><br />
|
|
29
|
+
<h6 class="mt"><a href="#jsRef" class="no-link scroll-link">JavaScript Reference</a></h6>
|
|
30
|
+
<a href="#accordion-ref" class="scroll-link">Accordion</a><br />
|
|
31
|
+
<a href="#accordion-header-ref" class="scroll-link">AccordionHeader</a><br />
|
|
32
|
+
<a href="#accordion-panel-ref" class="scroll-link">AccordionPanel</a><br />
|
|
33
|
+
<a href="#events" class="scroll-link">Events</a><br />
|
|
34
|
+
</div>
|
|
35
|
+
</k-accordion-panel>
|
|
36
|
+
</k-accordion>
|
|
37
|
+
|
|
38
|
+
<h3>Description</h3>
|
|
39
|
+
<p>A widget that allows a single panel of content to be opened and closed.</p>
|
|
40
|
+
|
|
41
|
+
<h3 id="basicUsage"><a href="#basicUsage" class="no-link scroll-link">Basic Usage</a></h3>
|
|
42
|
+
<div class="row -mx mb">
|
|
43
|
+
<div class="col d-span-6 m-span-12 px">
|
|
44
|
+
<k-card label="HTML">
|
|
45
|
+
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">k-accordion</span>></span><br /><span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel1"</span>></span>Panel 1<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /><span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel1"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 1 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /><span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /><span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel2"</span>></span>Panel 2<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /><span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel2"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 2 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /><span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /><span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel3"</span>></span>Panel 3<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /><span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel3"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 3 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /><span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /><span class="hljs-tag"></<span class="hljs-name">k-accordion</span>></span></code></pre>
|
|
46
|
+
</k-card>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="col d-span-6 m-span-12 px">
|
|
49
|
+
<k-card label="Results">
|
|
50
|
+
<k-accordion class="mb">
|
|
51
|
+
<k-accordion-header for-panel="panel1">Panel 1</k-accordion-header>
|
|
52
|
+
<k-accordion-panel name="panel1">
|
|
53
|
+
<p class="m">Panel 1 content</p>
|
|
54
|
+
</k-accordion-panel>
|
|
55
|
+
<k-accordion-header for-panel="panel2">Panel 2</k-accordion-header>
|
|
56
|
+
<k-accordion-panel name="panel2">
|
|
57
|
+
<p class="m">Panel 2 content</p>
|
|
58
|
+
</k-accordion-panel>
|
|
59
|
+
<k-accordion-header for-panel="panel3">Panel 3</k-accordion-header>
|
|
60
|
+
<k-accordion-panel name="panel3">
|
|
61
|
+
<p class="m">Panel 3 content</p>
|
|
62
|
+
</k-accordion-panel>
|
|
63
|
+
</k-accordion>
|
|
64
|
+
</k-card>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
<h3 id="defaultOpen"><a href="#defaultOpen" class="no-link scroll-link">Default Open Panel</a></h3>
|
|
71
|
+
<p>You can have a panel open by default by setting the <code>active</code> attribute to <code>true</code> on both
|
|
72
|
+
<p>You can have a panel open by default by adding the <code>active</code> attribute to both the header and the
|
|
73
|
+
panel. The presence of the attribute means <code>true</code>.</p>
|
|
74
|
+
<div class="row -mx mb">
|
|
75
|
+
<div class="col d-span-6 m-span-12 px">
|
|
76
|
+
<k-card label="HTML">
|
|
77
|
+
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">k-accordion</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel1"</span> <span class="hljs-attr">active</span>=<span class="hljs-string">"true"</span>></span>Panel 1<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel1"</span> <span class="hljs-attr">active</span>=<span class="hljs-string">"true"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 1 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /> <span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel2"</span>></span>Panel 2<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel2"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 2 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /> <span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel3"</span>></span>Panel 3<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel3"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 3 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /> <span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /><span class="hljs-tag"></<span class="hljs-name">k-accordion</span>></span></code></pre>
|
|
78
|
+
</k-card>
|
|
79
|
+
</div>
|
|
80
|
+
<div class="col d-span-6 m-span-12 px">
|
|
81
|
+
<k-card label="Results">
|
|
82
|
+
<k-accordion class="mb">
|
|
83
|
+
<k-accordion-header for-panel="panel1" active>Panel 1</k-accordion-header>
|
|
84
|
+
<k-accordion-panel name="panel1" active>
|
|
85
|
+
<p class="m">Panel 1 content</p>
|
|
86
|
+
</k-accordion-panel>
|
|
87
|
+
<k-accordion-header for-panel="panel2">Panel 2</k-accordion-header>
|
|
88
|
+
<k-accordion-panel name="panel2">
|
|
89
|
+
<p class="m">Panel 2 content</p>
|
|
90
|
+
</k-accordion-panel>
|
|
91
|
+
<k-accordion-header for-panel="panel3">Panel 3</k-accordion-header>
|
|
92
|
+
<k-accordion-panel name="panel3">
|
|
93
|
+
<p class="m">Panel 3 content</p>
|
|
94
|
+
</k-accordion-panel>
|
|
95
|
+
</k-accordion>
|
|
96
|
+
</k-card>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<h3 id="multiple"><a href="#multiple" class="no-link scroll-link">Multiple Panels Mode</a></h3>
|
|
101
|
+
<p>Add the <code>multiple</code> attribute to <code>k-accordion</code> to allow more than one panel to be open at a
|
|
102
|
+
time.</p>
|
|
103
|
+
<div class="row -mx mb">
|
|
104
|
+
<div class="col d-span-6 m-span-12 px">
|
|
105
|
+
<k-card label="HTML">
|
|
106
|
+
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">k-accordion</span> <span class="hljs-attr">multiple</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel1"</span> <span class="hljs-attr">active</span>></span>Panel 1<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel1"</span> <span class="hljs-attr">active</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 1 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /> <span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel2"</span>></span>Panel 2<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel2"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 2 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /> <span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel3"</span>></span>Panel 3<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel3"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 3 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /> <span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /><span class="hljs-tag"></<span class="hljs-name">k-accordion</span>></span></code></pre>
|
|
107
|
+
</k-card>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="col d-span-6 m-span-12 px">
|
|
110
|
+
<k-card label="Results">
|
|
111
|
+
<k-accordion class="mb" multiple>
|
|
112
|
+
<k-accordion-header for-panel="panel1" active>Panel 1</k-accordion-header>
|
|
113
|
+
<k-accordion-panel name="panel1" active>
|
|
114
|
+
<p class="m">Panel 1 content</p>
|
|
115
|
+
</k-accordion-panel>
|
|
116
|
+
<k-accordion-header for-panel="panel2">Panel 2</k-accordion-header>
|
|
117
|
+
<k-accordion-panel name="panel2">
|
|
118
|
+
<p class="m">Panel 2 content</p>
|
|
119
|
+
</k-accordion-panel>
|
|
120
|
+
<k-accordion-header for-panel="panel3">Panel 3</k-accordion-header>
|
|
121
|
+
<k-accordion-panel name="panel3">
|
|
122
|
+
<p class="m">Panel 3 content</p>
|
|
123
|
+
</k-accordion-panel>
|
|
124
|
+
</k-accordion>
|
|
125
|
+
</k-card>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
<h3 id="persistent"><a href="#persistent" class="no-link scroll-link">Persistent State Example</a></h3>
|
|
130
|
+
<p>Add the <code>persistent-id</code> attribute to <code>k-accordion</code> to save and restore open panels across
|
|
131
|
+
page reloads. The state is stored in <code>localStorage</code> (if available) using the provided ID.</p>
|
|
132
|
+
<div class="row -mx mb">
|
|
133
|
+
<div class="col d-span-6 m-span-12 px">
|
|
134
|
+
<k-card label="HTML">
|
|
135
|
+
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">k-accordion</span> <span class="hljs-attr">persistent-id</span>=<span class="hljs-string">"demo-accordion"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel1"</span>></span>Panel 1<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel1"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 1 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /> <span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel2"</span>></span>Panel 2<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel2"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 2 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /> <span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-header</span> <span class="hljs-attr">for-panel</span>=<span class="hljs-string">"panel3"</span>></span>Panel 3<span class="hljs-tag"></<span class="hljs-name">k-accordion-header</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">k-accordion-panel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"panel3"</span>></span><br /> <span class="hljs-tag"><<span class="hljs-name">p</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"m"</span>></span>Panel 3 content<span class="hljs-tag"></<span class="hljs-name">p</span>></span><br /> <span class="hljs-tag"></<span class="hljs-name">k-accordion-panel</span>></span><br /><span class="hljs-tag"></<span class="hljs-name">k-accordion</span>></span></code></pre>
|
|
136
|
+
</k-card>
|
|
137
|
+
</div>
|
|
138
|
+
<div class="col d-span-6 m-span-12 px">
|
|
139
|
+
<k-card label="Results">
|
|
140
|
+
<k-accordion class="mb" persistent-id="demo-accordion">
|
|
141
|
+
<k-accordion-header for-panel="panel1">Panel 1</k-accordion-header>
|
|
142
|
+
<k-accordion-panel name="panel1">
|
|
143
|
+
<p class="m">Panel 1 content</p>
|
|
144
|
+
</k-accordion-panel>
|
|
145
|
+
<k-accordion-header for-panel="panel2">Panel 2</k-accordion-header>
|
|
146
|
+
<k-accordion-panel name="panel2">
|
|
147
|
+
<p class="m">Panel 2 content</p>
|
|
148
|
+
</k-accordion-panel>
|
|
149
|
+
<k-accordion-header for-panel="panel3">Panel 3</k-accordion-header>
|
|
150
|
+
<k-accordion-panel name="panel3">
|
|
151
|
+
<p class="m">Panel 3 content</p>
|
|
152
|
+
</k-accordion-panel>
|
|
153
|
+
</k-accordion>
|
|
154
|
+
</k-card>
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
<h2 id="jsRef"><a href="#jsRef" class="no-link scroll-link">JavaScript Reference</a></h2>
|
|
159
|
+
<k-card>
|
|
160
|
+
<h3 id="accordion-ref" class="bb pb">Accordion</h3>
|
|
161
|
+
<h4>Properties</h4>
|
|
162
|
+
<ul>
|
|
163
|
+
<li><code>multiple: boolean</code> — If present, allows multiple panels to be open.</li>
|
|
164
|
+
<li><code>persistentId: string</code> — If set, open panel state is saved/restored via localStorage.</li>
|
|
165
|
+
</ul>
|
|
166
|
+
<h4>Methods</h4>
|
|
167
|
+
<ul>
|
|
168
|
+
<li><code>getHeader(panelName): HTMLElement | null</code></li>
|
|
169
|
+
<li><code>getPanel(panelName): HTMLElement | null</code></li>
|
|
170
|
+
<li><code>openPanel(panelName): void</code></li>
|
|
171
|
+
<li><code>closePanel(panelName): void</code></li>
|
|
172
|
+
<li><code>togglePanel(panelName): void</code></li>
|
|
173
|
+
</ul>
|
|
174
|
+
<h4>Lifecycle</h4>
|
|
175
|
+
<ul>
|
|
176
|
+
<li>State is restored in <code>updated()</code> when <code>persistentId</code> changes.</li>
|
|
177
|
+
</ul>
|
|
178
|
+
</k-card>
|
|
179
|
+
|
|
180
|
+
<k-card>
|
|
181
|
+
<h3 id="accordion-header-ref" class="bb pb">AccordionHeader</h3>
|
|
182
|
+
<h4>Properties</h4>
|
|
183
|
+
<ul>
|
|
184
|
+
<li><code>forPanel: string</code> — The panel name this header controls.</li>
|
|
185
|
+
<li><code>active: boolean</code> — Whether this header is active.</li>
|
|
186
|
+
<li><code>accordion: Accordion | null</code> <i>(read only)</i> — Parent accordion.</li>
|
|
187
|
+
</ul>
|
|
188
|
+
<h4>Event Handlers</h4>
|
|
189
|
+
<ul>
|
|
190
|
+
<li>Click: toggles associated panel.</li>
|
|
191
|
+
</ul>
|
|
192
|
+
</k-card>
|
|
193
|
+
|
|
194
|
+
<k-card>
|
|
195
|
+
<h3 id="accordion-panel-ref" class="bb pb">AccordionPanel</h3>
|
|
196
|
+
<h4>Properties</h4>
|
|
197
|
+
<ul>
|
|
198
|
+
<li><code>name: string</code> — Unique panel identifier.</li>
|
|
199
|
+
<li><code>active: boolean</code> — Whether this panel is open.</li>
|
|
200
|
+
<li><code>transitioning: boolean</code> — Whether this panel is animating.</li>
|
|
201
|
+
</ul>
|
|
202
|
+
<h4>Methods</h4>
|
|
203
|
+
<ul>
|
|
204
|
+
<li><code>accordion: Accordion | null</code> (getter) — Returns parent accordion.</li>
|
|
205
|
+
</ul>
|
|
206
|
+
|
|
207
|
+
<h3 id="events"><a href="#events" class="no-link scroll-link">Events</a></h3>
|
|
208
|
+
<h5><code>openpanel</code></h5>
|
|
209
|
+
<p>Fired when a panel is opened. The event detail contains <code>{ panelName }</code>.</p>
|
|
210
|
+
<h5><code>closepanel</code></h5>
|
|
211
|
+
<p>Fired when a panel is closed. The event detail contains <code>{ panelName }</code>.</p>
|
|
212
|
+
<h5><code>togglepanel</code></h5>
|
|
213
|
+
<p>Fired when a panel is toggled. The event detail contains <code>{ panelName }</code>.</p>
|
|
214
|
+
</k-card>
|
|
215
|
+
|
|
216
|
+
</main>
|
|
217
|
+
<div style="height:33vh"></div>
|
|
218
|
+
<script type="module" src="/kempo-ui/src/components/Import.js"></script>
|
|
219
|
+
<script type="module" src="/kempo-ui/src/components/Accordion.js"></script>
|
|
220
|
+
<script type="module" src="/kempo-ui/src/components/Card.js"></script>
|
|
221
|
+
<script>
|
|
222
|
+
document.querySelectorAll('.scroll-link').forEach(link => {
|
|
223
|
+
link.addEventListener('click', function (e) {
|
|
224
|
+
e.preventDefault();
|
|
225
|
+
const targetId = this.getAttribute('href').replace('#', '');
|
|
226
|
+
const target = document.getElementById(targetId);
|
|
227
|
+
if (target) {
|
|
228
|
+
target.scrollIntoView({ behavior: 'smooth' });
|
|
229
|
+
const url = window.location.pathname + window.location.search + '#' + targetId;
|
|
230
|
+
history.replaceState(null, '', url);
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
</script>
|
|
235
|
+
</body>
|
|
236
|
+
</html>
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
+
<base href="/kempo-ui/">
|
|
4
5
|
<meta charset="UTF-8">
|
|
5
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
7
|
<title>Card - Components - Kempo Docs - A Web Components Solution</title>
|
|
7
|
-
<link rel="stylesheet" href="
|
|
8
|
-
<link rel="stylesheet" href="
|
|
9
|
-
<link rel="stylesheet" href="
|
|
10
|
-
<link rel="stylesheet" href="
|
|
8
|
+
<link rel="stylesheet" href="kempo-vars.css" />
|
|
9
|
+
<link rel="stylesheet" href="kempo.min.css" />
|
|
10
|
+
<link rel="stylesheet" href="kempo-hljs.css" />
|
|
11
|
+
<link rel="stylesheet" href="styles.css" />
|
|
11
12
|
<script>window.litDisableBundleWarning = true;</script>
|
|
12
|
-
<script type="module" src="./init.js"></script>
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
|
-
<k-import src="
|
|
15
|
+
<k-import src="/kempo-ui/nav.inc.html"></k-import>
|
|
16
16
|
<h1 class="ta-center">Card</h1>
|
|
17
17
|
<main>
|
|
18
18
|
<details class="b r mb">
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
|
|
83
83
|
</main>
|
|
84
84
|
<div style="height:33vh"></div>
|
|
85
|
-
<script type="module" src="
|
|
86
|
-
<script type="module" src="
|
|
85
|
+
<script type="module" src="/kempo-ui/src/components/Import.js"></script>
|
|
86
|
+
<script type="module" src="/kempo-ui/src/components/Card.js"></script>
|
|
87
87
|
</body>
|
|
88
88
|
</html>
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
+
<base href="/kempo-ui/">
|
|
4
5
|
<meta charset="UTF-8">
|
|
5
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
7
|
<title>Content Slider - Components - Kempo Docs - A Web Components Solution</title>
|
|
7
|
-
<link rel="stylesheet" href="
|
|
8
|
-
<link rel="stylesheet" href="
|
|
9
|
-
<link rel="stylesheet" href="
|
|
10
|
-
<link rel="stylesheet" href="
|
|
8
|
+
<link rel="stylesheet" href="kempo-vars.css" />
|
|
9
|
+
<link rel="stylesheet" href="kempo.min.css" />
|
|
10
|
+
<link rel="stylesheet" href="kempo-hljs.css" />
|
|
11
|
+
<link rel="stylesheet" href="styles.css" />
|
|
11
12
|
<script>window.litDisableBundleWarning = true;</script>
|
|
12
|
-
<script type="module" src="./init.js"></script>
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
|
-
<k-import src="
|
|
15
|
+
<k-import src="/kempo-ui/nav.inc.html"></k-import>
|
|
16
16
|
<h1 class="ta-center">Content Slider</h1>
|
|
17
17
|
<main>
|
|
18
18
|
<details
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
<p>Custom content for the next button. Defaults to a right chevron icon if not provided.</p>
|
|
214
214
|
|
|
215
215
|
</main>
|
|
216
|
-
<script type="module" src="
|
|
217
|
-
<script type="module" src="
|
|
216
|
+
<script type="module" src="/kempo-ui/src/components/Import.js"></script>
|
|
217
|
+
<script type="module" src="/kempo-ui/src/components/ContentSlider.js"></script>
|
|
218
218
|
</body>
|
|
219
219
|
</html>
|