le-kit 0.1.16 → 0.1.18
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/cjs/{index-CHzu3ydp.js → index-pT2cVC5w.js} +10 -4
- package/dist/cjs/index-pT2cVC5w.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -2
- package/dist/cjs/le-box.cjs.entry.js +4 -4
- package/dist/cjs/le-button_13.cjs.entry.js +204 -30
- package/dist/cjs/le-card.cjs.entry.js +4 -4
- package/dist/cjs/le-combobox.cjs.entry.js +3 -3
- package/dist/cjs/le-header-placeholder.cjs.entry.js +1 -1
- package/dist/cjs/le-kit.cjs.js +4 -2
- package/dist/cjs/le-kit.cjs.js.map +1 -1
- package/dist/cjs/le-multiselect.cjs.entry.js +3 -3
- package/dist/cjs/le-number-input.cjs.entry.js +4 -4
- package/dist/cjs/le-round-progress.cjs.entry.js +3 -3
- package/dist/cjs/le-segmented-control.cjs.entry.js +3 -3
- package/dist/cjs/le-stack.cjs.entry.js +4 -4
- package/dist/cjs/le-tab-bar.cjs.entry.js +3 -3
- package/dist/cjs/le-tab-panel.cjs.entry.js +3 -3
- package/dist/cjs/le-tab.cjs.entry.js +7 -4
- package/dist/cjs/le-tabs.cjs.entry.js +4 -4
- package/dist/cjs/le-tag.cjs.entry.js +3 -3
- package/dist/cjs/le-text.cjs.entry.js +4 -4
- package/dist/cjs/le-turntable.cjs.entry.js +3 -3
- package/dist/cjs/loader.cjs.js +3 -1
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/{utils-CYOKcOW8.js → utils-ByTskwtC.js} +3 -3
- package/dist/cjs/{utils-CYOKcOW8.js.map → utils-ByTskwtC.js.map} +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/le-button/le-button.js +8 -6
- package/dist/collection/components/le-button/le-button.js.map +1 -1
- package/dist/collection/components/le-component/le-component.js +2 -0
- package/dist/collection/components/le-component/le-component.js.map +1 -1
- package/dist/collection/components/le-current-heading/le-current-heading.css +1 -0
- package/dist/collection/dist/components/assets/custom-elements.json +787 -791
- package/dist/components/assets/custom-elements.json +787 -791
- package/dist/components/le-box.js +14 -14
- package/dist/components/le-box.js.map +1 -1
- package/dist/components/le-button2.js +97 -89
- package/dist/components/le-button2.js.map +1 -1
- package/dist/components/le-card.js +14 -14
- package/dist/components/le-card.js.map +1 -1
- package/dist/components/le-collapse.js +15 -14
- package/dist/components/le-collapse.js.map +1 -1
- package/dist/components/le-combobox.js +14 -14
- package/dist/components/le-combobox.js.map +1 -1
- package/dist/components/le-current-heading.js +5 -5
- package/dist/components/le-current-heading.js.map +1 -1
- package/dist/components/le-dropdown-base2.js +6 -6
- package/dist/components/le-dropdown-base2.js.map +1 -1
- package/dist/components/le-header-placeholder.js +3 -3
- package/dist/components/le-header.js +16 -14
- package/dist/components/le-header.js.map +1 -1
- package/dist/components/le-multiselect.js +15 -15
- package/dist/components/le-multiselect.js.map +1 -1
- package/dist/components/le-number-input.js +14 -14
- package/dist/components/le-number-input.js.map +1 -1
- package/dist/components/le-popover2.js +168 -5
- package/dist/components/le-popover2.js.map +1 -1
- package/dist/components/le-round-progress.js +5 -5
- package/dist/components/le-round-progress.js.map +1 -1
- package/dist/components/le-scroll-progress.js +5 -5
- package/dist/components/le-scroll-progress.js.map +1 -1
- package/dist/components/le-segmented-control.js +15 -15
- package/dist/components/le-segmented-control.js.map +1 -1
- package/dist/components/le-stack.js +14 -14
- package/dist/components/le-stack.js.map +1 -1
- package/dist/components/le-tab-bar.js +15 -15
- package/dist/components/le-tab-bar.js.map +1 -1
- package/dist/components/le-tab-panel.js +14 -14
- package/dist/components/le-tab-panel.js.map +1 -1
- package/dist/components/le-tab2.js +17 -14
- package/dist/components/le-tab2.js.map +1 -1
- package/dist/components/le-tabs.js +15 -15
- package/dist/components/le-tabs.js.map +1 -1
- package/dist/components/le-tag2.js +14 -14
- package/dist/components/le-tag2.js.map +1 -1
- package/dist/components/le-text.js +14 -14
- package/dist/components/le-text.js.map +1 -1
- package/dist/components/le-turntable.js +5 -5
- package/dist/components/le-turntable.js.map +1 -1
- package/dist/docs.json +8 -8
- package/dist/esm/{index-hmBwv43R.js → index-CNv6tzAt.js} +10 -4
- package/dist/esm/index-CNv6tzAt.js.map +1 -0
- package/dist/esm/index.js +4 -2
- package/dist/esm/le-box.entry.js +4 -4
- package/dist/esm/le-box.entry.js.map +1 -1
- package/dist/esm/le-button_13.entry.js +204 -30
- package/dist/esm/le-card.entry.js +4 -4
- package/dist/esm/le-card.entry.js.map +1 -1
- package/dist/esm/le-combobox.entry.js +3 -3
- package/dist/esm/le-combobox.entry.js.map +1 -1
- package/dist/esm/le-header-placeholder.entry.js +1 -1
- package/dist/esm/le-kit.js +5 -3
- package/dist/esm/le-kit.js.map +1 -1
- package/dist/esm/le-multiselect.entry.js +3 -3
- package/dist/esm/le-multiselect.entry.js.map +1 -1
- package/dist/esm/le-number-input.entry.js +4 -4
- package/dist/esm/le-number-input.entry.js.map +1 -1
- package/dist/esm/le-round-progress.entry.js +3 -3
- package/dist/esm/le-round-progress.entry.js.map +1 -1
- package/dist/esm/le-segmented-control.entry.js +3 -3
- package/dist/esm/le-segmented-control.entry.js.map +1 -1
- package/dist/esm/le-stack.entry.js +4 -4
- package/dist/esm/le-stack.entry.js.map +1 -1
- package/dist/esm/le-tab-bar.entry.js +3 -3
- package/dist/esm/le-tab-bar.entry.js.map +1 -1
- package/dist/esm/le-tab-panel.entry.js +3 -3
- package/dist/esm/le-tab-panel.entry.js.map +1 -1
- package/dist/esm/le-tab.entry.js +7 -4
- package/dist/esm/le-tab.entry.js.map +1 -1
- package/dist/esm/le-tabs.entry.js +4 -4
- package/dist/esm/le-tabs.entry.js.map +1 -1
- package/dist/esm/le-tag.entry.js +3 -3
- package/dist/esm/le-tag.entry.js.map +1 -1
- package/dist/esm/le-text.entry.js +4 -4
- package/dist/esm/le-text.entry.js.map +1 -1
- package/dist/esm/le-turntable.entry.js +3 -3
- package/dist/esm/le-turntable.entry.js.map +1 -1
- package/dist/esm/loader.js +4 -2
- package/dist/esm/{utils-DRTFlnxz.js → utils-BzC2tvPX.js} +3 -3
- package/dist/esm/{utils-DRTFlnxz.js.map → utils-BzC2tvPX.js.map} +1 -1
- package/dist/le-kit/dist/components/assets/custom-elements.json +787 -791
- package/dist/le-kit/index.esm.js +1 -1
- package/dist/le-kit/le-kit.esm.js +1 -1
- package/dist/le-kit/le-kit.esm.js.map +1 -1
- package/dist/le-kit/p-269fb44f.entry.js +2 -0
- package/dist/le-kit/p-269fb44f.entry.js.map +1 -0
- package/dist/le-kit/p-31c3649c.entry.js +2 -0
- package/dist/le-kit/p-31c3649c.entry.js.map +1 -0
- package/dist/le-kit/p-3829f572.entry.js +2 -0
- package/dist/le-kit/p-3829f572.entry.js.map +1 -0
- package/dist/le-kit/p-629c5e13.entry.js +2 -0
- package/dist/le-kit/p-629c5e13.entry.js.map +1 -0
- package/dist/le-kit/p-684adc9f.entry.js +2 -0
- package/dist/le-kit/p-684adc9f.entry.js.map +1 -0
- package/dist/le-kit/p-7d316315.entry.js +2 -0
- package/dist/le-kit/p-7d316315.entry.js.map +1 -0
- package/dist/le-kit/p-8a78110f.entry.js +2 -0
- package/dist/le-kit/p-8a78110f.entry.js.map +1 -0
- package/dist/le-kit/p-8afe6862.entry.js +2 -0
- package/dist/le-kit/p-8afe6862.entry.js.map +1 -0
- package/dist/le-kit/p-95cf203e.entry.js +2 -0
- package/dist/le-kit/p-95cf203e.entry.js.map +1 -0
- package/dist/le-kit/p-9ba2bfb3.entry.js +2 -0
- package/dist/le-kit/p-9ba2bfb3.entry.js.map +1 -0
- package/dist/le-kit/{p-hmBwv43R.js → p-CNv6tzAt.js} +2 -2
- package/dist/le-kit/p-CNv6tzAt.js.map +1 -0
- package/dist/le-kit/{p-txKmCJHv.js → p-W4FbLlut.js} +2 -2
- package/dist/le-kit/{p-txKmCJHv.js.map → p-W4FbLlut.js.map} +1 -1
- package/dist/le-kit/p-aaec0169.entry.js +2 -0
- package/dist/le-kit/p-aaec0169.entry.js.map +1 -0
- package/dist/le-kit/p-b3531106.entry.js +2 -0
- package/dist/le-kit/p-b3531106.entry.js.map +1 -0
- package/dist/le-kit/p-c83a1255.entry.js +2 -0
- package/dist/le-kit/p-c83a1255.entry.js.map +1 -0
- package/dist/le-kit/p-d2a5d431.entry.js +2 -0
- package/dist/le-kit/p-d2a5d431.entry.js.map +1 -0
- package/dist/le-kit/p-deef1f4d.entry.js +2 -0
- package/dist/le-kit/p-deef1f4d.entry.js.map +1 -0
- package/dist/le-kit/p-e07d4b78.entry.js +2 -0
- package/dist/le-kit/p-e4618b36.entry.js +2 -0
- package/dist/le-kit/p-e4618b36.entry.js.map +1 -0
- package/dist/types/components/le-button/le-button.d.ts +1 -1
- package/dist/types/components.d.ts +2 -2
- package/dist/types/stencil-public-runtime.d.ts +43 -0
- package/package.json +1 -1
- package/dist/cjs/index-CHzu3ydp.js.map +0 -1
- package/dist/cjs/le-box.entry.cjs.js.map +0 -1
- package/dist/cjs/le-button.le-checkbox.le-collapse.le-component.le-current-heading.le-dropdown-base.le-header.le-popover.le-popup.le-scroll-progress.le-select.le-slot.le-string-input.entry.cjs.js.map +0 -1
- package/dist/cjs/le-card.entry.cjs.js.map +0 -1
- package/dist/cjs/le-combobox.entry.cjs.js.map +0 -1
- package/dist/cjs/le-header-placeholder.entry.cjs.js.map +0 -1
- package/dist/cjs/le-multiselect.entry.cjs.js.map +0 -1
- package/dist/cjs/le-number-input.entry.cjs.js.map +0 -1
- package/dist/cjs/le-round-progress.entry.cjs.js.map +0 -1
- package/dist/cjs/le-segmented-control.entry.cjs.js.map +0 -1
- package/dist/cjs/le-stack.entry.cjs.js.map +0 -1
- package/dist/cjs/le-tab-bar.entry.cjs.js.map +0 -1
- package/dist/cjs/le-tab-panel.entry.cjs.js.map +0 -1
- package/dist/cjs/le-tab.entry.cjs.js.map +0 -1
- package/dist/cjs/le-tabs.entry.cjs.js.map +0 -1
- package/dist/cjs/le-tag.entry.cjs.js.map +0 -1
- package/dist/cjs/le-text.entry.cjs.js.map +0 -1
- package/dist/cjs/le-turntable.entry.cjs.js.map +0 -1
- package/dist/esm/index-hmBwv43R.js.map +0 -1
- package/dist/esm/le-button.le-checkbox.le-collapse.le-component.le-current-heading.le-dropdown-base.le-header.le-popover.le-popup.le-scroll-progress.le-select.le-slot.le-string-input.entry.js.map +0 -1
- package/dist/le-kit/le-box.entry.esm.js.map +0 -1
- package/dist/le-kit/le-button.le-checkbox.le-collapse.le-component.le-current-heading.le-dropdown-base.le-header.le-popover.le-popup.le-scroll-progress.le-select.le-slot.le-string-input.entry.esm.js.map +0 -1
- package/dist/le-kit/le-card.entry.esm.js.map +0 -1
- package/dist/le-kit/le-combobox.entry.esm.js.map +0 -1
- package/dist/le-kit/le-header-placeholder.entry.esm.js.map +0 -1
- package/dist/le-kit/le-multiselect.entry.esm.js.map +0 -1
- package/dist/le-kit/le-number-input.entry.esm.js.map +0 -1
- package/dist/le-kit/le-round-progress.entry.esm.js.map +0 -1
- package/dist/le-kit/le-segmented-control.entry.esm.js.map +0 -1
- package/dist/le-kit/le-stack.entry.esm.js.map +0 -1
- package/dist/le-kit/le-tab-bar.entry.esm.js.map +0 -1
- package/dist/le-kit/le-tab-panel.entry.esm.js.map +0 -1
- package/dist/le-kit/le-tab.entry.esm.js.map +0 -1
- package/dist/le-kit/le-tabs.entry.esm.js.map +0 -1
- package/dist/le-kit/le-tag.entry.esm.js.map +0 -1
- package/dist/le-kit/le-text.entry.esm.js.map +0 -1
- package/dist/le-kit/le-turntable.entry.esm.js.map +0 -1
- package/dist/le-kit/p-13a4dc1d.entry.js +0 -2
- package/dist/le-kit/p-13a4dc1d.entry.js.map +0 -1
- package/dist/le-kit/p-1a9e65d0.entry.js +0 -2
- package/dist/le-kit/p-1a9e65d0.entry.js.map +0 -1
- package/dist/le-kit/p-2708dc65.entry.js +0 -2
- package/dist/le-kit/p-2708dc65.entry.js.map +0 -1
- package/dist/le-kit/p-2b96a5bd.entry.js +0 -2
- package/dist/le-kit/p-32cbb683.entry.js +0 -2
- package/dist/le-kit/p-32cbb683.entry.js.map +0 -1
- package/dist/le-kit/p-476e1886.entry.js +0 -2
- package/dist/le-kit/p-476e1886.entry.js.map +0 -1
- package/dist/le-kit/p-67d702f9.entry.js +0 -2
- package/dist/le-kit/p-67d702f9.entry.js.map +0 -1
- package/dist/le-kit/p-6884e3e8.entry.js +0 -2
- package/dist/le-kit/p-6884e3e8.entry.js.map +0 -1
- package/dist/le-kit/p-704ad5e0.entry.js +0 -2
- package/dist/le-kit/p-704ad5e0.entry.js.map +0 -1
- package/dist/le-kit/p-88f9aa40.entry.js +0 -2
- package/dist/le-kit/p-88f9aa40.entry.js.map +0 -1
- package/dist/le-kit/p-8dd8a487.entry.js +0 -2
- package/dist/le-kit/p-8dd8a487.entry.js.map +0 -1
- package/dist/le-kit/p-97b7658a.entry.js +0 -2
- package/dist/le-kit/p-97b7658a.entry.js.map +0 -1
- package/dist/le-kit/p-c0925e92.entry.js +0 -2
- package/dist/le-kit/p-c0925e92.entry.js.map +0 -1
- package/dist/le-kit/p-c2494a0d.entry.js +0 -2
- package/dist/le-kit/p-c2494a0d.entry.js.map +0 -1
- package/dist/le-kit/p-ded51018.entry.js +0 -2
- package/dist/le-kit/p-ded51018.entry.js.map +0 -1
- package/dist/le-kit/p-e3db7974.entry.js +0 -2
- package/dist/le-kit/p-e3db7974.entry.js.map +0 -1
- package/dist/le-kit/p-f9b03aec.entry.js +0 -2
- package/dist/le-kit/p-f9b03aec.entry.js.map +0 -1
- package/dist/le-kit/p-hmBwv43R.js.map +0 -1
- /package/dist/le-kit/{p-2b96a5bd.entry.js.map → p-e07d4b78.entry.js.map} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, transformTag } from '@stencil/core/internal/client';
|
|
2
2
|
import { h as classnames } from './utils.js';
|
|
3
3
|
import { d as defineCustomElement$2, a as defineCustomElement$3, b as defineCustomElement$4, c as defineCustomElement$5, e as defineCustomElement$8, f as defineCustomElement$9, g as defineCustomElement$a } from './le-button2.js';
|
|
4
4
|
import { d as defineCustomElement$7 } from './le-dropdown-base2.js';
|
|
5
5
|
import { d as defineCustomElement$6 } from './le-popover2.js';
|
|
6
6
|
|
|
7
|
-
const leCardDefaultCss =
|
|
7
|
+
const leCardDefaultCss = () => `:host{display:block;--le-card-bg:var(--le-color-surface);--le-card-border-radius:var(--le-radius-lg);--le-card-shadow:var(--le-shadow-md);--le-card-shadow-elevated:var(--le-shadow-lg);--le-card-shadow-hover:var(--le-shadow-xl);--le-card-padding:var(--le-space-md);--le-card-border-color:var(--le-color-border);--le-card-transition:var(--le-transition-normal)}.card{background:var(--le-card-bg);border-radius:var(--le-card-border-radius);overflow:hidden;color:var(--le-color-text);box-shadow:var(--le-card-shadow)}:host>le-component.variant-outlined .card{border:1px solid var(--le-card-border-color);box-shadow:none}:host>le-component.variant-elevated .card{box-shadow:var(--le-card-shadow-elevated)}:host>le-component.interactive .card{cursor:pointer;transition:transform var(--le-card-transition), box-shadow var(--le-card-transition)}:host>le-component.interactive .card:hover{transform:translateY(-2px);box-shadow:var(--le-card-shadow-hover)}:host>le-component.interactive .card:focus-visible{outline:2px solid var(--le-color-border-focus);outline-offset:2px}.card-header{padding:var(--le-card-padding);padding-bottom:0}.card-header:empty{display:none}.card-content{padding:var(--le-card-padding)}.card-footer{padding:var(--le-card-padding);padding-top:0}.card-footer:empty{display:none}`;
|
|
8
8
|
|
|
9
9
|
const LeCard$1 = /*@__PURE__*/ proxyCustomElement(class LeCard extends HTMLElement {
|
|
10
10
|
constructor(registerHost) {
|
|
@@ -27,7 +27,7 @@ const LeCard$1 = /*@__PURE__*/ proxyCustomElement(class LeCard extends HTMLEleme
|
|
|
27
27
|
render() {
|
|
28
28
|
return (h("le-component", { key: '3878b21dafb24349fd9c178c784028302fb95214', component: "le-card", hostClass: classnames(`variant-${this.variant}`, { 'interactive': this.interactive }) }, h("div", { key: '41470ad363928c5a5f70947a1fc859db03cf7619', class: "card", part: "card" }, h("div", { key: '9e0d85016f98ee15eba90bbd4db004f9210b1bf3', class: "card-header", part: "header" }, h("le-slot", { key: 'dcd23b7da86e4026f2cc7fb62b410d7317ab2e2b', name: "header", label: "Header", description: "Card title", type: "text", tag: "h3" }, h("slot", { key: '0f2f616c950d7548484bd8c87befa7ecff6d374f', name: "header" }))), h("div", { key: '1d77598852e8755e477a505d29c77643cea446d4', class: "card-content", part: "content" }, h("le-slot", { key: 'fd94892b8489f727a3e951f1771cab53b0667799', name: "", label: "Content", description: "Card content", type: "textarea", tag: "p", required: true }, h("slot", { key: 'dc1c2deff9405fd838aee733bc6e4394f60fefd7' }))), h("div", { key: '2944fa4515119b1868567545fa131fe178d7a3cf', class: "card-footer", part: "footer" }, h("le-slot", { key: 'bdd9b5a1baf2ebf487120afa458ae85285b05fcf', name: "footer", label: "Footer", description: "Card footer with actions", "allowed-components": "le-button,le-link" }, h("slot", { key: '8a79b1baaf6720f1397c0bacf5f71dc97dff2777', name: "footer" }))))));
|
|
29
29
|
}
|
|
30
|
-
static get style() { return leCardDefaultCss; }
|
|
30
|
+
static get style() { return leCardDefaultCss(); }
|
|
31
31
|
}, [769, "le-card", {
|
|
32
32
|
"variant": [1],
|
|
33
33
|
"interactive": [4]
|
|
@@ -39,52 +39,52 @@ function defineCustomElement$1() {
|
|
|
39
39
|
const components = ["le-card", "le-button", "le-checkbox", "le-component", "le-dropdown-base", "le-popover", "le-popup", "le-select", "le-slot", "le-string-input"];
|
|
40
40
|
components.forEach(tagName => { switch (tagName) {
|
|
41
41
|
case "le-card":
|
|
42
|
-
if (!customElements.get(tagName)) {
|
|
43
|
-
customElements.define(tagName, LeCard$1);
|
|
42
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
43
|
+
customElements.define(transformTag(tagName), LeCard$1);
|
|
44
44
|
}
|
|
45
45
|
break;
|
|
46
46
|
case "le-button":
|
|
47
|
-
if (!customElements.get(tagName)) {
|
|
47
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
48
48
|
defineCustomElement$a();
|
|
49
49
|
}
|
|
50
50
|
break;
|
|
51
51
|
case "le-checkbox":
|
|
52
|
-
if (!customElements.get(tagName)) {
|
|
52
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
53
53
|
defineCustomElement$9();
|
|
54
54
|
}
|
|
55
55
|
break;
|
|
56
56
|
case "le-component":
|
|
57
|
-
if (!customElements.get(tagName)) {
|
|
57
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
58
58
|
defineCustomElement$8();
|
|
59
59
|
}
|
|
60
60
|
break;
|
|
61
61
|
case "le-dropdown-base":
|
|
62
|
-
if (!customElements.get(tagName)) {
|
|
62
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
63
63
|
defineCustomElement$7();
|
|
64
64
|
}
|
|
65
65
|
break;
|
|
66
66
|
case "le-popover":
|
|
67
|
-
if (!customElements.get(tagName)) {
|
|
67
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
68
68
|
defineCustomElement$6();
|
|
69
69
|
}
|
|
70
70
|
break;
|
|
71
71
|
case "le-popup":
|
|
72
|
-
if (!customElements.get(tagName)) {
|
|
72
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
73
73
|
defineCustomElement$5();
|
|
74
74
|
}
|
|
75
75
|
break;
|
|
76
76
|
case "le-select":
|
|
77
|
-
if (!customElements.get(tagName)) {
|
|
77
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
78
78
|
defineCustomElement$4();
|
|
79
79
|
}
|
|
80
80
|
break;
|
|
81
81
|
case "le-slot":
|
|
82
|
-
if (!customElements.get(tagName)) {
|
|
82
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
83
83
|
defineCustomElement$3();
|
|
84
84
|
}
|
|
85
85
|
break;
|
|
86
86
|
case "le-string-input":
|
|
87
|
-
if (!customElements.get(tagName)) {
|
|
87
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
88
88
|
defineCustomElement$2();
|
|
89
89
|
}
|
|
90
90
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"le-card.js","mappings":";;;;;;AAAA,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"file":"le-card.js","mappings":";;;;;;AAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,2wCAA2wC,CAAC;;MCgC/xCA,QAAM,iBAAAC,kBAAA,CAAA,MAAA,MAAA,SAAA,WAAA,CAAA;;;;;;;;;AAGjB;;;AAGG;IACK,OAAO,GAAwC,SAAS;AAEhE;;AAEG;IACK,WAAW,GAAY,KAAK;IAEpC,MAAM,GAAA;QACJ,QACE,qEAAc,SAAS,EAAC,SAAS,EAAC,SAAS,EAAE,UAAU,CAAC,CAAA,QAAA,EAAW,IAAI,CAAC,OAAO,CAAA,CAAE,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAA,EACrH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAA,EAC3B,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAA,EACpC,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,WAAW,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,IAAI,EAAA,EACjF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,EAAA,CAAQ,CACnB,CACN,EAEN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,SAAS,EAAA,EACtC,CAAS,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,WAAW,EAAC,cAAc,EAAC,IAAI,EAAC,UAAU,EAAC,GAAG,EAAC,GAAG,EAAC,QAAQ,EAAA,IAAA,EAAA,EAC1F,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACL,CACN,EAEN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,EAAA,EACpC,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,WAAW,EAAC,0BAA0B,EAAA,oBAAA,EAAoB,mBAAmB,EAAA,EACjH,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAA,CAAQ,CACnB,CACN,CACF,CACO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["LeCard","__stencil_proxyCustomElement"],"sources":["src/components/le-card/le-card.default.css?tag=le-card&encapsulation=shadow","src/components/le-card/le-card.tsx"],"sourcesContent":["/**\n * Default mode styles for le-card\n * Uses global design tokens with component-specific overrides\n */\n:host {\n display: block;\n \n /* Component-specific tokens that map to global tokens */\n --le-card-bg: var(--le-color-surface);\n --le-card-border-radius: var(--le-radius-lg);\n --le-card-shadow: var(--le-shadow-md);\n --le-card-shadow-elevated: var(--le-shadow-lg);\n --le-card-shadow-hover: var(--le-shadow-xl);\n --le-card-padding: var(--le-space-md);\n --le-card-border-color: var(--le-color-border);\n --le-card-transition: var(--le-transition-normal);\n}\n\n.card {\n background: var(--le-card-bg);\n border-radius: var(--le-card-border-radius);\n overflow: hidden;\n color: var(--le-color-text);\n box-shadow: var(--le-card-shadow);\n}\n\n/* Variants - le-component gets the hostClass, so we use :host > le-component */\n:host > le-component.variant-outlined .card {\n border: 1px solid var(--le-card-border-color);\n box-shadow: none;\n}\n\n:host > le-component.variant-elevated .card {\n box-shadow: var(--le-card-shadow-elevated);\n}\n\n/* Interactive state */\n:host > le-component.interactive .card {\n cursor: pointer;\n transition: transform var(--le-card-transition), box-shadow var(--le-card-transition);\n}\n\n:host > le-component.interactive .card:hover {\n transform: translateY(-2px);\n box-shadow: var(--le-card-shadow-hover);\n}\n\n:host > le-component.interactive .card:focus-visible {\n outline: 2px solid var(--le-color-border-focus);\n outline-offset: 2px;\n}\n\n/* Sections */\n.card-header {\n padding: var(--le-card-padding);\n padding-bottom: 0;\n}\n\n.card-header:empty {\n display: none;\n}\n\n.card-content {\n padding: var(--le-card-padding);\n}\n\n.card-footer {\n padding: var(--le-card-padding);\n padding-top: 0;\n}\n\n.card-footer:empty {\n display: none;\n}\n","import { Component, Prop, h, Element } from '@stencil/core';\nimport { classnames } from '../../utils/utils';\n\n/**\n * A flexible card component with header, content, and footer slots.\n *\n * The card uses le-slot wrappers for each slot area. In admin mode,\n * le-slot shows placeholders for CMS editing. In default mode,\n * le-slot acts as a transparent passthrough.\n *\n * @slot header - Card header content (title, actions)\n * @slot - Default slot for main card content\n * @slot footer - Card footer content (buttons, links)\n *\n * @cssprop --le-card-bg - Card background color\n * @cssprop --le-card-border-radius - Card border radius\n * @cssprop --le-card-shadow - Card box shadow\n * @cssprop --le-card-padding - Card content padding\n *\n * @csspart card - The main card container\n * @csspart header - The card header section\n * @csspart content - The card content section\n * @csspart footer - The card footer section\n *\n * @cmsEditable true\n * @cmsCategory Layout\n */\n@Component({\n tag: 'le-card',\n styleUrl: 'le-card.default.css',\n shadow: true,\n})\nexport class LeCard {\n @Element() el: HTMLElement;\n\n /**\n * Card variant style\n * @allowedValues default | outlined | elevated\n */\n @Prop() variant: 'default' | 'outlined' | 'elevated' = 'default';\n\n /**\n * Whether the card is interactive (clickable)\n */\n @Prop() interactive: boolean = false;\n\n render() {\n return (\n <le-component component=\"le-card\" hostClass={classnames(`variant-${this.variant}`, { 'interactive': this.interactive })}>\n <div class=\"card\" part=\"card\">\n <div class=\"card-header\" part=\"header\">\n <le-slot name=\"header\" label=\"Header\" description=\"Card title\" type=\"text\" tag=\"h3\">\n <slot name=\"header\"></slot>\n </le-slot>\n </div>\n\n <div class=\"card-content\" part=\"content\">\n <le-slot name=\"\" label=\"Content\" description=\"Card content\" type=\"textarea\" tag=\"p\" required>\n <slot></slot>\n </le-slot>\n </div>\n\n <div class=\"card-footer\" part=\"footer\">\n <le-slot name=\"footer\" label=\"Footer\" description=\"Card footer with actions\" allowed-components=\"le-button,le-link\">\n <slot name=\"footer\"></slot>\n </le-slot>\n </div>\n </div>\n </le-component>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host, transformTag } from '@stencil/core/internal/client';
|
|
2
2
|
import { d as defineCustomElement$2, a as defineCustomElement$3, b as defineCustomElement$4, c as defineCustomElement$5, e as defineCustomElement$8, f as defineCustomElement$9, g as defineCustomElement$a } from './le-button2.js';
|
|
3
3
|
import { d as defineCustomElement$7 } from './le-dropdown-base2.js';
|
|
4
4
|
import { d as defineCustomElement$6 } from './le-popover2.js';
|
|
5
5
|
|
|
6
|
-
const leCollapseCss =
|
|
6
|
+
const leCollapseCss = () => `:host{--le-collapse-duration:var(--le-transition-normal);display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows var(--le-collapse-duration),
|
|
7
|
+
opacity var(--le-collapse-duration)}:host([data-open="false"]),:host([open="false"]){grid-template-rows:0fr;opacity:0}:host([no-fading][data-open="false"]),:host([no-fading][open="false"]){opacity:1}.region{display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}:host([scroll-down]) .region{justify-content:flex-start}`;
|
|
7
8
|
|
|
8
9
|
const LeCollapse$1 = /*@__PURE__*/ proxyCustomElement(class LeCollapse extends HTMLElement {
|
|
9
10
|
constructor(registerHost) {
|
|
@@ -65,7 +66,7 @@ const LeCollapse$1 = /*@__PURE__*/ proxyCustomElement(class LeCollapse extends H
|
|
|
65
66
|
"open": ["onOpenChange"],
|
|
66
67
|
"headerShrunk": ["onDrivenStateChange"]
|
|
67
68
|
}; }
|
|
68
|
-
static get style() { return leCollapseCss; }
|
|
69
|
+
static get style() { return leCollapseCss(); }
|
|
69
70
|
}, [769, "le-collapse", {
|
|
70
71
|
"open": [1540],
|
|
71
72
|
"scrollDown": [516, "scroll-down"],
|
|
@@ -83,52 +84,52 @@ function defineCustomElement$1() {
|
|
|
83
84
|
const components = ["le-collapse", "le-button", "le-checkbox", "le-component", "le-dropdown-base", "le-popover", "le-popup", "le-select", "le-slot", "le-string-input"];
|
|
84
85
|
components.forEach(tagName => { switch (tagName) {
|
|
85
86
|
case "le-collapse":
|
|
86
|
-
if (!customElements.get(tagName)) {
|
|
87
|
-
customElements.define(tagName, LeCollapse$1);
|
|
87
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
88
|
+
customElements.define(transformTag(tagName), LeCollapse$1);
|
|
88
89
|
}
|
|
89
90
|
break;
|
|
90
91
|
case "le-button":
|
|
91
|
-
if (!customElements.get(tagName)) {
|
|
92
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
92
93
|
defineCustomElement$a();
|
|
93
94
|
}
|
|
94
95
|
break;
|
|
95
96
|
case "le-checkbox":
|
|
96
|
-
if (!customElements.get(tagName)) {
|
|
97
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
97
98
|
defineCustomElement$9();
|
|
98
99
|
}
|
|
99
100
|
break;
|
|
100
101
|
case "le-component":
|
|
101
|
-
if (!customElements.get(tagName)) {
|
|
102
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
102
103
|
defineCustomElement$8();
|
|
103
104
|
}
|
|
104
105
|
break;
|
|
105
106
|
case "le-dropdown-base":
|
|
106
|
-
if (!customElements.get(tagName)) {
|
|
107
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
107
108
|
defineCustomElement$7();
|
|
108
109
|
}
|
|
109
110
|
break;
|
|
110
111
|
case "le-popover":
|
|
111
|
-
if (!customElements.get(tagName)) {
|
|
112
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
112
113
|
defineCustomElement$6();
|
|
113
114
|
}
|
|
114
115
|
break;
|
|
115
116
|
case "le-popup":
|
|
116
|
-
if (!customElements.get(tagName)) {
|
|
117
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
117
118
|
defineCustomElement$5();
|
|
118
119
|
}
|
|
119
120
|
break;
|
|
120
121
|
case "le-select":
|
|
121
|
-
if (!customElements.get(tagName)) {
|
|
122
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
122
123
|
defineCustomElement$4();
|
|
123
124
|
}
|
|
124
125
|
break;
|
|
125
126
|
case "le-slot":
|
|
126
|
-
if (!customElements.get(tagName)) {
|
|
127
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
127
128
|
defineCustomElement$3();
|
|
128
129
|
}
|
|
129
130
|
break;
|
|
130
131
|
case "le-string-input":
|
|
131
|
-
if (!customElements.get(tagName)) {
|
|
132
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
132
133
|
defineCustomElement$2();
|
|
133
134
|
}
|
|
134
135
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"le-collapse.js","mappings":";;;;;AAAA,MAAM,aAAa,GAAG,
|
|
1
|
+
{"file":"le-collapse.js","mappings":";;;;;AAAA,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,uVAAuV,CAAC;;MCwB3UA,YAAU,iBAAAC,kBAAA,CAAA,MAAA,UAAA,SAAA,WAAA,CAAA;;;;;;;;;;IAImB,IAAI,GAAY,IAAI;;IAGT,UAAU,GAAY,KAAK;;IAG7B,QAAQ,GAAY,KAAK;;IAGT,sBAAsB,GACrF,KAAK;AAEP;;;AAGG;AAEH,IAAA,kBAAkB,CAAC,EAAS,EAAA;QAC1B,MAAM,CAAC,GAAG,EAAsC;QAChD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM;;IAGvB,YAAY,GAAY,KAAK;IAE9C,iBAAiB,GAAA;;;QAGf,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;;IAIpB,gBAAgB,GAAA;QACd,IAAI,CAAC,cAAc,EAAE;;IAIb,YAAY,GAAA;QACpB,IAAI,CAAC,cAAc,EAAE;;IAIb,mBAAmB,GAAA;QAC3B,IAAI,CAAC,cAAc,EAAE;;IAGf,YAAY,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,KAAK;AAC5B,QAAA,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,KAAK;AAClE,QAAA,OAAO,IAAI;;IAGL,cAAc,GAAA;AACpB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;QACpC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC;;IAGhD,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,WAAA,EAAY,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,GAAG,OAAO,EAAA,EACrD,CAAc,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAS,EAAC,aAAa,EAAA,EACnC,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAA,EAC/B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACO,CACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["LeCollapse","__stencil_proxyCustomElement"],"sources":["src/components/le-collapse/le-collapse.css?tag=le-collapse&encapsulation=shadow","src/components/le-collapse/le-collapse.tsx"],"sourcesContent":[":host {\n --le-collapse-duration: var(--le-transition-normal);\n\n display: grid;\n grid-template-rows: 1fr;\n opacity: 1;\n transition:\n grid-template-rows var(--le-collapse-duration),\n opacity var(--le-collapse-duration);\n}\n\n:host([data-open=\"false\"]),\n:host([open=\"false\"]) {\n grid-template-rows: 0fr;\n opacity: 0;\n}\n:host([no-fading][data-open=\"false\"]),\n:host([no-fading][open=\"false\"]) {\n opacity: 1;\n}\n\n.region {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n overflow: hidden;\n}\n\n:host([scroll-down]) .region {\n justify-content: flex-start;\n}\n","import { Component, Element, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\n\nexport type LeCollapseAnimation = 'fade' | 'collapse' | 'fade-collapse';\n\n/**\n * Animated show/hide wrapper.\n *\n * Supports height collapse (auto->0) and/or fading.\n * Can optionally listen to the nearest `le-header` shrink events.\n *\n * @slot - Content to animate\n *\n * @cssprop --le-collapse-duration - Transition duration\n *\n * @csspart region - Collapsible region\n * @csspart content - Inner content\n *\n * @cmsEditable true\n * @cmsCategory Layout\n */\n@Component({\n tag: 'le-collapse',\n styleUrl: 'le-collapse.css',\n shadow: true,\n})\nexport class LeCollapse {\n @Element() el: HTMLElement;\n\n /** Whether the content should be shown. */\n @Prop({ mutable: true, reflect: true }) open: boolean = true;\n\n /** Whether the content should scroll down from the top when open. */\n @Prop({ attribute: 'scroll-down', reflect: true }) scrollDown: boolean = false;\n\n /** Stop fading the content when collapsing/expanding. */\n @Prop({ attribute: 'no-fading', reflect: true }) noFading: boolean = false;\n\n /** If true, collapse/expand based on the nearest header shrink event. */\n @Prop({ attribute: 'collapse-on-header-shrink', reflect: true }) collapseOnHeaderShrink: boolean =\n false;\n\n /**\n * Handles `leHeaderShrinkChange` events from the `le-header`.\n * In case multiple headers are present, only the nearest one in the DOM tree is used.\n */\n @Listen('leHeaderShrinkChange', { target: 'window' })\n handleHeaderShrink(ev: Event) {\n const e = ev as CustomEvent<{ shrunk: boolean }>;\n this.headerShrunk = !!e.detail?.shrunk;\n }\n\n @State() private headerShrunk: boolean = false;\n\n componentWillLoad() {\n // Stencil boolean props default to `false` when the attribute is missing.\n // For this component, the desired default is open=true.\n if (!this.el.hasAttribute('open')) {\n this.open = true;\n }\n }\n\n componentDidLoad() {\n this.applyOpenState();\n }\n\n @Watch('open')\n protected onOpenChange() {\n this.applyOpenState();\n }\n\n @Watch('headerShrunk')\n protected onDrivenStateChange() {\n this.applyOpenState();\n }\n\n private shouldBeOpen() {\n if (!this.open) return false;\n if (this.collapseOnHeaderShrink && this.headerShrunk) return false;\n return true;\n }\n\n private applyOpenState() {\n const nextOpen = this.shouldBeOpen();\n this.el.toggleAttribute('data-open', nextOpen);\n }\n\n render() {\n return (\n <Host data-open={this.shouldBeOpen() ? 'true' : 'false'}>\n <le-component component=\"le-collapse\">\n <div class=\"region\" part=\"region\">\n <slot></slot>\n </div>\n </le-component>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, transformTag } from '@stencil/core/internal/client';
|
|
2
2
|
import { d as defineCustomElement$2, a as defineCustomElement$3, b as defineCustomElement$4, c as defineCustomElement$5, e as defineCustomElement$8, f as defineCustomElement$9, g as defineCustomElement$a } from './le-button2.js';
|
|
3
3
|
import { d as defineCustomElement$7 } from './le-dropdown-base2.js';
|
|
4
4
|
import { d as defineCustomElement$6 } from './le-popover2.js';
|
|
5
5
|
|
|
6
|
-
const leComboboxCss =
|
|
6
|
+
const leComboboxCss = () => `:host{display:inline-block;min-width:200px;--le-combobox-border-color:var(--le-color-primary, #3b82f6)}:host([disabled]){opacity:0.5;pointer-events:none}:host([full-width]){width:100%}.combobox-trigger{display:flex;align-items:center;width:100%;background:var(--le-combobox-bg, var(--le-color-surface, #fff));border:1px solid color-mix(in srgb, var(--le-combobox-border-color) 33%, transparent);border-radius:var(--le-combobox-border-radius, 0.375rem);transition:border-color 0.15s ease, box-shadow 0.15s ease}.combobox-trigger:hover:not(.is-disabled),:host(:focus-within) .combobox-trigger:not(.is-disabled){border-color:var(--le-combobox-border-color)}.combobox-trigger:focus-within{outline:2px solid var(--le-color-focus);outline-offset:2px}.combobox-trigger.is-open{border-color:var(--le-color-primary, #3b82f6)}.combobox-input{flex:1;border:none;outline:none}.combobox-input::part(container){border:none}.combobox-input::part(container):focus-within{outline:none !important}.combobox-input::placeholder{color:color-mix(in srgb, var(--le-color-text-secondary) 66%, transparent)}.combobox-trigger.is-disabled{cursor:not-allowed;background:var(--le-color-surface-disabled, #f9fafb)}.combobox-input:disabled{cursor:not-allowed}.combobox-clear{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;padding:0;margin-right:0.25rem;color:var(--le-color-primary, #3b82f6);background:transparent;border:none;border-radius:0.25rem;cursor:pointer;opacity:0.6;transition:opacity 0.15s ease, background-color 0.15s ease}.combobox-clear:hover{opacity:1;background:var(--le-color-surface-hover, #f3f4f6)}.combobox-clear svg{width:0.875rem;height:0.875rem}.combobox-arrow{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2rem;height:100%;color:var(--le-color-primary, #3b82f6);transition:transform 0.2s ease}.combobox-arrow svg{width:1rem;height:1rem}.combobox-trigger.is-open .combobox-arrow{transform:rotate(180deg)}:host([size='small']) .combobox-trigger{--le-combobox-height:2rem}:host([size='small']) .combobox-input{--le-combobox-padding-x:0.5rem;--le-combobox-font-size:0.75rem}:host([size='large']) .combobox-trigger{--le-combobox-height:3rem}:host([size='large']) .combobox-input{--le-combobox-padding-x:1rem;--le-combobox-font-size:1rem}`;
|
|
7
7
|
|
|
8
8
|
const LeCombobox$1 = /*@__PURE__*/ proxyCustomElement(class LeCombobox extends HTMLElement {
|
|
9
9
|
constructor(registerHost) {
|
|
@@ -235,7 +235,7 @@ const LeCombobox$1 = /*@__PURE__*/ proxyCustomElement(class LeCombobox extends H
|
|
|
235
235
|
"value": ["handleValueChange"],
|
|
236
236
|
"options": ["handleOptionsChange"]
|
|
237
237
|
}; }
|
|
238
|
-
static get style() { return leComboboxCss; }
|
|
238
|
+
static get style() { return leComboboxCss(); }
|
|
239
239
|
}, [769, "le-combobox", {
|
|
240
240
|
"options": [1],
|
|
241
241
|
"value": [1032],
|
|
@@ -265,52 +265,52 @@ function defineCustomElement$1() {
|
|
|
265
265
|
const components = ["le-combobox", "le-button", "le-checkbox", "le-component", "le-dropdown-base", "le-popover", "le-popup", "le-select", "le-slot", "le-string-input"];
|
|
266
266
|
components.forEach(tagName => { switch (tagName) {
|
|
267
267
|
case "le-combobox":
|
|
268
|
-
if (!customElements.get(tagName)) {
|
|
269
|
-
customElements.define(tagName, LeCombobox$1);
|
|
268
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
269
|
+
customElements.define(transformTag(tagName), LeCombobox$1);
|
|
270
270
|
}
|
|
271
271
|
break;
|
|
272
272
|
case "le-button":
|
|
273
|
-
if (!customElements.get(tagName)) {
|
|
273
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
274
274
|
defineCustomElement$a();
|
|
275
275
|
}
|
|
276
276
|
break;
|
|
277
277
|
case "le-checkbox":
|
|
278
|
-
if (!customElements.get(tagName)) {
|
|
278
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
279
279
|
defineCustomElement$9();
|
|
280
280
|
}
|
|
281
281
|
break;
|
|
282
282
|
case "le-component":
|
|
283
|
-
if (!customElements.get(tagName)) {
|
|
283
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
284
284
|
defineCustomElement$8();
|
|
285
285
|
}
|
|
286
286
|
break;
|
|
287
287
|
case "le-dropdown-base":
|
|
288
|
-
if (!customElements.get(tagName)) {
|
|
288
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
289
289
|
defineCustomElement$7();
|
|
290
290
|
}
|
|
291
291
|
break;
|
|
292
292
|
case "le-popover":
|
|
293
|
-
if (!customElements.get(tagName)) {
|
|
293
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
294
294
|
defineCustomElement$6();
|
|
295
295
|
}
|
|
296
296
|
break;
|
|
297
297
|
case "le-popup":
|
|
298
|
-
if (!customElements.get(tagName)) {
|
|
298
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
299
299
|
defineCustomElement$5();
|
|
300
300
|
}
|
|
301
301
|
break;
|
|
302
302
|
case "le-select":
|
|
303
|
-
if (!customElements.get(tagName)) {
|
|
303
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
304
304
|
defineCustomElement$4();
|
|
305
305
|
}
|
|
306
306
|
break;
|
|
307
307
|
case "le-slot":
|
|
308
|
-
if (!customElements.get(tagName)) {
|
|
308
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
309
309
|
defineCustomElement$3();
|
|
310
310
|
}
|
|
311
311
|
break;
|
|
312
312
|
case "le-string-input":
|
|
313
|
-
if (!customElements.get(tagName)) {
|
|
313
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
314
314
|
defineCustomElement$2();
|
|
315
315
|
}
|
|
316
316
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"le-combobox.js","mappings":"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","names":["LeCombobox","__stencil_proxyCustomElement"],"sources":["src/components/le-combobox/le-combobox.css?tag=le-combobox&encapsulation=shadow","src/components/le-combobox/le-combobox.tsx"],"sourcesContent":["/**\n * le-combobox component styles\n *\n * CSS Custom Properties:\n * --le-combobox-padding-x\n * --le-combobox-font-size\n * --le-combobox-border-radius\n * --le-combobox-border-color\n * --le-combobox-bg\n * --le-combobox-color\n */\n\n:host {\n display: inline-block;\n min-width: 200px;\n --le-combobox-border-color: var(--le-color-primary, #3b82f6);\n}\n\n:host([disabled]) {\n opacity: 0.5;\n pointer-events: none;\n}\n\n:host([full-width]) {\n width: 100%;\n}\n\n/* Trigger wrapper */\n.combobox-trigger {\n display: flex;\n align-items: center;\n width: 100%;\n background: var(--le-combobox-bg, var(--le-color-surface, #fff));\n border: 1px solid color-mix(in srgb, var(--le-combobox-border-color) 33%, transparent);\n border-radius: var(--le-combobox-border-radius, 0.375rem);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.combobox-trigger:hover:not(.is-disabled),\n:host(:focus-within) .combobox-trigger:not(.is-disabled) {\n border-color: var(--le-combobox-border-color);\n}\n\n.combobox-trigger:focus-within {\n outline: 2px solid var(--le-color-focus);\n outline-offset: 2px;\n}\n\n.combobox-trigger.is-open {\n border-color: var(--le-color-primary, #3b82f6);\n}\n\n/* Input */\n.combobox-input {\n flex: 1;\n border: none;\n outline: none;\n}\n.combobox-input::part(container) {\n border: none;\n}\n.combobox-input::part(container):focus-within {\n outline: none !important;\n}\n\n.combobox-input::placeholder {\n color: color-mix(in srgb, var(--le-color-text-secondary) 66%, transparent);\n}\n\n.combobox-trigger.is-disabled {\n cursor: not-allowed;\n background: var(--le-color-surface-disabled, #f9fafb);\n}\n.combobox-input:disabled {\n cursor: not-allowed;\n}\n\n/* Clear button */\n.combobox-clear {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n padding: 0;\n margin-right: 0.25rem;\n color: var(--le-color-primary, #3b82f6);\n background: transparent;\n border: none;\n border-radius: 0.25rem;\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease, background-color 0.15s ease;\n}\n\n.combobox-clear:hover {\n opacity: 1;\n background: var(--le-color-surface-hover, #f3f4f6);\n}\n\n.combobox-clear svg {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n/* Arrow icon */\n.combobox-arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 2rem;\n height: 100%;\n color: var(--le-color-primary, #3b82f6);\n transition: transform 0.2s ease;\n}\n\n.combobox-arrow svg {\n width: 1rem;\n height: 1rem;\n}\n\n.combobox-trigger.is-open .combobox-arrow {\n transform: rotate(180deg);\n}\n\n/* Size variants */\n:host([size='small']) .combobox-trigger {\n --le-combobox-height: 2rem;\n}\n\n:host([size='small']) .combobox-input {\n --le-combobox-padding-x: 0.5rem;\n --le-combobox-font-size: 0.75rem;\n}\n\n:host([size='large']) .combobox-trigger {\n --le-combobox-height: 3rem;\n}\n\n:host([size='large']) .combobox-input {\n --le-combobox-padding-x: 1rem;\n --le-combobox-font-size: 1rem;\n}\n","import {\n Component,\n Prop,\n State,\n Event,\n EventEmitter,\n Method,\n Element,\n Watch,\n h,\n Listen,\n} from '@stencil/core';\nimport { LeOption, LeOptionValue, LeOptionSelectDetail } from '../../types/options';\n\n/**\n * A combobox component with searchable dropdown.\n *\n * Combines a text input with a dropdown list, allowing users to\n * filter options by typing or select from the list.\n *\n * @cmsEditable true\n * @cmsCategory Form\n *\n * @example Basic combobox\n * ```html\n * <le-combobox\n * placeholder=\"Search...\"\n * options='[{\"label\": \"Apple\"}, {\"label\": \"Banana\"}, {\"label\": \"Cherry\"}]'\n * ></le-combobox>\n * ```\n *\n * @example Allow custom values\n * ```html\n * <le-combobox\n * placeholder=\"Type or select...\"\n * allow-custom\n * options='[{\"label\": \"Red\"}, {\"label\": \"Green\"}, {\"label\": \"Blue\"}]'\n * ></le-combobox>\n * ```\n */\n@Component({\n tag: 'le-combobox',\n styleUrl: 'le-combobox.css',\n shadow: true,\n})\nexport class LeCombobox {\n @Element() el: HTMLElement;\n\n /**\n * The options to display in the dropdown.\n */\n @Prop() options: LeOption[] | string = [];\n\n /**\n * The currently selected value.\n */\n @Prop({ mutable: true }) value?: LeOptionValue;\n\n /**\n * Placeholder text for the input.\n */\n @Prop() placeholder: string = 'Type to search...';\n\n /**\n * Whether the combobox is disabled.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether selection is required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Name attribute for form submission.\n */\n @Prop() name?: string;\n\n /**\n * Whether the multiselect should take full width of its container.\n */\n @Prop({ reflect: true }) fullWidth: boolean = false;\n\n /**\n * Size variant of the combobox.\n */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Whether to allow custom values not in the options list.\n */\n @Prop() allowCustom: boolean = false;\n\n /**\n * Minimum characters before showing filtered results.\n */\n @Prop() minSearchLength: number = 0;\n\n /**\n * Text to show when no options match the search.\n */\n @Prop() emptyText: string = 'No results found';\n\n /**\n * Whether the dropdown is currently open.\n */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /**\n * Emitted when the selected value changes.\n */\n @Event() leChange: EventEmitter<LeOptionSelectDetail>;\n\n /**\n * Emitted when the input value changes (for custom values).\n */\n @Event() leInput: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when the dropdown opens.\n */\n @Event() leOpen: EventEmitter<void>;\n\n /**\n * Emitted when the dropdown closes.\n */\n @Event() leClose: EventEmitter<void>;\n\n @Listen('click', { target: 'window' })\n handleWindowClick(event: MouseEvent) {\n if (!this.el.contains(event.target as Node)) {\n this.dropdownEl?.hide();\n }\n }\n\n @State() private inputValue: string = '';\n @State() private selectedOption?: LeOption;\n\n private dropdownEl?: HTMLLeDropdownBaseElement;\n private inputEl?: HTMLInputElement;\n\n @Watch('value')\n handleValueChange() {\n this.updateSelectedOption();\n }\n\n @Watch('options')\n handleOptionsChange() {\n this.updateSelectedOption();\n }\n\n componentWillLoad() {\n this.updateSelectedOption();\n }\n\n private get parsedOptions(): LeOption[] {\n if (typeof this.options === 'string') {\n try {\n return JSON.parse(this.options);\n } catch {\n return [];\n }\n }\n return this.options;\n }\n\n private updateSelectedOption() {\n if (this.value !== undefined) {\n this.selectedOption = this.parsedOptions.find(opt => (opt.value ?? opt.label) === this.value);\n if (this.selectedOption) {\n this.inputValue = this.selectedOption.label;\n } else if (this.allowCustom) {\n this.inputValue = this.value.toString();\n }\n } else {\n this.selectedOption = undefined;\n this.inputValue = '';\n }\n }\n\n private filterOption = (option: LeOption, query: string): boolean => {\n if (!query || query.length < this.minSearchLength) return true;\n const searchLower = query.toLowerCase();\n return (\n option.label.toLowerCase().includes(searchLower) ||\n (option.description?.toLowerCase().includes(searchLower) ?? false)\n );\n };\n\n private handleOptionSelect = (e: CustomEvent<LeOptionSelectDetail>) => {\n this.value = e.detail.value;\n this.selectedOption = e.detail.option;\n this.inputValue = e.detail.option.label;\n this.leChange.emit(e.detail);\n };\n\n private handleDropdownOpen = () => {\n this.open = true;\n this.leOpen.emit();\n };\n\n private handleDropdownClose = () => {\n this.open = false;\n this.leClose.emit();\n\n // If custom values not allowed, reset input to selected option\n if (!this.allowCustom && this.selectedOption) {\n this.inputValue = this.selectedOption.label;\n } else if (!this.allowCustom && !this.selectedOption) {\n this.inputValue = '';\n }\n };\n\n private handleInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.inputValue = target.value;\n\n // Emit input event for custom values\n if (this.allowCustom) {\n this.leInput.emit({ value: this.inputValue });\n }\n\n // Open dropdown when typing\n if (!this.open && this.inputValue.length >= this.minSearchLength) {\n this.dropdownEl?.show();\n }\n };\n\n private handleInputFocus = () => {\n if (!this.disabled) {\n this.dropdownEl?.show();\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent) => {\n if (this.disabled) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!this.open) {\n this.dropdownEl?.show();\n }\n break;\n\n case 'Enter':\n if (this.allowCustom && this.inputValue && !this.open) {\n // Accept custom value\n this.value = this.inputValue;\n this.leChange.emit({\n value: this.inputValue,\n option: { label: this.inputValue, value: this.inputValue },\n });\n }\n break;\n\n case 'Escape':\n if (this.open) {\n this.dropdownEl?.hide();\n }\n break;\n }\n };\n\n private handleClear = (e: MouseEvent) => {\n e.stopPropagation();\n this.value = undefined;\n this.selectedOption = undefined;\n this.inputValue = '';\n this.inputEl?.focus();\n this.leChange.emit({\n value: '',\n option: { label: '', value: '' },\n });\n };\n\n /**\n * Opens the dropdown.\n */\n @Method()\n async showDropdown() {\n await this.dropdownEl?.show();\n }\n\n /**\n * Closes the dropdown.\n */\n @Method()\n async hideDropdown() {\n await this.dropdownEl?.hide();\n }\n\n /**\n * Focuses the input element.\n */\n @Method()\n async focusInput() {\n this.inputEl?.focus();\n }\n\n render() {\n const hasValue = this.inputValue.length > 0;\n\n return (\n <le-component component=\"le-combobox\">\n <le-dropdown-base\n ref={el => (this.dropdownEl = el)}\n options={this.parsedOptions}\n value={this.value}\n disabled={this.disabled}\n filterFn={this.filterOption}\n filterQuery={this.inputValue}\n emptyText={this.emptyText}\n fullWidth={this.fullWidth}\n closeOnClickOutside={false}\n onLeOptionSelect={this.handleOptionSelect}\n onLeDropdownOpen={this.handleDropdownOpen}\n onLeDropdownClose={this.handleDropdownClose}\n >\n <div slot=\"trigger\" class={{ 'combobox-trigger': true, 'is-open': this.open }}>\n <le-string-input\n mode=\"default\"\n hideDescription={true}\n inputRef={el => (this.inputEl = el)}\n type=\"text\"\n class=\"combobox-input\"\n value={this.inputValue}\n placeholder={this.placeholder}\n disabled={this.disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? 'true' : 'false'}\n aria-autocomplete=\"list\"\n onInput={this.handleInputChange}\n onFocus={this.handleInputFocus}\n onKeyDown={this.handleInputKeyDown}\n />\n {hasValue && !this.disabled && (\n <button\n type=\"button\"\n class=\"combobox-clear\"\n onClick={this.handleClear}\n aria-label=\"Clear\"\n tabIndex={-1}\n >\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M4 4l8 8M12 4l-8 8\" />\n </svg>\n </button>\n )}\n <span class=\"combobox-arrow\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n </span>\n </div>\n </le-dropdown-base>\n\n {/* Hidden input for form submission */}\n {this.name && <input type=\"hidden\" name={this.name} value={this.value?.toString() ?? ''} />}\n </le-component>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"le-combobox.js","mappings":"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","names":["LeCombobox","__stencil_proxyCustomElement"],"sources":["src/components/le-combobox/le-combobox.css?tag=le-combobox&encapsulation=shadow","src/components/le-combobox/le-combobox.tsx"],"sourcesContent":["/**\n * le-combobox component styles\n *\n * CSS Custom Properties:\n * --le-combobox-padding-x\n * --le-combobox-font-size\n * --le-combobox-border-radius\n * --le-combobox-border-color\n * --le-combobox-bg\n * --le-combobox-color\n */\n\n:host {\n display: inline-block;\n min-width: 200px;\n --le-combobox-border-color: var(--le-color-primary, #3b82f6);\n}\n\n:host([disabled]) {\n opacity: 0.5;\n pointer-events: none;\n}\n\n:host([full-width]) {\n width: 100%;\n}\n\n/* Trigger wrapper */\n.combobox-trigger {\n display: flex;\n align-items: center;\n width: 100%;\n background: var(--le-combobox-bg, var(--le-color-surface, #fff));\n border: 1px solid color-mix(in srgb, var(--le-combobox-border-color) 33%, transparent);\n border-radius: var(--le-combobox-border-radius, 0.375rem);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.combobox-trigger:hover:not(.is-disabled),\n:host(:focus-within) .combobox-trigger:not(.is-disabled) {\n border-color: var(--le-combobox-border-color);\n}\n\n.combobox-trigger:focus-within {\n outline: 2px solid var(--le-color-focus);\n outline-offset: 2px;\n}\n\n.combobox-trigger.is-open {\n border-color: var(--le-color-primary, #3b82f6);\n}\n\n/* Input */\n.combobox-input {\n flex: 1;\n border: none;\n outline: none;\n}\n.combobox-input::part(container) {\n border: none;\n}\n.combobox-input::part(container):focus-within {\n outline: none !important;\n}\n\n.combobox-input::placeholder {\n color: color-mix(in srgb, var(--le-color-text-secondary) 66%, transparent);\n}\n\n.combobox-trigger.is-disabled {\n cursor: not-allowed;\n background: var(--le-color-surface-disabled, #f9fafb);\n}\n.combobox-input:disabled {\n cursor: not-allowed;\n}\n\n/* Clear button */\n.combobox-clear {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n padding: 0;\n margin-right: 0.25rem;\n color: var(--le-color-primary, #3b82f6);\n background: transparent;\n border: none;\n border-radius: 0.25rem;\n cursor: pointer;\n opacity: 0.6;\n transition: opacity 0.15s ease, background-color 0.15s ease;\n}\n\n.combobox-clear:hover {\n opacity: 1;\n background: var(--le-color-surface-hover, #f3f4f6);\n}\n\n.combobox-clear svg {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n/* Arrow icon */\n.combobox-arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 2rem;\n height: 100%;\n color: var(--le-color-primary, #3b82f6);\n transition: transform 0.2s ease;\n}\n\n.combobox-arrow svg {\n width: 1rem;\n height: 1rem;\n}\n\n.combobox-trigger.is-open .combobox-arrow {\n transform: rotate(180deg);\n}\n\n/* Size variants */\n:host([size='small']) .combobox-trigger {\n --le-combobox-height: 2rem;\n}\n\n:host([size='small']) .combobox-input {\n --le-combobox-padding-x: 0.5rem;\n --le-combobox-font-size: 0.75rem;\n}\n\n:host([size='large']) .combobox-trigger {\n --le-combobox-height: 3rem;\n}\n\n:host([size='large']) .combobox-input {\n --le-combobox-padding-x: 1rem;\n --le-combobox-font-size: 1rem;\n}\n","import {\n Component,\n Prop,\n State,\n Event,\n EventEmitter,\n Method,\n Element,\n Watch,\n h,\n Listen,\n} from '@stencil/core';\nimport { LeOption, LeOptionValue, LeOptionSelectDetail } from '../../types/options';\n\n/**\n * A combobox component with searchable dropdown.\n *\n * Combines a text input with a dropdown list, allowing users to\n * filter options by typing or select from the list.\n *\n * @cmsEditable true\n * @cmsCategory Form\n *\n * @example Basic combobox\n * ```html\n * <le-combobox\n * placeholder=\"Search...\"\n * options='[{\"label\": \"Apple\"}, {\"label\": \"Banana\"}, {\"label\": \"Cherry\"}]'\n * ></le-combobox>\n * ```\n *\n * @example Allow custom values\n * ```html\n * <le-combobox\n * placeholder=\"Type or select...\"\n * allow-custom\n * options='[{\"label\": \"Red\"}, {\"label\": \"Green\"}, {\"label\": \"Blue\"}]'\n * ></le-combobox>\n * ```\n */\n@Component({\n tag: 'le-combobox',\n styleUrl: 'le-combobox.css',\n shadow: true,\n})\nexport class LeCombobox {\n @Element() el: HTMLElement;\n\n /**\n * The options to display in the dropdown.\n */\n @Prop() options: LeOption[] | string = [];\n\n /**\n * The currently selected value.\n */\n @Prop({ mutable: true }) value?: LeOptionValue;\n\n /**\n * Placeholder text for the input.\n */\n @Prop() placeholder: string = 'Type to search...';\n\n /**\n * Whether the combobox is disabled.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether selection is required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Name attribute for form submission.\n */\n @Prop() name?: string;\n\n /**\n * Whether the multiselect should take full width of its container.\n */\n @Prop({ reflect: true }) fullWidth: boolean = false;\n\n /**\n * Size variant of the combobox.\n */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Whether to allow custom values not in the options list.\n */\n @Prop() allowCustom: boolean = false;\n\n /**\n * Minimum characters before showing filtered results.\n */\n @Prop() minSearchLength: number = 0;\n\n /**\n * Text to show when no options match the search.\n */\n @Prop() emptyText: string = 'No results found';\n\n /**\n * Whether the dropdown is currently open.\n */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /**\n * Emitted when the selected value changes.\n */\n @Event() leChange: EventEmitter<LeOptionSelectDetail>;\n\n /**\n * Emitted when the input value changes (for custom values).\n */\n @Event() leInput: EventEmitter<{ value: string }>;\n\n /**\n * Emitted when the dropdown opens.\n */\n @Event() leOpen: EventEmitter<void>;\n\n /**\n * Emitted when the dropdown closes.\n */\n @Event() leClose: EventEmitter<void>;\n\n @Listen('click', { target: 'window' })\n handleWindowClick(event: MouseEvent) {\n if (!this.el.contains(event.target as Node)) {\n this.dropdownEl?.hide();\n }\n }\n\n @State() private inputValue: string = '';\n @State() private selectedOption?: LeOption;\n\n private dropdownEl?: HTMLLeDropdownBaseElement;\n private inputEl?: HTMLInputElement;\n\n @Watch('value')\n handleValueChange() {\n this.updateSelectedOption();\n }\n\n @Watch('options')\n handleOptionsChange() {\n this.updateSelectedOption();\n }\n\n componentWillLoad() {\n this.updateSelectedOption();\n }\n\n private get parsedOptions(): LeOption[] {\n if (typeof this.options === 'string') {\n try {\n return JSON.parse(this.options);\n } catch {\n return [];\n }\n }\n return this.options;\n }\n\n private updateSelectedOption() {\n if (this.value !== undefined) {\n this.selectedOption = this.parsedOptions.find(opt => (opt.value ?? opt.label) === this.value);\n if (this.selectedOption) {\n this.inputValue = this.selectedOption.label;\n } else if (this.allowCustom) {\n this.inputValue = this.value.toString();\n }\n } else {\n this.selectedOption = undefined;\n this.inputValue = '';\n }\n }\n\n private filterOption = (option: LeOption, query: string): boolean => {\n if (!query || query.length < this.minSearchLength) return true;\n const searchLower = query.toLowerCase();\n return (\n option.label.toLowerCase().includes(searchLower) ||\n (option.description?.toLowerCase().includes(searchLower) ?? false)\n );\n };\n\n private handleOptionSelect = (e: CustomEvent<LeOptionSelectDetail>) => {\n this.value = e.detail.value;\n this.selectedOption = e.detail.option;\n this.inputValue = e.detail.option.label;\n this.leChange.emit(e.detail);\n };\n\n private handleDropdownOpen = () => {\n this.open = true;\n this.leOpen.emit();\n };\n\n private handleDropdownClose = () => {\n this.open = false;\n this.leClose.emit();\n\n // If custom values not allowed, reset input to selected option\n if (!this.allowCustom && this.selectedOption) {\n this.inputValue = this.selectedOption.label;\n } else if (!this.allowCustom && !this.selectedOption) {\n this.inputValue = '';\n }\n };\n\n private handleInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.inputValue = target.value;\n\n // Emit input event for custom values\n if (this.allowCustom) {\n this.leInput.emit({ value: this.inputValue });\n }\n\n // Open dropdown when typing\n if (!this.open && this.inputValue.length >= this.minSearchLength) {\n this.dropdownEl?.show();\n }\n };\n\n private handleInputFocus = () => {\n if (!this.disabled) {\n this.dropdownEl?.show();\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent) => {\n if (this.disabled) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!this.open) {\n this.dropdownEl?.show();\n }\n break;\n\n case 'Enter':\n if (this.allowCustom && this.inputValue && !this.open) {\n // Accept custom value\n this.value = this.inputValue;\n this.leChange.emit({\n value: this.inputValue,\n option: { label: this.inputValue, value: this.inputValue },\n });\n }\n break;\n\n case 'Escape':\n if (this.open) {\n this.dropdownEl?.hide();\n }\n break;\n }\n };\n\n private handleClear = (e: MouseEvent) => {\n e.stopPropagation();\n this.value = undefined;\n this.selectedOption = undefined;\n this.inputValue = '';\n this.inputEl?.focus();\n this.leChange.emit({\n value: '',\n option: { label: '', value: '' },\n });\n };\n\n /**\n * Opens the dropdown.\n */\n @Method()\n async showDropdown() {\n await this.dropdownEl?.show();\n }\n\n /**\n * Closes the dropdown.\n */\n @Method()\n async hideDropdown() {\n await this.dropdownEl?.hide();\n }\n\n /**\n * Focuses the input element.\n */\n @Method()\n async focusInput() {\n this.inputEl?.focus();\n }\n\n render() {\n const hasValue = this.inputValue.length > 0;\n\n return (\n <le-component component=\"le-combobox\">\n <le-dropdown-base\n ref={el => (this.dropdownEl = el)}\n options={this.parsedOptions}\n value={this.value}\n disabled={this.disabled}\n filterFn={this.filterOption}\n filterQuery={this.inputValue}\n emptyText={this.emptyText}\n fullWidth={this.fullWidth}\n closeOnClickOutside={false}\n onLeOptionSelect={this.handleOptionSelect}\n onLeDropdownOpen={this.handleDropdownOpen}\n onLeDropdownClose={this.handleDropdownClose}\n >\n <div slot=\"trigger\" class={{ 'combobox-trigger': true, 'is-open': this.open }}>\n <le-string-input\n mode=\"default\"\n hideDescription={true}\n inputRef={el => (this.inputEl = el)}\n type=\"text\"\n class=\"combobox-input\"\n value={this.inputValue}\n placeholder={this.placeholder}\n disabled={this.disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? 'true' : 'false'}\n aria-autocomplete=\"list\"\n onInput={this.handleInputChange}\n onFocus={this.handleInputFocus}\n onKeyDown={this.handleInputKeyDown}\n />\n {hasValue && !this.disabled && (\n <button\n type=\"button\"\n class=\"combobox-clear\"\n onClick={this.handleClear}\n aria-label=\"Clear\"\n tabIndex={-1}\n >\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M4 4l8 8M12 4l-8 8\" />\n </svg>\n </button>\n )}\n <span class=\"combobox-arrow\">\n <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n </span>\n </div>\n </le-dropdown-base>\n\n {/* Hidden input for form submission */}\n {this.name && <input type=\"hidden\" name={this.name} value={this.value?.toString() ?? ''} />}\n </le-component>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host, transformTag } from '@stencil/core/internal/client';
|
|
2
2
|
|
|
3
|
-
const leCurrentHeadingCss =
|
|
3
|
+
const leCurrentHeadingCss = () => `:host{display:inline-flex;min-width:0}.title{font:inherit;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--le-current-heading-color, var(--le-color-text-primary))}`;
|
|
4
4
|
|
|
5
5
|
const LeCurrentHeading$1 = /*@__PURE__*/ proxyCustomElement(class LeCurrentHeading extends HTMLElement {
|
|
6
6
|
constructor(registerHost) {
|
|
@@ -63,7 +63,7 @@ const LeCurrentHeading$1 = /*@__PURE__*/ proxyCustomElement(class LeCurrentHeadi
|
|
|
63
63
|
static get watchers() { return {
|
|
64
64
|
"selector": ["onSelectorChange"]
|
|
65
65
|
}; }
|
|
66
|
-
static get style() { return leCurrentHeadingCss; }
|
|
66
|
+
static get style() { return leCurrentHeadingCss(); }
|
|
67
67
|
}, [769, "le-current-heading", {
|
|
68
68
|
"selector": [1],
|
|
69
69
|
"activeText": [32]
|
|
@@ -77,8 +77,8 @@ function defineCustomElement$1() {
|
|
|
77
77
|
const components = ["le-current-heading"];
|
|
78
78
|
components.forEach(tagName => { switch (tagName) {
|
|
79
79
|
case "le-current-heading":
|
|
80
|
-
if (!customElements.get(tagName)) {
|
|
81
|
-
customElements.define(tagName, LeCurrentHeading$1);
|
|
80
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
81
|
+
customElements.define(transformTag(tagName), LeCurrentHeading$1);
|
|
82
82
|
}
|
|
83
83
|
break;
|
|
84
84
|
} });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"le-current-heading.js","mappings":";;AAAA,MAAM,mBAAmB,GAAG,
|
|
1
|
+
{"file":"le-current-heading.js","mappings":";;AAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,oMAAoM,CAAC;;MCoB3NA,kBAAgB,iBAAAC,kBAAA,CAAA,MAAA,gBAAA,SAAA,WAAA,CAAA;;;;;;;;;;IAIM,QAAQ,GAAW,EAAE;IAErC,UAAU,GAAkB,IAAI;IAEjD,iBAAiB,GAAA;QACf,IAAI,CAAC,iBAAiB,EAAE;;IAIhB,gBAAgB,GAAA;QACxB,IAAI,CAAC,iBAAiB,EAAE;;IAIhB,QAAQ,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE;;IAIhB,QAAQ,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE;;IAGlB,iBAAiB,GAAA;QACvB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE;AACnC,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAE;QAC7C,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACtB;;QAGF,IAAI,QAAQ,GAAc,EAAE;AAC5B,QAAA,IAAI;AACF,YAAA,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;;AAC1D,QAAA,MAAM;AACN,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACtB;;;QAIF,IAAI,QAAQ,GAAkB,IAAI;AAClC,QAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC9B,YAAA,MAAM,IAAI,GAAI,OAAuB,CAAC,qBAAqB,EAAE;AAC7D,YAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,gBAAA,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE;AAC5C,gBAAA,IAAI,CAAC;oBAAE,QAAQ,GAAG,CAAC;;;;AAKvB,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,QAAQ;;;IAI9B,MAAM,GAAA;QACJ,QACE,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACF,IAAI,CAAC,UAAU,IACd,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAA,EAC7B,IAAI,CAAC,UAAU,CACX,KAEP,CAAA,CAAA,MAAA,EAAA,IAAA,CAAa,CACd,CACI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["LeCurrentHeading","__stencil_proxyCustomElement"],"sources":["src/components/le-current-heading/le-current-heading.css?tag=le-current-heading&encapsulation=shadow","src/components/le-current-heading/le-current-heading.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n min-width: 0;\n}\n\n.title {\n font: inherit;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--le-current-heading-color, var(--le-color-text-primary));\n}\n","import { Component, Element, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\n\n/**\n * Shows a \"smart\" header title based on what has scrolled out of view.\n *\n * When `selector` matches multiple elements, the title becomes the last element\n * (top-to-bottom) that has fully scrolled out above the viewport.\n *\n * @slot - Optional fallback content if no watched title is active\n *\n * @csspart title - The rendered title\n *\n * @cmsEditable true\n * @cmsCategory Layout\n */\n@Component({\n tag: 'le-current-heading',\n styleUrl: 'le-current-heading.css',\n shadow: true,\n})\nexport class LeCurrentHeading {\n @Element() el: HTMLElement;\n\n /** CSS selector for page title/headings to watch (e.g. `.page-title`, `main h2`). */\n @Prop({ attribute: 'selector' }) selector: string = '';\n\n @State() private activeText: string | null = null;\n\n componentWillLoad() {\n this.updateActiveTitle();\n }\n\n @Watch('selector')\n protected onSelectorChange() {\n this.updateActiveTitle();\n }\n\n @Listen('scroll', { target: 'window', passive: true })\n protected onScroll() {\n this.updateActiveTitle();\n }\n\n @Listen('resize', { target: 'window', passive: true })\n protected onResize() {\n this.updateActiveTitle();\n }\n\n private updateActiveTitle() {\n if (typeof window === 'undefined') return;\n const selector = (this.selector ?? '').trim();\n if (!selector) {\n this.activeText = null;\n return;\n }\n\n let elements: Element[] = [];\n try {\n elements = Array.from(document.querySelectorAll(selector));\n } catch {\n this.activeText = null;\n return;\n }\n\n // Pick the last element that is fully above the viewport.\n let nextText: string | null = null;\n for (const element of elements) {\n const rect = (element as HTMLElement).getBoundingClientRect();\n if (rect.height > 0 && rect.bottom <= 0) {\n const t = (element.textContent ?? '').trim();\n if (t) nextText = t;\n }\n }\n\n // Do not create oscillations: update only when the computed title changes.\n if (nextText !== this.activeText) {\n this.activeText = nextText;\n }\n }\n\n render() {\n return (\n <Host>\n {this.activeText ? (\n <span class=\"title\" part=\"title\">\n {this.activeText}\n </span>\n ) : (\n <slot></slot>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host, transformTag } from '@stencil/core/internal/client';
|
|
2
2
|
import { g as generateId } from './utils.js';
|
|
3
3
|
import { d as defineCustomElement$1 } from './le-popover2.js';
|
|
4
4
|
|
|
5
|
-
const leDropdownBaseCss =
|
|
5
|
+
const leDropdownBaseCss = () => `:host{display:block;--le-dropdown-list-padding:var(--le-spacing-1);--le-dropdown-empty-padding:var(--le-spacing-4);--le-dropdown-option-radius:var(--le-radius-md);--le-dropdown-font-size:var(--le-font-size-sm);--le-dropdown-option-padding:var(--le-spacing-1) var(--le-spacing-2);--le-dropdown-group-padding:var(--le-spacing-2) var(--le-spacing-2) var(--le-spacing-1);--le-dropdown-group-font-size:var(--le-font-size-xs)}:host([disabled]){pointer-events:none;opacity:0.5}le-popover::part(content){overflow-y:auto;overflow-x:hidden;padding:var(--le-dropdown-list-padding, 0.25rem)}.dropdown-empty{padding:var(--le-dropdown-empty-padding);text-align:center;color:var(--le-color-text-secondary, #9ca3af);font-size:var(--le-dropdown-font-size)}.dropdown-group-header{padding:var(--le-dropdown-group-padding);font-size:var(--le-dropdown-group-font-size);font-weight:700;color:var(--le-color-text-secondary, #9ca3af);letter-spacing:0.05em}.dropdown-list{text-align:initial}.dropdown-separator{height:1px;margin:var(--le-dropdown-separator-margin, 0.25rem 0);background:var(--le-color-border, #e5e7eb)}.dropdown-option{display:flex;align-items:center;gap:var(--le-dropdown-option-gap, 0.5rem);padding:var(--le-dropdown-option-padding);font-size:var(--le-dropdown-font-size, 0.875rem);line-height:1.4;color:var(--le-color-text, #1f2937);border:1px solid transparent;border-radius:var(--le-dropdown-option-radius, 0.25rem);cursor:pointer;user-select:none;transition:background-color 0.1s ease}.dropdown-option:hover,.dropdown-option.is-focused{border-color:var(--le-color-border-hover, #d1d5db)}.dropdown-option.is-disabled{opacity:0.5;cursor:not-allowed}.dropdown-option.is-disabled:hover{background:transparent}.option-checkbox{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;border:2px solid var(--le-color-border, #d1d5db);border-radius:0.25rem;background:var(--le-color-surface, #fff);flex-shrink:0}.is-selected .option-checkbox{background:var(--le-color-primary, #3b82f6);border-color:var(--le-color-primary, #3b82f6);color:white}.option-checkbox svg{width:0.75rem;height:0.75rem}.option-icon-start,.option-icon-end{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem}.option-icon-start img,.option-icon-end img{width:100%;height:100%;object-fit:contain}.option-content{flex:1;min-width:0;display:flex;flex-direction:column}.option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.option-description{font-size:0.75rem;color:var(--le-color-text-muted, #6b7280);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.option-check{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;color:var(--le-color-primary, #3b82f6);flex-shrink:0}.option-check svg{width:1rem;height:1rem}`;
|
|
6
6
|
|
|
7
7
|
const LeDropdownBase = /*@__PURE__*/ proxyCustomElement(class LeDropdownBase extends HTMLElement {
|
|
8
8
|
constructor(registerHost) {
|
|
@@ -344,7 +344,7 @@ const LeDropdownBase = /*@__PURE__*/ proxyCustomElement(class LeDropdownBase ext
|
|
|
344
344
|
"options": ["handleOptionsChange"],
|
|
345
345
|
"filterQuery": ["handleOptionsChange"]
|
|
346
346
|
}; }
|
|
347
|
-
static get style() { return leDropdownBaseCss; }
|
|
347
|
+
static get style() { return leDropdownBaseCss(); }
|
|
348
348
|
}, [769, "le-dropdown-base", {
|
|
349
349
|
"options": [16],
|
|
350
350
|
"value": [8],
|
|
@@ -375,12 +375,12 @@ function defineCustomElement() {
|
|
|
375
375
|
const components = ["le-dropdown-base", "le-popover"];
|
|
376
376
|
components.forEach(tagName => { switch (tagName) {
|
|
377
377
|
case "le-dropdown-base":
|
|
378
|
-
if (!customElements.get(tagName)) {
|
|
379
|
-
customElements.define(tagName, LeDropdownBase);
|
|
378
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
379
|
+
customElements.define(transformTag(tagName), LeDropdownBase);
|
|
380
380
|
}
|
|
381
381
|
break;
|
|
382
382
|
case "le-popover":
|
|
383
|
-
if (!customElements.get(tagName)) {
|
|
383
|
+
if (!customElements.get(transformTag(tagName))) {
|
|
384
384
|
defineCustomElement$1();
|
|
385
385
|
}
|
|
386
386
|
break;
|