igniteui-webcomponents 3.2.0 → 3.3.0-beta.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/CHANGELOG.md +30 -8
- package/README.md +52 -2
- package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
- package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
- package/components/button/button-base.d.ts +1 -1
- package/components/button/themes/button/light/button.base.css.js +1 -1
- package/components/button/themes/button/light/button.base.css.js.map +1 -1
- package/components/button/themes/button/light/button.material.css.js +1 -1
- package/components/button/themes/button/light/button.material.css.js.map +1 -1
- package/components/calendar/calendar.d.ts +1 -1
- package/components/calendar/days-view/days-view.d.ts +1 -1
- package/components/calendar/months-view/months-view.d.ts +1 -1
- package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js +1 -1
- package/components/calendar/themes/bootstrap/calendar.bootstrap.css.js.map +1 -1
- package/components/calendar/years-view/years-view.d.ts +1 -1
- package/components/card/card.header.js +2 -0
- package/components/card/card.header.js.map +1 -1
- package/components/card/themes/light/card.header.bootstrap.css.js +1 -1
- package/components/card/themes/light/card.header.bootstrap.css.js.map +1 -1
- package/components/{nav-drawer/styles/indigo/nav-drawer-header-item.indigo.css.d.ts → card/themes/light/card.header.fluent.css.d.ts} +0 -0
- package/components/card/themes/light/card.header.fluent.css.js +3 -0
- package/components/card/themes/light/card.header.fluent.css.js.map +1 -0
- package/components/checkbox/checkbox-base.d.ts +1 -1
- package/components/checkbox/themes/light/checkbox.base.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.base.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.bootstrap.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox.material.css.js +1 -1
- package/components/checkbox/themes/light/checkbox.material.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.base.css.js +1 -1
- package/components/checkbox/themes/light/switch.base.css.js.map +1 -1
- package/components/checkbox/themes/light/switch.fluent.css.js +1 -1
- package/components/checkbox/themes/light/switch.fluent.css.js.map +1 -1
- package/components/chip/chip.d.ts +1 -1
- package/components/chip/themes/chip.base.css.js +1 -1
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/chip.fluent.css.js +1 -1
- package/components/chip/themes/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/chip.indigo.css.js +1 -1
- package/components/chip/themes/chip.indigo.css.js.map +1 -1
- package/components/chip/themes/chip.material.css.js +1 -1
- package/components/chip/themes/chip.material.css.js.map +1 -1
- package/components/common/definitions/defineAllComponents.js +8 -0
- package/components/common/definitions/defineAllComponents.js.map +1 -1
- package/components/common/mixins/constructor.d.ts +1 -0
- package/components/common/mixins/constructor.js.map +1 -1
- package/components/common/mixins/event-emitter.d.ts +2 -2
- package/components/common/mixins/event-emitter.js +2 -2
- package/components/common/mixins/event-emitter.js.map +1 -1
- package/components/common/util.d.ts +18 -0
- package/components/common/util.js +17 -0
- package/components/common/util.js.map +1 -1
- package/components/date-time-input/date-time-input.d.ts +108 -0
- package/components/date-time-input/date-time-input.js +495 -0
- package/components/date-time-input/date-time-input.js.map +1 -0
- package/components/date-time-input/date-util.d.ts +89 -0
- package/components/date-time-input/date-util.js +597 -0
- package/components/date-time-input/date-util.js.map +1 -0
- package/components/dropdown/dropdown-group.js +2 -0
- package/components/dropdown/dropdown-group.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +2 -1
- package/components/expansion-panel/expansion-panel.js +1 -0
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/form/form.d.ts +1 -1
- package/components/form/form.js +3 -1
- package/components/form/form.js.map +1 -1
- package/components/icon/icon.material.css.js +1 -1
- package/components/icon/icon.material.css.js.map +1 -1
- package/components/input/input-base.d.ts +6 -3
- package/components/input/input-base.js +10 -6
- package/components/input/input-base.js.map +1 -1
- package/components/input/input.d.ts +1 -4
- package/components/input/input.js +8 -4
- package/components/input/input.js.map +1 -1
- package/components/input/themes/light/input.bootstrap.css.js +1 -1
- package/components/input/themes/light/input.bootstrap.css.js.map +1 -1
- package/components/list/themes/light/list-item.bootstrap.css.js +1 -1
- package/components/list/themes/light/list-item.bootstrap.css.js.map +1 -1
- package/components/list/themes/light/list-item.fluent.css.js +1 -1
- package/components/list/themes/light/list-item.fluent.css.js.map +1 -1
- package/components/list/themes/light/list-item.indigo.css.js +1 -1
- package/components/list/themes/light/list-item.indigo.css.js.map +1 -1
- package/components/mask-input/mask-input-base.d.ts +38 -0
- package/components/mask-input/mask-input-base.js +110 -0
- package/components/mask-input/mask-input-base.js.map +1 -0
- package/components/mask-input/mask-input.d.ts +5 -36
- package/components/mask-input/mask-input.js +11 -89
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/nav-drawer/nav-drawer-header-item.js +4 -3
- package/components/nav-drawer/nav-drawer-header-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.js +4 -3
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.js +2 -2
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/nav-drawer/{styles → themes/dark}/nav-drawer-item.base.css.d.ts +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.base.css.js.map +1 -0
- package/components/nav-drawer/{styles/indigo/nav-drawer-item.indigo.css.d.ts → themes/dark/nav-drawer-item.bootstrap.css.d.ts} +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.bootstrap.css.js.map +1 -0
- package/components/nav-drawer/{styles/indigo/nav-drawer.indigo.css.d.ts → themes/dark/nav-drawer-item.fluent.css.d.ts} +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.fluent.css.js.map +1 -0
- package/components/nav-drawer/{styles/nav-drawer-header-item.base.css.d.ts → themes/dark/nav-drawer-item.indigo.css.d.ts} +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer-item.indigo.css.js.map +1 -0
- package/components/nav-drawer/{styles/nav-drawer.base.css.d.ts → themes/dark/nav-drawer.indigo.css.d.ts} +0 -0
- package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js +3 -0
- package/components/nav-drawer/themes/dark/nav-drawer.indigo.css.js.map +1 -0
- package/components/{snackbar/themes/snackbar.base.css.d.ts → nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.d.ts} +0 -0
- package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js +3 -0
- package/components/nav-drawer/themes/light/fluent/nav-drawer-header-item.fluent.css.js.map +1 -0
- package/components/{snackbar/themes/snackbar.bootstrap.css.d.ts → nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.d.ts} +0 -0
- package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js +3 -0
- package/components/nav-drawer/themes/light/fluent/nav-drawer-item.fluent.css.js.map +1 -0
- package/components/{snackbar/themes/snackbar.fluent.css.d.ts → nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.d.ts} +0 -0
- package/components/nav-drawer/{styles → themes/light}/indigo/nav-drawer-header-item.indigo.css.js +0 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer-header-item.indigo.css.js.map +1 -0
- package/components/{snackbar/themes/snackbar.indigo.css.d.ts → nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.d.ts} +0 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js +3 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer-item.indigo.css.js.map +1 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.d.ts +1 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js +3 -0
- package/components/nav-drawer/themes/light/indigo/nav-drawer.indigo.css.js.map +1 -0
- package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.d.ts +1 -0
- package/components/nav-drawer/{styles → themes/light}/nav-drawer-header-item.base.css.js +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-header-item.base.css.js.map +1 -0
- package/components/nav-drawer/themes/light/nav-drawer-item.base.css.d.ts +1 -0
- package/components/nav-drawer/{styles → themes/light}/nav-drawer-item.base.css.js +1 -1
- package/components/nav-drawer/themes/light/nav-drawer-item.base.css.js.map +1 -0
- package/components/nav-drawer/themes/light/nav-drawer.base.css.d.ts +1 -0
- package/components/nav-drawer/{styles → themes/light}/nav-drawer.base.css.js +0 -0
- package/components/nav-drawer/themes/light/nav-drawer.base.css.js.map +1 -0
- package/components/radio/radio.d.ts +1 -1
- package/components/radio/themes/light/radio.base.css.js +1 -1
- package/components/radio/themes/light/radio.base.css.js.map +1 -1
- package/components/radio/themes/light/radio.fluent.css.js +1 -1
- package/components/radio/themes/light/radio.fluent.css.js.map +1 -1
- package/components/rating/rating.d.ts +1 -1
- package/components/slider/range-slider.d.ts +1 -1
- package/components/slider/slider.d.ts +1 -1
- package/components/snackbar/snackbar.d.ts +1 -1
- package/components/snackbar/snackbar.js +5 -4
- package/components/snackbar/snackbar.js.map +1 -1
- package/components/snackbar/themes/dark/snackbar.indigo.css.d.ts +1 -0
- package/components/snackbar/themes/dark/snackbar.indigo.css.js +3 -0
- package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -0
- package/components/snackbar/themes/light/snackbar.base.css.d.ts +1 -0
- package/components/snackbar/themes/light/snackbar.base.css.js +3 -0
- package/components/snackbar/themes/light/snackbar.base.css.js.map +1 -0
- package/components/snackbar/themes/light/snackbar.bootstrap.css.d.ts +1 -0
- package/components/snackbar/themes/light/snackbar.bootstrap.css.js +3 -0
- package/components/snackbar/themes/light/snackbar.bootstrap.css.js.map +1 -0
- package/components/snackbar/themes/light/snackbar.fluent.css.d.ts +1 -0
- package/components/snackbar/themes/light/snackbar.fluent.css.js +3 -0
- package/components/snackbar/themes/light/snackbar.fluent.css.js.map +1 -0
- package/components/snackbar/themes/light/snackbar.indigo.css.d.ts +1 -0
- package/components/snackbar/themes/light/snackbar.indigo.css.js +3 -0
- package/components/snackbar/themes/light/snackbar.indigo.css.js.map +1 -0
- package/components/tabs/tab-panel.d.ts +20 -0
- package/components/tabs/tab-panel.js +21 -0
- package/components/tabs/tab-panel.js.map +1 -0
- package/components/tabs/tab.d.ts +37 -0
- package/components/tabs/tab.js +71 -0
- package/components/tabs/tab.js.map +1 -0
- package/components/tabs/tabs.d.ts +80 -0
- package/components/tabs/tabs.js +308 -0
- package/components/tabs/tabs.js.map +1 -0
- package/components/tabs/themes/dark/tab.dark.base.css.d.ts +1 -0
- package/components/tabs/themes/dark/tab.dark.base.css.js +3 -0
- package/components/tabs/themes/dark/tab.dark.base.css.js.map +1 -0
- package/components/tabs/themes/dark/tab.dark.bootstrap.css.d.ts +1 -0
- package/components/tabs/themes/dark/tab.dark.bootstrap.css.js +3 -0
- package/components/tabs/themes/dark/tab.dark.bootstrap.css.js.map +1 -0
- package/components/tabs/themes/light/tab-panel.base.css.d.ts +1 -0
- package/components/tabs/themes/light/tab-panel.base.css.js +3 -0
- package/components/tabs/themes/light/tab-panel.base.css.js.map +1 -0
- package/components/tabs/themes/light/tab.base.css.d.ts +1 -0
- package/components/tabs/themes/light/tab.base.css.js +3 -0
- package/components/tabs/themes/light/tab.base.css.js.map +1 -0
- package/components/tabs/themes/light/tab.bootstrap.css.d.ts +1 -0
- package/components/tabs/themes/light/tab.bootstrap.css.js +3 -0
- package/components/tabs/themes/light/tab.bootstrap.css.js.map +1 -0
- package/components/tabs/themes/light/tab.fluent.css.d.ts +1 -0
- package/components/tabs/themes/light/tab.fluent.css.js +3 -0
- package/components/tabs/themes/light/tab.fluent.css.js.map +1 -0
- package/components/tabs/themes/light/tab.indigo.css.d.ts +1 -0
- package/components/tabs/themes/light/tab.indigo.css.js +3 -0
- package/components/tabs/themes/light/tab.indigo.css.js.map +1 -0
- package/components/tabs/themes/light/tabs.base.css.d.ts +1 -0
- package/components/tabs/themes/light/tabs.base.css.js +3 -0
- package/components/tabs/themes/light/tabs.base.css.js.map +1 -0
- package/components/tabs/themes/light/tabs.bootstrap.css.d.ts +1 -0
- package/components/tabs/themes/light/tabs.bootstrap.css.js +3 -0
- package/components/tabs/themes/light/tabs.bootstrap.css.js.map +1 -0
- package/components/tabs/themes/light/tabs.fluent.css.d.ts +1 -0
- package/components/tabs/themes/light/tabs.fluent.css.js +3 -0
- package/components/tabs/themes/light/tabs.fluent.css.js.map +1 -0
- package/components/tabs/themes/light/tabs.indigo.css.d.ts +1 -0
- package/components/tabs/themes/light/tabs.indigo.css.js +3 -0
- package/components/tabs/themes/light/tabs.indigo.css.js.map +1 -0
- package/components/tabs/utils.d.ts +14 -0
- package/components/tabs/utils.js +32 -0
- package/components/tabs/utils.js.map +1 -0
- package/components/toast/themes/toast.base.css.js +1 -1
- package/components/toast/themes/toast.base.css.js.map +1 -1
- package/components/tree/tree-item.d.ts +1 -0
- package/components/tree/tree-item.js +14 -3
- package/components/tree/tree-item.js.map +1 -1
- package/components/tree/tree.d.ts +1 -1
- package/components/tree/tree.js +10 -0
- package/components/tree/tree.js.map +1 -1
- package/custom-elements.json +544 -39
- package/index.d.ts +5 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/themes/dark/bootstrap.css +1 -1
- package/themes/dark/fluent.css +1 -1
- package/themes/dark/indigo.css +1 -1
- package/themes/dark/material.css +1 -1
- package/vscode-html-custom-data.json +216 -37
- package/components/nav-drawer/styles/indigo/nav-drawer-header-item.indigo.css.js.map +0 -1
- package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js +0 -3
- package/components/nav-drawer/styles/indigo/nav-drawer-item.indigo.css.js.map +0 -1
- package/components/nav-drawer/styles/indigo/nav-drawer.indigo.css.js +0 -3
- package/components/nav-drawer/styles/indigo/nav-drawer.indigo.css.js.map +0 -1
- package/components/nav-drawer/styles/nav-drawer-header-item.base.css.js.map +0 -1
- package/components/nav-drawer/styles/nav-drawer-item.base.css.js.map +0 -1
- package/components/nav-drawer/styles/nav-drawer.base.css.js.map +0 -1
- package/components/snackbar/themes/snackbar.base.css.js +0 -3
- package/components/snackbar/themes/snackbar.base.css.js.map +0 -1
- package/components/snackbar/themes/snackbar.bootstrap.css.js +0 -3
- package/components/snackbar/themes/snackbar.bootstrap.css.js.map +0 -1
- package/components/snackbar/themes/snackbar.fluent.css.js +0 -3
- package/components/snackbar/themes/snackbar.fluent.css.js.map +0 -1
- package/components/snackbar/themes/snackbar.indigo.css.js +0 -3
- package/components/snackbar/themes/snackbar.indigo.css.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snackbar.indigo.css.js","sourceRoot":"","sources":["../../../../../src/components/snackbar/themes/light/snackbar.indigo.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,qTAAqT,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`[part~=base]{border-radius:clamp(0rem,var(--igc-radius-factor)*.375rem,.375rem);background:var(--background-color, hsla(var(--igc-gray-700), 0.9));color:var(--text-color, var(--igc-gray-700-contrast))}igc-button::part(base),igc-button::part(base):hover{color:var(--text-color, var(--igc-gray-700-contrast))}`;\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* Represents the content of a tab
|
|
4
|
+
*
|
|
5
|
+
* @element igc-tab-panel
|
|
6
|
+
*
|
|
7
|
+
* @slot - Renders the content.
|
|
8
|
+
*/
|
|
9
|
+
export default class IgcTabPanelComponent extends LitElement {
|
|
10
|
+
static readonly tagName = "igc-tab-panel";
|
|
11
|
+
static styles: import("lit").CSSResult;
|
|
12
|
+
private static readonly increment;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
15
|
+
}
|
|
16
|
+
declare global {
|
|
17
|
+
interface HTMLElementTagNameMap {
|
|
18
|
+
'igc-tab-panel': IgcTabPanelComponent;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { html, LitElement } from 'lit';
|
|
2
|
+
import { createCounter } from '../common/util.js';
|
|
3
|
+
import { styles } from './themes/light/tab-panel.base.css.js';
|
|
4
|
+
export default class IgcTabPanelComponent extends LitElement {
|
|
5
|
+
connectedCallback() {
|
|
6
|
+
this.setAttribute('role', 'tabpanel');
|
|
7
|
+
this.tabIndex = this.hasAttribute('tabindex') ? this.tabIndex : 0;
|
|
8
|
+
this.slot = this.slot.length > 0 ? this.slot : 'panel';
|
|
9
|
+
this.id =
|
|
10
|
+
this.id.length > 0
|
|
11
|
+
? this.id
|
|
12
|
+
: `igc-tab-panel-${IgcTabPanelComponent.increment()}`;
|
|
13
|
+
}
|
|
14
|
+
render() {
|
|
15
|
+
return html `<slot></slot>`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
IgcTabPanelComponent.tagName = 'igc-tab-panel';
|
|
19
|
+
IgcTabPanelComponent.styles = styles;
|
|
20
|
+
IgcTabPanelComponent.increment = createCounter();
|
|
21
|
+
//# sourceMappingURL=tab-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-panel.js","sourceRoot":"","sources":["../../../src/components/tabs/tab-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAS9D,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,UAAU;IAO1C,iBAAiB;QAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QACvD,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;gBAChB,CAAC,CAAC,IAAI,CAAC,EAAE;gBACT,CAAC,CAAC,iBAAiB,oBAAoB,CAAC,SAAS,EAAE,EAAE,CAAC;IAC5D,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAlBsB,4BAAO,GAAG,eAAe,CAAC;AAE1B,2BAAM,GAAG,MAAM,CAAC;AAEf,8BAAS,GAAG,aAAa,EAAE,CAAC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { createCounter } from '../common/util.js';\nimport { styles } from './themes/light/tab-panel.base.css.js';\n\n/**\n * Represents the content of a tab\n *\n * @element igc-tab-panel\n *\n * @slot - Renders the content.\n */\nexport default class IgcTabPanelComponent extends LitElement {\n public static readonly tagName = 'igc-tab-panel';\n\n public static override styles = styles;\n\n private static readonly increment = createCounter();\n\n public override connectedCallback() {\n this.setAttribute('role', 'tabpanel');\n this.tabIndex = this.hasAttribute('tabindex') ? this.tabIndex : 0;\n this.slot = this.slot.length > 0 ? this.slot : 'panel';\n this.id =\n this.id.length > 0\n ? this.id\n : `igc-tab-panel-${IgcTabPanelComponent.increment()}`;\n }\n\n protected override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tab-panel': IgcTabPanelComponent;\n }\n}\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* Represents the tab header.
|
|
4
|
+
*
|
|
5
|
+
* @element igc-tab
|
|
6
|
+
*
|
|
7
|
+
* @slot prefix - Renders before the tab header content.
|
|
8
|
+
* @slot - Renders the tab header content.
|
|
9
|
+
* @slot suffix - Renders after the tab header content.
|
|
10
|
+
*
|
|
11
|
+
* @csspart content - The content wrapper.
|
|
12
|
+
* @csspart prefix - The prefix wrapper.
|
|
13
|
+
* @csspart suffix - The suffix wrapper.
|
|
14
|
+
*/
|
|
15
|
+
export default class IgcTabComponent extends LitElement {
|
|
16
|
+
static readonly tagName = "igc-tab";
|
|
17
|
+
static styles: import("lit").CSSResult;
|
|
18
|
+
private static readonly increment;
|
|
19
|
+
private tab;
|
|
20
|
+
/** The id of the tab panel which will be controlled by the tab. */
|
|
21
|
+
panel: string;
|
|
22
|
+
/** Determines whether the tab is selected. */
|
|
23
|
+
selected: boolean;
|
|
24
|
+
/** Determines whether the tab is disabled. */
|
|
25
|
+
disabled: boolean;
|
|
26
|
+
connectedCallback(): void;
|
|
27
|
+
/** Sets focus to the tab. */
|
|
28
|
+
focus(options?: FocusOptions): void;
|
|
29
|
+
/** Removes focus from the tab. */
|
|
30
|
+
blur(): void;
|
|
31
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
32
|
+
}
|
|
33
|
+
declare global {
|
|
34
|
+
interface HTMLElementTagNameMap {
|
|
35
|
+
'igc-tab': IgcTabComponent;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var IgcTabComponent_1;
|
|
8
|
+
import { html, LitElement } from 'lit';
|
|
9
|
+
import { property, query } from 'lit/decorators.js';
|
|
10
|
+
import { themes } from '../../theming/theming-decorator.js';
|
|
11
|
+
import { createCounter } from '../common/util.js';
|
|
12
|
+
import { styles } from './themes/light/tab.base.css.js';
|
|
13
|
+
import { styles as bootstrap } from './themes/light/tab.bootstrap.css.js';
|
|
14
|
+
import { styles as fluent } from './themes/light/tab.fluent.css.js';
|
|
15
|
+
import { styles as indigo } from './themes/light/tab.indigo.css.js';
|
|
16
|
+
let IgcTabComponent = IgcTabComponent_1 = class IgcTabComponent extends LitElement {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.panel = '';
|
|
20
|
+
this.selected = false;
|
|
21
|
+
this.disabled = false;
|
|
22
|
+
}
|
|
23
|
+
connectedCallback() {
|
|
24
|
+
super.connectedCallback();
|
|
25
|
+
this.id =
|
|
26
|
+
this.id.length > 0 ? this.id : `igc-tab-${IgcTabComponent_1.increment()}`;
|
|
27
|
+
}
|
|
28
|
+
focus(options) {
|
|
29
|
+
this.tab.focus(options);
|
|
30
|
+
}
|
|
31
|
+
blur() {
|
|
32
|
+
this.tab.blur();
|
|
33
|
+
}
|
|
34
|
+
render() {
|
|
35
|
+
return html `
|
|
36
|
+
<div
|
|
37
|
+
part="base"
|
|
38
|
+
role="tab"
|
|
39
|
+
aria-disabled=${this.disabled ? 'true' : 'false'}
|
|
40
|
+
aria-selected=${this.selected ? 'true' : 'false'}
|
|
41
|
+
tabindex=${this.disabled || !this.selected ? -1 : 0}
|
|
42
|
+
>
|
|
43
|
+
<slot name="prefix" part="prefix"></slot>
|
|
44
|
+
<div part="content">
|
|
45
|
+
<slot></slot>
|
|
46
|
+
</div>
|
|
47
|
+
<slot name="suffix" part="suffix"></slot>
|
|
48
|
+
</div>
|
|
49
|
+
`;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
IgcTabComponent.tagName = 'igc-tab';
|
|
53
|
+
IgcTabComponent.styles = styles;
|
|
54
|
+
IgcTabComponent.increment = createCounter();
|
|
55
|
+
__decorate([
|
|
56
|
+
query('[part="base"]', true)
|
|
57
|
+
], IgcTabComponent.prototype, "tab", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
property({ type: String })
|
|
60
|
+
], IgcTabComponent.prototype, "panel", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
property({ type: Boolean, reflect: true })
|
|
63
|
+
], IgcTabComponent.prototype, "selected", void 0);
|
|
64
|
+
__decorate([
|
|
65
|
+
property({ type: Boolean, reflect: true })
|
|
66
|
+
], IgcTabComponent.prototype, "disabled", void 0);
|
|
67
|
+
IgcTabComponent = IgcTabComponent_1 = __decorate([
|
|
68
|
+
themes({ bootstrap, fluent, indigo })
|
|
69
|
+
], IgcTabComponent);
|
|
70
|
+
export default IgcTabComponent;
|
|
71
|
+
//# sourceMappingURL=tab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../src/components/tabs/tab.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAgBpE,IAAqB,eAAe,uBAApC,MAAqB,eAAgB,SAAQ,UAAU;IAAvD;;QAYS,UAAK,GAAG,EAAE,CAAC;QAIX,aAAQ,GAAG,KAAK,CAAC;QAIjB,aAAQ,GAAG,KAAK,CAAC;IAmC1B,CAAC;IAjCiB,iBAAiB;QAC/B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,iBAAe,CAAC,SAAS,EAAE,EAAE,CAAC;IAC5E,CAAC;IAGe,KAAK,CAAC,OAAsB;QAC1C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAGe,IAAI;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA;;;;wBAIS,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;wBAChC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;mBACrC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;;;KAQtD,CAAC;IACJ,CAAC;CACF,CAAA;AAtDwB,uBAAO,GAAG,SAAU,CAAA;AAEpB,sBAAM,GAAG,MAAO,CAAA;AAEf,yBAAS,GAAG,aAAa,EAAG,CAAA;AAGpD;IADC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC;4CACH;AAI1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACT;AAIlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDACnB;AAIxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;iDACnB;AApBL,eAAe;IADnC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;GACjB,eAAe,CAuDnC;eAvDoB,eAAe","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport { createCounter } from '../common/util.js';\nimport { styles } from './themes/light/tab.base.css.js';\nimport { styles as bootstrap } from './themes/light/tab.bootstrap.css.js';\nimport { styles as fluent } from './themes/light/tab.fluent.css.js';\nimport { styles as indigo } from './themes/light/tab.indigo.css.js';\n\n/**\n * Represents the tab header.\n *\n * @element igc-tab\n *\n * @slot prefix - Renders before the tab header content.\n * @slot - Renders the tab header content.\n * @slot suffix - Renders after the tab header content.\n *\n * @csspart content - The content wrapper.\n * @csspart prefix - The prefix wrapper.\n * @csspart suffix - The suffix wrapper.\n */\n@themes({ bootstrap, fluent, indigo })\nexport default class IgcTabComponent extends LitElement {\n public static readonly tagName = 'igc-tab';\n\n public static override styles = styles;\n\n private static readonly increment = createCounter();\n\n @query('[part=\"base\"]', true)\n private tab!: HTMLElement;\n\n /** The id of the tab panel which will be controlled by the tab. */\n @property({ type: String })\n public panel = '';\n\n /** Determines whether the tab is selected. */\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n /** Determines whether the tab is disabled. */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this.id =\n this.id.length > 0 ? this.id : `igc-tab-${IgcTabComponent.increment()}`;\n }\n\n /** Sets focus to the tab. */\n public override focus(options?: FocusOptions) {\n this.tab.focus(options);\n }\n\n /** Removes focus from the tab. */\n public override blur() {\n this.tab.blur();\n }\n\n protected override render() {\n return html`\n <div\n part=\"base\"\n role=\"tab\"\n aria-disabled=${this.disabled ? 'true' : 'false'}\n aria-selected=${this.selected ? 'true' : 'false'}\n tabindex=${this.disabled || !this.selected ? -1 : 0}\n >\n <slot name=\"prefix\" part=\"prefix\"></slot>\n <div part=\"content\">\n <slot></slot>\n </div>\n <slot name=\"suffix\" part=\"suffix\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tab': IgcTabComponent;\n }\n}\n"]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import '../button/icon-button';
|
|
2
|
+
import { LitElement, nothing } from 'lit';
|
|
3
|
+
import type IgcTabComponent from './tab';
|
|
4
|
+
import type IgcTabPanelComponent from './tab-panel';
|
|
5
|
+
import { Constructor } from '../common/mixins/constructor.js';
|
|
6
|
+
export interface IgcTabsEventMap {
|
|
7
|
+
igcChange: CustomEvent<IgcTabComponent>;
|
|
8
|
+
}
|
|
9
|
+
declare const IgcTabsComponent_base: import("../common/mixins/constructor.js").AbstractConstructor<import("../common/mixins/event-emitter.js").EventEmitterInterface<IgcTabsEventMap>> & Constructor<LitElement>;
|
|
10
|
+
/**
|
|
11
|
+
* Represents tabs component
|
|
12
|
+
*
|
|
13
|
+
* @element igc-tabs
|
|
14
|
+
*
|
|
15
|
+
* @fires igcChange - Emitted when the selected tab changes.
|
|
16
|
+
*
|
|
17
|
+
* @slot - Renders the tab header.
|
|
18
|
+
* @slot panel - Renders the tab content.
|
|
19
|
+
*
|
|
20
|
+
* @csspart headers - The wrapper of the tabs including the headers content and the scroll buttons.
|
|
21
|
+
* @csspart headers-content - The container for the tab headers.
|
|
22
|
+
* @csspart headers-wrapper - The wrapper for the tab headers and the selected indicator.
|
|
23
|
+
* @csspart headers-scroll - The container for the headers.
|
|
24
|
+
* @csspart selected-indicator - The selected indicator.
|
|
25
|
+
* @csspart start-scroll-button - The start scroll button displayed when the tabs overflow.
|
|
26
|
+
* @csspart end-scroll-button - The end scroll button displayed when the tabs overflow.
|
|
27
|
+
* @csspart content - The container for the tabs content.
|
|
28
|
+
*/
|
|
29
|
+
export default class IgcTabsComponent extends IgcTabsComponent_base {
|
|
30
|
+
static readonly tagName = "igc-tabs";
|
|
31
|
+
static styles: import("lit").CSSResult;
|
|
32
|
+
private static readonly increment;
|
|
33
|
+
protected tabs: Array<IgcTabComponent>;
|
|
34
|
+
protected panels: Array<IgcTabPanelComponent>;
|
|
35
|
+
protected wrapper: HTMLElement;
|
|
36
|
+
protected container: HTMLElement;
|
|
37
|
+
protected selectedIndicator: HTMLElement;
|
|
38
|
+
protected showScrollButtons: boolean;
|
|
39
|
+
protected disableStartScrollButton: boolean;
|
|
40
|
+
protected disableEndScrollButton: boolean;
|
|
41
|
+
protected activeTab?: IgcTabComponent;
|
|
42
|
+
protected resizeObserver: ResizeObserver;
|
|
43
|
+
protected mutationObserver: MutationObserver;
|
|
44
|
+
protected get enabledTabs(): IgcTabComponent[];
|
|
45
|
+
protected get isLTR(): boolean;
|
|
46
|
+
/** Returns the currently selected tab. */
|
|
47
|
+
get selected(): string;
|
|
48
|
+
/** Sets the alignment for the tab headers */
|
|
49
|
+
alignment: 'start' | 'end' | 'center' | 'justify';
|
|
50
|
+
/**
|
|
51
|
+
* Determines the tab activation. When set to auto,
|
|
52
|
+
* the tab is instantly selected while navigating with the Left/Right Arrows, Home or End keys
|
|
53
|
+
* and the corresponding panel is displayed.
|
|
54
|
+
* When set to manual, the tab is only focused. The selection happens after pressing Space or Enter.
|
|
55
|
+
*/
|
|
56
|
+
activation: 'auto' | 'manual';
|
|
57
|
+
protected alignIndicator(): void;
|
|
58
|
+
protected firstUpdated(): Promise<void>;
|
|
59
|
+
disconnectedCallback(): void;
|
|
60
|
+
protected updateButtonsOnResize(): void;
|
|
61
|
+
protected updateScrollButtons(): void;
|
|
62
|
+
protected setupObserver(): void;
|
|
63
|
+
protected updateSelectedTab(): void;
|
|
64
|
+
protected syncAttributes(): void;
|
|
65
|
+
private setSelectedTab;
|
|
66
|
+
protected scrollByTabOffset(direction: 'start' | 'end'): void;
|
|
67
|
+
protected handleClick(event: MouseEvent): void;
|
|
68
|
+
protected handleKeyDown: (event: KeyboardEvent) => void;
|
|
69
|
+
protected handleScroll(): void;
|
|
70
|
+
/** Selects the specified tab and displays the corresponding panel. */
|
|
71
|
+
select(name: string): void;
|
|
72
|
+
protected renderScrollButton(direction: 'start' | 'end'): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
73
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
74
|
+
}
|
|
75
|
+
declare global {
|
|
76
|
+
interface HTMLElementTagNameMap {
|
|
77
|
+
'igc-tabs': IgcTabsComponent;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export {};
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var IgcTabsComponent_1;
|
|
8
|
+
import '../button/icon-button';
|
|
9
|
+
import { html, LitElement, nothing } from 'lit';
|
|
10
|
+
import { eventOptions, property, query, queryAssignedElements, state, } from 'lit/decorators.js';
|
|
11
|
+
import { watch } from '../common/decorators/watch.js';
|
|
12
|
+
import { themes } from '../../theming/theming-decorator.js';
|
|
13
|
+
import { styles } from './themes/light/tabs.base.css.js';
|
|
14
|
+
import { styles as bootstrap } from './themes/light/tabs.bootstrap.css.js';
|
|
15
|
+
import { styles as fluent } from './themes/light/tabs.fluent.css.js';
|
|
16
|
+
import { styles as indigo } from './themes/light/tabs.indigo.css.js';
|
|
17
|
+
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
|
|
18
|
+
import { createCounter, getOffset } from '../common/util.js';
|
|
19
|
+
import { getAttributesForTags, getNodesForTags, observerConfig, } from './utils.js';
|
|
20
|
+
let IgcTabsComponent = IgcTabsComponent_1 = class IgcTabsComponent extends EventEmitterMixin(LitElement) {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.showScrollButtons = false;
|
|
24
|
+
this.disableStartScrollButton = true;
|
|
25
|
+
this.disableEndScrollButton = false;
|
|
26
|
+
this.alignment = 'start';
|
|
27
|
+
this.activation = 'auto';
|
|
28
|
+
this.handleKeyDown = (event) => {
|
|
29
|
+
var _a;
|
|
30
|
+
const { key } = event;
|
|
31
|
+
const enabledTabs = this.enabledTabs;
|
|
32
|
+
let index = enabledTabs.indexOf((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.closest('igc-tab'));
|
|
33
|
+
switch (key) {
|
|
34
|
+
case 'ArrowLeft':
|
|
35
|
+
index = this.isLTR
|
|
36
|
+
? (enabledTabs.length + index - 1) % enabledTabs.length
|
|
37
|
+
: (index + 1) % enabledTabs.length;
|
|
38
|
+
break;
|
|
39
|
+
case 'ArrowRight':
|
|
40
|
+
index = this.isLTR
|
|
41
|
+
? (index + 1) % enabledTabs.length
|
|
42
|
+
: (enabledTabs.length + index - 1) % enabledTabs.length;
|
|
43
|
+
break;
|
|
44
|
+
case 'Home':
|
|
45
|
+
index = 0;
|
|
46
|
+
break;
|
|
47
|
+
case 'End':
|
|
48
|
+
index = enabledTabs.length - 1;
|
|
49
|
+
break;
|
|
50
|
+
case 'Enter':
|
|
51
|
+
case ' ':
|
|
52
|
+
this.setSelectedTab(enabledTabs[index]);
|
|
53
|
+
break;
|
|
54
|
+
default:
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
enabledTabs[index].focus({ preventScroll: true });
|
|
58
|
+
if (this.activation === 'auto') {
|
|
59
|
+
this.setSelectedTab(enabledTabs[index]);
|
|
60
|
+
this.emitEvent('igcChange', { detail: this.activeTab });
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
enabledTabs[index].scrollIntoView({ block: 'nearest' });
|
|
64
|
+
}
|
|
65
|
+
event.preventDefault();
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
get enabledTabs() {
|
|
69
|
+
return this.tabs.filter((tab) => !tab.disabled);
|
|
70
|
+
}
|
|
71
|
+
get isLTR() {
|
|
72
|
+
return (window.getComputedStyle(this).getPropertyValue('direction') === 'ltr');
|
|
73
|
+
}
|
|
74
|
+
get selected() {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
return (_b = (_a = this.activeTab) === null || _a === void 0 ? void 0 : _a.panel) !== null && _b !== void 0 ? _b : '';
|
|
77
|
+
}
|
|
78
|
+
alignIndicator() {
|
|
79
|
+
const styles = {
|
|
80
|
+
visibility: this.activeTab ? 'visible' : 'hidden',
|
|
81
|
+
transitionDuration: '0.3s',
|
|
82
|
+
};
|
|
83
|
+
if (this.activeTab) {
|
|
84
|
+
Object.assign(styles, {
|
|
85
|
+
width: `${this.activeTab.offsetWidth}px`,
|
|
86
|
+
transform: `translate(${this.isLTR
|
|
87
|
+
? getOffset(this.activeTab, this.wrapper).left
|
|
88
|
+
: getOffset(this.activeTab, this.wrapper).right}px)`,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
Object.assign(this.selectedIndicator.style, styles);
|
|
92
|
+
}
|
|
93
|
+
async firstUpdated() {
|
|
94
|
+
var _a;
|
|
95
|
+
this.showScrollButtons =
|
|
96
|
+
this.container.scrollWidth > this.container.clientWidth;
|
|
97
|
+
await this.updateComplete;
|
|
98
|
+
this.syncAttributes();
|
|
99
|
+
this.setupObserver();
|
|
100
|
+
this.setSelectedTab((_a = this.tabs.filter((tab) => tab.selected).at(-1)) !== null && _a !== void 0 ? _a : this.enabledTabs.at(0));
|
|
101
|
+
}
|
|
102
|
+
disconnectedCallback() {
|
|
103
|
+
var _a, _b;
|
|
104
|
+
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
105
|
+
(_b = this.mutationObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
|
|
106
|
+
super.disconnectedCallback();
|
|
107
|
+
}
|
|
108
|
+
updateButtonsOnResize() {
|
|
109
|
+
this.showScrollButtons = false;
|
|
110
|
+
this.performUpdate();
|
|
111
|
+
this.showScrollButtons =
|
|
112
|
+
this.container.scrollWidth > this.container.clientWidth;
|
|
113
|
+
this.updateScrollButtons();
|
|
114
|
+
}
|
|
115
|
+
updateScrollButtons() {
|
|
116
|
+
const { scrollLeft, offsetWidth } = this.container, { scrollWidth } = this.wrapper;
|
|
117
|
+
this.disableEndScrollButton =
|
|
118
|
+
scrollWidth <= Math.abs(scrollLeft) + offsetWidth;
|
|
119
|
+
this.disableStartScrollButton = scrollLeft === 0;
|
|
120
|
+
}
|
|
121
|
+
setupObserver() {
|
|
122
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
123
|
+
this.updateButtonsOnResize();
|
|
124
|
+
this.alignIndicator();
|
|
125
|
+
});
|
|
126
|
+
[this.container, this.wrapper, ...this.tabs].forEach((element) => this.resizeObserver.observe(element));
|
|
127
|
+
this.mutationObserver = new MutationObserver(async (records, observer) => {
|
|
128
|
+
var _a;
|
|
129
|
+
observer.disconnect();
|
|
130
|
+
const attributes = getAttributesForTags(records, 'igc-tab');
|
|
131
|
+
const changed = getNodesForTags(records, this, 'igc-tab');
|
|
132
|
+
if (attributes.length > 0) {
|
|
133
|
+
this.activeTab = attributes.find((tab) => tab.selected);
|
|
134
|
+
}
|
|
135
|
+
if (changed) {
|
|
136
|
+
changed.addedNodes.forEach((tab) => {
|
|
137
|
+
this.resizeObserver.observe(tab);
|
|
138
|
+
if (tab.selected) {
|
|
139
|
+
this.activeTab = tab;
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
changed.removedNodes.forEach((tab) => {
|
|
143
|
+
this.resizeObserver.unobserve(tab);
|
|
144
|
+
if (tab.selected || this.activeTab === tab) {
|
|
145
|
+
this.activeTab = undefined;
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
this.syncAttributes();
|
|
149
|
+
}
|
|
150
|
+
this.updateSelectedTab();
|
|
151
|
+
(_a = this.activeTab) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ block: 'nearest' });
|
|
152
|
+
this.alignIndicator();
|
|
153
|
+
await this.updateComplete;
|
|
154
|
+
observer.observe(this, observerConfig);
|
|
155
|
+
});
|
|
156
|
+
this.mutationObserver.observe(this, observerConfig);
|
|
157
|
+
}
|
|
158
|
+
updateSelectedTab() {
|
|
159
|
+
this.tabs.forEach((tab) => (tab.selected = tab === this.activeTab));
|
|
160
|
+
this.panels.forEach((panel) => {
|
|
161
|
+
var _a;
|
|
162
|
+
return Object.assign(panel.style, {
|
|
163
|
+
display: panel.id === ((_a = this.activeTab) === null || _a === void 0 ? void 0 : _a.panel) ? 'block' : 'none',
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
syncAttributes() {
|
|
168
|
+
const prefix = this.id ? `${this.id}-` : '';
|
|
169
|
+
this.tabs.forEach((tab, index) => {
|
|
170
|
+
var _a, _b, _c;
|
|
171
|
+
if (!tab.panel) {
|
|
172
|
+
tab.panel =
|
|
173
|
+
(_b = (_a = this.panels.at(index)) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : `${prefix}tab-${IgcTabsComponent_1.increment()}`;
|
|
174
|
+
}
|
|
175
|
+
(_c = this.panels
|
|
176
|
+
.find((panel) => panel.id === tab.panel)) === null || _c === void 0 ? void 0 : _c.setAttribute('aria-labelledby', tab.id);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
setSelectedTab(tab) {
|
|
180
|
+
if (!tab || tab === this.activeTab) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
if (this.activeTab) {
|
|
184
|
+
this.activeTab.selected = false;
|
|
185
|
+
}
|
|
186
|
+
this.activeTab = tab;
|
|
187
|
+
this.activeTab.selected = true;
|
|
188
|
+
}
|
|
189
|
+
scrollByTabOffset(direction) {
|
|
190
|
+
const { scrollLeft, offsetWidth } = this.container;
|
|
191
|
+
const LTR = this.isLTR, next = direction === 'end';
|
|
192
|
+
const pivot = Math.abs(next ? offsetWidth + scrollLeft : scrollLeft);
|
|
193
|
+
let amount = this.tabs
|
|
194
|
+
.map((tab) => ({
|
|
195
|
+
start: LTR
|
|
196
|
+
? getOffset(tab, this.wrapper).left
|
|
197
|
+
: Math.abs(getOffset(tab, this.wrapper).right),
|
|
198
|
+
width: tab.offsetWidth,
|
|
199
|
+
}))
|
|
200
|
+
.filter((offset) => next ? offset.start + offset.width > pivot : offset.start < pivot)
|
|
201
|
+
.at(next ? 0 : -1).width;
|
|
202
|
+
amount *= next ? 1 : -1;
|
|
203
|
+
this.container.scrollBy({ left: this.isLTR ? amount : -amount });
|
|
204
|
+
}
|
|
205
|
+
handleClick(event) {
|
|
206
|
+
const target = event.target;
|
|
207
|
+
const tab = target.closest('igc-tab');
|
|
208
|
+
if (!(tab && this.contains(tab)) || tab.disabled) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
tab.focus();
|
|
212
|
+
this.setSelectedTab(tab);
|
|
213
|
+
this.emitEvent('igcChange', { detail: this.activeTab });
|
|
214
|
+
}
|
|
215
|
+
handleScroll() {
|
|
216
|
+
this.updateScrollButtons();
|
|
217
|
+
}
|
|
218
|
+
select(name) {
|
|
219
|
+
this.setSelectedTab(this.tabs.find((el) => el.panel === name));
|
|
220
|
+
}
|
|
221
|
+
renderScrollButton(direction) {
|
|
222
|
+
const start = direction === 'start';
|
|
223
|
+
return this.showScrollButtons
|
|
224
|
+
? html `<igc-icon-button
|
|
225
|
+
size="large"
|
|
226
|
+
variant="flat"
|
|
227
|
+
collection="internal"
|
|
228
|
+
part="${direction}-scroll-button"
|
|
229
|
+
name="navigate_${start ? 'before' : 'next'}"
|
|
230
|
+
.disabled=${start
|
|
231
|
+
? this.disableStartScrollButton
|
|
232
|
+
: this.disableEndScrollButton}
|
|
233
|
+
@click=${() => this.scrollByTabOffset(direction)}
|
|
234
|
+
></igc-icon-button>`
|
|
235
|
+
: nothing;
|
|
236
|
+
}
|
|
237
|
+
render() {
|
|
238
|
+
return html `
|
|
239
|
+
<div part="headers">
|
|
240
|
+
${this.renderScrollButton('start')}
|
|
241
|
+
<div part="headers-content" @scroll=${this.handleScroll}>
|
|
242
|
+
<div part="headers-wrapper">
|
|
243
|
+
<div
|
|
244
|
+
part="headers-scroll"
|
|
245
|
+
role="tablist"
|
|
246
|
+
@click=${this.handleClick}
|
|
247
|
+
@keydown=${this.handleKeyDown}
|
|
248
|
+
>
|
|
249
|
+
<slot></slot>
|
|
250
|
+
</div>
|
|
251
|
+
<div part="selected-indicator"></div>
|
|
252
|
+
</div>
|
|
253
|
+
</div>
|
|
254
|
+
${this.renderScrollButton('end')}
|
|
255
|
+
</div>
|
|
256
|
+
<div part="content">
|
|
257
|
+
<slot name="panel"></slot>
|
|
258
|
+
</div>
|
|
259
|
+
`;
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
IgcTabsComponent.tagName = 'igc-tabs';
|
|
263
|
+
IgcTabsComponent.styles = styles;
|
|
264
|
+
IgcTabsComponent.increment = createCounter();
|
|
265
|
+
__decorate([
|
|
266
|
+
queryAssignedElements({ selector: 'igc-tab' })
|
|
267
|
+
], IgcTabsComponent.prototype, "tabs", void 0);
|
|
268
|
+
__decorate([
|
|
269
|
+
queryAssignedElements({ slot: 'panel' })
|
|
270
|
+
], IgcTabsComponent.prototype, "panels", void 0);
|
|
271
|
+
__decorate([
|
|
272
|
+
query('[part="headers-wrapper"]', true)
|
|
273
|
+
], IgcTabsComponent.prototype, "wrapper", void 0);
|
|
274
|
+
__decorate([
|
|
275
|
+
query('[part="headers-content"]', true)
|
|
276
|
+
], IgcTabsComponent.prototype, "container", void 0);
|
|
277
|
+
__decorate([
|
|
278
|
+
query('[part="selected-indicator"]', true)
|
|
279
|
+
], IgcTabsComponent.prototype, "selectedIndicator", void 0);
|
|
280
|
+
__decorate([
|
|
281
|
+
state()
|
|
282
|
+
], IgcTabsComponent.prototype, "showScrollButtons", void 0);
|
|
283
|
+
__decorate([
|
|
284
|
+
state()
|
|
285
|
+
], IgcTabsComponent.prototype, "disableStartScrollButton", void 0);
|
|
286
|
+
__decorate([
|
|
287
|
+
state()
|
|
288
|
+
], IgcTabsComponent.prototype, "disableEndScrollButton", void 0);
|
|
289
|
+
__decorate([
|
|
290
|
+
state()
|
|
291
|
+
], IgcTabsComponent.prototype, "activeTab", void 0);
|
|
292
|
+
__decorate([
|
|
293
|
+
property({ reflect: true })
|
|
294
|
+
], IgcTabsComponent.prototype, "alignment", void 0);
|
|
295
|
+
__decorate([
|
|
296
|
+
property()
|
|
297
|
+
], IgcTabsComponent.prototype, "activation", void 0);
|
|
298
|
+
__decorate([
|
|
299
|
+
watch('alignment', { waitUntilFirstUpdate: true })
|
|
300
|
+
], IgcTabsComponent.prototype, "alignIndicator", null);
|
|
301
|
+
__decorate([
|
|
302
|
+
eventOptions({ passive: true })
|
|
303
|
+
], IgcTabsComponent.prototype, "handleScroll", null);
|
|
304
|
+
IgcTabsComponent = IgcTabsComponent_1 = __decorate([
|
|
305
|
+
themes({ bootstrap, fluent, indigo })
|
|
306
|
+
], IgcTabsComponent);
|
|
307
|
+
export default IgcTabsComponent;
|
|
308
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/components/tabs/tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import '../button/icon-button';\nimport { html, LitElement, nothing } from 'lit';\nimport {\n eventOptions,\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { watch } from '../common/decorators/watch.js';\nimport { themes } from '../../theming/theming-decorator.js';\nimport type IgcTabComponent from './tab';\nimport type IgcTabPanelComponent from './tab-panel';\nimport { styles } from './themes/light/tabs.base.css.js';\nimport { styles as bootstrap } from './themes/light/tabs.bootstrap.css.js';\nimport { styles as fluent } from './themes/light/tabs.fluent.css.js';\nimport { styles as indigo } from './themes/light/tabs.indigo.css.js';\nimport { EventEmitterMixin } from '../common/mixins/event-emitter.js';\nimport { Constructor } from '../common/mixins/constructor.js';\nimport { createCounter, getOffset } from '../common/util.js';\nimport {\n getAttributesForTags,\n getNodesForTags,\n observerConfig,\n} from './utils.js';\n\nexport interface IgcTabsEventMap {\n igcChange: CustomEvent<IgcTabComponent>;\n}\n\n/**\n * Represents tabs component\n *\n * @element igc-tabs\n *\n * @fires igcChange - Emitted when the selected tab changes.\n *\n * @slot - Renders the tab header.\n * @slot panel - Renders the tab content.\n *\n * @csspart headers - The wrapper of the tabs including the headers content and the scroll buttons.\n * @csspart headers-content - The container for the tab headers.\n * @csspart headers-wrapper - The wrapper for the tab headers and the selected indicator.\n * @csspart headers-scroll - The container for the headers.\n * @csspart selected-indicator - The selected indicator.\n * @csspart start-scroll-button - The start scroll button displayed when the tabs overflow.\n * @csspart end-scroll-button - The end scroll button displayed when the tabs overflow.\n * @csspart content - The container for the tabs content.\n */\n@themes({ bootstrap, fluent, indigo })\nexport default class IgcTabsComponent extends EventEmitterMixin<\n IgcTabsEventMap,\n Constructor<LitElement>\n>(LitElement) {\n public static readonly tagName = 'igc-tabs';\n\n public static styles = styles;\n private static readonly increment = createCounter();\n\n @queryAssignedElements({ selector: 'igc-tab' })\n protected tabs!: Array<IgcTabComponent>;\n\n @queryAssignedElements({ slot: 'panel' })\n protected panels!: Array<IgcTabPanelComponent>;\n\n @query('[part=\"headers-wrapper\"]', true)\n protected wrapper!: HTMLElement;\n\n @query('[part=\"headers-content\"]', true)\n protected container!: HTMLElement;\n\n @query('[part=\"selected-indicator\"]', true)\n protected selectedIndicator!: HTMLElement;\n\n @state()\n protected showScrollButtons = false;\n\n @state()\n protected disableStartScrollButton = true;\n\n @state()\n protected disableEndScrollButton = false;\n\n @state()\n protected activeTab?: IgcTabComponent;\n\n protected resizeObserver!: ResizeObserver;\n protected mutationObserver!: MutationObserver;\n\n protected get enabledTabs() {\n return this.tabs.filter((tab) => !tab.disabled);\n }\n\n protected get isLTR() {\n return (\n window.getComputedStyle(this).getPropertyValue('direction') === 'ltr'\n );\n }\n\n /** Returns the currently selected tab. */\n public get selected(): string {\n return this.activeTab?.panel ?? '';\n }\n\n /** Sets the alignment for the tab headers */\n @property({ reflect: true })\n public alignment: 'start' | 'end' | 'center' | 'justify' = 'start';\n\n /**\n * Determines the tab activation. When set to auto,\n * the tab is instantly selected while navigating with the Left/Right Arrows, Home or End keys\n * and the corresponding panel is displayed.\n * When set to manual, the tab is only focused. The selection happens after pressing Space or Enter.\n */\n @property()\n public activation: 'auto' | 'manual' = 'auto';\n\n @watch('alignment', { waitUntilFirstUpdate: true })\n protected alignIndicator() {\n const styles: Partial<CSSStyleDeclaration> = {\n visibility: this.activeTab ? 'visible' : 'hidden',\n transitionDuration: '0.3s',\n };\n\n if (this.activeTab) {\n Object.assign(styles, {\n width: `${this.activeTab!.offsetWidth}px`,\n transform: `translate(${\n this.isLTR\n ? getOffset(this.activeTab!, this.wrapper).left\n : getOffset(this.activeTab!, this.wrapper).right\n }px)`,\n });\n }\n\n Object.assign(this.selectedIndicator.style, styles);\n }\n\n protected override async firstUpdated() {\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n await this.updateComplete;\n\n this.syncAttributes();\n this.setupObserver();\n this.setSelectedTab(\n this.tabs.filter((tab) => tab.selected).at(-1) ?? this.enabledTabs.at(0)\n );\n }\n\n public override disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n super.disconnectedCallback();\n }\n\n protected updateButtonsOnResize() {\n // Hide the buttons in the resize observer callback and synchronously update the DOM\n // in order to get the actual size\n this.showScrollButtons = false;\n this.performUpdate();\n\n this.showScrollButtons =\n this.container.scrollWidth > this.container.clientWidth;\n\n this.updateScrollButtons();\n }\n\n protected updateScrollButtons() {\n const { scrollLeft, offsetWidth } = this.container,\n { scrollWidth } = this.wrapper;\n\n this.disableEndScrollButton =\n scrollWidth <= Math.abs(scrollLeft) + offsetWidth;\n this.disableStartScrollButton = scrollLeft === 0;\n }\n\n protected setupObserver() {\n this.resizeObserver = new ResizeObserver(() => {\n this.updateButtonsOnResize();\n this.alignIndicator();\n });\n\n [this.container, this.wrapper, ...this.tabs].forEach((element) =>\n this.resizeObserver.observe(element)\n );\n\n this.mutationObserver = new MutationObserver(async (records, observer) => {\n // Stop observing while handling changes\n observer.disconnect();\n\n const attributes = getAttributesForTags<IgcTabComponent>(\n records,\n 'igc-tab'\n );\n const changed = getNodesForTags<IgcTabComponent>(\n records,\n this,\n 'igc-tab'\n );\n\n if (attributes.length > 0) {\n this.activeTab = attributes.find((tab) => tab.selected);\n }\n\n if (changed) {\n changed.addedNodes.forEach((tab) => {\n this.resizeObserver.observe(tab);\n if (tab.selected) {\n this.activeTab = tab;\n }\n });\n changed.removedNodes.forEach((tab) => {\n this.resizeObserver.unobserve(tab);\n if (tab.selected || this.activeTab === tab) {\n this.activeTab = undefined;\n }\n });\n\n this.syncAttributes();\n }\n\n this.updateSelectedTab();\n this.activeTab?.scrollIntoView({ block: 'nearest' });\n this.alignIndicator();\n\n // Watch for changes again\n await this.updateComplete;\n observer.observe(this, observerConfig);\n });\n\n this.mutationObserver.observe(this, observerConfig);\n }\n\n protected updateSelectedTab() {\n this.tabs.forEach((tab) => (tab.selected = tab === this.activeTab));\n this.panels.forEach((panel) =>\n Object.assign(panel.style, {\n display: panel.id === this.activeTab?.panel ? 'block' : 'none',\n })\n );\n }\n\n protected syncAttributes() {\n const prefix = this.id ? `${this.id}-` : '';\n this.tabs.forEach((tab, index) => {\n if (!tab.panel) {\n tab.panel =\n this.panels.at(index)?.id ??\n `${prefix}tab-${IgcTabsComponent.increment()}`;\n }\n this.panels\n .find((panel) => panel.id === tab.panel)\n ?.setAttribute('aria-labelledby', tab.id);\n });\n }\n\n private setSelectedTab(tab?: IgcTabComponent) {\n if (!tab || tab === this.activeTab) {\n return;\n }\n\n if (this.activeTab) {\n this.activeTab.selected = false;\n }\n\n this.activeTab = tab;\n this.activeTab.selected = true;\n }\n\n protected scrollByTabOffset(direction: 'start' | 'end') {\n const { scrollLeft, offsetWidth } = this.container;\n const LTR = this.isLTR,\n next = direction === 'end';\n\n const pivot = Math.abs(next ? offsetWidth + scrollLeft : scrollLeft);\n\n let amount = this.tabs\n .map((tab) => ({\n start: LTR\n ? getOffset(tab, this.wrapper).left\n : Math.abs(getOffset(tab, this.wrapper).right),\n width: tab.offsetWidth,\n }))\n .filter((offset) =>\n next ? offset.start + offset.width > pivot : offset.start < pivot\n )\n .at(next ? 0 : -1)!.width;\n\n amount *= next ? 1 : -1;\n this.container.scrollBy({ left: this.isLTR ? amount : -amount });\n }\n\n protected handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('igc-tab');\n\n if (!(tab && this.contains(tab)) || tab.disabled) {\n return;\n }\n\n tab.focus();\n this.setSelectedTab(tab);\n this.emitEvent('igcChange', { detail: this.activeTab });\n }\n\n protected handleKeyDown = (event: KeyboardEvent) => {\n const { key } = event;\n const enabledTabs = this.enabledTabs;\n\n let index = enabledTabs.indexOf(\n document.activeElement?.closest('igc-tab') as IgcTabComponent\n );\n\n switch (key) {\n case 'ArrowLeft':\n index = this.isLTR\n ? (enabledTabs.length + index - 1) % enabledTabs.length\n : (index + 1) % enabledTabs.length;\n break;\n case 'ArrowRight':\n index = this.isLTR\n ? (index + 1) % enabledTabs.length\n : (enabledTabs.length + index - 1) % enabledTabs.length;\n break;\n case 'Home':\n index = 0;\n break;\n case 'End':\n index = enabledTabs.length - 1;\n break;\n case 'Enter':\n case ' ':\n this.setSelectedTab(enabledTabs[index]);\n break;\n default:\n return;\n }\n\n enabledTabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.setSelectedTab(enabledTabs[index]);\n this.emitEvent('igcChange', { detail: this.activeTab });\n } else {\n enabledTabs[index].scrollIntoView({ block: 'nearest' });\n }\n\n event.preventDefault();\n };\n\n @eventOptions({ passive: true })\n protected handleScroll() {\n this.updateScrollButtons();\n }\n\n /** Selects the specified tab and displays the corresponding panel. */\n public select(name: string) {\n this.setSelectedTab(this.tabs.find((el) => el.panel === name));\n }\n\n protected renderScrollButton(direction: 'start' | 'end') {\n const start = direction === 'start';\n\n return this.showScrollButtons\n ? html`<igc-icon-button\n size=\"large\"\n variant=\"flat\"\n collection=\"internal\"\n part=\"${direction}-scroll-button\"\n name=\"navigate_${start ? 'before' : 'next'}\"\n .disabled=${start\n ? this.disableStartScrollButton\n : this.disableEndScrollButton}\n @click=${() => this.scrollByTabOffset(direction)}\n ></igc-icon-button>`\n : nothing;\n }\n\n protected override render() {\n return html`\n <div part=\"headers\">\n ${this.renderScrollButton('start')}\n <div part=\"headers-content\" @scroll=${this.handleScroll}>\n <div part=\"headers-wrapper\">\n <div\n part=\"headers-scroll\"\n role=\"tablist\"\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <slot></slot>\n </div>\n <div part=\"selected-indicator\"></div>\n </div>\n </div>\n ${this.renderScrollButton('end')}\n </div>\n <div part=\"content\">\n <slot name=\"panel\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'igc-tabs': IgcTabsComponent;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab.dark.base.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/dark/tab.dark.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css``;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab.dark.bootstrap.css.js","sourceRoot":"","sources":["../../../../../src/components/tabs/themes/dark/tab.dark.bootstrap.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,EAAE,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css``;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `:host{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;scrollbar-width:var(--scrolbar-size, 0.875rem);scrollbar-color:var(--igc-scrollbar-thumb-color, hsla(var(--igc-gray-400), var(--igc-gray-a))) var(--igc-scrollbar-track-color, hsla(var(--igc-gray-200), var(--igc-gray-a)))}:host *,:host *::before,:host *::after{-webkit-box-sizing:border-box;box-sizing:border-box}:host ::-webkit-scrollbar{width:var(--scrolbar-size, 0.875rem);height:var(--scrolbar-size, 0.875rem);background:var(--igc-scrollbar-track-color, hsla(var(--igc-gray-200), var(--igc-gray-a)))}:host ::-webkit-scrollbar-thumb{background:var(--igc-scrollbar-thumb-color, hsla(var(--igc-gray-400), var(--igc-gray-a)))}[hidden]{display:none !important}:host{position:relative;overflow:hidden;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}`;
|
|
3
|
+
//# sourceMappingURL=tab-panel.base.css.js.map
|