le-kit 0.5.2 → 0.5.3
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/LLM_CONTEXT.md +22 -0
- package/dist/cjs/le-bar_16.cjs.entry.js +945 -1257
- package/dist/cjs/le-box.cjs.entry.js +40 -88
- package/dist/cjs/le-breadcrumbs.cjs.entry.js +223 -0
- package/dist/cjs/le-card.cjs.entry.js +11 -11
- package/dist/cjs/le-code-input.cjs.entry.js +76 -110
- package/dist/cjs/le-combobox.cjs.entry.js +126 -153
- package/dist/cjs/le-header-placeholder.cjs.entry.js +1 -1
- package/dist/cjs/le-kit.cjs.js +1 -1
- package/dist/cjs/le-multiselect.cjs.entry.js +149 -171
- package/dist/cjs/le-number-input.cjs.entry.js +89 -129
- package/dist/cjs/le-round-progress.cjs.entry.js +6 -11
- package/dist/cjs/le-segmented-control.cjs.entry.js +77 -87
- package/dist/cjs/le-side-panel-toggle.cjs.entry.js +59 -75
- package/dist/cjs/le-side-panel.cjs.entry.js +130 -137
- package/dist/cjs/le-stack.cjs.entry.js +38 -51
- package/dist/cjs/le-tab-bar.cjs.entry.js +80 -89
- package/dist/cjs/le-tab-panel.cjs.entry.js +21 -39
- package/dist/cjs/le-tab.cjs.entry.js +53 -91
- package/dist/cjs/le-tabs.cjs.entry.js +112 -122
- package/dist/cjs/le-tag.cjs.entry.js +23 -40
- package/dist/cjs/le-text.cjs.entry.js +131 -148
- package/dist/cjs/le-turntable.cjs.entry.js +17 -25
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/le-bar/le-bar.js +132 -139
- package/dist/collection/components/le-bar/le-bar.js.map +1 -1
- package/dist/collection/components/le-box/le-box.js +41 -88
- package/dist/collection/components/le-box/le-box.js.map +1 -1
- package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.css +72 -0
- package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.js +372 -0
- package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.js.map +1 -0
- package/dist/collection/components/le-button/le-button.js +50 -79
- package/dist/collection/components/le-button/le-button.js.map +1 -1
- package/dist/collection/components/le-card/le-card.js +12 -11
- package/dist/collection/components/le-card/le-card.js.map +1 -1
- package/dist/collection/components/le-checkbox/le-checkbox.js +27 -42
- package/dist/collection/components/le-checkbox/le-checkbox.js.map +1 -1
- package/dist/collection/components/le-code-input/le-code-input.js +77 -110
- package/dist/collection/components/le-code-input/le-code-input.js.map +1 -1
- package/dist/collection/components/le-collapse/le-collapse.js +15 -14
- package/dist/collection/components/le-collapse/le-collapse.js.map +1 -1
- package/dist/collection/components/le-combobox/le-combobox.js +127 -153
- package/dist/collection/components/le-combobox/le-combobox.js.map +1 -1
- package/dist/collection/components/le-component/le-component.js +14 -38
- package/dist/collection/components/le-component/le-component.js.map +1 -1
- package/dist/collection/components/le-current-heading/le-current-heading.js +6 -5
- package/dist/collection/components/le-current-heading/le-current-heading.js.map +1 -1
- package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +139 -165
- package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +1 -1
- package/dist/collection/components/le-header/le-header.js +22 -45
- package/dist/collection/components/le-header/le-header.js.map +1 -1
- package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +1 -1
- package/dist/collection/components/le-icon/le-icon.js +14 -14
- package/dist/collection/components/le-icon/le-icon.js.map +1 -1
- package/dist/collection/components/le-multiselect/le-multiselect.js +150 -171
- package/dist/collection/components/le-multiselect/le-multiselect.js.map +1 -1
- package/dist/collection/components/le-navigation/le-navigation.js +118 -128
- package/dist/collection/components/le-navigation/le-navigation.js.map +1 -1
- package/dist/collection/components/le-number-input/le-number-input.js +90 -129
- package/dist/collection/components/le-number-input/le-number-input.js.map +1 -1
- package/dist/collection/components/le-popover/le-popover.css +2 -1
- package/dist/collection/components/le-popover/le-popover.js +101 -126
- package/dist/collection/components/le-popover/le-popover.js.map +1 -1
- package/dist/collection/components/le-popup/le-popup.js +89 -115
- package/dist/collection/components/le-popup/le-popup.js.map +1 -1
- package/dist/collection/components/le-round-progress/le-round-progress.js +7 -12
- package/dist/collection/components/le-round-progress/le-round-progress.js.map +1 -1
- package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +6 -7
- package/dist/collection/components/le-scroll-progress/le-scroll-progress.js.map +1 -1
- package/dist/collection/components/le-segmented-control/le-segmented-control.js +78 -87
- package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +1 -1
- package/dist/collection/components/le-select/le-select.js +88 -110
- package/dist/collection/components/le-select/le-select.js.map +1 -1
- package/dist/collection/components/le-side-panel/le-side-panel.css +10 -1
- package/dist/collection/components/le-side-panel/le-side-panel.js +131 -136
- package/dist/collection/components/le-side-panel/le-side-panel.js.map +1 -1
- package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +60 -75
- package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +1 -1
- package/dist/collection/components/le-slot/le-slot.js +96 -144
- package/dist/collection/components/le-slot/le-slot.js.map +1 -1
- package/dist/collection/components/le-stack/le-stack.js +39 -51
- package/dist/collection/components/le-stack/le-stack.js.map +1 -1
- package/dist/collection/components/le-string-input/le-string-input.js +41 -84
- package/dist/collection/components/le-string-input/le-string-input.js.map +1 -1
- package/dist/collection/components/le-tab/le-tab.js +54 -91
- package/dist/collection/components/le-tab/le-tab.js.map +1 -1
- package/dist/collection/components/le-tab-bar/le-tab-bar.js +81 -89
- package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +1 -1
- package/dist/collection/components/le-tab-panel/le-tab-panel.js +22 -39
- package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +1 -1
- package/dist/collection/components/le-tabs/le-tabs.js +113 -122
- package/dist/collection/components/le-tabs/le-tabs.js.map +1 -1
- package/dist/collection/components/le-tag/le-tag.js +25 -40
- package/dist/collection/components/le-tag/le-tag.js.map +1 -1
- package/dist/collection/components/le-text/le-text.js +132 -148
- package/dist/collection/components/le-text/le-text.js.map +1 -1
- package/dist/collection/components/le-turntable/le-turntable.js +18 -26
- package/dist/collection/components/le-turntable/le-turntable.js.map +1 -1
- package/dist/collection/dist/components/assets/custom-elements.json +973 -645
- package/dist/collection/dist/components/assets/icons/arrow-left.json +21 -0
- package/dist/collection/dist/components/assets/icons/arrow-right.json +21 -0
- package/dist/collection/dist/components/assets/icons/check.json +12 -0
- package/dist/collection/dist/components/assets/icons/chevron-down.json +1 -2
- package/dist/collection/dist/components/assets/icons/chevron-left.json +12 -0
- package/dist/collection/dist/components/assets/icons/chevron-right.json +12 -0
- package/dist/collection/dist/components/assets/icons/chevron-up.json +12 -0
- package/dist/components/assets/custom-elements.json +973 -645
- package/dist/components/assets/icons/arrow-left.json +21 -0
- package/dist/components/assets/icons/arrow-right.json +21 -0
- package/dist/components/assets/icons/check.json +12 -0
- package/dist/components/assets/icons/chevron-down.json +1 -2
- package/dist/components/assets/icons/chevron-left.json +12 -0
- package/dist/components/assets/icons/chevron-right.json +12 -0
- package/dist/components/assets/icons/chevron-up.json +12 -0
- package/dist/components/le-bar2.js +132 -140
- package/dist/components/le-bar2.js.map +1 -1
- package/dist/components/le-box.js +41 -89
- package/dist/components/le-box.js.map +1 -1
- package/dist/components/le-breadcrumbs.d.ts +11 -0
- package/dist/components/le-breadcrumbs.js +327 -0
- package/dist/components/le-breadcrumbs.js.map +1 -0
- package/dist/components/le-button2.js +405 -619
- package/dist/components/le-button2.js.map +1 -1
- package/dist/components/le-card.js +12 -12
- package/dist/components/le-card.js.map +1 -1
- package/dist/components/le-code-input.js +77 -111
- package/dist/components/le-code-input.js.map +1 -1
- package/dist/components/le-collapse2.js +15 -15
- package/dist/components/le-collapse2.js.map +1 -1
- package/dist/components/le-combobox.js +127 -154
- package/dist/components/le-combobox.js.map +1 -1
- package/dist/components/le-current-heading.js +6 -6
- package/dist/components/le-current-heading.js.map +1 -1
- package/dist/components/le-dropdown-base2.js +139 -166
- package/dist/components/le-dropdown-base2.js.map +1 -1
- package/dist/components/le-header-placeholder.js +1 -1
- package/dist/components/le-header.js +22 -46
- package/dist/components/le-header.js.map +1 -1
- package/dist/components/le-icon2.js +14 -15
- package/dist/components/le-icon2.js.map +1 -1
- package/dist/components/le-multiselect.js +150 -172
- package/dist/components/le-multiselect.js.map +1 -1
- package/dist/components/le-navigation.js +1 -494
- package/dist/components/le-navigation.js.map +1 -1
- package/dist/components/le-navigation2.js +488 -0
- package/dist/components/le-navigation2.js.map +1 -0
- package/dist/components/le-number-input.js +90 -130
- package/dist/components/le-number-input.js.map +1 -1
- package/dist/components/le-popover2.js +103 -128
- package/dist/components/le-popover2.js.map +1 -1
- package/dist/components/le-round-progress.js +7 -12
- package/dist/components/le-round-progress.js.map +1 -1
- package/dist/components/le-scroll-progress.js +6 -8
- package/dist/components/le-scroll-progress.js.map +1 -1
- package/dist/components/le-segmented-control.js +78 -88
- package/dist/components/le-segmented-control.js.map +1 -1
- package/dist/components/le-side-panel-toggle2.js +60 -76
- package/dist/components/le-side-panel-toggle2.js.map +1 -1
- package/dist/components/le-side-panel.js +133 -139
- package/dist/components/le-side-panel.js.map +1 -1
- package/dist/components/le-stack.js +39 -52
- package/dist/components/le-stack.js.map +1 -1
- package/dist/components/le-tab-bar.js +81 -90
- package/dist/components/le-tab-bar.js.map +1 -1
- package/dist/components/le-tab-panel.js +22 -40
- package/dist/components/le-tab-panel.js.map +1 -1
- package/dist/components/le-tab2.js +54 -92
- package/dist/components/le-tab2.js.map +1 -1
- package/dist/components/le-tabs.js +113 -123
- package/dist/components/le-tabs.js.map +1 -1
- package/dist/components/le-tag2.js +24 -41
- package/dist/components/le-tag2.js.map +1 -1
- package/dist/components/le-text.js +132 -149
- package/dist/components/le-text.js.map +1 -1
- package/dist/components/le-turntable.js +18 -26
- package/dist/components/le-turntable.js.map +1 -1
- package/dist/docs.json +294 -2
- package/dist/esm/le-bar_16.entry.js +946 -1258
- package/dist/esm/le-box.entry.js +41 -89
- package/dist/esm/le-box.entry.js.map +1 -1
- package/dist/esm/le-breadcrumbs.entry.js +221 -0
- package/dist/esm/le-breadcrumbs.entry.js.map +1 -0
- package/dist/esm/le-card.entry.js +12 -12
- package/dist/esm/le-card.entry.js.map +1 -1
- package/dist/esm/le-code-input.entry.js +77 -111
- package/dist/esm/le-code-input.entry.js.map +1 -1
- package/dist/esm/le-combobox.entry.js +127 -154
- 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 +1 -1
- package/dist/esm/le-multiselect.entry.js +150 -172
- package/dist/esm/le-multiselect.entry.js.map +1 -1
- package/dist/esm/le-number-input.entry.js +90 -130
- package/dist/esm/le-number-input.entry.js.map +1 -1
- package/dist/esm/le-round-progress.entry.js +7 -12
- package/dist/esm/le-round-progress.entry.js.map +1 -1
- package/dist/esm/le-segmented-control.entry.js +78 -88
- package/dist/esm/le-segmented-control.entry.js.map +1 -1
- package/dist/esm/le-side-panel-toggle.entry.js +60 -76
- package/dist/esm/le-side-panel-toggle.entry.js.map +1 -1
- package/dist/esm/le-side-panel.entry.js +131 -138
- package/dist/esm/le-side-panel.entry.js.map +1 -1
- package/dist/esm/le-stack.entry.js +39 -52
- package/dist/esm/le-stack.entry.js.map +1 -1
- package/dist/esm/le-tab-bar.entry.js +81 -90
- package/dist/esm/le-tab-bar.entry.js.map +1 -1
- package/dist/esm/le-tab-panel.entry.js +22 -40
- package/dist/esm/le-tab-panel.entry.js.map +1 -1
- package/dist/esm/le-tab.entry.js +54 -92
- package/dist/esm/le-tab.entry.js.map +1 -1
- package/dist/esm/le-tabs.entry.js +113 -123
- package/dist/esm/le-tabs.entry.js.map +1 -1
- package/dist/esm/le-tag.entry.js +23 -40
- package/dist/esm/le-tag.entry.js.map +1 -1
- package/dist/esm/le-text.entry.js +132 -149
- package/dist/esm/le-text.entry.js.map +1 -1
- package/dist/esm/le-turntable.entry.js +18 -26
- package/dist/esm/le-turntable.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/le-kit/dist/components/assets/custom-elements.json +973 -645
- package/dist/le-kit/dist/components/assets/icons/arrow-left.json +21 -0
- package/dist/le-kit/dist/components/assets/icons/arrow-right.json +21 -0
- package/dist/le-kit/dist/components/assets/icons/check.json +12 -0
- package/dist/le-kit/dist/components/assets/icons/chevron-down.json +1 -2
- package/dist/le-kit/dist/components/assets/icons/chevron-left.json +12 -0
- package/dist/le-kit/dist/components/assets/icons/chevron-right.json +12 -0
- package/dist/le-kit/dist/components/assets/icons/chevron-up.json +12 -0
- package/dist/le-kit/le-kit.esm.js +1 -1
- package/dist/le-kit/p-3067b18f.entry.js +2 -0
- package/dist/le-kit/p-3067b18f.entry.js.map +1 -0
- package/dist/le-kit/p-34c4d97d.entry.js +2 -0
- package/dist/le-kit/p-34c4d97d.entry.js.map +1 -0
- package/dist/le-kit/p-45182541.entry.js +2 -0
- package/dist/le-kit/p-45182541.entry.js.map +1 -0
- package/dist/le-kit/p-52a41c96.entry.js +2 -0
- package/dist/le-kit/p-52a41c96.entry.js.map +1 -0
- package/dist/le-kit/p-55fb5dd2.entry.js +2 -0
- package/dist/le-kit/p-55fb5dd2.entry.js.map +1 -0
- package/dist/le-kit/{p-ab6c1def.entry.js → p-649025f4.entry.js} +2 -2
- package/dist/le-kit/p-649025f4.entry.js.map +1 -0
- package/dist/le-kit/p-67930309.entry.js +2 -0
- package/dist/le-kit/p-67930309.entry.js.map +1 -0
- package/dist/le-kit/p-6d222705.entry.js +2 -0
- package/dist/le-kit/p-6d222705.entry.js.map +1 -0
- package/dist/le-kit/p-8049e0c2.entry.js +2 -0
- package/dist/le-kit/p-8049e0c2.entry.js.map +1 -0
- package/dist/le-kit/p-884f57bd.entry.js +2 -0
- package/dist/le-kit/p-88c70f9d.entry.js +2 -0
- package/dist/le-kit/p-88c70f9d.entry.js.map +1 -0
- package/dist/le-kit/p-96610729.entry.js +2 -0
- package/dist/le-kit/p-96610729.entry.js.map +1 -0
- package/dist/le-kit/p-a34054e0.entry.js +2 -0
- package/dist/le-kit/p-a34054e0.entry.js.map +1 -0
- package/dist/le-kit/p-a388e46a.entry.js +2 -0
- package/dist/le-kit/p-a388e46a.entry.js.map +1 -0
- package/dist/le-kit/p-c0c53650.entry.js +2 -0
- package/dist/le-kit/p-c0c53650.entry.js.map +1 -0
- package/dist/le-kit/p-cbf17514.entry.js +2 -0
- package/dist/le-kit/p-cbf17514.entry.js.map +1 -0
- package/dist/le-kit/p-d934de74.entry.js +2 -0
- package/dist/le-kit/p-d934de74.entry.js.map +1 -0
- package/dist/le-kit/p-de72c8b5.entry.js +2 -0
- package/dist/le-kit/p-de72c8b5.entry.js.map +1 -0
- package/dist/le-kit/p-e3dd0f2a.entry.js +2 -0
- package/dist/le-kit/p-e3dd0f2a.entry.js.map +1 -0
- package/dist/le-kit/p-ee170967.entry.js +2 -0
- package/dist/le-kit/p-ee170967.entry.js.map +1 -0
- package/dist/le-kit/p-eedb2f75.entry.js +2 -0
- package/dist/le-kit/p-eedb2f75.entry.js.map +1 -0
- package/dist/types/components/le-breadcrumbs/le-breadcrumbs.d.ts +57 -0
- package/dist/types/components/le-side-panel/le-side-panel.d.ts +2 -0
- package/dist/types/components.d.ts +84 -0
- package/package.json +1 -1
- package/dist/collection/assets/icons/chevron-down.svg +0 -3
- package/dist/collection/dist/components/assets/icons/chevron-down.svg +0 -3
- package/dist/components/assets/icons/chevron-down.svg +0 -3
- package/dist/le-kit/dist/components/assets/icons/chevron-down.svg +0 -3
- package/dist/le-kit/p-221d379a.entry.js +0 -2
- package/dist/le-kit/p-221d379a.entry.js.map +0 -1
- package/dist/le-kit/p-24112ca3.entry.js +0 -2
- package/dist/le-kit/p-24112ca3.entry.js.map +0 -1
- package/dist/le-kit/p-2c6d080d.entry.js +0 -2
- package/dist/le-kit/p-2c6d080d.entry.js.map +0 -1
- package/dist/le-kit/p-46276e77.entry.js +0 -2
- package/dist/le-kit/p-46276e77.entry.js.map +0 -1
- package/dist/le-kit/p-516c8531.entry.js +0 -2
- package/dist/le-kit/p-6ae60ba5.entry.js +0 -2
- package/dist/le-kit/p-6ae60ba5.entry.js.map +0 -1
- package/dist/le-kit/p-6b69f9a2.entry.js +0 -2
- package/dist/le-kit/p-6b69f9a2.entry.js.map +0 -1
- package/dist/le-kit/p-6d14306f.entry.js +0 -2
- package/dist/le-kit/p-6d14306f.entry.js.map +0 -1
- package/dist/le-kit/p-7bcdf2d4.entry.js +0 -2
- package/dist/le-kit/p-7bcdf2d4.entry.js.map +0 -1
- package/dist/le-kit/p-7cf1e23c.entry.js +0 -2
- package/dist/le-kit/p-7cf1e23c.entry.js.map +0 -1
- package/dist/le-kit/p-85f2fd4d.entry.js +0 -2
- package/dist/le-kit/p-85f2fd4d.entry.js.map +0 -1
- package/dist/le-kit/p-98242429.entry.js +0 -2
- package/dist/le-kit/p-98242429.entry.js.map +0 -1
- package/dist/le-kit/p-ab6c1def.entry.js.map +0 -1
- package/dist/le-kit/p-ae4ead64.entry.js +0 -2
- package/dist/le-kit/p-ae4ead64.entry.js.map +0 -1
- package/dist/le-kit/p-b05d4511.entry.js +0 -2
- package/dist/le-kit/p-b05d4511.entry.js.map +0 -1
- package/dist/le-kit/p-b6ac02ff.entry.js +0 -2
- package/dist/le-kit/p-b6ac02ff.entry.js.map +0 -1
- package/dist/le-kit/p-c24769e2.entry.js +0 -2
- package/dist/le-kit/p-c24769e2.entry.js.map +0 -1
- package/dist/le-kit/p-dc0445ad.entry.js +0 -2
- package/dist/le-kit/p-dc0445ad.entry.js.map +0 -1
- package/dist/le-kit/p-eb5286f2.entry.js +0 -2
- package/dist/le-kit/p-eb5286f2.entry.js.map +0 -1
- package/dist/le-kit/p-f78b1ee6.entry.js +0 -2
- package/dist/le-kit/p-f78b1ee6.entry.js.map +0 -1
- /package/dist/le-kit/{p-516c8531.entry.js.map → p-884f57bd.entry.js.map} +0 -0
|
@@ -8,57 +8,43 @@ const leStackDefaultCss = () => `:host{display:block}:host([hidden]){display:non
|
|
|
8
8
|
const LeStack = class {
|
|
9
9
|
constructor(hostRef) {
|
|
10
10
|
index.registerInstance(this, hostRef);
|
|
11
|
+
/**
|
|
12
|
+
* Direction of the stack layout
|
|
13
|
+
* @allowedValues horizontal | vertical
|
|
14
|
+
*/
|
|
15
|
+
this.direction = 'horizontal';
|
|
16
|
+
/**
|
|
17
|
+
* Alignment of items on the cross axis
|
|
18
|
+
* @allowedValues start | center | end | stretch | baseline
|
|
19
|
+
*/
|
|
20
|
+
this.align = 'stretch';
|
|
21
|
+
/**
|
|
22
|
+
* Distribution of items on the main axis
|
|
23
|
+
* @allowedValues start | center | end | space-between | space-around | space-evenly
|
|
24
|
+
*/
|
|
25
|
+
this.justify = 'start';
|
|
26
|
+
/**
|
|
27
|
+
* Whether items should wrap to multiple lines
|
|
28
|
+
*/
|
|
29
|
+
this.wrap = false;
|
|
30
|
+
/**
|
|
31
|
+
* Alignment of wrapped lines (only applies when wrap is true)
|
|
32
|
+
* @allowedValues start | center | end | stretch | space-between | space-around
|
|
33
|
+
*/
|
|
34
|
+
this.alignContent = 'stretch';
|
|
35
|
+
/**
|
|
36
|
+
* Whether to reverse the order of items
|
|
37
|
+
*/
|
|
38
|
+
this.reverse = false;
|
|
39
|
+
/**
|
|
40
|
+
* Whether the stack should take full width of its container
|
|
41
|
+
*/
|
|
42
|
+
this.fullWidth = false;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the stack should take full height of its container
|
|
45
|
+
*/
|
|
46
|
+
this.fullHeight = false;
|
|
11
47
|
}
|
|
12
|
-
get el() { return index.getElement(this); }
|
|
13
|
-
/**
|
|
14
|
-
* Direction of the stack layout
|
|
15
|
-
* @allowedValues horizontal | vertical
|
|
16
|
-
*/
|
|
17
|
-
direction = 'horizontal';
|
|
18
|
-
/**
|
|
19
|
-
* Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')
|
|
20
|
-
*/
|
|
21
|
-
gap;
|
|
22
|
-
/**
|
|
23
|
-
* Alignment of items on the cross axis
|
|
24
|
-
* @allowedValues start | center | end | stretch | baseline
|
|
25
|
-
*/
|
|
26
|
-
align = 'stretch';
|
|
27
|
-
/**
|
|
28
|
-
* Distribution of items on the main axis
|
|
29
|
-
* @allowedValues start | center | end | space-between | space-around | space-evenly
|
|
30
|
-
*/
|
|
31
|
-
justify = 'start';
|
|
32
|
-
/**
|
|
33
|
-
* Whether items should wrap to multiple lines
|
|
34
|
-
*/
|
|
35
|
-
wrap = false;
|
|
36
|
-
/**
|
|
37
|
-
* Alignment of wrapped lines (only applies when wrap is true)
|
|
38
|
-
* @allowedValues start | center | end | stretch | space-between | space-around
|
|
39
|
-
*/
|
|
40
|
-
alignContent = 'stretch';
|
|
41
|
-
/**
|
|
42
|
-
* Whether to reverse the order of items
|
|
43
|
-
*/
|
|
44
|
-
reverse = false;
|
|
45
|
-
/**
|
|
46
|
-
* Maximum number of items allowed in the stack (for CMS validation)
|
|
47
|
-
* @min 1
|
|
48
|
-
*/
|
|
49
|
-
maxItems;
|
|
50
|
-
/**
|
|
51
|
-
* Whether the stack should take full width of its container
|
|
52
|
-
*/
|
|
53
|
-
fullWidth = false;
|
|
54
|
-
/**
|
|
55
|
-
* Whether the stack should take full height of its container
|
|
56
|
-
*/
|
|
57
|
-
fullHeight = false;
|
|
58
|
-
/**
|
|
59
|
-
* Padding inside the stack container (CSS value)
|
|
60
|
-
*/
|
|
61
|
-
padding;
|
|
62
48
|
getFlexDirection() {
|
|
63
49
|
const base = this.direction === 'vertical' ? 'column' : 'row';
|
|
64
50
|
return this.reverse ? `${base}-reverse` : base;
|
|
@@ -126,8 +112,9 @@ const LeStack = class {
|
|
|
126
112
|
});
|
|
127
113
|
// Slot style for admin mode - make items display in the same direction
|
|
128
114
|
const slotStyle = `display: flex; flex-direction: ${this.getFlexDirection()}; gap: ${this.gap || 'var(--le-space-md)'}; flex-wrap: ${this.wrap ? 'wrap' : 'nowrap'}; justify-content: ${this.getJustifyContent()}; align-items: ${this.getAlignItems()};`;
|
|
129
|
-
return (index.h("le-component", { key: '
|
|
115
|
+
return (index.h("le-component", { key: 'b38f41c08716826a9f495c9b737adee10f67bec8', component: "le-stack", hostClass: hostClass }, index.h("div", { key: 'd9e716473b3395f89a5d1dfcd064e6292565b828', class: "stack", part: "stack", style: style }, index.h("le-slot", { key: 'fc4d044642cbd9d1a25e300fffc8ad689a0133f2', name: "", description: `Items arranged ${this.direction}ly${this.maxItems ? ` (max ${this.maxItems})` : ''}`, type: "slot", "allowed-components": "le-text,le-box,le-card,le-button,le-stack", slotStyle: slotStyle }, index.h("slot", { key: '94e72a818af3bdb4543f86358ea8ecd048ef5055' })))));
|
|
130
116
|
}
|
|
117
|
+
get el() { return index.getElement(this); }
|
|
131
118
|
};
|
|
132
119
|
LeStack.style = leStackDefaultCss();
|
|
133
120
|
|
|
@@ -8,55 +8,85 @@ const LeTabBar = class {
|
|
|
8
8
|
constructor(hostRef) {
|
|
9
9
|
index.registerInstance(this, hostRef);
|
|
10
10
|
this.leTabChange = index.createEvent(this, "leTabChange");
|
|
11
|
+
/**
|
|
12
|
+
* Array of tab options defining the tabs to display.
|
|
13
|
+
*/
|
|
14
|
+
this.tabs = [];
|
|
15
|
+
/**
|
|
16
|
+
* Whether tabs should stretch to fill available width.
|
|
17
|
+
*/
|
|
18
|
+
this.fullWidth = true;
|
|
19
|
+
/**
|
|
20
|
+
* Whether to show labels in icon-only mode.
|
|
21
|
+
*/
|
|
22
|
+
this.showLabels = false;
|
|
23
|
+
/**
|
|
24
|
+
* Position of the tab bar.
|
|
25
|
+
* @allowedValues top | bottom
|
|
26
|
+
*/
|
|
27
|
+
this.position = 'top';
|
|
28
|
+
/**
|
|
29
|
+
* Size of the tabs.
|
|
30
|
+
* @allowedValues small | medium | large
|
|
31
|
+
*/
|
|
32
|
+
this.size = 'medium';
|
|
33
|
+
/**
|
|
34
|
+
* Whether to show a border below the tab bar.
|
|
35
|
+
*/
|
|
36
|
+
this.bordered = true;
|
|
37
|
+
/**
|
|
38
|
+
* Internal tab configurations (built from children or tabs prop)
|
|
39
|
+
*/
|
|
40
|
+
this.tabConfigs = [];
|
|
41
|
+
/**
|
|
42
|
+
* Whether we're using declarative mode (le-tab-panel children)
|
|
43
|
+
*/
|
|
44
|
+
this.isDeclarativeMode = false;
|
|
45
|
+
/**
|
|
46
|
+
* Internal state for focused tab index (for keyboard navigation)
|
|
47
|
+
*/
|
|
48
|
+
this.focusedIndex = 0;
|
|
49
|
+
this.handleTabClick = (tab) => {
|
|
50
|
+
this.selectTab(tab);
|
|
51
|
+
};
|
|
52
|
+
this.handleKeyDown = (event) => {
|
|
53
|
+
const { tabConfigs } = this;
|
|
54
|
+
let newIndex = this.focusedIndex;
|
|
55
|
+
switch (event.key) {
|
|
56
|
+
case 'ArrowLeft':
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
newIndex = this.findNextEnabledTab(-1);
|
|
59
|
+
break;
|
|
60
|
+
case 'ArrowRight':
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
newIndex = this.findNextEnabledTab(1);
|
|
63
|
+
break;
|
|
64
|
+
case 'Home':
|
|
65
|
+
event.preventDefault();
|
|
66
|
+
newIndex = this.findFirstEnabledTab();
|
|
67
|
+
break;
|
|
68
|
+
case 'End':
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
newIndex = this.findLastEnabledTab();
|
|
71
|
+
break;
|
|
72
|
+
case 'Enter':
|
|
73
|
+
case ' ':
|
|
74
|
+
event.preventDefault();
|
|
75
|
+
if (tabConfigs[this.focusedIndex]) {
|
|
76
|
+
this.selectTab(tabConfigs[this.focusedIndex]);
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
default:
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (newIndex !== this.focusedIndex) {
|
|
83
|
+
this.focusedIndex = newIndex;
|
|
84
|
+
if (tabConfigs[newIndex]) {
|
|
85
|
+
this.selectTab(tabConfigs[newIndex]);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
11
89
|
}
|
|
12
|
-
get el() { return index.getElement(this); }
|
|
13
|
-
/**
|
|
14
|
-
* Array of tab options defining the tabs to display.
|
|
15
|
-
*/
|
|
16
|
-
tabs = [];
|
|
17
|
-
/**
|
|
18
|
-
* The value of the currently selected tab.
|
|
19
|
-
*/
|
|
20
|
-
selected;
|
|
21
|
-
/**
|
|
22
|
-
* Whether tabs should stretch to fill available width.
|
|
23
|
-
*/
|
|
24
|
-
fullWidth = true;
|
|
25
|
-
/**
|
|
26
|
-
* Whether to show labels in icon-only mode.
|
|
27
|
-
*/
|
|
28
|
-
showLabels = false;
|
|
29
|
-
/**
|
|
30
|
-
* Position of the tab bar.
|
|
31
|
-
* @allowedValues top | bottom
|
|
32
|
-
*/
|
|
33
|
-
position = 'top';
|
|
34
|
-
/**
|
|
35
|
-
* Size of the tabs.
|
|
36
|
-
* @allowedValues small | medium | large
|
|
37
|
-
*/
|
|
38
|
-
size = 'medium';
|
|
39
|
-
/**
|
|
40
|
-
* Whether to show a border below the tab bar.
|
|
41
|
-
*/
|
|
42
|
-
bordered = true;
|
|
43
|
-
/**
|
|
44
|
-
* Internal tab configurations (built from children or tabs prop)
|
|
45
|
-
*/
|
|
46
|
-
tabConfigs = [];
|
|
47
|
-
/**
|
|
48
|
-
* Whether we're using declarative mode (le-tab-panel children)
|
|
49
|
-
*/
|
|
50
|
-
isDeclarativeMode = false;
|
|
51
|
-
/**
|
|
52
|
-
* Internal state for focused tab index (for keyboard navigation)
|
|
53
|
-
*/
|
|
54
|
-
focusedIndex = 0;
|
|
55
|
-
/**
|
|
56
|
-
* Emitted when the selected tab changes.
|
|
57
|
-
*/
|
|
58
|
-
leTabChange;
|
|
59
|
-
mutationObserver;
|
|
60
90
|
selectedChanged(newValue) {
|
|
61
91
|
const index = this.tabConfigs.findIndex(t => t.value === newValue);
|
|
62
92
|
if (index >= 0) {
|
|
@@ -155,46 +185,6 @@ const LeTabBar = class {
|
|
|
155
185
|
this.selected = value;
|
|
156
186
|
this.leTabChange.emit({ value, option: tab });
|
|
157
187
|
}
|
|
158
|
-
handleTabClick = (tab) => {
|
|
159
|
-
this.selectTab(tab);
|
|
160
|
-
};
|
|
161
|
-
handleKeyDown = (event) => {
|
|
162
|
-
const { tabConfigs } = this;
|
|
163
|
-
let newIndex = this.focusedIndex;
|
|
164
|
-
switch (event.key) {
|
|
165
|
-
case 'ArrowLeft':
|
|
166
|
-
event.preventDefault();
|
|
167
|
-
newIndex = this.findNextEnabledTab(-1);
|
|
168
|
-
break;
|
|
169
|
-
case 'ArrowRight':
|
|
170
|
-
event.preventDefault();
|
|
171
|
-
newIndex = this.findNextEnabledTab(1);
|
|
172
|
-
break;
|
|
173
|
-
case 'Home':
|
|
174
|
-
event.preventDefault();
|
|
175
|
-
newIndex = this.findFirstEnabledTab();
|
|
176
|
-
break;
|
|
177
|
-
case 'End':
|
|
178
|
-
event.preventDefault();
|
|
179
|
-
newIndex = this.findLastEnabledTab();
|
|
180
|
-
break;
|
|
181
|
-
case 'Enter':
|
|
182
|
-
case ' ':
|
|
183
|
-
event.preventDefault();
|
|
184
|
-
if (tabConfigs[this.focusedIndex]) {
|
|
185
|
-
this.selectTab(tabConfigs[this.focusedIndex]);
|
|
186
|
-
}
|
|
187
|
-
return;
|
|
188
|
-
default:
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
if (newIndex !== this.focusedIndex) {
|
|
192
|
-
this.focusedIndex = newIndex;
|
|
193
|
-
if (tabConfigs[newIndex]) {
|
|
194
|
-
this.selectTab(tabConfigs[newIndex]);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
188
|
findNextEnabledTab(direction) {
|
|
199
189
|
const { tabConfigs } = this;
|
|
200
190
|
let index = this.focusedIndex;
|
|
@@ -225,12 +215,13 @@ const LeTabBar = class {
|
|
|
225
215
|
'position-top': this.position === 'top',
|
|
226
216
|
'position-bottom': this.position === 'bottom',
|
|
227
217
|
};
|
|
228
|
-
return (index.h(index.Host, { key: '
|
|
218
|
+
return (index.h(index.Host, { key: 'f652526506b36c22ce349d7a35177ded9d7bdfdb', class: classes }, index.h("le-component", { key: 'f08e832354f7175492c29aa0761a617f2440b032', component: "le-tab-bar" }, index.h("div", { key: '6bb6f659626795d8dfd2df0eccfd817a6f561223', class: "tablist", role: "tablist", "aria-orientation": "horizontal", part: "tablist", onKeyDown: this.handleKeyDown }, index.h("le-slot", { key: 'c6b64eaf7777645bb1eb760ed25c42a0d657a152', name: "", type: "slot", allowedComponents: "le-tab" }, tabConfigs.map(tab => {
|
|
229
219
|
const value = this.getTabValue(tab);
|
|
230
220
|
const isSelected = value === selected;
|
|
231
221
|
return (index.h("le-tab", { key: value, class: "tab", role: "tab", variant: "icon-only", label: tab.label, value: tab.value, icon: tab.icon, href: tab.href, selected: isSelected, disabled: tab.disabled, showLabel: this.showLabels, size: size, part: isSelected ? 'tab tab-active' : 'tab', "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": tab.disabled ? 'true' : undefined, tabIndex: -1, onClick: () => this.handleTabClick(tab) }, index.h("span", { class: "tab-label" }, tab.label)));
|
|
232
222
|
}))))));
|
|
233
223
|
}
|
|
224
|
+
get el() { return index.getElement(this); }
|
|
234
225
|
static get watchers() { return {
|
|
235
226
|
"selected": ["selectedChanged"],
|
|
236
227
|
"tabs": ["tabsChanged"]
|
|
@@ -7,44 +7,25 @@ const leTabPanelCss = () => `:host{display:contents;--le-tab-panel-radius:var(--
|
|
|
7
7
|
const LeTabPanel = class {
|
|
8
8
|
constructor(hostRef) {
|
|
9
9
|
index.registerInstance(this, hostRef);
|
|
10
|
+
/**
|
|
11
|
+
* Whether this tab is disabled.
|
|
12
|
+
*/
|
|
13
|
+
this.disabled = false;
|
|
14
|
+
/**
|
|
15
|
+
* Whether to render the panel content only when active (lazy loading).
|
|
16
|
+
* When true, content is not rendered until the tab is first selected.
|
|
17
|
+
* When false (default), content is always in DOM but hidden when inactive.
|
|
18
|
+
*/
|
|
19
|
+
this.lazy = false;
|
|
20
|
+
/**
|
|
21
|
+
* Internal: Whether this panel is currently active (set by parent le-tabs)
|
|
22
|
+
*/
|
|
23
|
+
this.active = false;
|
|
24
|
+
/**
|
|
25
|
+
* Internal: Track if panel has ever been activated (for lazy rendering)
|
|
26
|
+
*/
|
|
27
|
+
this.hasBeenActive = false;
|
|
10
28
|
}
|
|
11
|
-
get el() { return index.getElement(this); }
|
|
12
|
-
/**
|
|
13
|
-
* The label displayed in the tab button.
|
|
14
|
-
*/
|
|
15
|
-
label;
|
|
16
|
-
/**
|
|
17
|
-
* The value used to identify this tab.
|
|
18
|
-
* Defaults to the label if not provided.
|
|
19
|
-
*/
|
|
20
|
-
value;
|
|
21
|
-
/**
|
|
22
|
-
* Icon displayed at the start of the tab button.
|
|
23
|
-
* Can be an emoji, URL, or icon class.
|
|
24
|
-
*/
|
|
25
|
-
iconStart;
|
|
26
|
-
/**
|
|
27
|
-
* Icon displayed at the end of the tab button.
|
|
28
|
-
*/
|
|
29
|
-
iconEnd;
|
|
30
|
-
/**
|
|
31
|
-
* Whether this tab is disabled.
|
|
32
|
-
*/
|
|
33
|
-
disabled = false;
|
|
34
|
-
/**
|
|
35
|
-
* Whether to render the panel content only when active (lazy loading).
|
|
36
|
-
* When true, content is not rendered until the tab is first selected.
|
|
37
|
-
* When false (default), content is always in DOM but hidden when inactive.
|
|
38
|
-
*/
|
|
39
|
-
lazy = false;
|
|
40
|
-
/**
|
|
41
|
-
* Internal: Whether this panel is currently active (set by parent le-tabs)
|
|
42
|
-
*/
|
|
43
|
-
active = false;
|
|
44
|
-
/**
|
|
45
|
-
* Internal: Track if panel has ever been activated (for lazy rendering)
|
|
46
|
-
*/
|
|
47
|
-
hasBeenActive = false;
|
|
48
29
|
activeChanged(isActive) {
|
|
49
30
|
if (isActive && !this.hasBeenActive) {
|
|
50
31
|
this.hasBeenActive = true;
|
|
@@ -84,12 +65,13 @@ const LeTabPanel = class {
|
|
|
84
65
|
}
|
|
85
66
|
render() {
|
|
86
67
|
const shouldRender = this.shouldRenderContent();
|
|
87
|
-
return (index.h("le-component", { key: '
|
|
68
|
+
return (index.h("le-component", { key: '59065fc7bdcc672b1f57c4ae128de9d16a217df4', component: "le-tab-panel" }, index.h("div", { key: 'fedc22f870d44f09e377901ddb899165a732bc9a', class: {
|
|
88
69
|
'tab-panel': true,
|
|
89
70
|
'active': this.active,
|
|
90
71
|
'lazy-hidden': this.lazy && !this.active,
|
|
91
|
-
}, role: "tabpanel", "aria-hidden": !this.active ? 'true' : undefined, tabIndex: this.active ? 0 : -1 }, index.h("le-slot", { key: '
|
|
72
|
+
}, role: "tabpanel", "aria-hidden": !this.active ? 'true' : undefined, tabIndex: this.active ? 0 : -1 }, index.h("le-slot", { key: '9bfd050807c1fe1b6565d1412a7c53cff09bef60', name: "", description: "Tab panel content", type: "slot" }, shouldRender && index.h("slot", { key: 'ab002fd0fd28ece94864d2774d35170b3f506881' })))));
|
|
92
73
|
}
|
|
74
|
+
get el() { return index.getElement(this); }
|
|
93
75
|
static get watchers() { return {
|
|
94
76
|
"active": ["activeChanged"]
|
|
95
77
|
}; }
|
|
@@ -12,82 +12,58 @@ const LeTab = class {
|
|
|
12
12
|
constructor(hostRef) {
|
|
13
13
|
index.registerInstance(this, hostRef);
|
|
14
14
|
this.leClick = index.createEvent(this, "click");
|
|
15
|
+
/**
|
|
16
|
+
* Tab variant style
|
|
17
|
+
* @allowedValues solid | underlined | clear | enclosed | icon-only
|
|
18
|
+
*/
|
|
19
|
+
this.variant = 'underlined';
|
|
20
|
+
/**
|
|
21
|
+
* Position of the tabs when used within a le-tabs component
|
|
22
|
+
* @allowedValues top | bottom | start | end
|
|
23
|
+
*/
|
|
24
|
+
this.position = 'top';
|
|
25
|
+
/**
|
|
26
|
+
* Tab size
|
|
27
|
+
* @allowedValues small | medium | large
|
|
28
|
+
*/
|
|
29
|
+
this.size = 'medium';
|
|
30
|
+
/**
|
|
31
|
+
* Whether the tab can get focus
|
|
32
|
+
* needed for accessibility when used in custom tab implementations
|
|
33
|
+
*/
|
|
34
|
+
this.focusable = true;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the tab is in a selected/active state
|
|
37
|
+
*/
|
|
38
|
+
this.selected = false;
|
|
39
|
+
/**
|
|
40
|
+
* Whether the tab takes full width of its container
|
|
41
|
+
*/
|
|
42
|
+
this.fullWidth = false;
|
|
43
|
+
/**
|
|
44
|
+
* Whether to show the label when in icon-only mode
|
|
45
|
+
*/
|
|
46
|
+
this.showLabel = false;
|
|
47
|
+
/**
|
|
48
|
+
* Whether the tab is disabled
|
|
49
|
+
*/
|
|
50
|
+
this.disabled = false;
|
|
51
|
+
/**
|
|
52
|
+
* Alignment of the tab label without the end icon
|
|
53
|
+
* @allowedValues start | center | space-between | end
|
|
54
|
+
*/
|
|
55
|
+
this.align = 'center';
|
|
56
|
+
this.handleClick = (event) => {
|
|
57
|
+
// We stop the internal button click from bubbling up
|
|
58
|
+
event.stopPropagation();
|
|
59
|
+
if (this.disabled) {
|
|
60
|
+
event.preventDefault();
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
// And emit our own click event from the host element
|
|
64
|
+
this.leClick.emit(event);
|
|
65
|
+
};
|
|
15
66
|
}
|
|
16
|
-
get el() { return index.getElement(this); }
|
|
17
|
-
/**
|
|
18
|
-
* Mode of the popover should be 'default' for internal use
|
|
19
|
-
*/
|
|
20
|
-
mode;
|
|
21
|
-
/**
|
|
22
|
-
* Label if it is not provided via slot
|
|
23
|
-
*/
|
|
24
|
-
label;
|
|
25
|
-
/**
|
|
26
|
-
* Value of the tab, defaults to label if not provided
|
|
27
|
-
*/
|
|
28
|
-
value;
|
|
29
|
-
/**
|
|
30
|
-
* Tab variant style
|
|
31
|
-
* @allowedValues solid | underlined | clear | enclosed | icon-only
|
|
32
|
-
*/
|
|
33
|
-
variant = 'underlined';
|
|
34
|
-
/**
|
|
35
|
-
* Position of the tabs when used within a le-tabs component
|
|
36
|
-
* @allowedValues top | bottom | start | end
|
|
37
|
-
*/
|
|
38
|
-
position = 'top';
|
|
39
|
-
/**
|
|
40
|
-
* Tab size
|
|
41
|
-
* @allowedValues small | medium | large
|
|
42
|
-
*/
|
|
43
|
-
size = 'medium';
|
|
44
|
-
/**
|
|
45
|
-
* Whether the tab can get focus
|
|
46
|
-
* needed for accessibility when used in custom tab implementations
|
|
47
|
-
*/
|
|
48
|
-
focusable = true;
|
|
49
|
-
/**
|
|
50
|
-
* Whether the tab is in a selected/active state
|
|
51
|
-
*/
|
|
52
|
-
selected = false;
|
|
53
|
-
/**
|
|
54
|
-
* Whether the tab takes full width of its container
|
|
55
|
-
*/
|
|
56
|
-
fullWidth = false;
|
|
57
|
-
/**
|
|
58
|
-
* Icon only tab image or emoji
|
|
59
|
-
* if this prop is set, the tab will render only the icon slot
|
|
60
|
-
*/
|
|
61
|
-
icon;
|
|
62
|
-
/**
|
|
63
|
-
* Whether to show the label when in icon-only mode
|
|
64
|
-
*/
|
|
65
|
-
showLabel = false;
|
|
66
|
-
/**
|
|
67
|
-
* Start icon image or emoji
|
|
68
|
-
*/
|
|
69
|
-
iconStart;
|
|
70
|
-
/**
|
|
71
|
-
* End icon image or emoji
|
|
72
|
-
*/
|
|
73
|
-
iconEnd;
|
|
74
|
-
/**
|
|
75
|
-
* Whether the tab is disabled
|
|
76
|
-
*/
|
|
77
|
-
disabled = false;
|
|
78
|
-
/**
|
|
79
|
-
* Optional href to make the tab act as a link
|
|
80
|
-
*/
|
|
81
|
-
href;
|
|
82
|
-
/**
|
|
83
|
-
* Link target when href is set
|
|
84
|
-
*/
|
|
85
|
-
target;
|
|
86
|
-
/**
|
|
87
|
-
* Alignment of the tab label without the end icon
|
|
88
|
-
* @allowedValues start | center | space-between | end
|
|
89
|
-
*/
|
|
90
|
-
align = 'center';
|
|
91
67
|
/**
|
|
92
68
|
* Get tab configuration for parent component
|
|
93
69
|
*/
|
|
@@ -101,21 +77,6 @@ const LeTab = class {
|
|
|
101
77
|
disabled: this.disabled,
|
|
102
78
|
};
|
|
103
79
|
}
|
|
104
|
-
/**
|
|
105
|
-
* Emitted when the tab is clicked.
|
|
106
|
-
* This is a custom event that wraps the native click but ensures the target is the le-tab.
|
|
107
|
-
*/
|
|
108
|
-
leClick;
|
|
109
|
-
handleClick = (event) => {
|
|
110
|
-
// We stop the internal button click from bubbling up
|
|
111
|
-
event.stopPropagation();
|
|
112
|
-
if (this.disabled) {
|
|
113
|
-
event.preventDefault();
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
// And emit our own click event from the host element
|
|
117
|
-
this.leClick.emit(event);
|
|
118
|
-
};
|
|
119
80
|
render() {
|
|
120
81
|
const classes = utils.classnames(`variant-${this.variant}`, `size-${this.size}`, `position-${this.position}`, {
|
|
121
82
|
'selected': this.selected,
|
|
@@ -127,8 +88,9 @@ const LeTab = class {
|
|
|
127
88
|
const attrs = this.href
|
|
128
89
|
? { href: this.href, target: this.target, role: 'button' }
|
|
129
90
|
: { disabled: this.disabled };
|
|
130
|
-
return (index.h(index.Host, { key: '
|
|
91
|
+
return (index.h(index.Host, { key: '1c4f36bb0cd97c1fea114d5119425507d133cf55' }, index.h("le-component", { key: '5a8755d8cf973d2f7d9f25e8d984f4a35047c6c2', component: "le-tab" }, index.h(TagType, { key: '875b8ef5905a15e3c114001f3a7b05ce3731e037', class: utils.classnames('le-tab-container', `le-tab-align-${this.align}`, classes), part: "button", ...attrs, onClick: this.handleClick, tabIndex: this.focusable ? 0 : -1 }, this.icon !== undefined ? (index.h("div", { class: "icon-only" }, index.h("div", { class: "icon" }, this.icon), this.showLabel && index.h("span", { class: "icon-label" }, this.label))) : (index.h(index.Fragment, null, index.h("span", { class: "le-tab-label" }, this.iconStart && (index.h("span", { class: "icon-start", part: "icon-start" }, this.iconStart)), index.h("le-slot", { name: "", description: "Tab text", type: "text", class: "content", part: "content" }, index.h("slot", null, this.label))), this.iconEnd && (index.h("span", { class: "icon-end", part: "icon-end" }, this.iconEnd))))))));
|
|
131
92
|
}
|
|
93
|
+
get el() { return index.getElement(this); }
|
|
132
94
|
};
|
|
133
95
|
LeTab.style = leTabCss();
|
|
134
96
|
|