@vonage/vivid 4.10.0 → 4.12.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/custom-elements.json +8630 -6433
- package/lib/badge/badge.d.ts +1 -1
- package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
- package/lib/button/button.d.ts +1 -1
- package/lib/checkbox/checkbox.d.ts +5 -3
- package/lib/checkbox/checkbox.form-associated.d.ts +10 -0
- package/lib/enums.d.ts +1 -0
- package/lib/fab/fab.d.ts +2 -2
- package/lib/file-picker/file-picker.d.ts +3 -0
- package/lib/slider/slider.d.ts +30 -6
- package/lib/slider/slider.form-associated.d.ts +10 -0
- package/lib/split-button/split-button.d.ts +1 -1
- package/lib/tabs/tabs.d.ts +1 -0
- package/package.json +1 -1
- package/shared/aria-global2.cjs +93 -0
- package/shared/aria-global2.js +91 -0
- package/shared/breadcrumb-item.cjs +2 -89
- package/shared/breadcrumb-item.js +1 -88
- package/shared/definition11.cjs +200 -4
- package/shared/definition11.js +198 -3
- package/shared/definition15.cjs +34 -91
- package/shared/definition15.js +35 -92
- package/shared/definition16.cjs +9 -7
- package/shared/definition16.js +9 -7
- package/shared/definition20.cjs +1 -1
- package/shared/definition20.js +1 -1
- package/shared/definition21.cjs +1 -1
- package/shared/definition21.js +1 -1
- package/shared/definition24.cjs +156 -2
- package/shared/definition24.js +157 -3
- package/shared/definition25.cjs +106 -56
- package/shared/definition25.js +106 -56
- package/shared/definition35.cjs +2 -2
- package/shared/definition35.js +2 -2
- package/shared/definition37.cjs +1 -1
- package/shared/definition37.js +1 -1
- package/shared/definition4.cjs +5 -6
- package/shared/definition4.js +1 -2
- package/shared/definition40.cjs +11 -4
- package/shared/definition40.js +8 -1
- package/shared/definition42.cjs +3 -22
- package/shared/definition42.js +2 -21
- package/shared/definition43.cjs +1 -2
- package/shared/definition43.js +1 -2
- package/shared/definition44.js +1 -1
- package/shared/definition47.cjs +369 -502
- package/shared/definition47.js +370 -503
- package/shared/definition5.cjs +4 -4
- package/shared/definition5.js +1 -1
- package/shared/definition51.cjs +1 -1
- package/shared/definition51.js +1 -1
- package/shared/definition52.cjs +63 -26
- package/shared/definition52.js +63 -26
- package/shared/definition56.cjs +41 -43
- package/shared/definition56.js +41 -43
- package/shared/definition57.cjs +1 -1
- package/shared/definition57.js +1 -1
- package/shared/definition58.cjs +1 -1
- package/shared/definition58.js +1 -1
- package/shared/definition59.cjs +1 -1
- package/shared/definition59.js +1 -1
- package/shared/definition64.cjs +278 -90
- package/shared/definition64.js +278 -90
- package/shared/definition7.cjs +1 -1
- package/shared/definition7.js +1 -1
- package/shared/definition8.cjs +1 -1
- package/shared/definition8.js +1 -1
- package/shared/enums.cjs +1 -0
- package/shared/enums.js +1 -0
- package/shared/form-associated.js +1 -1
- package/shared/{patterns → foundation/anchor}/anchor.d.ts +1 -1
- package/shared/foundation/button/button.d.ts +27 -0
- package/shared/foundation/button/button.template.d.ts +4 -0
- package/shared/foundation/button/index.d.ts +2 -0
- package/shared/foundation/patterns/index.d.ts +1 -0
- package/shared/index.cjs +22 -2
- package/shared/index.js +22 -2
- package/shared/key-codes2.js +1 -1
- package/shared/presentationDate.cjs +4328 -4042
- package/shared/presentationDate.js +4327 -4041
- package/shared/slider.template.cjs +23 -1
- package/shared/slider.template.js +21 -2
- package/styles/core/all.css +1 -1
- package/styles/core/theme.css +1 -1
- package/styles/core/typography.css +1 -1
- package/styles/tokens/theme-dark.css +4 -4
- package/styles/tokens/theme-light.css +4 -4
- package/styles/tokens/vivid-2-compat.css +1 -1
- package/vivid.api.json +52 -4
- package/shared/aria2.cjs +0 -11
- package/shared/aria2.js +0 -9
- package/shared/button.cjs +0 -202
- package/shared/button.js +0 -200
- /package/shared/{patterns → foundation/patterns}/aria-global.d.ts +0 -0
package/shared/definition5.cjs
CHANGED
|
@@ -238,7 +238,7 @@ const isMenuItemChekced = (playbackRate, { parent }) => {
|
|
|
238
238
|
return playbackRate === parent.playbackRate;
|
|
239
239
|
};
|
|
240
240
|
function renderButton(context) {
|
|
241
|
-
const buttonTag = context.tagFor(definition$1.Button);
|
|
241
|
+
const buttonTag = context.tagFor(definition$1.Button$1);
|
|
242
242
|
return index.html`<${buttonTag} class="pause" @click="${(x) => x.paused ? x.play() : x.pause()}"
|
|
243
243
|
icon="${(x) => x.paused ? "play-solid" : "pause-solid"}"
|
|
244
244
|
aria-label="${(x) => x.paused ? x.playButtonAriaLabel || x.locale.audioPlayer.playButtonLabel : x.pauseButtonAriaLabel || x.locale.audioPlayer.pauseButtonLabel}"
|
|
@@ -248,7 +248,7 @@ function renderButton(context) {
|
|
|
248
248
|
></${buttonTag}>`;
|
|
249
249
|
}
|
|
250
250
|
function renderBackwardSkipButtons(context) {
|
|
251
|
-
const buttonTag = context.tagFor(definition$1.Button);
|
|
251
|
+
const buttonTag = context.tagFor(definition$1.Button$1);
|
|
252
252
|
return index.html`
|
|
253
253
|
<${buttonTag} class="skip backward"
|
|
254
254
|
@click="${(element) => skip(element, SKIP_DIRECTIONS.BACKWARD)}"
|
|
@@ -261,7 +261,7 @@ function renderBackwardSkipButtons(context) {
|
|
|
261
261
|
`;
|
|
262
262
|
}
|
|
263
263
|
function renderForwardSkipButtons(context) {
|
|
264
|
-
const buttonTag = context.tagFor(definition$1.Button);
|
|
264
|
+
const buttonTag = context.tagFor(definition$1.Button$1);
|
|
265
265
|
return index.html`
|
|
266
266
|
<${buttonTag} class="skip forward"
|
|
267
267
|
@click="${(element) => skip(element, SKIP_DIRECTIONS.FORWARD)}"
|
|
@@ -299,7 +299,7 @@ function handlePlaybackRateClick(playbackRate, context) {
|
|
|
299
299
|
}
|
|
300
300
|
const AudioPlayerTemplate = (context) => {
|
|
301
301
|
const menuTag = context.tagFor(definition.Menu);
|
|
302
|
-
const buttonTag = context.tagFor(definition$1.Button);
|
|
302
|
+
const buttonTag = context.tagFor(definition$1.Button$1);
|
|
303
303
|
const menuItemTag = context.tagFor(definition.MenuItem);
|
|
304
304
|
return index.html` <div class="wrapper">
|
|
305
305
|
<div class="base ${getClasses}">
|
package/shared/definition5.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { F as FoundationElement, O as Observable, a as attr, h as html, r as registerFactory } from './index.js';
|
|
2
|
-
import {
|
|
2
|
+
import { c as Button, a as buttonRegistries } from './definition11.js';
|
|
3
3
|
import { S as Slider, a as sliderRegistries } from './definition47.js';
|
|
4
4
|
import { a as menuRegistries } from './definition30.js';
|
|
5
5
|
import { M as MediaSkipBy } from './enums.js';
|
package/shared/definition51.cjs
CHANGED
|
@@ -20,7 +20,7 @@ index.__decorate([
|
|
|
20
20
|
index.attr({ mode: "boolean" })
|
|
21
21
|
], Tab$1.prototype, "disabled", void 0);
|
|
22
22
|
|
|
23
|
-
const styles = ":host{--_vvd-tab-accent-firm-wrapper: var( --vvd-tab-accent-firm );--_vvd-tab-cta-firm-wrapper: var( --vvd-tab-cta-firm )}.base{--vvd-tab-accent-firm: var( --_vvd-tab-accent-firm-wrapper, var(--vvd-tab-accent-primary) );--vvd-tab-cta-firm: var( --_vvd-tab-cta-firm-wrapper, var(--vvd-tab-cta-primary) )}:host(.vertical){justify-content:end;grid-column:1/auto}:host([disabled]){cursor:not-allowed}:host([removable]){position:relative}:host(:focus-visible){outline:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary-text: var(--vvd-tab-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-tab-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tab-cta-faint, var(--vvd-color-cta-50));--_connotation-color-fierce: var(--vvd-tab-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-pale: var(--vvd-tab-cta-pale, var(--vvd-color-cta-300));--_connotation-color-soft: var(--vvd-tab-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-primary-text: var(--vvd-tab-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-tab-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-tab-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-fierce: var(--vvd-tab-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-pale: var(--vvd-tab-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-soft: var(--vvd-tab-accent-soft, var(--vvd-color-neutral-100))}.base{position:relative;display:flex;box-sizing:border-box;align-items:center;padding:var(--_tabs-tablist-gutter);background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base-bold);gap:var(--_tabs-tablist-gutter);min-block-size:40px;vertical-align:middle;white-space:nowrap}@supports (user-select: none){.base{user-select:none}}.base:not(.shape-sharp){border-radius:8px}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.base.removable{padding-inline-end:40px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}:host(.vertical) .base{margin-inline-start:var(--_tabs-active-indicator-stroke-width)}slot[name=icon]{font-size:20px;line-height:1}.icon-trailing slot[name=icon]{display:inline-block;order:1;margin-inline-start:auto}
|
|
23
|
+
const styles = ":host{--_vvd-tab-accent-firm-wrapper: var( --vvd-tab-accent-firm );--_vvd-tab-cta-firm-wrapper: var( --vvd-tab-cta-firm )}.base{--vvd-tab-accent-firm: var( --_vvd-tab-accent-firm-wrapper, var(--vvd-tab-accent-primary) );--vvd-tab-cta-firm: var( --_vvd-tab-cta-firm-wrapper, var(--vvd-tab-cta-primary) )}:host(.vertical){justify-content:end;grid-column:1/auto}:host([disabled]){cursor:not-allowed}:host([removable]){position:relative}:host(:focus-visible){outline:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary-text: var(--vvd-tab-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-tab-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tab-cta-faint, var(--vvd-color-cta-50));--_connotation-color-fierce: var(--vvd-tab-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-pale: var(--vvd-tab-cta-pale, var(--vvd-color-cta-300));--_connotation-color-soft: var(--vvd-tab-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-primary-text: var(--vvd-tab-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-tab-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-tab-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-fierce: var(--vvd-tab-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-pale: var(--vvd-tab-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-soft: var(--vvd-tab-accent-soft, var(--vvd-color-neutral-100))}.base{position:relative;display:flex;box-sizing:border-box;align-items:center;padding:var(--_tabs-tablist-gutter);background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base-bold);gap:var(--_tabs-tablist-gutter);min-block-size:40px;vertical-align:middle;white-space:nowrap}@supports (user-select: none){.base{user-select:none}}.base:not(.shape-sharp){border-radius:8px}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.base.removable{padding-inline-end:40px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}:host(.vertical) .base{margin-inline-start:var(--_tabs-active-indicator-stroke-width)}slot[name=icon]{font-size:20px;line-height:1}.icon-trailing slot[name=icon]{display:inline-block;order:1;margin-inline-start:auto}.close{position:absolute;display:flex;align-items:center;justify-content:center;block-size:24px;inline-size:24px;inset-block-start:50%;inset-inline-end:4px;transform:translateY(-50%)}.close vwc-icon{font-size:12px}.close .icon{display:flex;align-items:center;justify-content:center}";
|
|
24
24
|
|
|
25
25
|
var __defProp = Object.defineProperty;
|
|
26
26
|
var __decorateClass = (decorators, target, key, kind) => {
|
package/shared/definition51.js
CHANGED
|
@@ -18,7 +18,7 @@ __decorate([
|
|
|
18
18
|
attr({ mode: "boolean" })
|
|
19
19
|
], Tab$1.prototype, "disabled", void 0);
|
|
20
20
|
|
|
21
|
-
const styles = ":host{--_vvd-tab-accent-firm-wrapper: var( --vvd-tab-accent-firm );--_vvd-tab-cta-firm-wrapper: var( --vvd-tab-cta-firm )}.base{--vvd-tab-accent-firm: var( --_vvd-tab-accent-firm-wrapper, var(--vvd-tab-accent-primary) );--vvd-tab-cta-firm: var( --_vvd-tab-cta-firm-wrapper, var(--vvd-tab-cta-primary) )}:host(.vertical){justify-content:end;grid-column:1/auto}:host([disabled]){cursor:not-allowed}:host([removable]){position:relative}:host(:focus-visible){outline:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary-text: var(--vvd-tab-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-tab-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tab-cta-faint, var(--vvd-color-cta-50));--_connotation-color-fierce: var(--vvd-tab-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-pale: var(--vvd-tab-cta-pale, var(--vvd-color-cta-300));--_connotation-color-soft: var(--vvd-tab-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-primary-text: var(--vvd-tab-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-tab-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-tab-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-fierce: var(--vvd-tab-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-pale: var(--vvd-tab-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-soft: var(--vvd-tab-accent-soft, var(--vvd-color-neutral-100))}.base{position:relative;display:flex;box-sizing:border-box;align-items:center;padding:var(--_tabs-tablist-gutter);background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base-bold);gap:var(--_tabs-tablist-gutter);min-block-size:40px;vertical-align:middle;white-space:nowrap}@supports (user-select: none){.base{user-select:none}}.base:not(.shape-sharp){border-radius:8px}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.base.removable{padding-inline-end:40px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}:host(.vertical) .base{margin-inline-start:var(--_tabs-active-indicator-stroke-width)}slot[name=icon]{font-size:20px;line-height:1}.icon-trailing slot[name=icon]{display:inline-block;order:1;margin-inline-start:auto}
|
|
21
|
+
const styles = ":host{--_vvd-tab-accent-firm-wrapper: var( --vvd-tab-accent-firm );--_vvd-tab-cta-firm-wrapper: var( --vvd-tab-cta-firm )}.base{--vvd-tab-accent-firm: var( --_vvd-tab-accent-firm-wrapper, var(--vvd-tab-accent-primary) );--vvd-tab-cta-firm: var( --_vvd-tab-cta-firm-wrapper, var(--vvd-tab-cta-primary) )}:host(.vertical){justify-content:end;grid-column:1/auto}:host([disabled]){cursor:not-allowed}:host([removable]){position:relative}:host(:focus-visible){outline:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary-text: var(--vvd-tab-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-tab-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tab-cta-faint, var(--vvd-color-cta-50));--_connotation-color-fierce: var(--vvd-tab-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-pale: var(--vvd-tab-cta-pale, var(--vvd-color-cta-300));--_connotation-color-soft: var(--vvd-tab-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-primary-text: var(--vvd-tab-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-tab-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-tab-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-fierce: var(--vvd-tab-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-pale: var(--vvd-tab-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-soft: var(--vvd-tab-accent-soft, var(--vvd-color-neutral-100))}.base{position:relative;display:flex;box-sizing:border-box;align-items:center;padding:var(--_tabs-tablist-gutter);background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base-bold);gap:var(--_tabs-tablist-gutter);min-block-size:40px;vertical-align:middle;white-space:nowrap}@supports (user-select: none){.base{user-select:none}}.base:not(.shape-sharp){border-radius:8px}.base:not(.disabled){cursor:pointer}.base.disabled{pointer-events:none}.base.removable{padding-inline-end:40px}:host(:focus-visible) .base{--focus-stroke-gap-color: transparent;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}:host(.vertical) .base{margin-inline-start:var(--_tabs-active-indicator-stroke-width)}slot[name=icon]{font-size:20px;line-height:1}.icon-trailing slot[name=icon]{display:inline-block;order:1;margin-inline-start:auto}.close{position:absolute;display:flex;align-items:center;justify-content:center;block-size:24px;inline-size:24px;inset-block-start:50%;inset-inline-end:4px;transform:translateY(-50%)}.close vwc-icon{font-size:12px}.close .icon{display:flex;align-items:center;justify-content:center}";
|
|
22
22
|
|
|
23
23
|
var __defProp = Object.defineProperty;
|
|
24
24
|
var __decorateClass = (decorators, target, key, kind) => {
|
package/shared/definition52.cjs
CHANGED
|
@@ -383,7 +383,7 @@ index.__decorate([
|
|
|
383
383
|
], Tabs$1.prototype, "showActiveIndicator", void 0);
|
|
384
384
|
applyMixins.applyMixins(Tabs$1, startEnd.StartEnd);
|
|
385
385
|
|
|
386
|
-
const styles = ":host{display:block}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-firm: var(--vvd-tabs-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-firm: var(--vvd-tabs-accent-firm, var(--vvd-color-canvas-text))}.base{display:grid;box-sizing:border-box}.base.orientation-vertical{overflow:hidden;block-size:inherit;grid-template-columns:auto 1fr;grid-template-rows:1fr}.base:not(.orientation-vertical){grid-template-columns:1fr;grid-template-rows:auto 1fr;max-block-size:100%}.base:not(.orientation-vertical) .scroll-shadow{position:relative;overflow:hidden;
|
|
386
|
+
const styles = ":host{display:block}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-firm: var(--vvd-tabs-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-firm: var(--vvd-tabs-accent-firm, var(--vvd-color-canvas-text))}.base{--_tabs-tablist-gutter: 8px;--_tabs-active-indicator-stroke-width: 2px;display:grid;box-sizing:border-box}.base.orientation-vertical{overflow:hidden;block-size:inherit;grid-template-columns:auto 1fr;grid-template-rows:1fr}.base:not(.orientation-vertical){grid-template-columns:1fr;grid-template-rows:auto 1fr;max-block-size:100%}.base:not(.orientation-vertical) .scroll-shadow{position:relative;overflow:hidden;isolation:isolate}.base:not(.orientation-vertical) .scroll-shadow.start-scroll:before,.base:not(.orientation-vertical) .scroll-shadow.start-scroll:after,.base:not(.orientation-vertical) .scroll-shadow.end-scroll:before,.base:not(.orientation-vertical) .scroll-shadow.end-scroll:after{position:absolute;content:\"\";inline-size:10px;inset-block:0;opacity:0;transition:opacity .1s}.base:not(.orientation-vertical) .scroll-shadow.start-scroll:before{z-index:1;box-shadow:inset 7px 1px 5px -3px var(--vvd-color-neutral-950);inset-inline-start:0;opacity:.2}.base:not(.orientation-vertical) .scroll-shadow.end-scroll:after{box-shadow:inset -7px 1px 5px -3px var(--vvd-color-neutral-950);inset-inline-end:0;opacity:.2}.tabs{display:flex;overflow:hidden}.base.orientation-vertical .tabs{flex-direction:column;box-shadow:1px 0 0 0 var(--vvd-color-neutral-300)}.base.orientation-horizontal .tabs{flex-direction:row;border-bottom:1px solid var(--vvd-color-neutral-300)}.tablist{position:relative;display:grid;box-sizing:border-box;color:var(--_appearance-color-text)}.base.orientation-vertical .tablist{padding:var(--_tabs-tablist-gutter);grid-row:1/2;grid-template-columns:auto 1fr;grid-template-rows:auto;inline-size:100%;place-self:flex-start end;row-gap:var(--_tabs-tablist-gutter)}.base:not(.orientation-vertical) .tablist{justify-content:flex-start;column-gap:var(--_tabs-tablist-gutter);grid-auto-flow:column;grid-template-columns:auto;grid-template-rows:auto auto;inline-size:100%;padding-inline:var(--_tabs-tablist-gutter)}.base.has-action-items.orientation-vertical .tablist{padding-block-end:0}.base.has-action-items:not(.orientation-vertical) .tablist{padding-inline-end:0}.base:not(.orientation-vertical) .tablist-wrapper{overflow:auto hidden;align-self:end;inline-size:100%}.base.orientation-vertical .tablist-wrapper{overflow:hidden auto;block-size:100%}.tablist-wrapper::-webkit-scrollbar{display:none}slot[name=action-items]{display:flex}.base.has-action-items.orientation-horizontal slot[name=action-items]{align-items:center;margin-inline:var(--_tabs-tablist-gutter)}.base.has-action-items.orientation-vertical slot[name=action-items]{margin-block:var(--_tabs-tablist-gutter)}.tabpanel{box-sizing:border-box;block-size:100%;min-block-size:0;min-inline-size:0}.base.scroll .tabpanel{overflow-y:auto}.base.gutters-small .tabpanel{padding:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) - (1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))))}.active-indicator{background:currentColor;margin-inline-start:calc(var(--_tabs-tablist-gutter) * -1)}.base.orientation-vertical .active-indicator{align-self:center;border-radius:2px;block-size:80%;grid-area:1/1/auto/auto;inline-size:var(--_tabs-active-indicator-stroke-width)}.base:not(.orientation-vertical) .active-indicator{position:absolute;z-index:1;border-radius:2px;block-size:var(--_tabs-active-indicator-stroke-width);grid-column:1/auto;inline-size:calc(var(--_tabs-active-tab-inline-size));inset-block-end:0;inset-inline-start:8px}.activeIndicatorTransition{transition:transform .2s ease-out 0s,inline-size .2s ease-out 0s}";
|
|
387
387
|
|
|
388
388
|
var __defProp = Object.defineProperty;
|
|
389
389
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -397,8 +397,11 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
397
397
|
const ACTIVE_TAB_WIDTH = "--_tabs-active-tab-inline-size";
|
|
398
398
|
class Tabs extends Tabs$1 {
|
|
399
399
|
constructor() {
|
|
400
|
-
super(
|
|
400
|
+
super();
|
|
401
401
|
this.scrollablePanel = false;
|
|
402
|
+
this._actionItemsSlottedContent = [];
|
|
403
|
+
this.handleActiveIndicatorPosition = () => this.#handleActiveIndicatorPosition();
|
|
404
|
+
this.animateActiveIndicator = () => this.#animateActiveIndicator();
|
|
402
405
|
}
|
|
403
406
|
connotationChanged() {
|
|
404
407
|
this.#updateTabsConnotation();
|
|
@@ -410,17 +413,16 @@ class Tabs extends Tabs$1 {
|
|
|
410
413
|
if (this.orientation === TabsOrientation.vertical) {
|
|
411
414
|
this.activeIndicatorRef.style.removeProperty(ACTIVE_TAB_WIDTH);
|
|
412
415
|
}
|
|
413
|
-
this.#patchActiveID();
|
|
414
416
|
}
|
|
415
417
|
activeidChanged(oldValue, newValue) {
|
|
416
418
|
super.activeidChanged(oldValue, newValue);
|
|
417
419
|
this.patchIndicatorStyleTransition();
|
|
418
|
-
this.#
|
|
420
|
+
this.#updateTabsConnotation();
|
|
421
|
+
this.#scrollToIndex(this.activeTabIndex);
|
|
419
422
|
}
|
|
420
423
|
tabsChanged() {
|
|
421
424
|
super.tabsChanged();
|
|
422
425
|
this.patchIndicatorStyleTransition();
|
|
423
|
-
this.#patchActiveID();
|
|
424
426
|
this.#updateScrollStatus();
|
|
425
427
|
}
|
|
426
428
|
#updateScrollStatus() {
|
|
@@ -429,7 +431,6 @@ class Tabs extends Tabs$1 {
|
|
|
429
431
|
tabpanelsChanged() {
|
|
430
432
|
super.tabpanelsChanged();
|
|
431
433
|
this.patchIndicatorStyleTransition();
|
|
432
|
-
this.#patchActiveID();
|
|
433
434
|
}
|
|
434
435
|
patchIndicatorStyleTransition() {
|
|
435
436
|
if (!this.activetab || !this.activeIndicatorRef) return;
|
|
@@ -444,6 +445,7 @@ class Tabs extends Tabs$1 {
|
|
|
444
445
|
const scrollWrapper = this.tablist.parentElement;
|
|
445
446
|
this.#resizeObserver = new ResizeObserver(() => {
|
|
446
447
|
this.#updateScrollStatus();
|
|
448
|
+
this.patchIndicatorStyleTransition();
|
|
447
449
|
});
|
|
448
450
|
this.#resizeObserver.observe(scrollWrapper);
|
|
449
451
|
}
|
|
@@ -467,7 +469,7 @@ class Tabs extends Tabs$1 {
|
|
|
467
469
|
return this.shadowRoot.querySelector(".tablist-wrapper");
|
|
468
470
|
}
|
|
469
471
|
#scrollToIndex(index) {
|
|
470
|
-
const tab = this.tabs[index];
|
|
472
|
+
const tab = this.tabs?.[index];
|
|
471
473
|
if (!tab) return;
|
|
472
474
|
let left = 0;
|
|
473
475
|
let top = 0;
|
|
@@ -488,13 +490,37 @@ class Tabs extends Tabs$1 {
|
|
|
488
490
|
}
|
|
489
491
|
this.#tabListWrapper.scrollTo({ top, left, behavior: "smooth" });
|
|
490
492
|
}
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
this.
|
|
496
|
-
|
|
497
|
-
|
|
493
|
+
#getGridProperty() {
|
|
494
|
+
return this.isHorizontal() ? "gridColumn" : "gridRow";
|
|
495
|
+
}
|
|
496
|
+
#getTranslateProperty() {
|
|
497
|
+
return this.isHorizontal() ? "translateX" : "translateY";
|
|
498
|
+
}
|
|
499
|
+
#handleActiveIndicatorPosition() {
|
|
500
|
+
if (this.showActiveIndicator && this.activeindicator) {
|
|
501
|
+
this.animateActiveIndicator();
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
#animateActiveIndicator() {
|
|
505
|
+
const offsetProperty = this.isHorizontal() ? "offsetLeft" : "offsetTop";
|
|
506
|
+
const currentOffset = this.activeIndicatorRef[offsetProperty];
|
|
507
|
+
const currentGridValue = this.activeIndicatorRef.style[this.#getGridProperty()];
|
|
508
|
+
this.activeIndicatorRef.style[this.#getGridProperty()] = `${this.activeTabIndex + 1}`;
|
|
509
|
+
const targetOffset = this.activeIndicatorRef[offsetProperty];
|
|
510
|
+
this.activeIndicatorRef.style[this.#getGridProperty()] = currentGridValue;
|
|
511
|
+
const relativeOffset = targetOffset - currentOffset;
|
|
512
|
+
this.activeIndicatorRef.style.transform = `${this.#getTranslateProperty()}(${relativeOffset}px)`;
|
|
513
|
+
this.activeIndicatorRef.classList.add("activeIndicatorTransition");
|
|
514
|
+
}
|
|
515
|
+
/**
|
|
516
|
+
* @internal
|
|
517
|
+
*/
|
|
518
|
+
activeIndicatorRefChanged() {
|
|
519
|
+
this.activeIndicatorRef.addEventListener("transitionend", () => {
|
|
520
|
+
this.activeIndicatorRef.style[this.#getGridProperty()] = `${this.activeTabIndex + 1}`;
|
|
521
|
+
this.activeIndicatorRef.style.transform = `${this.#getTranslateProperty()}(0px)`;
|
|
522
|
+
this.activeIndicatorRef.classList.remove("activeIndicatorTransition");
|
|
523
|
+
});
|
|
498
524
|
}
|
|
499
525
|
}
|
|
500
526
|
__decorateClass([
|
|
@@ -509,18 +535,23 @@ __decorateClass([
|
|
|
509
535
|
__decorateClass([
|
|
510
536
|
index.attr({ mode: "boolean", attribute: "scrollable-panel" })
|
|
511
537
|
], Tabs.prototype, "scrollablePanel");
|
|
538
|
+
__decorateClass([
|
|
539
|
+
index.observable
|
|
540
|
+
], Tabs.prototype, "_actionItemsSlottedContent");
|
|
512
541
|
|
|
513
542
|
const getClasses = ({
|
|
514
543
|
connotation,
|
|
515
544
|
orientation,
|
|
516
545
|
gutters,
|
|
517
|
-
scrollablePanel
|
|
546
|
+
scrollablePanel,
|
|
547
|
+
_actionItemsSlottedContent
|
|
518
548
|
}) => classNames.classNames(
|
|
519
549
|
"base",
|
|
520
550
|
[`connotation-${connotation}`, Boolean(connotation)],
|
|
521
551
|
[`orientation-${orientation}`, Boolean(orientation)],
|
|
522
552
|
`gutters-${gutters ?? "small"}`,
|
|
523
|
-
["scroll", Boolean(scrollablePanel)]
|
|
553
|
+
["scroll", Boolean(scrollablePanel)],
|
|
554
|
+
["has-action-items", Boolean(_actionItemsSlottedContent.length)]
|
|
524
555
|
);
|
|
525
556
|
function setNoScrollState(scrollShadow, scrollWrapper) {
|
|
526
557
|
if (scrollWrapper.scrollWidth <= scrollWrapper.clientWidth) {
|
|
@@ -552,21 +583,27 @@ function TabsTemplate() {
|
|
|
552
583
|
return index.html`
|
|
553
584
|
<template>
|
|
554
585
|
<div class="${getClasses}">
|
|
555
|
-
<div class="
|
|
556
|
-
<div class="
|
|
557
|
-
<div class="tablist"
|
|
558
|
-
<
|
|
559
|
-
|
|
586
|
+
<div class="tabs">
|
|
587
|
+
<div class="scroll-shadow">
|
|
588
|
+
<div class="tablist-wrapper" @scroll="${setShadowWhenScrollTabs}">
|
|
589
|
+
<div class="tablist" role="tablist" ${ref.ref("tablist")}>
|
|
590
|
+
<slot name="tab" ${slotted.slotted("tabs")}></slot>
|
|
591
|
+
${when.when(
|
|
560
592
|
(x) => x.showActiveIndicator,
|
|
561
593
|
index.html`
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
594
|
+
<div
|
|
595
|
+
${ref.ref("activeIndicatorRef")}
|
|
596
|
+
class="active-indicator"
|
|
597
|
+
></div>
|
|
598
|
+
`
|
|
567
599
|
)}
|
|
600
|
+
</div>
|
|
568
601
|
</div>
|
|
569
602
|
</div>
|
|
603
|
+
<slot
|
|
604
|
+
name="action-items"
|
|
605
|
+
${slotted.slotted("_actionItemsSlottedContent")}
|
|
606
|
+
></slot>
|
|
570
607
|
</div>
|
|
571
608
|
<div class="tabpanel" part="tab-panel">
|
|
572
609
|
<slot name="tabpanel" ${slotted.slotted("tabpanels")}></slot>
|
package/shared/definition52.js
CHANGED
|
@@ -381,7 +381,7 @@ __decorate([
|
|
|
381
381
|
], Tabs$1.prototype, "showActiveIndicator", void 0);
|
|
382
382
|
applyMixins(Tabs$1, StartEnd);
|
|
383
383
|
|
|
384
|
-
const styles = ":host{display:block}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-firm: var(--vvd-tabs-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-firm: var(--vvd-tabs-accent-firm, var(--vvd-color-canvas-text))}.base{display:grid;box-sizing:border-box}.base.orientation-vertical{overflow:hidden;block-size:inherit;grid-template-columns:auto 1fr;grid-template-rows:1fr}.base:not(.orientation-vertical){grid-template-columns:1fr;grid-template-rows:auto 1fr;max-block-size:100%}.base:not(.orientation-vertical) .scroll-shadow{position:relative;overflow:hidden;
|
|
384
|
+
const styles = ":host{display:block}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-firm: var(--vvd-tabs-cta-firm, var(--vvd-color-cta-600))}.base:not(.connotation-cta){--_connotation-color-firm: var(--vvd-tabs-accent-firm, var(--vvd-color-canvas-text))}.base{--_tabs-tablist-gutter: 8px;--_tabs-active-indicator-stroke-width: 2px;display:grid;box-sizing:border-box}.base.orientation-vertical{overflow:hidden;block-size:inherit;grid-template-columns:auto 1fr;grid-template-rows:1fr}.base:not(.orientation-vertical){grid-template-columns:1fr;grid-template-rows:auto 1fr;max-block-size:100%}.base:not(.orientation-vertical) .scroll-shadow{position:relative;overflow:hidden;isolation:isolate}.base:not(.orientation-vertical) .scroll-shadow.start-scroll:before,.base:not(.orientation-vertical) .scroll-shadow.start-scroll:after,.base:not(.orientation-vertical) .scroll-shadow.end-scroll:before,.base:not(.orientation-vertical) .scroll-shadow.end-scroll:after{position:absolute;content:\"\";inline-size:10px;inset-block:0;opacity:0;transition:opacity .1s}.base:not(.orientation-vertical) .scroll-shadow.start-scroll:before{z-index:1;box-shadow:inset 7px 1px 5px -3px var(--vvd-color-neutral-950);inset-inline-start:0;opacity:.2}.base:not(.orientation-vertical) .scroll-shadow.end-scroll:after{box-shadow:inset -7px 1px 5px -3px var(--vvd-color-neutral-950);inset-inline-end:0;opacity:.2}.tabs{display:flex;overflow:hidden}.base.orientation-vertical .tabs{flex-direction:column;box-shadow:1px 0 0 0 var(--vvd-color-neutral-300)}.base.orientation-horizontal .tabs{flex-direction:row;border-bottom:1px solid var(--vvd-color-neutral-300)}.tablist{position:relative;display:grid;box-sizing:border-box;color:var(--_appearance-color-text)}.base.orientation-vertical .tablist{padding:var(--_tabs-tablist-gutter);grid-row:1/2;grid-template-columns:auto 1fr;grid-template-rows:auto;inline-size:100%;place-self:flex-start end;row-gap:var(--_tabs-tablist-gutter)}.base:not(.orientation-vertical) .tablist{justify-content:flex-start;column-gap:var(--_tabs-tablist-gutter);grid-auto-flow:column;grid-template-columns:auto;grid-template-rows:auto auto;inline-size:100%;padding-inline:var(--_tabs-tablist-gutter)}.base.has-action-items.orientation-vertical .tablist{padding-block-end:0}.base.has-action-items:not(.orientation-vertical) .tablist{padding-inline-end:0}.base:not(.orientation-vertical) .tablist-wrapper{overflow:auto hidden;align-self:end;inline-size:100%}.base.orientation-vertical .tablist-wrapper{overflow:hidden auto;block-size:100%}.tablist-wrapper::-webkit-scrollbar{display:none}slot[name=action-items]{display:flex}.base.has-action-items.orientation-horizontal slot[name=action-items]{align-items:center;margin-inline:var(--_tabs-tablist-gutter)}.base.has-action-items.orientation-vertical slot[name=action-items]{margin-block:var(--_tabs-tablist-gutter)}.tabpanel{box-sizing:border-box;block-size:100%;min-block-size:0;min-inline-size:0}.base.scroll .tabpanel{overflow-y:auto}.base.gutters-small .tabpanel{padding:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) - (1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))))}.active-indicator{background:currentColor;margin-inline-start:calc(var(--_tabs-tablist-gutter) * -1)}.base.orientation-vertical .active-indicator{align-self:center;border-radius:2px;block-size:80%;grid-area:1/1/auto/auto;inline-size:var(--_tabs-active-indicator-stroke-width)}.base:not(.orientation-vertical) .active-indicator{position:absolute;z-index:1;border-radius:2px;block-size:var(--_tabs-active-indicator-stroke-width);grid-column:1/auto;inline-size:calc(var(--_tabs-active-tab-inline-size));inset-block-end:0;inset-inline-start:8px}.activeIndicatorTransition{transition:transform .2s ease-out 0s,inline-size .2s ease-out 0s}";
|
|
385
385
|
|
|
386
386
|
var __defProp = Object.defineProperty;
|
|
387
387
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -395,8 +395,11 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
395
395
|
const ACTIVE_TAB_WIDTH = "--_tabs-active-tab-inline-size";
|
|
396
396
|
class Tabs extends Tabs$1 {
|
|
397
397
|
constructor() {
|
|
398
|
-
super(
|
|
398
|
+
super();
|
|
399
399
|
this.scrollablePanel = false;
|
|
400
|
+
this._actionItemsSlottedContent = [];
|
|
401
|
+
this.handleActiveIndicatorPosition = () => this.#handleActiveIndicatorPosition();
|
|
402
|
+
this.animateActiveIndicator = () => this.#animateActiveIndicator();
|
|
400
403
|
}
|
|
401
404
|
connotationChanged() {
|
|
402
405
|
this.#updateTabsConnotation();
|
|
@@ -408,17 +411,16 @@ class Tabs extends Tabs$1 {
|
|
|
408
411
|
if (this.orientation === TabsOrientation.vertical) {
|
|
409
412
|
this.activeIndicatorRef.style.removeProperty(ACTIVE_TAB_WIDTH);
|
|
410
413
|
}
|
|
411
|
-
this.#patchActiveID();
|
|
412
414
|
}
|
|
413
415
|
activeidChanged(oldValue, newValue) {
|
|
414
416
|
super.activeidChanged(oldValue, newValue);
|
|
415
417
|
this.patchIndicatorStyleTransition();
|
|
416
|
-
this.#
|
|
418
|
+
this.#updateTabsConnotation();
|
|
419
|
+
this.#scrollToIndex(this.activeTabIndex);
|
|
417
420
|
}
|
|
418
421
|
tabsChanged() {
|
|
419
422
|
super.tabsChanged();
|
|
420
423
|
this.patchIndicatorStyleTransition();
|
|
421
|
-
this.#patchActiveID();
|
|
422
424
|
this.#updateScrollStatus();
|
|
423
425
|
}
|
|
424
426
|
#updateScrollStatus() {
|
|
@@ -427,7 +429,6 @@ class Tabs extends Tabs$1 {
|
|
|
427
429
|
tabpanelsChanged() {
|
|
428
430
|
super.tabpanelsChanged();
|
|
429
431
|
this.patchIndicatorStyleTransition();
|
|
430
|
-
this.#patchActiveID();
|
|
431
432
|
}
|
|
432
433
|
patchIndicatorStyleTransition() {
|
|
433
434
|
if (!this.activetab || !this.activeIndicatorRef) return;
|
|
@@ -442,6 +443,7 @@ class Tabs extends Tabs$1 {
|
|
|
442
443
|
const scrollWrapper = this.tablist.parentElement;
|
|
443
444
|
this.#resizeObserver = new ResizeObserver(() => {
|
|
444
445
|
this.#updateScrollStatus();
|
|
446
|
+
this.patchIndicatorStyleTransition();
|
|
445
447
|
});
|
|
446
448
|
this.#resizeObserver.observe(scrollWrapper);
|
|
447
449
|
}
|
|
@@ -465,7 +467,7 @@ class Tabs extends Tabs$1 {
|
|
|
465
467
|
return this.shadowRoot.querySelector(".tablist-wrapper");
|
|
466
468
|
}
|
|
467
469
|
#scrollToIndex(index) {
|
|
468
|
-
const tab = this.tabs[index];
|
|
470
|
+
const tab = this.tabs?.[index];
|
|
469
471
|
if (!tab) return;
|
|
470
472
|
let left = 0;
|
|
471
473
|
let top = 0;
|
|
@@ -486,13 +488,37 @@ class Tabs extends Tabs$1 {
|
|
|
486
488
|
}
|
|
487
489
|
this.#tabListWrapper.scrollTo({ top, left, behavior: "smooth" });
|
|
488
490
|
}
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
this.
|
|
494
|
-
|
|
495
|
-
|
|
491
|
+
#getGridProperty() {
|
|
492
|
+
return this.isHorizontal() ? "gridColumn" : "gridRow";
|
|
493
|
+
}
|
|
494
|
+
#getTranslateProperty() {
|
|
495
|
+
return this.isHorizontal() ? "translateX" : "translateY";
|
|
496
|
+
}
|
|
497
|
+
#handleActiveIndicatorPosition() {
|
|
498
|
+
if (this.showActiveIndicator && this.activeindicator) {
|
|
499
|
+
this.animateActiveIndicator();
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
#animateActiveIndicator() {
|
|
503
|
+
const offsetProperty = this.isHorizontal() ? "offsetLeft" : "offsetTop";
|
|
504
|
+
const currentOffset = this.activeIndicatorRef[offsetProperty];
|
|
505
|
+
const currentGridValue = this.activeIndicatorRef.style[this.#getGridProperty()];
|
|
506
|
+
this.activeIndicatorRef.style[this.#getGridProperty()] = `${this.activeTabIndex + 1}`;
|
|
507
|
+
const targetOffset = this.activeIndicatorRef[offsetProperty];
|
|
508
|
+
this.activeIndicatorRef.style[this.#getGridProperty()] = currentGridValue;
|
|
509
|
+
const relativeOffset = targetOffset - currentOffset;
|
|
510
|
+
this.activeIndicatorRef.style.transform = `${this.#getTranslateProperty()}(${relativeOffset}px)`;
|
|
511
|
+
this.activeIndicatorRef.classList.add("activeIndicatorTransition");
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* @internal
|
|
515
|
+
*/
|
|
516
|
+
activeIndicatorRefChanged() {
|
|
517
|
+
this.activeIndicatorRef.addEventListener("transitionend", () => {
|
|
518
|
+
this.activeIndicatorRef.style[this.#getGridProperty()] = `${this.activeTabIndex + 1}`;
|
|
519
|
+
this.activeIndicatorRef.style.transform = `${this.#getTranslateProperty()}(0px)`;
|
|
520
|
+
this.activeIndicatorRef.classList.remove("activeIndicatorTransition");
|
|
521
|
+
});
|
|
496
522
|
}
|
|
497
523
|
}
|
|
498
524
|
__decorateClass([
|
|
@@ -507,18 +533,23 @@ __decorateClass([
|
|
|
507
533
|
__decorateClass([
|
|
508
534
|
attr({ mode: "boolean", attribute: "scrollable-panel" })
|
|
509
535
|
], Tabs.prototype, "scrollablePanel");
|
|
536
|
+
__decorateClass([
|
|
537
|
+
observable
|
|
538
|
+
], Tabs.prototype, "_actionItemsSlottedContent");
|
|
510
539
|
|
|
511
540
|
const getClasses = ({
|
|
512
541
|
connotation,
|
|
513
542
|
orientation,
|
|
514
543
|
gutters,
|
|
515
|
-
scrollablePanel
|
|
544
|
+
scrollablePanel,
|
|
545
|
+
_actionItemsSlottedContent
|
|
516
546
|
}) => classNames(
|
|
517
547
|
"base",
|
|
518
548
|
[`connotation-${connotation}`, Boolean(connotation)],
|
|
519
549
|
[`orientation-${orientation}`, Boolean(orientation)],
|
|
520
550
|
`gutters-${gutters ?? "small"}`,
|
|
521
|
-
["scroll", Boolean(scrollablePanel)]
|
|
551
|
+
["scroll", Boolean(scrollablePanel)],
|
|
552
|
+
["has-action-items", Boolean(_actionItemsSlottedContent.length)]
|
|
522
553
|
);
|
|
523
554
|
function setNoScrollState(scrollShadow, scrollWrapper) {
|
|
524
555
|
if (scrollWrapper.scrollWidth <= scrollWrapper.clientWidth) {
|
|
@@ -550,21 +581,27 @@ function TabsTemplate() {
|
|
|
550
581
|
return html`
|
|
551
582
|
<template>
|
|
552
583
|
<div class="${getClasses}">
|
|
553
|
-
<div class="
|
|
554
|
-
<div class="
|
|
555
|
-
<div class="tablist"
|
|
556
|
-
<
|
|
557
|
-
|
|
584
|
+
<div class="tabs">
|
|
585
|
+
<div class="scroll-shadow">
|
|
586
|
+
<div class="tablist-wrapper" @scroll="${setShadowWhenScrollTabs}">
|
|
587
|
+
<div class="tablist" role="tablist" ${ref("tablist")}>
|
|
588
|
+
<slot name="tab" ${slotted("tabs")}></slot>
|
|
589
|
+
${when(
|
|
558
590
|
(x) => x.showActiveIndicator,
|
|
559
591
|
html`
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
592
|
+
<div
|
|
593
|
+
${ref("activeIndicatorRef")}
|
|
594
|
+
class="active-indicator"
|
|
595
|
+
></div>
|
|
596
|
+
`
|
|
565
597
|
)}
|
|
598
|
+
</div>
|
|
566
599
|
</div>
|
|
567
600
|
</div>
|
|
601
|
+
<slot
|
|
602
|
+
name="action-items"
|
|
603
|
+
${slotted("_actionItemsSlottedContent")}
|
|
604
|
+
></slot>
|
|
568
605
|
</div>
|
|
569
606
|
<div class="tabpanel" part="tab-panel">
|
|
570
607
|
<slot name="tabpanel" ${slotted("tabpanels")}></slot>
|
package/shared/definition56.cjs
CHANGED
|
@@ -13,59 +13,57 @@ const when = require('./when.cjs');
|
|
|
13
13
|
const slotted = require('./slotted.cjs');
|
|
14
14
|
const classNames = require('./class-names.cjs');
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
const byteToHex = [];
|
|
17
|
+
for (let i = 0; i < 256; ++i) {
|
|
18
|
+
byteToHex.push((i + 0x100).toString(16).slice(1));
|
|
19
|
+
}
|
|
20
|
+
function unsafeStringify(arr, offset = 0) {
|
|
21
|
+
return (byteToHex[arr[offset + 0]] +
|
|
22
|
+
byteToHex[arr[offset + 1]] +
|
|
23
|
+
byteToHex[arr[offset + 2]] +
|
|
24
|
+
byteToHex[arr[offset + 3]] +
|
|
25
|
+
'-' +
|
|
26
|
+
byteToHex[arr[offset + 4]] +
|
|
27
|
+
byteToHex[arr[offset + 5]] +
|
|
28
|
+
'-' +
|
|
29
|
+
byteToHex[arr[offset + 6]] +
|
|
30
|
+
byteToHex[arr[offset + 7]] +
|
|
31
|
+
'-' +
|
|
32
|
+
byteToHex[arr[offset + 8]] +
|
|
33
|
+
byteToHex[arr[offset + 9]] +
|
|
34
|
+
'-' +
|
|
35
|
+
byteToHex[arr[offset + 10]] +
|
|
36
|
+
byteToHex[arr[offset + 11]] +
|
|
37
|
+
byteToHex[arr[offset + 12]] +
|
|
38
|
+
byteToHex[arr[offset + 13]] +
|
|
39
|
+
byteToHex[arr[offset + 14]] +
|
|
40
|
+
byteToHex[arr[offset + 15]]).toLowerCase();
|
|
41
|
+
}
|
|
42
|
+
|
|
19
43
|
let getRandomValues;
|
|
20
44
|
const rnds8 = new Uint8Array(16);
|
|
21
45
|
function rng() {
|
|
22
|
-
// lazy load so that environments that need to polyfill have a chance to do so
|
|
23
|
-
if (!getRandomValues) {
|
|
24
|
-
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
|
|
25
|
-
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);
|
|
26
|
-
|
|
27
46
|
if (!getRandomValues) {
|
|
28
|
-
|
|
47
|
+
if (typeof crypto === 'undefined' || !crypto.getRandomValues) {
|
|
48
|
+
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
|
|
49
|
+
}
|
|
50
|
+
getRandomValues = crypto.getRandomValues.bind(crypto);
|
|
29
51
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return getRandomValues(rnds8);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Convert array of 16 byte values to UUID string format of the form:
|
|
37
|
-
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
const byteToHex = [];
|
|
41
|
-
|
|
42
|
-
for (let i = 0; i < 256; ++i) {
|
|
43
|
-
byteToHex.push((i + 0x100).toString(16).slice(1));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function unsafeStringify(arr, offset = 0) {
|
|
47
|
-
// Note: Be careful editing this code! It's been tuned for performance
|
|
48
|
-
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
|
49
|
-
return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
|
|
52
|
+
return getRandomValues(rnds8);
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
|
|
53
|
-
const native = {
|
|
54
|
-
randomUUID
|
|
55
|
-
};
|
|
56
|
+
const native = { randomUUID };
|
|
56
57
|
|
|
57
58
|
function v4(options, buf, offset) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
|
|
67
|
-
|
|
68
|
-
return unsafeStringify(rnds);
|
|
59
|
+
if (native.randomUUID && !buf && !options) {
|
|
60
|
+
return native.randomUUID();
|
|
61
|
+
}
|
|
62
|
+
options = options || {};
|
|
63
|
+
const rnds = options.random || (options.rng || rng)();
|
|
64
|
+
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
|
65
|
+
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
|
66
|
+
return unsafeStringify(rnds);
|
|
69
67
|
}
|
|
70
68
|
|
|
71
69
|
const generateRandomId = () => v4();
|