le-kit 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LLM_CONTEXT.md +95 -34
- package/package.json +3 -1
- package/readme.md +2 -0
- package/dist/cjs/index-BzadfLTc.js +0 -1864
- package/dist/cjs/index-BzadfLTc.js.map +0 -1
- package/dist/cjs/index.cjs.js +0 -124
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/le-bar_16.cjs.entry.js +0 -3397
- package/dist/cjs/le-box.cjs.entry.js +0 -136
- package/dist/cjs/le-breadcrumbs.cjs.entry.js +0 -223
- package/dist/cjs/le-card.cjs.entry.js +0 -29
- package/dist/cjs/le-code-input.cjs.entry.js +0 -147
- package/dist/cjs/le-combobox.cjs.entry.js +0 -210
- package/dist/cjs/le-header-placeholder.cjs.entry.js +0 -18
- package/dist/cjs/le-kit.cjs.js +0 -27
- package/dist/cjs/le-kit.cjs.js.map +0 -1
- package/dist/cjs/le-multiselect.cjs.entry.js +0 -284
- package/dist/cjs/le-number-input.cjs.entry.js +0 -162
- package/dist/cjs/le-round-progress.cjs.entry.js +0 -101
- package/dist/cjs/le-segmented-control.cjs.entry.js +0 -235
- package/dist/cjs/le-side-panel-toggle.cjs.entry.js +0 -213
- package/dist/cjs/le-side-panel.cjs.entry.js +0 -539
- package/dist/cjs/le-stack.cjs.entry.js +0 -122
- package/dist/cjs/le-tab-bar.cjs.entry.js +0 -233
- package/dist/cjs/le-tab-panel.cjs.entry.js +0 -82
- package/dist/cjs/le-tab.cjs.entry.js +0 -98
- package/dist/cjs/le-tabs.cjs.entry.js +0 -297
- package/dist/cjs/le-tag.cjs.entry.js +0 -51
- package/dist/cjs/le-text.cjs.entry.js +0 -318
- package/dist/cjs/le-turntable.cjs.entry.js +0 -131
- package/dist/cjs/loader.cjs.js +0 -15
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/utils-Dxx9WhWK.js +0 -152
- package/dist/cjs/utils-Dxx9WhWK.js.map +0 -1
- package/dist/collection/collection-manifest.json +0 -48
- package/dist/collection/components/le-bar/le-bar.css +0 -255
- package/dist/collection/components/le-bar/le-bar.js +0 -673
- package/dist/collection/components/le-bar/le-bar.js.map +0 -1
- package/dist/collection/components/le-box/le-box.css +0 -37
- package/dist/collection/components/le-box/le-box.js +0 -567
- package/dist/collection/components/le-box/le-box.js.map +0 -1
- package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.css +0 -72
- package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.js +0 -372
- package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.js.map +0 -1
- package/dist/collection/components/le-button/le-button.css +0 -290
- package/dist/collection/components/le-button/le-button.js +0 -431
- package/dist/collection/components/le-button/le-button.js.map +0 -1
- package/dist/collection/components/le-card/le-card.css +0 -74
- package/dist/collection/components/le-card/le-card.js +0 -103
- package/dist/collection/components/le-card/le-card.js.map +0 -1
- package/dist/collection/components/le-checkbox/le-checkbox.css +0 -93
- package/dist/collection/components/le-checkbox/le-checkbox.js +0 -177
- package/dist/collection/components/le-checkbox/le-checkbox.js.map +0 -1
- package/dist/collection/components/le-code-input/le-code-input.css +0 -106
- package/dist/collection/components/le-code-input/le-code-input.js +0 -433
- package/dist/collection/components/le-code-input/le-code-input.js.map +0 -1
- package/dist/collection/components/le-collapse/le-collapse.css +0 -31
- package/dist/collection/components/le-collapse/le-collapse.js +0 -185
- package/dist/collection/components/le-collapse/le-collapse.js.map +0 -1
- package/dist/collection/components/le-combobox/le-combobox.css +0 -144
- package/dist/collection/components/le-combobox/le-combobox.js +0 -633
- package/dist/collection/components/le-combobox/le-combobox.js.map +0 -1
- package/dist/collection/components/le-component/le-component.css +0 -189
- package/dist/collection/components/le-component/le-component.js +0 -343
- package/dist/collection/components/le-component/le-component.js.map +0 -1
- package/dist/collection/components/le-current-heading/le-current-heading.css +0 -13
- package/dist/collection/components/le-current-heading/le-current-heading.js +0 -131
- package/dist/collection/components/le-current-heading/le-current-heading.js.map +0 -1
- package/dist/collection/components/le-dropdown-base/le-dropdown-base.css +0 -167
- package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +0 -735
- package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +0 -1
- package/dist/collection/components/le-header/le-header.css +0 -120
- package/dist/collection/components/le-header/le-header.js +0 -485
- package/dist/collection/components/le-header/le-header.js.map +0 -1
- package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +0 -21
- package/dist/collection/components/le-header-placeholder/le-header-placeholder.js.map +0 -1
- package/dist/collection/components/le-icon/le-icon.css +0 -13
- package/dist/collection/components/le-icon/le-icon.js +0 -185
- package/dist/collection/components/le-icon/le-icon.js.map +0 -1
- package/dist/collection/components/le-multiselect/le-multiselect.css +0 -163
- package/dist/collection/components/le-multiselect/le-multiselect.js +0 -713
- package/dist/collection/components/le-multiselect/le-multiselect.js.map +0 -1
- package/dist/collection/components/le-navigation/le-navigation.css +0 -330
- package/dist/collection/components/le-navigation/le-navigation.js +0 -690
- package/dist/collection/components/le-navigation/le-navigation.js.map +0 -1
- package/dist/collection/components/le-number-input/le-number-input.css +0 -135
- package/dist/collection/components/le-number-input/le-number-input.js +0 -476
- package/dist/collection/components/le-number-input/le-number-input.js.map +0 -1
- package/dist/collection/components/le-popover/le-popover.css +0 -164
- package/dist/collection/components/le-popover/le-popover.js +0 -828
- package/dist/collection/components/le-popover/le-popover.js.map +0 -1
- package/dist/collection/components/le-popup/le-popup.api.js +0 -102
- package/dist/collection/components/le-popup/le-popup.api.js.map +0 -1
- package/dist/collection/components/le-popup/le-popup.css +0 -222
- package/dist/collection/components/le-popup/le-popup.js +0 -600
- package/dist/collection/components/le-popup/le-popup.js.map +0 -1
- package/dist/collection/components/le-round-progress/le-round-progress.css +0 -34
- package/dist/collection/components/le-round-progress/le-round-progress.js +0 -179
- package/dist/collection/components/le-round-progress/le-round-progress.js.map +0 -1
- package/dist/collection/components/le-scroll-progress/le-scroll-progress.css +0 -29
- package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +0 -185
- package/dist/collection/components/le-scroll-progress/le-scroll-progress.js.map +0 -1
- package/dist/collection/components/le-segmented-control/le-segmented-control.css +0 -78
- package/dist/collection/components/le-segmented-control/le-segmented-control.js +0 -436
- package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +0 -1
- package/dist/collection/components/le-select/le-select.css +0 -121
- package/dist/collection/components/le-select/le-select.js +0 -556
- package/dist/collection/components/le-select/le-select.js.map +0 -1
- package/dist/collection/components/le-side-panel/le-side-panel.css +0 -202
- package/dist/collection/components/le-side-panel/le-side-panel.js +0 -948
- package/dist/collection/components/le-side-panel/le-side-panel.js.map +0 -1
- package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +0 -595
- package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +0 -1
- package/dist/collection/components/le-slot/le-slot.default.css +0 -222
- package/dist/collection/components/le-slot/le-slot.js +0 -590
- package/dist/collection/components/le-slot/le-slot.js.map +0 -1
- package/dist/collection/components/le-stack/le-stack.default.css +0 -37
- package/dist/collection/components/le-stack/le-stack.js +0 -377
- package/dist/collection/components/le-stack/le-stack.js.map +0 -1
- package/dist/collection/components/le-string-input/le-string-input.css +0 -83
- package/dist/collection/components/le-string-input/le-string-input.js +0 -370
- package/dist/collection/components/le-string-input/le-string-input.js.map +0 -1
- package/dist/collection/components/le-tab/le-tab.css +0 -289
- package/dist/collection/components/le-tab/le-tab.js +0 -528
- package/dist/collection/components/le-tab/le-tab.js.map +0 -1
- package/dist/collection/components/le-tab-bar/le-tab-bar.css +0 -89
- package/dist/collection/components/le-tab-bar/le-tab-bar.js +0 -459
- package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +0 -1
- package/dist/collection/components/le-tab-panel/le-tab-panel.css +0 -30
- package/dist/collection/components/le-tab-panel/le-tab-panel.js +0 -285
- package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +0 -1
- package/dist/collection/components/le-tabs/le-tabs.css +0 -146
- package/dist/collection/components/le-tabs/le-tabs.js +0 -579
- package/dist/collection/components/le-tabs/le-tabs.js.map +0 -1
- package/dist/collection/components/le-tag/le-tag.css +0 -139
- package/dist/collection/components/le-tag/le-tag.js +0 -251
- package/dist/collection/components/le-tag/le-tag.js.map +0 -1
- package/dist/collection/components/le-text/le-text.css +0 -169
- package/dist/collection/components/le-text/le-text.js +0 -459
- package/dist/collection/components/le-text/le-text.js.map +0 -1
- package/dist/collection/components/le-turntable/le-turntable.css +0 -10
- package/dist/collection/components/le-turntable/le-turntable.js +0 -202
- package/dist/collection/components/le-turntable/le-turntable.js.map +0 -1
- package/dist/collection/dist/components/assets/custom-elements.json +0 -12263
- package/dist/collection/dist/components/assets/icons/arrow-left.json +0 -21
- package/dist/collection/dist/components/assets/icons/arrow-right.json +0 -21
- package/dist/collection/dist/components/assets/icons/check.json +0 -12
- package/dist/collection/dist/components/assets/icons/chevron-down.json +0 -12
- package/dist/collection/dist/components/assets/icons/chevron-left.json +0 -12
- package/dist/collection/dist/components/assets/icons/chevron-right.json +0 -12
- package/dist/collection/dist/components/assets/icons/chevron-up.json +0 -12
- package/dist/collection/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
- package/dist/collection/dist/components/assets/icons/ellipsis-vertical.json +0 -14
- package/dist/collection/dist/components/assets/icons/hamburger.json +0 -14
- package/dist/collection/dist/components/assets/icons/side-panel.json +0 -61
- package/dist/collection/dist/themes/base.css +0 -89
- package/dist/collection/dist/themes/dark.css +0 -104
- package/dist/collection/dist/themes/default.css +0 -112
- package/dist/collection/dist/themes/gradient.css +0 -104
- package/dist/collection/dist/themes/index.css +0 -76
- package/dist/collection/dist/themes/minimal.css +0 -104
- package/dist/collection/dist/themes/warm.css +0 -104
- package/dist/collection/global/app.js +0 -177
- package/dist/collection/global/app.js.map +0 -1
- package/dist/collection/index.js +0 -16
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/types/blocks.js +0 -115
- package/dist/collection/types/blocks.js.map +0 -1
- package/dist/collection/types/options.js +0 -2
- package/dist/collection/types/options.js.map +0 -1
- package/dist/collection/utils/utils.js +0 -141
- package/dist/collection/utils/utils.js.map +0 -1
- package/dist/components/app.js +0 -180
- package/dist/components/app.js.map +0 -1
- package/dist/components/assets/custom-elements.json +0 -12263
- package/dist/components/assets/icons/arrow-left.json +0 -21
- package/dist/components/assets/icons/arrow-right.json +0 -21
- package/dist/components/assets/icons/check.json +0 -12
- package/dist/components/assets/icons/chevron-down.json +0 -12
- package/dist/components/assets/icons/chevron-left.json +0 -12
- package/dist/components/assets/icons/chevron-right.json +0 -12
- package/dist/components/assets/icons/chevron-up.json +0 -12
- package/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
- package/dist/components/assets/icons/ellipsis-vertical.json +0 -14
- package/dist/components/assets/icons/hamburger.json +0 -14
- package/dist/components/assets/icons/side-panel.json +0 -61
- package/dist/components/index.d.ts +0 -33
- package/dist/components/index.js +0 -12
- package/dist/components/index.js.map +0 -1
- package/dist/components/le-bar.d.ts +0 -11
- package/dist/components/le-bar.js +0 -9
- package/dist/components/le-bar.js.map +0 -1
- package/dist/components/le-bar2.js +0 -498
- package/dist/components/le-bar2.js.map +0 -1
- package/dist/components/le-box.d.ts +0 -11
- package/dist/components/le-box.js +0 -225
- package/dist/components/le-box.js.map +0 -1
- package/dist/components/le-breadcrumbs.d.ts +0 -11
- package/dist/components/le-breadcrumbs.js +0 -327
- package/dist/components/le-breadcrumbs.js.map +0 -1
- package/dist/components/le-button.d.ts +0 -11
- package/dist/components/le-button.js +0 -9
- package/dist/components/le-button.js.map +0 -1
- package/dist/components/le-button2.js +0 -1577
- package/dist/components/le-button2.js.map +0 -1
- package/dist/components/le-card.d.ts +0 -11
- package/dist/components/le-card.js +0 -100
- package/dist/components/le-card.js.map +0 -1
- package/dist/components/le-checkbox.d.ts +0 -11
- package/dist/components/le-checkbox.js +0 -9
- package/dist/components/le-checkbox.js.map +0 -1
- package/dist/components/le-code-input.d.ts +0 -11
- package/dist/components/le-code-input.js +0 -231
- package/dist/components/le-code-input.js.map +0 -1
- package/dist/components/le-collapse.d.ts +0 -11
- package/dist/components/le-collapse.js +0 -9
- package/dist/components/le-collapse.js.map +0 -1
- package/dist/components/le-collapse2.js +0 -138
- package/dist/components/le-collapse2.js.map +0 -1
- package/dist/components/le-combobox.d.ts +0 -11
- package/dist/components/le-combobox.js +0 -299
- package/dist/components/le-combobox.js.map +0 -1
- package/dist/components/le-component.d.ts +0 -11
- package/dist/components/le-component.js +0 -9
- package/dist/components/le-component.js.map +0 -1
- package/dist/components/le-current-heading.d.ts +0 -11
- package/dist/components/le-current-heading.js +0 -93
- package/dist/components/le-current-heading.js.map +0 -1
- package/dist/components/le-dropdown-base.d.ts +0 -11
- package/dist/components/le-dropdown-base.js +0 -9
- package/dist/components/le-dropdown-base.js.map +0 -1
- package/dist/components/le-dropdown-base2.js +0 -366
- package/dist/components/le-dropdown-base2.js.map +0 -1
- package/dist/components/le-header-placeholder.d.ts +0 -11
- package/dist/components/le-header-placeholder.js +0 -37
- package/dist/components/le-header-placeholder.js.map +0 -1
- package/dist/components/le-header.d.ts +0 -11
- package/dist/components/le-header.js +0 -325
- package/dist/components/le-header.js.map +0 -1
- package/dist/components/le-icon.d.ts +0 -11
- package/dist/components/le-icon.js +0 -9
- package/dist/components/le-icon.js.map +0 -1
- package/dist/components/le-icon2.js +0 -149
- package/dist/components/le-icon2.js.map +0 -1
- package/dist/components/le-multiselect.d.ts +0 -11
- package/dist/components/le-multiselect.js +0 -383
- package/dist/components/le-multiselect.js.map +0 -1
- package/dist/components/le-navigation.d.ts +0 -11
- package/dist/components/le-navigation.js +0 -9
- package/dist/components/le-navigation.js.map +0 -1
- package/dist/components/le-navigation2.js +0 -488
- package/dist/components/le-navigation2.js.map +0 -1
- package/dist/components/le-number-input.d.ts +0 -11
- package/dist/components/le-number-input.js +0 -248
- package/dist/components/le-number-input.js.map +0 -1
- package/dist/components/le-popover.d.ts +0 -11
- package/dist/components/le-popover.js +0 -9
- package/dist/components/le-popover.js.map +0 -1
- package/dist/components/le-popover2.js +0 -642
- package/dist/components/le-popover2.js.map +0 -1
- package/dist/components/le-popup.api.js +0 -106
- package/dist/components/le-popup.api.js.map +0 -1
- package/dist/components/le-popup.d.ts +0 -11
- package/dist/components/le-popup.js +0 -9
- package/dist/components/le-popup.js.map +0 -1
- package/dist/components/le-round-progress.d.ts +0 -11
- package/dist/components/le-round-progress.js +0 -130
- package/dist/components/le-round-progress.js.map +0 -1
- package/dist/components/le-scroll-progress.d.ts +0 -11
- package/dist/components/le-scroll-progress.js +0 -140
- package/dist/components/le-scroll-progress.js.map +0 -1
- package/dist/components/le-segmented-control.d.ts +0 -11
- package/dist/components/le-segmented-control.js +0 -321
- package/dist/components/le-segmented-control.js.map +0 -1
- package/dist/components/le-select.d.ts +0 -11
- package/dist/components/le-select.js +0 -9
- package/dist/components/le-select.js.map +0 -1
- package/dist/components/le-side-panel-toggle.d.ts +0 -11
- package/dist/components/le-side-panel-toggle.js +0 -9
- package/dist/components/le-side-panel-toggle.js.map +0 -1
- package/dist/components/le-side-panel-toggle2.js +0 -295
- package/dist/components/le-side-panel-toggle2.js.map +0 -1
- package/dist/components/le-side-panel.d.ts +0 -11
- package/dist/components/le-side-panel.js +0 -654
- package/dist/components/le-side-panel.js.map +0 -1
- package/dist/components/le-slot.d.ts +0 -11
- package/dist/components/le-slot.js +0 -9
- package/dist/components/le-slot.js.map +0 -1
- package/dist/components/le-stack.d.ts +0 -11
- package/dist/components/le-stack.js +0 -202
- package/dist/components/le-stack.js.map +0 -1
- package/dist/components/le-string-input.d.ts +0 -11
- package/dist/components/le-string-input.js +0 -9
- package/dist/components/le-string-input.js.map +0 -1
- package/dist/components/le-tab-bar.d.ts +0 -11
- package/dist/components/le-tab-bar.js +0 -321
- package/dist/components/le-tab-bar.js.map +0 -1
- package/dist/components/le-tab-panel.d.ts +0 -11
- package/dist/components/le-tab-panel.js +0 -164
- package/dist/components/le-tab-panel.js.map +0 -1
- package/dist/components/le-tab.d.ts +0 -11
- package/dist/components/le-tab.js +0 -9
- package/dist/components/le-tab.js.map +0 -1
- package/dist/components/le-tab2.js +0 -182
- package/dist/components/le-tab2.js.map +0 -1
- package/dist/components/le-tabs.d.ts +0 -11
- package/dist/components/le-tabs.js +0 -387
- package/dist/components/le-tabs.js.map +0 -1
- package/dist/components/le-tag.d.ts +0 -11
- package/dist/components/le-tag.js +0 -9
- package/dist/components/le-tag.js.map +0 -1
- package/dist/components/le-tag2.js +0 -124
- package/dist/components/le-tag2.js.map +0 -1
- package/dist/components/le-text.d.ts +0 -11
- package/dist/components/le-text.js +0 -398
- package/dist/components/le-text.js.map +0 -1
- package/dist/components/le-turntable.d.ts +0 -11
- package/dist/components/le-turntable.js +0 -156
- package/dist/components/le-turntable.js.map +0 -1
- package/dist/components/utils.js +0 -146
- package/dist/components/utils.js.map +0 -1
- package/dist/docs.d.ts +0 -443
- package/dist/docs.json +0 -14581
- package/dist/esm/index-DFTm5BqT.js +0 -1844
- package/dist/esm/index-DFTm5BqT.js.map +0 -1
- package/dist/esm/index.js +0 -109
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/le-bar_16.entry.js +0 -3380
- package/dist/esm/le-box.entry.js +0 -134
- package/dist/esm/le-box.entry.js.map +0 -1
- package/dist/esm/le-breadcrumbs.entry.js +0 -221
- package/dist/esm/le-breadcrumbs.entry.js.map +0 -1
- package/dist/esm/le-card.entry.js +0 -27
- package/dist/esm/le-card.entry.js.map +0 -1
- package/dist/esm/le-code-input.entry.js +0 -145
- package/dist/esm/le-code-input.entry.js.map +0 -1
- package/dist/esm/le-combobox.entry.js +0 -208
- package/dist/esm/le-combobox.entry.js.map +0 -1
- package/dist/esm/le-header-placeholder.entry.js +0 -16
- package/dist/esm/le-header-placeholder.entry.js.map +0 -1
- package/dist/esm/le-kit.js +0 -23
- package/dist/esm/le-kit.js.map +0 -1
- package/dist/esm/le-multiselect.entry.js +0 -282
- package/dist/esm/le-multiselect.entry.js.map +0 -1
- package/dist/esm/le-number-input.entry.js +0 -160
- package/dist/esm/le-number-input.entry.js.map +0 -1
- package/dist/esm/le-round-progress.entry.js +0 -99
- package/dist/esm/le-round-progress.entry.js.map +0 -1
- package/dist/esm/le-segmented-control.entry.js +0 -233
- package/dist/esm/le-segmented-control.entry.js.map +0 -1
- package/dist/esm/le-side-panel-toggle.entry.js +0 -211
- package/dist/esm/le-side-panel-toggle.entry.js.map +0 -1
- package/dist/esm/le-side-panel.entry.js +0 -537
- package/dist/esm/le-side-panel.entry.js.map +0 -1
- package/dist/esm/le-stack.entry.js +0 -120
- package/dist/esm/le-stack.entry.js.map +0 -1
- package/dist/esm/le-tab-bar.entry.js +0 -231
- package/dist/esm/le-tab-bar.entry.js.map +0 -1
- package/dist/esm/le-tab-panel.entry.js +0 -80
- package/dist/esm/le-tab-panel.entry.js.map +0 -1
- package/dist/esm/le-tab.entry.js +0 -96
- package/dist/esm/le-tab.entry.js.map +0 -1
- package/dist/esm/le-tabs.entry.js +0 -295
- package/dist/esm/le-tabs.entry.js.map +0 -1
- package/dist/esm/le-tag.entry.js +0 -49
- package/dist/esm/le-tag.entry.js.map +0 -1
- package/dist/esm/le-text.entry.js +0 -316
- package/dist/esm/le-text.entry.js.map +0 -1
- package/dist/esm/le-turntable.entry.js +0 -129
- package/dist/esm/le-turntable.entry.js.map +0 -1
- package/dist/esm/loader.js +0 -13
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/utils-DZYCZLrF.js +0 -146
- package/dist/esm/utils-DZYCZLrF.js.map +0 -1
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/le-kit/dist/components/assets/custom-elements.json +0 -12263
- package/dist/le-kit/dist/components/assets/icons/arrow-left.json +0 -21
- package/dist/le-kit/dist/components/assets/icons/arrow-right.json +0 -21
- package/dist/le-kit/dist/components/assets/icons/check.json +0 -12
- package/dist/le-kit/dist/components/assets/icons/chevron-down.json +0 -12
- package/dist/le-kit/dist/components/assets/icons/chevron-left.json +0 -12
- package/dist/le-kit/dist/components/assets/icons/chevron-right.json +0 -12
- package/dist/le-kit/dist/components/assets/icons/chevron-up.json +0 -12
- package/dist/le-kit/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
- package/dist/le-kit/dist/components/assets/icons/ellipsis-vertical.json +0 -14
- package/dist/le-kit/dist/components/assets/icons/hamburger.json +0 -14
- package/dist/le-kit/dist/components/assets/icons/side-panel.json +0 -61
- package/dist/le-kit/dist/themes/base.css +0 -89
- package/dist/le-kit/dist/themes/dark.css +0 -104
- package/dist/le-kit/dist/themes/default.css +0 -112
- package/dist/le-kit/dist/themes/gradient.css +0 -104
- package/dist/le-kit/dist/themes/index.css +0 -76
- package/dist/le-kit/dist/themes/minimal.css +0 -104
- package/dist/le-kit/dist/themes/warm.css +0 -104
- package/dist/le-kit/index.esm.js +0 -2
- package/dist/le-kit/index.esm.js.map +0 -1
- package/dist/le-kit/le-kit.css +0 -1
- package/dist/le-kit/le-kit.esm.js +0 -2
- package/dist/le-kit/le-kit.esm.js.map +0 -1
- package/dist/le-kit/loader.esm.js.map +0 -1
- package/dist/le-kit/p-3067b18f.entry.js +0 -2
- package/dist/le-kit/p-3067b18f.entry.js.map +0 -1
- package/dist/le-kit/p-34c4d97d.entry.js +0 -2
- package/dist/le-kit/p-34c4d97d.entry.js.map +0 -1
- package/dist/le-kit/p-45182541.entry.js +0 -2
- package/dist/le-kit/p-45182541.entry.js.map +0 -1
- package/dist/le-kit/p-52a41c96.entry.js +0 -2
- package/dist/le-kit/p-52a41c96.entry.js.map +0 -1
- package/dist/le-kit/p-55fb5dd2.entry.js +0 -2
- package/dist/le-kit/p-55fb5dd2.entry.js.map +0 -1
- package/dist/le-kit/p-649025f4.entry.js +0 -2
- package/dist/le-kit/p-649025f4.entry.js.map +0 -1
- package/dist/le-kit/p-67930309.entry.js +0 -2
- package/dist/le-kit/p-67930309.entry.js.map +0 -1
- package/dist/le-kit/p-6d222705.entry.js +0 -2
- package/dist/le-kit/p-6d222705.entry.js.map +0 -1
- package/dist/le-kit/p-8049e0c2.entry.js +0 -2
- package/dist/le-kit/p-8049e0c2.entry.js.map +0 -1
- package/dist/le-kit/p-884f57bd.entry.js +0 -2
- package/dist/le-kit/p-884f57bd.entry.js.map +0 -1
- package/dist/le-kit/p-88c70f9d.entry.js +0 -2
- package/dist/le-kit/p-88c70f9d.entry.js.map +0 -1
- package/dist/le-kit/p-96610729.entry.js +0 -2
- package/dist/le-kit/p-96610729.entry.js.map +0 -1
- package/dist/le-kit/p-D8RYDS9p.js +0 -2
- package/dist/le-kit/p-D8RYDS9p.js.map +0 -1
- package/dist/le-kit/p-DFTm5BqT.js +0 -3
- package/dist/le-kit/p-DFTm5BqT.js.map +0 -1
- package/dist/le-kit/p-a34054e0.entry.js +0 -2
- package/dist/le-kit/p-a34054e0.entry.js.map +0 -1
- package/dist/le-kit/p-a388e46a.entry.js +0 -2
- package/dist/le-kit/p-a388e46a.entry.js.map +0 -1
- package/dist/le-kit/p-c0c53650.entry.js +0 -2
- package/dist/le-kit/p-c0c53650.entry.js.map +0 -1
- package/dist/le-kit/p-cbf17514.entry.js +0 -2
- package/dist/le-kit/p-cbf17514.entry.js.map +0 -1
- package/dist/le-kit/p-d934de74.entry.js +0 -2
- package/dist/le-kit/p-d934de74.entry.js.map +0 -1
- package/dist/le-kit/p-de72c8b5.entry.js +0 -2
- package/dist/le-kit/p-de72c8b5.entry.js.map +0 -1
- package/dist/le-kit/p-e3dd0f2a.entry.js +0 -2
- package/dist/le-kit/p-e3dd0f2a.entry.js.map +0 -1
- package/dist/le-kit/p-ee170967.entry.js +0 -2
- package/dist/le-kit/p-ee170967.entry.js.map +0 -1
- package/dist/le-kit/p-eedb2f75.entry.js +0 -2
- package/dist/le-kit/p-eedb2f75.entry.js.map +0 -1
- package/dist/themes/base.css +0 -89
- package/dist/themes/dark.css +0 -104
- package/dist/themes/default.css +0 -112
- package/dist/themes/gradient.css +0 -104
- package/dist/themes/index.css +0 -76
- package/dist/themes/minimal.css +0 -104
- package/dist/themes/warm.css +0 -104
- package/dist/types/components/le-bar/le-bar.d.ts +0 -131
- package/dist/types/components/le-box/le-box.d.ts +0 -111
- package/dist/types/components/le-breadcrumbs/le-breadcrumbs.d.ts +0 -57
- package/dist/types/components/le-button/le-button.d.ts +0 -93
- package/dist/types/components/le-card/le-card.d.ts +0 -37
- package/dist/types/components/le-checkbox/le-checkbox.d.ts +0 -46
- package/dist/types/components/le-code-input/le-code-input.d.ts +0 -102
- package/dist/types/components/le-collapse/le-collapse.d.ts +0 -43
- package/dist/types/components/le-combobox/le-combobox.d.ts +0 -128
- package/dist/types/components/le-component/le-component.d.ts +0 -115
- package/dist/types/components/le-current-heading/le-current-heading.d.ts +0 -25
- package/dist/types/components/le-dropdown-base/le-dropdown-base.d.ts +0 -118
- package/dist/types/components/le-header/le-header.d.ts +0 -115
- package/dist/types/components/le-header-placeholder/le-header-placeholder.d.ts +0 -13
- package/dist/types/components/le-icon/le-icon.d.ts +0 -28
- package/dist/types/components/le-multiselect/le-multiselect.d.ts +0 -143
- package/dist/types/components/le-navigation/le-navigation.d.ts +0 -125
- package/dist/types/components/le-number-input/le-number-input.d.ts +0 -106
- package/dist/types/components/le-popover/le-popover.d.ts +0 -129
- package/dist/types/components/le-popup/le-popup.api.d.ts +0 -73
- package/dist/types/components/le-popup/le-popup.d.ts +0 -127
- package/dist/types/components/le-round-progress/le-round-progress.d.ts +0 -37
- package/dist/types/components/le-scroll-progress/le-scroll-progress.d.ts +0 -40
- package/dist/types/components/le-segmented-control/le-segmented-control.d.ts +0 -82
- package/dist/types/components/le-select/le-select.d.ts +0 -125
- package/dist/types/components/le-side-panel/le-side-panel.d.ts +0 -102
- package/dist/types/components/le-side-panel-toggle/le-side-panel-toggle.d.ts +0 -48
- package/dist/types/components/le-slot/le-slot.d.ts +0 -149
- package/dist/types/components/le-stack/le-stack.d.ts +0 -73
- package/dist/types/components/le-string-input/le-string-input.d.ts +0 -91
- package/dist/types/components/le-tab/le-tab.d.ts +0 -116
- package/dist/types/components/le-tab-bar/le-tab-bar.d.ts +0 -88
- package/dist/types/components/le-tab-panel/le-tab-panel.d.ts +0 -75
- package/dist/types/components/le-tabs/le-tabs.d.ts +0 -108
- package/dist/types/components/le-tag/le-tag.d.ts +0 -78
- package/dist/types/components/le-text/le-text.d.ts +0 -141
- package/dist/types/components/le-turntable/le-turntable.d.ts +0 -55
- package/dist/types/components.d.ts +0 -5800
- package/dist/types/global/app.d.ts +0 -96
- package/dist/types/index.d.ts +0 -16
- package/dist/types/stencil-public-runtime.d.ts +0 -1799
- package/dist/types/types/blocks.d.ts +0 -136
- package/dist/types/types/options.d.ts +0 -143
- package/dist/types/utils/utils.d.ts +0 -54
- package/loader/cdn.js +0 -1
- package/loader/index.cjs.js +0 -1
- package/loader/index.d.ts +0 -24
- package/loader/index.es2017.js +0 -1
- package/loader/index.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"le-tab.entry.js","sources":["src/components/le-tab/le-tab.css?tag=le-tab&encapsulation=shadow","src/components/le-tab/le-tab.tsx"],"sourcesContent":["/**\n * Default mode styles for le-button\n * Uses global design tokens with component-specific overrides\n */\n:host {\n display: inline-block;\n \n /* Component-specific tokens */\n --le-tab-border-radius: var(--le-radius-md);\n --le-tab-padding-x: var(--le-spacing-4);\n --le-tab-padding-y: var(--le-spacing-2);\n --le-tab-padding: var(--le-tab-padding-y) var(--le-tab-padding-x);\n --le-tab-small-padding: 0.25rem;\n --le-tab-font-size: var(--le-font-size-md);\n --le-tab-font-weight: var(--le-font-weight-medium);\n --le-tab-transition: var(--le-transition-fast);\n --le-transition-easing: ease-in-out;\n --le-tab-icon-aspect-ratio: 1;\n --le-tab-icon-only-aspect-ratio: 2.5;\n --le-tab-color: var(--le-color-text-primary);\n --le-selected-tab-color: var(--le-color-primary);\n --le-selected-icon-only-tab-background: color-mix(in srgb, var(--_tab-bg) 10%, transparent);\n \n /* Internal state variables - set by color classes */\n --_tab-bg: var(--le-color-primary);\n --_tab-bg-hover: var(--le-color-primary-dark);\n --_tab-bg-system: var(--le-color-black);\n --_tab-color: var(--le-tab-color);\n --_tab-border-color: var(--le-color-primary);\n}\n\n:host([full-width]) {\n display: block;\n width: 100%;\n}\n\n.le-tab-container {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: var(--le-spacing-3);\n width: 100%;\n padding: var(--le-tab-padding);\n color: var(--_tab-color);\n font-family: var(--le-font-family-base);\n font-size: var(--le-tab-font-size);\n font-weight: var(--le-tab-font-weight);\n line-height: var(--le-line-height-tight);\n text-decoration: none;\n cursor: pointer;\n transition: \n background-color var(--le-tab-transition) var(--le-transition-easing),\n border-color var(--le-tab-transition) var(--le-transition-easing),\n box-shadow var(--le-tab-transition) var(--le-transition-easing),\n transform var(--le-tab-transition) var(--le-transition-easing);\n}\n\n.le-tab-container:hover:not(:disabled) {\n color: var(--le-selected-tab-color);\n}\n\n.le-tab-container:focus-visible {\n outline: none;\n}\n\n.le-tab-container:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.le-tab-label {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: var(--le-spacing-2);\n}\n\n/* ===========================================\n * STYLE VARIANTS\n * =========================================== */\n\n/* Underlined (default for tabs), depends on the position (top, bottom, start, end) */\n.le-tab-container.variant-underlined {\n background: transparent;\n border: 2px solid transparent;\n border-radius: 0;\n}\n.le-tab-container.variant-underlined.position-start,\n.le-tab-container.variant-underlined.position-end {\n border-block-width: 0;\n}\n.le-tab-container.variant-underlined.position-start {\n padding-inline-start: 0;\n}\n.le-tab-container.variant-underlined.position-top,\n.le-tab-container.variant-underlined.position-bottom {\n border-inline-width: 0;\n}\n.le-tab-container.variant-underlined.position-start.selected {\n border-inline-end-color: var(--_tab-border-color);\n}\n.le-tab-container.variant-underlined.position-end.selected {\n border-inline-start-color: var(--_tab-border-color);\n}\n.le-tab-container.variant-underlined.position-top.selected {\n border-bottom-color: var(--_tab-border-color);\n}\n.le-tab-container.variant-underlined.position-bottom.selected {\n border-top-color: var(--_tab-border-color);\n}\n\n/* Solid (default) - already styled by color classes */\n.le-tab-container.variant-solid {\n background: transparent;\n border-radius: var(--le-tab-border-radius);\n border: none;\n}\n.le-tab-container.variant-solid.selected {\n background: var(--_tab-bg);\n color: var(--le-color-on-primary);\n}\n\n/* Pills */\n.le-tab-container.variant-pills {\n background: transparent;\n border-radius: var(--le-radius-full);\n border: none;\n}\n.le-tab-container.variant-pills.selected {\n background: var(--_tab-bg);\n color: var(--le-color-on-primary);\n}\n\n/* Enclosed */\n.le-tab-container.variant-enclosed {\n padding-block: var(--le-spacing-1);\n background: transparent;\n border-radius: var(--le-tab-border-radius);\n border: none;\n}\n.le-tab-container.variant-enclosed.selected {\n background: var(--_tab-bg);\n color: var(--le-color-on-primary);\n}\n\n/* Icon only (used in le-tab-bar - mobile navigation) */\n.le-tab-container.variant-icon-only {\n border: none;\n padding: 0;\n background: transparent;\n color: var(--_tab-color);\n}\n.le-tab-container.variant-icon-only .icon-only {\n flex-direction: column;\n}\n.le-tab-container.variant-icon-only .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: var(--le-font-size-3xl);\n aspect-ratio: var(--le-tab-icon-only-aspect-ratio);\n font-size: var(--le-font-size-2xl);\n border-radius: var(--le-radius-full);\n}\n.le-tab-container.variant-icon-only .icon-label {\n margin-top: var(--le-spacing-1);\n font-size: var(--le-font-size-2xs);\n}\n\n.le-tab-container.variant-icon-only.selected {\n color: var(--le-selected-tab-color);\n}\n.le-tab-container.variant-icon-only.selected .icon {\n background: var(--le-selected-icon-only-tab-background);\n}\n.le-tab-container.variant-icon-only.size-small {\n padding: var(--le-tab-small-padding, 0.25rem);\n}\n.le-tab-container.variant-icon-only .content {\n display: none;\n}\n\n\n/* ===========================================\n * SIZES\n * =========================================== */\n.le-tab-container.size-small {\n --le-tab-padding-x: 0.4rem;\n --le-tab-padding-y: 0.3rem;\n --le-tab-padding-top: 0.35rem;\n --le-tab-font-size: var(--le-tab-small-font-size, var(--le-font-size-xs));\n}\n\n.le-tab-container.size-large {\n --le-tab-padding-x: 0.9rem;\n --le-tab-padding-y: 0.6rem;\n --le-tab-font-size: var(--le-font-size-xl);\n}\n\n/* ===========================================\n * STATES & MODIFIERS\n * =========================================== */\n\n/* Full width */\n.le-tab-container.full-width {\n display: block;\n width: 100%;\n}\n\n.le-tab-container.variant-underlined.selected,\n.le-tab-container.variant-clear.selected {\n color: var(--le-selected-tab-color);\n}\n\n/* Icon only */\n:host > le-component.icon-only .le-tab-container {\n padding: 0.5rem;\n padding-bottom: 0.6rem;\n aspect-ratio: var(--le-tab-icon-aspect-ratio, 1);\n}\n\n.le-tab-container.icon-only.size-small {\n padding: var(--le-tab-small-padding, 0.25rem);\n}\n\n.le-tab-container.icon-only.size-large {\n padding: 0.75rem;\n}\n\n/* Hide content in icon-only mode */\n.le-tab-container.icon-only .content {\n display: none;\n}\n\n/* ===========================================\n * CONTENT (le-slot wrapper)\n * =========================================== */\n.content {\n display: inline;\n}\n\n.content:empty {\n display: none;\n}\n\n/* ===========================================\n * ICON WRAPPERS & SLOTS\n * =========================================== */\n.icon-start,\n.icon-only,\n.icon-end {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.icon-start:empty,\n.icon-only:empty,\n.icon-end:empty {\n display: none;\n}\n\n::slotted([slot=\"icon-start\"]),\n::slotted([slot=\"icon-only\"]),\n::slotted([slot=\"icon-end\"]) {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.125em;\n height: 1.125em;\n}\n\n/* ===========================================\n * ALIGNMENT MODIFIERS\n * =========================================== */\n.le-tab-align-start {\n justify-content: flex-start;\n}\n.le-tab-align-center {\n justify-content: center;\n}\n.le-tab-align-space-between {\n justify-content: space-between;\n}\n.le-tab-align-end {\n justify-content: flex-end;\n}\n","import {\n Component,\n Prop,\n h,\n Element,\n Fragment,\n Event,\n EventEmitter,\n Host,\n Method,\n} from '@stencil/core';\nimport { classnames } from '../../utils/utils';\n\n/**\n * A flexible tab component with multiple variants and states.\n *\n * @slot - Tab text content\n * @slot icon-only - Icon for icon-only tabs\n *\n * @cssprop --le-tab-bg - Tab background color\n * @cssprop --le-tab-color - Tab text color\n * @cssprop --le-tab-border-radius - Tab border radius\n * @cssprop --le-tab-padding-x - Tab horizontal padding\n * @cssprop --le-tab-padding-y - Tab vertical padding\n *\n * @csspart button - The native button element\n * @csspart content - The tab content wrapper\n * @csspart icon-start - The start icon slot\n * @csspart icon-end - The end icon slot\n *\n * @cmsEditable true\n * @cmsCategory Actions\n */\n@Component({\n tag: 'le-tab',\n styleUrl: 'le-tab.css',\n shadow: true,\n})\nexport class LeTab {\n @Element() el: HTMLElement;\n\n /**\n * Mode of the popover should be 'default' for internal use\n */\n @Prop({ mutable: true, reflect: true }) mode: 'default' | 'admin';\n\n /**\n * Label if it is not provided via slot\n */\n @Prop() label?: string;\n\n /**\n * Value of the tab, defaults to label if not provided\n */\n @Prop() value?: string;\n\n /**\n * Tab variant style\n * @allowedValues solid | underlined | clear | enclosed | icon-only\n */\n @Prop() variant: 'underlined' | 'solid' | 'pills' | 'enclosed' | 'icon-only' = 'underlined';\n\n /**\n * Position of the tabs when used within a le-tabs component\n * @allowedValues top | bottom | start | end\n */\n @Prop() position: 'top' | 'bottom' | 'start' | 'end' = 'top';\n\n /**\n * Tab size\n * @allowedValues small | medium | large\n */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Whether the tab can get focus\n * needed for accessibility when used in custom tab implementations\n */\n @Prop() focusable: boolean = true;\n\n /**\n * Whether the tab is in a selected/active state\n */\n @Prop() selected: boolean = false;\n\n /**\n * Whether the tab takes full width of its container\n */\n @Prop({ reflect: true }) fullWidth: boolean = false;\n\n /**\n * Icon only tab image or emoji\n * if this prop is set, the tab will render only the icon slot\n */\n @Prop() icon?: string | Node;\n\n /**\n * Whether to show the label when in icon-only mode\n */\n @Prop() showLabel: boolean = false;\n\n /**\n * Start icon image or emoji\n */\n @Prop() iconStart?: string | Node;\n\n /**\n * End icon image or emoji\n */\n @Prop() iconEnd?: string | Node;\n\n /**\n * Whether the tab is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Optional href to make the tab act as a link\n */\n @Prop() href?: string;\n\n /**\n * Link target when href is set\n */\n @Prop() target?: string;\n\n /**\n * Alignment of the tab label without the end icon\n * @allowedValues start | center | space-between | end\n */\n @Prop() align: 'start' | 'center' | 'space-between' | 'end' = 'center';\n\n /**\n * Get tab configuration for parent component\n */\n @Method()\n async getTabConfig(): Promise<{\n label: string;\n value: string;\n icon: string | Node;\n iconStart?: string | Node;\n iconEnd?: string | Node;\n disabled: boolean;\n }> {\n return {\n label: this.label,\n value: this.value ?? this.label,\n icon: this.icon,\n iconStart: this.iconStart,\n iconEnd: this.iconEnd,\n disabled: this.disabled,\n };\n }\n\n /**\n * Emitted when the tab is clicked.\n * This is a custom event that wraps the native click but ensures the target is the le-tab.\n */\n @Event({ eventName: 'click' }) leClick: EventEmitter<PointerEvent>;\n\n private handleClick = (event: PointerEvent) => {\n // We stop the internal button click from bubbling up\n event.stopPropagation();\n\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n // And emit our own click event from the host element\n this.leClick.emit(event);\n };\n\n render() {\n const classes = classnames(\n `variant-${this.variant}`,\n `size-${this.size}`,\n `position-${this.position}`,\n {\n 'selected': this.selected,\n 'full-width': this.fullWidth,\n 'icon-only': this.icon !== undefined,\n 'disabled': this.disabled,\n },\n );\n\n const TagType = this.href ? 'a' : 'button';\n const attrs = this.href\n ? { href: this.href, target: this.target, role: 'button' }\n : { disabled: this.disabled };\n\n return (\n <Host>\n <le-component component=\"le-tab\">\n <TagType\n class={classnames('le-tab-container', `le-tab-align-${this.align}`, classes)}\n part=\"button\"\n {...attrs}\n onClick={this.handleClick}\n tabIndex={this.focusable ? 0 : -1}\n >\n {this.icon !== undefined ? (\n <div class=\"icon-only\">\n <div class=\"icon\">{this.icon}</div>\n {this.showLabel && <span class=\"icon-label\">{this.label}</span>}\n </div>\n ) : (\n <Fragment>\n <span class=\"le-tab-label\">\n {this.iconStart && (\n <span class=\"icon-start\" part=\"icon-start\">\n {this.iconStart}\n </span>\n )}\n <le-slot\n name=\"\"\n description=\"Tab text\"\n type=\"text\"\n class=\"content\"\n part=\"content\"\n >\n <slot>{this.label}</slot>\n </le-slot>\n </span>\n {this.iconEnd && (\n <span class=\"icon-end\" part=\"icon-end\">\n {this.iconEnd}\n </span>\n )}\n </Fragment>\n )}\n </TagType>\n </le-component>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-DFTm5BqT.js';
|
|
2
|
-
import { c as classnames } from './utils-DZYCZLrF.js';
|
|
3
|
-
|
|
4
|
-
const leTabsCss = () => `:host{display:block;--le-tabs-gap:var(--le-spacing-1);--le-tabs-border-color:var(--le-border-color);--le-tabs-padding-y:var(--le-spacing-2);--le-tabs-padding-x:var(--le-spacing-4);--le-tabs-enclosed-bg:var(--le-color-background-secondary)}.le-tabs{display:flex;flex-direction:column}.le-tabs.orientation-vertical{flex-direction:row}.tablist{display:flex;position:relative;border-radius:var(--le-radius-md);gap:var(--le-tabs-gap)}.tablist.wrap-tabs{flex-wrap:wrap}.tablist.overflow-auto{overflow:auto}.tablist.overflow-hidden{overflow:hidden}.tablist.overflow-visible{overflow:visible}.tablist.overflow-scroll{overflow:scroll}.tablist:focus{outline:2px solid var(--le-color-focus);outline-offset:2px}.orientation-horizontal .tablist{flex-direction:row;border-bottom:1px solid var(--le-tabs-border-color)}.orientation-vertical .tablist{flex-direction:column;border-right:1px solid var(--le-tabs-border-color);min-width:150px}.full-width .tablist{width:100%}.full-width.orientation-horizontal .tab{flex:1}.variant-underlined .tablist{padding-inline:4px}.variant-pills .tablist{border-radius:calc(1.12rem)}.variant-enclosed .tablist{border:none;gap:0;background-color:var(--le-tabs-enclosed-bg);border-radius:calc(var(--le-radius-md) + var(--le-spacing-1));padding:var(--le-spacing-1)}.tab-icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;font-size:1.1em}.tab-icon img{width:100%;height:100%;object-fit:contain}.panels{flex:1;min-height:0}.panel{padding:var(--le-tabs-panel-padding, var(--le-spacing-4))}.panel[hidden]{display:none}.orientation-vertical .panels{padding-left:var(--le-spacing-4)}.position-end .panels{order:1}.position-end .tablist{order:2}`;
|
|
5
|
-
|
|
6
|
-
const LeTabs = class {
|
|
7
|
-
constructor(hostRef) {
|
|
8
|
-
registerInstance(this, hostRef);
|
|
9
|
-
this.leTabChange = createEvent(this, "leTabChange");
|
|
10
|
-
/**
|
|
11
|
-
* Array of tab options (programmatic mode).
|
|
12
|
-
* If le-tab-panel children exist, they take precedence.
|
|
13
|
-
*/
|
|
14
|
-
this.tabs = [];
|
|
15
|
-
/**
|
|
16
|
-
* Orientation of the tabs.
|
|
17
|
-
* @allowedValues horizontal | vertical
|
|
18
|
-
*/
|
|
19
|
-
this.orientation = 'horizontal';
|
|
20
|
-
/**
|
|
21
|
-
* Position of the tabs relative to the panels.
|
|
22
|
-
* @allowedValues start | end
|
|
23
|
-
*/
|
|
24
|
-
this.position = 'start';
|
|
25
|
-
/**
|
|
26
|
-
* Tab variant style.
|
|
27
|
-
* @allowedValues underlined | solid | pills | enclosed | icon-only
|
|
28
|
-
*/
|
|
29
|
-
this.variant = 'underlined';
|
|
30
|
-
/**
|
|
31
|
-
* Whether tabs should stretch to fill available width.
|
|
32
|
-
*/
|
|
33
|
-
this.fullWidth = false;
|
|
34
|
-
/**
|
|
35
|
-
* Size of the tabs.
|
|
36
|
-
* @allowedValues sm | md | lg
|
|
37
|
-
*/
|
|
38
|
-
this.size = 'medium';
|
|
39
|
-
/**
|
|
40
|
-
* Wrap the tabs if they exceed container width.
|
|
41
|
-
*/
|
|
42
|
-
this.wrap = false;
|
|
43
|
-
/**
|
|
44
|
-
* Scroll behavior for overflowing tabs.
|
|
45
|
-
* @allowedValues auto | hidden | visible | scroll
|
|
46
|
-
*/
|
|
47
|
-
this.overflow = 'auto';
|
|
48
|
-
/**
|
|
49
|
-
* Internal tab configurations (built from children or tabs prop)
|
|
50
|
-
*/
|
|
51
|
-
this.tabConfigs = [];
|
|
52
|
-
/**
|
|
53
|
-
* Internal state for focused tab index (for keyboard navigation)
|
|
54
|
-
*/
|
|
55
|
-
this.focusedIndex = 0;
|
|
56
|
-
/**
|
|
57
|
-
* Whether we're using declarative mode (le-tab-panel children)
|
|
58
|
-
*/
|
|
59
|
-
this.isDeclarativeMode = false;
|
|
60
|
-
this.handleTabClick = (config) => {
|
|
61
|
-
this.selectTab(config);
|
|
62
|
-
};
|
|
63
|
-
this.handleKeyDown = (event) => {
|
|
64
|
-
const { tabConfigs, orientation } = this;
|
|
65
|
-
const isHorizontal = orientation === 'horizontal';
|
|
66
|
-
let newIndex = this.focusedIndex;
|
|
67
|
-
switch (event.key) {
|
|
68
|
-
case 'ArrowLeft':
|
|
69
|
-
if (isHorizontal) {
|
|
70
|
-
event.preventDefault();
|
|
71
|
-
newIndex = this.findNextEnabledTab(-1);
|
|
72
|
-
}
|
|
73
|
-
break;
|
|
74
|
-
case 'ArrowRight':
|
|
75
|
-
if (isHorizontal) {
|
|
76
|
-
event.preventDefault();
|
|
77
|
-
newIndex = this.findNextEnabledTab(1);
|
|
78
|
-
}
|
|
79
|
-
break;
|
|
80
|
-
case 'ArrowUp':
|
|
81
|
-
if (!isHorizontal) {
|
|
82
|
-
event.preventDefault();
|
|
83
|
-
newIndex = this.findNextEnabledTab(-1);
|
|
84
|
-
}
|
|
85
|
-
break;
|
|
86
|
-
case 'ArrowDown':
|
|
87
|
-
if (!isHorizontal) {
|
|
88
|
-
event.preventDefault();
|
|
89
|
-
newIndex = this.findNextEnabledTab(1);
|
|
90
|
-
}
|
|
91
|
-
break;
|
|
92
|
-
case 'Home':
|
|
93
|
-
event.preventDefault();
|
|
94
|
-
newIndex = this.findFirstEnabledTab();
|
|
95
|
-
break;
|
|
96
|
-
case 'End':
|
|
97
|
-
event.preventDefault();
|
|
98
|
-
newIndex = this.findLastEnabledTab();
|
|
99
|
-
break;
|
|
100
|
-
case 'Enter':
|
|
101
|
-
case ' ':
|
|
102
|
-
event.preventDefault();
|
|
103
|
-
if (tabConfigs[this.focusedIndex]) {
|
|
104
|
-
this.selectTab(tabConfigs[this.focusedIndex]);
|
|
105
|
-
}
|
|
106
|
-
return;
|
|
107
|
-
default:
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
if (newIndex !== this.focusedIndex) {
|
|
111
|
-
this.focusedIndex = newIndex;
|
|
112
|
-
this.focusTab(newIndex);
|
|
113
|
-
// Auto-select on focus (recommended for tabs)
|
|
114
|
-
if (tabConfigs[newIndex]) {
|
|
115
|
-
this.selectTab(tabConfigs[newIndex]);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
selectedChanged(newValue) {
|
|
121
|
-
const index = this.tabConfigs.findIndex(t => t.value === newValue);
|
|
122
|
-
if (index >= 0) {
|
|
123
|
-
this.focusedIndex = index;
|
|
124
|
-
}
|
|
125
|
-
this.updatePanelStates();
|
|
126
|
-
}
|
|
127
|
-
tabsChanged() {
|
|
128
|
-
if (!this.isDeclarativeMode) {
|
|
129
|
-
this.buildTabConfigs();
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
handleSlotChange() {
|
|
133
|
-
this.buildTabConfigs();
|
|
134
|
-
}
|
|
135
|
-
componentWillLoad() {
|
|
136
|
-
this.buildTabConfigs();
|
|
137
|
-
}
|
|
138
|
-
connectedCallback() {
|
|
139
|
-
// Watch for dynamic changes to children
|
|
140
|
-
this.mutationObserver = new MutationObserver(() => {
|
|
141
|
-
this.buildTabConfigs();
|
|
142
|
-
});
|
|
143
|
-
this.mutationObserver.observe(this.el, {
|
|
144
|
-
attributes: true,
|
|
145
|
-
childList: true,
|
|
146
|
-
subtree: true,
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
disconnectedCallback() {
|
|
150
|
-
this.mutationObserver?.disconnect();
|
|
151
|
-
}
|
|
152
|
-
async buildTabConfigs() {
|
|
153
|
-
// Check for le-tab-panel children
|
|
154
|
-
const panels = Array.from(this.el.querySelectorAll(':scope > le-tab-panel'));
|
|
155
|
-
if (panels.length > 0) {
|
|
156
|
-
// Declarative mode - build from children
|
|
157
|
-
this.isDeclarativeMode = true;
|
|
158
|
-
const configs = [];
|
|
159
|
-
for (const panel of panels) {
|
|
160
|
-
const config = await panel.getTabConfig();
|
|
161
|
-
configs.push({ ...config, panel });
|
|
162
|
-
}
|
|
163
|
-
this.tabConfigs = configs;
|
|
164
|
-
}
|
|
165
|
-
else if (this.tabs.length > 0) {
|
|
166
|
-
// Programmatic mode - use tabs prop
|
|
167
|
-
this.isDeclarativeMode = false;
|
|
168
|
-
this.tabConfigs = this.tabs.map(tab => ({
|
|
169
|
-
label: tab.label,
|
|
170
|
-
value: (tab.value !== undefined ? tab.value : tab.label),
|
|
171
|
-
iconStart: tab.iconStart,
|
|
172
|
-
iconEnd: tab.iconEnd,
|
|
173
|
-
disabled: tab.disabled ?? false,
|
|
174
|
-
}));
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
this.tabConfigs = [];
|
|
178
|
-
}
|
|
179
|
-
// Set default selected
|
|
180
|
-
if (this.selected === undefined && this.tabConfigs.length > 0) {
|
|
181
|
-
const firstEnabled = this.tabConfigs.find(t => !t.disabled);
|
|
182
|
-
if (firstEnabled) {
|
|
183
|
-
this.selected = firstEnabled.value;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
// Initialize focused index
|
|
187
|
-
if (this.selected !== undefined) {
|
|
188
|
-
const index = this.tabConfigs.findIndex(t => t.value === this.selected);
|
|
189
|
-
if (index >= 0) {
|
|
190
|
-
this.focusedIndex = index;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
// Update panel active states
|
|
194
|
-
this.updatePanelStates();
|
|
195
|
-
}
|
|
196
|
-
async updatePanelStates() {
|
|
197
|
-
if (!this.isDeclarativeMode)
|
|
198
|
-
return;
|
|
199
|
-
for (const config of this.tabConfigs) {
|
|
200
|
-
if (config.panel) {
|
|
201
|
-
const isActive = config.value === this.selected;
|
|
202
|
-
await config.panel.setActive(isActive);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
selectTab(config) {
|
|
207
|
-
if (config.disabled)
|
|
208
|
-
return;
|
|
209
|
-
this.selected = config.value;
|
|
210
|
-
this.leTabChange.emit({
|
|
211
|
-
value: config.value,
|
|
212
|
-
option: {
|
|
213
|
-
label: config.label,
|
|
214
|
-
value: config.value,
|
|
215
|
-
iconStart: config.iconStart,
|
|
216
|
-
iconEnd: config.iconEnd,
|
|
217
|
-
disabled: config.disabled,
|
|
218
|
-
},
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
findNextEnabledTab(direction) {
|
|
222
|
-
const { tabConfigs } = this;
|
|
223
|
-
let index = this.focusedIndex;
|
|
224
|
-
const length = tabConfigs.length;
|
|
225
|
-
for (let i = 0; i < length; i++) {
|
|
226
|
-
index = (index + direction + length) % length;
|
|
227
|
-
if (!tabConfigs[index].disabled) {
|
|
228
|
-
return index;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return this.focusedIndex;
|
|
232
|
-
}
|
|
233
|
-
findFirstEnabledTab() {
|
|
234
|
-
return this.tabConfigs.findIndex(t => !t.disabled);
|
|
235
|
-
}
|
|
236
|
-
findLastEnabledTab() {
|
|
237
|
-
for (let i = this.tabConfigs.length - 1; i >= 0; i--) {
|
|
238
|
-
if (!this.tabConfigs[i].disabled)
|
|
239
|
-
return i;
|
|
240
|
-
}
|
|
241
|
-
return 0;
|
|
242
|
-
}
|
|
243
|
-
focusTab(index) {
|
|
244
|
-
const tablist = this.el.shadowRoot?.querySelector('[role="tablist"]');
|
|
245
|
-
const tab = tablist?.querySelectorAll('[role="tab"]')[index];
|
|
246
|
-
tab?.focus();
|
|
247
|
-
}
|
|
248
|
-
render() {
|
|
249
|
-
const { tabConfigs, selected, orientation, variant, fullWidth, size, isDeclarativeMode } = this;
|
|
250
|
-
const classes = {
|
|
251
|
-
'le-tabs': true,
|
|
252
|
-
[`orientation-${orientation}`]: true,
|
|
253
|
-
[`position-${this.position}`]: true,
|
|
254
|
-
[`variant-${variant}`]: true,
|
|
255
|
-
[`size-${size}`]: true,
|
|
256
|
-
'full-width': fullWidth,
|
|
257
|
-
};
|
|
258
|
-
const tabPosition = this.orientation === 'vertical'
|
|
259
|
-
? this.position
|
|
260
|
-
: this.position === 'start'
|
|
261
|
-
? 'top'
|
|
262
|
-
: 'bottom';
|
|
263
|
-
return (h("le-component", { key: '0240e0ae8c8b2513e80e8a032101df47a2041e3d', component: "le-tabs", hostClass: classnames(classes) }, h("div", { key: 'b063db57a29d4c212ed81a738c41d7e395f5618c', class: classes }, h("div", { key: '01ba40aac8cb13357c668d82daf7c34f7fb104e6', class: {
|
|
264
|
-
'tablist': true,
|
|
265
|
-
'wrap-tabs': this.wrap,
|
|
266
|
-
[`overflow-${this.overflow}`]: true,
|
|
267
|
-
}, role: "tablist", "aria-orientation": orientation, part: "tablist", onKeyDown: this.handleKeyDown, tabIndex: 0 }, tabConfigs.map(config => {
|
|
268
|
-
const isSelected = config.value === selected;
|
|
269
|
-
const tabId = `tab-${config.value}`;
|
|
270
|
-
const panelId = `panel-${config.value}`;
|
|
271
|
-
return (h("le-tab", { key: config.value, id: tabId, class: "tab", mode: "default", variant: this.variant, selected: isSelected, disabled: config.disabled, size: this.size, position: tabPosition, align: this.orientation === 'vertical' ? 'start' : 'center', role: "tab", part: isSelected ? 'tab tab-active' : 'tab', "aria-selected": isSelected ? 'true' : 'false', "aria-controls": panelId, "aria-disabled": config.disabled ? 'true' : undefined, focusable: false, onClick: () => this.handleTabClick(config), iconStart: config.iconStart, iconEnd: config.iconEnd }, h("span", { class: "tab-label" }, config.label)));
|
|
272
|
-
})), h("div", { key: 'b1e16928f27f5083e94674e80b0ad397eb3e8fec', class: "panels", part: "panels" }, isDeclarativeMode ? (
|
|
273
|
-
// Declarative mode - render slot for le-tab-panel children
|
|
274
|
-
h("le-slot", { name: "", description: "Tab panels", type: "slot", allowedComponents: "le-tab-panel" }, h("slot", null))) : (
|
|
275
|
-
// Programmatic mode - render named slots
|
|
276
|
-
tabConfigs.map(config => {
|
|
277
|
-
const isSelected = config.value === selected;
|
|
278
|
-
const tabId = `tab-${config.value}`;
|
|
279
|
-
const panelId = `panel-${config.value}`;
|
|
280
|
-
return (h("div", { key: config.value, id: panelId, class: {
|
|
281
|
-
'panel': true,
|
|
282
|
-
'panel-active': isSelected,
|
|
283
|
-
}, role: "tabpanel", part: "panel", "aria-labelledby": tabId, tabIndex: 0, hidden: !isSelected }, h("slot", { name: `panel-${config.value}` })));
|
|
284
|
-
}))))));
|
|
285
|
-
}
|
|
286
|
-
get el() { return getElement(this); }
|
|
287
|
-
static get watchers() { return {
|
|
288
|
-
"selected": ["selectedChanged"],
|
|
289
|
-
"tabs": ["tabsChanged"]
|
|
290
|
-
}; }
|
|
291
|
-
};
|
|
292
|
-
LeTabs.style = leTabsCss();
|
|
293
|
-
|
|
294
|
-
export { LeTabs as le_tabs };
|
|
295
|
-
//# sourceMappingURL=le-tabs.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"le-tabs.entry.js","sources":["src/components/le-tabs/le-tabs.css?tag=le-tabs&encapsulation=shadow","src/components/le-tabs/le-tabs.tsx"],"sourcesContent":["/**\n * le-tabs - Default mode styles\n */\n\n:host {\n display: block;\n --le-tabs-gap: var(--le-spacing-1);\n --le-tabs-border-color: var(--le-border-color);\n --le-tabs-padding-y: var(--le-spacing-2);\n --le-tabs-padding-x: var(--le-spacing-4);\n --le-tabs-enclosed-bg: var(--le-color-background-secondary);\n}\n\n.le-tabs {\n display: flex;\n flex-direction: column;\n}\n\n.le-tabs.orientation-vertical {\n flex-direction: row;\n}\n\n/* ============================================\n * TABLIST\n * ============================================ */\n\n.tablist {\n display: flex;\n position: relative;\n border-radius: var(--le-radius-md);\n gap: var(--le-tabs-gap);\n}\n.tablist.wrap-tabs {\n flex-wrap: wrap;\n}\n.tablist.overflow-auto {\n overflow: auto;\n}\n.tablist.overflow-hidden {\n overflow: hidden;\n}\n.tablist.overflow-visible {\n overflow: visible;\n}\n.tablist.overflow-scroll {\n overflow: scroll;\n}\n.tablist:focus {\n outline: 2px solid var(--le-color-focus);\n outline-offset: 2px;\n}\n\n.orientation-horizontal .tablist {\n flex-direction: row;\n border-bottom: 1px solid var(--le-tabs-border-color);\n}\n\n.orientation-vertical .tablist {\n flex-direction: column;\n border-right: 1px solid var(--le-tabs-border-color);\n min-width: 150px;\n}\n\n.full-width .tablist {\n width: 100%;\n}\n\n.full-width.orientation-horizontal .tab {\n flex: 1;\n}\n\n/* ============================================\n * VARIANT: UNDERLINED\n * ============================================ */\n\n.variant-underlined .tablist {\n padding-inline: 4px;\n}\n\n/* ============================================\n * VARIANT: PILLS\n * ============================================ */\n\n.variant-pills .tablist {\n border-radius: calc(1.12rem);\n}\n\n\n/* ============================================\n * VARIANT: ENCLOSED\n * ============================================ */\n\n.variant-enclosed .tablist {\n border: none;\n gap: 0;\n background-color: var(--le-tabs-enclosed-bg);\n border-radius: calc(var(--le-radius-md) + var(--le-spacing-1));\n padding: var(--le-spacing-1);\n}\n\n/* ============================================\n * TAB ICON\n * ============================================ */\n\n.tab-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1em;\n height: 1em;\n font-size: 1.1em;\n}\n\n.tab-icon img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* ============================================\n * PANELS\n * ============================================ */\n\n.panels {\n flex: 1;\n min-height: 0;\n}\n\n.panel {\n padding: var(--le-tabs-panel-padding, var(--le-spacing-4));\n}\n\n.panel[hidden] {\n display: none;\n}\n\n.orientation-vertical .panels {\n padding-left: var(--le-spacing-4);\n}\n\n.position-end .panels {\n order: 1;\n}\n.position-end .tablist {\n order: 2;\n}\n","import {\n Component,\n Prop,\n State,\n Event,\n EventEmitter,\n h,\n Element,\n Watch,\n Listen,\n} from '@stencil/core';\nimport { LeOption, LeOptionValue, LeOptionSelectDetail } from '../../types/options';\nimport { classnames } from '../../utils/utils';\n\ninterface TabConfig {\n label: string;\n value: string;\n iconStart?: string;\n iconEnd?: string;\n disabled: boolean;\n panel?: HTMLElement & { setActive: (active: boolean) => Promise<void> };\n}\n\n/**\n * A flexible tabs component for organizing content into tabbed panels.\n *\n * Supports two modes:\n * 1. **Declarative**: Use `<le-tab-panel>` children to define tabs and content\n * 2. **Programmatic**: Use the `tabs` prop with named slots for content\n *\n * Full keyboard navigation and ARIA support included.\n *\n * @slot - Default slot for le-tab-panel children (declarative mode)\n * @slot panel-{value} - Named slots for panel content (programmatic mode)\n *\n * @cssprop --le-tabs-border-color - Border color for tab list\n * @cssprop --le-tabs-gap - Gap between tabs\n * @cssprop --le-tabs-indicator-color - Active tab indicator color\n * @cssprop --le-tabs-padding-x - Horizontal padding for tab buttons\n * @cssprop --le-tabs-padding-y - Vertical padding for tab buttons\n *\n * @csspart tablist - The tab button container (role=\"tablist\")\n * @csspart tab - Individual tab buttons\n * @csspart tab-active - The currently active tab\n * @csspart panels - Container for panel content\n * @csspart panel - Individual panel containers\n *\n * @cmsEditable true\n * @cmsCategory Navigation\n */\n@Component({\n tag: 'le-tabs',\n styleUrl: 'le-tabs.css',\n shadow: true,\n})\nexport class LeTabs {\n @Element() el: HTMLElement;\n\n /**\n * Array of tab options (programmatic mode).\n * If le-tab-panel children exist, they take precedence.\n */\n @Prop() tabs: LeOption[] = [];\n\n /**\n * The value of the currently selected tab.\n * If not provided, defaults to the first tab.\n */\n @Prop({ mutable: true }) selected?: LeOptionValue;\n\n /**\n * Orientation of the tabs.\n * @allowedValues horizontal | vertical\n */\n @Prop() orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Position of the tabs relative to the panels.\n * @allowedValues start | end\n */\n @Prop() position: 'start' | 'end' = 'start';\n\n /**\n * Tab variant style.\n * @allowedValues underlined | solid | pills | enclosed | icon-only\n */\n @Prop() variant: 'underlined' | 'solid' | 'pills' | 'enclosed' | 'icon-only' = 'underlined';\n\n /**\n * Whether tabs should stretch to fill available width.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * Size of the tabs.\n * @allowedValues sm | md | lg\n */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Wrap the tabs if they exceed container width.\n */\n @Prop() wrap: boolean = false;\n\n /**\n * Scroll behavior for overflowing tabs.\n * @allowedValues auto | hidden | visible | scroll\n */\n @Prop() overflow: 'auto' | 'hidden' | 'visible' | 'scroll' = 'auto';\n\n /**\n * Internal tab configurations (built from children or tabs prop)\n */\n @State() private tabConfigs: TabConfig[] = [];\n\n /**\n * Internal state for focused tab index (for keyboard navigation)\n */\n @State() private focusedIndex: number = 0;\n\n /**\n * Whether we're using declarative mode (le-tab-panel children)\n */\n @State() private isDeclarativeMode: boolean = false;\n\n /**\n * Emitted when the selected tab changes.\n */\n @Event() leTabChange: EventEmitter<LeOptionSelectDetail>;\n\n private mutationObserver?: MutationObserver;\n\n @Watch('selected')\n selectedChanged(newValue: LeOptionValue) {\n const index = this.tabConfigs.findIndex(t => t.value === newValue);\n if (index >= 0) {\n this.focusedIndex = index;\n }\n this.updatePanelStates();\n }\n\n @Watch('tabs')\n tabsChanged() {\n if (!this.isDeclarativeMode) {\n this.buildTabConfigs();\n }\n }\n\n @Listen('slotchange')\n handleSlotChange() {\n this.buildTabConfigs();\n }\n\n componentWillLoad() {\n this.buildTabConfigs();\n }\n\n connectedCallback() {\n // Watch for dynamic changes to children\n this.mutationObserver = new MutationObserver(() => {\n this.buildTabConfigs();\n });\n this.mutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n }\n\n private async buildTabConfigs() {\n // Check for le-tab-panel children\n const panels = Array.from(this.el.querySelectorAll(':scope > le-tab-panel')) as Array<\n HTMLElement & {\n getTabConfig: () => Promise<TabConfig>;\n setActive: (active: boolean) => Promise<void>;\n }\n >;\n\n if (panels.length > 0) {\n // Declarative mode - build from children\n this.isDeclarativeMode = true;\n const configs: TabConfig[] = [];\n\n for (const panel of panels) {\n const config = await panel.getTabConfig();\n configs.push({ ...config, panel });\n }\n\n this.tabConfigs = configs;\n } else if (this.tabs.length > 0) {\n // Programmatic mode - use tabs prop\n this.isDeclarativeMode = false;\n this.tabConfigs = this.tabs.map(tab => ({\n label: tab.label,\n value: (tab.value !== undefined ? tab.value : tab.label) as string,\n iconStart: tab.iconStart,\n iconEnd: tab.iconEnd,\n disabled: tab.disabled ?? false,\n }));\n } else {\n this.tabConfigs = [];\n }\n\n // Set default selected\n if (this.selected === undefined && this.tabConfigs.length > 0) {\n const firstEnabled = this.tabConfigs.find(t => !t.disabled);\n if (firstEnabled) {\n this.selected = firstEnabled.value;\n }\n }\n\n // Initialize focused index\n if (this.selected !== undefined) {\n const index = this.tabConfigs.findIndex(t => t.value === this.selected);\n if (index >= 0) {\n this.focusedIndex = index;\n }\n }\n\n // Update panel active states\n this.updatePanelStates();\n }\n\n private async updatePanelStates() {\n if (!this.isDeclarativeMode) return;\n\n for (const config of this.tabConfigs) {\n if (config.panel) {\n const isActive = config.value === this.selected;\n await config.panel.setActive(isActive);\n }\n }\n }\n\n private selectTab(config: TabConfig) {\n if (config.disabled) return;\n\n this.selected = config.value;\n this.leTabChange.emit({\n value: config.value,\n option: {\n label: config.label,\n value: config.value,\n iconStart: config.iconStart,\n iconEnd: config.iconEnd,\n disabled: config.disabled,\n },\n });\n }\n\n private handleTabClick = (config: TabConfig) => {\n this.selectTab(config);\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const { tabConfigs, orientation } = this;\n const isHorizontal = orientation === 'horizontal';\n\n let newIndex = this.focusedIndex;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (isHorizontal) {\n event.preventDefault();\n newIndex = this.findNextEnabledTab(-1);\n }\n break;\n case 'ArrowRight':\n if (isHorizontal) {\n event.preventDefault();\n newIndex = this.findNextEnabledTab(1);\n }\n break;\n case 'ArrowUp':\n if (!isHorizontal) {\n event.preventDefault();\n newIndex = this.findNextEnabledTab(-1);\n }\n break;\n case 'ArrowDown':\n if (!isHorizontal) {\n event.preventDefault();\n newIndex = this.findNextEnabledTab(1);\n }\n break;\n case 'Home':\n event.preventDefault();\n newIndex = this.findFirstEnabledTab();\n break;\n case 'End':\n event.preventDefault();\n newIndex = this.findLastEnabledTab();\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (tabConfigs[this.focusedIndex]) {\n this.selectTab(tabConfigs[this.focusedIndex]);\n }\n return;\n default:\n return;\n }\n\n if (newIndex !== this.focusedIndex) {\n this.focusedIndex = newIndex;\n this.focusTab(newIndex);\n // Auto-select on focus (recommended for tabs)\n if (tabConfigs[newIndex]) {\n this.selectTab(tabConfigs[newIndex]);\n }\n }\n };\n\n private findNextEnabledTab(direction: 1 | -1): number {\n const { tabConfigs } = this;\n let index = this.focusedIndex;\n const length = tabConfigs.length;\n\n for (let i = 0; i < length; i++) {\n index = (index + direction + length) % length;\n if (!tabConfigs[index].disabled) {\n return index;\n }\n }\n return this.focusedIndex;\n }\n\n private findFirstEnabledTab(): number {\n return this.tabConfigs.findIndex(t => !t.disabled);\n }\n\n private findLastEnabledTab(): number {\n for (let i = this.tabConfigs.length - 1; i >= 0; i--) {\n if (!this.tabConfigs[i].disabled) return i;\n }\n return 0;\n }\n\n private focusTab(index: number) {\n const tablist = this.el.shadowRoot?.querySelector('[role=\"tablist\"]');\n const tab = tablist?.querySelectorAll('[role=\"tab\"]')[index] as HTMLElement;\n tab?.focus();\n }\n\n render() {\n const { tabConfigs, selected, orientation, variant, fullWidth, size, isDeclarativeMode } = this;\n\n const classes = {\n 'le-tabs': true,\n [`orientation-${orientation}`]: true,\n [`position-${this.position}`]: true,\n [`variant-${variant}`]: true,\n [`size-${size}`]: true,\n 'full-width': fullWidth,\n };\n\n const tabPosition =\n this.orientation === 'vertical'\n ? this.position\n : this.position === 'start'\n ? 'top'\n : 'bottom';\n\n return (\n <le-component component=\"le-tabs\" hostClass={classnames(classes)}>\n <div class={classes}>\n <div\n class={{\n 'tablist': true,\n 'wrap-tabs': this.wrap,\n [`overflow-${this.overflow}`]: true,\n }}\n role=\"tablist\"\n aria-orientation={orientation}\n part=\"tablist\"\n onKeyDown={this.handleKeyDown}\n tabIndex={0}\n >\n {tabConfigs.map(config => {\n const isSelected = config.value === selected;\n const tabId = `tab-${config.value}`;\n const panelId = `panel-${config.value}`;\n\n return (\n <le-tab\n key={config.value}\n id={tabId}\n class=\"tab\"\n mode=\"default\"\n variant={this.variant}\n selected={isSelected}\n disabled={config.disabled}\n size={this.size}\n position={tabPosition}\n align={this.orientation === 'vertical' ? 'start' : 'center'}\n role=\"tab\"\n part={isSelected ? 'tab tab-active' : 'tab'}\n aria-selected={isSelected ? 'true' : 'false'}\n aria-controls={panelId}\n aria-disabled={config.disabled ? 'true' : undefined}\n focusable={false}\n onClick={() => this.handleTabClick(config)}\n iconStart={config.iconStart}\n iconEnd={config.iconEnd}\n >\n <span class=\"tab-label\">{config.label}</span>\n </le-tab>\n );\n })}\n </div>\n\n <div class=\"panels\" part=\"panels\">\n {isDeclarativeMode ? (\n // Declarative mode - render slot for le-tab-panel children\n <le-slot\n name=\"\"\n description=\"Tab panels\"\n type=\"slot\"\n allowedComponents=\"le-tab-panel\"\n >\n <slot></slot>\n </le-slot>\n ) : (\n // Programmatic mode - render named slots\n tabConfigs.map(config => {\n const isSelected = config.value === selected;\n const tabId = `tab-${config.value}`;\n const panelId = `panel-${config.value}`;\n\n return (\n <div\n key={config.value}\n id={panelId}\n class={{\n 'panel': true,\n 'panel-active': isSelected,\n }}\n role=\"tabpanel\"\n part=\"panel\"\n aria-labelledby={tabId}\n tabIndex={0}\n hidden={!isSelected}\n >\n <slot name={`panel-${config.value}`}></slot>\n </div>\n );\n })\n )}\n </div>\n </div>\n </le-component>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/esm/le-tag.entry.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h } from './index-DFTm5BqT.js';
|
|
2
|
-
|
|
3
|
-
const leTagCss = () => `:host{display:inline-flex;--le-tag-font-size:var(--le-font-size-sm);--le-tag-font-weight:var(--le-font-weight-medium);--le-tag-color:var(--le-color-text);--le-tag-bg:var(--le-color-surface-alt);--le-tag-dismiss-size:1.75em}:host([disabled]){opacity:0.5;pointer-events:none}.tag{display:inline-flex;align-items:center;gap:var(--le-tag-gap, 0.375rem);padding:var(--le-tag-padding-y, 0.25rem) var(--le-tag-padding-x, 0.625rem);font-size:var(--le-tag-font-size);font-weight:var(--le-tag-font-weight);line-height:1.4;color:var(--le-tag-color, var(--le-color-text, #1f2937));background:var(--le-tag-bg, var(--le-color-surface-alt, #f3f4f6));border:1px solid var(--le-tag-border-color, transparent);border-radius:var(--le-tag-border-radius, 9999px);white-space:nowrap;user-select:none}:host([size='small']) .tag{--le-tag-font-size:0.75rem;--le-tag-padding-x:0.5rem;--le-tag-padding-y:0.125rem;--le-tag-gap:0.25rem;--le-tag-dismiss-size:1.25em}:host([size='large']) .tag{--le-tag-font-size:1rem;--le-tag-padding-x:0.875rem;--le-tag-padding-y:0.375rem;--le-tag-gap:0.5rem;--le-tag-dismiss-size:2em}:host([variant='primary']) .tag{--le-tag-bg:var(--le-color-primary, #dbeafe);--le-tag-color:var(--le-color-primary-contrast, #1e40af)}:host([variant='success']) .tag{--le-tag-bg:var(--le-color-success, #dcfce7);--le-tag-color:var(--le-color-success-contrast, #166534)}:host([variant='warning']) .tag{--le-tag-bg:var(--le-color-warning-light, #fef3c7);--le-tag-color:var(--le-color-warning-contrast, #92400e)}:host([variant='danger']) .tag{--le-tag-bg:var(--le-color-danger, #fee2e2);--le-tag-color:var(--le-color-danger-contrast, #991b1b)}.tag-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.tag-icon img{width:1em;height:1em;object-fit:contain}.tag-label{display:inline-block}.tag-dismiss{display:inline-flex;align-items:center;justify-content:center;width:var(--le-tag-dismiss-size);height:var(--le-tag-dismiss-size);padding:0;margin-block:calc(var(--le-tag-dismiss-size) * -1);margin-right:calc(var(--le-tag-dismiss-size) / 3 * -1);border:none;background:transparent;color:currentColor;opacity:0.6;cursor:pointer;border-radius:50%;transition:opacity 0.15s ease, background-color 0.15s ease}.tag-dismiss:hover{opacity:1;background:rgba(0, 0, 0, 0.1)}.tag-dismiss:focus-visible{outline:2px solid var(--le-color-primary, #3b82f6);outline-offset:1px}.tag-dismiss svg{width:0.75em;height:0.75em}.tag-dismiss:disabled{cursor:not-allowed}`;
|
|
4
|
-
|
|
5
|
-
const LeTag = class {
|
|
6
|
-
constructor(hostRef) {
|
|
7
|
-
registerInstance(this, hostRef);
|
|
8
|
-
this.leDismiss = createEvent(this, "leDismiss");
|
|
9
|
-
/**
|
|
10
|
-
* Whether the tag can be dismissed (shows close button).
|
|
11
|
-
*/
|
|
12
|
-
this.dismissible = false;
|
|
13
|
-
/**
|
|
14
|
-
* Whether the tag is disabled.
|
|
15
|
-
*/
|
|
16
|
-
this.disabled = false;
|
|
17
|
-
/**
|
|
18
|
-
* The size of the tag.
|
|
19
|
-
*/
|
|
20
|
-
this.size = 'medium';
|
|
21
|
-
/**
|
|
22
|
-
* The visual variant of the tag.
|
|
23
|
-
*/
|
|
24
|
-
this.variant = 'default';
|
|
25
|
-
this.handleDismiss = (e) => {
|
|
26
|
-
e.stopPropagation();
|
|
27
|
-
if (!this.disabled) {
|
|
28
|
-
this.leDismiss.emit();
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
renderIcon() {
|
|
33
|
-
if (!this.icon)
|
|
34
|
-
return null;
|
|
35
|
-
// Check if it's a URL (starts with http, https, or /)
|
|
36
|
-
if (this.icon.startsWith('http') || this.icon.startsWith('/')) {
|
|
37
|
-
return h("img", { class: "tag-icon", src: this.icon, alt: "" });
|
|
38
|
-
}
|
|
39
|
-
// Otherwise render as text (emoji or icon font)
|
|
40
|
-
return h("span", { class: "tag-icon" }, this.icon);
|
|
41
|
-
}
|
|
42
|
-
render() {
|
|
43
|
-
return (h("le-component", { key: '6903620dec3042a396c4e39ed378f59e4889fb5f', component: "le-tag" }, h("span", { key: '23a31349e50aeb8a38bfdf22e6151562eaa16a6e', class: "tag" }, this.renderIcon(), h("span", { key: '8505dd5c9ed47baf702d947bf687875dd7c8283e', class: "tag-label" }, h("le-slot", { key: '1f7b44714f1f1b4f1a1a5af6925b15d6026cc7e4', name: "", tag: "span", type: "text" }, h("slot", { key: '7722a7f387284cbc3c8ef38deeff69c7a02282a8' }, this.label))), this.dismissible && (h("button", { key: 'ae937d67c269ef0ff504926623ed95061c750232', type: "button", class: "tag-dismiss", onClick: this.handleDismiss, disabled: this.disabled, "aria-label": "Remove" }, h("svg", { key: '9cf11ec361d62de7b6ef524c40edad13c1da9c06', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { key: 'e919bccb3fa4679f7e808960195d670685f1e0df', d: "M4 4l8 8M12 4l-8 8" })))))));
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
LeTag.style = leTagCss();
|
|
47
|
-
|
|
48
|
-
export { LeTag as le_tag };
|
|
49
|
-
//# sourceMappingURL=le-tag.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"le-tag.entry.js","sources":["src/components/le-tag/le-tag.css?tag=le-tag&encapsulation=shadow","src/components/le-tag/le-tag.tsx"],"sourcesContent":["/**\n * le-tag component styles\n *\n * CSS Custom Properties:\n * --le-tag-font-size\n * --le-tag-font-weight\n * --le-tag-padding-x\n * --le-tag-padding-y\n * --le-tag-border-radius\n * --le-tag-gap\n * --le-tag-bg\n * --le-tag-color\n * --le-tag-border-color\n */\n\n:host {\n display: inline-flex;\n --le-tag-font-size: var(--le-font-size-sm);\n --le-tag-font-weight: var(--le-font-weight-medium);\n --le-tag-color: var(--le-color-text);\n --le-tag-bg: var(--le-color-surface-alt);\n --le-tag-dismiss-size: 1.75em;\n}\n\n:host([disabled]) {\n opacity: 0.5;\n pointer-events: none;\n}\n\n.tag {\n display: inline-flex;\n align-items: center;\n gap: var(--le-tag-gap, 0.375rem);\n padding: var(--le-tag-padding-y, 0.25rem) var(--le-tag-padding-x, 0.625rem);\n font-size: var(--le-tag-font-size);\n font-weight: var(--le-tag-font-weight);\n line-height: 1.4;\n color: var(--le-tag-color, var(--le-color-text, #1f2937));\n background: var(--le-tag-bg, var(--le-color-surface-alt, #f3f4f6));\n border: 1px solid var(--le-tag-border-color, transparent);\n border-radius: var(--le-tag-border-radius, 9999px);\n white-space: nowrap;\n user-select: none;\n}\n\n/* Sizes */\n:host([size='small']) .tag {\n --le-tag-font-size: 0.75rem;\n --le-tag-padding-x: 0.5rem;\n --le-tag-padding-y: 0.125rem;\n --le-tag-gap: 0.25rem;\n --le-tag-dismiss-size: 1.25em;\n}\n\n:host([size='large']) .tag {\n --le-tag-font-size: 1rem;\n --le-tag-padding-x: 0.875rem;\n --le-tag-padding-y: 0.375rem;\n --le-tag-gap: 0.5rem;\n --le-tag-dismiss-size: 2em;\n}\n\n/* Variants */\n:host([variant='primary']) .tag {\n --le-tag-bg: var(--le-color-primary, #dbeafe);\n --le-tag-color: var(--le-color-primary-contrast, #1e40af);\n}\n\n:host([variant='success']) .tag {\n --le-tag-bg: var(--le-color-success, #dcfce7);\n --le-tag-color: var(--le-color-success-contrast, #166534);\n}\n\n:host([variant='warning']) .tag {\n --le-tag-bg: var(--le-color-warning-light, #fef3c7);\n --le-tag-color: var(--le-color-warning-contrast, #92400e);\n}\n\n:host([variant='danger']) .tag {\n --le-tag-bg: var(--le-color-danger, #fee2e2);\n --le-tag-color: var(--le-color-danger-contrast, #991b1b);\n}\n\n/* Icon */\n.tag-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.tag-icon img {\n width: 1em;\n height: 1em;\n object-fit: contain;\n}\n\n/* Label */\n.tag-label {\n display: inline-block;\n}\n\n/* Dismiss button */\n.tag-dismiss {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--le-tag-dismiss-size);\n height: var(--le-tag-dismiss-size);\n padding: 0;\n margin-block: calc(var(--le-tag-dismiss-size) * -1);\n margin-right: calc(var(--le-tag-dismiss-size) / 3 * -1);\n border: none;\n background: transparent;\n color: currentColor;\n opacity: 0.6;\n cursor: pointer;\n border-radius: 50%;\n transition: opacity 0.15s ease, background-color 0.15s ease;\n}\n\n.tag-dismiss:hover {\n opacity: 1;\n background: rgba(0, 0, 0, 0.1);\n}\n\n.tag-dismiss:focus-visible {\n outline: 2px solid var(--le-color-primary, #3b82f6);\n outline-offset: 1px;\n}\n\n.tag-dismiss svg {\n width: 0.75em;\n height: 0.75em;\n}\n\n.tag-dismiss:disabled {\n cursor: not-allowed;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n/**\n * A tag/chip component for displaying labels with optional dismiss functionality.\n *\n * @cmsEditable false\n * @cmsCategory Form\n *\n * @slot - Default slot for custom content (overrides label prop)\n *\n * @example Basic tag\n * ```html\n * <le-tag label=\"JavaScript\"></le-tag>\n * ```\n *\n * @example Dismissible tag\n * ```html\n * <le-tag label=\"Remove me\" dismissible></le-tag>\n * ```\n *\n * @example With icon\n * ```html\n * <le-tag label=\"Settings\" icon=\"⚙️\"></le-tag>\n * ```\n *\n * @example Different sizes\n * ```html\n * <le-tag label=\"Small\" size=\"small\"></le-tag>\n * <le-tag label=\"Medium\" size=\"medium\"></le-tag>\n * <le-tag label=\"Large\" size=\"large\"></le-tag>\n * ```\n *\n * @example Different variants\n * ```html\n * <le-tag label=\"Default\" variant=\"default\"></le-tag>\n * <le-tag label=\"Primary\" variant=\"primary\"></le-tag>\n * <le-tag label=\"Success\" variant=\"success\"></le-tag>\n * <le-tag label=\"Warning\" variant=\"warning\"></le-tag>\n * <le-tag label=\"Danger\" variant=\"danger\"></le-tag>\n * ```\n */\n@Component({\n tag: 'le-tag',\n styleUrl: 'le-tag.css',\n shadow: true,\n})\nexport class LeTag {\n /**\n * The text label to display in the tag.\n */\n @Prop() label: string;\n\n /**\n * Mode of the popover should be 'default' for internal use\n */\n @Prop({ mutable: true, reflect: true }) mode: 'default' | 'admin';\n\n /**\n * Icon to display before the label.\n * Can be an emoji, URL, or icon name.\n */\n @Prop() icon?: string;\n\n /**\n * Whether the tag can be dismissed (shows close button).\n */\n @Prop() dismissible: boolean = false;\n\n /**\n * Whether the tag is disabled.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * The size of the tag.\n */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * The visual variant of the tag.\n */\n @Prop({ reflect: true }) variant: 'default' | 'primary' | 'success' | 'warning' | 'danger' = 'default';\n\n /**\n * Emitted when the dismiss button is clicked.\n */\n @Event() leDismiss: EventEmitter<void>;\n\n private handleDismiss = (e: MouseEvent) => {\n e.stopPropagation();\n if (!this.disabled) {\n this.leDismiss.emit();\n }\n };\n\n private renderIcon() {\n if (!this.icon) return null;\n\n // Check if it's a URL (starts with http, https, or /)\n if (this.icon.startsWith('http') || this.icon.startsWith('/')) {\n return <img class=\"tag-icon\" src={this.icon} alt=\"\" />;\n }\n\n // Otherwise render as text (emoji or icon font)\n return <span class=\"tag-icon\">{this.icon}</span>;\n }\n\n render() {\n return (\n <le-component component=\"le-tag\">\n <span class=\"tag\">\n {this.renderIcon()}\n <span class=\"tag-label\">\n <le-slot name=\"\" tag=\"span\" type=\"text\">\n <slot>{this.label}</slot>\n </le-slot>\n </span>\n {this.dismissible && (\n <button type=\"button\" class=\"tag-dismiss\" onClick={this.handleDismiss} disabled={this.disabled} aria-label=\"Remove\">\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>\n </le-component>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,y5EAAy5E,CAAC;;MC8Cr6E,KAAK,GAAA,MAAA;AALlB,IAAA,WAAA,CAAA,OAAA,EAAA;;;AAsBE;;AAEG;AACK,QAAA,IAAW,CAAA,WAAA,GAAY,KAAK;AAEpC;;AAEG;AACsB,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAElD;;AAEG;AACsB,QAAA,IAAI,CAAA,IAAA,GAAiC,QAAQ;AAEtE;;AAEG;AACsB,QAAA,IAAO,CAAA,OAAA,GAA6D,SAAS;AAO9F,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,CAAa,KAAI;YACxC,CAAC,CAAC,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;;AAEzB,SAAC;AAmCF;IAjCS,UAAU,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;;AAG3B,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC7D,OAAO,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,UAAU,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAC,EAAE,GAAG;;;AAIxD,QAAA,OAAO,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,UAAU,IAAE,IAAI,CAAC,IAAI,CAAQ;;IAGlD,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAc,SAAS,EAAC,QAAQ,EAAA,EAC9B,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,KAAK,EAAA,EACd,IAAI,CAAC,UAAU,EAAE,EAClB,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,WAAW,EAAA,EACrB,CAAS,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAA,EACrC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAO,IAAI,CAAC,KAAK,CAAQ,CACjB,CACL,EACN,IAAI,CAAC,WAAW,KACf,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAQ,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,YAAA,EAAa,QAAQ,EAAA,EACjH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAA,cAAA,EAAc,GAAG,EAAA,EACzE,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAC,EAAC,oBAAoB,EAAG,CAAA,CAC3B,CACC,CACV,CACI,CACM;;;;;;;"}
|