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,673 +0,0 @@
|
|
|
1
|
-
import { h, Host, } from "@stencil/core";
|
|
2
|
-
import { classnames, generateId } from "../../utils/utils";
|
|
3
|
-
/**
|
|
4
|
-
* A flexible bar component that handles overflow gracefully.
|
|
5
|
-
*
|
|
6
|
-
* Items are slotted children. The bar measures which items fit on the first
|
|
7
|
-
* row and handles overflow according to the `overflow` prop.
|
|
8
|
-
*
|
|
9
|
-
* @slot - Bar items (children will be measured for overflow)
|
|
10
|
-
* @slot more - Custom "more" button content
|
|
11
|
-
* @slot hamburger - Custom hamburger button content
|
|
12
|
-
* @slot start-arrow - Custom left scroll arrow
|
|
13
|
-
* @slot end-arrow - Custom right scroll arrow
|
|
14
|
-
* @slot all-menu - Custom "show all" menu button
|
|
15
|
-
*
|
|
16
|
-
* @csspart container - The main bar container
|
|
17
|
-
* @csspart item - Individual items in the bar
|
|
18
|
-
* @csspart more-button - The "more" overflow button
|
|
19
|
-
* @csspart hamburger-button - The hamburger menu button
|
|
20
|
-
* @csspart arrow-start - The start (left) scroll arrow
|
|
21
|
-
* @csspart arrow-end - The end (right) scroll arrow
|
|
22
|
-
* @csspart all-menu-button - The "show all" menu button
|
|
23
|
-
* @csspart popover-content - The popover content wrapper
|
|
24
|
-
*
|
|
25
|
-
* @cmsEditable true
|
|
26
|
-
* @cmsCategory Layout
|
|
27
|
-
*/
|
|
28
|
-
export class LeBar {
|
|
29
|
-
constructor() {
|
|
30
|
-
/**
|
|
31
|
-
* Overflow behavior when items don't fit on one row.
|
|
32
|
-
* - `more`: Overflow items appear in a "more" dropdown
|
|
33
|
-
* - `scroll`: Items scroll horizontally with optional arrows
|
|
34
|
-
* - `hamburger`: All items go into a hamburger menu if any overflow
|
|
35
|
-
* - `wrap`: Items wrap to additional rows
|
|
36
|
-
*/
|
|
37
|
-
this.overflow = 'more';
|
|
38
|
-
/**
|
|
39
|
-
* Alignment of items within the bar (maps to justify-content).
|
|
40
|
-
*/
|
|
41
|
-
this.alignItems = 'start';
|
|
42
|
-
/**
|
|
43
|
-
* Show scroll arrows when overflow is "scroll".
|
|
44
|
-
*/
|
|
45
|
-
this.arrows = false;
|
|
46
|
-
/**
|
|
47
|
-
* Disable the internal overflow popover.
|
|
48
|
-
* When true, the bar still detects overflow and hides items,
|
|
49
|
-
* but doesn't render its own popover. Use this when providing
|
|
50
|
-
* custom overflow handling via the leBarOverflowChange event.
|
|
51
|
-
*/
|
|
52
|
-
this.disablePopover = false;
|
|
53
|
-
/**
|
|
54
|
-
* Minimum number of visible items required when using "more" overflow mode.
|
|
55
|
-
* If fewer items would be visible, the bar falls back to hamburger mode.
|
|
56
|
-
* Only applies when overflow is "more".
|
|
57
|
-
*/
|
|
58
|
-
this.minVisibleItems = 0;
|
|
59
|
-
/**
|
|
60
|
-
* Show an "all items" menu button.
|
|
61
|
-
* - `false`: Don't show
|
|
62
|
-
* - `true` or `'end'`: Show at end
|
|
63
|
-
* - `'start'`: Show at start
|
|
64
|
-
*/
|
|
65
|
-
this.showAllMenu = false;
|
|
66
|
-
/** Whether the hamburger/more popover is open */
|
|
67
|
-
this.popoverOpen = false;
|
|
68
|
-
/** Whether hamburger mode is active (for hamburger overflow) */
|
|
69
|
-
this.hamburgerActive = false;
|
|
70
|
-
/** IDs of items that are overflowing */
|
|
71
|
-
this.overflowingIds = new Set();
|
|
72
|
-
/** Whether we can scroll left */
|
|
73
|
-
this.canScrollStart = false;
|
|
74
|
-
/** Whether we can scroll right */
|
|
75
|
-
this.canScrollEnd = false;
|
|
76
|
-
/** Whether the all-menu popover is open */
|
|
77
|
-
this.allMenuOpen = false;
|
|
78
|
-
/** Current height of the items container (for overflow handling) */
|
|
79
|
-
this.containerHeight = null;
|
|
80
|
-
this.instanceId = generateId('le-bar');
|
|
81
|
-
// Map to track item elements and their IDs
|
|
82
|
-
this.itemMap = new Map();
|
|
83
|
-
// Prevent multiple recalculations in the same frame
|
|
84
|
-
this.pendingRecalc = null;
|
|
85
|
-
this.handleScroll = () => {
|
|
86
|
-
this.updateScrollState();
|
|
87
|
-
};
|
|
88
|
-
this.scrollToStart = () => {
|
|
89
|
-
if (!this.itemsContainerEl)
|
|
90
|
-
return;
|
|
91
|
-
const items = this.getSlottedItems();
|
|
92
|
-
const container = this.itemsContainerEl;
|
|
93
|
-
// Find the scroll position of the previous item
|
|
94
|
-
const currentScroll = container.scrollLeft;
|
|
95
|
-
let targetScroll = 0;
|
|
96
|
-
for (let i = items.length - 1; i >= 0; i--) {
|
|
97
|
-
const item = items[i];
|
|
98
|
-
// Calculate item's left edge relative to container's scroll position
|
|
99
|
-
const itemLeft = item.offsetLeft - container.offsetLeft;
|
|
100
|
-
// If this item starts before current scroll position, scroll to it
|
|
101
|
-
if (itemLeft < currentScroll - 1) {
|
|
102
|
-
targetScroll = itemLeft;
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
container.scrollTo({ left: targetScroll, behavior: 'smooth' });
|
|
107
|
-
// Update scroll state after animation
|
|
108
|
-
setTimeout(() => this.updateScrollState(), 300);
|
|
109
|
-
};
|
|
110
|
-
this.scrollToEnd = () => {
|
|
111
|
-
if (!this.itemsContainerEl)
|
|
112
|
-
return;
|
|
113
|
-
const container = this.itemsContainerEl;
|
|
114
|
-
const items = this.getSlottedItems();
|
|
115
|
-
if (items.length === 0)
|
|
116
|
-
return;
|
|
117
|
-
const containerWidth = container.clientWidth;
|
|
118
|
-
const currentScroll = container.scrollLeft;
|
|
119
|
-
let targetScroll = container.scrollWidth - containerWidth;
|
|
120
|
-
for (const item of items) {
|
|
121
|
-
// Calculate item's right edge relative to container
|
|
122
|
-
const itemLeft = item.offsetLeft - container.offsetLeft;
|
|
123
|
-
// If this is the next item to scroll to from left to right then scroll to it
|
|
124
|
-
if (itemLeft > currentScroll + 1) {
|
|
125
|
-
targetScroll = itemLeft;
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
container.scrollTo({ left: Math.max(0, targetScroll), behavior: 'smooth' });
|
|
130
|
-
// Update scroll state after animation
|
|
131
|
-
setTimeout(() => this.updateScrollState(), 300);
|
|
132
|
-
};
|
|
133
|
-
this.togglePopover = () => {
|
|
134
|
-
this.popoverOpen = !this.popoverOpen;
|
|
135
|
-
};
|
|
136
|
-
this.closePopover = () => {
|
|
137
|
-
this.popoverOpen = false;
|
|
138
|
-
};
|
|
139
|
-
this.toggleAllMenu = () => {
|
|
140
|
-
this.allMenuOpen = !this.allMenuOpen;
|
|
141
|
-
};
|
|
142
|
-
this.closeAllMenu = () => {
|
|
143
|
-
this.allMenuOpen = false;
|
|
144
|
-
};
|
|
145
|
-
this.handleItemClick = (_e, id) => {
|
|
146
|
-
// Close popover when an item inside is clicked
|
|
147
|
-
const originalItem = this.itemMap.get(id);
|
|
148
|
-
if (originalItem) {
|
|
149
|
-
// Clone the click to the original item
|
|
150
|
-
const cloneEvent = new MouseEvent('click', {
|
|
151
|
-
bubbles: true,
|
|
152
|
-
cancelable: true,
|
|
153
|
-
view: window,
|
|
154
|
-
});
|
|
155
|
-
originalItem.dispatchEvent(cloneEvent);
|
|
156
|
-
}
|
|
157
|
-
this.closePopover();
|
|
158
|
-
this.closeAllMenu();
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
handleOverflowChange() {
|
|
162
|
-
this.resetOverflowState();
|
|
163
|
-
this.scheduleOverflowRecalc();
|
|
164
|
-
}
|
|
165
|
-
handleSlotChange() {
|
|
166
|
-
this.scheduleOverflowRecalc();
|
|
167
|
-
}
|
|
168
|
-
connectedCallback() {
|
|
169
|
-
this.setupObservers();
|
|
170
|
-
}
|
|
171
|
-
componentDidLoad() {
|
|
172
|
-
this.scheduleOverflowRecalc();
|
|
173
|
-
}
|
|
174
|
-
componentDidRender() {
|
|
175
|
-
// Recalculate after render in case children changed
|
|
176
|
-
this.scheduleOverflowRecalc();
|
|
177
|
-
}
|
|
178
|
-
disconnectedCallback() {
|
|
179
|
-
this.resizeObserver?.disconnect();
|
|
180
|
-
this.mutationObserver?.disconnect();
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Force recalculation of overflow state.
|
|
184
|
-
*/
|
|
185
|
-
async recalculate() {
|
|
186
|
-
this.computeOverflow();
|
|
187
|
-
}
|
|
188
|
-
setupObservers() {
|
|
189
|
-
// ResizeObserver for container size changes
|
|
190
|
-
if (typeof ResizeObserver !== 'undefined') {
|
|
191
|
-
this.resizeObserver = new ResizeObserver(() => {
|
|
192
|
-
this.computeOverflow();
|
|
193
|
-
this.updateScrollState();
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
// MutationObserver for child changes
|
|
197
|
-
this.mutationObserver = new MutationObserver(() => {
|
|
198
|
-
this.scheduleOverflowRecalc();
|
|
199
|
-
});
|
|
200
|
-
this.mutationObserver.observe(this.el, {
|
|
201
|
-
childList: true,
|
|
202
|
-
subtree: false,
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
observeContainer(el) {
|
|
206
|
-
if (!this.resizeObserver)
|
|
207
|
-
return;
|
|
208
|
-
this.resizeObserver.disconnect();
|
|
209
|
-
if (el)
|
|
210
|
-
this.resizeObserver.observe(el);
|
|
211
|
-
}
|
|
212
|
-
scheduleOverflowRecalc() {
|
|
213
|
-
// Debounce recalculations to prevent infinite loops
|
|
214
|
-
if (this.pendingRecalc !== null) {
|
|
215
|
-
cancelAnimationFrame(this.pendingRecalc);
|
|
216
|
-
}
|
|
217
|
-
this.pendingRecalc = requestAnimationFrame(() => {
|
|
218
|
-
this.pendingRecalc = null;
|
|
219
|
-
this.computeOverflow();
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
resetOverflowState() {
|
|
223
|
-
this.hamburgerActive = false;
|
|
224
|
-
this.overflowingIds = new Set();
|
|
225
|
-
this.containerHeight = null;
|
|
226
|
-
this.popoverOpen = false;
|
|
227
|
-
}
|
|
228
|
-
getSlottedItems() {
|
|
229
|
-
// Get direct children from the light DOM (excluding named slot elements)
|
|
230
|
-
return Array.from(this.el.children).filter((el) => el instanceof HTMLElement && !el.hasAttribute('slot'));
|
|
231
|
-
}
|
|
232
|
-
getItemId(el, index) {
|
|
233
|
-
return el.id || el.dataset.barId || `${this.instanceId}-item-${index}`;
|
|
234
|
-
}
|
|
235
|
-
computeOverflow() {
|
|
236
|
-
if (this.overflow === 'wrap' || this.overflow === 'scroll') {
|
|
237
|
-
// No overflow handling needed for wrap/scroll modes
|
|
238
|
-
this.resetOverflowState();
|
|
239
|
-
this.updateScrollState();
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
const container = this.itemsContainerEl;
|
|
243
|
-
if (!container)
|
|
244
|
-
return;
|
|
245
|
-
const items = this.getSlottedItems();
|
|
246
|
-
if (items.length === 0) {
|
|
247
|
-
this.resetOverflowState();
|
|
248
|
-
return;
|
|
249
|
-
}
|
|
250
|
-
// Force a layout recalc
|
|
251
|
-
container.offsetHeight;
|
|
252
|
-
// Build item map
|
|
253
|
-
this.itemMap.clear();
|
|
254
|
-
items.forEach((item, index) => {
|
|
255
|
-
const id = this.getItemId(item, index);
|
|
256
|
-
this.itemMap.set(id, item);
|
|
257
|
-
});
|
|
258
|
-
// Get the position of items to determine which are on the first row
|
|
259
|
-
const itemRects = items.map((item, index) => ({
|
|
260
|
-
item,
|
|
261
|
-
id: this.getItemId(item, index),
|
|
262
|
-
rect: item.getBoundingClientRect(),
|
|
263
|
-
}));
|
|
264
|
-
if (itemRects.length === 0) {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
// Find the first row's top position (accounting for vertical alignment)
|
|
268
|
-
const containerRect = container.getBoundingClientRect();
|
|
269
|
-
const topValues = itemRects.map(i => i.rect.top - containerRect.top);
|
|
270
|
-
const minTop = Math.min(...topValues);
|
|
271
|
-
// Items are on the first row if their top is close to minTop
|
|
272
|
-
// Allow some tolerance for alignment differences
|
|
273
|
-
const tolerance = 15;
|
|
274
|
-
const firstRowItems = itemRects.filter(i => i.rect.top - containerRect.top <= minTop + tolerance);
|
|
275
|
-
const overflowItems = itemRects.filter(i => i.rect.top - containerRect.top > minTop + tolerance);
|
|
276
|
-
// Calculate the height of the first row
|
|
277
|
-
const firstRowBottom = firstRowItems.length > 0
|
|
278
|
-
? Math.max(...firstRowItems.map(i => i.rect.bottom - containerRect.top))
|
|
279
|
-
: 0;
|
|
280
|
-
if (this.overflow === 'hamburger') {
|
|
281
|
-
// In hamburger mode, if ANY item overflows, all go into the menu
|
|
282
|
-
const shouldHamburger = overflowItems.length > 0;
|
|
283
|
-
if (shouldHamburger !== this.hamburgerActive) {
|
|
284
|
-
this.hamburgerActive = shouldHamburger;
|
|
285
|
-
this.emitOverflowChange();
|
|
286
|
-
}
|
|
287
|
-
// Set height to show only first row (or hide all if hamburger is active)
|
|
288
|
-
if (shouldHamburger && firstRowBottom > 0) {
|
|
289
|
-
this.containerHeight = firstRowBottom;
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
this.containerHeight = null;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
else {
|
|
296
|
-
// 'more' mode
|
|
297
|
-
let newOverflowingIds = new Set(overflowItems.map(i => i.id));
|
|
298
|
-
// Check if we need to make room for the "more" button
|
|
299
|
-
if (newOverflowingIds.size > 0 && this.moreButtonEl) {
|
|
300
|
-
const moreRect = this.moreButtonEl.getBoundingClientRect();
|
|
301
|
-
const moreTop = moreRect.top - containerRect.top;
|
|
302
|
-
// If "more" button is not on the first row, we need to hide one more item
|
|
303
|
-
if (moreTop > minTop + tolerance) {
|
|
304
|
-
// Find the last visible item and move it to overflow
|
|
305
|
-
const lastVisible = firstRowItems[firstRowItems.length - 1];
|
|
306
|
-
if (lastVisible) {
|
|
307
|
-
newOverflowingIds.add(lastVisible.id);
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
// Check if we should fallback to hamburger mode
|
|
312
|
-
// This happens when minVisibleItems is set and fewer items would be visible
|
|
313
|
-
const visibleCount = items.length - newOverflowingIds.size;
|
|
314
|
-
const shouldFallbackToHamburger = this.minVisibleItems > 0 &&
|
|
315
|
-
newOverflowingIds.size > 0 &&
|
|
316
|
-
visibleCount < this.minVisibleItems;
|
|
317
|
-
if (shouldFallbackToHamburger) {
|
|
318
|
-
// Switch to hamburger mode - all items go into the menu
|
|
319
|
-
if (!this.hamburgerActive) {
|
|
320
|
-
this.hamburgerActive = true;
|
|
321
|
-
this.overflowingIds = new Set();
|
|
322
|
-
this.emitOverflowChange();
|
|
323
|
-
}
|
|
324
|
-
// Set height to show only first row
|
|
325
|
-
if (firstRowBottom > 0) {
|
|
326
|
-
this.containerHeight = firstRowBottom;
|
|
327
|
-
}
|
|
328
|
-
else {
|
|
329
|
-
this.containerHeight = null;
|
|
330
|
-
}
|
|
331
|
-
return;
|
|
332
|
-
}
|
|
333
|
-
// Not falling back to hamburger - ensure hamburgerActive is false
|
|
334
|
-
if (this.hamburgerActive) {
|
|
335
|
-
this.hamburgerActive = false;
|
|
336
|
-
}
|
|
337
|
-
// Check if overflow state changed
|
|
338
|
-
const hasChanged = (newOverflowingIds?.size ?? 0) !== (this.overflowingIds?.size ?? 0) ||
|
|
339
|
-
![...newOverflowingIds].every(id => this.overflowingIds?.has(id));
|
|
340
|
-
if (hasChanged) {
|
|
341
|
-
this.overflowingIds = newOverflowingIds;
|
|
342
|
-
this.emitOverflowChange();
|
|
343
|
-
}
|
|
344
|
-
// Set container height to show only first row
|
|
345
|
-
if ((newOverflowingIds?.size ?? 0) > 0 && firstRowBottom > 0) {
|
|
346
|
-
this.containerHeight = firstRowBottom;
|
|
347
|
-
}
|
|
348
|
-
else {
|
|
349
|
-
this.containerHeight = null;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
emitOverflowChange() {
|
|
354
|
-
this.leBarOverflowChange.emit({
|
|
355
|
-
overflowingIds: [...(this.overflowingIds ?? [])],
|
|
356
|
-
hamburgerActive: this.hamburgerActive,
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
updateScrollState() {
|
|
360
|
-
if (this.overflow !== 'scroll' || !this.itemsContainerEl) {
|
|
361
|
-
this.canScrollStart = false;
|
|
362
|
-
this.canScrollEnd = false;
|
|
363
|
-
return;
|
|
364
|
-
}
|
|
365
|
-
const el = this.itemsContainerEl;
|
|
366
|
-
this.canScrollStart = el.scrollLeft > 0;
|
|
367
|
-
this.canScrollEnd = el.scrollLeft < el.scrollWidth - el.clientWidth - 1;
|
|
368
|
-
}
|
|
369
|
-
renderMoreButton() {
|
|
370
|
-
const hasSlottedMore = this.el.querySelector('[slot="more"]');
|
|
371
|
-
return (h("button", { class: "bar-more-button", part: "more-button", ref: el => (this.moreButtonEl = el), onClick: this.togglePopover, "aria-expanded": String(this.popoverOpen), "aria-haspopup": "true" }, hasSlottedMore ? h("slot", { name: "more" }) : h("le-icon", { name: "ellipsis-horizontal" })));
|
|
372
|
-
}
|
|
373
|
-
renderHamburgerButton() {
|
|
374
|
-
const hasSlottedHamburger = this.el.querySelector('[slot="hamburger"]');
|
|
375
|
-
return (h("button", { class: "bar-hamburger-button", part: "hamburger-button", onClick: this.togglePopover, "aria-expanded": String(this.popoverOpen), "aria-haspopup": "true" }, hasSlottedHamburger ? h("slot", { name: "hamburger" }) : h("le-icon", { name: "hamburger" })));
|
|
376
|
-
}
|
|
377
|
-
renderScrollArrows() {
|
|
378
|
-
if (!this.arrows || this.overflow !== 'scroll')
|
|
379
|
-
return null;
|
|
380
|
-
const hasSlottedStartArrow = this.el.querySelector('[slot="start-arrow"]');
|
|
381
|
-
const hasSlottedEndArrow = this.el.querySelector('[slot="end-arrow"]');
|
|
382
|
-
return [
|
|
383
|
-
h("button", { class: classnames('bar-arrow', 'bar-arrow-start', {
|
|
384
|
-
disabled: !this.canScrollStart,
|
|
385
|
-
}), part: "arrow-start", onClick: this.scrollToStart, disabled: !this.canScrollStart, "aria-label": "Scroll to start" }, hasSlottedStartArrow ? (h("slot", { name: "start-arrow" })) : (h("le-icon", { name: "chevron-down", class: "arrow-icon-start" }))),
|
|
386
|
-
h("button", { class: classnames('bar-arrow', 'bar-arrow-end', {
|
|
387
|
-
disabled: !this.canScrollEnd,
|
|
388
|
-
}), part: "arrow-end", onClick: this.scrollToEnd, disabled: !this.canScrollEnd, "aria-label": "Scroll to end" }, hasSlottedEndArrow ? (h("slot", { name: "end-arrow" })) : (h("le-icon", { name: "chevron-down", class: "arrow-icon-end" }))),
|
|
389
|
-
];
|
|
390
|
-
}
|
|
391
|
-
renderAllMenuButton() {
|
|
392
|
-
if (!this.showAllMenu)
|
|
393
|
-
return null;
|
|
394
|
-
const hasSlottedAllMenu = this.el.querySelector('[slot="all-menu"]');
|
|
395
|
-
return (h("button", { class: "bar-all-menu-button", part: "all-menu-button", onClick: this.toggleAllMenu, "aria-expanded": String(this.allMenuOpen), "aria-haspopup": "true" }, hasSlottedAllMenu ? h("slot", { name: "all-menu" }) : h("le-icon", { name: "hamburger" })));
|
|
396
|
-
}
|
|
397
|
-
renderPopoverContent(itemsToShow) {
|
|
398
|
-
return (h("div", { class: "bar-popover-content", part: "popover-content" }, itemsToShow.map(({ id, item }) => (h("div", { class: "bar-popover-item", key: id, onClick: (e) => this.handleItemClick(e, id), innerHTML: item.outerHTML })))));
|
|
399
|
-
}
|
|
400
|
-
renderOverflowPopover() {
|
|
401
|
-
if (this.overflow !== 'more' && this.overflow !== 'hamburger')
|
|
402
|
-
return null;
|
|
403
|
-
const items = this.getSlottedItems();
|
|
404
|
-
let itemsToShow = [];
|
|
405
|
-
if (this.overflow === 'hamburger' && this.hamburgerActive) {
|
|
406
|
-
// Show all items in hamburger mode
|
|
407
|
-
itemsToShow = items.map((item, index) => ({
|
|
408
|
-
id: this.getItemId(item, index),
|
|
409
|
-
item,
|
|
410
|
-
}));
|
|
411
|
-
}
|
|
412
|
-
else if (this.overflow === 'more' && (this.overflowingIds?.size ?? 0) > 0) {
|
|
413
|
-
// Show only overflowing items
|
|
414
|
-
itemsToShow = items
|
|
415
|
-
.map((item, index) => ({
|
|
416
|
-
id: this.getItemId(item, index),
|
|
417
|
-
item,
|
|
418
|
-
}))
|
|
419
|
-
.filter(({ id }) => this.overflowingIds?.has(id));
|
|
420
|
-
}
|
|
421
|
-
if (itemsToShow.length === 0)
|
|
422
|
-
return null;
|
|
423
|
-
return (h("le-popover", { mode: "default", open: this.popoverOpen, position: "bottom", align: "end", showClose: false, closeOnClickOutside: true, closeOnEscape: true, onLePopoverClose: this.closePopover }, h("div", { slot: "trigger", class: "bar-overflow-trigger" }, this.overflow === 'hamburger' ? this.renderHamburgerButton() : this.renderMoreButton()), this.renderPopoverContent(itemsToShow)));
|
|
424
|
-
}
|
|
425
|
-
renderAllMenuPopover() {
|
|
426
|
-
if (!this.showAllMenu)
|
|
427
|
-
return null;
|
|
428
|
-
const items = this.getSlottedItems();
|
|
429
|
-
const itemsToShow = items.map((item, index) => ({
|
|
430
|
-
id: this.getItemId(item, index),
|
|
431
|
-
item,
|
|
432
|
-
}));
|
|
433
|
-
const position = this.showAllMenu === 'start' ? 'start' : 'end';
|
|
434
|
-
return (h("le-popover", { mode: "default", open: this.allMenuOpen, position: "bottom", align: position, showClose: false, closeOnClickOutside: true, closeOnEscape: true, onLePopoverClose: this.closeAllMenu }, h("div", { slot: "trigger", class: "bar-all-menu-trigger" }, this.renderAllMenuButton()), this.renderPopoverContent(itemsToShow)));
|
|
435
|
-
}
|
|
436
|
-
render() {
|
|
437
|
-
const showOverflowButton = !this.disablePopover &&
|
|
438
|
-
((this.overflow === 'more' && (this.overflowingIds?.size ?? 0) > 0) ||
|
|
439
|
-
(this.overflow === 'hamburger' && this.hamburgerActive));
|
|
440
|
-
const containerStyle = {};
|
|
441
|
-
if (this.containerHeight !== null &&
|
|
442
|
-
(this.overflow === 'more' || this.overflow === 'hamburger')) {
|
|
443
|
-
containerStyle.height = `${this.containerHeight}px`;
|
|
444
|
-
}
|
|
445
|
-
const showAllMenuAtStart = this.showAllMenu === 'start';
|
|
446
|
-
const showAllMenuAtEnd = this.showAllMenu === true || this.showAllMenu === 'end';
|
|
447
|
-
return (h(Host, { key: '56d04e4504ed7ce1d8e78a825c71c71c074d0b62', class: classnames({
|
|
448
|
-
'overflow-more': this.overflow === 'more',
|
|
449
|
-
'overflow-scroll': this.overflow === 'scroll',
|
|
450
|
-
'overflow-hamburger': this.overflow === 'hamburger',
|
|
451
|
-
'overflow-wrap': this.overflow === 'wrap',
|
|
452
|
-
'hamburger-active': this.hamburgerActive,
|
|
453
|
-
'has-overflow': (this.overflowingIds?.size ?? 0) > 0 || this.hamburgerActive,
|
|
454
|
-
}) }, h("div", { key: '4e7aeb4c84a9964e19012c3d05827fa8406988b0', class: classnames('bar-container', {
|
|
455
|
-
[`align-${this.alignItems}`]: true,
|
|
456
|
-
}), part: "container" }, this.overflow === 'scroll' && this.arrows && (h("div", { key: '2e3ae04c00e88e5055216dbc5b6d53574c450470', class: "bar-controls bar-controls-start" }, this.renderScrollArrows()?.[0])), showAllMenuAtStart && (h("div", { key: '9628c8dc2b15d9358baad63b19c75fd933eeb19a', class: "bar-controls bar-controls-start" }, this.renderAllMenuPopover())), h("div", { key: 'd1feb9603d0ff4247852aadb62cb920a5f5a1921', class: classnames('bar-items', {
|
|
457
|
-
'is-scrollable': this.overflow === 'scroll',
|
|
458
|
-
'is-wrapping': this.overflow === 'wrap',
|
|
459
|
-
}), style: containerStyle, ref: el => {
|
|
460
|
-
this.itemsContainerEl = el;
|
|
461
|
-
this.observeContainer(el);
|
|
462
|
-
}, onScroll: this.overflow === 'scroll' ? this.handleScroll : undefined }, h("slot", { key: '338698e038b9df4c7b163017ceb0675b834160e4' })), showOverflowButton && (h("div", { key: 'd619fcda1b0c28247af60899f73cc076b0517787', class: "bar-controls bar-controls-end" }, this.renderOverflowPopover())), showAllMenuAtEnd && (h("div", { key: 'fd9fef90194aabb8d48e77c8f7615daa5d7297ac', class: "bar-controls bar-controls-end" }, this.renderAllMenuPopover())), this.overflow === 'scroll' && this.arrows && (h("div", { key: 'bcffb914e2788767c3765351a3eeae771f3e115f', class: "bar-controls bar-controls-end" }, this.renderScrollArrows()?.[1])))));
|
|
463
|
-
}
|
|
464
|
-
static get is() { return "le-bar"; }
|
|
465
|
-
static get encapsulation() { return "shadow"; }
|
|
466
|
-
static get originalStyleUrls() {
|
|
467
|
-
return {
|
|
468
|
-
"$": ["le-bar.css"]
|
|
469
|
-
};
|
|
470
|
-
}
|
|
471
|
-
static get styleUrls() {
|
|
472
|
-
return {
|
|
473
|
-
"$": ["le-bar.css"]
|
|
474
|
-
};
|
|
475
|
-
}
|
|
476
|
-
static get properties() {
|
|
477
|
-
return {
|
|
478
|
-
"overflow": {
|
|
479
|
-
"type": "string",
|
|
480
|
-
"mutable": false,
|
|
481
|
-
"complexType": {
|
|
482
|
-
"original": "'more' | 'scroll' | 'hamburger' | 'wrap'",
|
|
483
|
-
"resolved": "\"hamburger\" | \"more\" | \"scroll\" | \"wrap\"",
|
|
484
|
-
"references": {}
|
|
485
|
-
},
|
|
486
|
-
"required": false,
|
|
487
|
-
"optional": false,
|
|
488
|
-
"docs": {
|
|
489
|
-
"tags": [],
|
|
490
|
-
"text": "Overflow behavior when items don't fit on one row.\n- `more`: Overflow items appear in a \"more\" dropdown\n- `scroll`: Items scroll horizontally with optional arrows\n- `hamburger`: All items go into a hamburger menu if any overflow\n- `wrap`: Items wrap to additional rows"
|
|
491
|
-
},
|
|
492
|
-
"getter": false,
|
|
493
|
-
"setter": false,
|
|
494
|
-
"reflect": true,
|
|
495
|
-
"attribute": "overflow",
|
|
496
|
-
"defaultValue": "'more'"
|
|
497
|
-
},
|
|
498
|
-
"alignItems": {
|
|
499
|
-
"type": "string",
|
|
500
|
-
"mutable": false,
|
|
501
|
-
"complexType": {
|
|
502
|
-
"original": "'start' | 'end' | 'center' | 'stretch'",
|
|
503
|
-
"resolved": "\"center\" | \"end\" | \"start\" | \"stretch\"",
|
|
504
|
-
"references": {}
|
|
505
|
-
},
|
|
506
|
-
"required": false,
|
|
507
|
-
"optional": false,
|
|
508
|
-
"docs": {
|
|
509
|
-
"tags": [],
|
|
510
|
-
"text": "Alignment of items within the bar (maps to justify-content)."
|
|
511
|
-
},
|
|
512
|
-
"getter": false,
|
|
513
|
-
"setter": false,
|
|
514
|
-
"reflect": true,
|
|
515
|
-
"attribute": "align-items",
|
|
516
|
-
"defaultValue": "'start'"
|
|
517
|
-
},
|
|
518
|
-
"arrows": {
|
|
519
|
-
"type": "boolean",
|
|
520
|
-
"mutable": false,
|
|
521
|
-
"complexType": {
|
|
522
|
-
"original": "boolean",
|
|
523
|
-
"resolved": "boolean",
|
|
524
|
-
"references": {}
|
|
525
|
-
},
|
|
526
|
-
"required": false,
|
|
527
|
-
"optional": false,
|
|
528
|
-
"docs": {
|
|
529
|
-
"tags": [],
|
|
530
|
-
"text": "Show scroll arrows when overflow is \"scroll\"."
|
|
531
|
-
},
|
|
532
|
-
"getter": false,
|
|
533
|
-
"setter": false,
|
|
534
|
-
"reflect": false,
|
|
535
|
-
"attribute": "arrows",
|
|
536
|
-
"defaultValue": "false"
|
|
537
|
-
},
|
|
538
|
-
"disablePopover": {
|
|
539
|
-
"type": "boolean",
|
|
540
|
-
"mutable": false,
|
|
541
|
-
"complexType": {
|
|
542
|
-
"original": "boolean",
|
|
543
|
-
"resolved": "boolean",
|
|
544
|
-
"references": {}
|
|
545
|
-
},
|
|
546
|
-
"required": false,
|
|
547
|
-
"optional": false,
|
|
548
|
-
"docs": {
|
|
549
|
-
"tags": [],
|
|
550
|
-
"text": "Disable the internal overflow popover.\nWhen true, the bar still detects overflow and hides items,\nbut doesn't render its own popover. Use this when providing\ncustom overflow handling via the leBarOverflowChange event."
|
|
551
|
-
},
|
|
552
|
-
"getter": false,
|
|
553
|
-
"setter": false,
|
|
554
|
-
"reflect": false,
|
|
555
|
-
"attribute": "disable-popover",
|
|
556
|
-
"defaultValue": "false"
|
|
557
|
-
},
|
|
558
|
-
"minVisibleItems": {
|
|
559
|
-
"type": "number",
|
|
560
|
-
"mutable": false,
|
|
561
|
-
"complexType": {
|
|
562
|
-
"original": "number",
|
|
563
|
-
"resolved": "number",
|
|
564
|
-
"references": {}
|
|
565
|
-
},
|
|
566
|
-
"required": false,
|
|
567
|
-
"optional": false,
|
|
568
|
-
"docs": {
|
|
569
|
-
"tags": [],
|
|
570
|
-
"text": "Minimum number of visible items required when using \"more\" overflow mode.\nIf fewer items would be visible, the bar falls back to hamburger mode.\nOnly applies when overflow is \"more\"."
|
|
571
|
-
},
|
|
572
|
-
"getter": false,
|
|
573
|
-
"setter": false,
|
|
574
|
-
"reflect": false,
|
|
575
|
-
"attribute": "min-visible-items",
|
|
576
|
-
"defaultValue": "0"
|
|
577
|
-
},
|
|
578
|
-
"showAllMenu": {
|
|
579
|
-
"type": "any",
|
|
580
|
-
"mutable": false,
|
|
581
|
-
"complexType": {
|
|
582
|
-
"original": "boolean | 'start' | 'end'",
|
|
583
|
-
"resolved": "\"end\" | \"start\" | boolean",
|
|
584
|
-
"references": {}
|
|
585
|
-
},
|
|
586
|
-
"required": false,
|
|
587
|
-
"optional": false,
|
|
588
|
-
"docs": {
|
|
589
|
-
"tags": [],
|
|
590
|
-
"text": "Show an \"all items\" menu button.\n- `false`: Don't show\n- `true` or `'end'`: Show at end\n- `'start'`: Show at start"
|
|
591
|
-
},
|
|
592
|
-
"getter": false,
|
|
593
|
-
"setter": false,
|
|
594
|
-
"reflect": false,
|
|
595
|
-
"attribute": "show-all-menu",
|
|
596
|
-
"defaultValue": "false"
|
|
597
|
-
}
|
|
598
|
-
};
|
|
599
|
-
}
|
|
600
|
-
static get states() {
|
|
601
|
-
return {
|
|
602
|
-
"popoverOpen": {},
|
|
603
|
-
"hamburgerActive": {},
|
|
604
|
-
"overflowingIds": {},
|
|
605
|
-
"canScrollStart": {},
|
|
606
|
-
"canScrollEnd": {},
|
|
607
|
-
"allMenuOpen": {},
|
|
608
|
-
"containerHeight": {}
|
|
609
|
-
};
|
|
610
|
-
}
|
|
611
|
-
static get events() {
|
|
612
|
-
return [{
|
|
613
|
-
"method": "leBarOverflowChange",
|
|
614
|
-
"name": "leBarOverflowChange",
|
|
615
|
-
"bubbles": true,
|
|
616
|
-
"cancelable": true,
|
|
617
|
-
"composed": true,
|
|
618
|
-
"docs": {
|
|
619
|
-
"tags": [],
|
|
620
|
-
"text": "Emitted when overflow state changes."
|
|
621
|
-
},
|
|
622
|
-
"complexType": {
|
|
623
|
-
"original": "LeBarOverflowChangeDetail",
|
|
624
|
-
"resolved": "LeBarOverflowChangeDetail",
|
|
625
|
-
"references": {
|
|
626
|
-
"LeBarOverflowChangeDetail": {
|
|
627
|
-
"location": "local",
|
|
628
|
-
"path": "/home/runner/work/le-kit/le-kit/src/components/le-bar/le-bar.tsx",
|
|
629
|
-
"id": "src/components/le-bar/le-bar.tsx::LeBarOverflowChangeDetail"
|
|
630
|
-
}
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
|
-
}];
|
|
634
|
-
}
|
|
635
|
-
static get methods() {
|
|
636
|
-
return {
|
|
637
|
-
"recalculate": {
|
|
638
|
-
"complexType": {
|
|
639
|
-
"signature": "() => Promise<void>",
|
|
640
|
-
"parameters": [],
|
|
641
|
-
"references": {
|
|
642
|
-
"Promise": {
|
|
643
|
-
"location": "global",
|
|
644
|
-
"id": "global::Promise"
|
|
645
|
-
}
|
|
646
|
-
},
|
|
647
|
-
"return": "Promise<void>"
|
|
648
|
-
},
|
|
649
|
-
"docs": {
|
|
650
|
-
"text": "Force recalculation of overflow state.",
|
|
651
|
-
"tags": []
|
|
652
|
-
}
|
|
653
|
-
}
|
|
654
|
-
};
|
|
655
|
-
}
|
|
656
|
-
static get elementRef() { return "el"; }
|
|
657
|
-
static get watchers() {
|
|
658
|
-
return [{
|
|
659
|
-
"propName": "overflow",
|
|
660
|
-
"methodName": "handleOverflowChange"
|
|
661
|
-
}];
|
|
662
|
-
}
|
|
663
|
-
static get listeners() {
|
|
664
|
-
return [{
|
|
665
|
-
"name": "slotchange",
|
|
666
|
-
"method": "handleSlotChange",
|
|
667
|
-
"target": undefined,
|
|
668
|
-
"capture": false,
|
|
669
|
-
"passive": false
|
|
670
|
-
}];
|
|
671
|
-
}
|
|
672
|
-
}
|
|
673
|
-
//# sourceMappingURL=le-bar.js.map
|