@vonage/vivid 3.39.0 → 3.41.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/accordion/index.js +2 -2
- package/accordion-item/index.js +2 -2
- package/alert/index.js +7 -5
- package/audio-player/index.js +33 -0
- package/avatar/index.js +2 -2
- package/badge/index.js +2 -2
- package/banner/index.js +9 -5
- package/breadcrumb/index.js +1 -1
- package/breadcrumb-item/index.js +3 -3
- package/button/index.js +5 -4
- package/calendar/index.js +1 -1
- package/calendar-event/index.js +1 -1
- package/card/index.js +4 -3
- package/checkbox/index.js +3 -3
- package/combobox/index.js +9 -7
- package/custom-elements.json +809 -5
- package/data-grid/index.js +3 -2
- package/date-picker/index.js +11 -9
- package/date-range-picker/index.js +11 -9
- package/dialog/index.js +10 -6
- package/divider/index.js +1 -1
- package/elevation/index.js +1 -1
- package/empty-state/index.js +2 -2
- package/fab/index.js +3 -3
- package/file-picker/index.js +6 -5
- package/focus/index.js +1 -1
- package/header/index.js +2 -2
- package/icon/index.js +1 -1
- package/index.js +60 -55
- package/layout/index.js +1 -1
- package/lib/alert/alert.d.ts +3 -1
- package/lib/alert/locale.d.ts +3 -0
- package/lib/audio-player/audio-player.d.ts +17 -0
- package/lib/audio-player/audio-player.template.d.ts +4 -0
- package/lib/audio-player/definition.d.ts +4 -0
- package/lib/audio-player/locale.d.ts +5 -0
- package/lib/banner/banner.d.ts +3 -1
- package/lib/banner/locale.d.ts +3 -0
- package/lib/card/card.d.ts +3 -0
- package/lib/card/card.template.d.ts +1 -1
- package/lib/card/definition.d.ts +1 -0
- package/lib/checkbox/checkbox.d.ts +2 -0
- package/lib/components.d.ts +2 -0
- package/lib/dialog/dialog.d.ts +4 -0
- package/lib/dialog/locale.d.ts +3 -0
- package/lib/enums.d.ts +2 -1
- package/lib/menu/menu.d.ts +1 -0
- package/lib/number-field/locale.d.ts +4 -0
- package/lib/number-field/number-field.d.ts +4 -2
- package/lib/progress/progress.d.ts +1 -0
- package/lib/progress-ring/progress-ring.d.ts +1 -0
- package/lib/radio/radio.d.ts +1 -0
- package/lib/selectable-box/definition.d.ts +3 -0
- package/lib/selectable-box/selectable-box.d.ts +12 -0
- package/lib/selectable-box/selectable-box.template.d.ts +4 -0
- package/lib/slider/definition.d.ts +1 -0
- package/lib/slider/slider.d.ts +5 -0
- package/lib/split-button/locale.d.ts +3 -0
- package/lib/split-button/split-button.d.ts +3 -1
- package/lib/text-area/text-area.d.ts +3 -0
- package/lib/text-field/text-field.d.ts +5 -2
- package/listbox/index.js +5 -4
- package/locales/en-GB.js +21 -0
- package/locales/en-US.js +21 -0
- package/locales/ja-JP.js +21 -0
- package/locales/zh-CN.js +21 -0
- package/menu/index.js +9 -8
- package/menu-item/index.js +3 -3
- package/nav/index.js +1 -1
- package/nav-disclosure/index.js +3 -3
- package/nav-item/index.js +3 -3
- package/note/index.js +2 -2
- package/number-field/index.js +8 -6
- package/option/index.js +3 -3
- package/package.json +1 -1
- package/pagination/index.js +6 -5
- package/popup/index.js +7 -6
- package/progress/index.js +1 -1
- package/progress-ring/index.js +1 -1
- package/radio/index.js +2 -2
- package/radio-group/index.js +2 -2
- package/select/index.js +10 -8
- package/selectable-box/index.js +23 -0
- package/shared/Reflector.js +65 -0
- package/shared/date-picker/calendar/segment.d.ts +21 -0
- package/shared/date-picker/date-picker-base.d.ts +1 -0
- package/shared/definition.js +3 -3
- package/shared/definition10.js +89 -227
- package/shared/definition11.js +151 -29
- package/shared/definition12.js +37 -766
- package/shared/definition13.js +747 -106
- package/shared/definition14.js +122 -192
- package/shared/definition15.js +156 -664
- package/shared/definition16.js +576 -1123
- package/shared/definition17.js +1278 -143
- package/shared/definition18.js +64 -298
- package/shared/definition19.js +358 -211
- package/shared/definition2.js +2 -2
- package/shared/definition20.js +259 -67
- package/shared/definition21.js +66 -58
- package/shared/definition22.js +43 -84
- package/shared/definition23.js +76 -2352
- package/shared/definition24.js +2362 -45
- package/shared/definition25.js +63 -27
- package/shared/definition26.js +24 -51
- package/shared/definition27.js +36 -813
- package/shared/definition28.js +837 -49
- package/shared/definition29.js +52 -89
- package/shared/definition3.js +1 -1
- package/shared/definition30.js +88 -24
- package/shared/definition31.js +25 -12
- package/shared/definition32.js +12 -52
- package/shared/definition33.js +28 -487
- package/shared/definition34.js +442 -197
- package/shared/definition35.js +260 -185
- package/shared/definition36.js +188 -69
- package/shared/definition37.js +72 -52
- package/shared/definition38.js +65 -421
- package/shared/definition39.js +435 -35
- package/shared/definition4.js +44 -16
- package/shared/definition40.js +32 -680
- package/shared/definition41.js +661 -77
- package/shared/definition42.js +103 -555
- package/shared/definition43.js +76 -103
- package/shared/definition44.js +522 -87
- package/shared/definition45.js +133 -22
- package/shared/definition46.js +131 -58
- package/shared/definition47.js +16 -501
- package/shared/definition48.js +69 -23
- package/shared/definition49.js +477 -108
- package/shared/definition5.js +160 -44
- package/shared/definition50.js +25 -271
- package/shared/definition51.js +103 -122
- package/shared/definition52.js +277 -122
- package/shared/definition53.js +274 -103
- package/shared/definition54.js +126 -71
- package/shared/definition55.js +128 -294
- package/shared/definition56.js +91 -13
- package/shared/definition57.js +298 -39
- package/shared/definition58.js +11 -175
- package/shared/definition59.js +47 -0
- package/shared/definition6.js +43 -33
- package/shared/definition60.js +181 -0
- package/shared/definition7.js +39 -105
- package/shared/definition8.js +122 -38
- package/shared/definition9.js +56 -89
- package/shared/enums.js +72 -0
- package/shared/icon.js +2 -2
- package/shared/index2.js +28 -1
- package/shared/key-codes.js +1 -1
- package/shared/key-codes2.js +9 -0
- package/shared/listbox.js +3 -8
- package/shared/localization/Locale.d.ts +12 -0
- package/shared/patterns/form-elements/form-elements.d.ts +6 -6
- package/shared/presentationDate.js +196 -143
- package/shared/radio.js +7 -0
- package/shared/text-field.js +1 -1
- package/shared/utils/Reflector.d.ts +8 -0
- package/shared/utils/randomId.d.ts +1 -0
- package/side-drawer/index.js +1 -1
- package/slider/index.js +3 -3
- package/split-button/index.js +6 -3
- package/style.css +889 -722
- 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/switch/index.js +3 -3
- package/tab/index.js +3 -3
- package/tab-panel/index.js +1 -1
- package/tabs/index.js +5 -5
- package/tag/index.js +3 -3
- package/tag-group/index.js +1 -1
- package/text-area/index.js +4 -3
- package/text-field/index.js +4 -3
- package/toggletip/index.js +8 -7
- package/tooltip/index.js +8 -7
- package/tree-item/index.js +3 -3
- package/tree-view/index.js +1 -1
- package/vivid.api.json +392 -0
package/shared/definition35.js
CHANGED
|
@@ -1,13 +1,209 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { F as FoundationElement, O as Observable, _ as __decorate, o as observable, a as attr, h as html, r as registerFactory } from './index.js';
|
|
2
|
+
import { a as iconRegistries } from './definition26.js';
|
|
3
|
+
import { f as focusRegistries } from './definition58.js';
|
|
4
|
+
import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
|
|
5
|
+
import { A as ARIAGlobalStatesAndProperties } from './aria-global.js';
|
|
6
|
+
import { S as StartEnd } from './start-end.js';
|
|
7
|
+
import { a as applyMixins } from './apply-mixins.js';
|
|
8
|
+
import { i as isHTMLElement } from './dom.js';
|
|
9
|
+
import { f as focusTemplateFactory } from './focus2.js';
|
|
10
|
+
import './index2.js';
|
|
8
11
|
import { w as when } from './when.js';
|
|
12
|
+
import { c as classNames } from './class-names.js';
|
|
9
13
|
|
|
10
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Determines if the element is a {@link (ListboxOption:class)}
|
|
16
|
+
*
|
|
17
|
+
* @param element - the element to test.
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
function isListboxOption(el) {
|
|
21
|
+
return (isHTMLElement(el) &&
|
|
22
|
+
(el.getAttribute("role") === "option" ||
|
|
23
|
+
el instanceof HTMLOptionElement));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* An Option Custom HTML Element.
|
|
27
|
+
* Implements {@link https://www.w3.org/TR/wai-aria-1.1/#option | ARIA option }.
|
|
28
|
+
*
|
|
29
|
+
* @slot start - Content which can be provided before the listbox option content
|
|
30
|
+
* @slot end - Content which can be provided after the listbox option content
|
|
31
|
+
* @slot - The default slot for listbox option content
|
|
32
|
+
* @csspart content - Wraps the listbox option content
|
|
33
|
+
*
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
let ListboxOption$1 = class ListboxOption extends FoundationElement {
|
|
37
|
+
constructor(text, value, defaultSelected, selected) {
|
|
38
|
+
super();
|
|
39
|
+
/**
|
|
40
|
+
* The defaultSelected state of the option.
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
this.defaultSelected = false;
|
|
44
|
+
/**
|
|
45
|
+
* Tracks whether the "selected" property has been changed.
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
this.dirtySelected = false;
|
|
49
|
+
/**
|
|
50
|
+
* The checked state of the control.
|
|
51
|
+
*
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
this.selected = this.defaultSelected;
|
|
55
|
+
/**
|
|
56
|
+
* Track whether the value has been changed from the initial value
|
|
57
|
+
*/
|
|
58
|
+
this.dirtyValue = false;
|
|
59
|
+
if (text) {
|
|
60
|
+
this.textContent = text;
|
|
61
|
+
}
|
|
62
|
+
if (value) {
|
|
63
|
+
this.initialValue = value;
|
|
64
|
+
}
|
|
65
|
+
if (defaultSelected) {
|
|
66
|
+
this.defaultSelected = defaultSelected;
|
|
67
|
+
}
|
|
68
|
+
if (selected) {
|
|
69
|
+
this.selected = selected;
|
|
70
|
+
}
|
|
71
|
+
this.proxy = new Option(`${this.textContent}`, this.initialValue, this.defaultSelected, this.selected);
|
|
72
|
+
this.proxy.disabled = this.disabled;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Updates the ariaChecked property when the checked property changes.
|
|
76
|
+
*
|
|
77
|
+
* @param prev - the previous checked value
|
|
78
|
+
* @param next - the current checked value
|
|
79
|
+
*
|
|
80
|
+
* @public
|
|
81
|
+
*/
|
|
82
|
+
checkedChanged(prev, next) {
|
|
83
|
+
if (typeof next === "boolean") {
|
|
84
|
+
this.ariaChecked = next ? "true" : "false";
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.ariaChecked = null;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Updates the proxy's text content when the default slot changes.
|
|
91
|
+
* @param prev - the previous content value
|
|
92
|
+
* @param next - the current content value
|
|
93
|
+
*
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
contentChanged(prev, next) {
|
|
97
|
+
if (this.proxy instanceof HTMLOptionElement) {
|
|
98
|
+
this.proxy.textContent = this.textContent;
|
|
99
|
+
}
|
|
100
|
+
this.$emit("contentchange", null, { bubbles: true });
|
|
101
|
+
}
|
|
102
|
+
defaultSelectedChanged() {
|
|
103
|
+
if (!this.dirtySelected) {
|
|
104
|
+
this.selected = this.defaultSelected;
|
|
105
|
+
if (this.proxy instanceof HTMLOptionElement) {
|
|
106
|
+
this.proxy.selected = this.defaultSelected;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
disabledChanged(prev, next) {
|
|
111
|
+
this.ariaDisabled = this.disabled ? "true" : "false";
|
|
112
|
+
if (this.proxy instanceof HTMLOptionElement) {
|
|
113
|
+
this.proxy.disabled = this.disabled;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
selectedAttributeChanged() {
|
|
117
|
+
this.defaultSelected = this.selectedAttribute;
|
|
118
|
+
if (this.proxy instanceof HTMLOptionElement) {
|
|
119
|
+
this.proxy.defaultSelected = this.defaultSelected;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
selectedChanged() {
|
|
123
|
+
this.ariaSelected = this.selected ? "true" : "false";
|
|
124
|
+
if (!this.dirtySelected) {
|
|
125
|
+
this.dirtySelected = true;
|
|
126
|
+
}
|
|
127
|
+
if (this.proxy instanceof HTMLOptionElement) {
|
|
128
|
+
this.proxy.selected = this.selected;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
initialValueChanged(previous, next) {
|
|
132
|
+
// If the value is clean and the component is connected to the DOM
|
|
133
|
+
// then set value equal to the attribute value.
|
|
134
|
+
if (!this.dirtyValue) {
|
|
135
|
+
this.value = this.initialValue;
|
|
136
|
+
this.dirtyValue = false;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
get label() {
|
|
140
|
+
var _a;
|
|
141
|
+
return (_a = this.value) !== null && _a !== void 0 ? _a : this.text;
|
|
142
|
+
}
|
|
143
|
+
get text() {
|
|
144
|
+
var _a, _b;
|
|
145
|
+
return (_b = (_a = this.textContent) === null || _a === void 0 ? void 0 : _a.replace(/\s+/g, " ").trim()) !== null && _b !== void 0 ? _b : "";
|
|
146
|
+
}
|
|
147
|
+
set value(next) {
|
|
148
|
+
const newValue = `${next !== null && next !== void 0 ? next : ""}`;
|
|
149
|
+
this._value = newValue;
|
|
150
|
+
this.dirtyValue = true;
|
|
151
|
+
if (this.proxy instanceof HTMLOptionElement) {
|
|
152
|
+
this.proxy.value = newValue;
|
|
153
|
+
}
|
|
154
|
+
Observable.notify(this, "value");
|
|
155
|
+
}
|
|
156
|
+
get value() {
|
|
157
|
+
var _a;
|
|
158
|
+
Observable.track(this, "value");
|
|
159
|
+
return (_a = this._value) !== null && _a !== void 0 ? _a : this.text;
|
|
160
|
+
}
|
|
161
|
+
get form() {
|
|
162
|
+
return this.proxy ? this.proxy.form : null;
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
__decorate([
|
|
166
|
+
observable
|
|
167
|
+
], ListboxOption$1.prototype, "checked", void 0);
|
|
168
|
+
__decorate([
|
|
169
|
+
observable
|
|
170
|
+
], ListboxOption$1.prototype, "content", void 0);
|
|
171
|
+
__decorate([
|
|
172
|
+
observable
|
|
173
|
+
], ListboxOption$1.prototype, "defaultSelected", void 0);
|
|
174
|
+
__decorate([
|
|
175
|
+
attr({ mode: "boolean" })
|
|
176
|
+
], ListboxOption$1.prototype, "disabled", void 0);
|
|
177
|
+
__decorate([
|
|
178
|
+
attr({ attribute: "selected", mode: "boolean" })
|
|
179
|
+
], ListboxOption$1.prototype, "selectedAttribute", void 0);
|
|
180
|
+
__decorate([
|
|
181
|
+
observable
|
|
182
|
+
], ListboxOption$1.prototype, "selected", void 0);
|
|
183
|
+
__decorate([
|
|
184
|
+
attr({ attribute: "value", mode: "fromView" })
|
|
185
|
+
], ListboxOption$1.prototype, "initialValue", void 0);
|
|
186
|
+
/**
|
|
187
|
+
* States and properties relating to the ARIA `option` role.
|
|
188
|
+
*
|
|
189
|
+
* @public
|
|
190
|
+
*/
|
|
191
|
+
class DelegatesARIAListboxOption {
|
|
192
|
+
}
|
|
193
|
+
__decorate([
|
|
194
|
+
observable
|
|
195
|
+
], DelegatesARIAListboxOption.prototype, "ariaChecked", void 0);
|
|
196
|
+
__decorate([
|
|
197
|
+
observable
|
|
198
|
+
], DelegatesARIAListboxOption.prototype, "ariaPosInSet", void 0);
|
|
199
|
+
__decorate([
|
|
200
|
+
observable
|
|
201
|
+
], DelegatesARIAListboxOption.prototype, "ariaSelected", void 0);
|
|
202
|
+
__decorate([
|
|
203
|
+
observable
|
|
204
|
+
], DelegatesARIAListboxOption.prototype, "ariaSetSize", void 0);
|
|
205
|
+
applyMixins(DelegatesARIAListboxOption, ARIAGlobalStatesAndProperties);
|
|
206
|
+
applyMixins(ListboxOption$1, StartEnd, DelegatesARIAListboxOption);
|
|
11
207
|
|
|
12
208
|
var __defProp = Object.defineProperty;
|
|
13
209
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -20,195 +216,74 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
20
216
|
__defProp(target, key, result);
|
|
21
217
|
return result;
|
|
22
218
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
28
|
-
class Pagination extends FoundationElement {
|
|
29
|
-
constructor() {
|
|
30
|
-
super();
|
|
31
|
-
this.navIcons = false;
|
|
32
|
-
this.total = 0;
|
|
33
|
-
this.selectedIndex = 0;
|
|
34
|
-
this.addEventListener("tabpressed", (e) => {
|
|
35
|
-
const { value: currentLabel, shiftKey } = e.detail;
|
|
36
|
-
const index = this.paginationButtons.findIndex((button) => Number(button.label) === currentLabel);
|
|
37
|
-
const focusDirection = shiftKey ? -1 : 1;
|
|
38
|
-
const newIndex = index + focusDirection;
|
|
39
|
-
if (newIndex < 0) {
|
|
40
|
-
return this.prevButton.focus();
|
|
41
|
-
}
|
|
42
|
-
if (newIndex > this.paginationButtons.length - 1) {
|
|
43
|
-
return this.nextButton.focus();
|
|
44
|
-
}
|
|
45
|
-
this.paginationButtons && this.paginationButtons[index + focusDirection].focus();
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
get pagesList() {
|
|
49
|
-
return new Array(this.total < MAX_DIGITS_AND_PLACEHOLDERS ? this.total : MAX_DIGITS_AND_PLACEHOLDERS).fill(0).map((_, i, arr) => {
|
|
50
|
-
if (i === 0)
|
|
51
|
-
return 1;
|
|
52
|
-
if (i === arr.length - 1)
|
|
53
|
-
return this.total;
|
|
54
|
-
if (this.selectedIndex !== void 0 && this.total > MAX_DIGITS_AND_PLACEHOLDERS) {
|
|
55
|
-
if (this.selectedIndex < 4) {
|
|
56
|
-
if (i === MAX_DIGITS_AND_PLACEHOLDERS - 2)
|
|
57
|
-
return "...";
|
|
58
|
-
}
|
|
59
|
-
if (this.selectedIndex >= 4 && this.selectedIndex <= this.total - 5) {
|
|
60
|
-
if (i > 1 && i < MAX_DIGITS_AND_PLACEHOLDERS - 2)
|
|
61
|
-
return this.selectedIndex + (i - 2);
|
|
62
|
-
if (i === 1 || i === MAX_DIGITS_AND_PLACEHOLDERS - 2)
|
|
63
|
-
return "...";
|
|
64
|
-
}
|
|
65
|
-
if (this.selectedIndex > this.total - 5) {
|
|
66
|
-
if (i > 1)
|
|
67
|
-
return this.total - (6 - i);
|
|
68
|
-
if (i === 1)
|
|
69
|
-
return "...";
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return i + 1;
|
|
73
|
-
});
|
|
219
|
+
class ListboxOption extends ListboxOption$1 {
|
|
220
|
+
// #region overrides base class accessor
|
|
221
|
+
set text(value) {
|
|
222
|
+
this._text = value;
|
|
74
223
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
this.total = 0;
|
|
78
|
-
}
|
|
79
|
-
this.selectedIndex = 0;
|
|
224
|
+
get text() {
|
|
225
|
+
return this._text ?? "";
|
|
80
226
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return;
|
|
84
|
-
this.$emit("pagination-change", { selectedIndex: newValue, total: this.total, oldIndex: oldValue });
|
|
227
|
+
get label() {
|
|
228
|
+
return this._label ?? this.text;
|
|
85
229
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
button.shadowRoot.querySelector("button").setAttribute("part", "button");
|
|
89
|
-
});
|
|
230
|
+
set label(value) {
|
|
231
|
+
this._label = value;
|
|
90
232
|
}
|
|
233
|
+
// #endregion overrides
|
|
91
234
|
}
|
|
92
235
|
__decorateClass([
|
|
93
|
-
attr
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
], Pagination.prototype, "shape", 2);
|
|
98
|
-
__decorateClass([
|
|
99
|
-
observable
|
|
100
|
-
], Pagination.prototype, "paginationButtons", 2);
|
|
101
|
-
__decorateClass([
|
|
102
|
-
observable
|
|
103
|
-
], Pagination.prototype, "prevButton", 2);
|
|
104
|
-
__decorateClass([
|
|
105
|
-
observable
|
|
106
|
-
], Pagination.prototype, "nextButton", 2);
|
|
107
|
-
__decorateClass([
|
|
108
|
-
attr({ attribute: "nav-icons", mode: "boolean" })
|
|
109
|
-
], Pagination.prototype, "navIcons", 2);
|
|
236
|
+
attr({
|
|
237
|
+
attribute: "text"
|
|
238
|
+
})
|
|
239
|
+
], ListboxOption.prototype, "_text", 2);
|
|
110
240
|
__decorateClass([
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
__decorateClass([
|
|
117
|
-
attr({ mode: "reflect", converter: totalConverter, attribute: "selected-index" })
|
|
118
|
-
], Pagination.prototype, "selectedIndex", 2);
|
|
241
|
+
attr({
|
|
242
|
+
attribute: "label"
|
|
243
|
+
})
|
|
244
|
+
], ListboxOption.prototype, "_label", 2);
|
|
245
|
+
applyMixins(ListboxOption, AffixIconWithTrailing);
|
|
119
246
|
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const getClasses = (_) => classNames("control");
|
|
136
|
-
function getButtonAppearance(value, { parent }) {
|
|
137
|
-
return parent.selectedIndex === Number(value) - 1 ? "filled" : "ghost";
|
|
138
|
-
}
|
|
139
|
-
const paginationButtonRenderer = (buttonTag) => html`
|
|
140
|
-
${when(
|
|
141
|
-
(value) => value !== "...",
|
|
142
|
-
html`
|
|
143
|
-
<${buttonTag} class="vwc-pagination-button"
|
|
144
|
-
label="${(value) => value}"
|
|
145
|
-
appearance="${getButtonAppearance}"
|
|
146
|
-
size="${(_, { parent: x }) => getPaginationSize(x)}"
|
|
147
|
-
shape="${(_, { parent: x }) => getPaginationShape(x)}"
|
|
148
|
-
style="inline-size: ${(value) => getPaginationButtonWidth(value)};"
|
|
149
|
-
tabindex="0"
|
|
150
|
-
aria-current="${(value, { parent }) => parent.selectedIndex === Number(value) - 1}"
|
|
151
|
-
@click="${handleSelection}"
|
|
152
|
-
@keydown="${handleKeyDown}">
|
|
153
|
-
</${buttonTag}>
|
|
154
|
-
`
|
|
155
|
-
)}
|
|
156
|
-
${when(
|
|
157
|
-
(value) => value === "...",
|
|
158
|
-
html`
|
|
159
|
-
<div
|
|
160
|
-
class="dots size-${(_, { parent: x }) => getPaginationSize(x)}">
|
|
161
|
-
...
|
|
162
|
-
</div>`
|
|
163
|
-
)}`;
|
|
164
|
-
const getPaginationSize = (x) => {
|
|
165
|
-
if (!x.size || !ALLOWED_SIZES.includes(x.size)) {
|
|
166
|
-
return Size.SuperCondensed;
|
|
167
|
-
}
|
|
168
|
-
return x.size;
|
|
169
|
-
};
|
|
170
|
-
const getPaginationShape = (x) => {
|
|
171
|
-
if (!x.shape || !ALLOWED_SHAPES.includes(x.shape)) {
|
|
172
|
-
return Shape.Rounded;
|
|
173
|
-
}
|
|
174
|
-
return x.shape;
|
|
175
|
-
};
|
|
176
|
-
const getPaginationButtonWidth = (value) => {
|
|
177
|
-
return `calc(var(--base-size) + ${String(value).length - 1}ch)`;
|
|
178
|
-
};
|
|
179
|
-
const PaginationTemplate = (context) => {
|
|
180
|
-
const buttonTag = context.tagFor(Button);
|
|
181
|
-
const paginationButtonTemplate = paginationButtonRenderer(buttonTag);
|
|
247
|
+
const getClasses = ({
|
|
248
|
+
icon,
|
|
249
|
+
disabled,
|
|
250
|
+
selected,
|
|
251
|
+
checked
|
|
252
|
+
}) => classNames(
|
|
253
|
+
"base",
|
|
254
|
+
["disabled", disabled],
|
|
255
|
+
["selected", Boolean(selected)],
|
|
256
|
+
["active", Boolean(checked)],
|
|
257
|
+
["icon", Boolean(icon)]
|
|
258
|
+
);
|
|
259
|
+
const ListboxOptionTemplate = (context) => {
|
|
260
|
+
const affixIconTemplate = affixIconTemplateFactory(context);
|
|
261
|
+
const focusTemplate = focusTemplateFactory(context);
|
|
182
262
|
return html`
|
|
183
|
-
<
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
${
|
|
263
|
+
<template
|
|
264
|
+
aria-checked="${(x) => x.ariaChecked}"
|
|
265
|
+
aria-disabled="${(x) => x.ariaDisabled}"
|
|
266
|
+
aria-posinset="${(x) => x.ariaPosInSet}"
|
|
267
|
+
aria-selected="${(x) => x.ariaSelected}"
|
|
268
|
+
aria-setsize="${(x) => x.ariaSetSize}"
|
|
269
|
+
role="option">
|
|
270
|
+
<div class="${getClasses}">
|
|
271
|
+
${() => focusTemplate}
|
|
272
|
+
${(x) => affixIconTemplate(x.icon, IconWrapper.Slot)}
|
|
273
|
+
${when((x) => x.text, html`<div class="text">${(x) => x.text}</div>`)}
|
|
194
274
|
</div>
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
icon="${(x) => x.navIcons ? "chevron-right-line" : null}"
|
|
198
|
-
size="${getPaginationSize}"
|
|
199
|
-
shape="${getPaginationShape}"
|
|
200
|
-
?disabled="${(x) => x.total === 0 || x.selectedIndex === x.total - 1}"
|
|
201
|
-
@click="${(x) => x.selectedIndex !== void 0 && x.selectedIndex++}"
|
|
202
|
-
></${buttonTag}>
|
|
203
|
-
</div>`;
|
|
275
|
+
</template>
|
|
276
|
+
`;
|
|
204
277
|
};
|
|
205
278
|
|
|
206
|
-
const
|
|
207
|
-
|
|
208
|
-
|
|
279
|
+
const styles = "/**\n * Do not edit directly\n * Generated on Wed, 22 Nov 2023 16:09:43 GMT\n */\n:host([disabled]) {\n cursor: not-allowed;\n}\n\n.base {\n position: relative; /* this is needed for the focus */\n display: flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n border-radius: 6px;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_option-appearance-color-text, var(--_appearance-color-text));\n font: var(--vvd-typography-base);\n gap: 12px;\n hyphens: auto;\n inline-size: 100%;\n min-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n padding-inline: 16px;\n vertical-align: middle;\n word-break: break-word;\n}\n.base {\n /* @cssprop [--vvd-option-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-option-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-option-accent-primary-text=var(--vvd-color-canvas)] */\n --_connotation-color-primary-text: var(--vvd-option-accent-primary-text, var(--vvd-color-canvas));\n /* @cssprop [--vvd-option-accent-primary-increment=var(--vvd-color-neutral-800)] */\n --_connotation-color-primary-increment: var(--vvd-option-accent-primary-increment, var(--vvd-color-neutral-800));\n /* @cssprop [--vvd-option-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-option-accent-faint, var(--vvd-color-neutral-50));\n /* @cssprop [--vvd-option-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-option-accent-soft, var(--vvd-color-neutral-100));\n /* @cssprop [--vvd-option-accent-pale=var(--vvd-color-neutral-300)] */\n --_connotation-color-pale: var(--vvd-option-accent-pale, var(--vvd-color-neutral-300));\n /* @cssprop [--vvd-option-accent-dim=var(--vvd-color-neutral-200)] */\n --_connotation-color-dim: var(--vvd-option-accent-dim, var(--vvd-color-neutral-200));\n}\n.base {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transparent;\n}\n.base:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-300);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: transparent;\n}\n.base:where(.selected, [aria-current]):where(:not(:disabled, .disabled, :hover, .hover)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-dim);\n --_appearance-color-outline: transparent;\n}\n.base:where(.selected, [aria-current]):where(:hover, .hover) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-pale);\n --_appearance-color-outline: transparent;\n}\n@supports (user-select: none) {\n .base {\n user-select: none;\n }\n}\n.base:not(.disabled) {\n cursor: pointer;\n}\n.base.disabled {\n pointer-events: none;\n}\n.base .text {\n font: var(--vvd-typography-base);\n}\n\nslot[name=icon] {\n font-size: 20px;\n line-height: 1;\n}\n.base:not(.disabled, .selected) slot[name=icon] {\n color: var(--vvd-color-neutral-600);\n}\n\n.focus-indicator {\n --focus-stroke-color: var(--vvd-color-neutral-500);\n --focus-stroke-gap-color: transparent;\n}\n:host(:not([aria-checked=true])) .focus-indicator {\n display: none;\n}";
|
|
280
|
+
|
|
281
|
+
const listboxOptionDefinition = ListboxOption.compose({
|
|
282
|
+
baseName: "option",
|
|
283
|
+
template: ListboxOptionTemplate,
|
|
209
284
|
styles
|
|
210
285
|
});
|
|
211
|
-
const
|
|
212
|
-
const
|
|
286
|
+
const listboxOptionRegistries = [listboxOptionDefinition(), ...iconRegistries, ...focusRegistries];
|
|
287
|
+
const registerOption = registerFactory(listboxOptionRegistries);
|
|
213
288
|
|
|
214
|
-
export {
|
|
289
|
+
export { ListboxOption as L, listboxOptionRegistries as a, isListboxOption as i, listboxOptionDefinition as l, registerOption as r };
|