@brightspot/ui 1.9.0 → 1.11.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/action-bar/ActionBar.d.ts +163 -0
- package/dist/components/action-bar/ActionBar.d.ts.map +1 -0
- package/dist/components/action-bar/ActionBar.js +479 -0
- package/dist/components/action-bar/ActionBar.js.map +1 -0
- package/dist/components/action-bar/ActionItem.d.ts +103 -0
- package/dist/components/action-bar/ActionItem.d.ts.map +1 -0
- package/dist/components/action-bar/ActionItem.js +237 -0
- package/dist/components/action-bar/ActionItem.js.map +1 -0
- package/dist/components/copy-to-clipboard/CopyToClipboard.d.ts.map +1 -1
- package/dist/components/copy-to-clipboard/CopyToClipboard.js +4 -0
- package/dist/components/copy-to-clipboard/CopyToClipboard.js.map +1 -1
- package/dist/components/dropdown/Dropdown.d.ts +3 -1
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
- package/dist/components/dropdown/Dropdown.js +22 -6
- package/dist/components/dropdown/Dropdown.js.map +1 -1
- package/dist/components/dropdown/DropdownItem.d.ts +14 -1
- package/dist/components/dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/components/dropdown/DropdownItem.js +20 -1
- package/dist/components/dropdown/DropdownItem.js.map +1 -1
- package/dist/components/dropdown/DropdownMenu.d.ts +3 -5
- package/dist/components/dropdown/DropdownMenu.d.ts.map +1 -1
- package/dist/components/dropdown/DropdownMenu.js +17 -32
- package/dist/components/dropdown/DropdownMenu.js.map +1 -1
- package/dist/components/pagination/Pagination.d.ts +33 -4
- package/dist/components/pagination/Pagination.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.js +80 -16
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/switch/Switch.d.ts +92 -0
- package/dist/components/switch/Switch.d.ts.map +1 -0
- package/dist/components/switch/Switch.js +189 -0
- package/dist/components/switch/Switch.js.map +1 -0
- package/dist/components/tabs/Tab.d.ts +108 -0
- package/dist/components/tabs/Tab.d.ts.map +1 -0
- package/dist/components/tabs/Tab.js +152 -0
- package/dist/components/tabs/Tab.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +126 -0
- package/dist/components/tabs/Tabs.d.ts.map +1 -0
- package/dist/components/tabs/Tabs.js +390 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/custom-elements.json +2736 -1390
- package/dist/effects/celebrate.d.ts +18 -0
- package/dist/effects/celebrate.d.ts.map +1 -0
- package/dist/effects/celebrate.js +81 -0
- package/dist/effects/celebrate.js.map +1 -0
- package/dist/effects/ripple.d.ts +31 -0
- package/dist/effects/ripple.d.ts.map +1 -0
- package/dist/effects/ripple.js +131 -0
- package/dist/effects/ripple.js.map +1 -0
- package/dist/effects/sparkle-worklet.d.ts +7 -0
- package/dist/effects/sparkle-worklet.d.ts.map +1 -0
- package/dist/effects/sparkle-worklet.js +211 -0
- package/dist/effects/sparkle-worklet.js.map +1 -0
- package/dist/effects/sparkle.d.ts +6 -0
- package/dist/effects/sparkle.d.ts.map +1 -0
- package/dist/effects/sparkle.js +91 -0
- package/dist/effects/sparkle.js.map +1 -0
- package/dist/storybook/BSPLogoMark.svg +3 -0
- package/dist/storybook/WelcomeBG.svg +292 -0
- package/dist/storybook/assets/ActionBar.stories--nAeDC-G.js +408 -0
- package/dist/storybook/assets/ActionItem.stories-BHrGjk-P.js +203 -0
- package/dist/storybook/assets/{Avatar.stories-Du1qM73U.js → Avatar.stories-Da-mRj6_.js} +1 -1
- package/dist/storybook/assets/{AvatarGroup.stories-DxwZQE-q.js → AvatarGroup.stories-BQlaC_yl.js} +1 -1
- package/dist/storybook/assets/{Badge.stories-CfvkMIx2.js → Badge.stories-DnVnOrnF.js} +1 -1
- package/dist/storybook/assets/Button-CFLAI1H9.js +10 -0
- package/dist/storybook/assets/Button.stories-DxaBOjwv.js +54 -0
- package/dist/storybook/assets/Celebrate.stories-CuMm15Nr.js +184 -0
- package/dist/storybook/assets/{CircularProgress.stories-rPzKwQYD.js → CircularProgress.stories-DRN8Mtvj.js} +1 -1
- package/dist/storybook/assets/{ClipboardMixin.stories-BlUeYDSi.js → ClipboardMixin.stories-DR7Ou2Av.js} +1 -1
- package/dist/storybook/assets/Color-6BZIO3FS-Die62Y0Z.js +1 -0
- package/dist/storybook/assets/{Colors.stories-BspfjZ5q.js → Colors.stories-bIq_ssbI.js} +1 -1
- package/dist/storybook/assets/CombinedEffects.stories-CtKzOUZn.js +355 -0
- package/dist/storybook/assets/{ComponentStatesMixin-eTV7XXqB.js → ComponentStatesMixin-DMLCk9fE.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin.stories-BbLSY3df.js → ComponentStatesMixin.stories-D8UI9o-d.js} +1 -1
- package/dist/storybook/assets/{CopyToClipboard.stories-B2ailiFF.js → CopyToClipboard.stories-ti6CpJNp.js} +1 -1
- package/dist/storybook/assets/{Debounce.stories-DJmp4eNo.js → Debounce.stories-DzZUSvbk.js} +1 -1
- package/dist/storybook/assets/DocsRenderer-LL677BLK-CIRGv5IX.js +10 -0
- package/dist/storybook/assets/{Dropdown.stories-Dd6vKiDd.js → Dropdown.stories-Lt4cY0Re.js} +41 -14
- package/dist/storybook/assets/{Events.stories-Byj-VOM9.js → Events.stories-B1ddcgpT.js} +1 -1
- package/dist/storybook/assets/{Heading.stories-Dqw-wzpx.js → Heading.stories-DI4w61cf.js} +1 -1
- package/dist/storybook/assets/HueRipple.stories-DjhoxxEw.js +310 -0
- package/dist/storybook/assets/{Icon.stories-Bp1nvWER.js → Icon.stories-CpziAhae.js} +1 -1
- package/dist/storybook/assets/{IconButton.stories-o9g9mGdh.js → IconButton.stories-KjN28hfc.js} +1 -1
- package/dist/storybook/assets/{LinearProgress.stories-DnXQVpzX.js → LinearProgress.stories-DcIpdz6R.js} +1 -1
- package/dist/storybook/assets/Pagination.stories-BBkLEwoP.js +252 -0
- package/dist/storybook/assets/{Popover.stories-BvavsRfq.js → Popover.stories-DLv48c2h.js} +3 -11
- package/dist/storybook/assets/{ReadyMixin-6On1MFFr.js → ReadyMixin-Cw2Dfbu2.js} +1 -1
- package/dist/storybook/assets/RovingTabindexMixin.stories-BWaFx9mu.js +192 -0
- package/dist/storybook/assets/{Rtc.stories-Bb5Y-908.js → Rtc.stories-Ve7Bwo_l.js} +1 -1
- package/dist/storybook/assets/ScrollShadow.stories-C6XmrRLm.js +17 -0
- package/dist/storybook/assets/Switch.stories-Cf8WM1LG.js +312 -0
- package/dist/storybook/assets/Tab.stories-CEtdEtOx.js +218 -0
- package/dist/storybook/assets/Tabs.stories-CIAO1bPO.js +211 -0
- package/dist/storybook/assets/{Throttle.stories-DmP-yKke.js → Throttle.stories-BqxVIb-r.js} +1 -1
- package/dist/storybook/assets/{Tooltip.stories-Dl6xHBaM.js → Tooltip.stories-B6fw6875.js} +3 -7
- package/dist/storybook/assets/Welcome.stories-CfJtSM19.js +215 -0
- package/dist/storybook/assets/{Widget.stories-BjXfgNjZ.js → Widget.stories-CiOho7lO.js} +1 -1
- package/dist/storybook/assets/WithTooltip-65CFNBJE-PGcopp73.js +9 -0
- package/dist/storybook/assets/blocks-dP2DwISI.js +707 -0
- package/dist/storybook/assets/celebrate-KwPoF1K3.js +21 -0
- package/dist/storybook/assets/formatter-EIJCOSYU-CZSAC3tg.js +1 -0
- package/dist/storybook/assets/if-defined-B1RdczOE.js +1 -0
- package/dist/storybook/assets/iframe-DloIUNZz.js +1104 -0
- package/dist/storybook/assets/{iframe-CNxIA3cQ.css → iframe-bJgLXZKK.css} +1 -1
- package/dist/storybook/assets/index-DKF0ypu5.js +1 -0
- package/dist/storybook/assets/onFind-C0l4Gew0.js +1 -0
- package/dist/storybook/assets/{onFind.stories-B2GYLrjV.js → onFind.stories-DOTt9puO.js} +2 -2
- package/dist/storybook/assets/{onRemove.stories-CoLJFkWa.js → onRemove.stories-CQ9ZC5dm.js} +1 -1
- package/dist/storybook/assets/{onVisible.stories-DOeZx7wi.js → onVisible.stories-Cbj5_Vz0.js} +2 -2
- package/dist/storybook/assets/position-CFNQy3J6.js +1 -0
- package/dist/storybook/assets/ripple-DQbyyRUw.js +251 -0
- package/dist/storybook/assets/style-map-DLXysq3r.js +1 -0
- package/dist/storybook/assets/syntaxhighlighter-ED5Y7EFY-Bjjbl9ca.js +6 -0
- package/dist/storybook/brightspot-logo.svg +19 -0
- package/dist/storybook/iframe.html +23 -3
- package/dist/storybook/index.html +42 -1
- package/dist/storybook/index.json +1 -1
- package/dist/storybook/project.json +1 -1
- package/dist/storybook/sb-addons/storybook-3/manager-bundle.js +3 -0
- package/dist/tailwind-plugin-action-bar.d.ts +2 -0
- package/dist/tailwind-plugin-action-bar.d.ts.map +1 -0
- package/dist/tailwind-plugin-action-bar.js +120 -0
- package/dist/tailwind-plugin-action-bar.js.map +1 -0
- package/dist/tailwind-plugin-action-bar.ts +134 -0
- package/dist/tailwind-plugin-badge.js +4 -5
- package/dist/tailwind-plugin-badge.js.map +1 -1
- package/dist/tailwind-plugin-badge.ts +4 -5
- package/dist/tailwind-plugin-button.js +1 -0
- package/dist/tailwind-plugin-button.js.map +1 -1
- package/dist/tailwind-plugin-button.ts +1 -0
- package/dist/tailwind-plugin-pagination.js +13 -23
- package/dist/tailwind-plugin-pagination.js.map +1 -1
- package/dist/tailwind-plugin-pagination.ts +15 -25
- package/dist/tailwind-plugin-switch.d.ts +2 -0
- package/dist/tailwind-plugin-switch.d.ts.map +1 -0
- package/dist/tailwind-plugin-switch.js +223 -0
- package/dist/tailwind-plugin-switch.js.map +1 -0
- package/dist/tailwind-plugin-switch.ts +252 -0
- package/dist/tailwind-plugin-tabs.d.ts +2 -0
- package/dist/tailwind-plugin-tabs.d.ts.map +1 -0
- package/dist/tailwind-plugin-tabs.js +151 -0
- package/dist/tailwind-plugin-tabs.js.map +1 -0
- package/dist/tailwind-plugin-tabs.ts +162 -0
- package/dist/util/EventEmitterMixin.d.ts +21 -0
- package/dist/util/EventEmitterMixin.d.ts.map +1 -1
- package/dist/util/EventEmitterMixin.js.map +1 -1
- package/dist/util/RovingTabindexMixin.d.ts +38 -0
- package/dist/util/RovingTabindexMixin.d.ts.map +1 -0
- package/dist/util/RovingTabindexMixin.js +83 -0
- package/dist/util/RovingTabindexMixin.js.map +1 -0
- package/dist/util/position.d.ts +9 -0
- package/dist/util/position.d.ts.map +1 -0
- package/dist/util/position.js +11 -0
- package/dist/util/position.js.map +1 -0
- package/docs/components/ActionBar.md +71 -0
- package/docs/components/ActionItem.md +76 -0
- package/docs/components/Dropdown.md +7 -7
- package/docs/components/DropdownItem.md +9 -5
- package/docs/components/DropdownMenu.md +12 -12
- package/docs/components/Pagination.md +37 -34
- package/docs/components/README.md +5 -0
- package/docs/components/Switch.md +79 -0
- package/docs/components/Tab.md +73 -0
- package/docs/components/Tabs.md +77 -0
- package/package.json +2 -1
- package/dist/storybook/assets/Button.stories-hDMDDh81.js +0 -63
- package/dist/storybook/assets/Color-6BZIO3FS-C_nQSB2u.js +0 -1
- package/dist/storybook/assets/DocsRenderer-LL677BLK-56Pige1J.js +0 -758
- package/dist/storybook/assets/Pagination.stories-DQD8uvDc.js +0 -272
- package/dist/storybook/assets/ScrollShadow.stories-ZovRXpte.js +0 -17
- package/dist/storybook/assets/WithTooltip-65CFNBJE-CGB5q-AN.js +0 -9
- package/dist/storybook/assets/_commonjsHelpers-CqkleIqs.js +0 -1
- package/dist/storybook/assets/formatter-EIJCOSYU-BhNtSFM9.js +0 -1
- package/dist/storybook/assets/if-defined-BFyUeSVF.js +0 -1
- package/dist/storybook/assets/iframe-BeKreX-l.js +0 -1061
- package/dist/storybook/assets/index-Uz2kGy8J.js +0 -1
- package/dist/storybook/assets/onFind-DqriYjEB.js +0 -1
- package/dist/storybook/assets/style-map-CmHqpCu1.js +0 -1
- package/dist/storybook/assets/syntaxhighlighter-ED5Y7EFY-BqFfcc7x.js +0 -6
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
type Constructor<T = object> = new (...args: any[]) => T;
|
|
3
|
+
export declare class RovingTabindexInterface {
|
|
4
|
+
_rovingIndex: number;
|
|
5
|
+
_getRovingTargets(): HTMLElement[];
|
|
6
|
+
_rovingFocus(index: number, shouldFocus?: boolean): void;
|
|
7
|
+
_rovingNext(): void;
|
|
8
|
+
_rovingPrev(): void;
|
|
9
|
+
_rovingFirst(): void;
|
|
10
|
+
_rovingLast(): void;
|
|
11
|
+
_rovingCurrentIndex(): number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @mixin
|
|
15
|
+
* Mixin that provides roving tabindex navigation primitives for toolbar
|
|
16
|
+
* and menu components following WAI-ARIA keyboard patterns.
|
|
17
|
+
*
|
|
18
|
+
* Subclasses override `_getRovingTargets()` to return the focusable HTMLElements
|
|
19
|
+
* in DOM order. The mixin manages tabindex across those targets (one `0`, rest `-1`)
|
|
20
|
+
* and provides wrapping next/prev/first/last navigation.
|
|
21
|
+
*
|
|
22
|
+
* Does NOT install a keydown handler — each component defines its own
|
|
23
|
+
* (horizontal vs vertical, RTL, extra keys like Enter/Escape).
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* import { RovingTabindexMixin } from './RovingTabindexMixin'
|
|
28
|
+
*
|
|
29
|
+
* class MyToolbar extends RovingTabindexMixin(LitElement) {
|
|
30
|
+
* _getRovingTargets(): HTMLElement[] {
|
|
31
|
+
* return Array.from(this.querySelectorAll('button'))
|
|
32
|
+
* }
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare const RovingTabindexMixin: <T extends Constructor<LitElement>>(superClass: T) => Constructor<RovingTabindexInterface> & T;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=RovingTabindexMixin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RovingTabindexMixin.d.ts","sourceRoot":"","sources":["../../src/util/RovingTabindexMixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAEhC,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAExD,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,IAAI,WAAW,EAAE;IAClC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI;IACxD,WAAW,IAAI,IAAI;IACnB,WAAW,IAAI,IAAI;IACnB,YAAY,IAAI,IAAI;IACpB,WAAW,IAAI,IAAI;IACnB,mBAAmB,IAAI,MAAM;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,KAuDpD,WAAW,CAAC,uBAAuB,CAAC,GAAG,CACtE,CAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
/**
|
|
3
|
+
* @mixin
|
|
4
|
+
* Mixin that provides roving tabindex navigation primitives for toolbar
|
|
5
|
+
* and menu components following WAI-ARIA keyboard patterns.
|
|
6
|
+
*
|
|
7
|
+
* Subclasses override `_getRovingTargets()` to return the focusable HTMLElements
|
|
8
|
+
* in DOM order. The mixin manages tabindex across those targets (one `0`, rest `-1`)
|
|
9
|
+
* and provides wrapping next/prev/first/last navigation.
|
|
10
|
+
*
|
|
11
|
+
* Does NOT install a keydown handler — each component defines its own
|
|
12
|
+
* (horizontal vs vertical, RTL, extra keys like Enter/Escape).
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { RovingTabindexMixin } from './RovingTabindexMixin'
|
|
17
|
+
*
|
|
18
|
+
* class MyToolbar extends RovingTabindexMixin(LitElement) {
|
|
19
|
+
* _getRovingTargets(): HTMLElement[] {
|
|
20
|
+
* return Array.from(this.querySelectorAll('button'))
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export const RovingTabindexMixin = (superClass) => {
|
|
26
|
+
class RovingTabindexClass extends superClass {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments);
|
|
29
|
+
/** Index of the last focused target */
|
|
30
|
+
this._rovingIndex = 0;
|
|
31
|
+
}
|
|
32
|
+
/** Override: return focusable HTMLElements in navigation order */
|
|
33
|
+
_getRovingTargets() {
|
|
34
|
+
return [];
|
|
35
|
+
}
|
|
36
|
+
/** Set tabindex 0 on target at index, -1 on all others. Optionally focus. */
|
|
37
|
+
_rovingFocus(index, shouldFocus = true) {
|
|
38
|
+
const targets = this._getRovingTargets();
|
|
39
|
+
if (targets.length === 0)
|
|
40
|
+
return;
|
|
41
|
+
const clamped = Math.max(0, Math.min(index, targets.length - 1));
|
|
42
|
+
targets.forEach((t, i) => t.setAttribute('tabindex', i === clamped ? '0' : '-1'));
|
|
43
|
+
if (shouldFocus)
|
|
44
|
+
targets[clamped]?.focus();
|
|
45
|
+
this._rovingIndex = clamped;
|
|
46
|
+
}
|
|
47
|
+
/** Move to next target (wraps to first) */
|
|
48
|
+
_rovingNext() {
|
|
49
|
+
const targets = this._getRovingTargets();
|
|
50
|
+
if (targets.length === 0)
|
|
51
|
+
return;
|
|
52
|
+
const current = this._rovingCurrentIndex();
|
|
53
|
+
const next = current < targets.length - 1 ? current + 1 : 0;
|
|
54
|
+
this._rovingFocus(next);
|
|
55
|
+
}
|
|
56
|
+
/** Move to previous target (wraps to last) */
|
|
57
|
+
_rovingPrev() {
|
|
58
|
+
const targets = this._getRovingTargets();
|
|
59
|
+
if (targets.length === 0)
|
|
60
|
+
return;
|
|
61
|
+
const current = this._rovingCurrentIndex();
|
|
62
|
+
const prev = current > 0 ? current - 1 : targets.length - 1;
|
|
63
|
+
this._rovingFocus(prev);
|
|
64
|
+
}
|
|
65
|
+
/** Focus first target */
|
|
66
|
+
_rovingFirst() {
|
|
67
|
+
this._rovingFocus(0);
|
|
68
|
+
}
|
|
69
|
+
/** Focus last target */
|
|
70
|
+
_rovingLast() {
|
|
71
|
+
const targets = this._getRovingTargets();
|
|
72
|
+
if (targets.length > 0)
|
|
73
|
+
this._rovingFocus(targets.length - 1);
|
|
74
|
+
}
|
|
75
|
+
/** Find index of currently focused target */
|
|
76
|
+
_rovingCurrentIndex() {
|
|
77
|
+
const active = document.activeElement;
|
|
78
|
+
return this._getRovingTargets().findIndex(t => t === active || t.contains(active));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return RovingTabindexClass;
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=RovingTabindexMixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RovingTabindexMixin.js","sourceRoot":"","sources":["../../src/util/RovingTabindexMixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAehC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAoC,UAAa,EAAE,EAAE;IACtF,MAAM,mBAAoB,SAAQ,UAAU;QAA5C;;YACE,uCAAuC;YACvC,iBAAY,GAAG,CAAC,CAAA;QAmDlB,CAAC;QAjDC,kEAAkE;QAClE,iBAAiB;YACf,OAAO,EAAE,CAAA;QACX,CAAC;QAED,6EAA6E;QAC7E,YAAY,CAAC,KAAa,EAAE,WAAW,GAAG,IAAI;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;YAChE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACjF,IAAI,WAAW;gBAAE,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;YAC1C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAA;QAC7B,CAAC;QAED,2CAA2C;QAC3C,WAAW;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC1C,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;QAED,8CAA8C;QAC9C,WAAW;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC1C,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;YAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;QAED,yBAAyB;QACzB,YAAY;YACV,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACtB,CAAC;QAED,wBAAwB;QACxB,WAAW;YACT,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACxC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,6CAA6C;QAC7C,mBAAmB;YACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAA;YACrC,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACpF,CAAC;KACF;IACD,OAAO,mBAA+D,CAAA;AACxE,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../src/util/position.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,GAAG,OAAO,CAAA;AAE5E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CASlF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function resolvePosition(position) {
|
|
2
|
+
if (position instanceof MouseEvent) {
|
|
3
|
+
return { x: position.clientX, y: position.clientY };
|
|
4
|
+
}
|
|
5
|
+
if (position instanceof Element) {
|
|
6
|
+
const rect = position.getBoundingClientRect();
|
|
7
|
+
return { x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 };
|
|
8
|
+
}
|
|
9
|
+
return position;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=position.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["../../src/util/position.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,QAAwB;IACtD,IAAI,QAAQ,YAAY,UAAU,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAA;IACrD,CAAC;IACD,IAAI,QAAQ,YAAY,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAA;QAC7C,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAA;IACzE,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# `src/components/action-bar/ActionBar.ts`:
|
|
2
|
+
|
|
3
|
+
## class: `ActionBar`, `btu-action-bar`
|
|
4
|
+
|
|
5
|
+
### Superclass
|
|
6
|
+
|
|
7
|
+
| Name | Module | Package |
|
|
8
|
+
| ------------ | ------ | ------- |
|
|
9
|
+
| `LitElement` | | lit |
|
|
10
|
+
|
|
11
|
+
### Mixins
|
|
12
|
+
|
|
13
|
+
| Name | Module | Package |
|
|
14
|
+
| --------------------- | -------------------------------- | ------- |
|
|
15
|
+
| `RovingTabindexMixin` | /src/util/RovingTabindexMixin.js | |
|
|
16
|
+
| `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
|
|
17
|
+
| `ReadyMixin` | /src/util/ReadyMixin.js | |
|
|
18
|
+
|
|
19
|
+
### Fields
|
|
20
|
+
|
|
21
|
+
| Name | Privacy | Type | Default | Description | Inherited From |
|
|
22
|
+
| ----------- | ------- | ----------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
|
|
23
|
+
| `position` | | `Position` | `'bottom'` | Bar position: 'top' or 'bottom' (default). | |
|
|
24
|
+
| `sticky` | | `boolean` | `false` | Enables CSS sticky positioning. When combined with position='top',
the bar sticks to the top of the scroll container. With position='bottom'
(default), it sticks to the bottom. | |
|
|
25
|
+
| `alignment` | | `Alignment` | `'default'` | Content alignment: 'default' (two-zone), 'start', 'center', 'end'.
Non-default alignments disable two-zone layout. | |
|
|
26
|
+
| `shadow` | | `boolean` | `false` | Adds a box-shadow to the bar. | |
|
|
27
|
+
| `label` | | `string` | `''` | Accessible label for the toolbar region. | |
|
|
28
|
+
| `compact` | | `boolean` | `false` | Enables progressive label compacting. When space shrinks, items marked
\`compactable\` (with icons) have their labels hidden one-by-one
from least to most important before items overflow into "More". | |
|
|
29
|
+
|
|
30
|
+
### Events
|
|
31
|
+
|
|
32
|
+
| Name | Type | Description | Inherited From |
|
|
33
|
+
| ----------------------- | ------------------------------ | ------------------------------------------------------------------- | -------------- |
|
|
34
|
+
| `btu-action-bar-ready` | `CustomEvent` | Fired after first render and initialization | |
|
|
35
|
+
| `btu-action-item-click` | `CustomEvent<{label: string}>` | Fired when an action item is clicked (bubbles from btu-action-item) | |
|
|
36
|
+
|
|
37
|
+
### Attributes
|
|
38
|
+
|
|
39
|
+
| Name | Field | Inherited From |
|
|
40
|
+
| ---------------- | --------- | -------------- |
|
|
41
|
+
| `position` | position | |
|
|
42
|
+
| `sticky` | sticky | |
|
|
43
|
+
| `item-alignment` | alignment | |
|
|
44
|
+
| `shadow` | shadow | |
|
|
45
|
+
| `label` | label | |
|
|
46
|
+
| `compact` | compact | |
|
|
47
|
+
|
|
48
|
+
### CSS Properties
|
|
49
|
+
|
|
50
|
+
| Name | Default | Description |
|
|
51
|
+
| --------------------------- | ------- | ------------------------------------ |
|
|
52
|
+
| `--action-bar-gap` | | Gap between items (default: 0.75rem) |
|
|
53
|
+
| `--action-bar-padding` | | Bar padding (default: 1.5rem) |
|
|
54
|
+
| `--action-bar-background` | | Background color (default: white) |
|
|
55
|
+
| `--action-bar-border-color` | | Border color (default: gray-200) |
|
|
56
|
+
| `--action-bar-z-index` | | Z-index (default: 100) |
|
|
57
|
+
|
|
58
|
+
### Slots
|
|
59
|
+
|
|
60
|
+
| Name | Description |
|
|
61
|
+
| ---- | ---------------------------------------- |
|
|
62
|
+
| | One or more \`btu-action-item\` elements |
|
|
63
|
+
|
|
64
|
+
<hr/>
|
|
65
|
+
|
|
66
|
+
## Exports
|
|
67
|
+
|
|
68
|
+
| Kind | Name | Declaration | Module | Package |
|
|
69
|
+
| --------------------------- | ---------------- | ----------- | -------------------------------------- | ------- |
|
|
70
|
+
| `js` | `default` | ActionBar | src/components/action-bar/ActionBar.ts | |
|
|
71
|
+
| `custom-element-definition` | `btu-action-bar` | ActionBar | src/components/action-bar/ActionBar.ts | |
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# `src/components/action-bar/ActionItem.ts`:
|
|
2
|
+
|
|
3
|
+
## class: `ActionItem`, `btu-action-item`
|
|
4
|
+
|
|
5
|
+
### Superclass
|
|
6
|
+
|
|
7
|
+
| Name | Module | Package |
|
|
8
|
+
| ------------ | ------ | ------- |
|
|
9
|
+
| `LitElement` | | lit |
|
|
10
|
+
|
|
11
|
+
### Mixins
|
|
12
|
+
|
|
13
|
+
| Name | Module | Package |
|
|
14
|
+
| ------------------- | ------------------------------ | ------- |
|
|
15
|
+
| `TooltipMixin` | /src/util/TooltipMixin.js | |
|
|
16
|
+
| `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
|
|
17
|
+
| `ReadyMixin` | /src/util/ReadyMixin.js | |
|
|
18
|
+
|
|
19
|
+
### Fields
|
|
20
|
+
|
|
21
|
+
| Name | Privacy | Type | Default | Description | Inherited From |
|
|
22
|
+
| ------------- | ------- | ------------------------ | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
|
|
23
|
+
| `label` | | `string` | `''` | Button label text. | |
|
|
24
|
+
| `variant` | | `ActionItemVariant` | `'secondary'` | Visual variant: 'primary', 'secondary', 'tertiary', 'destructive'. | |
|
|
25
|
+
| `iconName` | | `string` | `''` | Lucide icon name for the leading icon. | |
|
|
26
|
+
| `iconOnly` | | `boolean` | `false` | Show icon only, hiding the label. Tooltip activates automatically with the label text. | |
|
|
27
|
+
| `disabled` | | `boolean` | `false` | Disables the action item. The button remains focusable for accessibility
but click events are suppressed. | |
|
|
28
|
+
| `loading` | | `boolean` | `false` | Shows a loading spinner and prevents interaction. | |
|
|
29
|
+
| `zone` | | `'start' \| 'end' \| ''` | `''` | Zone placement: 'start' or 'end'. Used by ActionBar for two-zone layout.
If unset, auto-detected from variant (destructive → start, others → end). | |
|
|
30
|
+
| `compactable` | | `boolean` | `false` | Opt-in for progressive label compacting. When the parent bar has \`compact\`
enabled and space shrinks, compactable items with icons have their labels
hidden one-by-one (least important first) before overflowing.
Items without an icon ignore this attribute and go directly to overflow. | |
|
|
31
|
+
|
|
32
|
+
### Methods
|
|
33
|
+
|
|
34
|
+
| Name | Privacy | Description | Parameters | Return | Inherited From |
|
|
35
|
+
| --------------------- | ------- | ----------- | ---------- | ------------------------ | -------------- |
|
|
36
|
+
| `_relayTooltipAttrs` | private | | | `void` | |
|
|
37
|
+
| `_handleClick` | private | | | `void` | |
|
|
38
|
+
| `_getSpinnerColor` | private | | | `string` | |
|
|
39
|
+
| `_buildButtonClasses` | private | | | `string` | |
|
|
40
|
+
| `_getButtonStyles` | private | | | `Record<string, string>` | |
|
|
41
|
+
|
|
42
|
+
### Events
|
|
43
|
+
|
|
44
|
+
| Name | Type | Description | Inherited From |
|
|
45
|
+
| ----------------------- | ------------------------------ | -------------------------------------------------------------------------- | -------------- |
|
|
46
|
+
| `btu-action-item-click` | `CustomEvent<{label: string}>` | Fired when the action item is clicked (not fired when disabled or loading) | |
|
|
47
|
+
|
|
48
|
+
### Attributes
|
|
49
|
+
|
|
50
|
+
| Name | Field | Inherited From |
|
|
51
|
+
| ------------- | ----------- | -------------- |
|
|
52
|
+
| `label` | label | |
|
|
53
|
+
| `variant` | variant | |
|
|
54
|
+
| `icon-name` | iconName | |
|
|
55
|
+
| `icon-only` | iconOnly | |
|
|
56
|
+
| `disabled` | disabled | |
|
|
57
|
+
| `loading` | loading | |
|
|
58
|
+
| `zone` | zone | |
|
|
59
|
+
| `compactable` | compactable | |
|
|
60
|
+
|
|
61
|
+
### CSS Properties
|
|
62
|
+
|
|
63
|
+
| Name | Default | Description |
|
|
64
|
+
| ------------------------ | ------- | -------------------------------- |
|
|
65
|
+
| `--button-color` | | Override button background color |
|
|
66
|
+
| `--button-text-color` | | Override button text color |
|
|
67
|
+
| `--button-border-radius` | | Override button border radius |
|
|
68
|
+
|
|
69
|
+
<hr/>
|
|
70
|
+
|
|
71
|
+
## Exports
|
|
72
|
+
|
|
73
|
+
| Kind | Name | Declaration | Module | Package |
|
|
74
|
+
| --------------------------- | ----------------- | ----------- | --------------------------------------- | ------- |
|
|
75
|
+
| `js` | `default` | ActionItem | src/components/action-bar/ActionItem.ts | |
|
|
76
|
+
| `custom-element-definition` | `btu-action-item` | ActionItem | src/components/action-bar/ActionItem.ts | |
|
|
@@ -42,13 +42,13 @@
|
|
|
42
42
|
|
|
43
43
|
### Events
|
|
44
44
|
|
|
45
|
-
| Name | Type
|
|
46
|
-
| ---------------------------- |
|
|
47
|
-
| `btu-dropdown-ready` | `CustomEvent`
|
|
48
|
-
| `btu-dropdown-show` | `CustomEvent`
|
|
49
|
-
| `btu-dropdown-hide` | `CustomEvent`
|
|
50
|
-
| `btu-dropdown-item-select` | `CustomEvent<{label: string, selected: boolean}>`
|
|
51
|
-
| `btu-dropdown-item-favorite` | `CustomEvent<{label: string, favorited: boolean}>`
|
|
45
|
+
| Name | Type | Description | Inherited From |
|
|
46
|
+
| ---------------------------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------------- | -------------- |
|
|
47
|
+
| `btu-dropdown-ready` | `CustomEvent` | Fired after first render and initialization | |
|
|
48
|
+
| `btu-dropdown-show` | `CustomEvent` | Fired when the dropdown panel opens | |
|
|
49
|
+
| `btu-dropdown-hide` | `CustomEvent` | Fired when the dropdown panel closes | |
|
|
50
|
+
| `btu-dropdown-item-select` | `CustomEvent<{label: string, value: string, selected: boolean}>` | Fired when a menu item is activated (bubbles from btu-dropdown-item) | |
|
|
51
|
+
| `btu-dropdown-item-favorite` | `CustomEvent<{label: string, favorited: boolean}>` | Fired when a menu item's favorite is toggled (bubbles from btu-dropdown-item) | |
|
|
52
52
|
|
|
53
53
|
### Attributes
|
|
54
54
|
|
|
@@ -23,9 +23,11 @@
|
|
|
23
23
|
| `type` | | `'default' \| 'divider' \| 'subhead'` | `'default'` | Item type: 'default', 'divider', or 'subhead'. | |
|
|
24
24
|
| `iconSymbol` | | `string` | `''` | Lucide icon symbol. | |
|
|
25
25
|
| `shortcut` | | `string` | `''` | Keyboard shortcut display text. | |
|
|
26
|
+
| `value` | | `string` | `''` | Optional data value associated with the item. | |
|
|
26
27
|
| `disabled` | | `boolean` | `false` | Whether the item is disabled. | |
|
|
27
28
|
| `selected` | | `boolean` | `false` | Whether the item is selected/checked. | |
|
|
28
29
|
| `favorited` | | `boolean` | `false` | Whether the item is favorited. | |
|
|
30
|
+
| `error` | | `boolean` | `false` | Whether the item has an error. | |
|
|
29
31
|
|
|
30
32
|
### Methods
|
|
31
33
|
|
|
@@ -36,11 +38,11 @@
|
|
|
36
38
|
|
|
37
39
|
### Events
|
|
38
40
|
|
|
39
|
-
| Name | Type
|
|
40
|
-
| ---------------------------- |
|
|
41
|
-
| `btu-dropdown-item-ready` | `CustomEvent`
|
|
42
|
-
| `btu-dropdown-item-select` | `CustomEvent<{label: string, selected: boolean}>`
|
|
43
|
-
| `btu-dropdown-item-favorite` | `CustomEvent<{label: string, favorited: boolean}>`
|
|
41
|
+
| Name | Type | Description | Inherited From |
|
|
42
|
+
| ---------------------------- | ---------------------------------------------------------------- | ------------------------------ | -------------- |
|
|
43
|
+
| `btu-dropdown-item-ready` | `CustomEvent` | Fired after first render | |
|
|
44
|
+
| `btu-dropdown-item-select` | `CustomEvent<{label: string, value: string, selected: boolean}>` | Fired when item is activated | |
|
|
45
|
+
| `btu-dropdown-item-favorite` | `CustomEvent<{label: string, favorited: boolean}>` | Fired when favorite is toggled | |
|
|
44
46
|
|
|
45
47
|
### Attributes
|
|
46
48
|
|
|
@@ -50,9 +52,11 @@
|
|
|
50
52
|
| `type` | type | |
|
|
51
53
|
| `icon-symbol` | iconSymbol | |
|
|
52
54
|
| `shortcut` | shortcut | |
|
|
55
|
+
| `value` | value | |
|
|
53
56
|
| `disabled` | disabled | |
|
|
54
57
|
| `selected` | selected | |
|
|
55
58
|
| `favorited` | favorited | |
|
|
59
|
+
| `error` | error | |
|
|
56
60
|
|
|
57
61
|
<hr/>
|
|
58
62
|
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
### Mixins
|
|
12
12
|
|
|
13
|
-
| Name
|
|
14
|
-
|
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
13
|
+
| Name | Module | Package |
|
|
14
|
+
| --------------------- | -------------------------------- | ------- |
|
|
15
|
+
| `RovingTabindexMixin` | /src/util/RovingTabindexMixin.js | |
|
|
16
|
+
| `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
|
|
17
|
+
| `ReadyMixin` | /src/util/ReadyMixin.js | |
|
|
17
18
|
|
|
18
19
|
### Fields
|
|
19
20
|
|
|
@@ -31,14 +32,13 @@
|
|
|
31
32
|
|
|
32
33
|
### Methods
|
|
33
34
|
|
|
34
|
-
| Name
|
|
35
|
-
|
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
| `_handleTypeahead` | private | Typeahead character matching with 500ms accumulation | `char: string, focusable: DropdownItem[]` | `void` | |
|
|
35
|
+
| Name | Privacy | Description | Parameters | Return | Inherited From |
|
|
36
|
+
| -------------------- | ------- | --------------------------------------------------------------- | ----------------------------------------- | ---------------- | -------------- |
|
|
37
|
+
| `_getRovingTargets` | | Override: return menuitem elements from focusable items | | `HTMLElement[]` | |
|
|
38
|
+
| `_configureItems` | private | Configure all child items with menu-level settings | | `void` | |
|
|
39
|
+
| `_getAllItems` | private | Get all btu-dropdown-item children | | `DropdownItem[]` | |
|
|
40
|
+
| `_getFocusableItems` | private | Get only focusable items (default type, skip dividers/subheads) | | `DropdownItem[]` | |
|
|
41
|
+
| `_handleTypeahead` | private | Typeahead character matching with 500ms accumulation | `char: string, focusable: DropdownItem[]` | `void` | |
|
|
42
42
|
|
|
43
43
|
### Events
|
|
44
44
|
|
|
@@ -17,35 +17,37 @@
|
|
|
17
17
|
|
|
18
18
|
### Fields
|
|
19
19
|
|
|
20
|
-
| Name | Privacy | Type | Default | Description
|
|
21
|
-
| ------------------------ | ------- | --------------------- | -------------- |
|
|
22
|
-
| `page` | | `number` | `1` | Current page number (1-based)
|
|
23
|
-
| `pageSize` | | `number` | `0` | Number of items per page
|
|
24
|
-
| `disabled` | | `boolean` | `false` | Disables all pagination controls
|
|
25
|
-
| `loading` | | `boolean` | `false` | Shows loading spinner and dims controls
|
|
26
|
-
| `hideOnSinglePage` | | `boolean` | `true` | Hide controls when there is only one page
|
|
27
|
-
| `pageSizeChanger` | | `boolean` | `true` | Show the page size dropdown
|
|
28
|
-
| `pageSizeOptions` | | `string` | `'10, 20, 50'` | Comma-separated page size options
|
|
29
|
-
| `totalItems` | | `number` | `0` | Total number of items across all pages
|
|
30
|
-
| `boundaryButtons` | | `boolean` | `true` | Show first and last page buttons
|
|
31
|
-
| `hideTotalCount` | | `boolean` | `false` | Hide the item count display (e.g., "1-10 of 200")
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
20
|
+
| Name | Privacy | Type | Default | Description | Inherited From |
|
|
21
|
+
| ------------------------ | ------- | --------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
|
|
22
|
+
| `page` | | `number` | `1` | Current page number (1-based) | |
|
|
23
|
+
| `pageSize` | | `number` | `0` | Number of items per page | |
|
|
24
|
+
| `disabled` | | `boolean` | `false` | Disables all pagination controls | |
|
|
25
|
+
| `loading` | | `boolean` | `false` | Shows loading spinner and dims controls | |
|
|
26
|
+
| `hideOnSinglePage` | | `boolean` | `true` | Hide controls when there is only one page | |
|
|
27
|
+
| `pageSizeChanger` | | `boolean` | `true` | Show the page size dropdown | |
|
|
28
|
+
| `pageSizeOptions` | | `string` | `'10, 20, 50'` | Comma-separated page size options | |
|
|
29
|
+
| `totalItems` | | `number` | `0` | Total number of items across all pages | |
|
|
30
|
+
| `boundaryButtons` | | `boolean` | `true` | Show first and last page buttons | |
|
|
31
|
+
| `hideTotalCount` | | `boolean` | `false` | Hide the item count display (e.g., "1-10 of 200") | |
|
|
32
|
+
| `pageJumper` | | `boolean` | `false` | Show the page jumper dropdown. Intended for moderate page counts (under \~100 pages).
For large datasets, use a custom \`slot="jumper"\` with a virtualized or input-based control. | |
|
|
33
|
+
| `label` | | `string \| undefined` | | Accessible label for the pagination nav landmark | |
|
|
34
|
+
| `_parsedPageSizeOptions` | private | `number[]` | | | |
|
|
35
|
+
| `_totalPages` | private | `number` | | | |
|
|
36
|
+
| `_startItem` | private | `number` | | | |
|
|
37
|
+
| `_endItem` | private | `number` | | | |
|
|
37
38
|
|
|
38
39
|
### Methods
|
|
39
40
|
|
|
40
|
-
| Name
|
|
41
|
-
|
|
|
42
|
-
| `_setupSlots`
|
|
43
|
-
| `_goToFirstPage`
|
|
44
|
-
| `_goToPreviousPage`
|
|
45
|
-
| `_goToNextPage`
|
|
46
|
-
| `_goToLastPage`
|
|
47
|
-
| `_manageBoundaryFocus`
|
|
48
|
-
| `
|
|
41
|
+
| Name | Privacy | Description | Parameters | Return | Inherited From |
|
|
42
|
+
| -------------------------- | ------- | ----------- | --------------------------- | ------ | -------------- |
|
|
43
|
+
| `_setupSlots` | private | | | `void` | |
|
|
44
|
+
| `_goToFirstPage` | private | | `e: Event` | `void` | |
|
|
45
|
+
| `_goToPreviousPage` | private | | `e: Event` | `void` | |
|
|
46
|
+
| `_goToNextPage` | private | | `e: Event` | `void` | |
|
|
47
|
+
| `_goToLastPage` | private | | `e: Event` | `void` | |
|
|
48
|
+
| `_manageBoundaryFocus` | private | | `clickedButton: IconButton` | `void` | |
|
|
49
|
+
| `_onBuiltinPageSizeSelect` | private | | `e: Event` | `void` | |
|
|
50
|
+
| `_onBuiltinJumperSelect` | private | | `e: Event` | `void` | |
|
|
49
51
|
|
|
50
52
|
### Events
|
|
51
53
|
|
|
@@ -69,21 +71,22 @@
|
|
|
69
71
|
| `total-items` | totalItems | |
|
|
70
72
|
| `boundary-buttons` | boundaryButtons | |
|
|
71
73
|
| `hide-total-count` | hideTotalCount | |
|
|
74
|
+
| `page-jumper` | pageJumper | |
|
|
72
75
|
| `label` | label | |
|
|
73
76
|
|
|
74
77
|
### CSS Properties
|
|
75
78
|
|
|
76
|
-
| Name | Default | Description
|
|
77
|
-
| ------------------------------- | ------- |
|
|
78
|
-
| `--pagination-color-background` | | Background color for
|
|
79
|
-
| `--pagination-color-foreground` | | Text/icon color
|
|
79
|
+
| Name | Default | Description |
|
|
80
|
+
| ------------------------------- | ------- | --------------------------------------------------- |
|
|
81
|
+
| `--pagination-color-background` | | Background color for dropdowns, buttons, and jumper |
|
|
82
|
+
| `--pagination-color-foreground` | | Text/icon color |
|
|
80
83
|
|
|
81
84
|
### Slots
|
|
82
85
|
|
|
83
|
-
| Name | Description
|
|
84
|
-
| ----------- |
|
|
85
|
-
| `page-size` | Custom page-size selector (replaces built-in
|
|
86
|
-
| `jumper` | Custom jumper content (
|
|
86
|
+
| Name | Description |
|
|
87
|
+
| ----------- | ---------------------------------------------------------------------------------------------- |
|
|
88
|
+
| `page-size` | Custom page-size selector (replaces built-in dropdown). Consumer manages all behavior. |
|
|
89
|
+
| `jumper` | Custom jumper content (replaces built-in page jumper dropdown). Consumer manages all behavior. |
|
|
87
90
|
|
|
88
91
|
<hr/>
|
|
89
92
|
|
|
@@ -4,6 +4,8 @@ This directory contains auto-generated API documentation for all Brightspot UI w
|
|
|
4
4
|
|
|
5
5
|
## Components
|
|
6
6
|
|
|
7
|
+
- [`<btu-action-bar>` - ActionBar](ActionBar.md)
|
|
8
|
+
- [`<btu-action-item>` - ActionItem](ActionItem.md)
|
|
7
9
|
- [`<btu-avatar>` - Avatar](Avatar.md)
|
|
8
10
|
- [`<btu-avatar-group>` - AvatarGroup](AvatarGroup.md)
|
|
9
11
|
- [`<btu-badge>` - Badge](Badge.md)
|
|
@@ -17,6 +19,9 @@ This directory contains auto-generated API documentation for all Brightspot UI w
|
|
|
17
19
|
- [`<btu-linear-progress>` - LinearProgress](LinearProgress.md)
|
|
18
20
|
- [`<btu-pagination>` - Pagination](Pagination.md)
|
|
19
21
|
- [`<btu-popover>` - Popover](Popover.md)
|
|
22
|
+
- [`<btu-switch>` - Switch](Switch.md)
|
|
23
|
+
- [`<btu-tab>` - Tab](Tab.md)
|
|
24
|
+
- [`<btu-tabs>` - Tabs](Tabs.md)
|
|
20
25
|
- [`<btu-widget>` - Widget](Widget.md)
|
|
21
26
|
|
|
22
27
|
---
|