@vonage/vivid 3.0.0 → 3.0.1
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/README.md +176 -4
- package/accordion/index.js +22 -61
- package/accordion-item/index.js +16 -118
- package/action-group/index.js +5 -0
- package/avatar/index.js +11 -0
- package/badge/index.js +9 -53
- package/banner/index.js +20 -210
- package/breadcrumb/index.js +7 -96
- package/breadcrumb-item/index.js +15 -46
- package/button/index.js +19 -751
- package/calendar/index.js +5 -1520
- package/calendar-event/index.js +9 -0
- package/card/index.js +10 -133
- package/checkbox/index.js +16 -0
- package/combobox/index.js +35 -0
- package/dialog/index.js +24 -0
- package/divider/index.js +6 -0
- package/elevation/index.js +4 -30
- package/fab/index.js +22 -0
- package/focus/index.js +4 -2
- package/header/index.js +6 -0
- package/icon/index.js +8 -36
- package/index.js +76 -26
- package/layout/index.js +4 -52
- package/lib/accordion/accordion.d.ts +3 -7
- package/lib/accordion/accordion.template.d.ts +1 -2
- package/lib/accordion/definition.d.ts +1 -0
- package/lib/accordion/index.d.ts +1 -2
- package/lib/accordion-item/accordion-item.d.ts +2 -6
- package/lib/accordion-item/accordion-item.template.d.ts +4 -4
- package/lib/accordion-item/definition.d.ts +1 -0
- package/lib/accordion-item/index.d.ts +1 -3
- package/lib/action-group/action-group.d.ts +10 -0
- package/lib/{sidenav-item/sidenav-item.template.d.ts → action-group/action-group.template.d.ts} +2 -2
- package/lib/action-group/definition.d.ts +1 -0
- package/lib/action-group/index.d.ts +1 -0
- package/lib/avatar/avatar.d.ts +15 -0
- package/lib/avatar/avatar.template.d.ts +4 -0
- package/lib/avatar/definition.d.ts +1 -0
- package/lib/avatar/index.d.ts +1 -0
- package/lib/badge/badge.d.ts +2 -4
- package/lib/badge/definition.d.ts +3 -0
- package/lib/badge/index.d.ts +1 -3
- package/lib/banner/banner.d.ts +1 -1
- package/lib/banner/banner.template.d.ts +0 -2
- package/lib/banner/definition.d.ts +1 -0
- package/lib/banner/index.d.ts +1 -2
- package/lib/breadcrumb/breadcrumb.template.d.ts +4 -0
- package/lib/breadcrumb/definition.d.ts +1 -0
- package/lib/breadcrumb/index.d.ts +1 -2
- package/lib/breadcrumb-item/definition.d.ts +1 -0
- package/lib/breadcrumb-item/index.d.ts +1 -3
- package/lib/button/button.d.ts +3 -2
- package/lib/button/definition.d.ts +1 -0
- package/lib/button/index.d.ts +1 -21
- package/lib/calendar/calendar.d.ts +3 -1
- package/lib/calendar/definition.d.ts +1 -0
- package/lib/calendar/index.d.ts +1 -3
- package/lib/calendar-event/calendar-event.d.ts +14 -0
- package/lib/calendar-event/calendar-event.template.d.ts +4 -0
- package/lib/calendar-event/definition.d.ts +1 -0
- package/lib/calendar-event/index.d.ts +1 -0
- package/lib/card/card.d.ts +2 -2
- package/lib/card/definition.d.ts +1 -0
- package/lib/card/index.d.ts +1 -5
- package/lib/checkbox/checkbox.d.ts +5 -0
- package/lib/checkbox/checkbox.template.d.ts +4 -0
- package/lib/checkbox/definition.d.ts +1 -0
- package/lib/checkbox/index.d.ts +1 -0
- package/lib/combobox/combobox.d.ts +14 -0
- package/lib/combobox/combobox.template.d.ts +4 -0
- package/lib/combobox/definition.d.ts +3 -0
- package/lib/combobox/index.d.ts +1 -0
- package/lib/components.d.ts +44 -16
- package/lib/dialog/definition.d.ts +1 -0
- package/lib/dialog/dialog.d.ts +23 -0
- package/lib/dialog/dialog.template.d.ts +4 -0
- package/lib/dialog/index.d.ts +1 -0
- package/lib/divider/definition.d.ts +1 -0
- package/lib/divider/divider.d.ts +3 -0
- package/lib/divider/divider.template.d.ts +4 -0
- package/lib/divider/index.d.ts +1 -0
- package/lib/elevation/definition.d.ts +1 -0
- package/lib/elevation/elevation.d.ts +1 -0
- package/lib/elevation/index.d.ts +1 -2
- package/lib/enums.d.ts +19 -6
- package/lib/fab/definition.d.ts +3 -0
- package/lib/fab/fab.d.ts +13 -0
- package/lib/fab/fab.template.d.ts +4 -0
- package/lib/fab/index.d.ts +1 -0
- package/lib/focus/definition.d.ts +3 -0
- package/lib/focus/index.d.ts +1 -2
- package/lib/{sidenav-item/index.d.ts → header/definition.d.ts} +2 -2
- package/lib/header/header.d.ts +5 -0
- package/lib/header/header.template.d.ts +4 -0
- package/lib/header/index.d.ts +1 -0
- package/lib/icon/definition.d.ts +3 -0
- package/lib/icon/icon.d.ts +5 -6
- package/lib/icon/index.d.ts +1 -2
- package/lib/layout/definition.d.ts +3 -0
- package/lib/layout/index.d.ts +1 -2
- package/lib/layout/layout.d.ts +4 -4
- package/lib/listbox/definition.d.ts +3 -0
- package/lib/listbox/index.d.ts +1 -0
- package/lib/listbox/listbox.d.ts +6 -0
- package/lib/listbox/listbox.template.d.ts +4 -0
- package/lib/menu/definition.d.ts +11 -0
- package/lib/menu/index.d.ts +1 -0
- package/lib/menu/menu.d.ts +10 -0
- package/lib/menu/menu.template.d.ts +3 -0
- package/lib/menu-item/definition.d.ts +3 -0
- package/lib/menu-item/index.d.ts +1 -0
- package/lib/menu-item/menu-item.d.ts +8 -0
- package/lib/menu-item/menu-item.template.d.ts +5 -0
- package/lib/nav/definition.d.ts +3 -0
- package/lib/nav/index.d.ts +1 -0
- package/lib/nav/nav.d.ts +3 -0
- package/lib/nav/nav.template.d.ts +4 -0
- package/lib/nav-disclosure/definition.d.ts +3 -0
- package/lib/nav-disclosure/index.d.ts +1 -0
- package/lib/nav-disclosure/nav-disclosure.d.ts +10 -0
- package/lib/nav-disclosure/nav-disclosure.template.d.ts +4 -0
- package/lib/nav-item/definition.d.ts +3 -0
- package/lib/nav-item/index.d.ts +1 -0
- package/lib/{sidenav-item/sidenav-item.d.ts → nav-item/nav-item.d.ts} +2 -2
- package/lib/nav-item/nav-item.template.d.ts +4 -0
- package/lib/note/definition.d.ts +3 -0
- package/lib/note/index.d.ts +1 -0
- package/lib/note/note.d.ts +10 -0
- package/lib/{text/text.template.d.ts → note/note.template.d.ts} +2 -2
- package/lib/number-field/definition.d.ts +4 -0
- package/lib/number-field/index.d.ts +1 -0
- package/lib/number-field/number-field.d.ts +14 -0
- package/lib/number-field/number-field.template.d.ts +4 -0
- package/lib/option/definition.d.ts +3 -0
- package/lib/option/index.d.ts +1 -0
- package/lib/option/option.d.ts +9 -0
- package/lib/option/option.template.d.ts +4 -0
- package/lib/popup/definition.d.ts +4 -0
- package/lib/popup/index.d.ts +1 -4
- package/lib/popup/popup.d.ts +8 -4
- package/lib/progress/definition.d.ts +3 -0
- package/lib/progress/index.d.ts +1 -2
- package/lib/progress/progress.d.ts +1 -1
- package/lib/progress-ring/definition.d.ts +3 -0
- package/lib/progress-ring/index.d.ts +1 -2
- package/lib/progress-ring/progress-ring.d.ts +2 -1
- package/lib/radio/definition.d.ts +3 -0
- package/lib/radio/index.d.ts +1 -0
- package/lib/radio/radio.d.ts +4 -0
- package/lib/radio/radio.template.d.ts +4 -0
- package/lib/radio-group/definition.d.ts +11 -0
- package/lib/radio-group/index.d.ts +1 -0
- package/lib/radio-group/radio-group.d.ts +4 -0
- package/lib/radio-group/radio-group.template.d.ts +4 -0
- package/lib/select/definition.d.ts +3 -0
- package/lib/select/index.d.ts +1 -0
- package/lib/select/select.d.ts +17 -0
- package/lib/select/select.template.d.ts +4 -0
- package/lib/side-drawer/definition.d.ts +3 -0
- package/lib/side-drawer/index.d.ts +1 -2
- package/lib/side-drawer/side-drawer.d.ts +3 -2
- package/lib/slider/definition.d.ts +3 -0
- package/lib/slider/index.d.ts +1 -0
- package/lib/slider/slider.d.ts +4 -0
- package/lib/slider/slider.template.d.ts +4 -0
- package/lib/switch/definition.d.ts +3 -0
- package/lib/switch/index.d.ts +1 -0
- package/lib/switch/switch.d.ts +7 -0
- package/lib/switch/switch.template.d.ts +4 -0
- package/lib/tab/definition.d.ts +3 -0
- package/lib/tab/index.d.ts +1 -0
- package/lib/tab/tab.d.ts +9 -0
- package/lib/tab/tab.template.d.ts +3 -0
- package/lib/tab-panel/definition.d.ts +3 -0
- package/lib/tab-panel/index.d.ts +1 -0
- package/lib/tab-panel/tab-panel.d.ts +3 -0
- package/lib/tab-panel/tab-panel.template.d.ts +2 -0
- package/lib/tabs/definition.d.ts +3 -0
- package/lib/tabs/index.d.ts +1 -0
- package/lib/tabs/tabs.d.ts +10 -0
- package/lib/tabs/tabs.template.d.ts +2 -0
- package/lib/text-anchor/definition.d.ts +3 -0
- package/lib/text-anchor/index.d.ts +1 -2
- package/lib/text-area/definition.d.ts +3 -0
- package/lib/text-area/index.d.ts +1 -0
- package/lib/text-area/text-area.d.ts +9 -0
- package/lib/text-area/text-area.template.d.ts +4 -0
- package/lib/text-field/definition.d.ts +3 -0
- package/lib/text-field/index.d.ts +1 -0
- package/lib/text-field/text-field.d.ts +14 -0
- package/lib/text-field/text-field.template.d.ts +4 -0
- package/lib/tooltip/definition.d.ts +3 -0
- package/lib/tooltip/index.d.ts +1 -3
- package/lib/tooltip/tooltip.d.ts +6 -6
- package/listbox/index.js +27 -0
- package/menu/index.js +30 -0
- package/menu-item/index.js +20 -0
- package/nav/index.js +4 -0
- package/nav-disclosure/index.js +17 -0
- package/nav-item/index.js +22 -0
- package/note/index.js +15 -0
- package/number-field/index.js +459 -0
- package/option/index.js +21 -0
- package/package.json +29 -18
- package/popup/index.js +21 -2062
- package/progress/index.js +6 -98
- package/progress-ring/index.js +6 -75
- package/radio/index.js +12 -0
- package/radio-group/index.js +11 -0
- package/select/index.js +34 -0
- package/shared/affix.js +2 -8
- package/shared/anchor.js +10 -2
- package/shared/apply-mixins.js +5 -4
- package/shared/aria-global.js +2 -86
- package/shared/aria.js +9 -0
- package/shared/base-progress.js +5 -0
- package/shared/breadcrumb-item.js +1 -1
- package/shared/button.js +200 -0
- package/shared/calendar-event.js +19 -0
- package/shared/definition.js +225 -0
- package/shared/definition10.js +99 -0
- package/shared/definition11.js +48 -0
- package/shared/definition12.js +1523 -0
- package/shared/definition13.js +111 -0
- package/shared/definition14.js +114 -0
- package/shared/definition15.js +32 -0
- package/shared/definition16.js +172 -0
- package/shared/definition17.js +727 -0
- package/shared/definition18.js +1842 -0
- package/shared/definition19.js +261 -0
- package/shared/definition2.js +150 -0
- package/shared/definition20.js +221 -0
- package/shared/definition21.js +78 -0
- package/shared/definition22.js +87 -0
- package/shared/definition23.js +58 -0
- package/shared/definition24.js +44 -0
- package/shared/definition25.js +58 -0
- package/shared/definition26.js +348 -0
- package/shared/definition27.js +363 -0
- package/shared/definition28.js +21 -0
- package/shared/definition29.js +75 -0
- package/shared/definition3.js +29 -0
- package/shared/definition30.js +31 -0
- package/shared/definition31.js +49 -0
- package/shared/definition32.js +94 -0
- package/shared/definition33.js +77 -0
- package/shared/definition34.js +45 -0
- package/shared/definition35.js +435 -0
- package/shared/definition36.js +634 -0
- package/shared/definition37.js +86 -0
- package/shared/definition38.js +592 -0
- package/shared/definition39.js +147 -0
- package/shared/definition4.js +19 -0
- package/shared/definition40.js +67 -0
- package/shared/definition41.js +32 -0
- package/shared/definition42.js +440 -0
- package/shared/definition43.js +282 -0
- package/shared/definition44.js +119 -0
- package/shared/definition45.js +77 -0
- package/shared/definition5.js +38 -0
- package/shared/definition6.js +60 -0
- package/shared/definition7.js +45 -0
- package/shared/definition8.js +113 -0
- package/shared/definition9.js +107 -0
- package/shared/design-system/index.d.ts +1 -1
- package/shared/dialog-polyfill.esm.js +858 -0
- package/shared/direction.js +20 -0
- package/shared/dom.js +8 -0
- package/shared/enums.js +70 -0
- package/shared/es.object.assign.js +2 -3
- package/shared/es.regexp.to-string.js +59 -0
- package/shared/focus.js +5 -0
- package/shared/focus2.js +11 -0
- package/shared/form-associated.js +466 -0
- package/shared/form-elements.js +127 -0
- package/shared/icon.js +538 -567
- package/shared/index.js +1664 -83
- package/shared/key-codes.js +97 -0
- package/shared/listbox.js +995 -0
- package/shared/numbers.js +34 -0
- package/shared/patterns/affix.d.ts +1 -1
- package/shared/patterns/focus.d.ts +3 -0
- package/shared/patterns/form-elements/form-elements.d.ts +43 -0
- package/shared/patterns/form-elements/index.d.ts +1 -0
- package/shared/patterns/index.d.ts +2 -0
- package/shared/radio.js +127 -0
- package/shared/ref.js +41 -0
- package/shared/select.options.js +10 -0
- package/shared/start-end.js +50 -0
- package/shared/string-trim.js +40 -0
- package/shared/strings.js +9 -0
- package/shared/text-anchor.js +0 -2
- package/shared/text-anchor.template.js +6 -5
- package/shared/text-field.js +3 -0
- package/shared/text-field2.js +225 -0
- package/shared/to-string.js +51 -0
- package/side-drawer/index.js +5 -81
- package/slider/index.js +17 -0
- package/styles/core/all.css +83 -0
- package/styles/core/theme.css +11 -0
- package/styles/core/typography.css +77 -0
- package/styles/tokens/theme-dark.css +228 -0
- package/styles/tokens/theme-light.css +228 -0
- package/switch/index.js +18 -0
- package/tab/index.js +16 -0
- package/tab-panel/index.js +4 -0
- package/tabs/index.js +24 -0
- package/text-anchor/index.js +11 -6
- package/text-area/index.js +23 -0
- package/text-field/index.js +24 -0
- package/tooltip/index.js +18 -55
- package/lib/text/index.d.ts +0 -2
- package/lib/text/text.d.ts +0 -10
- package/shared/index2.js +0 -21
- package/shared/object-set-prototype-of.js +0 -1009
- package/shared/style-inject.es.js +0 -28
- package/shared/web.dom-collections.iterator.js +0 -473
- package/sidenav-item/index.js +0 -39
- package/styles/fonts/spezia.css +0 -23
- package/styles/themes/dark.css +0 -205
- package/styles/themes/light.css +0 -205
- package/text/index.js +0 -46
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, n as nullableNumberConverter } from './index.js';
|
|
2
|
+
|
|
3
|
+
class CalendarEvent extends FoundationElement {}
|
|
4
|
+
__decorate([attr, __metadata("design:type", String)], CalendarEvent.prototype, "heading", void 0);
|
|
5
|
+
__decorate([attr, __metadata("design:type", String)], CalendarEvent.prototype, "description", void 0);
|
|
6
|
+
__decorate([attr, __metadata("design:type", String)], CalendarEvent.prototype, "connotation", void 0);
|
|
7
|
+
__decorate([attr, __metadata("design:type", String)], CalendarEvent.prototype, "appearance", void 0);
|
|
8
|
+
__decorate([attr({
|
|
9
|
+
converter: nullableNumberConverter,
|
|
10
|
+
attribute: 'overlap-count'
|
|
11
|
+
}), __metadata("design:type", Number)], CalendarEvent.prototype, "overlapCount", void 0);
|
|
12
|
+
__decorate([attr({
|
|
13
|
+
converter: nullableNumberConverter
|
|
14
|
+
}), __metadata("design:type", Number)], CalendarEvent.prototype, "start", void 0);
|
|
15
|
+
__decorate([attr({
|
|
16
|
+
converter: nullableNumberConverter
|
|
17
|
+
}), __metadata("design:type", Number)], CalendarEvent.prototype, "duration", void 0);
|
|
18
|
+
|
|
19
|
+
export { CalendarEvent as C };
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { F as FoundationElement, _ as __decorate, a as attr, o as observable, h as html, r as registerFactory } from './index.js';
|
|
2
|
+
import { A as AccordionItem, a as accordionItemRegistries } from './definition2.js';
|
|
3
|
+
import { k as keyEnd, a as keyHome, b as keyArrowDown, c as keyArrowUp } from './key-codes.js';
|
|
4
|
+
import { w as wrapInBounds } from './numbers.js';
|
|
5
|
+
import { s as slotted, e as elements } from './slotted.js';
|
|
6
|
+
import { c as classNames } from './class-names.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Expand mode for {@link Accordion}
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
const AccordionExpandMode = {
|
|
13
|
+
/**
|
|
14
|
+
* Designates only a single {@link @microsoft/fast-foundation#(AccordionItem:class) } can be open a time.
|
|
15
|
+
*/
|
|
16
|
+
single: "single",
|
|
17
|
+
/**
|
|
18
|
+
* Designates multiple {@link @microsoft/fast-foundation#(AccordionItem:class) | AccordionItems} can be open simultaneously.
|
|
19
|
+
*/
|
|
20
|
+
multi: "multi",
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* An Accordion Custom HTML Element
|
|
24
|
+
* Implements {@link https://www.w3.org/TR/wai-aria-practices-1.1/#accordion | ARIA Accordion}.
|
|
25
|
+
*
|
|
26
|
+
* @fires change - Fires a custom 'change' event when the active item changes
|
|
27
|
+
* @csspart item - The slot for the accordion items
|
|
28
|
+
* @public
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* Designed to be used with {@link @microsoft/fast-foundation#accordionTemplate} and {@link @microsoft/fast-foundation#(AccordionItem:class)}.
|
|
32
|
+
*/
|
|
33
|
+
class Accordion$1 extends FoundationElement {
|
|
34
|
+
constructor() {
|
|
35
|
+
super(...arguments);
|
|
36
|
+
/**
|
|
37
|
+
* Controls the expand mode of the Accordion, either allowing
|
|
38
|
+
* single or multiple item expansion.
|
|
39
|
+
* @public
|
|
40
|
+
*
|
|
41
|
+
* @remarks
|
|
42
|
+
* HTML attribute: expand-mode
|
|
43
|
+
*/
|
|
44
|
+
this.expandmode = AccordionExpandMode.multi;
|
|
45
|
+
this.activeItemIndex = 0;
|
|
46
|
+
this.change = () => {
|
|
47
|
+
this.$emit("change", this.activeid);
|
|
48
|
+
};
|
|
49
|
+
this.setItems = () => {
|
|
50
|
+
var _a;
|
|
51
|
+
if (this.accordionItems.length === 0) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.accordionIds = this.getItemIds();
|
|
55
|
+
this.accordionItems.forEach((item, index) => {
|
|
56
|
+
if (item instanceof AccordionItem) {
|
|
57
|
+
item.addEventListener("change", this.activeItemChange);
|
|
58
|
+
if (this.isSingleExpandMode()) {
|
|
59
|
+
this.activeItemIndex !== index
|
|
60
|
+
? (item.expanded = false)
|
|
61
|
+
: (item.expanded = true);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const itemId = this.accordionIds[index];
|
|
65
|
+
item.setAttribute("id", typeof itemId !== "string" ? `accordion-${index + 1}` : itemId);
|
|
66
|
+
this.activeid = this.accordionIds[this.activeItemIndex];
|
|
67
|
+
item.addEventListener("keydown", this.handleItemKeyDown);
|
|
68
|
+
item.addEventListener("focus", this.handleItemFocus);
|
|
69
|
+
});
|
|
70
|
+
if (this.isSingleExpandMode()) {
|
|
71
|
+
const expandedItem = (_a = this.findExpandedItem()) !== null && _a !== void 0 ? _a : this.accordionItems[0];
|
|
72
|
+
expandedItem.setAttribute("aria-disabled", "true");
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
this.removeItemListeners = (oldValue) => {
|
|
76
|
+
oldValue.forEach((item, index) => {
|
|
77
|
+
item.removeEventListener("change", this.activeItemChange);
|
|
78
|
+
item.removeEventListener("keydown", this.handleItemKeyDown);
|
|
79
|
+
item.removeEventListener("focus", this.handleItemFocus);
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
this.activeItemChange = (event) => {
|
|
83
|
+
if (event.defaultPrevented || event.target !== event.currentTarget) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
const selectedItem = event.target;
|
|
88
|
+
this.activeid = selectedItem.getAttribute("id");
|
|
89
|
+
if (this.isSingleExpandMode()) {
|
|
90
|
+
this.resetItems();
|
|
91
|
+
selectedItem.expanded = true;
|
|
92
|
+
selectedItem.setAttribute("aria-disabled", "true");
|
|
93
|
+
this.accordionItems.forEach((item) => {
|
|
94
|
+
if (!item.hasAttribute("disabled") && item.id !== this.activeid) {
|
|
95
|
+
item.removeAttribute("aria-disabled");
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
this.activeItemIndex = Array.from(this.accordionItems).indexOf(selectedItem);
|
|
100
|
+
this.change();
|
|
101
|
+
};
|
|
102
|
+
this.handleItemKeyDown = (event) => {
|
|
103
|
+
// only handle the keydown if the event target is the accordion item
|
|
104
|
+
// prevents arrow keys from moving focus to accordion headers when focus is on accordion item panel content
|
|
105
|
+
if (event.target !== event.currentTarget) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this.accordionIds = this.getItemIds();
|
|
109
|
+
switch (event.key) {
|
|
110
|
+
case keyArrowUp:
|
|
111
|
+
event.preventDefault();
|
|
112
|
+
this.adjust(-1);
|
|
113
|
+
break;
|
|
114
|
+
case keyArrowDown:
|
|
115
|
+
event.preventDefault();
|
|
116
|
+
this.adjust(1);
|
|
117
|
+
break;
|
|
118
|
+
case keyHome:
|
|
119
|
+
this.activeItemIndex = 0;
|
|
120
|
+
this.focusItem();
|
|
121
|
+
break;
|
|
122
|
+
case keyEnd:
|
|
123
|
+
this.activeItemIndex = this.accordionItems.length - 1;
|
|
124
|
+
this.focusItem();
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
this.handleItemFocus = (event) => {
|
|
129
|
+
// update the active item index if the focus moves to an accordion item via a different method other than the up and down arrow key actions
|
|
130
|
+
// only do so if the focus is actually on the accordion item and not on any of its children
|
|
131
|
+
if (event.target === event.currentTarget) {
|
|
132
|
+
const focusedItem = event.target;
|
|
133
|
+
const focusedIndex = (this.activeItemIndex = Array.from(this.accordionItems).indexOf(focusedItem));
|
|
134
|
+
if (this.activeItemIndex !== focusedIndex && focusedIndex !== -1) {
|
|
135
|
+
this.activeItemIndex = focusedIndex;
|
|
136
|
+
this.activeid = this.accordionIds[this.activeItemIndex];
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* @internal
|
|
143
|
+
*/
|
|
144
|
+
accordionItemsChanged(oldValue, newValue) {
|
|
145
|
+
if (this.$fastController.isConnected) {
|
|
146
|
+
this.removeItemListeners(oldValue);
|
|
147
|
+
this.setItems();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
findExpandedItem() {
|
|
151
|
+
for (let item = 0; item < this.accordionItems.length; item++) {
|
|
152
|
+
if (this.accordionItems[item].getAttribute("expanded") === "true") {
|
|
153
|
+
return this.accordionItems[item];
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return null;
|
|
157
|
+
}
|
|
158
|
+
resetItems() {
|
|
159
|
+
this.accordionItems.forEach((item, index) => {
|
|
160
|
+
item.expanded = false;
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
getItemIds() {
|
|
164
|
+
return this.accordionItems.map((accordionItem) => {
|
|
165
|
+
return accordionItem.getAttribute("id");
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
isSingleExpandMode() {
|
|
169
|
+
return this.expandmode === AccordionExpandMode.single;
|
|
170
|
+
}
|
|
171
|
+
adjust(adjustment) {
|
|
172
|
+
this.activeItemIndex = wrapInBounds(0, this.accordionItems.length - 1, this.activeItemIndex + adjustment);
|
|
173
|
+
this.focusItem();
|
|
174
|
+
}
|
|
175
|
+
focusItem() {
|
|
176
|
+
const element = this.accordionItems[this.activeItemIndex];
|
|
177
|
+
if (element instanceof AccordionItem) {
|
|
178
|
+
element.expandbutton.focus();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
__decorate([
|
|
183
|
+
attr({ attribute: "expand-mode" })
|
|
184
|
+
], Accordion$1.prototype, "expandmode", void 0);
|
|
185
|
+
__decorate([
|
|
186
|
+
observable
|
|
187
|
+
], Accordion$1.prototype, "accordionItems", void 0);
|
|
188
|
+
|
|
189
|
+
var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 30 Jan 2023 11:28:31 GMT\n */\n.base {\n display: flex;\n box-sizing: border-box;\n flex-direction: column;\n}\n\n::slotted(:not(:only-of-type)) {\n border-bottom: 1px solid var(--vvd-color-neutral-200);\n}";
|
|
190
|
+
|
|
191
|
+
class Accordion extends Accordion$1 {
|
|
192
|
+
constructor() {
|
|
193
|
+
super(...arguments);
|
|
194
|
+
this.expandmode = AccordionExpandMode.single;
|
|
195
|
+
}
|
|
196
|
+
closeAll() {
|
|
197
|
+
if (this.expandmode === AccordionExpandMode.multi) {
|
|
198
|
+
this.accordionItems.forEach(item => {
|
|
199
|
+
item.expanded = false;
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
let _2 = t => t,
|
|
206
|
+
_t;
|
|
207
|
+
const getClasses = _ => classNames('base');
|
|
208
|
+
const AccordionTemplate = () => html(_t || (_t = _2`
|
|
209
|
+
<div class="${0}">
|
|
210
|
+
<slot ${0}></slot>
|
|
211
|
+
</div>
|
|
212
|
+
`), getClasses, slotted({
|
|
213
|
+
property: 'accordionItems',
|
|
214
|
+
filter: elements()
|
|
215
|
+
}));
|
|
216
|
+
|
|
217
|
+
const accordionDefinition = Accordion.compose({
|
|
218
|
+
baseName: 'accordion',
|
|
219
|
+
template: AccordionTemplate,
|
|
220
|
+
styles: css_248z
|
|
221
|
+
});
|
|
222
|
+
const accordionRegistries = [accordionDefinition(), ...accordionItemRegistries];
|
|
223
|
+
const registerAccordion = registerFactory(accordionRegistries);
|
|
224
|
+
|
|
225
|
+
export { accordionDefinition as a, accordionRegistries as b, registerAccordion as r };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { F as FoundationElement, _ as __decorate, o as observable, h as html, r as registerFactory } from './index.js';
|
|
2
|
+
import { s as slotted, e as elements } from './slotted.js';
|
|
3
|
+
import { B as BreadcrumbItem } from './breadcrumb-item.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A Breadcrumb Custom HTML Element.
|
|
7
|
+
* @slot - The default slot for the breadcrumb items
|
|
8
|
+
* @csspart list - The element wrapping the slotted items
|
|
9
|
+
*
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
class Breadcrumb$1 extends FoundationElement {
|
|
13
|
+
slottedBreadcrumbItemsChanged() {
|
|
14
|
+
if (this.$fastController.isConnected) {
|
|
15
|
+
if (this.slottedBreadcrumbItems === undefined ||
|
|
16
|
+
this.slottedBreadcrumbItems.length === 0) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const lastNode = this.slottedBreadcrumbItems[this.slottedBreadcrumbItems.length - 1];
|
|
20
|
+
this.slottedBreadcrumbItems.forEach((item) => {
|
|
21
|
+
const itemIsLastNode = item === lastNode;
|
|
22
|
+
this.setItemSeparator(item, itemIsLastNode);
|
|
23
|
+
this.setAriaCurrent(item, itemIsLastNode);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
setItemSeparator(item, isLastNode) {
|
|
28
|
+
if (item instanceof BreadcrumbItem) {
|
|
29
|
+
item.separator = !isLastNode;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Finds href on childnodes in the light DOM or shadow DOM.
|
|
34
|
+
* We look in the shadow DOM because we insert an anchor when breadcrumb-item has an href.
|
|
35
|
+
*/
|
|
36
|
+
findChildWithHref(node) {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
if (node.childElementCount > 0) {
|
|
39
|
+
return node.querySelector("a[href]");
|
|
40
|
+
}
|
|
41
|
+
else if ((_a = node.shadowRoot) === null || _a === void 0 ? void 0 : _a.childElementCount) {
|
|
42
|
+
return (_b = node.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector("a[href]");
|
|
43
|
+
}
|
|
44
|
+
else
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Sets ARIA Current for the current node
|
|
49
|
+
* If child node with an anchor tag and with href is found then set aria-current to correct value for the child node,
|
|
50
|
+
* otherwise apply aria-current to the host element, with an href
|
|
51
|
+
*/
|
|
52
|
+
setAriaCurrent(item, isLastNode) {
|
|
53
|
+
const childNodeWithHref = this.findChildWithHref(item);
|
|
54
|
+
if (childNodeWithHref === null &&
|
|
55
|
+
item.hasAttribute("href") &&
|
|
56
|
+
item instanceof BreadcrumbItem) {
|
|
57
|
+
isLastNode
|
|
58
|
+
? item.setAttribute("aria-current", "page")
|
|
59
|
+
: item.removeAttribute("aria-current");
|
|
60
|
+
}
|
|
61
|
+
else if (childNodeWithHref !== null) {
|
|
62
|
+
isLastNode
|
|
63
|
+
? childNodeWithHref.setAttribute("aria-current", "page")
|
|
64
|
+
: childNodeWithHref.removeAttribute("aria-current");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
__decorate([
|
|
69
|
+
observable
|
|
70
|
+
], Breadcrumb$1.prototype, "slottedBreadcrumbItems", void 0);
|
|
71
|
+
|
|
72
|
+
let _ = t => t,
|
|
73
|
+
_t;
|
|
74
|
+
const breadcrumbTemplate = () => html(_t || (_t = _`
|
|
75
|
+
<nav aria-label="breadcrumbs" class="base">
|
|
76
|
+
<div role="list" class="list">
|
|
77
|
+
<slot
|
|
78
|
+
${0}
|
|
79
|
+
></slot>
|
|
80
|
+
</div>
|
|
81
|
+
</nav>
|
|
82
|
+
`), slotted({
|
|
83
|
+
property: 'slottedBreadcrumbItems',
|
|
84
|
+
filter: elements()
|
|
85
|
+
}));
|
|
86
|
+
|
|
87
|
+
var css_248z = ".list {\n display: flex;\n}";
|
|
88
|
+
|
|
89
|
+
class Breadcrumb extends Breadcrumb$1 {}
|
|
90
|
+
|
|
91
|
+
const breadcrumbDefinition = Breadcrumb.compose({
|
|
92
|
+
baseName: 'breadcrumb',
|
|
93
|
+
template: breadcrumbTemplate,
|
|
94
|
+
styles: css_248z
|
|
95
|
+
});
|
|
96
|
+
const breadcrumbRegistries = [breadcrumbDefinition()];
|
|
97
|
+
const registerBreadcrumb = registerFactory(breadcrumbRegistries);
|
|
98
|
+
|
|
99
|
+
export { breadcrumbRegistries as a, breadcrumbDefinition as b, registerBreadcrumb as r };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
|
|
2
|
+
import { i as iconRegistries } from './definition3.js';
|
|
3
|
+
import { f as focusRegistries } from './definition4.js';
|
|
4
|
+
import { B as BreadcrumbItem$1 } from './breadcrumb-item.js';
|
|
5
|
+
import { t as textAnchorTemplate } from './text-anchor.template.js';
|
|
6
|
+
import { I as Icon } from './icon.js';
|
|
7
|
+
import { w as when } from './when.js';
|
|
8
|
+
import { c as classNames } from './class-names.js';
|
|
9
|
+
|
|
10
|
+
var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 30 Jan 2023 11:28:31 GMT\n */\n.base {\n display: flex;\n align-items: center;\n color: var(--vvd-color-canvas-text);\n font: var(--vvd-typography-base);\n}\n.base .separator {\n margin: 0 16px;\n color: var(--vvd-color-neutral-600);\n font-size: 12px;\n}\n\n.control {\n position: relative;\n font: inherit;\n}\n@supports selector(:focus-visible) {\n .control:focus {\n outline: none;\n }\n}\n.control:any-link {\n color: var(--vvd-color-cta-600);\n text-decoration: none;\n}\n.control:any-link:hover {\n text-decoration: underline;\n}\n\n.focus-indicator {\n --focus-inset: -4px -8px;\n --focus-stroke-gap-color: transparent;\n border-radius: 6px;\n}\n.control:not(:focus-visible) > .focus-indicator {\n display: none;\n}";
|
|
11
|
+
|
|
12
|
+
class BreadcrumbItem extends BreadcrumbItem$1 {
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
__decorate([attr, __metadata("design:type", String)], BreadcrumbItem.prototype, "text", void 0);
|
|
18
|
+
|
|
19
|
+
let _2 = t => t,
|
|
20
|
+
_t,
|
|
21
|
+
_t2,
|
|
22
|
+
_t3,
|
|
23
|
+
_t4;
|
|
24
|
+
const getClasses = _ => classNames('base');
|
|
25
|
+
const BreadcrumbItemTemplate = (context, definition) => {
|
|
26
|
+
const iconTag = context.tagFor(Icon);
|
|
27
|
+
return html(_t || (_t = _2`
|
|
28
|
+
<div role="listitem" class="${0}">
|
|
29
|
+
${0}
|
|
30
|
+
|
|
31
|
+
${0}
|
|
32
|
+
|
|
33
|
+
${0}
|
|
34
|
+
</div>`), getClasses, when(x => x.text && !x.href, html(_t2 || (_t2 = _2`${0}`), x => x.text)), when(x => x.text && x.href && x.href.length > 0, html(_t3 || (_t3 = _2`${0}`), textAnchorTemplate(context))), when(x => x.separator, html(_t4 || (_t4 = _2`<${0} class="separator" name="chevron-right-solid"></${0}>`), iconTag, iconTag)));
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const breadcrumbItemDefinition = BreadcrumbItem.compose({
|
|
38
|
+
baseName: 'breadcrumb-item',
|
|
39
|
+
template: BreadcrumbItemTemplate,
|
|
40
|
+
styles: css_248z,
|
|
41
|
+
shadowOptions: {
|
|
42
|
+
delegatesFocus: true
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
const breadcrumbItemRegistries = [breadcrumbItemDefinition(), ...iconRegistries, ...focusRegistries];
|
|
46
|
+
const registerBreadcrumbItem = registerFactory(breadcrumbItemRegistries);
|
|
47
|
+
|
|
48
|
+
export { breadcrumbItemRegistries as a, breadcrumbItemDefinition as b, registerBreadcrumbItem as r };
|