le-kit 0.5.3 → 0.5.4
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 +0 -33
- 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,297 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var index = require('./index-BzadfLTc.js');
|
|
4
|
-
var utils = require('./utils-Dxx9WhWK.js');
|
|
5
|
-
|
|
6
|
-
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}`;
|
|
7
|
-
|
|
8
|
-
const LeTabs = class {
|
|
9
|
-
constructor(hostRef) {
|
|
10
|
-
index.registerInstance(this, hostRef);
|
|
11
|
-
this.leTabChange = index.createEvent(this, "leTabChange");
|
|
12
|
-
/**
|
|
13
|
-
* Array of tab options (programmatic mode).
|
|
14
|
-
* If le-tab-panel children exist, they take precedence.
|
|
15
|
-
*/
|
|
16
|
-
this.tabs = [];
|
|
17
|
-
/**
|
|
18
|
-
* Orientation of the tabs.
|
|
19
|
-
* @allowedValues horizontal | vertical
|
|
20
|
-
*/
|
|
21
|
-
this.orientation = 'horizontal';
|
|
22
|
-
/**
|
|
23
|
-
* Position of the tabs relative to the panels.
|
|
24
|
-
* @allowedValues start | end
|
|
25
|
-
*/
|
|
26
|
-
this.position = 'start';
|
|
27
|
-
/**
|
|
28
|
-
* Tab variant style.
|
|
29
|
-
* @allowedValues underlined | solid | pills | enclosed | icon-only
|
|
30
|
-
*/
|
|
31
|
-
this.variant = 'underlined';
|
|
32
|
-
/**
|
|
33
|
-
* Whether tabs should stretch to fill available width.
|
|
34
|
-
*/
|
|
35
|
-
this.fullWidth = false;
|
|
36
|
-
/**
|
|
37
|
-
* Size of the tabs.
|
|
38
|
-
* @allowedValues sm | md | lg
|
|
39
|
-
*/
|
|
40
|
-
this.size = 'medium';
|
|
41
|
-
/**
|
|
42
|
-
* Wrap the tabs if they exceed container width.
|
|
43
|
-
*/
|
|
44
|
-
this.wrap = false;
|
|
45
|
-
/**
|
|
46
|
-
* Scroll behavior for overflowing tabs.
|
|
47
|
-
* @allowedValues auto | hidden | visible | scroll
|
|
48
|
-
*/
|
|
49
|
-
this.overflow = 'auto';
|
|
50
|
-
/**
|
|
51
|
-
* Internal tab configurations (built from children or tabs prop)
|
|
52
|
-
*/
|
|
53
|
-
this.tabConfigs = [];
|
|
54
|
-
/**
|
|
55
|
-
* Internal state for focused tab index (for keyboard navigation)
|
|
56
|
-
*/
|
|
57
|
-
this.focusedIndex = 0;
|
|
58
|
-
/**
|
|
59
|
-
* Whether we're using declarative mode (le-tab-panel children)
|
|
60
|
-
*/
|
|
61
|
-
this.isDeclarativeMode = false;
|
|
62
|
-
this.handleTabClick = (config) => {
|
|
63
|
-
this.selectTab(config);
|
|
64
|
-
};
|
|
65
|
-
this.handleKeyDown = (event) => {
|
|
66
|
-
const { tabConfigs, orientation } = this;
|
|
67
|
-
const isHorizontal = orientation === 'horizontal';
|
|
68
|
-
let newIndex = this.focusedIndex;
|
|
69
|
-
switch (event.key) {
|
|
70
|
-
case 'ArrowLeft':
|
|
71
|
-
if (isHorizontal) {
|
|
72
|
-
event.preventDefault();
|
|
73
|
-
newIndex = this.findNextEnabledTab(-1);
|
|
74
|
-
}
|
|
75
|
-
break;
|
|
76
|
-
case 'ArrowRight':
|
|
77
|
-
if (isHorizontal) {
|
|
78
|
-
event.preventDefault();
|
|
79
|
-
newIndex = this.findNextEnabledTab(1);
|
|
80
|
-
}
|
|
81
|
-
break;
|
|
82
|
-
case 'ArrowUp':
|
|
83
|
-
if (!isHorizontal) {
|
|
84
|
-
event.preventDefault();
|
|
85
|
-
newIndex = this.findNextEnabledTab(-1);
|
|
86
|
-
}
|
|
87
|
-
break;
|
|
88
|
-
case 'ArrowDown':
|
|
89
|
-
if (!isHorizontal) {
|
|
90
|
-
event.preventDefault();
|
|
91
|
-
newIndex = this.findNextEnabledTab(1);
|
|
92
|
-
}
|
|
93
|
-
break;
|
|
94
|
-
case 'Home':
|
|
95
|
-
event.preventDefault();
|
|
96
|
-
newIndex = this.findFirstEnabledTab();
|
|
97
|
-
break;
|
|
98
|
-
case 'End':
|
|
99
|
-
event.preventDefault();
|
|
100
|
-
newIndex = this.findLastEnabledTab();
|
|
101
|
-
break;
|
|
102
|
-
case 'Enter':
|
|
103
|
-
case ' ':
|
|
104
|
-
event.preventDefault();
|
|
105
|
-
if (tabConfigs[this.focusedIndex]) {
|
|
106
|
-
this.selectTab(tabConfigs[this.focusedIndex]);
|
|
107
|
-
}
|
|
108
|
-
return;
|
|
109
|
-
default:
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (newIndex !== this.focusedIndex) {
|
|
113
|
-
this.focusedIndex = newIndex;
|
|
114
|
-
this.focusTab(newIndex);
|
|
115
|
-
// Auto-select on focus (recommended for tabs)
|
|
116
|
-
if (tabConfigs[newIndex]) {
|
|
117
|
-
this.selectTab(tabConfigs[newIndex]);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
selectedChanged(newValue) {
|
|
123
|
-
const index = this.tabConfigs.findIndex(t => t.value === newValue);
|
|
124
|
-
if (index >= 0) {
|
|
125
|
-
this.focusedIndex = index;
|
|
126
|
-
}
|
|
127
|
-
this.updatePanelStates();
|
|
128
|
-
}
|
|
129
|
-
tabsChanged() {
|
|
130
|
-
if (!this.isDeclarativeMode) {
|
|
131
|
-
this.buildTabConfigs();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
handleSlotChange() {
|
|
135
|
-
this.buildTabConfigs();
|
|
136
|
-
}
|
|
137
|
-
componentWillLoad() {
|
|
138
|
-
this.buildTabConfigs();
|
|
139
|
-
}
|
|
140
|
-
connectedCallback() {
|
|
141
|
-
// Watch for dynamic changes to children
|
|
142
|
-
this.mutationObserver = new MutationObserver(() => {
|
|
143
|
-
this.buildTabConfigs();
|
|
144
|
-
});
|
|
145
|
-
this.mutationObserver.observe(this.el, {
|
|
146
|
-
attributes: true,
|
|
147
|
-
childList: true,
|
|
148
|
-
subtree: true,
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
disconnectedCallback() {
|
|
152
|
-
this.mutationObserver?.disconnect();
|
|
153
|
-
}
|
|
154
|
-
async buildTabConfigs() {
|
|
155
|
-
// Check for le-tab-panel children
|
|
156
|
-
const panels = Array.from(this.el.querySelectorAll(':scope > le-tab-panel'));
|
|
157
|
-
if (panels.length > 0) {
|
|
158
|
-
// Declarative mode - build from children
|
|
159
|
-
this.isDeclarativeMode = true;
|
|
160
|
-
const configs = [];
|
|
161
|
-
for (const panel of panels) {
|
|
162
|
-
const config = await panel.getTabConfig();
|
|
163
|
-
configs.push({ ...config, panel });
|
|
164
|
-
}
|
|
165
|
-
this.tabConfigs = configs;
|
|
166
|
-
}
|
|
167
|
-
else if (this.tabs.length > 0) {
|
|
168
|
-
// Programmatic mode - use tabs prop
|
|
169
|
-
this.isDeclarativeMode = false;
|
|
170
|
-
this.tabConfigs = this.tabs.map(tab => ({
|
|
171
|
-
label: tab.label,
|
|
172
|
-
value: (tab.value !== undefined ? tab.value : tab.label),
|
|
173
|
-
iconStart: tab.iconStart,
|
|
174
|
-
iconEnd: tab.iconEnd,
|
|
175
|
-
disabled: tab.disabled ?? false,
|
|
176
|
-
}));
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
this.tabConfigs = [];
|
|
180
|
-
}
|
|
181
|
-
// Set default selected
|
|
182
|
-
if (this.selected === undefined && this.tabConfigs.length > 0) {
|
|
183
|
-
const firstEnabled = this.tabConfigs.find(t => !t.disabled);
|
|
184
|
-
if (firstEnabled) {
|
|
185
|
-
this.selected = firstEnabled.value;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
// Initialize focused index
|
|
189
|
-
if (this.selected !== undefined) {
|
|
190
|
-
const index = this.tabConfigs.findIndex(t => t.value === this.selected);
|
|
191
|
-
if (index >= 0) {
|
|
192
|
-
this.focusedIndex = index;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
// Update panel active states
|
|
196
|
-
this.updatePanelStates();
|
|
197
|
-
}
|
|
198
|
-
async updatePanelStates() {
|
|
199
|
-
if (!this.isDeclarativeMode)
|
|
200
|
-
return;
|
|
201
|
-
for (const config of this.tabConfigs) {
|
|
202
|
-
if (config.panel) {
|
|
203
|
-
const isActive = config.value === this.selected;
|
|
204
|
-
await config.panel.setActive(isActive);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
selectTab(config) {
|
|
209
|
-
if (config.disabled)
|
|
210
|
-
return;
|
|
211
|
-
this.selected = config.value;
|
|
212
|
-
this.leTabChange.emit({
|
|
213
|
-
value: config.value,
|
|
214
|
-
option: {
|
|
215
|
-
label: config.label,
|
|
216
|
-
value: config.value,
|
|
217
|
-
iconStart: config.iconStart,
|
|
218
|
-
iconEnd: config.iconEnd,
|
|
219
|
-
disabled: config.disabled,
|
|
220
|
-
},
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
findNextEnabledTab(direction) {
|
|
224
|
-
const { tabConfigs } = this;
|
|
225
|
-
let index = this.focusedIndex;
|
|
226
|
-
const length = tabConfigs.length;
|
|
227
|
-
for (let i = 0; i < length; i++) {
|
|
228
|
-
index = (index + direction + length) % length;
|
|
229
|
-
if (!tabConfigs[index].disabled) {
|
|
230
|
-
return index;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
return this.focusedIndex;
|
|
234
|
-
}
|
|
235
|
-
findFirstEnabledTab() {
|
|
236
|
-
return this.tabConfigs.findIndex(t => !t.disabled);
|
|
237
|
-
}
|
|
238
|
-
findLastEnabledTab() {
|
|
239
|
-
for (let i = this.tabConfigs.length - 1; i >= 0; i--) {
|
|
240
|
-
if (!this.tabConfigs[i].disabled)
|
|
241
|
-
return i;
|
|
242
|
-
}
|
|
243
|
-
return 0;
|
|
244
|
-
}
|
|
245
|
-
focusTab(index) {
|
|
246
|
-
const tablist = this.el.shadowRoot?.querySelector('[role="tablist"]');
|
|
247
|
-
const tab = tablist?.querySelectorAll('[role="tab"]')[index];
|
|
248
|
-
tab?.focus();
|
|
249
|
-
}
|
|
250
|
-
render() {
|
|
251
|
-
const { tabConfigs, selected, orientation, variant, fullWidth, size, isDeclarativeMode } = this;
|
|
252
|
-
const classes = {
|
|
253
|
-
'le-tabs': true,
|
|
254
|
-
[`orientation-${orientation}`]: true,
|
|
255
|
-
[`position-${this.position}`]: true,
|
|
256
|
-
[`variant-${variant}`]: true,
|
|
257
|
-
[`size-${size}`]: true,
|
|
258
|
-
'full-width': fullWidth,
|
|
259
|
-
};
|
|
260
|
-
const tabPosition = this.orientation === 'vertical'
|
|
261
|
-
? this.position
|
|
262
|
-
: this.position === 'start'
|
|
263
|
-
? 'top'
|
|
264
|
-
: 'bottom';
|
|
265
|
-
return (index.h("le-component", { key: '0240e0ae8c8b2513e80e8a032101df47a2041e3d', component: "le-tabs", hostClass: utils.classnames(classes) }, index.h("div", { key: 'b063db57a29d4c212ed81a738c41d7e395f5618c', class: classes }, index.h("div", { key: '01ba40aac8cb13357c668d82daf7c34f7fb104e6', class: {
|
|
266
|
-
'tablist': true,
|
|
267
|
-
'wrap-tabs': this.wrap,
|
|
268
|
-
[`overflow-${this.overflow}`]: true,
|
|
269
|
-
}, role: "tablist", "aria-orientation": orientation, part: "tablist", onKeyDown: this.handleKeyDown, tabIndex: 0 }, tabConfigs.map(config => {
|
|
270
|
-
const isSelected = config.value === selected;
|
|
271
|
-
const tabId = `tab-${config.value}`;
|
|
272
|
-
const panelId = `panel-${config.value}`;
|
|
273
|
-
return (index.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 }, index.h("span", { class: "tab-label" }, config.label)));
|
|
274
|
-
})), index.h("div", { key: 'b1e16928f27f5083e94674e80b0ad397eb3e8fec', class: "panels", part: "panels" }, isDeclarativeMode ? (
|
|
275
|
-
// Declarative mode - render slot for le-tab-panel children
|
|
276
|
-
index.h("le-slot", { name: "", description: "Tab panels", type: "slot", allowedComponents: "le-tab-panel" }, index.h("slot", null))) : (
|
|
277
|
-
// Programmatic mode - render named slots
|
|
278
|
-
tabConfigs.map(config => {
|
|
279
|
-
const isSelected = config.value === selected;
|
|
280
|
-
const tabId = `tab-${config.value}`;
|
|
281
|
-
const panelId = `panel-${config.value}`;
|
|
282
|
-
return (index.h("div", { key: config.value, id: panelId, class: {
|
|
283
|
-
'panel': true,
|
|
284
|
-
'panel-active': isSelected,
|
|
285
|
-
}, role: "tabpanel", part: "panel", "aria-labelledby": tabId, tabIndex: 0, hidden: !isSelected }, index.h("slot", { name: `panel-${config.value}` })));
|
|
286
|
-
}))))));
|
|
287
|
-
}
|
|
288
|
-
get el() { return index.getElement(this); }
|
|
289
|
-
static get watchers() { return {
|
|
290
|
-
"selected": ["selectedChanged"],
|
|
291
|
-
"tabs": ["tabsChanged"]
|
|
292
|
-
}; }
|
|
293
|
-
};
|
|
294
|
-
LeTabs.style = leTabsCss();
|
|
295
|
-
|
|
296
|
-
exports.le_tabs = LeTabs;
|
|
297
|
-
//# sourceMappingURL=le-tabs.entry.cjs.js.map
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var index = require('./index-BzadfLTc.js');
|
|
4
|
-
|
|
5
|
-
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}`;
|
|
6
|
-
|
|
7
|
-
const LeTag = class {
|
|
8
|
-
constructor(hostRef) {
|
|
9
|
-
index.registerInstance(this, hostRef);
|
|
10
|
-
this.leDismiss = index.createEvent(this, "leDismiss");
|
|
11
|
-
/**
|
|
12
|
-
* Whether the tag can be dismissed (shows close button).
|
|
13
|
-
*/
|
|
14
|
-
this.dismissible = false;
|
|
15
|
-
/**
|
|
16
|
-
* Whether the tag is disabled.
|
|
17
|
-
*/
|
|
18
|
-
this.disabled = false;
|
|
19
|
-
/**
|
|
20
|
-
* The size of the tag.
|
|
21
|
-
*/
|
|
22
|
-
this.size = 'medium';
|
|
23
|
-
/**
|
|
24
|
-
* The visual variant of the tag.
|
|
25
|
-
*/
|
|
26
|
-
this.variant = 'default';
|
|
27
|
-
this.handleDismiss = (e) => {
|
|
28
|
-
e.stopPropagation();
|
|
29
|
-
if (!this.disabled) {
|
|
30
|
-
this.leDismiss.emit();
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
renderIcon() {
|
|
35
|
-
if (!this.icon)
|
|
36
|
-
return null;
|
|
37
|
-
// Check if it's a URL (starts with http, https, or /)
|
|
38
|
-
if (this.icon.startsWith('http') || this.icon.startsWith('/')) {
|
|
39
|
-
return index.h("img", { class: "tag-icon", src: this.icon, alt: "" });
|
|
40
|
-
}
|
|
41
|
-
// Otherwise render as text (emoji or icon font)
|
|
42
|
-
return index.h("span", { class: "tag-icon" }, this.icon);
|
|
43
|
-
}
|
|
44
|
-
render() {
|
|
45
|
-
return (index.h("le-component", { key: '6903620dec3042a396c4e39ed378f59e4889fb5f', component: "le-tag" }, index.h("span", { key: '23a31349e50aeb8a38bfdf22e6151562eaa16a6e', class: "tag" }, this.renderIcon(), index.h("span", { key: '8505dd5c9ed47baf702d947bf687875dd7c8283e', class: "tag-label" }, index.h("le-slot", { key: '1f7b44714f1f1b4f1a1a5af6925b15d6026cc7e4', name: "", tag: "span", type: "text" }, index.h("slot", { key: '7722a7f387284cbc3c8ef38deeff69c7a02282a8' }, this.label))), this.dismissible && (index.h("button", { key: 'ae937d67c269ef0ff504926623ed95061c750232', type: "button", class: "tag-dismiss", onClick: this.handleDismiss, disabled: this.disabled, "aria-label": "Remove" }, index.h("svg", { key: '9cf11ec361d62de7b6ef524c40edad13c1da9c06', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, index.h("path", { key: 'e919bccb3fa4679f7e808960195d670685f1e0df', d: "M4 4l8 8M12 4l-8 8" })))))));
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
LeTag.style = leTagCss();
|
|
49
|
-
|
|
50
|
-
exports.le_tag = LeTag;
|
|
51
|
-
//# sourceMappingURL=le-tag.entry.cjs.js.map
|
|
@@ -1,318 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var index = require('./index-BzadfLTc.js');
|
|
4
|
-
var utils = require('./utils-Dxx9WhWK.js');
|
|
5
|
-
|
|
6
|
-
const leTextCss = () => `:host{display:block}:host([hidden]){display:none}.le-text{margin:0;color:var(--le-text-color, var(--le-color-text));font-family:var(--le-font-family);line-height:var(--le-text-line-height, 1.5)}.variant-p{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-normal, 400);color:var(--le-color-text)}.variant-h1{font-size:var(--le-font-size-4xl, 2.5rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.2;color:var(--le-color-text);letter-spacing:-0.02em}.variant-h2{font-size:var(--le-font-size-3xl, 2rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.25;color:var(--le-color-text);letter-spacing:-0.01em}.variant-h3{font-size:var(--le-font-size-2xl, 1.5rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.3;color:var(--le-color-text)}.variant-h4{font-size:var(--le-font-size-xl, 1.25rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.35;color:var(--le-color-text)}.variant-h5{font-size:var(--le-font-size-lg, 1.125rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.4;color:var(--le-color-text)}.variant-h6{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.45;color:var(--le-color-text);text-transform:uppercase;letter-spacing:0.05em}.variant-code{font-family:var(--le-font-family-mono, 'SF Mono', 'Fira Code', 'Consolas', monospace);font-size:var(--le-font-size-sm, 0.875rem);background:var(--le-color-surface-alt, #f5f5f5);padding:var(--le-space-md);border-radius:var(--le-radius-md);overflow-x:auto;white-space:pre-wrap;color:var(--le-color-text)}.variant-quote{font-size:var(--le-font-size-lg, 1.125rem);font-style:italic;color:var(--le-color-text-secondary);border-left:4px solid var(--le-color-primary);padding-left:var(--le-space-lg);margin-left:0;margin-right:0}.variant-label{font-size:var(--le-font-size-sm, 0.875rem);font-weight:var(--le-font-weight-medium, 500);color:var(--le-color-text-secondary);text-transform:uppercase;letter-spacing:0.05em}.variant-small{font-size:var(--le-font-size-sm, 0.875rem);color:var(--le-color-text-secondary)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truncate.max-lines-2,.truncate.max-lines-3,.truncate.max-lines-4,.truncate.max-lines-5{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical}.truncate.max-lines-2{-webkit-line-clamp:2;line-clamp:2}.truncate.max-lines-3{-webkit-line-clamp:3;line-clamp:3}.truncate.max-lines-4{-webkit-line-clamp:4;line-clamp:4}.truncate.max-lines-5{-webkit-line-clamp:5;line-clamp:5}:host([align="center"]) .le-text{text-align:center}:host([align="right"]) .le-text{text-align:right}:host([align="justify"]) .le-text{text-align:justify}.le-text a{color:var(--le-color-primary);text-decoration:underline}.le-text a:hover{color:var(--le-color-primary-dark)}.le-text strong,.le-text b{font-weight:var(--le-font-weight-bold, 700)}.le-text em,.le-text i{font-style:italic}.le-text u{text-decoration:underline}.le-text s,.le-text strike{text-decoration:line-through}`;
|
|
7
|
-
|
|
8
|
-
const LeText = class {
|
|
9
|
-
constructor(hostRef) {
|
|
10
|
-
index.registerInstance(this, hostRef);
|
|
11
|
-
/**
|
|
12
|
-
* The semantic variant/type of text element
|
|
13
|
-
* @allowedValues p | h1 | h2 | h3 | h4 | h5 | h6 | code | quote | label | small
|
|
14
|
-
*/
|
|
15
|
-
this.variant = 'p';
|
|
16
|
-
/**
|
|
17
|
-
* Text alignment
|
|
18
|
-
* @allowedValues left | center | right | justify
|
|
19
|
-
*/
|
|
20
|
-
this.align = 'left';
|
|
21
|
-
/**
|
|
22
|
-
* Whether the text should truncate with ellipsis
|
|
23
|
-
*/
|
|
24
|
-
this.truncate = false;
|
|
25
|
-
/**
|
|
26
|
-
* Internal state to track admin mode
|
|
27
|
-
*/
|
|
28
|
-
this.adminMode = false;
|
|
29
|
-
/**
|
|
30
|
-
* The HTML content being edited
|
|
31
|
-
*/
|
|
32
|
-
this.content = '';
|
|
33
|
-
/**
|
|
34
|
-
* Whether the editor is focused (shows toolbar)
|
|
35
|
-
*/
|
|
36
|
-
this.isFocused = false;
|
|
37
|
-
/**
|
|
38
|
-
* Current selection state for toolbar button highlighting
|
|
39
|
-
*/
|
|
40
|
-
this.selectionState = {
|
|
41
|
-
isBold: false,
|
|
42
|
-
isItalic: false,
|
|
43
|
-
isUnderline: false,
|
|
44
|
-
isStrikethrough: false,
|
|
45
|
-
isLink: false,
|
|
46
|
-
blockType: 'p',
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* Handle input in the contenteditable
|
|
50
|
-
*/
|
|
51
|
-
this.handleInput = () => {
|
|
52
|
-
if (this.editorRef) {
|
|
53
|
-
this.content = this.editorRef.innerHTML;
|
|
54
|
-
this.updateSelectionState();
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* Handle focus on the editor
|
|
59
|
-
*/
|
|
60
|
-
this.handleFocus = () => {
|
|
61
|
-
this.isFocused = true;
|
|
62
|
-
this.updateSelectionState();
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Handle blur on the editor
|
|
66
|
-
*/
|
|
67
|
-
this.handleBlur = (e) => {
|
|
68
|
-
// Check if focus moved to toolbar
|
|
69
|
-
const relatedTarget = e.relatedTarget;
|
|
70
|
-
const toolbar = this.el.shadowRoot?.querySelector('.le-text-toolbar');
|
|
71
|
-
if (toolbar?.contains(relatedTarget)) {
|
|
72
|
-
// Focus moved to toolbar, keep it open
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
// Small delay to allow toolbar clicks to register
|
|
76
|
-
setTimeout(() => {
|
|
77
|
-
if (!this.el.shadowRoot?.activeElement) {
|
|
78
|
-
this.isFocused = false;
|
|
79
|
-
this.syncContentToSlot();
|
|
80
|
-
}
|
|
81
|
-
}, 150);
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Handle selection change to update toolbar state
|
|
85
|
-
*/
|
|
86
|
-
this.handleSelectionChange = () => {
|
|
87
|
-
this.updateSelectionState();
|
|
88
|
-
};
|
|
89
|
-
/**
|
|
90
|
-
* Toggle bold formatting
|
|
91
|
-
*/
|
|
92
|
-
this.toggleBold = (e) => {
|
|
93
|
-
e.preventDefault();
|
|
94
|
-
this.execCommand('bold');
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Toggle italic formatting
|
|
98
|
-
*/
|
|
99
|
-
this.toggleItalic = (e) => {
|
|
100
|
-
e.preventDefault();
|
|
101
|
-
this.execCommand('italic');
|
|
102
|
-
};
|
|
103
|
-
/**
|
|
104
|
-
* Toggle underline formatting
|
|
105
|
-
*/
|
|
106
|
-
this.toggleUnderline = (e) => {
|
|
107
|
-
e.preventDefault();
|
|
108
|
-
this.execCommand('underline');
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* Toggle strikethrough formatting
|
|
112
|
-
*/
|
|
113
|
-
this.toggleStrikethrough = (e) => {
|
|
114
|
-
e.preventDefault();
|
|
115
|
-
this.execCommand('strikeThrough');
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* Add or edit a link
|
|
119
|
-
*/
|
|
120
|
-
this.toggleLink = (e) => {
|
|
121
|
-
e.preventDefault();
|
|
122
|
-
if (this.selectionState.isLink) {
|
|
123
|
-
// Remove link
|
|
124
|
-
this.execCommand('unlink');
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
// Add link
|
|
128
|
-
const url = prompt('Enter URL:', 'https://');
|
|
129
|
-
if (url) {
|
|
130
|
-
this.execCommand('createLink', url);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
/**
|
|
135
|
-
* Change the block type/variant
|
|
136
|
-
*/
|
|
137
|
-
this.changeVariant = (e) => {
|
|
138
|
-
const select = e.target;
|
|
139
|
-
this.variant = select.value;
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
connectedCallback() {
|
|
143
|
-
this.disconnectModeObserver = utils.observeModeChanges(this.el, mode => {
|
|
144
|
-
const wasAdmin = this.adminMode;
|
|
145
|
-
this.adminMode = mode === 'admin';
|
|
146
|
-
if (this.adminMode && !wasAdmin) {
|
|
147
|
-
// Entering admin mode - read content from slot
|
|
148
|
-
requestAnimationFrame(() => this.readSlottedContent());
|
|
149
|
-
}
|
|
150
|
-
else if (!this.adminMode && wasAdmin) {
|
|
151
|
-
// Leaving admin mode - sync content back to slot
|
|
152
|
-
this.syncContentToSlot();
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
disconnectedCallback() {
|
|
157
|
-
this.disconnectModeObserver?.();
|
|
158
|
-
}
|
|
159
|
-
onVariantChange() {
|
|
160
|
-
// When variant changes in admin mode, update the content wrapper
|
|
161
|
-
if (this.adminMode && this.editorRef) {
|
|
162
|
-
this.syncContentToSlot();
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Read content from slotted elements
|
|
167
|
-
*/
|
|
168
|
-
readSlottedContent() {
|
|
169
|
-
if (!this.slotRef)
|
|
170
|
-
return;
|
|
171
|
-
const assignedNodes = this.slotRef.assignedNodes({ flatten: true });
|
|
172
|
-
// Collect all content from assigned nodes
|
|
173
|
-
let html = '';
|
|
174
|
-
assignedNodes.forEach(node => {
|
|
175
|
-
if (node.nodeType === Node.TEXT_NODE) {
|
|
176
|
-
html += node.textContent;
|
|
177
|
-
}
|
|
178
|
-
else if (node.nodeType === Node.ELEMENT_NODE) {
|
|
179
|
-
html += node.innerHTML || node.textContent;
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
this.content = html.trim();
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Sync edited content back to the slot
|
|
186
|
-
*/
|
|
187
|
-
syncContentToSlot() {
|
|
188
|
-
if (!this.editorRef)
|
|
189
|
-
return;
|
|
190
|
-
const newContent = this.editorRef.innerHTML;
|
|
191
|
-
// Update the light DOM content
|
|
192
|
-
// We need to update the actual slotted content
|
|
193
|
-
const slot = this.slotRef;
|
|
194
|
-
if (slot) {
|
|
195
|
-
const assignedNodes = slot.assignedNodes({ flatten: true });
|
|
196
|
-
if (assignedNodes.length > 0) {
|
|
197
|
-
const firstNode = assignedNodes[0];
|
|
198
|
-
if (firstNode.nodeType === Node.ELEMENT_NODE) {
|
|
199
|
-
firstNode.innerHTML = newContent;
|
|
200
|
-
}
|
|
201
|
-
else if (firstNode.nodeType === Node.TEXT_NODE) {
|
|
202
|
-
// Replace text node with the new content
|
|
203
|
-
const parent = firstNode.parentNode;
|
|
204
|
-
if (parent) {
|
|
205
|
-
// Create a temporary element to parse HTML
|
|
206
|
-
const temp = document.createElement('span');
|
|
207
|
-
temp.innerHTML = newContent;
|
|
208
|
-
// Replace the text node
|
|
209
|
-
parent.replaceChild(temp, firstNode);
|
|
210
|
-
// Unwrap the span if it only contains text
|
|
211
|
-
if (temp.childNodes.length === 1 && temp.firstChild?.nodeType === Node.TEXT_NODE) {
|
|
212
|
-
parent.replaceChild(temp.firstChild, temp);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
// No assigned nodes, set innerHTML on the host's light DOM
|
|
219
|
-
this.el.innerHTML = newContent;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Update the selection state for toolbar highlighting
|
|
225
|
-
*/
|
|
226
|
-
updateSelectionState() {
|
|
227
|
-
const selection = window.getSelection();
|
|
228
|
-
if (!selection || selection.rangeCount === 0)
|
|
229
|
-
return;
|
|
230
|
-
this.selectionState = {
|
|
231
|
-
isBold: document.queryCommandState('bold'),
|
|
232
|
-
isItalic: document.queryCommandState('italic'),
|
|
233
|
-
isUnderline: document.queryCommandState('underline'),
|
|
234
|
-
isStrikethrough: document.queryCommandState('strikeThrough'),
|
|
235
|
-
isLink: this.isSelectionInLink(selection),
|
|
236
|
-
blockType: this.variant,
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Check if current selection is within a link
|
|
241
|
-
*/
|
|
242
|
-
isSelectionInLink(selection) {
|
|
243
|
-
if (!selection.anchorNode)
|
|
244
|
-
return false;
|
|
245
|
-
let node = selection.anchorNode;
|
|
246
|
-
while (node && node !== this.editorRef) {
|
|
247
|
-
if (node.nodeName === 'A')
|
|
248
|
-
return true;
|
|
249
|
-
node = node.parentNode;
|
|
250
|
-
}
|
|
251
|
-
return false;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Execute a formatting command
|
|
255
|
-
*/
|
|
256
|
-
execCommand(command, value) {
|
|
257
|
-
// Focus the editor first
|
|
258
|
-
this.editorRef?.focus();
|
|
259
|
-
// Execute the command
|
|
260
|
-
document.execCommand(command, false, value);
|
|
261
|
-
// Update state
|
|
262
|
-
this.handleInput();
|
|
263
|
-
this.updateSelectionState();
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Render the formatting toolbar
|
|
267
|
-
*/
|
|
268
|
-
renderToolbar() {
|
|
269
|
-
return (index.h("div", { class: "le-text-toolbar" }, index.h("select", { class: "le-text-toolbar-select", onChange: this.changeVariant, onMouseDown: e => e.preventDefault() }, index.h("option", { value: "p", selected: this.variant === 'p' }, "Paragraph"), index.h("option", { value: "h1", selected: this.variant === 'h1' }, "Heading 1"), index.h("option", { value: "h2", selected: this.variant === 'h2' }, "Heading 2"), index.h("option", { value: "h3", selected: this.variant === 'h3' }, "Heading 3"), index.h("option", { value: "h4", selected: this.variant === 'h4' }, "Heading 4"), index.h("option", { value: "h5", selected: this.variant === 'h5' }, "Heading 5"), index.h("option", { value: "h6", selected: this.variant === 'h6' }, "Heading 6"), index.h("option", { value: "quote", selected: this.variant === 'quote' }, "Quote"), index.h("option", { value: "code", selected: this.variant === 'code' }, "Code"), index.h("option", { value: "label", selected: this.variant === 'label' }, "Label"), index.h("option", { value: "small", selected: this.variant === 'small' }, "Small")), index.h("div", { class: "le-text-toolbar-divider" }), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isBold }, onMouseDown: this.toggleBold, title: "Bold (Ctrl+B)" }, index.h("strong", null, "B")), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isItalic }, onMouseDown: this.toggleItalic, title: "Italic (Ctrl+I)" }, index.h("em", null, "I")), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isUnderline }, onMouseDown: this.toggleUnderline, title: "Underline (Ctrl+U)" }, index.h("span", { style: { textDecoration: 'underline' } }, "U")), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isStrikethrough }, onMouseDown: this.toggleStrikethrough, title: "Strikethrough" }, index.h("span", { style: { textDecoration: 'line-through' } }, "S")), index.h("div", { class: "le-text-toolbar-divider" }), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isLink }, onMouseDown: this.toggleLink, title: this.selectionState.isLink ? 'Remove link' : 'Add link' }, "\uD83D\uDD17")));
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* Get the semantic tag for the current variant
|
|
273
|
-
*/
|
|
274
|
-
getTag() {
|
|
275
|
-
switch (this.variant) {
|
|
276
|
-
case 'quote':
|
|
277
|
-
return 'blockquote';
|
|
278
|
-
case 'code':
|
|
279
|
-
return 'pre';
|
|
280
|
-
case 'label':
|
|
281
|
-
return 'label';
|
|
282
|
-
case 'small':
|
|
283
|
-
return 'small';
|
|
284
|
-
default:
|
|
285
|
-
return this.variant; // h1-h6, p
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
render() {
|
|
289
|
-
const Tag = this.getTag();
|
|
290
|
-
const textStyle = {};
|
|
291
|
-
if (this.color) {
|
|
292
|
-
textStyle.color = this.color;
|
|
293
|
-
}
|
|
294
|
-
if (this.align) {
|
|
295
|
-
textStyle.textAlign = this.align;
|
|
296
|
-
}
|
|
297
|
-
const textClass = {
|
|
298
|
-
'le-text': true,
|
|
299
|
-
[`variant-${this.variant}`]: true,
|
|
300
|
-
'truncate': this.truncate,
|
|
301
|
-
[`max-lines-${this.maxLines}`]: this.truncate && this.maxLines,
|
|
302
|
-
};
|
|
303
|
-
// Admin mode - show rich text editor
|
|
304
|
-
if (this.adminMode) {
|
|
305
|
-
return (index.h(index.Host, { class: "admin-mode" }, index.h("le-component", { component: "le-text" }, index.h("div", { class: "le-text-editor-wrapper" }, this.isFocused && this.renderToolbar(), index.h(Tag, { class: textClass, part: "text", style: textStyle }, index.h("div", { ref: el => (this.editorRef = el), class: "le-text-editor", contentEditable: true, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyUp: this.handleSelectionChange, onMouseUp: this.handleSelectionChange, innerHTML: this.content })), index.h("div", { class: "hidden-slot" }, index.h("slot", { ref: el => (this.slotRef = el), onSlotchange: () => this.readSlottedContent() }))))));
|
|
306
|
-
}
|
|
307
|
-
// Default mode - render semantic element with slotted content
|
|
308
|
-
return (index.h(index.Host, null, index.h(Tag, { class: textClass, part: "text", style: textStyle }, index.h("slot", { ref: el => (this.slotRef = el) }))));
|
|
309
|
-
}
|
|
310
|
-
get el() { return index.getElement(this); }
|
|
311
|
-
static get watchers() { return {
|
|
312
|
-
"variant": ["onVariantChange"]
|
|
313
|
-
}; }
|
|
314
|
-
};
|
|
315
|
-
LeText.style = leTextCss();
|
|
316
|
-
|
|
317
|
-
exports.le_text = LeText;
|
|
318
|
-
//# sourceMappingURL=le-text.entry.cjs.js.map
|