@brightspot/ui 1.5.0 → 1.7.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/dist/components/dropdown/Dropdown.d.ts +172 -0
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -0
- package/dist/components/dropdown/Dropdown.js +407 -0
- package/dist/components/dropdown/Dropdown.js.map +1 -0
- package/dist/components/dropdown/DropdownItem.d.ts +108 -0
- package/dist/components/dropdown/DropdownItem.d.ts.map +1 -0
- package/dist/components/dropdown/DropdownItem.js +210 -0
- package/dist/components/dropdown/DropdownItem.js.map +1 -0
- package/dist/components/dropdown/DropdownMenu.d.ts +117 -0
- package/dist/components/dropdown/DropdownMenu.d.ts.map +1 -0
- package/dist/components/dropdown/DropdownMenu.js +295 -0
- package/dist/components/dropdown/DropdownMenu.js.map +1 -0
- package/dist/components/pagination/Pagination.d.ts +109 -0
- package/dist/components/pagination/Pagination.d.ts.map +1 -0
- package/dist/components/pagination/Pagination.js +351 -0
- package/dist/components/pagination/Pagination.js.map +1 -0
- package/dist/custom-elements.json +1642 -182
- package/dist/storybook/assets/Avatar.stories-BAaSlDF7.js +213 -0
- package/dist/storybook/assets/AvatarGroup.stories-CgoDB4N4.js +225 -0
- package/dist/storybook/assets/{Badge.stories-Bbnc6fRy.js → Badge.stories-uexxdmo6.js} +3 -3
- package/dist/storybook/assets/{Button.stories-CRJ5n2y4.js → Button.stories-T9UJUPHI.js} +1 -1
- package/dist/storybook/assets/{CircularProgress.stories-D9vBj3JJ.js → CircularProgress.stories-DW-VJA5j.js} +6 -6
- package/dist/storybook/assets/{ClipboardMixin.stories-Dm-Jm4yb.js → ClipboardMixin.stories-DzU4vxu5.js} +1 -1
- package/dist/storybook/assets/{Color-6BZIO3FS-BcNIJY1U.js → Color-6BZIO3FS-DRk2xjoN.js} +1 -1
- package/dist/storybook/assets/{Colors.stories-B9_090wL.js → Colors.stories-_UPdvuhY.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin-ChiFBCuo.js → ComponentStatesMixin-BIu5SKeV.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin.stories-DHv9MHmE.js → ComponentStatesMixin.stories-C0FLaqLu.js} +1 -1
- package/dist/storybook/assets/{CopyToClipboard.stories-gtJlTP1l.js → CopyToClipboard.stories-D31zoUVI.js} +1 -1
- package/dist/storybook/assets/{Debounce.stories-BBNX7mJA.js → Debounce.stories-CgPPl5Ee.js} +1 -1
- package/dist/storybook/assets/{DocsRenderer-LL677BLK-D-E99pXl.js → DocsRenderer-LL677BLK-iwiwOzX9.js} +6 -6
- package/dist/storybook/assets/Dropdown.stories-CDcl6rmG.js +697 -0
- package/dist/storybook/assets/{Events.stories-DDmydlh_.js → Events.stories-DS6UC9dZ.js} +1 -1
- package/dist/storybook/assets/{Heading.stories-BLGfko-i.js → Heading.stories-CAQfEGE2.js} +1 -1
- package/dist/storybook/assets/{Icon.stories-BHnAGcFF.js → Icon.stories-C7msWlHs.js} +11 -11
- package/dist/storybook/assets/{LinearProgress.stories-Dx26a0P_.js → LinearProgress.stories-DBGJ5a2-.js} +7 -7
- package/dist/storybook/assets/Pagination.stories-C58bGOdf.js +272 -0
- package/dist/storybook/assets/{Popover.stories-CbqpY6YR.js → Popover.stories-C9zU0sEX.js} +5 -5
- package/dist/storybook/assets/{ReadyMixin-BHiHoIbr.js → ReadyMixin-qf8SAjMu.js} +1 -1
- package/dist/storybook/assets/{Rtc.stories-CAjDv_Ub.js → Rtc.stories-k9tKHNhD.js} +1 -1
- package/dist/storybook/assets/{ScrollShadow.stories-BSV4U-tq.js → ScrollShadow.stories-Bp42zyLH.js} +1 -1
- package/dist/storybook/assets/{Throttle.stories-kaxXQ8RZ.js → Throttle.stories-B5YU-Nms.js} +1 -1
- package/dist/storybook/assets/Tooltip.stories-COQcvOnL.js +143 -0
- package/dist/storybook/assets/{Widget.stories-DqATHnSq.js → Widget.stories-D3Sq5-_A.js} +13 -13
- package/dist/storybook/assets/{WithTooltip-65CFNBJE-BtbbFYSA.js → WithTooltip-65CFNBJE-Cox81aM_.js} +1 -1
- package/dist/storybook/assets/{formatter-EIJCOSYU-C87Csnpu.js → formatter-EIJCOSYU-3ErcoV9q.js} +1 -1
- package/dist/storybook/assets/if-defined-Bv2_qPJg.js +1 -0
- package/dist/storybook/assets/{iframe-CcloOV09.js → iframe-CM6gBkqA.js} +170 -170
- package/dist/storybook/assets/iframe-D3r2Ciu8.css +1 -0
- package/dist/storybook/assets/{index-DP7vnJf7.js → index-iwfnMgqg.js} +1 -1
- package/dist/storybook/assets/{onFind.stories-BxvoC-Z-.js → onFind.stories-CDtoTN6S.js} +1 -1
- package/dist/storybook/assets/{onRemove.stories-Dwoixzb0.js → onRemove.stories-CSTeFCLU.js} +1 -1
- package/dist/storybook/assets/{onVisible.stories-CinmRF9w.js → onVisible.stories-C-yiw9n4.js} +1 -1
- package/dist/storybook/assets/style-map-BJGdSb_D.js +1 -0
- package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-BHLkDkOn.js → syntaxhighlighter-ED5Y7EFY-BEudYlVi.js} +1 -1
- package/dist/storybook/iframe.html +2 -2
- package/dist/storybook/index.json +1 -1
- package/dist/storybook/project.json +1 -1
- package/dist/tailwind-plugin-button.js +10 -0
- package/dist/tailwind-plugin-button.js.map +1 -1
- package/dist/tailwind-plugin-button.ts +10 -0
- package/dist/tailwind-plugin-dropdown.d.ts +2 -0
- package/dist/tailwind-plugin-dropdown.d.ts.map +1 -0
- package/dist/tailwind-plugin-dropdown.js +223 -0
- package/dist/tailwind-plugin-dropdown.js.map +1 -0
- package/dist/tailwind-plugin-dropdown.ts +249 -0
- package/dist/tailwind-plugin-pagination.d.ts +2 -0
- package/dist/tailwind-plugin-pagination.d.ts.map +1 -0
- package/dist/tailwind-plugin-pagination.js +164 -0
- package/dist/tailwind-plugin-pagination.js.map +1 -0
- package/dist/tailwind-plugin-pagination.ts +179 -0
- package/dist/tailwind.config.d.ts +1 -4
- package/dist/tailwind.config.d.ts.map +1 -1
- package/dist/tailwind.config.js +1 -0
- package/dist/tailwind.config.js.map +1 -1
- package/dist/tailwind.config.ts +1 -0
- package/dist/util/EventEmitterMixin.d.ts +22 -0
- package/dist/util/EventEmitterMixin.d.ts.map +1 -1
- package/dist/util/EventEmitterMixin.js.map +1 -1
- package/dist/util/aria.d.ts.map +1 -1
- package/dist/util/aria.js +2 -1
- package/dist/util/aria.js.map +1 -1
- package/dist/util/i18n.d.ts +13 -0
- package/dist/util/i18n.d.ts.map +1 -0
- package/dist/util/i18n.js +21 -0
- package/dist/util/i18n.js.map +1 -0
- package/docs/components/Avatar.md +62 -0
- package/docs/components/AvatarGroup.md +52 -0
- package/docs/components/Badge.md +58 -0
- package/docs/components/CircularProgress.md +55 -0
- package/docs/components/CopyToClipboard.md +54 -0
- package/docs/components/Dropdown.md +100 -0
- package/docs/components/DropdownItem.md +64 -0
- package/docs/components/DropdownMenu.md +81 -0
- package/docs/components/Icon.md +61 -0
- package/docs/components/LinearProgress.md +40 -0
- package/docs/components/Pagination.md +95 -0
- package/docs/components/Popover.md +71 -0
- package/docs/components/README.md +24 -0
- package/docs/components/Widget.md +79 -0
- package/package.json +4 -3
- package/dist/storybook/assets/Avatar.stories-CPVNxsaA.js +0 -214
- package/dist/storybook/assets/AvatarGroup.stories-Bl65NGHl.js +0 -225
- package/dist/storybook/assets/Tooltip.stories-CsxXkztr.js +0 -143
- package/dist/storybook/assets/if-defined-COHr0XBn.js +0 -1
- package/dist/storybook/assets/iframe-BkDGeDre.css +0 -1
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html, nothing } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { EventEmitterMixin } from '../../util/EventEmitterMixin.js';
|
|
10
|
+
import { ReadyMixin } from '../../util/ReadyMixin.js';
|
|
11
|
+
/**
|
|
12
|
+
* A menu container component that provides keyboard navigation and ARIA menu semantics.
|
|
13
|
+
*
|
|
14
|
+
* Contains `btu-dropdown-item` children and manages roving tabindex, typeahead search,
|
|
15
|
+
* and keyboard navigation following the WAI-ARIA Menu Button Pattern.
|
|
16
|
+
*
|
|
17
|
+
* @element btu-dropdown-menu
|
|
18
|
+
*
|
|
19
|
+
* @fires {CustomEvent} btu-dropdown-menu-ready - Fired after first render
|
|
20
|
+
*
|
|
21
|
+
* @slot - Menu items (`btu-dropdown-item` elements)
|
|
22
|
+
*
|
|
23
|
+
* @cssprop --dropdown-empty-color - Empty state text color (default: gray-400)
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```html
|
|
27
|
+
* <btu-dropdown-menu name="Sort By" header checkbox>
|
|
28
|
+
* <btu-dropdown-item label="Name" selected></btu-dropdown-item>
|
|
29
|
+
* <btu-dropdown-item label="Date"></btu-dropdown-item>
|
|
30
|
+
* <btu-dropdown-item label="Size"></btu-dropdown-item>
|
|
31
|
+
* </btu-dropdown-menu>
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export default class DropdownMenu extends EventEmitterMixin(ReadyMixin(LitElement)) {
|
|
35
|
+
constructor() {
|
|
36
|
+
super(...arguments);
|
|
37
|
+
/**
|
|
38
|
+
* Accessible name for the menu, displayed in header when header is true.
|
|
39
|
+
* @attr
|
|
40
|
+
*/
|
|
41
|
+
this.name = '';
|
|
42
|
+
/**
|
|
43
|
+
* Show header bar with menu name.
|
|
44
|
+
* @attr
|
|
45
|
+
*/
|
|
46
|
+
this.header = false;
|
|
47
|
+
/**
|
|
48
|
+
* Enable checkbox mode for items (menuitemcheckbox role).
|
|
49
|
+
* @attr
|
|
50
|
+
*/
|
|
51
|
+
this.checkbox = false;
|
|
52
|
+
/**
|
|
53
|
+
* Show icons before each item.
|
|
54
|
+
* @attr
|
|
55
|
+
*/
|
|
56
|
+
this.icon = false;
|
|
57
|
+
/**
|
|
58
|
+
* Fallback Lucide icon symbol for items without their own.
|
|
59
|
+
* @attr icon-symbol
|
|
60
|
+
*/
|
|
61
|
+
this.iconSymbol = '';
|
|
62
|
+
/**
|
|
63
|
+
* Show favorite toggle on each item.
|
|
64
|
+
* @attr
|
|
65
|
+
*/
|
|
66
|
+
this.favorites = false;
|
|
67
|
+
/**
|
|
68
|
+
* Show keyboard shortcut text on each item.
|
|
69
|
+
* @attr
|
|
70
|
+
*/
|
|
71
|
+
this.shortcuts = false;
|
|
72
|
+
/**
|
|
73
|
+
* Message displayed when the menu has no focusable items.
|
|
74
|
+
* @attr empty-message
|
|
75
|
+
*/
|
|
76
|
+
this.emptyMessage = 'No items available';
|
|
77
|
+
/** @internal */
|
|
78
|
+
this._typeaheadBuffer = '';
|
|
79
|
+
/** @internal */
|
|
80
|
+
this._typeaheadTimeout = null;
|
|
81
|
+
/** @internal */
|
|
82
|
+
this._handleKeydown = (e) => {
|
|
83
|
+
const focusable = this._getFocusableItems();
|
|
84
|
+
if (focusable.length === 0)
|
|
85
|
+
return;
|
|
86
|
+
const currentIndex = this._getCurrentFocusIndex(focusable);
|
|
87
|
+
switch (e.key) {
|
|
88
|
+
case 'ArrowDown': {
|
|
89
|
+
e.preventDefault();
|
|
90
|
+
const next = this._findNextIndex(focusable, currentIndex, 1);
|
|
91
|
+
this.focusItem(focusable[next]);
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
case 'ArrowUp': {
|
|
95
|
+
e.preventDefault();
|
|
96
|
+
const prev = this._findNextIndex(focusable, currentIndex, -1);
|
|
97
|
+
this.focusItem(focusable[prev]);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
case 'Home': {
|
|
101
|
+
e.preventDefault();
|
|
102
|
+
this.focusItem(focusable[0]);
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
case 'End': {
|
|
106
|
+
e.preventDefault();
|
|
107
|
+
this.focusItem(focusable[focusable.length - 1]);
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
case 'Enter': {
|
|
111
|
+
e.preventDefault();
|
|
112
|
+
if (currentIndex >= 0) {
|
|
113
|
+
focusable[currentIndex].activate();
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
case ' ': {
|
|
118
|
+
e.preventDefault();
|
|
119
|
+
if (currentIndex >= 0) {
|
|
120
|
+
focusable[currentIndex].activate();
|
|
121
|
+
}
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
case 'Escape': {
|
|
125
|
+
// Bubble up to Dropdown to handle close
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
case 'Tab': {
|
|
129
|
+
// Bubble up to Dropdown to handle close + focus restore
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
default: {
|
|
133
|
+
// Typeahead: printable characters
|
|
134
|
+
if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
135
|
+
this._handleTypeahead(e.key, focusable);
|
|
136
|
+
}
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
createRenderRoot() {
|
|
143
|
+
this.renderOptions.renderBefore ??= this.firstChild;
|
|
144
|
+
return this;
|
|
145
|
+
}
|
|
146
|
+
connectedCallback() {
|
|
147
|
+
super.connectedCallback();
|
|
148
|
+
this.setAttribute('role', 'menu');
|
|
149
|
+
if (this.name) {
|
|
150
|
+
this.setAttribute('aria-label', this.name);
|
|
151
|
+
}
|
|
152
|
+
this.addEventListener('keydown', this._handleKeydown);
|
|
153
|
+
}
|
|
154
|
+
disconnectedCallback() {
|
|
155
|
+
super.disconnectedCallback();
|
|
156
|
+
this.removeEventListener('keydown', this._handleKeydown);
|
|
157
|
+
if (this._typeaheadTimeout) {
|
|
158
|
+
clearTimeout(this._typeaheadTimeout);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
firstUpdated() {
|
|
162
|
+
this._configureItems();
|
|
163
|
+
this.emit('btu-dropdown-menu-ready');
|
|
164
|
+
}
|
|
165
|
+
updated() {
|
|
166
|
+
this._configureItems();
|
|
167
|
+
if (this.name) {
|
|
168
|
+
this.setAttribute('aria-label', this.name);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
this.removeAttribute('aria-label');
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/** Configure all child items with menu-level settings */
|
|
175
|
+
_configureItems() {
|
|
176
|
+
const items = this._getAllItems();
|
|
177
|
+
items.forEach(item => {
|
|
178
|
+
item._configure({
|
|
179
|
+
checkbox: this.checkbox,
|
|
180
|
+
icon: this.icon,
|
|
181
|
+
iconSymbol: this.iconSymbol,
|
|
182
|
+
favorites: this.favorites,
|
|
183
|
+
shortcuts: this.shortcuts,
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/** Get all btu-dropdown-item children */
|
|
188
|
+
_getAllItems() {
|
|
189
|
+
return Array.from(this.querySelectorAll('btu-dropdown-item'));
|
|
190
|
+
}
|
|
191
|
+
/** Get only focusable items (default type, skip dividers/subheads) */
|
|
192
|
+
_getFocusableItems() {
|
|
193
|
+
return this._getAllItems().filter(item => item.focusable);
|
|
194
|
+
}
|
|
195
|
+
/** @internal Focus a specific item by updating tabindex */
|
|
196
|
+
focusItem(item) {
|
|
197
|
+
const focusable = this._getFocusableItems();
|
|
198
|
+
focusable.forEach(i => {
|
|
199
|
+
const el = i.querySelector('[role="menuitem"], [role="menuitemcheckbox"]');
|
|
200
|
+
if (el)
|
|
201
|
+
el.setAttribute('tabindex', '-1');
|
|
202
|
+
});
|
|
203
|
+
const target = item.querySelector('[role="menuitem"], [role="menuitemcheckbox"]');
|
|
204
|
+
if (target) {
|
|
205
|
+
target.setAttribute('tabindex', '0');
|
|
206
|
+
target.focus();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/** @internal Focus the first non-disabled focusable item (or first checked in checkbox mode) */
|
|
210
|
+
focusFirst() {
|
|
211
|
+
const items = this._getFocusableItems();
|
|
212
|
+
if (this.checkbox) {
|
|
213
|
+
const checked = items.find(i => i.selected && !i.disabled);
|
|
214
|
+
if (checked) {
|
|
215
|
+
this.focusItem(checked);
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
const first = items.find(i => !i.disabled) || items[0];
|
|
220
|
+
if (first)
|
|
221
|
+
this.focusItem(first);
|
|
222
|
+
}
|
|
223
|
+
/** @internal Focus the last non-disabled focusable item */
|
|
224
|
+
focusLast() {
|
|
225
|
+
const items = this._getFocusableItems();
|
|
226
|
+
const last = [...items].reverse().find(i => !i.disabled) || items[items.length - 1];
|
|
227
|
+
if (last)
|
|
228
|
+
this.focusItem(last);
|
|
229
|
+
}
|
|
230
|
+
/** Find the current focused item index */
|
|
231
|
+
_getCurrentFocusIndex(focusable) {
|
|
232
|
+
const active = document.activeElement;
|
|
233
|
+
return focusable.findIndex(item => item.contains(active));
|
|
234
|
+
}
|
|
235
|
+
/** Find next index wrapping around, moving in direction (+1 or -1) */
|
|
236
|
+
_findNextIndex(focusable, current, direction) {
|
|
237
|
+
const len = focusable.length;
|
|
238
|
+
if (current < 0)
|
|
239
|
+
return direction === 1 ? 0 : len - 1;
|
|
240
|
+
const next = (current + direction + len) % len;
|
|
241
|
+
return next;
|
|
242
|
+
}
|
|
243
|
+
/** Typeahead character matching with 500ms accumulation */
|
|
244
|
+
_handleTypeahead(char, focusable) {
|
|
245
|
+
this._typeaheadBuffer += char.toLowerCase();
|
|
246
|
+
if (this._typeaheadTimeout) {
|
|
247
|
+
clearTimeout(this._typeaheadTimeout);
|
|
248
|
+
}
|
|
249
|
+
this._typeaheadTimeout = setTimeout(() => {
|
|
250
|
+
this._typeaheadBuffer = '';
|
|
251
|
+
}, 500);
|
|
252
|
+
const match = focusable.find(item => item.label.toLowerCase().startsWith(this._typeaheadBuffer));
|
|
253
|
+
if (match) {
|
|
254
|
+
this.focusItem(match);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/** Check whether the menu has zero focusable items */
|
|
258
|
+
get _isEmpty() {
|
|
259
|
+
return this._getFocusableItems().length === 0;
|
|
260
|
+
}
|
|
261
|
+
render() {
|
|
262
|
+
return html `${this.header && this.name ? html `<div class="btu-dropdown-header">${this.name}</div>` : nothing}${this
|
|
263
|
+
._isEmpty
|
|
264
|
+
? html `<div class="btu-dropdown-empty" role="status">${this.emptyMessage}</div>`
|
|
265
|
+
: nothing}`;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
__decorate([
|
|
269
|
+
property({ type: String })
|
|
270
|
+
], DropdownMenu.prototype, "name", void 0);
|
|
271
|
+
__decorate([
|
|
272
|
+
property({ type: Boolean })
|
|
273
|
+
], DropdownMenu.prototype, "header", void 0);
|
|
274
|
+
__decorate([
|
|
275
|
+
property({ type: Boolean })
|
|
276
|
+
], DropdownMenu.prototype, "checkbox", void 0);
|
|
277
|
+
__decorate([
|
|
278
|
+
property({ type: Boolean })
|
|
279
|
+
], DropdownMenu.prototype, "icon", void 0);
|
|
280
|
+
__decorate([
|
|
281
|
+
property({ type: String, attribute: 'icon-symbol' })
|
|
282
|
+
], DropdownMenu.prototype, "iconSymbol", void 0);
|
|
283
|
+
__decorate([
|
|
284
|
+
property({ type: Boolean })
|
|
285
|
+
], DropdownMenu.prototype, "favorites", void 0);
|
|
286
|
+
__decorate([
|
|
287
|
+
property({ type: Boolean })
|
|
288
|
+
], DropdownMenu.prototype, "shortcuts", void 0);
|
|
289
|
+
__decorate([
|
|
290
|
+
property({ type: String, attribute: 'empty-message' })
|
|
291
|
+
], DropdownMenu.prototype, "emptyMessage", void 0);
|
|
292
|
+
if (!customElements.get('btu-dropdown-menu')) {
|
|
293
|
+
customElements.define('btu-dropdown-menu', DropdownMenu);
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=DropdownMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownMenu.js","sourceRoot":"","sources":["../../../src/components/dropdown/DropdownMenu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import '../circular-progress/CircularProgress.js';
|
|
3
|
+
import '../icon/Icon.js';
|
|
4
|
+
declare const Pagination_base: (new (...args: any[]) => import("../../util/EventEmitterMixin.js").EventEmitterMixinInterface) & (new (...args: any[]) => import("../../util/ReadyMixin.js").ReadyMixinInterface) & typeof LitElement;
|
|
5
|
+
/**
|
|
6
|
+
* A pagination component for navigating through paged content.
|
|
7
|
+
*
|
|
8
|
+
* Supports multiple layout variants (Search, Widget, Widget Small, Calendar)
|
|
9
|
+
* through configurable props and pseudo-slots.
|
|
10
|
+
*
|
|
11
|
+
* @element btu-pagination
|
|
12
|
+
*
|
|
13
|
+
* @slot page-size - Custom page-size selector (replaces built-in select)
|
|
14
|
+
* @slot jumper - Custom jumper content (e.g., page dropdown, "Today" button)
|
|
15
|
+
*
|
|
16
|
+
* @fires {CustomEvent} btu-pagination-ready - Fired after first render
|
|
17
|
+
* @fires {CustomEvent<{page: number, pageSize: number}>} btu-pagination-change - Fired on page navigation
|
|
18
|
+
* @fires {CustomEvent<{page: number, pageSize: number}>} btu-pagination-page-size-change - Fired on page size change
|
|
19
|
+
*
|
|
20
|
+
* @cssprop --pagination-color-background - Background color for select, buttons, and jumper
|
|
21
|
+
* @cssprop --pagination-color-foreground - Text/icon color
|
|
22
|
+
*/
|
|
23
|
+
export default class Pagination extends Pagination_base {
|
|
24
|
+
/**
|
|
25
|
+
* Current page number (1-based)
|
|
26
|
+
* @attr
|
|
27
|
+
*/
|
|
28
|
+
page: number;
|
|
29
|
+
/**
|
|
30
|
+
* Number of items per page
|
|
31
|
+
* @attr page-size
|
|
32
|
+
*/
|
|
33
|
+
pageSize: number;
|
|
34
|
+
/**
|
|
35
|
+
* Disables all pagination controls
|
|
36
|
+
* @attr
|
|
37
|
+
*/
|
|
38
|
+
disabled: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Shows loading spinner and dims controls
|
|
41
|
+
* @attr
|
|
42
|
+
*/
|
|
43
|
+
loading: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Hide controls when there is only one page
|
|
46
|
+
* @attr hide-on-single-page
|
|
47
|
+
*/
|
|
48
|
+
hideOnSinglePage: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Show the page size dropdown
|
|
51
|
+
* @attr page-size-changer
|
|
52
|
+
*/
|
|
53
|
+
pageSizeChanger: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Comma-separated page size options
|
|
56
|
+
* @attr page-size-options
|
|
57
|
+
*/
|
|
58
|
+
pageSizeOptions: string;
|
|
59
|
+
/**
|
|
60
|
+
* Total number of items across all pages
|
|
61
|
+
* @attr total-items
|
|
62
|
+
*/
|
|
63
|
+
totalItems: number;
|
|
64
|
+
/**
|
|
65
|
+
* Show first and last page buttons
|
|
66
|
+
* @attr boundary-buttons
|
|
67
|
+
*/
|
|
68
|
+
boundaryButtons: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Hide the item count display (e.g., "1-10 of 200")
|
|
71
|
+
* @attr hide-total-count
|
|
72
|
+
*/
|
|
73
|
+
hideTotalCount: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Accessible label for the pagination nav landmark
|
|
76
|
+
* @attr
|
|
77
|
+
*/
|
|
78
|
+
label: string | undefined;
|
|
79
|
+
/** @internal */
|
|
80
|
+
private _userInitiated;
|
|
81
|
+
/** @internal */
|
|
82
|
+
private initialClasses;
|
|
83
|
+
/** @internal */
|
|
84
|
+
private _hideControls;
|
|
85
|
+
private get _parsedPageSizeOptions();
|
|
86
|
+
private get _totalPages();
|
|
87
|
+
private get _startItem();
|
|
88
|
+
private get _endItem();
|
|
89
|
+
connectedCallback(): void;
|
|
90
|
+
createRenderRoot(): this;
|
|
91
|
+
willUpdate(): void;
|
|
92
|
+
firstUpdated(): void;
|
|
93
|
+
updated(changed: Map<string, unknown>): void;
|
|
94
|
+
private _setupSlots;
|
|
95
|
+
private _goToFirstPage;
|
|
96
|
+
private _goToPreviousPage;
|
|
97
|
+
private _goToNextPage;
|
|
98
|
+
private _goToLastPage;
|
|
99
|
+
private _manageBoundaryFocus;
|
|
100
|
+
private _onPageSizeChange;
|
|
101
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
102
|
+
}
|
|
103
|
+
declare global {
|
|
104
|
+
interface HTMLElementTagNameMap {
|
|
105
|
+
'btu-pagination': Pagination;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export {};
|
|
109
|
+
//# sourceMappingURL=Pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAA;AAK/C,OAAO,0CAA0C,CAAA;AACjD,OAAO,iBAAiB,CAAA;;AAExB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,eAAyC;IAC/E;;;OAGG;IAEH,IAAI,SAAI;IAER;;;OAGG;IAEH,QAAQ,SAAI;IAEZ;;;OAGG;IAEH,QAAQ,UAAQ;IAEhB;;;OAGG;IAEH,OAAO,UAAQ;IAEf;;;OAGG;IAEH,gBAAgB,UAAO;IAEvB;;;OAGG;IAEH,eAAe,UAAO;IAEtB;;;OAGG;IAEH,eAAe,SAAe;IAE9B;;;OAGG;IAEH,UAAU,SAAI;IAEd;;;OAGG;IAEH,eAAe,UAAO;IAEtB;;;OAGG;IAEH,cAAc,UAAQ;IAEtB;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAEzB,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAAQ;IAE9B,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAAe;IAErC,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,KAAK,sBAAsB,GAMjC;IAED,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,KAAK,UAAU,GAGrB;IAED,OAAO,KAAK,QAAQ,GAGnB;IAED,iBAAiB,IAAI,IAAI;IAOzB,gBAAgB;IAIhB,UAAU,IAAI,IAAI;IAmClB,YAAY,IAAI,IAAI;IAIpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAe5C,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,iBAAiB;IAezB,MAAM;CAkFP;AAMD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,UAAU,CAAA;KAC7B;CACF"}
|