@ixfx/components 0.6.2 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/index.d.ts +1918 -835
- package/bundle/index.d.ts.map +1 -1
- package/bundle/index.js +22137 -16840
- package/bundle/index.js.map +1 -1
- package/bundle/style.css +1 -1
- package/dist/ac-text.d.ts +1 -1
- package/dist/ac-text.js +3 -2
- package/dist/ac-text.js.map +1 -1
- package/dist/{ac-token-BAa6ke09.d.ts → ac-token--_vCHXWw.d.ts} +2 -2
- package/dist/{ac-token-BAa6ke09.d.ts.map → ac-token--_vCHXWw.d.ts.map} +1 -1
- package/dist/ac-token.d.ts +1 -1
- package/dist/ac-token.js +3 -2
- package/dist/ac-token.js.map +1 -1
- package/dist/{button-Bn0BuLpO.js → button-DsFbV4XD.js} +5 -4
- package/dist/button-DsFbV4XD.js.map +1 -0
- package/dist/button.d.ts.map +1 -1
- package/dist/button.js +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{colour-picker-0stHB90J.js → colour-picker-Ddsk-7E_.js} +4 -3
- package/dist/{colour-picker-0stHB90J.js.map → colour-picker-Ddsk-7E_.js.map} +1 -1
- package/dist/colour-picker.js +1 -1
- package/dist/crumbs.d.ts +1 -1
- package/dist/crumbs.js +4 -2
- package/dist/crumbs.js.map +1 -1
- package/dist/data-display.js +1 -1
- package/dist/{data-grid-C8qIo1-u.d.ts → data-grid-Bh4YrQGK.d.ts} +2 -2
- package/dist/{data-grid-C8qIo1-u.d.ts.map → data-grid-Bh4YrQGK.d.ts.map} +1 -1
- package/dist/data-grid.d.ts +1 -1
- package/dist/data-grid.js +4 -2
- package/dist/data-grid.js.map +1 -1
- package/dist/{defaults-BCiDhZbF.js → defaults-BJwDsMH4.js} +27 -20
- package/dist/defaults-BJwDsMH4.js.map +1 -0
- package/dist/editable-label-rzXkjf1H.d.ts +75 -0
- package/dist/editable-label-rzXkjf1H.d.ts.map +1 -0
- package/dist/editable-label.d.ts +2 -75
- package/dist/editable-label.js +2 -1
- package/dist/editable-label.js.map +1 -1
- package/dist/{fallbacks-DEE1nCTt.js → fallbacks-DNI9xt0F.js} +2 -2
- package/dist/{fallbacks-DEE1nCTt.js.map → fallbacks-DNI9xt0F.js.map} +1 -1
- package/dist/{grouped-item-lister-_pMDwIo1.d.ts → grouped-item-lister-DnWB-eFT.d.ts} +2 -2
- package/dist/{grouped-item-lister-_pMDwIo1.d.ts.map → grouped-item-lister-DnWB-eFT.d.ts.map} +1 -1
- package/dist/grouped-item-lister.d.ts +1 -1
- package/dist/{hex-editor-Bk6rxhfg.js → hex-editor-BiRfwTz1.js} +2 -2
- package/dist/{hex-editor-Bk6rxhfg.js.map → hex-editor-BiRfwTz1.js.map} +1 -1
- package/dist/hex.js +1 -1
- package/dist/{icon-DpA9x2Ve.d.ts → icon-CDGprSdE.d.ts} +1 -12
- package/dist/icon-CDGprSdE.d.ts.map +1 -0
- package/dist/{icons-Bm2ByQ3s.js → icon-DcEEGQa_.js} +38 -12
- package/dist/icon-DcEEGQa_.js.map +1 -0
- package/dist/icons.d.ts +3 -3
- package/dist/icons.js +9 -3
- package/dist/icons.js.map +1 -0
- package/dist/{index-CKtLhgYj.d.ts → index-9AhaHIT2.d.ts} +3 -3
- package/dist/{index-CKtLhgYj.d.ts.map → index-9AhaHIT2.d.ts.map} +1 -1
- package/dist/index-CG2vIgPv.d.ts +101 -0
- package/dist/index-CG2vIgPv.d.ts.map +1 -0
- package/dist/{index-BtGFYfaK.d.ts → index-CS9yM8L-.d.ts} +14 -4
- package/dist/index-CS9yM8L-.d.ts.map +1 -0
- package/dist/index.d.ts +861 -71
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4257 -931
- package/dist/index.js.map +1 -1
- package/dist/interaction-D5XdKzbR.js +2 -0
- package/dist/labelled-radial-input.js +2 -1
- package/dist/labelled-radial-input.js.map +1 -1
- package/dist/labelled-slider-input-DzigjMwP.js +808 -0
- package/dist/labelled-slider-input-DzigjMwP.js.map +1 -0
- package/dist/labelled-slider-input.d.ts +2 -0
- package/dist/labelled-slider-input.js +2 -0
- package/dist/{types-DlVNJez_.d.ts → list-selection-types-DSuRNWpx.d.ts} +10 -2
- package/dist/list-selection-types-DSuRNWpx.d.ts.map +1 -0
- package/dist/menu-CXDFJxNm.js +825 -0
- package/dist/menu-CXDFJxNm.js.map +1 -0
- package/dist/{menu-item-Bs2MYyHq.d.ts → menu-item-CZi9vy5O.d.ts} +4 -2
- package/dist/menu-item-CZi9vy5O.d.ts.map +1 -0
- package/dist/menu-item-D2S4i8u1.js +809 -0
- package/dist/menu-item-D2S4i8u1.js.map +1 -0
- package/dist/menu.d.ts +2 -2
- package/dist/menu.js +2 -1
- package/dist/miller.d.ts +1 -1
- package/dist/miller.js +3 -2
- package/dist/miller.js.map +1 -1
- package/dist/narrowed-text.js +4 -2
- package/dist/narrowed-text.js.map +1 -1
- package/dist/notification-pill-DyZydXoZ.d.ts.map +1 -1
- package/dist/notifier.js +4 -3
- package/dist/notifier.js.map +1 -1
- package/dist/panel.d.ts +13 -13
- package/dist/panel.d.ts.map +1 -1
- package/dist/panel.js +37 -253
- package/dist/panel.js.map +1 -1
- package/dist/plots.js +1 -1
- package/dist/polar-pad.js +1 -1
- package/dist/{radial-input-Dk8Wydp5.js → radial-input-Dp5qz0ly.js} +2 -2
- package/dist/{radial-input-Dk8Wydp5.js.map → radial-input-Dp5qz0ly.js.map} +1 -1
- package/dist/radial-input.js +1 -1
- package/dist/range-input.js +1 -1
- package/dist/range.js +1 -1
- package/dist/registry-BEtb8_wB.js +46 -0
- package/dist/registry-BEtb8_wB.js.map +1 -0
- package/dist/select-horiz.js +3 -2
- package/dist/select-horiz.js.map +1 -1
- package/dist/{slider-input-XppH3vcy.d.ts → slider-input-BfRUW2ZB.d.ts} +16 -3
- package/dist/slider-input-BfRUW2ZB.d.ts.map +1 -0
- package/dist/{slider-input-CT4gcF-o.js → slider-input-De4eoT11.js} +382 -67
- package/dist/slider-input-De4eoT11.js.map +1 -0
- package/dist/slider-input.d.ts +1 -1
- package/dist/slider-input.js +1 -1
- package/dist/snackbar.js +1 -1
- package/dist/split-layout-BFSbUZQv.js +969 -0
- package/dist/split-layout-BFSbUZQv.js.map +1 -0
- package/dist/split-layout-JK3xWVX2.d.ts +179 -0
- package/dist/split-layout-JK3xWVX2.d.ts.map +1 -0
- package/dist/split-layout.d.ts +2 -60
- package/dist/split-layout.js +1 -617
- package/dist/style.css +1 -1
- package/dist/swipe.js +1 -1
- package/dist/{tab-list-D_1cYhB_.d.ts → tab-list-CGyPt07Z.d.ts} +10 -2
- package/dist/tab-list-CGyPt07Z.d.ts.map +1 -0
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +128 -27
- package/dist/tabs.js.map +1 -1
- package/dist/{tickled-controller-BtevrRLV.d.ts → tickled-controller-CRzdIEjJ.d.ts} +7 -1
- package/dist/tickled-controller-CRzdIEjJ.d.ts.map +1 -0
- package/dist/{tickled-controller-DkAU-0qL.js → tickled-controller-h9GmJ_bU.js} +8 -2
- package/dist/tickled-controller-h9GmJ_bU.js.map +1 -0
- package/dist/titlebar-Bj5pfdw_.d.ts +50 -0
- package/dist/titlebar-Bj5pfdw_.d.ts.map +1 -0
- package/dist/titlebar.d.ts +2 -0
- package/dist/titlebar.js +324 -0
- package/dist/titlebar.js.map +1 -0
- package/dist/tooltip-BlvBUQxx.d.ts.map +1 -1
- package/dist/{tree-BO6BXI2b.js → tree-Ch4W8qXQ.js} +4 -3
- package/dist/{tree-BO6BXI2b.js.map → tree-Ch4W8qXQ.js.map} +1 -1
- package/dist/tree.d.ts +1 -1
- package/dist/tree.js +1 -1
- package/dist/vertical-list-ClnqTkF3.js +814 -0
- package/dist/vertical-list-ClnqTkF3.js.map +1 -0
- package/dist/vertical-list.d.ts +8 -9
- package/dist/vertical-list.d.ts.map +1 -1
- package/dist/vertical-list.js +1 -736
- package/dist/{xy-axis-B6yMjckW.js → xy-axis-DWizs0bt.js} +109 -3
- package/dist/xy-axis-DWizs0bt.js.map +1 -0
- package/dist/xy-pad.js +1 -1
- package/docs-user/README.md +5 -0
- package/docs-user/detail-list.md +398 -0
- package/docs-user/dock.md +461 -0
- package/docs-user/icons.md +4 -0
- package/docs-user/index.json +28 -3
- package/docs-user/labelled-slider-input.md +198 -0
- package/docs-user/llms.txt +6 -1
- package/docs-user/panel.md +20 -1
- package/docs-user/slider-input.md +55 -15
- package/docs-user/split-layout.md +136 -170
- package/docs-user/tabs.md +54 -0
- package/docs-user/titlebar.md +102 -0
- package/docs-user/toolbar.md +95 -22
- package/docs-user/twosplit-layout.md +254 -0
- package/docs-user/user-catalog.md +8 -1
- package/docs-user/user-theming.md +109 -0
- package/llms.txt +6 -1
- package/package.json +1 -2
- package/dist/button-Bn0BuLpO.js.map +0 -1
- package/dist/defaults-BCiDhZbF.js.map +0 -1
- package/dist/editable-label.d.ts.map +0 -1
- package/dist/icon-DpA9x2Ve.d.ts.map +0 -1
- package/dist/icons-Bm2ByQ3s.js.map +0 -1
- package/dist/index-BtGFYfaK.d.ts.map +0 -1
- package/dist/menu-DIfU70AA.js +0 -1609
- package/dist/menu-DIfU70AA.js.map +0 -1
- package/dist/menu-item-Bs2MYyHq.d.ts.map +0 -1
- package/dist/slider-input-CT4gcF-o.js.map +0 -1
- package/dist/slider-input-XppH3vcy.d.ts.map +0 -1
- package/dist/split-layout.d.ts.map +0 -1
- package/dist/split-layout.js.map +0 -1
- package/dist/tab-list-D_1cYhB_.d.ts.map +0 -1
- package/dist/tickled-controller-BtevrRLV.d.ts.map +0 -1
- package/dist/tickled-controller-DkAU-0qL.js.map +0 -1
- package/dist/types-DlVNJez_.d.ts.map +0 -1
- package/dist/vertical-list.js.map +0 -1
- package/dist/xy-axis-B6yMjckW.js.map +0 -1
package/bundle/index.d.ts
CHANGED
|
@@ -1027,17 +1027,6 @@ declare class LitElement extends ReactiveElement {
|
|
|
1027
1027
|
}
|
|
1028
1028
|
//#endregion
|
|
1029
1029
|
//#region src/icons/icon.d.ts
|
|
1030
|
-
/**
|
|
1031
|
-
* Renders an icon from the icon registry by name.
|
|
1032
|
-
*
|
|
1033
|
-
* @example
|
|
1034
|
-
* ```html
|
|
1035
|
-
* <ixfx-icon name="chevron-down"></ixfx-icon>
|
|
1036
|
-
* <ixfx-icon name="close" size="32" label="Close dialog"></ixfx-icon>
|
|
1037
|
-
* ```
|
|
1038
|
-
*
|
|
1039
|
-
* Use `registerIcon(name, svgString)` to add or override icons.
|
|
1040
|
-
*/
|
|
1041
1030
|
declare class IxfxIconElement extends LitElement {
|
|
1042
1031
|
#private;
|
|
1043
1032
|
name: string;
|
|
@@ -1443,6 +1432,8 @@ type MenuTriggerCommandDetail = {
|
|
|
1443
1432
|
declare class MenuTrigger extends LitElement {
|
|
1444
1433
|
mode: MenuMode;
|
|
1445
1434
|
label: string;
|
|
1435
|
+
/** Render an `ixfx-icon` in the default button instead of the text `label`. */
|
|
1436
|
+
iconName: string;
|
|
1446
1437
|
registry?: CommandRegistry<unknown>;
|
|
1447
1438
|
keyboardManager?: KeyboardManager;
|
|
1448
1439
|
placement: Placement;
|
|
@@ -2934,221 +2925,15 @@ interface DataGridElement {
|
|
|
2934
2925
|
removeEventListener: (<K extends keyof DataGridElementEventMap>(type: K, listener: (this: DataGridElement, event: DataGridElementEventMap[K]) => void, options?: boolean | EventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void);
|
|
2935
2926
|
}
|
|
2936
2927
|
//#endregion
|
|
2937
|
-
//#region src/
|
|
2938
|
-
type EditableMode = `label` | `editor`;
|
|
2939
|
-
type EntryMode = `free` | `text` | `number` | `percent`;
|
|
2940
|
-
type DisplayTextLogic = `hidden` | `show` | `override` | `transient`;
|
|
2941
|
-
type EditableLabelChangeDetail = {
|
|
2942
|
-
readonly value: string;
|
|
2943
|
-
};
|
|
2944
|
-
type EditableLabelChangeEvent = CustomEvent<EditableLabelChangeDetail>;
|
|
2945
|
-
declare class EditableLabel extends LitElement {
|
|
2946
|
-
mode: EditableMode;
|
|
2947
|
-
entryMode: EntryMode;
|
|
2948
|
-
value: string;
|
|
2949
|
-
disabled: boolean;
|
|
2950
|
-
placeholder: string;
|
|
2951
|
-
/** Override displayed text. Bypasses formatter and value. When editing, shows raw value. */
|
|
2952
|
-
displayText?: string;
|
|
2953
|
-
/**
|
|
2954
|
-
* Controls when displayText is shown:
|
|
2955
|
-
* - 'hidden' (default): never use displayText
|
|
2956
|
-
* - 'show': show displayText instead of formatted value, but hide while editing; revert after disappearDelay
|
|
2957
|
-
* - 'override': always show displayText, even when editing
|
|
2958
|
-
* - 'transient': show displayText by default, switch to formatted value after appearDelay on hover/interaction; revert after disappearDelay
|
|
2959
|
-
*/
|
|
2960
|
-
displayTextLogic: DisplayTextLogic;
|
|
2961
|
-
/** Delay before showing value in transient mode (ms). Default: 50 */
|
|
2962
|
-
appearDelay: number;
|
|
2963
|
-
/** Delay before reverting to displayText after editing ends (ms). Default: 1000 */
|
|
2964
|
-
disappearDelay: number;
|
|
2965
|
-
/** Override commit validation. Return true to accept, false to reject (reverts). */
|
|
2966
|
-
validator?: (value: string) => boolean;
|
|
2967
|
-
/** Transform the committed value for display. Does not affect the stored value. */
|
|
2968
|
-
formatter?: (value: string) => string;
|
|
2969
|
-
protected _editing: boolean;
|
|
2970
|
-
protected get _contentEl(): HTMLElement | undefined;
|
|
2971
|
-
/** Snapshot of value taken when editing begins; restored on cancel. */
|
|
2972
|
-
protected _prevValue: string;
|
|
2973
|
-
connectedCallback(): void;
|
|
2974
|
-
disconnectedCallback(): void;
|
|
2975
|
-
protected _hovering: boolean;
|
|
2976
|
-
protected _transientShowingValue: boolean;
|
|
2977
|
-
protected _transientTimer: number | undefined;
|
|
2978
|
-
protected _showModeWaitingToHide: boolean;
|
|
2979
|
-
protected _clearTransientTimer(): void;
|
|
2980
|
-
private _onMouseEnter;
|
|
2981
|
-
private _onMouseLeave;
|
|
2982
|
-
protected _startTransientRevertTimer(): void;
|
|
2983
|
-
protected _requestDisplayUpdate(): void;
|
|
2984
|
-
/** Called by subclasses when user interacts (drag, keyboard, etc) to temporarily show value in transient mode */
|
|
2985
|
-
protected _onUserInteraction(): void;
|
|
2986
|
-
protected _handleClick: () => void;
|
|
2987
|
-
protected _handleFocus: () => void;
|
|
2988
|
-
protected _handleBlur: () => void;
|
|
2989
|
-
protected _handleKeydown: (e: KeyboardEvent) => void;
|
|
2990
|
-
protected _handleBeforeInput: (e: InputEvent) => void;
|
|
2991
|
-
protected _handleInput: () => void;
|
|
2992
|
-
protected _beginEdit(): void;
|
|
2993
|
-
protected _tryCommit(): void;
|
|
2994
|
-
protected _cancelEdit(): void;
|
|
2995
|
-
protected _getDisplayText(): string;
|
|
2996
|
-
protected _shouldUseDisplayText(): boolean;
|
|
2997
|
-
protected _isAllowedInput(char: string): boolean;
|
|
2998
|
-
private _defaultValidator;
|
|
2999
|
-
render(): TemplateResult<1>;
|
|
3000
|
-
updated(changed: PropertyValues): void;
|
|
3001
|
-
static styles: CSSResult[];
|
|
3002
|
-
}
|
|
3003
|
-
declare global {
|
|
3004
|
-
interface HTMLElementTagNameMap {
|
|
3005
|
-
'ixfx-editable-label': EditableLabel;
|
|
3006
|
-
}
|
|
3007
|
-
}
|
|
3008
|
-
//#endregion
|
|
3009
|
-
//#region src/mixins/wheel-nudge.d.ts
|
|
3010
|
-
/**
|
|
3011
|
-
* Direction of a wheel tick. `+1` for `deltaY < 0` (wheel up/away), `-1` for
|
|
3012
|
-
* `deltaY > 0` (wheel down/toward).
|
|
3013
|
-
*/
|
|
3014
|
-
type WheelDirection = 1 | -1;
|
|
2928
|
+
//#region src/interaction/list-selection-types.d.ts
|
|
3015
2929
|
/**
|
|
3016
|
-
*
|
|
3017
|
-
*
|
|
3018
|
-
* `_applyWheelDelta` is called once per handled wheel tick. The consumer is
|
|
3019
|
-
* expected to reuse its existing arrow-key step math (typically a shared
|
|
3020
|
-
* `_stepByDelta(direction, effectiveStep)` private method) and call it here.
|
|
2930
|
+
* Shared list selection types.
|
|
3021
2931
|
*
|
|
3022
|
-
*
|
|
3023
|
-
*
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
_applyWheelDelta: (direction: WheelDirection, event: WheelEvent) => void;
|
|
3027
|
-
_shouldHandleWheel: () => boolean;
|
|
3028
|
-
}
|
|
3029
|
-
/**
|
|
3030
|
-
* Internal: the surface a {@link WheelNudgeMixin}-decorated class exposes to
|
|
3031
|
-
* TypeScript — its own members plus the consumer contract.
|
|
2932
|
+
* Used by every list-flavoured component (`ixfx-vertical-list`,
|
|
2933
|
+
* `ixfx-detail-list`, …) so selection semantics and events stay identical
|
|
2934
|
+
* across them. Historically lived in `src/vertical-list/types.ts`, which
|
|
2935
|
+
* still re-exports everything from here for backwards compatibility.
|
|
3032
2936
|
*/
|
|
3033
|
-
type WheelNudgeConsumerType<TBase> = TBase & WheelNudgeConsumer;
|
|
3034
|
-
//#endregion
|
|
3035
|
-
//#region src/editable-label/editable-number.d.ts
|
|
3036
|
-
declare const EditableNumber_base: (new (...args: any[]) => WheelNudgeConsumerType<EditableLabel>) & typeof EditableLabel;
|
|
3037
|
-
declare class EditableNumber extends EditableNumber_base {
|
|
3038
|
-
#private;
|
|
3039
|
-
min?: number;
|
|
3040
|
-
max?: number;
|
|
3041
|
-
step?: number;
|
|
3042
|
-
/** Quantised stops for keyboard nudging. Overrides `step` when > 1. */
|
|
3043
|
-
stops?: number;
|
|
3044
|
-
dragSensitivity: number;
|
|
3045
|
-
fillStyle?: `linear` | `circular`;
|
|
3046
|
-
linearStyle?: `range` | `bipolar` | `unipolar`;
|
|
3047
|
-
circularStyle?: `grow` | `offset` | `dot`;
|
|
3048
|
-
noDrag: boolean;
|
|
3049
|
-
precision: number;
|
|
3050
|
-
constructor();
|
|
3051
|
-
render(): TemplateResult<1>;
|
|
3052
|
-
private _stopNativeInput;
|
|
3053
|
-
connectedCallback(): void;
|
|
3054
|
-
disconnectedCallback(): void;
|
|
3055
|
-
private _handleMouseEnter;
|
|
3056
|
-
private _handleMouseLeave;
|
|
3057
|
-
/** Click just focuses; edit mode is entered by pressing a key while focused. */
|
|
3058
|
-
protected _handleClick: () => void;
|
|
3059
|
-
/** Suppress auto-edit-on-focus from editor mode; keydown handles it instead. */
|
|
3060
|
-
protected _handleFocus: () => void;
|
|
3061
|
-
/** Override to use .number instead of .content for text display */
|
|
3062
|
-
protected get _contentEl(): HTMLElement | undefined;
|
|
3063
|
-
firstUpdated(changedProperties: Map<string, unknown>): void;
|
|
3064
|
-
protected _onUserInteraction(): void;
|
|
3065
|
-
private _onValueChange;
|
|
3066
|
-
updated(changedProperties: Map<string, unknown>): void;
|
|
3067
|
-
private _updateValueCss;
|
|
3068
|
-
protected _getDisplayText(): string;
|
|
3069
|
-
protected _tryCommit(): void;
|
|
3070
|
-
protected _handleBeforeInput: (e: InputEvent) => void;
|
|
3071
|
-
protected _handleKeydown: (e: KeyboardEvent) => void;
|
|
3072
|
-
private _onKeyDown;
|
|
3073
|
-
private _handleArrowKey;
|
|
3074
|
-
/**
|
|
3075
|
-
* Apply a signed delta to the current value, clamp/snap/format, and fire
|
|
3076
|
-
* `input`/`change`. Shared between arrow-key handler and the wheel handler.
|
|
3077
|
-
*/
|
|
3078
|
-
private _applyDelta;
|
|
3079
|
-
_shouldHandleWheel(): boolean;
|
|
3080
|
-
_applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
|
|
3081
|
-
private _onPointerDown;
|
|
3082
|
-
private _onPointerMove;
|
|
3083
|
-
private _onPointerUp;
|
|
3084
|
-
private _interceptClick;
|
|
3085
|
-
private _parseValue;
|
|
3086
|
-
/**
|
|
3087
|
-
* Formats the stored value for display, inferring decimal places from the value
|
|
3088
|
-
* string itself. This preserves typed precision (e.g. "0.1234" stays "0.1234")
|
|
3089
|
-
* and also respects trailing zeros written by drag storage (e.g. "5.0" stays "5.0").
|
|
3090
|
-
*/
|
|
3091
|
-
private _formatDisplay;
|
|
3092
|
-
private _clamp;
|
|
3093
|
-
private _snap;
|
|
3094
|
-
private _inferDecimals;
|
|
3095
|
-
private _formatNumber;
|
|
3096
|
-
/** Returns a 0..1 fraction for the given value within [min, max]. */
|
|
3097
|
-
private _normalizedValue;
|
|
3098
|
-
static styles: CSSResult[];
|
|
3099
|
-
}
|
|
3100
|
-
declare global {
|
|
3101
|
-
interface HTMLElementTagNameMap {
|
|
3102
|
-
'ixfx-editable-number': EditableNumber;
|
|
3103
|
-
}
|
|
3104
|
-
}
|
|
3105
|
-
//#endregion
|
|
3106
|
-
//#region src/form/form-group.d.ts
|
|
3107
|
-
declare class FormGroupElement extends LitElement {
|
|
3108
|
-
label: string;
|
|
3109
|
-
private _fieldset?;
|
|
3110
|
-
private _observer?;
|
|
3111
|
-
protected createRenderRoot(): this;
|
|
3112
|
-
connectedCallback(): void;
|
|
3113
|
-
firstUpdated(): void;
|
|
3114
|
-
disconnectedCallback(): void;
|
|
3115
|
-
private _moveChildren;
|
|
3116
|
-
protected render(): TemplateResult<1>;
|
|
3117
|
-
}
|
|
3118
|
-
declare global {
|
|
3119
|
-
interface HTMLElementTagNameMap {
|
|
3120
|
-
'ixfx-form-group': FormGroupElement;
|
|
3121
|
-
}
|
|
3122
|
-
}
|
|
3123
|
-
//#endregion
|
|
3124
|
-
//#region src/form/form-part.d.ts
|
|
3125
|
-
declare class FormPartElement extends LitElement {
|
|
3126
|
-
label: string;
|
|
3127
|
-
private _id?;
|
|
3128
|
-
protected createRenderRoot(): this;
|
|
3129
|
-
connectedCallback(): void;
|
|
3130
|
-
private _ensureId;
|
|
3131
|
-
protected render(): TemplateResult<1>;
|
|
3132
|
-
}
|
|
3133
|
-
declare global {
|
|
3134
|
-
interface HTMLElementTagNameMap {
|
|
3135
|
-
"ixfx-form-part": FormPartElement;
|
|
3136
|
-
}
|
|
3137
|
-
}
|
|
3138
|
-
//#endregion
|
|
3139
|
-
//#region src/form/form.d.ts
|
|
3140
|
-
declare class FormElement extends LitElement {
|
|
3141
|
-
protected createRenderRoot(): this;
|
|
3142
|
-
getValues(): Record<string, unknown>;
|
|
3143
|
-
setValues(data: Record<string, unknown>): void;
|
|
3144
|
-
}
|
|
3145
|
-
declare global {
|
|
3146
|
-
interface HTMLElementTagNameMap {
|
|
3147
|
-
'ixfx-form': FormElement;
|
|
3148
|
-
}
|
|
3149
|
-
}
|
|
3150
|
-
//#endregion
|
|
3151
|
-
//#region src/vertical-list/types.d.ts
|
|
3152
2937
|
type ListSelectionMode = `none` | `single` | `multiple`;
|
|
3153
2938
|
/**
|
|
3154
2939
|
* Controls how pointer and keyboard gestures map to selection changes.
|
|
@@ -3187,43 +2972,1461 @@ interface ListElementEventMap {
|
|
|
3187
2972
|
'list-item-click': ListItemClickEvent;
|
|
3188
2973
|
}
|
|
3189
2974
|
//#endregion
|
|
3190
|
-
//#region src/
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3215
|
-
|
|
3216
|
-
|
|
3217
|
-
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
2975
|
+
//#region src/vertical-list/vertical-list.d.ts
|
|
2976
|
+
interface CustomCheckboxOptions {
|
|
2977
|
+
renderer: (checked: boolean) => unknown;
|
|
2978
|
+
margin?: string;
|
|
2979
|
+
width?: string;
|
|
2980
|
+
}
|
|
2981
|
+
interface AddItemOptions {
|
|
2982
|
+
/**
|
|
2983
|
+
* In `checked` interaction mode, adds the item without a checkbox column and
|
|
2984
|
+
* without the ability to be checked/selected. Equivalent to setting the
|
|
2985
|
+
* `not-checked` attribute on the item. Ignored outside `checked` mode.
|
|
2986
|
+
*/
|
|
2987
|
+
notChecked?: boolean;
|
|
2988
|
+
}
|
|
2989
|
+
declare class VerticalListElement extends LitElement {
|
|
2990
|
+
#private;
|
|
2991
|
+
selectionMode: ListSelectionMode;
|
|
2992
|
+
interactionMode: ListInteractionMode;
|
|
2993
|
+
filterPredicate: ((el: Element) => boolean) | undefined;
|
|
2994
|
+
/**
|
|
2995
|
+
* Whether keyboard navigation wraps from last to first and vice versa.
|
|
2996
|
+
* - 'stop' (default): navigation stops at the boundary
|
|
2997
|
+
* - 'wrap': navigation wraps around
|
|
2998
|
+
*/
|
|
2999
|
+
itemWrap: `stop` | `wrap`;
|
|
3000
|
+
/**
|
|
3001
|
+
* Optional renderer for the checkbox shown in `checked` interactionMode.
|
|
3002
|
+
* Receives the current `checked` state and returns a Lit template result.
|
|
3003
|
+
*
|
|
3004
|
+
* When set, the per-row checkbox becomes a `<span role="checkbox">` whose
|
|
3005
|
+
* contents are whatever this returns (rendered with `lit`'s `render()`).
|
|
3006
|
+
* When unset, a native `<input type="checkbox">` is used.
|
|
3007
|
+
*
|
|
3008
|
+
* @example
|
|
3009
|
+
* list.checkboxRenderer = (checked) => checked
|
|
3010
|
+
* ? html`<svg viewBox="0 0 16 16" width="14" height="14"
|
|
3011
|
+
* fill="none" stroke="currentColor" stroke-width="2"
|
|
3012
|
+
* stroke-linecap="round" stroke-linejoin="round"
|
|
3013
|
+
* style="opacity:0.5">
|
|
3014
|
+
* <polyline points="3,8 7,12 13,4" />
|
|
3015
|
+
* </svg>`
|
|
3016
|
+
* : html``;
|
|
3017
|
+
*/
|
|
3018
|
+
checkboxRenderer: ((checked: boolean) => unknown) | CustomCheckboxOptions | undefined;
|
|
3019
|
+
private _searchVisible;
|
|
3020
|
+
private _searchQuery;
|
|
3021
|
+
private _searchInputEl;
|
|
3022
|
+
private readonly selection;
|
|
3023
|
+
private tickled;
|
|
3024
|
+
connectedCallback(): void;
|
|
3025
|
+
disconnectedCallback(): void;
|
|
3026
|
+
firstUpdated(): void;
|
|
3027
|
+
updated(changed: PropertyValues): void;
|
|
3028
|
+
/** The most recently selected item, or `undefined` if nothing is selected. */
|
|
3029
|
+
get selectedItem(): Element | undefined;
|
|
3030
|
+
/** The full current selection set (read-only). */
|
|
3031
|
+
get selectedItems(): ReadonlySet<Element>;
|
|
3032
|
+
addItem(item: Element | string, options?: AddItemOptions): void;
|
|
3033
|
+
removeItem(item: Element): void;
|
|
3034
|
+
clearItems(): void;
|
|
3035
|
+
/**
|
|
3036
|
+
* Replace the entire item list in one call.
|
|
3037
|
+
* Equivalent to `clearItems()` followed by `addItem()` for each element.
|
|
3038
|
+
* Preserves `interactionMode` checkbox wrapping.
|
|
3039
|
+
*/
|
|
3040
|
+
setItems(items: readonly Element[]): void;
|
|
3041
|
+
/**
|
|
3042
|
+
* Dispatch a command to this list. No-op by default.
|
|
3043
|
+
* Intended for use with `ixfx-grouped-item-lister`'s `dispatch()` method,
|
|
3044
|
+
* which forwards commands to all sub-components.
|
|
3045
|
+
*/
|
|
3046
|
+
dispatch(_commandId: CommandId, _args?: Record<string, unknown>): void;
|
|
3047
|
+
select(item: Element): void;
|
|
3048
|
+
selectMany(items: Iterable<Element>): void;
|
|
3049
|
+
deselect(item: Element): void;
|
|
3050
|
+
clearSelection(): void;
|
|
3051
|
+
selectAll(): void;
|
|
3052
|
+
selectedFilter(kind: `selected` | `checked` | `either`): Generator<Element>;
|
|
3053
|
+
private _getVisibleItems;
|
|
3054
|
+
private _isCheckable;
|
|
3055
|
+
private _syncItemStates;
|
|
3056
|
+
private _syncCheckboxes;
|
|
3057
|
+
/**
|
|
3058
|
+
* Native checkbox cell: a span that stretches to the row's full cross-axis
|
|
3059
|
+
* (so the entire column height is a click target) with a real `<input>`
|
|
3060
|
+
* centred inside. The span owns the click; the input is purely visual and
|
|
3061
|
+
* has `pointer-events:none` so a single click produces one toggle.
|
|
3062
|
+
*/
|
|
3063
|
+
private _createNativeCheckboxCell;
|
|
3064
|
+
/**
|
|
3065
|
+
* Custom checkbox cell: same shape as the native cell (a stretching span)
|
|
3066
|
+
* so behaviour is identical. The renderer's content goes inside.
|
|
3067
|
+
*/
|
|
3068
|
+
private _createCustomCheckbox;
|
|
3069
|
+
private _findListItem;
|
|
3070
|
+
private _dispatch;
|
|
3071
|
+
private _openSearch;
|
|
3072
|
+
private _closeSearch;
|
|
3073
|
+
private _onPointerOver;
|
|
3074
|
+
private _onPointerLeave;
|
|
3075
|
+
private _onKeyDown;
|
|
3076
|
+
private _onClick;
|
|
3077
|
+
private _onDblClick;
|
|
3078
|
+
private _activateItem;
|
|
3079
|
+
private _onSearchInput;
|
|
3080
|
+
private _onSearchKeydown;
|
|
3081
|
+
static styles: CSSResult[];
|
|
3082
|
+
render(): TemplateResult<1>;
|
|
3083
|
+
}
|
|
3084
|
+
declare global {
|
|
3085
|
+
interface HTMLElementTagNameMap {
|
|
3086
|
+
'ixfx-vertical-list': VerticalListElement;
|
|
3087
|
+
}
|
|
3088
|
+
interface HTMLElementEventMap extends ListElementEventMap {}
|
|
3089
|
+
}
|
|
3090
|
+
//#endregion
|
|
3091
|
+
//#region src/detail-list/types.d.ts
|
|
3092
|
+
/** Sort direction applied to the item columns. */
|
|
3093
|
+
type DetailSortMode = `none` | `ascending` | `descending`;
|
|
3094
|
+
/** Per-item view of a row passed to `sortComparator`. */
|
|
3095
|
+
type DetailSortItem = {
|
|
3096
|
+
readonly element: HTMLElement;
|
|
3097
|
+
readonly data: unknown;
|
|
3098
|
+
readonly label: string;
|
|
3099
|
+
};
|
|
3100
|
+
/** Custom comparator — return negative when `a` sorts before `b`. */
|
|
3101
|
+
type DetailSortComparator = (a: DetailSortItem, b: DetailSortItem) => number;
|
|
3102
|
+
/** Turns one object item into row content — a plain string or a DOM node. */
|
|
3103
|
+
type DetailFormatter = (item: unknown, index: number) => string | Node;
|
|
3104
|
+
//#endregion
|
|
3105
|
+
//#region src/detail-list/detail-list.d.ts
|
|
3106
|
+
/**
|
|
3107
|
+
* A list that scales horizontally, not vertically.
|
|
3108
|
+
*
|
|
3109
|
+
* Items are laid out in equal-width columns; they flow top→bottom down a
|
|
3110
|
+
* column, then wrap to the top of the next column to the right. The
|
|
3111
|
+
* component has a fixed vertical extent and scrolls horizontally.
|
|
3112
|
+
*
|
|
3113
|
+
* Selection semantics match `ixfx-vertical-list` — same modes, same
|
|
3114
|
+
* `list-*` events, same keyboard gestures — but navigation is a 2-D grid
|
|
3115
|
+
* (Up/Down move within a column, Left/Right jump columns).
|
|
3116
|
+
*
|
|
3117
|
+
* Items come from any of three sources (later writes win):
|
|
3118
|
+
* 1. declarative `<li>` children in light DOM,
|
|
3119
|
+
* 2. `addItem()` / `setItems()`,
|
|
3120
|
+
* 3. an `items` array of objects rendered via `displayProperty` /
|
|
3121
|
+
* `formatter`, optionally streamed in via a `provider`.
|
|
3122
|
+
*/
|
|
3123
|
+
declare class DetailListElement extends LitElement {
|
|
3124
|
+
#private;
|
|
3125
|
+
selectionMode: ListSelectionMode;
|
|
3126
|
+
interactionMode: ListInteractionMode;
|
|
3127
|
+
sort: DetailSortMode;
|
|
3128
|
+
sortBy: string;
|
|
3129
|
+
sortComparator: DetailSortComparator | undefined;
|
|
3130
|
+
items: readonly unknown[];
|
|
3131
|
+
provider: IDataProvider<void, unknown> | undefined;
|
|
3132
|
+
displayProperty: string;
|
|
3133
|
+
formatter: DetailFormatter | undefined;
|
|
3134
|
+
iconProperty: string;
|
|
3135
|
+
keyProperty: string;
|
|
3136
|
+
filterPredicate: ((el: Element) => boolean) | undefined;
|
|
3137
|
+
/**
|
|
3138
|
+
* Whether keyboard navigation wraps from last to first and vice versa.
|
|
3139
|
+
* - 'stop' (default): navigation stops at the boundary
|
|
3140
|
+
* - 'wrap': navigation wraps around
|
|
3141
|
+
*/
|
|
3142
|
+
itemWrap: `stop` | `wrap`;
|
|
3143
|
+
/** Optional renderer for the checkbox shown in `checked` interactionMode. */
|
|
3144
|
+
checkboxRenderer: ((checked: boolean) => unknown) | CustomCheckboxOptions | undefined;
|
|
3145
|
+
private _searchVisible;
|
|
3146
|
+
private _searchQuery;
|
|
3147
|
+
private _searchInputEl;
|
|
3148
|
+
private _listEl;
|
|
3149
|
+
private readonly selection;
|
|
3150
|
+
private tickled;
|
|
3151
|
+
connectedCallback(): void;
|
|
3152
|
+
disconnectedCallback(): void;
|
|
3153
|
+
firstUpdated(): void;
|
|
3154
|
+
updated(changed: PropertyValues): void;
|
|
3155
|
+
/** The most recently selected item, or `undefined` if nothing is selected. */
|
|
3156
|
+
get selectedItem(): Element | undefined;
|
|
3157
|
+
/** The full current selection set (read-only). */
|
|
3158
|
+
get selectedItems(): ReadonlySet<Element>;
|
|
3159
|
+
/**
|
|
3160
|
+
* Force an immediate geometry recompute. Called automatically on resize,
|
|
3161
|
+
* DOM changes, sort/filter/search changes — only needed when layout is
|
|
3162
|
+
* changed by outside forces (e.g. an external font load).
|
|
3163
|
+
*/
|
|
3164
|
+
refreshLayout(): void;
|
|
3165
|
+
addItem(item: Element | string, options?: AddItemOptions): void;
|
|
3166
|
+
removeItem(item: Element): void;
|
|
3167
|
+
clearItems(): void;
|
|
3168
|
+
/**
|
|
3169
|
+
* Replace the entire item list in one call.
|
|
3170
|
+
* Equivalent to `clearItems()` followed by `addItem()` for each element.
|
|
3171
|
+
*/
|
|
3172
|
+
setItems(items: readonly Element[]): void;
|
|
3173
|
+
/**
|
|
3174
|
+
* Get the source object behind an `<li>` built from an `items` array or
|
|
3175
|
+
* provider. Returns `undefined` for declarative / programmatic elements.
|
|
3176
|
+
*/
|
|
3177
|
+
getItemData(item: HTMLLIElement): unknown;
|
|
3178
|
+
/** Dispatch a command to this list. No-op by default (grouped-lister parity). */
|
|
3179
|
+
dispatch(_commandId: CommandId, _args?: Record<string, unknown>): void;
|
|
3180
|
+
select(item: Element): void;
|
|
3181
|
+
selectMany(items: Iterable<Element>): void;
|
|
3182
|
+
deselect(item: Element): void;
|
|
3183
|
+
clearSelection(): void;
|
|
3184
|
+
selectAll(): void;
|
|
3185
|
+
selectedFilter(kind: `selected` | `checked` | `either`): Generator<Element>;
|
|
3186
|
+
private _getVisibleItems;
|
|
3187
|
+
private _isCheckable;
|
|
3188
|
+
private _setLabel;
|
|
3189
|
+
private _syncItemStates;
|
|
3190
|
+
private _syncCheckboxes;
|
|
3191
|
+
/**
|
|
3192
|
+
* Native checkbox cell: a span that stretches to the row's full cross-axis
|
|
3193
|
+
* (so the entire column height is a click target) with a real `<input>`
|
|
3194
|
+
* centred inside. The span owns the click; the input is purely visual and
|
|
3195
|
+
* has `pointer-events:none` so a single click produces one toggle.
|
|
3196
|
+
*/
|
|
3197
|
+
private _createNativeCheckboxCell;
|
|
3198
|
+
/** Custom checkbox cell: same shape as the native cell; renderer content inside. */
|
|
3199
|
+
private _createCustomCheckbox;
|
|
3200
|
+
private _findListItem;
|
|
3201
|
+
private _dispatch;
|
|
3202
|
+
private _openSearch;
|
|
3203
|
+
private _closeSearch;
|
|
3204
|
+
private _onPointerOver;
|
|
3205
|
+
private _onPointerLeave;
|
|
3206
|
+
private _onKeyDown;
|
|
3207
|
+
private _onClick;
|
|
3208
|
+
private _onDblClick;
|
|
3209
|
+
private _onWheel;
|
|
3210
|
+
private _activateItem;
|
|
3211
|
+
private _onSearchInput;
|
|
3212
|
+
private _onSearchKeydown;
|
|
3213
|
+
static styles: CSSResult[];
|
|
3214
|
+
render(): TemplateResult<1>;
|
|
3215
|
+
}
|
|
3216
|
+
declare global {
|
|
3217
|
+
interface HTMLElementTagNameMap {
|
|
3218
|
+
'ixfx-detail-list': DetailListElement;
|
|
3219
|
+
}
|
|
3220
|
+
interface HTMLElementEventMap extends ListElementEventMap {}
|
|
3221
|
+
}
|
|
3222
|
+
//#endregion
|
|
3223
|
+
//#region src/titlebar/titlebar.d.ts
|
|
3224
|
+
type TitlebarOrientation = `horizontal` | `vertical`;
|
|
3225
|
+
type TitlebarVariant = `titlebar` | `midline`;
|
|
3226
|
+
type TitlebarToggleInteraction = `implicit` | `explicit` | `disabled`;
|
|
3227
|
+
interface TitlebarToggleDetail {
|
|
3228
|
+
readonly collapsed: boolean;
|
|
3229
|
+
}
|
|
3230
|
+
type TitlebarToggleEvent = CustomEvent<TitlebarToggleDetail>;
|
|
3231
|
+
type TitlebarCloseEvent = CustomEvent<void>;
|
|
3232
|
+
interface TitlebarElementEventMap {
|
|
3233
|
+
toggle: TitlebarToggleEvent;
|
|
3234
|
+
close: TitlebarCloseEvent;
|
|
3235
|
+
}
|
|
3236
|
+
/**
|
|
3237
|
+
* Standalone titlebar chrome: title, icon, toolbar slot, close button and
|
|
3238
|
+
* optional collapse/expand caret. Extracted from `ixfx-panel`.
|
|
3239
|
+
*
|
|
3240
|
+
* Collapsing is opt-in via `collapsible`. When absent, no caret is shown and
|
|
3241
|
+
* `toggle-interaction` is inert. `close` is fired without removing the
|
|
3242
|
+
* element — the host decides what closing means.
|
|
3243
|
+
*/
|
|
3244
|
+
declare class TitlebarElement extends LitElement {
|
|
3245
|
+
title: string;
|
|
3246
|
+
iconName: string;
|
|
3247
|
+
orientation: TitlebarOrientation;
|
|
3248
|
+
variant: TitlebarVariant;
|
|
3249
|
+
closable: boolean;
|
|
3250
|
+
/** Show the collapse/expand caret and enable toggle behaviour. */
|
|
3251
|
+
collapsible: boolean;
|
|
3252
|
+
collapsed: boolean;
|
|
3253
|
+
toggleInteraction: TitlebarToggleInteraction;
|
|
3254
|
+
private _onToggleClick;
|
|
3255
|
+
private _onCloseClick;
|
|
3256
|
+
private _getCaretIcon;
|
|
3257
|
+
protected render(): TemplateResult<1>;
|
|
3258
|
+
static styles: CSSResult[];
|
|
3259
|
+
}
|
|
3260
|
+
declare global {
|
|
3261
|
+
interface HTMLElementTagNameMap {
|
|
3262
|
+
'ixfx-titlebar': TitlebarElement;
|
|
3263
|
+
}
|
|
3264
|
+
}
|
|
3265
|
+
interface TitlebarElement {
|
|
3266
|
+
addEventListener: (<K extends keyof TitlebarElementEventMap>(type: K, listener: (this: TitlebarElement, event: TitlebarElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
3267
|
+
}
|
|
3268
|
+
//#endregion
|
|
3269
|
+
//#region src/dock/types.d.ts
|
|
3270
|
+
/** Axis values used by `ixfx-split-layout` — stored verbatim in the model. */
|
|
3271
|
+
type DockAxis = `row` | `column`;
|
|
3272
|
+
type DockLayout = {
|
|
3273
|
+
readonly version: 1;
|
|
3274
|
+
readonly root: DockNode;
|
|
3275
|
+
};
|
|
3276
|
+
type DockNode = DockSplitNode | DockStackNode;
|
|
3277
|
+
/**
|
|
3278
|
+
* N-ary split node, rendered as a single `ixfx-split-layout`.
|
|
3279
|
+
* `direction` uses the element's flexbox sense: `row` places children
|
|
3280
|
+
* side-by-side, `column` stacks them vertically.
|
|
3281
|
+
*/
|
|
3282
|
+
interface DockSplitNode {
|
|
3283
|
+
kind: `split`;
|
|
3284
|
+
direction: DockAxis;
|
|
3285
|
+
/** Flex weights, parallel to `children`. Need not sum to 1. */
|
|
3286
|
+
sizes: number[];
|
|
3287
|
+
/** Two or more children (post-normalize). */
|
|
3288
|
+
children: DockNode[];
|
|
3289
|
+
}
|
|
3290
|
+
interface DockStackNode {
|
|
3291
|
+
kind: `stack`;
|
|
3292
|
+
/** Panel-ids in tab order. */
|
|
3293
|
+
panels: string[];
|
|
3294
|
+
/** Active panel-id (empty when the stack is empty). */
|
|
3295
|
+
active: string;
|
|
3296
|
+
/**
|
|
3297
|
+
* App-defined container name (e.g. `primary-sidebar`). Must be unique
|
|
3298
|
+
* within a layout; lookups resolve to the first match in tree order.
|
|
3299
|
+
* Survives serialization and `normalize()` (named empty stacks are kept).
|
|
3300
|
+
*/
|
|
3301
|
+
name?: string;
|
|
3302
|
+
/**
|
|
3303
|
+
* Hide tab labels in this leaf's strip (icon-only tabs). Passed down to
|
|
3304
|
+
* the leaf's `ixfx-tab-list` as `hide-labels`.
|
|
3305
|
+
*/
|
|
3306
|
+
hideLabels?: boolean;
|
|
3307
|
+
/** Whole stack collapsed to its titlebar / strip. */
|
|
3308
|
+
collapsed?: boolean;
|
|
3309
|
+
/** Size to restore into the parent split on expand. */
|
|
3310
|
+
preCollapseSize?: string;
|
|
3311
|
+
}
|
|
3312
|
+
type DockOperation = `tabs` | `split-horizontal` | `split-vertical`;
|
|
3313
|
+
interface DockPanelDragStartDetail {
|
|
3314
|
+
readonly panelId: string;
|
|
3315
|
+
readonly pointerId: number;
|
|
3316
|
+
readonly clientX: number;
|
|
3317
|
+
readonly clientY: number;
|
|
3318
|
+
}
|
|
3319
|
+
type DockPanelDragStartEvent = CustomEvent<DockPanelDragStartDetail>;
|
|
3320
|
+
interface DockChangeDetail {
|
|
3321
|
+
readonly layout: DockLayout;
|
|
3322
|
+
}
|
|
3323
|
+
type DockChangeEvent = CustomEvent<DockChangeDetail>;
|
|
3324
|
+
interface DockPanelAddedDetail {
|
|
3325
|
+
readonly panelId: string;
|
|
3326
|
+
}
|
|
3327
|
+
type DockPanelAddedEvent = CustomEvent<DockPanelAddedDetail>;
|
|
3328
|
+
interface DockPanelRemovedDetail {
|
|
3329
|
+
readonly panelId: string;
|
|
3330
|
+
}
|
|
3331
|
+
type DockPanelRemovedEvent = CustomEvent<DockPanelRemovedDetail>;
|
|
3332
|
+
interface DockPanelActivatedDetail {
|
|
3333
|
+
readonly panelId: string;
|
|
3334
|
+
}
|
|
3335
|
+
type DockPanelActivatedEvent = CustomEvent<DockPanelActivatedDetail>;
|
|
3336
|
+
type DockPanelInit = {
|
|
3337
|
+
panelId: string;
|
|
3338
|
+
title?: string;
|
|
3339
|
+
iconName?: string;
|
|
3340
|
+
closable?: boolean;
|
|
3341
|
+
collapsible?: boolean;
|
|
3342
|
+
/** Content kind for leaf placement rules (default `'any'`). */
|
|
3343
|
+
kind?: string;
|
|
3344
|
+
};
|
|
3345
|
+
/**
|
|
3346
|
+
* Placement rules for one named leaf. A panel kind is accepted when it is
|
|
3347
|
+
* not denied and (when an allowlist is present) it is allowed. `'any'` is
|
|
3348
|
+
* the default panel kind and matches literally — it is not a wildcard.
|
|
3349
|
+
*/
|
|
3350
|
+
interface DockLeafContentRules {
|
|
3351
|
+
/** Exclusive allowlist, or null when unrestricted. `[]` seals the leaf. */
|
|
3352
|
+
readonly allow: readonly string[] | null;
|
|
3353
|
+
/** Denylist (empty when nothing is denied). */
|
|
3354
|
+
readonly deny: readonly string[];
|
|
3355
|
+
}
|
|
3356
|
+
/**
|
|
3357
|
+
* Reference to a stack leaf: either its container `name` or its numeric
|
|
3358
|
+
* `path` in the layout tree (e.g. `[0, 1]`). Names resolve first-match in
|
|
3359
|
+
* tree order; paths are validated against the current model.
|
|
3360
|
+
*/
|
|
3361
|
+
type DockLeafRef = string | readonly number[];
|
|
3362
|
+
type DockDirection = `up` | `down` | `left` | `right`;
|
|
3363
|
+
type DockEdge = `top` | `bottom` | `left` | `right`;
|
|
3364
|
+
/** A neighbouring leaf: `name` is null for unnamed leaves. */
|
|
3365
|
+
interface DockLeafInfo {
|
|
3366
|
+
readonly name: string | null;
|
|
3367
|
+
/** Path of the leaf in the current model (positional — may shift after mutations). */
|
|
3368
|
+
readonly path: number[];
|
|
3369
|
+
}
|
|
3370
|
+
/** Geometric neighbours of a leaf, as flat lists (most-overlapping first). */
|
|
3371
|
+
interface DockNeighbours {
|
|
3372
|
+
readonly above: DockLeafInfo[];
|
|
3373
|
+
readonly below: DockLeafInfo[];
|
|
3374
|
+
readonly left: DockLeafInfo[];
|
|
3375
|
+
readonly right: DockLeafInfo[];
|
|
3376
|
+
}
|
|
3377
|
+
type DockAddPanelTarget = {
|
|
3378
|
+
/**
|
|
3379
|
+
* Name of a named stack leaf (`DockStackNode.name`). Takes precedence over
|
|
3380
|
+
* `stack` when both are given. Unknown names fall back to the first stack.
|
|
3381
|
+
*/
|
|
3382
|
+
container?: string;
|
|
3383
|
+
/** A panel-id in the target stack (legacy lookup). */
|
|
3384
|
+
stack?: string;
|
|
3385
|
+
index?: number;
|
|
3386
|
+
op?: DockOperation;
|
|
3387
|
+
};
|
|
3388
|
+
/**
|
|
3389
|
+
* Plain, structured-clone-safe description of a panel. Enough to recreate an
|
|
3390
|
+
* `ixfx-dock-panel` in another document / process (e.g. a new Electron
|
|
3391
|
+
* `BrowserWindow`). `contentHTML` is a best-effort capture of the panel's
|
|
3392
|
+
* light-DOM markup at snapshot time — apps whose panels hold live state or
|
|
3393
|
+
* framework-managed DOM should rebuild the body from their own model instead
|
|
3394
|
+
* and ignore this field.
|
|
3395
|
+
*/
|
|
3396
|
+
interface DockPanelSnapshot {
|
|
3397
|
+
panelId: string;
|
|
3398
|
+
title: string;
|
|
3399
|
+
iconName: string;
|
|
3400
|
+
closable: boolean;
|
|
3401
|
+
collapsible: boolean;
|
|
3402
|
+
/** Content kind for leaf placement rules (`'any'` when unset). */
|
|
3403
|
+
kind: string;
|
|
3404
|
+
/** The panel's `accepts` restriction token string (may be empty). */
|
|
3405
|
+
accepts: string;
|
|
3406
|
+
/** Best-effort `innerHTML` of the panel element at capture time. */
|
|
3407
|
+
contentHTML: string;
|
|
3408
|
+
}
|
|
3409
|
+
/**
|
|
3410
|
+
* Serializable result of hit-testing a point against a host — what a drop
|
|
3411
|
+
* there would do. Returned by `queryDropTarget()` / `previewExternalDrop()`
|
|
3412
|
+
* so a coordinator (in-page or over IPC) can reason about the outcome without
|
|
3413
|
+
* a live `DockDropZone` (which carries element references).
|
|
3414
|
+
*/
|
|
3415
|
+
interface DockDropTarget {
|
|
3416
|
+
operation: DockOperation;
|
|
3417
|
+
/** Path of the target stack in the host model; `[]` = the host root. */
|
|
3418
|
+
targetPath: number[];
|
|
3419
|
+
side: `before` | `after`;
|
|
3420
|
+
/** Tab insertion index for `tabs` drops. */
|
|
3421
|
+
gapIndex?: number;
|
|
3422
|
+
}
|
|
3423
|
+
interface DockPanelTearOutDetail {
|
|
3424
|
+
readonly panelId: string;
|
|
3425
|
+
/** Snapshot captured from the source panel at release. */
|
|
3426
|
+
readonly snapshot: DockPanelSnapshot;
|
|
3427
|
+
/** Pointer position in the source window's viewport at release. */
|
|
3428
|
+
readonly clientX: number;
|
|
3429
|
+
readonly clientY: number;
|
|
3430
|
+
/** Pointer position in screen coordinates at release — for window placement. */
|
|
3431
|
+
readonly screenX: number;
|
|
3432
|
+
readonly screenY: number;
|
|
3433
|
+
}
|
|
3434
|
+
type DockPanelTearOutEvent = CustomEvent<DockPanelTearOutDetail>;
|
|
3435
|
+
interface DockDragBoundaryDetail {
|
|
3436
|
+
readonly panelId: string;
|
|
3437
|
+
readonly clientX: number;
|
|
3438
|
+
readonly clientY: number;
|
|
3439
|
+
readonly screenX: number;
|
|
3440
|
+
readonly screenY: number;
|
|
3441
|
+
}
|
|
3442
|
+
/** `dock-panel-drag-out` / `dock-panel-drag-in`. */
|
|
3443
|
+
type DockDragBoundaryEvent = CustomEvent<DockDragBoundaryDetail>;
|
|
3444
|
+
//#endregion
|
|
3445
|
+
//#region src/dock/dock-panel.d.ts
|
|
3446
|
+
interface DockPanelElementEventMap {
|
|
3447
|
+
'dock-panel-drag-start': DockPanelDragStartEvent;
|
|
3448
|
+
'toggle': TitlebarToggleEvent;
|
|
3449
|
+
'close': TitlebarCloseEvent;
|
|
3450
|
+
}
|
|
3451
|
+
/**
|
|
3452
|
+
* Leaf content + metadata + drag handle. Renders `ixfx-titlebar` chrome when
|
|
3453
|
+
* standalone (`presentation="solo"`) and content only when docked
|
|
3454
|
+
* (`presentation="tabbed"` — the host's tab strip carries the title chrome).
|
|
3455
|
+
* Adds `panel-id` and the titlebar drag handle. Works standalone outside a
|
|
3456
|
+
* host (the drag-start event has no listener and is inert).
|
|
3457
|
+
*/
|
|
3458
|
+
declare class DockPanelElement extends LitElement {
|
|
3459
|
+
/** Stable identity: model key, slot name suffix, serialization id. */
|
|
3460
|
+
panelId: string;
|
|
3461
|
+
/**
|
|
3462
|
+
* Display text (tab label, titlebar). Stored in the `label` attribute —
|
|
3463
|
+
* deliberately not `title`, so browsers never tooltip it.
|
|
3464
|
+
*/
|
|
3465
|
+
title: string;
|
|
3466
|
+
iconName: string;
|
|
3467
|
+
closable: boolean;
|
|
3468
|
+
collapsible: boolean;
|
|
3469
|
+
/**
|
|
3470
|
+
* Content kind for the host's leaf placement rules
|
|
3471
|
+
* (`setLeafExclusiveContents` / `setLeafDenyContents`). Matched literally;
|
|
3472
|
+
* defaults to `'any'`.
|
|
3473
|
+
*/
|
|
3474
|
+
kind: string;
|
|
3475
|
+
/**
|
|
3476
|
+
* Per-panel restriction when this panel is itself a drop target (solo
|
|
3477
|
+
* leaf). Space-separated `tabs` / `horizontal` / `vertical` / `all`;
|
|
3478
|
+
* `none` rejects everything; default is unrestricted.
|
|
3479
|
+
*/
|
|
3480
|
+
accepts: string;
|
|
3481
|
+
/**
|
|
3482
|
+
* Host-controlled. Docked panels are always `tabbed` (content only — the
|
|
3483
|
+
* leaf's tab strip carries the title chrome). `solo` (full titlebar chrome)
|
|
3484
|
+
* applies to panels outside a host or not currently docked.
|
|
3485
|
+
*/
|
|
3486
|
+
presentation: `solo` | `tabbed`;
|
|
3487
|
+
/** Solo-mode collapse state, mirrored from the titlebar. */
|
|
3488
|
+
private _collapsed;
|
|
3489
|
+
private _dragPointerId;
|
|
3490
|
+
private _dragStartX;
|
|
3491
|
+
private _dragStartY;
|
|
3492
|
+
private _dragStarted;
|
|
3493
|
+
connectedCallback(): void;
|
|
3494
|
+
disconnectedCallback(): void;
|
|
3495
|
+
private _onPointerDown;
|
|
3496
|
+
private _onPointerMove;
|
|
3497
|
+
private _onPointerUp;
|
|
3498
|
+
private _teardownDragListeners;
|
|
3499
|
+
/** Clicks that begin on the close / caret buttons or the toolbar are not drags. */
|
|
3500
|
+
private _isDragHandle;
|
|
3501
|
+
private _dispatchDragStart;
|
|
3502
|
+
private _onTitlebarToggle;
|
|
3503
|
+
private _onTitlebarClose;
|
|
3504
|
+
protected render(): TemplateResult<1>;
|
|
3505
|
+
static styles: CSSResult[];
|
|
3506
|
+
}
|
|
3507
|
+
declare global {
|
|
3508
|
+
interface HTMLElementTagNameMap {
|
|
3509
|
+
'ixfx-dock-panel': DockPanelElement;
|
|
3510
|
+
}
|
|
3511
|
+
}
|
|
3512
|
+
interface DockPanelElement {
|
|
3513
|
+
addEventListener: (<K extends keyof DockPanelElementEventMap>(type: K, listener: (this: DockPanelElement, event: DockPanelElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
3514
|
+
}
|
|
3515
|
+
//#endregion
|
|
3516
|
+
//#region src/split-layout/types.d.ts
|
|
3517
|
+
type Axis = `row` | `column`;
|
|
3518
|
+
type WhenSmall = `prevent` | `collapse` | `close`;
|
|
3519
|
+
interface PanelNode {
|
|
3520
|
+
kind: `panel`;
|
|
3521
|
+
id: string;
|
|
3522
|
+
el: HTMLElement;
|
|
3523
|
+
weight: number;
|
|
3524
|
+
fixedPx: number | null;
|
|
3525
|
+
minPx: number;
|
|
3526
|
+
maxPx: number | null;
|
|
3527
|
+
whenSmall: WhenSmall;
|
|
3528
|
+
collapsed: boolean;
|
|
3529
|
+
restoreWeight: number;
|
|
3530
|
+
}
|
|
3531
|
+
interface GroupNode {
|
|
3532
|
+
kind: `group`;
|
|
3533
|
+
id: string;
|
|
3534
|
+
el: HTMLElement | null;
|
|
3535
|
+
axis: Axis;
|
|
3536
|
+
children: LayoutNode[];
|
|
3537
|
+
weight: number;
|
|
3538
|
+
fixedPx: number | null;
|
|
3539
|
+
}
|
|
3540
|
+
type LayoutNode = PanelNode | GroupNode;
|
|
3541
|
+
interface SnapshotNode {
|
|
3542
|
+
kind: `panel` | `group`;
|
|
3543
|
+
id: string;
|
|
3544
|
+
weight?: number;
|
|
3545
|
+
collapsed?: boolean;
|
|
3546
|
+
children?: SnapshotNode[];
|
|
3547
|
+
}
|
|
3548
|
+
interface LayoutSnapshot {
|
|
3549
|
+
version: 1;
|
|
3550
|
+
root: SnapshotNode;
|
|
3551
|
+
}
|
|
3552
|
+
interface PanelInfo {
|
|
3553
|
+
id: string;
|
|
3554
|
+
el: HTMLElement;
|
|
3555
|
+
index: number;
|
|
3556
|
+
path: string;
|
|
3557
|
+
weight: number;
|
|
3558
|
+
collapsed: boolean;
|
|
3559
|
+
min: number;
|
|
3560
|
+
max: number | null;
|
|
3561
|
+
whenSmall: WhenSmall;
|
|
3562
|
+
}
|
|
3563
|
+
interface SplitResizeDetail {
|
|
3564
|
+
sizes: Record<string, number>;
|
|
3565
|
+
groupId: string;
|
|
3566
|
+
}
|
|
3567
|
+
type SplitResizeEvent = CustomEvent<SplitResizeDetail>;
|
|
3568
|
+
interface SplitCollapseDetail {
|
|
3569
|
+
id: string;
|
|
3570
|
+
index: number;
|
|
3571
|
+
}
|
|
3572
|
+
type SplitCollapseEvent = CustomEvent<SplitCollapseDetail>;
|
|
3573
|
+
interface SplitExpandDetail {
|
|
3574
|
+
id: string;
|
|
3575
|
+
index: number;
|
|
3576
|
+
}
|
|
3577
|
+
type SplitExpandEvent = CustomEvent<SplitExpandDetail>;
|
|
3578
|
+
interface SplitCloseDetail {
|
|
3579
|
+
id: string;
|
|
3580
|
+
index: number;
|
|
3581
|
+
}
|
|
3582
|
+
type SplitCloseEvent = CustomEvent<SplitCloseDetail>;
|
|
3583
|
+
interface SplitChangeDetail {
|
|
3584
|
+
layout: LayoutSnapshot;
|
|
3585
|
+
}
|
|
3586
|
+
type SplitChangeEvent = CustomEvent<SplitChangeDetail>;
|
|
3587
|
+
interface SplitLayoutElementEventMap {
|
|
3588
|
+
'ixfx-split-resize': SplitResizeEvent;
|
|
3589
|
+
'ixfx-split-collapse': SplitCollapseEvent;
|
|
3590
|
+
'ixfx-split-expand': SplitExpandEvent;
|
|
3591
|
+
'ixfx-split-close': SplitCloseEvent;
|
|
3592
|
+
'ixfx-split-change': SplitChangeEvent;
|
|
3593
|
+
}
|
|
3594
|
+
//#endregion
|
|
3595
|
+
//#region src/split-layout/split-panel.d.ts
|
|
3596
|
+
declare class SplitPanelElement extends LitElement {
|
|
3597
|
+
id: string;
|
|
3598
|
+
size: string;
|
|
3599
|
+
weight: string;
|
|
3600
|
+
fixed: string;
|
|
3601
|
+
min: string;
|
|
3602
|
+
max: string;
|
|
3603
|
+
whenSmall: string;
|
|
3604
|
+
collapsed: boolean;
|
|
3605
|
+
snap: string;
|
|
3606
|
+
render(): TemplateResult<1>;
|
|
3607
|
+
static styles: CSSResult[];
|
|
3608
|
+
}
|
|
3609
|
+
declare global {
|
|
3610
|
+
interface HTMLElementTagNameMap {
|
|
3611
|
+
'ixfx-split-panel': SplitPanelElement;
|
|
3612
|
+
}
|
|
3613
|
+
}
|
|
3614
|
+
//#endregion
|
|
3615
|
+
//#region src/split-layout/split-layout.d.ts
|
|
3616
|
+
declare class SplitLayoutElement extends LitElement {
|
|
3617
|
+
direction: Axis;
|
|
3618
|
+
sizes: string;
|
|
3619
|
+
gutterSize: string;
|
|
3620
|
+
snap: string;
|
|
3621
|
+
private _model;
|
|
3622
|
+
private _resizing;
|
|
3623
|
+
private _groupEl?;
|
|
3624
|
+
private _observer;
|
|
3625
|
+
private _applyingOwnMutation;
|
|
3626
|
+
private _dragStructurallyChanged;
|
|
3627
|
+
private _dragMachine;
|
|
3628
|
+
connectedCallback(): void;
|
|
3629
|
+
disconnectedCallback(): void;
|
|
3630
|
+
firstUpdated(): void;
|
|
3631
|
+
private _setupObserver;
|
|
3632
|
+
private _rebuildModel;
|
|
3633
|
+
get panels(): PanelInfo[];
|
|
3634
|
+
getLayout(): LayoutSnapshot | null;
|
|
3635
|
+
setLayout(s: LayoutSnapshot): void;
|
|
3636
|
+
getSizes(_groupId?: string): Record<string, number>;
|
|
3637
|
+
setSizes(weights: number[] | Record<string, number>, _groupId?: string): void;
|
|
3638
|
+
collapse(idOrEl: string | HTMLElement): void;
|
|
3639
|
+
expand(idOrEl: string | HTMLElement): void;
|
|
3640
|
+
toggle(idOrEl: string | HTMLElement): void;
|
|
3641
|
+
closePanel(idOrEl: string | HTMLElement): boolean;
|
|
3642
|
+
/**
|
|
3643
|
+
* Bounding rects of the gutter elements, in gutter index order. lets
|
|
3644
|
+
* callers (e.g. dock junction handles) hit-test gutters without reaching
|
|
3645
|
+
* into the shadow DOM.
|
|
3646
|
+
*/
|
|
3647
|
+
getGutterRects(): DOMRect[];
|
|
3648
|
+
/**
|
|
3649
|
+
* Programmatically begin dragging the gutter at `gutterIndex`, as if the
|
|
3650
|
+
* user had pressed on it at (`clientX`, `clientY`). The drag then follows
|
|
3651
|
+
* the pointer `pointerId` until pointerup, exactly like a native gutter
|
|
3652
|
+
* drag. Returns false when the index is out of range or the layout isn't
|
|
3653
|
+
* ready. Intended for composite resize affordances — e.g. a junction handle
|
|
3654
|
+
* that starts this drag alongside perpendicular drags on other layouts.
|
|
3655
|
+
*/
|
|
3656
|
+
beginGutterDrag(gutterIndex: number, pointerId: number, clientX: number, clientY: number): boolean;
|
|
3657
|
+
private _setCollapsedState;
|
|
3658
|
+
private _reindexSlots;
|
|
3659
|
+
private _findPanel;
|
|
3660
|
+
private _setFlexibleWeight;
|
|
3661
|
+
private _snapPx;
|
|
3662
|
+
private _collapsedPx;
|
|
3663
|
+
private _handleDragStart;
|
|
3664
|
+
private _handleDragMove;
|
|
3665
|
+
private _handleDragEnd;
|
|
3666
|
+
private _snapshotTracks;
|
|
3667
|
+
private _reseedDragState;
|
|
3668
|
+
private _onGutterPointerDown;
|
|
3669
|
+
private _onPointerMove;
|
|
3670
|
+
private _onPointerUp;
|
|
3671
|
+
private _emitResize;
|
|
3672
|
+
private _emitChange;
|
|
3673
|
+
protected render(): typeof nothing | TemplateResult<1>;
|
|
3674
|
+
private _getTrackSizes;
|
|
3675
|
+
private _resolveTracks;
|
|
3676
|
+
private _renderGutter;
|
|
3677
|
+
static styles: CSSResult[];
|
|
3678
|
+
}
|
|
3679
|
+
declare global {
|
|
3680
|
+
interface HTMLElementTagNameMap {
|
|
3681
|
+
'ixfx-split-layout': SplitLayoutElement;
|
|
3682
|
+
}
|
|
3683
|
+
interface HTMLElementEventMap {
|
|
3684
|
+
'ixfx-split-resize': CustomEvent<SplitResizeDetail>;
|
|
3685
|
+
'ixfx-split-collapse': CustomEvent<SplitCollapseDetail>;
|
|
3686
|
+
'ixfx-split-expand': CustomEvent<SplitExpandDetail>;
|
|
3687
|
+
'ixfx-split-close': CustomEvent<SplitCloseDetail>;
|
|
3688
|
+
'ixfx-split-change': CustomEvent<SplitChangeDetail>;
|
|
3689
|
+
}
|
|
3690
|
+
}
|
|
3691
|
+
//#endregion
|
|
3692
|
+
//#region src/tabs/tab-list-item.d.ts
|
|
3693
|
+
/**
|
|
3694
|
+
* CSS vars (can be overridden per-instance):
|
|
3695
|
+
* --selected-colour: text colour when selected
|
|
3696
|
+
* --selected-border-width: border width
|
|
3697
|
+
* --ixfx-tab-padding: vertical padding for the tab content (default: var(--space-m))
|
|
3698
|
+
* --ixfx-tab-padding-horizontal: horizontal padding (default: same as --ixfx-tab-padding)
|
|
3699
|
+
*/
|
|
3700
|
+
declare class TabListItemElement extends LitElement {
|
|
3701
|
+
closeable: boolean;
|
|
3702
|
+
hideLabels: boolean;
|
|
3703
|
+
iconName: string | undefined;
|
|
3704
|
+
description: string | undefined;
|
|
3705
|
+
commandActive: string | undefined;
|
|
3706
|
+
registry: CommandRegistry<unknown> | undefined;
|
|
3707
|
+
private _compact;
|
|
3708
|
+
private _hasToolbarContent;
|
|
3709
|
+
private _resizeObserver?;
|
|
3710
|
+
private _commandCleanup?;
|
|
3711
|
+
private _labelObserver;
|
|
3712
|
+
connectedCallback(): void;
|
|
3713
|
+
disconnectedCallback(): void;
|
|
3714
|
+
updated(changed: PropertyValues): void;
|
|
3715
|
+
private _syncTooltipAttrs;
|
|
3716
|
+
private _syncCommandListener;
|
|
3717
|
+
private _onToolbarSlotChange;
|
|
3718
|
+
private _onLabelSlotChange;
|
|
3719
|
+
/**
|
|
3720
|
+
* Mirror the default-slot text into `.label[data-label]` for the `::after`
|
|
3721
|
+
* width sizer. Slotted toolbar content is excluded.
|
|
3722
|
+
*/
|
|
3723
|
+
private _syncLabelSizer;
|
|
3724
|
+
private _updateToolbarContent;
|
|
3725
|
+
firstUpdated(): void;
|
|
3726
|
+
render(): TemplateResult<1>;
|
|
3727
|
+
private _onCloseClick;
|
|
3728
|
+
static styles: CSSResult[];
|
|
3729
|
+
}
|
|
3730
|
+
declare global {
|
|
3731
|
+
interface HTMLElementTagNameMap {
|
|
3732
|
+
"ixfx-tab-list-item": TabListItemElement;
|
|
3733
|
+
}
|
|
3734
|
+
}
|
|
3735
|
+
//#endregion
|
|
3736
|
+
//#region src/tabs/tab-list.d.ts
|
|
3737
|
+
/**
|
|
3738
|
+
* Events
|
|
3739
|
+
* 'change' - new tab selected { previous:string, selected:string, for:string }
|
|
3740
|
+
* 'reorder' - tab moved within the list { id:string, fromIndex:number, toIndex:number }
|
|
3741
|
+
*/
|
|
3742
|
+
type TabListChangeDetail = {
|
|
3743
|
+
readonly previous: string | undefined;
|
|
3744
|
+
readonly selected: string;
|
|
3745
|
+
readonly for: string;
|
|
3746
|
+
};
|
|
3747
|
+
type TabListChangeEvent = CustomEvent<TabListChangeDetail>;
|
|
3748
|
+
type TabListReorderDetail = {
|
|
3749
|
+
readonly id: string;
|
|
3750
|
+
readonly fromIndex: number;
|
|
3751
|
+
readonly toIndex: number;
|
|
3752
|
+
};
|
|
3753
|
+
type TabListReorderEvent = CustomEvent<TabListReorderDetail>;
|
|
3754
|
+
type TabListDragMode = `off` | `reorder`;
|
|
3755
|
+
declare class TabListElement extends LitElement {
|
|
3756
|
+
#private;
|
|
3757
|
+
orientation: `horizontal` | `vertical-stack` | `vertical-side`;
|
|
3758
|
+
flip: boolean;
|
|
3759
|
+
scrollable: boolean;
|
|
3760
|
+
hideLabels: boolean;
|
|
3761
|
+
shrink: boolean;
|
|
3762
|
+
dragMode: TabListDragMode;
|
|
3763
|
+
render(): TemplateResult<1>;
|
|
3764
|
+
firstUpdated(): void;
|
|
3765
|
+
updated(changedProperties: PropertyValues): void;
|
|
3766
|
+
getSelectedElement(): TabListItemElement | undefined;
|
|
3767
|
+
selectElement(el: HTMLElement): void;
|
|
3768
|
+
static styles: CSSResult[];
|
|
3769
|
+
}
|
|
3770
|
+
declare global {
|
|
3771
|
+
interface HTMLElementTagNameMap {
|
|
3772
|
+
"ixfx-tab-list": TabListElement;
|
|
3773
|
+
}
|
|
3774
|
+
}
|
|
3775
|
+
//#endregion
|
|
3776
|
+
//#region src/dock/dock-host.d.ts
|
|
3777
|
+
interface DockHostElementEventMap {
|
|
3778
|
+
'dock-change': DockChangeEvent;
|
|
3779
|
+
'dock-panel-added': DockPanelAddedEvent;
|
|
3780
|
+
'dock-panel-removed': DockPanelRemovedEvent;
|
|
3781
|
+
'dock-panel-activated': DockPanelActivatedEvent;
|
|
3782
|
+
'dock-panel-drag-start': DockPanelDragStartEvent;
|
|
3783
|
+
/** Panel released outside every host — request to move it to a new window. */
|
|
3784
|
+
'dock-panel-tear-out': DockPanelTearOutEvent;
|
|
3785
|
+
/** Drag pointer left every host's bounds during a drag. */
|
|
3786
|
+
'dock-panel-drag-out': DockDragBoundaryEvent;
|
|
3787
|
+
/** Drag pointer re-entered a host's bounds after being outside. */
|
|
3788
|
+
'dock-panel-drag-in': DockDragBoundaryEvent;
|
|
3789
|
+
}
|
|
3790
|
+
declare class DockHostElement extends LitElement {
|
|
3791
|
+
/** Initial layout as `DockLayout` JSON. Absent ⇒ all pooled panels go into one root stack. */
|
|
3792
|
+
layout: string | null;
|
|
3793
|
+
/**
|
|
3794
|
+
* Space-separated drop operations this host allows: `tabs`, `horizontal`,
|
|
3795
|
+
* `vertical`, and convenience `all`. `""` / `none` ⇒ nothing may be dropped.
|
|
3796
|
+
*/
|
|
3797
|
+
accepts: string;
|
|
3798
|
+
/** Finest-grained veto, consulted per candidate zone. */
|
|
3799
|
+
canAccept: ((panelId: string, op: DockOperation) => boolean) | undefined;
|
|
3800
|
+
private _model;
|
|
3801
|
+
private _pool;
|
|
3802
|
+
private _dropZone;
|
|
3803
|
+
private _dragActive;
|
|
3804
|
+
private _junctions;
|
|
3805
|
+
/** panelId → toolbar nodes currently moved out into a tab item. */
|
|
3806
|
+
private _toolbarsOut;
|
|
3807
|
+
/**
|
|
3808
|
+
* Placement policy per named leaf: `{ allow, deny }` kind sets.
|
|
3809
|
+
* Host-level only — never serialized into the layout, but kept across
|
|
3810
|
+
* `loadLayout()` calls. Existing panels are grandfathered; rules govern
|
|
3811
|
+
* future placements (drags, `addPanel`, re-homing).
|
|
3812
|
+
*/
|
|
3813
|
+
private _leafContentRules;
|
|
3814
|
+
private _tabDragPending;
|
|
3815
|
+
private _junctionsKey;
|
|
3816
|
+
private _junctionsRaf;
|
|
3817
|
+
private _hostResizeObserver;
|
|
3818
|
+
/** `toolbar-<name>` slot names currently provided as light-DOM children. */
|
|
3819
|
+
private _toolbarSlots;
|
|
3820
|
+
private _toolbarObserver;
|
|
3821
|
+
connectedCallback(): void;
|
|
3822
|
+
disconnectedCallback(): void;
|
|
3823
|
+
private _onDragStart;
|
|
3824
|
+
willUpdate(changed: Map<string, unknown>): void;
|
|
3825
|
+
updated(changed: Map<string, unknown>): void;
|
|
3826
|
+
private _buildInitialModel;
|
|
3827
|
+
/** Ensure every pooled panel element appears in the model (appended to the first stack). */
|
|
3828
|
+
private _mergePoolIntoModel;
|
|
3829
|
+
private _scanPanels;
|
|
3830
|
+
/** Refresh the set of provided `toolbar-<name>` slots; re-render on change. */
|
|
3831
|
+
private _scanToolbarSlots;
|
|
3832
|
+
private _findPanelEl;
|
|
3833
|
+
private _firstStack;
|
|
3834
|
+
private _appendPanelToFirstStack;
|
|
3835
|
+
/** Normalized content kind of a panel (`'any'` when unknown/unset). */
|
|
3836
|
+
private _panelKind;
|
|
3837
|
+
/** Whether `kind` may live in `stack` under the current leaf rules. */
|
|
3838
|
+
private _stackAllowsKind;
|
|
3839
|
+
/** First stack (tree order) whose rules admit `kind`, else the first stack. */
|
|
3840
|
+
private _firstStackAllowing;
|
|
3841
|
+
private _onPoolSlotChange;
|
|
3842
|
+
private _syncPool;
|
|
3843
|
+
/** Serialize the current layout, folding live split weights from the DOM. */
|
|
3844
|
+
saveLayout(): DockLayout;
|
|
3845
|
+
loadLayout(layout: DockLayout): void;
|
|
3846
|
+
/**
|
|
3847
|
+
* Dock a panel. Returns false (without touching the DOM) when the
|
|
3848
|
+
* explicitly targeted container denies the panel's `kind`.
|
|
3849
|
+
*/
|
|
3850
|
+
addPanel(panel: DockPanelElement | DockPanelInit, target?: DockAddPanelTarget): boolean;
|
|
3851
|
+
/** Whether the stack at `stackPath` admits `kind` under the leaf rules. */
|
|
3852
|
+
private _stackAllowsKindAt;
|
|
3853
|
+
removePanel(panelId: string): boolean;
|
|
3854
|
+
activatePanel(panelId: string): boolean;
|
|
3855
|
+
getPanelIds(): string[];
|
|
3856
|
+
/** Names of every named stack leaf, in tree order. */
|
|
3857
|
+
getContainerNames(): string[];
|
|
3858
|
+
/**
|
|
3859
|
+
* Snapshot of a named container (`{ name, panels, active }`), or null when
|
|
3860
|
+
* no stack carries that name. First match wins when duplicated.
|
|
3861
|
+
*/
|
|
3862
|
+
getContainer(name: string): {
|
|
3863
|
+
name: string;
|
|
3864
|
+
panels: string[];
|
|
3865
|
+
active: string;
|
|
3866
|
+
} | null;
|
|
3867
|
+
/** Panel-ids in a named container, in tab order (`[]` when unknown/empty). */
|
|
3868
|
+
getContainerPanels(name: string): string[];
|
|
3869
|
+
/** Panel elements in a named container, in tab order — for iterating children. */
|
|
3870
|
+
getContainerElements(name: string): DockPanelElement[];
|
|
3871
|
+
/**
|
|
3872
|
+
* Restrict a named container to only the given panel kinds — e.g.
|
|
3873
|
+
* `setLeafExclusiveContents('editor', ['document'])`. `tabs` drops,
|
|
3874
|
+
* `addPanel`, and re-homing into the leaf then refuse other kinds, while
|
|
3875
|
+
* edge splits beside the leaf stay allowed (they create a new leaf).
|
|
3876
|
+
* Pass `[]` to seal the leaf (nothing admitted). Warns when no stack
|
|
3877
|
+
* currently carries `name`, but the rule is still stored and applies once
|
|
3878
|
+
* one appears. Rules are host policy: kept across `loadLayout()`, never
|
|
3879
|
+
* serialized.
|
|
3880
|
+
*/
|
|
3881
|
+
setLeafExclusiveContents(name: string, kinds: readonly string[]): void;
|
|
3882
|
+
/**
|
|
3883
|
+
* Forbid the given panel kinds in a named container — e.g.
|
|
3884
|
+
* `setLeafDenyContents('footer', ['files', 'document'])`. Everything else
|
|
3885
|
+
* stays admitted. Pass `[]` to lift the denial. See
|
|
3886
|
+
* {@link setLeafExclusiveContents} for scope/ordering notes.
|
|
3887
|
+
*/
|
|
3888
|
+
setLeafDenyContents(name: string, kinds: readonly string[]): void;
|
|
3889
|
+
/** Remove every content rule for a named container. */
|
|
3890
|
+
clearLeafContentRestrictions(name: string): void;
|
|
3891
|
+
/** Copy of a container's rules, or null when unrestricted. */
|
|
3892
|
+
getLeafContentRestrictions(name: string): DockLeafContentRules | null;
|
|
3893
|
+
/**
|
|
3894
|
+
* Geometric neighbours of a leaf (`name` or numeric `path`) — what sits
|
|
3895
|
+
* above / below / left / right of it on screen. Each entry is
|
|
3896
|
+
* `{ name, path }` (`name` is null for unnamed leaves), ordered
|
|
3897
|
+
* most-overlapping first. Returns null when the leaf is unknown.
|
|
3898
|
+
*/
|
|
3899
|
+
getNeighbours(leaf: DockLeafRef): DockNeighbours | null;
|
|
3900
|
+
/**
|
|
3901
|
+
* Move a leaf one position in `direction`, swapping with the neighbour it
|
|
3902
|
+
* shares the longest edge with (both keep the remaining structure intact).
|
|
3903
|
+
* Returns false when the leaf is unknown or nothing adjoins that way.
|
|
3904
|
+
*/
|
|
3905
|
+
moveLeaf(leaf: DockLeafRef, direction: DockDirection): boolean;
|
|
3906
|
+
/**
|
|
3907
|
+
* Move a leaf to an edge of the overall layout (e.g. toggle a sidebar from
|
|
3908
|
+
* `left` to `right`). The rest of the layout stays intact as a single
|
|
3909
|
+
* subtree and the leaf keeps its absolute size along the target axis.
|
|
3910
|
+
* Returns false when the leaf is unknown or the layout holds one leaf.
|
|
3911
|
+
*/
|
|
3912
|
+
moveLeafToEdge(leaf: DockLeafRef, edge: DockEdge): boolean;
|
|
3913
|
+
/**
|
|
3914
|
+
* Capture a structured-clone-safe {@link DockPanelSnapshot} of a panel
|
|
3915
|
+
* (identity, chrome attributes, and a best-effort `innerHTML`). Returns
|
|
3916
|
+
* null when no such panel element is known to this host.
|
|
3917
|
+
*/
|
|
3918
|
+
getPanelSnapshot(panelId: string): DockPanelSnapshot | null;
|
|
3919
|
+
/**
|
|
3920
|
+
* {@link getPanelSnapshot} + {@link removePanel} in one step: take the
|
|
3921
|
+
* snapshot, then drop the panel (and its element) from this host. Call this
|
|
3922
|
+
* from a `dock-panel-tear-out` handler once the receiving window has
|
|
3923
|
+
* recreated the panel.
|
|
3924
|
+
*/
|
|
3925
|
+
detachPanel(panelId: string): DockPanelSnapshot | null;
|
|
3926
|
+
/**
|
|
3927
|
+
* Hit-test viewport coordinates against this host and return a plain,
|
|
3928
|
+
* serializable {@link DockDropTarget} (no element references) — or null when
|
|
3929
|
+
* the point is outside the host or the resulting zone is disallowed by
|
|
3930
|
+
* `accepts` / `canAccept`. Pure query: no model mutation, no overlay.
|
|
3931
|
+
*
|
|
3932
|
+
* `panelId` is passed to `canAccept`; use any stable id for an external
|
|
3933
|
+
* panel (defaults to `"__external__"`). `kind` covers leaf content rules
|
|
3934
|
+
* for panels unknown to this host (defaults to `'any'`).
|
|
3935
|
+
*/
|
|
3936
|
+
queryDropTarget(clientX: number, clientY: number, panelId?: string, kind?: string): DockDropTarget | null;
|
|
3937
|
+
/**
|
|
3938
|
+
* Like {@link queryDropTarget}, but also shows the drop overlay so an
|
|
3939
|
+
* external (cross-window) drag gets the same visual feedback as an in-page
|
|
3940
|
+
* one. Call on every pointer update from the outer coordinator, then
|
|
3941
|
+
* {@link endExternalDrop} when the drag leaves or ends.
|
|
3942
|
+
*/
|
|
3943
|
+
previewExternalDrop(clientX: number, clientY: number, panelId?: string, kind?: string): DockDropTarget | null;
|
|
3944
|
+
/** Clear any overlay left by {@link previewExternalDrop}. */
|
|
3945
|
+
endExternalDrop(): void;
|
|
3946
|
+
/**
|
|
3947
|
+
* Recreate a panel from a {@link DockPanelSnapshot} (or a bare
|
|
3948
|
+
* {@link DockPanelInit}) and dock it. With `at` viewport coordinates the
|
|
3949
|
+
* panel lands where a drop there would put it (respecting `accepts` /
|
|
3950
|
+
* `canAccept` and leaf content rules); without them, or when the point
|
|
3951
|
+
* misses the host, it goes into the first stack admitting its kind.
|
|
3952
|
+
* Returns the created element, or null when a panel
|
|
3953
|
+
* with that id is already docked here.
|
|
3954
|
+
*/
|
|
3955
|
+
acceptExternalPanel(snapshot: DockPanelSnapshot | DockPanelInit, at?: {
|
|
3956
|
+
clientX: number;
|
|
3957
|
+
clientY: number;
|
|
3958
|
+
}): DockPanelElement | null;
|
|
3959
|
+
/**
|
|
3960
|
+
* Hit-test a pointer position against this host's leaves and edges. Returns
|
|
3961
|
+
* a zone with rects relative to the host, or null when the pointer is
|
|
3962
|
+
* outside the host or the candidate zone is disallowed.
|
|
3963
|
+
*/
|
|
3964
|
+
computeDropZone(clientX: number, clientY: number, panelId: string, kind?: string): DockDropZone | null;
|
|
3965
|
+
private _zoneAllowed;
|
|
3966
|
+
/**
|
|
3967
|
+
* Apply a drop. `sourceHost` differs from `this` when the drag crossed
|
|
3968
|
+
* hosts; the panel element is adopted into this host first.
|
|
3969
|
+
*/
|
|
3970
|
+
handleDrop(panelId: string, zone: DockDropZone, sourceHost?: DockHostElement): void;
|
|
3971
|
+
/**
|
|
3972
|
+
* Move `panelId` (already present somewhere in the model) to the position
|
|
3973
|
+
* described by `zone`. Shared by in-page drops and external panel adoption.
|
|
3974
|
+
*/
|
|
3975
|
+
private _applyZone;
|
|
3976
|
+
/**
|
|
3977
|
+
* Move a panel element out of this host into `target`, dropping it from
|
|
3978
|
+
* this host's model. Used for cross-host drags.
|
|
3979
|
+
*/
|
|
3980
|
+
releasePanel(panelId: string, target: DockHostElement): void;
|
|
3981
|
+
/** Adopt a panel element from another host (the one sanctioned reparent). */
|
|
3982
|
+
adoptPanelElement(el: DockPanelElement): void;
|
|
3983
|
+
setDragActive(active: boolean): void;
|
|
3984
|
+
setDropZone(zone: DockDropZone | null): void;
|
|
3985
|
+
private _scheduleJunctions;
|
|
3986
|
+
/**
|
|
3987
|
+
* Find points where a parent split's gutter line meets a nested split's
|
|
3988
|
+
* gutter (T and + crossings). Each junction handle starts both gutter drags
|
|
3989
|
+
* at once, like a corner resize in VS Code.
|
|
3990
|
+
*/
|
|
3991
|
+
private _computeJunctions;
|
|
3992
|
+
private _onJunctionPointerDown;
|
|
3993
|
+
/** Fold live weights from each rendered `ixfx-split-layout` into the model. */
|
|
3994
|
+
private _foldLiveWeights;
|
|
3995
|
+
private _onSplitWeightsChanged;
|
|
3996
|
+
private _onSplitCollapsed;
|
|
3997
|
+
private _onSplitClose;
|
|
3998
|
+
private _onTabChange;
|
|
3999
|
+
private _onStripPointerDown;
|
|
4000
|
+
private _onTabDragMove;
|
|
4001
|
+
private _onTabDragUp;
|
|
4002
|
+
private _teardownTabDragListeners;
|
|
4003
|
+
/** After a dock drag from a tab/titlebar, swallow the trailing click so it cannot re-select or toggle. */
|
|
4004
|
+
private _suppressNextClick;
|
|
4005
|
+
private _removeFromModel;
|
|
4006
|
+
/** Normalize, re-render, and announce the structural change. */
|
|
4007
|
+
private _commit;
|
|
4008
|
+
private _syncSlots;
|
|
4009
|
+
/**
|
|
4010
|
+
* Per-panel toolbar routing: docked panels render content-only, so the
|
|
4011
|
+
* active panel's toolbar nodes live in its generated tab item (shown
|
|
4012
|
+
* right-aligned while active). Node moves preserve element state. Panels
|
|
4013
|
+
* outside the model keep their toolbar in their own (solo) chrome.
|
|
4014
|
+
*/
|
|
4015
|
+
private _syncToolbars;
|
|
4016
|
+
private _returnToolbar;
|
|
4017
|
+
private _returnAllToolbars;
|
|
4018
|
+
private _emitChange;
|
|
4019
|
+
protected render(): TemplateResult<1>;
|
|
4020
|
+
private _renderNode;
|
|
4021
|
+
private _renderSplit;
|
|
4022
|
+
private _renderLeaf;
|
|
4023
|
+
private _renderTabItem;
|
|
4024
|
+
private _stripCaretRect;
|
|
4025
|
+
static styles: CSSResult[];
|
|
4026
|
+
}
|
|
4027
|
+
declare global {
|
|
4028
|
+
interface HTMLElementTagNameMap {
|
|
4029
|
+
'ixfx-dock-host': DockHostElement;
|
|
4030
|
+
}
|
|
4031
|
+
}
|
|
4032
|
+
interface DockHostElement {
|
|
4033
|
+
addEventListener: (<K extends keyof DockHostElementEventMap>(type: K, listener: (this: DockHostElement, event: DockHostElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
4034
|
+
}
|
|
4035
|
+
//#endregion
|
|
4036
|
+
//#region src/dock/dock-drag.d.ts
|
|
4037
|
+
interface Rect$1 {
|
|
4038
|
+
readonly x: number;
|
|
4039
|
+
readonly y: number;
|
|
4040
|
+
readonly w: number;
|
|
4041
|
+
readonly h: number;
|
|
4042
|
+
}
|
|
4043
|
+
interface DockDropZone {
|
|
4044
|
+
/** Host whose model would receive the drop. */
|
|
4045
|
+
readonly host: DockHostElement;
|
|
4046
|
+
readonly operation: DockOperation;
|
|
4047
|
+
/** Path of the target stack (`[]` = the host root). */
|
|
4048
|
+
readonly targetPath: number[];
|
|
4049
|
+
readonly side: `before` | `after`;
|
|
4050
|
+
/** Insert position for `tabs` drops (panel index in the target stack). */
|
|
4051
|
+
readonly gapIndex?: number;
|
|
4052
|
+
/** Highlight rect, relative to the host. */
|
|
4053
|
+
readonly rect: Rect$1;
|
|
4054
|
+
/** Optional insertion caret for strip gaps, relative to the host. */
|
|
4055
|
+
readonly caretRect?: Rect$1;
|
|
4056
|
+
}
|
|
4057
|
+
/** True when the point lies within the bounding box of any registered host. */
|
|
4058
|
+
declare function pointerOverAnyHost(clientX: number, clientY: number): boolean;
|
|
4059
|
+
declare function isDragging(): boolean;
|
|
4060
|
+
declare function getActiveDragPanelId(): string | null;
|
|
4061
|
+
//#endregion
|
|
4062
|
+
//#region src/dock/dock-model.d.ts
|
|
4063
|
+
/**
|
|
4064
|
+
* The dock model is a plain mutable tree owned exclusively by the host
|
|
4065
|
+
* element. Mutators below change the tree in place; the host calls
|
|
4066
|
+
* `normalize(root)` then `requestUpdate()` after batching mutations.
|
|
4067
|
+
*/
|
|
4068
|
+
declare function isSplit(node: DockNode): node is DockSplitNode;
|
|
4069
|
+
declare function isStack(node: DockNode): node is DockStackNode;
|
|
4070
|
+
declare function createEmptyStack(): DockStackNode;
|
|
4071
|
+
declare function createEmptyLayout(): DockLayout;
|
|
4072
|
+
declare function createStack(panels: string[], active?: string, name?: string): DockStackNode;
|
|
4073
|
+
declare function createSplit(direction: DockAxis, children: DockNode[], sizes?: number[]): DockSplitNode;
|
|
4074
|
+
/**
|
|
4075
|
+
* Runs after every mutation:
|
|
4076
|
+
* - stack `active` fixed to a member of `panels` (or `''` when empty)
|
|
4077
|
+
* - empty *unnamed* stacks removed from their parent split (and their
|
|
4078
|
+
* `sizes` entry); named empty stacks are kept so the name stays addressable
|
|
4079
|
+
* - splits with ≤1 child replaced by that child (spliced into the parent)
|
|
4080
|
+
* - a child split whose direction equals its parent's is flattened into it,
|
|
4081
|
+
* spreading its sizes across the slot it vacated
|
|
4082
|
+
* - `sizes` kept parallel to `children` (padded with the mean weight)
|
|
4083
|
+
* - an empty root collapses to a single empty stack
|
|
4084
|
+
*/
|
|
4085
|
+
declare function normalize(root: DockNode): DockNode;
|
|
4086
|
+
declare function findNode(root: DockNode, path: number[]): DockNode | null;
|
|
4087
|
+
/** Parent split of the node at `path`; null when path is empty or malformed. */
|
|
4088
|
+
declare function findParentOf(root: DockNode, path: number[]): DockSplitNode | null;
|
|
4089
|
+
/** Path of the stack containing `panelId`, or null. */
|
|
4090
|
+
declare function findStackOf(root: DockNode, panelId: string): number[] | null;
|
|
4091
|
+
declare function collectPanelIds(root: DockNode): string[];
|
|
4092
|
+
/**
|
|
4093
|
+
* Path of the first stack (tree order) whose `name` matches, or null.
|
|
4094
|
+
* Names are expected to be unique per layout; duplicates resolve first-wins.
|
|
4095
|
+
*/
|
|
4096
|
+
declare function findStackPathByName(root: DockNode, name: string): number[] | null;
|
|
4097
|
+
/** Names of every named stack leaf, in tree order. */
|
|
4098
|
+
declare function collectContainerNames(root: DockNode): string[];
|
|
4099
|
+
/**
|
|
4100
|
+
* Paths of every stack leaf, in tree order. `[]` is the root itself when it
|
|
4101
|
+
* is a stack.
|
|
4102
|
+
*/
|
|
4103
|
+
declare function collectStackPaths(root: DockNode): number[][];
|
|
4104
|
+
declare function addPanelToStack(stack: DockStackNode, panelId: string, index?: number): void;
|
|
4105
|
+
declare function removePanelFromStack(stack: DockStackNode, panelId: string): void;
|
|
4106
|
+
declare function setActive(stack: DockStackNode, panelId: string): boolean;
|
|
4107
|
+
/**
|
|
4108
|
+
* Insert `node` beside the child at `targetPath`, into the parent split when
|
|
4109
|
+
* its direction matches `direction`, otherwise wrap the target in a new split.
|
|
4110
|
+
* `side` selects before/after; the neighbour's weight is split 50/50.
|
|
4111
|
+
* Returns the path of the inserted node, or null.
|
|
4112
|
+
*/
|
|
4113
|
+
declare function insertBeside(root: DockNode, targetPath: number[], direction: DockAxis, newNode: DockNode, side: `before` | `after`): number[] | null;
|
|
4114
|
+
/**
|
|
4115
|
+
* Wrap the whole root in a new split of `direction`, replacing it in place so
|
|
4116
|
+
* the caller's reference stays valid. Returns true on success.
|
|
4117
|
+
*/
|
|
4118
|
+
declare function wrapRoot(root: DockNode, direction: DockAxis, newNode: DockNode, side: `before` | `after`): boolean;
|
|
4119
|
+
/**
|
|
4120
|
+
* Remove the stack at `stackPath` from the tree. Its panels are moved into
|
|
4121
|
+
* `fallbackStack` (if given and still attached) so they are not silently
|
|
4122
|
+
* lost; otherwise they are dropped from the model (elements return to the
|
|
4123
|
+
* pool). Returns the removed stack.
|
|
4124
|
+
*/
|
|
4125
|
+
declare function extractStack(root: DockNode, stackPath: number[], fallbackStack?: DockStackNode): DockStackNode | null;
|
|
4126
|
+
interface DockRect {
|
|
4127
|
+
x: number;
|
|
4128
|
+
y: number;
|
|
4129
|
+
w: number;
|
|
4130
|
+
h: number;
|
|
4131
|
+
}
|
|
4132
|
+
interface LeafGeom {
|
|
4133
|
+
path: number[];
|
|
4134
|
+
name: string | null;
|
|
4135
|
+
rect: DockRect;
|
|
4136
|
+
}
|
|
4137
|
+
/**
|
|
4138
|
+
* Resolve a {@link DockLeafRef} to a stack path. Strings match container
|
|
4139
|
+
* `name` first-wins; arrays must index an existing stack leaf. Returns null
|
|
4140
|
+
* when unresolvable.
|
|
4141
|
+
*/
|
|
4142
|
+
declare function resolveLeafPath(root: DockNode, ref: DockLeafRef): number[] | null;
|
|
4143
|
+
/** Absolute (unit-square) rect of every stack leaf, in tree order. */
|
|
4144
|
+
declare function computeLeafGeoms(root: DockNode): LeafGeom[];
|
|
4145
|
+
/**
|
|
4146
|
+
* Geometric neighbours of a leaf — what the user sees above / below / left /
|
|
4147
|
+
* right of it. Each list holds `{ name, path }` (name is null for unnamed
|
|
4148
|
+
* leaves), ordered most-overlapping first. Returns null when `ref` is
|
|
4149
|
+
* unresolvable.
|
|
4150
|
+
*/
|
|
4151
|
+
declare function getLeafNeighbours(root: DockNode, ref: DockLeafRef): DockNeighbours | null;
|
|
4152
|
+
/**
|
|
4153
|
+
* Exchange two leaves' positions in the tree, each carrying its size slot so
|
|
4154
|
+
* the remaining structure and proportions are untouched. Returns false when
|
|
4155
|
+
* either path is not a stack leaf.
|
|
4156
|
+
*/
|
|
4157
|
+
declare function swapLeaves(root: DockNode, pathA: number[], pathB: number[]): boolean;
|
|
4158
|
+
/**
|
|
4159
|
+
* Move a leaf one position in `direction`, swapping with the neighbour it
|
|
4160
|
+
* shares the longest edge with. Returns false when `ref` is unresolvable or
|
|
4161
|
+
* nothing adjoins in that direction. Run `normalize()` afterwards.
|
|
4162
|
+
*/
|
|
4163
|
+
declare function moveLeafStep(root: DockNode, ref: DockLeafRef, direction: DockDirection): boolean;
|
|
4164
|
+
/**
|
|
4165
|
+
* Move a leaf to an edge of the overall layout, keeping the rest of the
|
|
4166
|
+
* tree intact as a single subtree and preserving the leaf's absolute size
|
|
4167
|
+
* along the target axis. Returns false when `ref` is unresolvable or the
|
|
4168
|
+
* layout holds a single leaf. Run `normalize()` afterwards (also safe to
|
|
4169
|
+
* call it twice — the host's commit does).
|
|
4170
|
+
*/
|
|
4171
|
+
declare function moveLeafNodeToEdge(root: DockNode, ref: DockLeafRef, edge: DockEdge): boolean;
|
|
4172
|
+
declare function serializeLayout(root: DockNode): DockLayout;
|
|
4173
|
+
/**
|
|
4174
|
+
* Parse layout JSON, validate loosely, and normalize. Returns null when the
|
|
4175
|
+
* JSON is malformed or the root is missing/invalid.
|
|
4176
|
+
*/
|
|
4177
|
+
declare function parseLayout(json: string): DockLayout | null;
|
|
4178
|
+
//#endregion
|
|
4179
|
+
//#region src/editable-label/editable-label.d.ts
|
|
4180
|
+
type EditableMode = `label` | `editor`;
|
|
4181
|
+
type EntryMode = `free` | `text` | `number` | `percent`;
|
|
4182
|
+
type DisplayTextLogic = `hidden` | `show` | `override` | `transient`;
|
|
4183
|
+
type EditableLabelChangeDetail = {
|
|
4184
|
+
readonly value: string;
|
|
4185
|
+
};
|
|
4186
|
+
type EditableLabelChangeEvent = CustomEvent<EditableLabelChangeDetail>;
|
|
4187
|
+
declare class EditableLabel extends LitElement {
|
|
4188
|
+
mode: EditableMode;
|
|
4189
|
+
entryMode: EntryMode;
|
|
4190
|
+
value: string;
|
|
4191
|
+
disabled: boolean;
|
|
4192
|
+
placeholder: string;
|
|
4193
|
+
/** Override displayed text. Bypasses formatter and value. When editing, shows raw value. */
|
|
4194
|
+
displayText?: string;
|
|
4195
|
+
/**
|
|
4196
|
+
* Controls when displayText is shown:
|
|
4197
|
+
* - 'hidden' (default): never use displayText
|
|
4198
|
+
* - 'show': show displayText instead of formatted value, but hide while editing; revert after disappearDelay
|
|
4199
|
+
* - 'override': always show displayText, even when editing
|
|
4200
|
+
* - 'transient': show displayText by default, switch to formatted value after appearDelay on hover/interaction; revert after disappearDelay
|
|
4201
|
+
*/
|
|
4202
|
+
displayTextLogic: DisplayTextLogic;
|
|
4203
|
+
/** Delay before showing value in transient mode (ms). Default: 50 */
|
|
4204
|
+
appearDelay: number;
|
|
4205
|
+
/** Delay before reverting to displayText after editing ends (ms). Default: 1000 */
|
|
4206
|
+
disappearDelay: number;
|
|
4207
|
+
/** Override commit validation. Return true to accept, false to reject (reverts). */
|
|
4208
|
+
validator?: (value: string) => boolean;
|
|
4209
|
+
/** Transform the committed value for display. Does not affect the stored value. */
|
|
4210
|
+
formatter?: (value: string) => string;
|
|
4211
|
+
protected _editing: boolean;
|
|
4212
|
+
protected get _contentEl(): HTMLElement | undefined;
|
|
4213
|
+
/** Snapshot of value taken when editing begins; restored on cancel. */
|
|
4214
|
+
protected _prevValue: string;
|
|
4215
|
+
connectedCallback(): void;
|
|
4216
|
+
disconnectedCallback(): void;
|
|
4217
|
+
protected _hovering: boolean;
|
|
4218
|
+
protected _transientShowingValue: boolean;
|
|
4219
|
+
protected _transientTimer: number | undefined;
|
|
4220
|
+
protected _showModeWaitingToHide: boolean;
|
|
4221
|
+
protected _clearTransientTimer(): void;
|
|
4222
|
+
private _onMouseEnter;
|
|
4223
|
+
private _onMouseLeave;
|
|
4224
|
+
protected _startTransientRevertTimer(): void;
|
|
4225
|
+
protected _requestDisplayUpdate(): void;
|
|
4226
|
+
/** Called by subclasses when user interacts (drag, keyboard, etc) to temporarily show value in transient mode */
|
|
4227
|
+
protected _onUserInteraction(): void;
|
|
4228
|
+
protected _handleClick: () => void;
|
|
4229
|
+
protected _handleFocus: () => void;
|
|
4230
|
+
protected _handleBlur: () => void;
|
|
4231
|
+
protected _handleKeydown: (e: KeyboardEvent) => void;
|
|
4232
|
+
protected _handleBeforeInput: (e: InputEvent) => void;
|
|
4233
|
+
protected _handleInput: () => void;
|
|
4234
|
+
protected _beginEdit(): void;
|
|
4235
|
+
protected _tryCommit(): void;
|
|
4236
|
+
protected _cancelEdit(): void;
|
|
4237
|
+
protected _getDisplayText(): string;
|
|
4238
|
+
protected _shouldUseDisplayText(): boolean;
|
|
4239
|
+
protected _isAllowedInput(char: string): boolean;
|
|
4240
|
+
private _defaultValidator;
|
|
4241
|
+
render(): TemplateResult<1>;
|
|
4242
|
+
updated(changed: PropertyValues): void;
|
|
4243
|
+
static styles: CSSResult[];
|
|
4244
|
+
}
|
|
4245
|
+
declare global {
|
|
4246
|
+
interface HTMLElementTagNameMap {
|
|
4247
|
+
'ixfx-editable-label': EditableLabel;
|
|
4248
|
+
}
|
|
4249
|
+
}
|
|
4250
|
+
//#endregion
|
|
4251
|
+
//#region src/mixins/wheel-nudge.d.ts
|
|
4252
|
+
/**
|
|
4253
|
+
* Direction of a wheel tick. `+1` for `deltaY < 0` (wheel up/away), `-1` for
|
|
4254
|
+
* `deltaY > 0` (wheel down/toward).
|
|
4255
|
+
*/
|
|
4256
|
+
type WheelDirection = 1 | -1;
|
|
4257
|
+
/**
|
|
4258
|
+
* Abstract surface a consumer of {@link WheelNudgeMixin} must implement.
|
|
4259
|
+
*
|
|
4260
|
+
* `_applyWheelDelta` is called once per handled wheel tick. The consumer is
|
|
4261
|
+
* expected to reuse its existing arrow-key step math (typically a shared
|
|
4262
|
+
* `_stepByDelta(direction, effectiveStep)` private method) and call it here.
|
|
4263
|
+
*
|
|
4264
|
+
* `_shouldHandleWheel` may be overridden to restrict when the wheel acts
|
|
4265
|
+
* (e.g. editable-number rejects while the user is typing).
|
|
4266
|
+
*/
|
|
4267
|
+
interface WheelNudgeConsumer {
|
|
4268
|
+
_applyWheelDelta: (direction: WheelDirection, event: WheelEvent) => void;
|
|
4269
|
+
_shouldHandleWheel: () => boolean;
|
|
4270
|
+
}
|
|
4271
|
+
/**
|
|
4272
|
+
* Internal: the surface a {@link WheelNudgeMixin}-decorated class exposes to
|
|
4273
|
+
* TypeScript — its own members plus the consumer contract.
|
|
4274
|
+
*/
|
|
4275
|
+
type WheelNudgeConsumerType<TBase> = TBase & WheelNudgeConsumer;
|
|
4276
|
+
//#endregion
|
|
4277
|
+
//#region src/editable-label/editable-number.d.ts
|
|
4278
|
+
declare const EditableNumber_base: (new (...args: any[]) => WheelNudgeConsumerType<EditableLabel>) & typeof EditableLabel;
|
|
4279
|
+
declare class EditableNumber extends EditableNumber_base {
|
|
4280
|
+
#private;
|
|
4281
|
+
min?: number;
|
|
4282
|
+
max?: number;
|
|
4283
|
+
step?: number;
|
|
4284
|
+
/** Quantised stops for keyboard nudging. Overrides `step` when > 1. */
|
|
4285
|
+
stops?: number;
|
|
4286
|
+
dragSensitivity: number;
|
|
4287
|
+
fillStyle?: `linear` | `circular`;
|
|
4288
|
+
linearStyle?: `range` | `bipolar` | `unipolar`;
|
|
4289
|
+
circularStyle?: `grow` | `offset` | `dot`;
|
|
4290
|
+
noDrag: boolean;
|
|
4291
|
+
precision: number;
|
|
4292
|
+
constructor();
|
|
4293
|
+
render(): TemplateResult<1>;
|
|
4294
|
+
private _stopNativeInput;
|
|
4295
|
+
connectedCallback(): void;
|
|
4296
|
+
disconnectedCallback(): void;
|
|
4297
|
+
private _handleMouseEnter;
|
|
4298
|
+
private _handleMouseLeave;
|
|
4299
|
+
/** Click just focuses; edit mode is entered by pressing a key while focused. */
|
|
4300
|
+
protected _handleClick: () => void;
|
|
4301
|
+
/** Suppress auto-edit-on-focus from editor mode; keydown handles it instead. */
|
|
4302
|
+
protected _handleFocus: () => void;
|
|
4303
|
+
/** Override to use .number instead of .content for text display */
|
|
4304
|
+
protected get _contentEl(): HTMLElement | undefined;
|
|
4305
|
+
firstUpdated(changedProperties: Map<string, unknown>): void;
|
|
4306
|
+
protected _onUserInteraction(): void;
|
|
4307
|
+
private _onValueChange;
|
|
4308
|
+
updated(changedProperties: Map<string, unknown>): void;
|
|
4309
|
+
private _updateValueCss;
|
|
4310
|
+
protected _getDisplayText(): string;
|
|
4311
|
+
protected _tryCommit(): void;
|
|
4312
|
+
protected _handleBeforeInput: (e: InputEvent) => void;
|
|
4313
|
+
protected _handleKeydown: (e: KeyboardEvent) => void;
|
|
4314
|
+
private _onKeyDown;
|
|
4315
|
+
private _handleArrowKey;
|
|
4316
|
+
/**
|
|
4317
|
+
* Apply a signed delta to the current value, clamp/snap/format, and fire
|
|
4318
|
+
* `input`/`change`. Shared between arrow-key handler and the wheel handler.
|
|
4319
|
+
*/
|
|
4320
|
+
private _applyDelta;
|
|
4321
|
+
_shouldHandleWheel(): boolean;
|
|
4322
|
+
_applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
|
|
4323
|
+
private _onPointerDown;
|
|
4324
|
+
private _onPointerMove;
|
|
4325
|
+
private _onPointerUp;
|
|
4326
|
+
private _interceptClick;
|
|
4327
|
+
private _parseValue;
|
|
4328
|
+
/**
|
|
4329
|
+
* Formats the stored value for display, inferring decimal places from the value
|
|
4330
|
+
* string itself. This preserves typed precision (e.g. "0.1234" stays "0.1234")
|
|
4331
|
+
* and also respects trailing zeros written by drag storage (e.g. "5.0" stays "5.0").
|
|
4332
|
+
*/
|
|
4333
|
+
private _formatDisplay;
|
|
4334
|
+
private _clamp;
|
|
4335
|
+
private _snap;
|
|
4336
|
+
private _inferDecimals;
|
|
4337
|
+
private _formatNumber;
|
|
4338
|
+
/** Returns a 0..1 fraction for the given value within [min, max]. */
|
|
4339
|
+
private _normalizedValue;
|
|
4340
|
+
static styles: CSSResult[];
|
|
4341
|
+
}
|
|
4342
|
+
declare global {
|
|
4343
|
+
interface HTMLElementTagNameMap {
|
|
4344
|
+
'ixfx-editable-number': EditableNumber;
|
|
4345
|
+
}
|
|
4346
|
+
}
|
|
4347
|
+
//#endregion
|
|
4348
|
+
//#region src/form/form-group.d.ts
|
|
4349
|
+
declare class FormGroupElement extends LitElement {
|
|
4350
|
+
label: string;
|
|
4351
|
+
private _fieldset?;
|
|
4352
|
+
private _observer?;
|
|
4353
|
+
protected createRenderRoot(): this;
|
|
4354
|
+
connectedCallback(): void;
|
|
4355
|
+
firstUpdated(): void;
|
|
4356
|
+
disconnectedCallback(): void;
|
|
4357
|
+
private _moveChildren;
|
|
4358
|
+
protected render(): TemplateResult<1>;
|
|
4359
|
+
}
|
|
4360
|
+
declare global {
|
|
4361
|
+
interface HTMLElementTagNameMap {
|
|
4362
|
+
'ixfx-form-group': FormGroupElement;
|
|
4363
|
+
}
|
|
4364
|
+
}
|
|
4365
|
+
//#endregion
|
|
4366
|
+
//#region src/form/form-part.d.ts
|
|
4367
|
+
declare class FormPartElement extends LitElement {
|
|
4368
|
+
label: string;
|
|
4369
|
+
private _id?;
|
|
4370
|
+
protected createRenderRoot(): this;
|
|
4371
|
+
connectedCallback(): void;
|
|
4372
|
+
private _ensureId;
|
|
4373
|
+
protected render(): TemplateResult<1>;
|
|
4374
|
+
}
|
|
4375
|
+
declare global {
|
|
4376
|
+
interface HTMLElementTagNameMap {
|
|
4377
|
+
"ixfx-form-part": FormPartElement;
|
|
4378
|
+
}
|
|
4379
|
+
}
|
|
4380
|
+
//#endregion
|
|
4381
|
+
//#region src/form/form.d.ts
|
|
4382
|
+
declare class FormElement extends LitElement {
|
|
4383
|
+
protected createRenderRoot(): this;
|
|
4384
|
+
getValues(): Record<string, unknown>;
|
|
4385
|
+
setValues(data: Record<string, unknown>): void;
|
|
4386
|
+
}
|
|
4387
|
+
declare global {
|
|
4388
|
+
interface HTMLElementTagNameMap {
|
|
4389
|
+
'ixfx-form': FormElement;
|
|
4390
|
+
}
|
|
4391
|
+
}
|
|
4392
|
+
//#endregion
|
|
4393
|
+
//#region src/grouped-item-lister/types.d.ts
|
|
4394
|
+
/**
|
|
4395
|
+
* Fired when the selection set changes by any means.
|
|
4396
|
+
* Event name: `select`
|
|
4397
|
+
*/
|
|
4398
|
+
type SubComponentSelectDetail<T> = {
|
|
4399
|
+
readonly selected: ReadonlySet<T>;
|
|
4400
|
+
readonly previous: ReadonlySet<T>;
|
|
4401
|
+
};
|
|
4402
|
+
/**
|
|
4403
|
+
* Fired when an item is explicitly activated (double-click or Enter key).
|
|
4404
|
+
* Event name: `activate`
|
|
4405
|
+
*/
|
|
4406
|
+
type SubComponentActivateDetail<T> = {
|
|
4407
|
+
readonly item: T;
|
|
4408
|
+
};
|
|
4409
|
+
/**
|
|
4410
|
+
* Fired on a raw pointer click before any selection change.
|
|
4411
|
+
* Event name: `item-click`
|
|
4412
|
+
*/
|
|
4413
|
+
type SubComponentItemClickDetail<T> = {
|
|
4414
|
+
readonly item: T;
|
|
4415
|
+
};
|
|
4416
|
+
/**
|
|
4417
|
+
* Fired when the pointer hovers over an item or the keyboard cursor moves to it.
|
|
4418
|
+
* Event name: `tickle`
|
|
4419
|
+
*/
|
|
4420
|
+
type SubComponentTickleDetail<T> = {
|
|
4421
|
+
readonly item: T;
|
|
4422
|
+
};
|
|
4423
|
+
type SubComponentSelectEvent<T> = CustomEvent<SubComponentSelectDetail<T>>;
|
|
4424
|
+
type SubComponentActivateEvent<T> = CustomEvent<SubComponentActivateDetail<T>>;
|
|
4425
|
+
type SubComponentItemClickEvent<T> = CustomEvent<SubComponentItemClickDetail<T>>;
|
|
4426
|
+
type SubComponentTickleEvent<T> = CustomEvent<SubComponentTickleDetail<T>>;
|
|
4427
|
+
interface IGroupedSubComponentEventMap<T> {
|
|
4428
|
+
'select': SubComponentSelectEvent<T>;
|
|
4429
|
+
'activate': SubComponentActivateEvent<T>;
|
|
3227
4430
|
'item-click': SubComponentItemClickEvent<T>;
|
|
3228
4431
|
'tickle': SubComponentTickleEvent<T>;
|
|
3229
4432
|
}
|
|
@@ -3269,14 +4472,13 @@ interface GroupedItemListerElementEventMap<T> {
|
|
|
3269
4472
|
}
|
|
3270
4473
|
//#endregion
|
|
3271
4474
|
//#region src/panel/panel.d.ts
|
|
3272
|
-
|
|
3273
|
-
type
|
|
3274
|
-
type
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
type
|
|
3279
|
-
type PanelCloseEvent = CustomEvent<void>;
|
|
4475
|
+
/** Backwards-compatible aliases: canonical types now live in `../titlebar/titlebar.js`. */
|
|
4476
|
+
type PanelOrientation = TitlebarOrientation;
|
|
4477
|
+
type PanelVariant = TitlebarVariant;
|
|
4478
|
+
type PanelToggleInteraction = TitlebarToggleInteraction;
|
|
4479
|
+
type PanelToggleDetail = TitlebarToggleDetail;
|
|
4480
|
+
type PanelToggleEvent = TitlebarToggleEvent;
|
|
4481
|
+
type PanelCloseEvent = TitlebarCloseEvent;
|
|
3280
4482
|
interface PanelElementEventMap {
|
|
3281
4483
|
toggle: PanelToggleEvent;
|
|
3282
4484
|
close: PanelCloseEvent;
|
|
@@ -3285,15 +4487,16 @@ declare class PanelElement extends LitElement {
|
|
|
3285
4487
|
collapsed: boolean;
|
|
3286
4488
|
orientation: PanelOrientation;
|
|
3287
4489
|
closable: boolean;
|
|
4490
|
+
/** Show the collapse/expand caret and enable toggle behaviour. Defaults to true so existing panels stay collapsible. */
|
|
4491
|
+
collapsible: boolean;
|
|
3288
4492
|
title: string;
|
|
3289
4493
|
iconName: string;
|
|
3290
4494
|
toggleInteraction: PanelToggleInteraction;
|
|
3291
4495
|
variant: PanelVariant;
|
|
3292
|
-
|
|
3293
|
-
|
|
4496
|
+
/** Suppress the titlebar entirely (content-only chrome, e.g. dock tabbed mode). */
|
|
4497
|
+
hideTitlebar: boolean;
|
|
4498
|
+
private _onTitlebarToggle;
|
|
3294
4499
|
private _onCloseClick;
|
|
3295
|
-
private _getCaretIcon;
|
|
3296
|
-
protected updated(changed: Map<string, unknown>): void;
|
|
3297
4500
|
protected render(): TemplateResult<1>;
|
|
3298
4501
|
static styles: CSSResult[];
|
|
3299
4502
|
}
|
|
@@ -3398,6 +4601,12 @@ type TickledControllerConfig<T> = {
|
|
|
3398
4601
|
* Optional initial input mode (defaults to 'mouse')
|
|
3399
4602
|
*/
|
|
3400
4603
|
initialInputMode?: InputMode;
|
|
4604
|
+
/**
|
|
4605
|
+
* Whether keyboard navigation wraps from last to first and vice versa.
|
|
4606
|
+
* - 'stop' (default): navigation stops at the boundary
|
|
4607
|
+
* - 'wrap': navigation wraps around
|
|
4608
|
+
*/
|
|
4609
|
+
itemWrap?: `stop` | `wrap`;
|
|
3401
4610
|
};
|
|
3402
4611
|
/**
|
|
3403
4612
|
* ReactiveController that manages "tickled" state for interactive lists.
|
|
@@ -3618,195 +4827,78 @@ declare class TreeListElement extends TreeBaseElement {
|
|
|
3618
4827
|
* </svg>`;
|
|
3619
4828
|
*/
|
|
3620
4829
|
checkboxRenderer: ((state: TreeCheckboxState) => unknown) | undefined;
|
|
3621
|
-
protected render(): TemplateResult<1>;
|
|
3622
|
-
protected renderNodeContent(node: TreeNode, depth: number): TemplateResult;
|
|
3623
|
-
protected _renderNode(node: TreeNode, depth: number): TemplateResult;
|
|
3624
|
-
static styles: CSSResult[];
|
|
3625
|
-
}
|
|
3626
|
-
declare global {
|
|
3627
|
-
interface HTMLElementTagNameMap {
|
|
3628
|
-
'ixfx-tree-list': TreeListElement;
|
|
3629
|
-
}
|
|
3630
|
-
}
|
|
3631
|
-
interface TreeListElement {
|
|
3632
|
-
addEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeListElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
3633
|
-
}
|
|
3634
|
-
//#endregion
|
|
3635
|
-
//#region src/grouped-item-lister/tree-list-adapter.d.ts
|
|
3636
|
-
type TreeListAdapterOptions<T> = {
|
|
3637
|
-
/**
|
|
3638
|
-
* Returns the direct children of an item to build the tree hierarchy.
|
|
3639
|
-
* Omit for flat item lists — all items become leaf nodes at the root level.
|
|
3640
|
-
*/
|
|
3641
|
-
getChildren?: (item: T) => readonly T[];
|
|
3642
|
-
/** Forwarded to the inner ixfx-tree-list. Default: `'standard'`. */
|
|
3643
|
-
interactionMode?: TreeInteractionMode;
|
|
3644
|
-
/**
|
|
3645
|
-
* Controls which node types are selectable.
|
|
3646
|
-
* Forwarded to the inner ixfx-tree-list. Default: `'all'`.
|
|
3647
|
-
*/
|
|
3648
|
-
selectionFilter?: TreeSelectionFilter;
|
|
3649
|
-
/**
|
|
3650
|
-
* Controls how expanding one node affects its siblings.
|
|
3651
|
-
* Forwarded to the inner ixfx-tree-list. Default: `'none'`.
|
|
3652
|
-
*/
|
|
3653
|
-
exclusivity?: TreeExclusivity;
|
|
3654
|
-
/**
|
|
3655
|
-
* Called when a command is dispatched via `ixfx-grouped-item-lister.dispatch()`.
|
|
3656
|
-
* Receives the inner `TreeBaseElement` (undefined until the first `setItems()` call)
|
|
3657
|
-
* so the handler can sort, filter, or otherwise manipulate the tree directly.
|
|
3658
|
-
*/
|
|
3659
|
-
onDispatch?: (commandId: CommandId, args: Record<string, unknown> | undefined, tree: TreeBaseElement | undefined) => void;
|
|
3660
|
-
};
|
|
3661
|
-
/**
|
|
3662
|
-
* Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
|
|
3663
|
-
* an `ixfx-tree-list` internally.
|
|
3664
|
-
*
|
|
3665
|
-
* `toTreeItem` converts each item `T` to display metadata (`key`, `label`, etc).
|
|
3666
|
-
* The adapter stores the original `T` in `TreeItem.data` and uses it to map
|
|
3667
|
-
* tree-node selections back to typed values.
|
|
3668
|
-
*
|
|
3669
|
-
* Unlike `createVerticalListAdapter`, items can be hierarchical: provide
|
|
3670
|
-
* `options.getChildren` to return each item's children and the adapter will
|
|
3671
|
-
* recursively build the `TreeNode` tree. Omit it for a flat list of leaf nodes.
|
|
3672
|
-
*
|
|
3673
|
-
* The four interface events (`select`, `activate`, `item-click`, `tickle`) are
|
|
3674
|
-
* intercepted at the tree level, re-typed from `TreeNode` → `T`, and re-dispatched
|
|
3675
|
-
* on the adapter element so `ixfx-grouped-item-lister` can identify the source.
|
|
3676
|
-
*
|
|
3677
|
-
* @example Flat item list:
|
|
3678
|
-
* ```ts
|
|
3679
|
-
* lister.factory = () =>
|
|
3680
|
-
* createTreeListAdapter<FileItem>(item => ({ key: item.id, label: item.name, isLeaf: true }));
|
|
3681
|
-
* ```
|
|
3682
|
-
*
|
|
3683
|
-
* @example Hierarchical items:
|
|
3684
|
-
* ```ts
|
|
3685
|
-
* lister.factory = () =>
|
|
3686
|
-
* createTreeListAdapter<Category>(
|
|
3687
|
-
* cat => ({ key: cat.id, label: cat.name }),
|
|
3688
|
-
* { getChildren: cat => cat.subCategories },
|
|
3689
|
-
* );
|
|
3690
|
-
* ```
|
|
3691
|
-
*/
|
|
3692
|
-
declare function createTreeListAdapter<T>(toTreeItem: (item: T) => Omit<TreeItem, `data`>, options?: TreeListAdapterOptions<T>): HTMLElement & IGroupedSubComponent<T>;
|
|
3693
|
-
//#endregion
|
|
3694
|
-
//#region src/vertical-list/vertical-list.d.ts
|
|
3695
|
-
interface CustomCheckboxOptions {
|
|
3696
|
-
renderer: (checked: boolean) => unknown;
|
|
3697
|
-
margin?: string;
|
|
3698
|
-
width?: string;
|
|
3699
|
-
}
|
|
3700
|
-
interface AddItemOptions {
|
|
3701
|
-
/**
|
|
3702
|
-
* In `checked` interaction mode, adds the item without a checkbox column and
|
|
3703
|
-
* without the ability to be checked/selected. Equivalent to setting the
|
|
3704
|
-
* `not-checked` attribute on the item. Ignored outside `checked` mode.
|
|
3705
|
-
*/
|
|
3706
|
-
notChecked?: boolean;
|
|
3707
|
-
}
|
|
3708
|
-
declare class VerticalListElement extends LitElement {
|
|
3709
|
-
#private;
|
|
3710
|
-
selectionMode: ListSelectionMode;
|
|
3711
|
-
interactionMode: ListInteractionMode;
|
|
3712
|
-
filterPredicate: ((el: Element) => boolean) | undefined;
|
|
3713
|
-
/**
|
|
3714
|
-
* Optional renderer for the checkbox shown in `checked` interactionMode.
|
|
3715
|
-
* Receives the current `checked` state and returns a Lit template result.
|
|
3716
|
-
*
|
|
3717
|
-
* When set, the per-row checkbox becomes a `<span role="checkbox">` whose
|
|
3718
|
-
* contents are whatever this returns (rendered with `lit`'s `render()`).
|
|
3719
|
-
* When unset, a native `<input type="checkbox">` is used.
|
|
3720
|
-
*
|
|
3721
|
-
* @example
|
|
3722
|
-
* list.checkboxRenderer = (checked) => checked
|
|
3723
|
-
* ? html`<svg viewBox="0 0 16 16" width="14" height="14"
|
|
3724
|
-
* fill="none" stroke="currentColor" stroke-width="2"
|
|
3725
|
-
* stroke-linecap="round" stroke-linejoin="round"
|
|
3726
|
-
* style="opacity:0.5">
|
|
3727
|
-
* <polyline points="3,8 7,12 13,4" />
|
|
3728
|
-
* </svg>`
|
|
3729
|
-
* : html``;
|
|
3730
|
-
*/
|
|
3731
|
-
checkboxRenderer: ((checked: boolean) => unknown) | CustomCheckboxOptions | undefined;
|
|
3732
|
-
private _selectedItems;
|
|
3733
|
-
private _searchVisible;
|
|
3734
|
-
private _searchQuery;
|
|
3735
|
-
private _searchInputEl;
|
|
3736
|
-
private tickled;
|
|
3737
|
-
connectedCallback(): void;
|
|
3738
|
-
disconnectedCallback(): void;
|
|
3739
|
-
firstUpdated(): void;
|
|
3740
|
-
updated(changed: PropertyValues): void;
|
|
3741
|
-
/** The most recently selected item, or `undefined` if nothing is selected. */
|
|
3742
|
-
get selectedItem(): Element | undefined;
|
|
3743
|
-
/** The full current selection set (read-only). */
|
|
3744
|
-
get selectedItems(): ReadonlySet<Element>;
|
|
3745
|
-
addItem(item: Element | string, options?: AddItemOptions): void;
|
|
3746
|
-
removeItem(item: Element): void;
|
|
3747
|
-
clearItems(): void;
|
|
3748
|
-
/**
|
|
3749
|
-
* Replace the entire item list in one call.
|
|
3750
|
-
* Equivalent to `clearItems()` followed by `addItem()` for each element.
|
|
3751
|
-
* Preserves `interactionMode` checkbox wrapping.
|
|
3752
|
-
*/
|
|
3753
|
-
setItems(items: readonly Element[]): void;
|
|
3754
|
-
/**
|
|
3755
|
-
* Dispatch a command to this list. No-op by default.
|
|
3756
|
-
* Intended for use with `ixfx-grouped-item-lister`'s `dispatch()` method,
|
|
3757
|
-
* which forwards commands to all sub-components.
|
|
3758
|
-
*/
|
|
3759
|
-
dispatch(_commandId: CommandId, _args?: Record<string, unknown>): void;
|
|
3760
|
-
select(item: Element): void;
|
|
3761
|
-
selectMany(items: Iterable<Element>): void;
|
|
3762
|
-
deselect(item: Element): void;
|
|
3763
|
-
clearSelection(): void;
|
|
3764
|
-
selectAll(): void;
|
|
3765
|
-
selectedFilter(kind: `selected` | `checked` | `either`): Generator<Element>;
|
|
3766
|
-
private _replaceSelection;
|
|
3767
|
-
private _toggleItem;
|
|
3768
|
-
private _rangeSelectTo;
|
|
3769
|
-
private _clearSelection;
|
|
3770
|
-
private _selectAll;
|
|
3771
|
-
private _handleClickSelection;
|
|
3772
|
-
private _handleSpaceKey;
|
|
3773
|
-
private _getVisibleItems;
|
|
3774
|
-
private _isCheckable;
|
|
3775
|
-
private _syncItemStates;
|
|
3776
|
-
private _syncCheckboxes;
|
|
3777
|
-
/**
|
|
3778
|
-
* Native checkbox cell: a span that stretches to the row's full cross-axis
|
|
3779
|
-
* (so the entire column height is a click target) with a real `<input>`
|
|
3780
|
-
* centred inside. The span owns the click; the input is purely visual and
|
|
3781
|
-
* has `pointer-events:none` so a single click produces one toggle.
|
|
3782
|
-
*/
|
|
3783
|
-
private _createNativeCheckboxCell;
|
|
3784
|
-
/**
|
|
3785
|
-
* Custom checkbox cell: same shape as the native cell (a stretching span)
|
|
3786
|
-
* so behaviour is identical. The renderer's content goes inside.
|
|
3787
|
-
*/
|
|
3788
|
-
private _createCustomCheckbox;
|
|
3789
|
-
private _findListItem;
|
|
3790
|
-
private _dispatch;
|
|
3791
|
-
private _openSearch;
|
|
3792
|
-
private _closeSearch;
|
|
3793
|
-
private _onPointerOver;
|
|
3794
|
-
private _onPointerLeave;
|
|
3795
|
-
private _onKeyDown;
|
|
3796
|
-
private _onClick;
|
|
3797
|
-
private _onDblClick;
|
|
3798
|
-
private _activateItem;
|
|
3799
|
-
private _onSearchInput;
|
|
3800
|
-
private _onSearchKeydown;
|
|
4830
|
+
protected render(): TemplateResult<1>;
|
|
4831
|
+
protected renderNodeContent(node: TreeNode, depth: number): TemplateResult;
|
|
4832
|
+
protected _renderNode(node: TreeNode, depth: number): TemplateResult;
|
|
3801
4833
|
static styles: CSSResult[];
|
|
3802
|
-
render(): TemplateResult<1>;
|
|
3803
4834
|
}
|
|
3804
4835
|
declare global {
|
|
3805
4836
|
interface HTMLElementTagNameMap {
|
|
3806
|
-
'ixfx-
|
|
4837
|
+
'ixfx-tree-list': TreeListElement;
|
|
3807
4838
|
}
|
|
3808
|
-
interface HTMLElementEventMap extends ListElementEventMap {}
|
|
3809
4839
|
}
|
|
4840
|
+
interface TreeListElement {
|
|
4841
|
+
addEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeListElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
4842
|
+
}
|
|
4843
|
+
//#endregion
|
|
4844
|
+
//#region src/grouped-item-lister/tree-list-adapter.d.ts
|
|
4845
|
+
type TreeListAdapterOptions<T> = {
|
|
4846
|
+
/**
|
|
4847
|
+
* Returns the direct children of an item to build the tree hierarchy.
|
|
4848
|
+
* Omit for flat item lists — all items become leaf nodes at the root level.
|
|
4849
|
+
*/
|
|
4850
|
+
getChildren?: (item: T) => readonly T[];
|
|
4851
|
+
/** Forwarded to the inner ixfx-tree-list. Default: `'standard'`. */
|
|
4852
|
+
interactionMode?: TreeInteractionMode;
|
|
4853
|
+
/**
|
|
4854
|
+
* Controls which node types are selectable.
|
|
4855
|
+
* Forwarded to the inner ixfx-tree-list. Default: `'all'`.
|
|
4856
|
+
*/
|
|
4857
|
+
selectionFilter?: TreeSelectionFilter;
|
|
4858
|
+
/**
|
|
4859
|
+
* Controls how expanding one node affects its siblings.
|
|
4860
|
+
* Forwarded to the inner ixfx-tree-list. Default: `'none'`.
|
|
4861
|
+
*/
|
|
4862
|
+
exclusivity?: TreeExclusivity;
|
|
4863
|
+
/**
|
|
4864
|
+
* Called when a command is dispatched via `ixfx-grouped-item-lister.dispatch()`.
|
|
4865
|
+
* Receives the inner `TreeBaseElement` (undefined until the first `setItems()` call)
|
|
4866
|
+
* so the handler can sort, filter, or otherwise manipulate the tree directly.
|
|
4867
|
+
*/
|
|
4868
|
+
onDispatch?: (commandId: CommandId, args: Record<string, unknown> | undefined, tree: TreeBaseElement | undefined) => void;
|
|
4869
|
+
};
|
|
4870
|
+
/**
|
|
4871
|
+
* Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
|
|
4872
|
+
* an `ixfx-tree-list` internally.
|
|
4873
|
+
*
|
|
4874
|
+
* `toTreeItem` converts each item `T` to display metadata (`key`, `label`, etc).
|
|
4875
|
+
* The adapter stores the original `T` in `TreeItem.data` and uses it to map
|
|
4876
|
+
* tree-node selections back to typed values.
|
|
4877
|
+
*
|
|
4878
|
+
* Unlike `createVerticalListAdapter`, items can be hierarchical: provide
|
|
4879
|
+
* `options.getChildren` to return each item's children and the adapter will
|
|
4880
|
+
* recursively build the `TreeNode` tree. Omit it for a flat list of leaf nodes.
|
|
4881
|
+
*
|
|
4882
|
+
* The four interface events (`select`, `activate`, `item-click`, `tickle`) are
|
|
4883
|
+
* intercepted at the tree level, re-typed from `TreeNode` → `T`, and re-dispatched
|
|
4884
|
+
* on the adapter element so `ixfx-grouped-item-lister` can identify the source.
|
|
4885
|
+
*
|
|
4886
|
+
* @example Flat item list:
|
|
4887
|
+
* ```ts
|
|
4888
|
+
* lister.factory = () =>
|
|
4889
|
+
* createTreeListAdapter<FileItem>(item => ({ key: item.id, label: item.name, isLeaf: true }));
|
|
4890
|
+
* ```
|
|
4891
|
+
*
|
|
4892
|
+
* @example Hierarchical items:
|
|
4893
|
+
* ```ts
|
|
4894
|
+
* lister.factory = () =>
|
|
4895
|
+
* createTreeListAdapter<Category>(
|
|
4896
|
+
* cat => ({ key: cat.id, label: cat.name }),
|
|
4897
|
+
* { getChildren: cat => cat.subCategories },
|
|
4898
|
+
* );
|
|
4899
|
+
* ```
|
|
4900
|
+
*/
|
|
4901
|
+
declare function createTreeListAdapter<T>(toTreeItem: (item: T) => Omit<TreeItem, `data`>, options?: TreeListAdapterOptions<T>): HTMLElement & IGroupedSubComponent<T>;
|
|
3810
4902
|
//#endregion
|
|
3811
4903
|
//#region src/grouped-item-lister/vertical-list-adapter.d.ts
|
|
3812
4904
|
type VerticalListAdapterOptions = {
|
|
@@ -4012,10 +5104,20 @@ type IconChangedDetail = {
|
|
|
4012
5104
|
readonly name: string;
|
|
4013
5105
|
};
|
|
4014
5106
|
type IconChangedEvent = CustomEvent<IconChangedDetail>;
|
|
5107
|
+
type IconEntry = {
|
|
5108
|
+
kind: `svg`;
|
|
5109
|
+
svg: string;
|
|
5110
|
+
} | {
|
|
5111
|
+
kind: `font`;
|
|
5112
|
+
char: string;
|
|
5113
|
+
};
|
|
4015
5114
|
declare function registerIcon(name: string, svg: string): void;
|
|
5115
|
+
declare function registerFontIcon(name: string, glyph: string | number): void;
|
|
4016
5116
|
declare function getIcon(name: string): string | undefined;
|
|
5117
|
+
declare function getIconEntry(name: string): IconEntry | undefined;
|
|
4017
5118
|
declare function hasIcon(name: string): boolean;
|
|
4018
|
-
|
|
5119
|
+
declare function setIconFont(fontFamily: string): void;
|
|
5120
|
+
declare function getIconFont(): string | undefined;
|
|
4019
5121
|
declare function svgToDataUri(svg: string): string;
|
|
4020
5122
|
//#endregion
|
|
4021
5123
|
//#region src/incr-search/types.d.ts
|
|
@@ -4231,41 +5333,233 @@ declare class RadialInputElement extends RadialInputElement_base {
|
|
|
4231
5333
|
render(): unknown;
|
|
4232
5334
|
protected updated(changed: PropertyValues): void;
|
|
4233
5335
|
disconnectedCallback(): void;
|
|
4234
|
-
firstUpdated(): void;
|
|
5336
|
+
firstUpdated(): void;
|
|
5337
|
+
static styles: CSSResult[];
|
|
5338
|
+
}
|
|
5339
|
+
declare global {
|
|
5340
|
+
interface HTMLElementTagNameMap {
|
|
5341
|
+
'ixfx-radial-input': RadialInputElement;
|
|
5342
|
+
}
|
|
5343
|
+
}
|
|
5344
|
+
//#endregion
|
|
5345
|
+
//#region src/labelled-radial-input/labelled-radial-input.d.ts
|
|
5346
|
+
declare class LabelledRadialInput extends LabelledInputBase {
|
|
5347
|
+
readonly inputSelector = "ixfx-radial-input";
|
|
5348
|
+
max: number;
|
|
5349
|
+
step: number;
|
|
5350
|
+
radius: number;
|
|
5351
|
+
flatten: number;
|
|
5352
|
+
markerStyle: MarkerStyle;
|
|
5353
|
+
wedge: boolean;
|
|
5354
|
+
valueMode: ValueMode;
|
|
5355
|
+
tooltip: boolean;
|
|
5356
|
+
flip: boolean;
|
|
5357
|
+
aspectRatioThreshold: number;
|
|
5358
|
+
/** Pass-through: enables wheel-on-hover for the inner dial and editable-number. */
|
|
5359
|
+
lighttouch: boolean;
|
|
5360
|
+
private _isWide;
|
|
5361
|
+
private _getEffectivePrecision;
|
|
5362
|
+
protected _handleResize(entries: ResizeObserverEntry[]): void;
|
|
5363
|
+
protected _renderEditableNumber(): typeof nothing | TemplateResult<1>;
|
|
5364
|
+
render(): TemplateResult<1>;
|
|
5365
|
+
private _getTooltipValue;
|
|
5366
|
+
static styles: CSSResultGroup;
|
|
5367
|
+
}
|
|
5368
|
+
declare global {
|
|
5369
|
+
interface HTMLElementTagNameMap {
|
|
5370
|
+
'ixfx-labelled-radial-input': LabelledRadialInput;
|
|
5371
|
+
}
|
|
5372
|
+
}
|
|
5373
|
+
//#endregion
|
|
5374
|
+
//#region src/slider-input/types.d.ts
|
|
5375
|
+
/**
|
|
5376
|
+
* Type definitions for slider-input component
|
|
5377
|
+
*/
|
|
5378
|
+
type SliderOrientation = `horizontal` | `vertical`;
|
|
5379
|
+
type SliderMarkerStyle = `needle` | `dot` | `triangle` | `none`;
|
|
5380
|
+
type SliderSingleStyle = `range` | `bipolar` | `unipolar`;
|
|
5381
|
+
type SliderValueMode = `single` | `dual` | `triple`;
|
|
5382
|
+
type SliderCrossover = `none` | `allow`;
|
|
5383
|
+
type SliderValueDrag = `none` | `stop` | `flex`;
|
|
5384
|
+
/**
|
|
5385
|
+
* Behaviour for the middle (C) handle in triple mode when the A/B span
|
|
5386
|
+
* changes. `none` (default) keeps C in place and only clamps it when it
|
|
5387
|
+
* falls outside the new [A, B] band. `proportional` keeps C at the same
|
|
5388
|
+
* fractional position within the band as the band moves or resizes.
|
|
5389
|
+
*/
|
|
5390
|
+
type SliderValueCFollow = `none` | `proportional`;
|
|
5391
|
+
type SliderLaneType = `value` | `fixed` | `anchored`;
|
|
5392
|
+
type SliderHandleKey = `a` | `b` | `c`;
|
|
5393
|
+
/**
|
|
5394
|
+
* Per-lane data. Mirrors radial-input's shape with the difference that
|
|
5395
|
+
* `type: 'value'` lanes track a *range* (valueMin/valueMax) rather than a
|
|
5396
|
+
* single value, while `type: 'anchored'` lanes keep a single value (0..1
|
|
5397
|
+
* length).
|
|
5398
|
+
*/
|
|
5399
|
+
interface SliderLaneData {
|
|
5400
|
+
key: string;
|
|
5401
|
+
type: SliderLaneType;
|
|
5402
|
+
/**
|
|
5403
|
+
* Used when type === 'anchored': length (0..1) of the lane symmetrically
|
|
5404
|
+
* centered on the current value.
|
|
5405
|
+
*/
|
|
5406
|
+
value?: number;
|
|
5407
|
+
/** Used when type === 'value': lower end of the lane band (0..1). */
|
|
5408
|
+
valueMin?: number;
|
|
5409
|
+
/** Used when type === 'value': upper end of the lane band (0..1). */
|
|
5410
|
+
valueMax?: number;
|
|
5411
|
+
/** Perpendicular offset from the track centreline (-1..1 scale relative to the cross axis). */
|
|
5412
|
+
offset: number;
|
|
5413
|
+
/** Stroke thickness as a fraction of the cross axis (0..1). */
|
|
5414
|
+
width: number;
|
|
5415
|
+
}
|
|
5416
|
+
/**
|
|
5417
|
+
* Identifies which field(s) of a dual/triple-mode detail changed.
|
|
5418
|
+
* `both` is reserved for length-drag (value-drag) gestures.
|
|
5419
|
+
*/
|
|
5420
|
+
type SliderChangedField = `min` | `max` | `c` | `both`;
|
|
5421
|
+
/**
|
|
5422
|
+
* In single mode, `value` is the single handle's value and the min/max/c
|
|
5423
|
+
* fields are undefined. In dual/triple mode, `value` is set to `valueMax`
|
|
5424
|
+
* (the "B"/upper handle) for parity with native `<input type="range">`
|
|
5425
|
+
* two-thumb patterns where a single `value` is ambiguous — consumers
|
|
5426
|
+
* wanting min/max should use `valueMin`/`valueMax` directly.
|
|
5427
|
+
*/
|
|
5428
|
+
interface SliderInputInputDetail {
|
|
5429
|
+
readonly value: number;
|
|
5430
|
+
readonly valueRelative: number;
|
|
5431
|
+
/** Lower handle value (dual/triple modes only). */
|
|
5432
|
+
readonly valueMin?: number;
|
|
5433
|
+
/** Upper handle value (dual/triple modes only). */
|
|
5434
|
+
readonly valueMax?: number;
|
|
5435
|
+
readonly valueMinRelative?: number;
|
|
5436
|
+
readonly valueMaxRelative?: number;
|
|
5437
|
+
/** Triple-mode middle handle value. */
|
|
5438
|
+
readonly valueC?: number;
|
|
5439
|
+
readonly valueCRelative?: number;
|
|
5440
|
+
/** Which field this particular event resulted from. */
|
|
5441
|
+
readonly changed?: SliderChangedField;
|
|
5442
|
+
}
|
|
5443
|
+
interface SliderInputChangeDetail {
|
|
5444
|
+
readonly value: number;
|
|
5445
|
+
readonly valueRelative: number;
|
|
5446
|
+
readonly previousValue: number;
|
|
5447
|
+
readonly valueMin?: number;
|
|
5448
|
+
readonly valueMax?: number;
|
|
5449
|
+
readonly previousValueMin?: number;
|
|
5450
|
+
readonly previousValueMax?: number;
|
|
5451
|
+
readonly valueC?: number;
|
|
5452
|
+
readonly previousValueC?: number;
|
|
5453
|
+
readonly changed?: SliderChangedField;
|
|
5454
|
+
}
|
|
5455
|
+
type SliderInputInputEvent = CustomEvent<SliderInputInputDetail>;
|
|
5456
|
+
type SliderInputChangeEvent = CustomEvent<SliderInputChangeDetail>;
|
|
5457
|
+
interface SliderInputElementEventMap {
|
|
5458
|
+
input: SliderInputInputEvent;
|
|
5459
|
+
change: SliderInputChangeEvent;
|
|
5460
|
+
}
|
|
5461
|
+
//#endregion
|
|
5462
|
+
//#region src/slider-input/slider-input.d.ts
|
|
5463
|
+
declare const SliderInputElement_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
|
|
5464
|
+
declare class SliderInputElement extends SliderInputElement_base {
|
|
5465
|
+
#private;
|
|
5466
|
+
valueA: number;
|
|
5467
|
+
valueB: number;
|
|
5468
|
+
/**
|
|
5469
|
+
* Triple-mode middle handle. `undefined` until first willUpdate, then
|
|
5470
|
+
* defaulted to the midpoint of valueA/valueB (matching radial-input's
|
|
5471
|
+
* deferred lane-correction pattern).
|
|
5472
|
+
*/
|
|
5473
|
+
valueC: number | undefined;
|
|
5474
|
+
min: number;
|
|
5475
|
+
max: number;
|
|
5476
|
+
step: number | undefined;
|
|
5477
|
+
stops: number | undefined;
|
|
5478
|
+
valueMode: SliderValueMode;
|
|
5479
|
+
singleStyle: SliderSingleStyle;
|
|
5480
|
+
orientation: SliderOrientation;
|
|
5481
|
+
markerStyle: SliderMarkerStyle;
|
|
5482
|
+
/**
|
|
5483
|
+
* Optional marker-style override for the C handle in triple mode. Lets
|
|
5484
|
+
* consumers give C a different shape (e.g. dot) from the global
|
|
5485
|
+
* `markerStyle` applied to A/B.
|
|
5486
|
+
*/
|
|
5487
|
+
markerStyleC: SliderMarkerStyle | undefined;
|
|
5488
|
+
crossover: SliderCrossover;
|
|
5489
|
+
valueDrag: SliderValueDrag;
|
|
5490
|
+
/**
|
|
5491
|
+
* In triple mode, how the C handle reacts when A or B moves the [A, B]
|
|
5492
|
+
* band. `none` (default): C keeps its value unless pushed outside the
|
|
5493
|
+
* new band. `proportional`: C is re-anchored at the same fractional
|
|
5494
|
+
* position it had within the *old* band, so it moves with A/B.
|
|
5495
|
+
*/
|
|
5496
|
+
valueCFollow: SliderValueCFollow;
|
|
5497
|
+
valueMin: number;
|
|
5498
|
+
disabled: boolean;
|
|
5499
|
+
/**
|
|
5500
|
+
* Swipe-to-draw gesture, mirroring `ixfx-range-input[swipeable]`.
|
|
5501
|
+
* When active, pressing down on the slider or entering it while the
|
|
5502
|
+
* pointer is pressed sets the value from the cursor coordinate.
|
|
5503
|
+
* Pointer capture is NOT held, so the cursor can move to adjacent
|
|
5504
|
+
* swipeable sliders and update them too (step-sequencer style).
|
|
5505
|
+
* Leaving the slider (above/below for horizontal, left/right for
|
|
5506
|
+
* vertical) freezes the value; re-entering re-engages.
|
|
5507
|
+
*
|
|
5508
|
+
* Single mode sets value-A directly. Dual/triple modes move the
|
|
5509
|
+
* nearest handle to the cursor.
|
|
5510
|
+
*/
|
|
5511
|
+
swipeable: boolean;
|
|
5512
|
+
constructor();
|
|
5513
|
+
connectedCallback(): void;
|
|
5514
|
+
addLane(key: string, options?: {
|
|
5515
|
+
value?: number;
|
|
5516
|
+
valueMin?: number;
|
|
5517
|
+
valueMax?: number;
|
|
5518
|
+
type?: SliderLaneType;
|
|
5519
|
+
offset?: number;
|
|
5520
|
+
width?: number;
|
|
5521
|
+
}): void;
|
|
5522
|
+
setLaneValue(key: string, value: number): void;
|
|
5523
|
+
setLaneRange(key: string, valueMin: number, valueMax: number): void;
|
|
5524
|
+
removeLane(key: string): void;
|
|
5525
|
+
getLanes(): ReadonlyMap<string, SliderLaneData>;
|
|
5526
|
+
getLane(key: string): SliderLaneData | undefined;
|
|
5527
|
+
_applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
|
|
5528
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
5529
|
+
render(): unknown;
|
|
5530
|
+
protected updated(changed: PropertyValues): void;
|
|
5531
|
+
disconnectedCallback(): void;
|
|
4235
5532
|
static styles: CSSResult[];
|
|
4236
5533
|
}
|
|
4237
5534
|
declare global {
|
|
4238
5535
|
interface HTMLElementTagNameMap {
|
|
4239
|
-
'ixfx-
|
|
5536
|
+
'ixfx-slider-input': SliderInputElement;
|
|
4240
5537
|
}
|
|
4241
5538
|
}
|
|
5539
|
+
interface SliderInputElement {
|
|
5540
|
+
addEventListener: (<K extends keyof SliderInputElementEventMap>(type: K, listener: (this: SliderInputElement, event: SliderInputElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
5541
|
+
}
|
|
4242
5542
|
//#endregion
|
|
4243
|
-
//#region src/labelled-
|
|
4244
|
-
declare class
|
|
4245
|
-
readonly inputSelector = "ixfx-
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
tooltip: boolean;
|
|
4254
|
-
flip: boolean;
|
|
4255
|
-
aspectRatioThreshold: number;
|
|
4256
|
-
/** Pass-through: enables wheel-on-hover for the inner dial and editable-number. */
|
|
5543
|
+
//#region src/labelled-slider-input/labelled-slider-input.d.ts
|
|
5544
|
+
declare class LabelledSliderInput extends LabelledInputBase {
|
|
5545
|
+
readonly inputSelector = "ixfx-slider-input";
|
|
5546
|
+
orientation: `horizontal` | `vertical`;
|
|
5547
|
+
singleStyle: SliderSingleStyle;
|
|
5548
|
+
markerStyle: SliderMarkerStyle;
|
|
5549
|
+
stops: number | undefined;
|
|
5550
|
+
disabled: boolean;
|
|
5551
|
+
swipeable: boolean;
|
|
5552
|
+
/** Pass-through: enables wheel-on-hover for the inner slider and editable-number. */
|
|
4257
5553
|
lighttouch: boolean;
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
protected
|
|
4261
|
-
protected _renderEditableNumber(): typeof nothing | TemplateResult<1>;
|
|
5554
|
+
switchHeight: number;
|
|
5555
|
+
protected _renderEditableNumber(): TemplateResult<1>;
|
|
5556
|
+
protected _syncValue(v: number): void;
|
|
4262
5557
|
render(): TemplateResult<1>;
|
|
4263
|
-
private _getTooltipValue;
|
|
4264
5558
|
static styles: CSSResultGroup;
|
|
4265
5559
|
}
|
|
4266
5560
|
declare global {
|
|
4267
5561
|
interface HTMLElementTagNameMap {
|
|
4268
|
-
'ixfx-labelled-
|
|
5562
|
+
'ixfx-labelled-slider-input': LabelledSliderInput;
|
|
4269
5563
|
}
|
|
4270
5564
|
}
|
|
4271
5565
|
//#endregion
|
|
@@ -4707,6 +6001,7 @@ declare class PanelGroupElement extends LitElement {
|
|
|
4707
6001
|
orientation: PanelGroupOrientation;
|
|
4708
6002
|
variant: PanelVariant;
|
|
4709
6003
|
toggleInteraction: PanelToggleInteraction;
|
|
6004
|
+
collapsible: boolean;
|
|
4710
6005
|
allowMultiple: boolean;
|
|
4711
6006
|
gap: string;
|
|
4712
6007
|
private _panels;
|
|
@@ -5355,236 +6650,80 @@ type RatingChangeEvent = CustomEvent<RatingChangeDetail>;
|
|
|
5355
6650
|
type RatingInputEvent = CustomEvent<RatingChangeDetail>;
|
|
5356
6651
|
interface RatingElementEventMap {
|
|
5357
6652
|
change: RatingChangeEvent;
|
|
5358
|
-
input: RatingInputEvent;
|
|
5359
|
-
}
|
|
5360
|
-
declare class RatingElement extends LitElement {
|
|
5361
|
-
static styles: CSSResult[];
|
|
5362
|
-
value: number;
|
|
5363
|
-
max: number;
|
|
5364
|
-
allowHalf: boolean;
|
|
5365
|
-
disabled: boolean;
|
|
5366
|
-
readonly: boolean;
|
|
5367
|
-
variant: RatingVariant;
|
|
5368
|
-
private _preview;
|
|
5369
|
-
connectedCallback(): void;
|
|
5370
|
-
protected updated(changed: Map<string, unknown>): void;
|
|
5371
|
-
private _path;
|
|
5372
|
-
private _effective;
|
|
5373
|
-
private _commit;
|
|
5374
|
-
private _calc;
|
|
5375
|
-
protected render(): TemplateResult<1>;
|
|
5376
|
-
firstUpdated(): void;
|
|
5377
|
-
}
|
|
5378
|
-
declare global {
|
|
5379
|
-
interface HTMLElementTagNameMap {
|
|
5380
|
-
'ixfx-rating': RatingElement;
|
|
5381
|
-
}
|
|
5382
|
-
}
|
|
5383
|
-
interface IxfxRatingElement {
|
|
5384
|
-
addEventListener: (<K extends keyof RatingElementEventMap>(type: K, listener: (this: RatingElement, ev: RatingElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
5385
|
-
removeEventListener: (<K extends keyof RatingElementEventMap>(type: K, listener: (this: RatingElement, ev: RatingElementEventMap[K]) => void, options?: boolean | EventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void);
|
|
5386
|
-
}
|
|
5387
|
-
//#endregion
|
|
5388
|
-
//#region src/select-horiz/select-horiz.d.ts
|
|
5389
|
-
type SelectHorizChangeDetail = {
|
|
5390
|
-
readonly selectedIndex: number;
|
|
5391
|
-
readonly selectedItem: HTMLElement | null;
|
|
5392
|
-
readonly selectedValue: string | null;
|
|
5393
|
-
};
|
|
5394
|
-
type SelectHorizChangeEvent = CustomEvent<SelectHorizChangeDetail>;
|
|
5395
|
-
interface SelectHorizEventMap {
|
|
5396
|
-
change: SelectHorizChangeEvent;
|
|
5397
|
-
}
|
|
5398
|
-
declare global {
|
|
5399
|
-
interface HTMLElementTagNameMap {
|
|
5400
|
-
'ixfx-select-horiz': SelectHorizElement;
|
|
5401
|
-
}
|
|
5402
|
-
}
|
|
5403
|
-
interface SelectHorizElement {
|
|
5404
|
-
addEventListener: (<K extends keyof SelectHorizEventMap>(type: K, listener: (this: SelectHorizElement, event: SelectHorizEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
5405
|
-
}
|
|
5406
|
-
declare const SelectHorizElement_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
|
|
5407
|
-
declare class SelectHorizElement extends SelectHorizElement_base {
|
|
5408
|
-
static styles: CSSResult[];
|
|
5409
|
-
private _selectedIndex;
|
|
5410
|
-
private _slottedItems;
|
|
5411
|
-
private tickled;
|
|
5412
|
-
get selectedIndex(): number;
|
|
5413
|
-
set selectedIndex(value: number);
|
|
5414
|
-
get selectedValue(): string | null;
|
|
5415
|
-
set selectedValue(value: string | null);
|
|
5416
|
-
get selectedItem(): HTMLElement | null;
|
|
5417
|
-
get items(): HTMLCollection;
|
|
5418
|
-
protected render(): TemplateResult<1>;
|
|
5419
|
-
willUpdate(changed: Map<PropertyKey, unknown>): void;
|
|
5420
|
-
private _onSlotChange;
|
|
5421
|
-
private _syncTickled;
|
|
5422
|
-
private _findSlottedItem;
|
|
5423
|
-
private _handlePointerOver;
|
|
5424
|
-
private _handleKeyDown;
|
|
5425
|
-
private _applyTickledSelection;
|
|
5426
|
-
private _wheelCooldown;
|
|
5427
|
-
_applyWheelDelta(direction: WheelDirection, _event: WheelEvent): void;
|
|
5428
|
-
private _handleClick;
|
|
5429
|
-
private _updateSelectedAttribute;
|
|
5430
|
-
private _scrollSelectedIntoView;
|
|
5431
|
-
private _emitChange;
|
|
5432
|
-
}
|
|
5433
|
-
//#endregion
|
|
5434
|
-
//#region src/slider-input/types.d.ts
|
|
5435
|
-
/**
|
|
5436
|
-
* Type definitions for slider-input component
|
|
5437
|
-
*/
|
|
5438
|
-
type SliderOrientation = `horizontal` | `vertical`;
|
|
5439
|
-
type SliderMarkerStyle = `needle` | `dot` | `triangle` | `none`;
|
|
5440
|
-
type SliderSingleStyle = `range` | `bipolar` | `unipolar`;
|
|
5441
|
-
type SliderValueMode = `single` | `dual` | `triple`;
|
|
5442
|
-
type SliderCrossover = `none` | `allow`;
|
|
5443
|
-
type SliderValueDrag = `none` | `stop` | `flex`;
|
|
5444
|
-
/**
|
|
5445
|
-
* Behaviour for the middle (C) handle in triple mode when the A/B span
|
|
5446
|
-
* changes. `none` (default) keeps C in place and only clamps it when it
|
|
5447
|
-
* falls outside the new [A, B] band. `proportional` keeps C at the same
|
|
5448
|
-
* fractional position within the band as the band moves or resizes.
|
|
5449
|
-
*/
|
|
5450
|
-
type SliderValueCFollow = `none` | `proportional`;
|
|
5451
|
-
type SliderLaneType = `value` | `fixed` | `anchored`;
|
|
5452
|
-
type SliderHandleKey = `a` | `b` | `c`;
|
|
5453
|
-
/**
|
|
5454
|
-
* Per-lane data. Mirrors radial-input's shape with the difference that
|
|
5455
|
-
* `type: 'value'` lanes track a *range* (valueMin/valueMax) rather than a
|
|
5456
|
-
* single value, while `type: 'anchored'` lanes keep a single value (0..1
|
|
5457
|
-
* length).
|
|
5458
|
-
*/
|
|
5459
|
-
interface SliderLaneData {
|
|
5460
|
-
key: string;
|
|
5461
|
-
type: SliderLaneType;
|
|
5462
|
-
/**
|
|
5463
|
-
* Used when type === 'anchored': length (0..1) of the lane symmetrically
|
|
5464
|
-
* centered on the current value.
|
|
5465
|
-
*/
|
|
5466
|
-
value?: number;
|
|
5467
|
-
/** Used when type === 'value': lower end of the lane band (0..1). */
|
|
5468
|
-
valueMin?: number;
|
|
5469
|
-
/** Used when type === 'value': upper end of the lane band (0..1). */
|
|
5470
|
-
valueMax?: number;
|
|
5471
|
-
/** Perpendicular offset from the track centreline (-1..1 scale relative to CROSS). */
|
|
5472
|
-
offset: number;
|
|
5473
|
-
/** Stroke thickness as a fraction of the CROSS dimension (0..1). */
|
|
5474
|
-
width: number;
|
|
5475
|
-
}
|
|
5476
|
-
/**
|
|
5477
|
-
* Identifies which field(s) of a dual/triple-mode detail changed.
|
|
5478
|
-
* `both` is reserved for length-drag (value-drag) gestures.
|
|
5479
|
-
*/
|
|
5480
|
-
type SliderChangedField = `min` | `max` | `c` | `both`;
|
|
5481
|
-
/**
|
|
5482
|
-
* In single mode, `value` is the single handle's value and the min/max/c
|
|
5483
|
-
* fields are undefined. In dual/triple mode, `value` is set to `valueMax`
|
|
5484
|
-
* (the "B"/upper handle) for parity with native `<input type="range">`
|
|
5485
|
-
* two-thumb patterns where a single `value` is ambiguous — consumers
|
|
5486
|
-
* wanting min/max should use `valueMin`/`valueMax` directly.
|
|
5487
|
-
*/
|
|
5488
|
-
interface SliderInputInputDetail {
|
|
5489
|
-
readonly value: number;
|
|
5490
|
-
readonly valueRelative: number;
|
|
5491
|
-
/** Lower handle value (dual/triple modes only). */
|
|
5492
|
-
readonly valueMin?: number;
|
|
5493
|
-
/** Upper handle value (dual/triple modes only). */
|
|
5494
|
-
readonly valueMax?: number;
|
|
5495
|
-
readonly valueMinRelative?: number;
|
|
5496
|
-
readonly valueMaxRelative?: number;
|
|
5497
|
-
/** Triple-mode middle handle value. */
|
|
5498
|
-
readonly valueC?: number;
|
|
5499
|
-
readonly valueCRelative?: number;
|
|
5500
|
-
/** Which field this particular event resulted from. */
|
|
5501
|
-
readonly changed?: SliderChangedField;
|
|
5502
|
-
}
|
|
5503
|
-
interface SliderInputChangeDetail {
|
|
5504
|
-
readonly value: number;
|
|
5505
|
-
readonly valueRelative: number;
|
|
5506
|
-
readonly previousValue: number;
|
|
5507
|
-
readonly valueMin?: number;
|
|
5508
|
-
readonly valueMax?: number;
|
|
5509
|
-
readonly previousValueMin?: number;
|
|
5510
|
-
readonly previousValueMax?: number;
|
|
5511
|
-
readonly valueC?: number;
|
|
5512
|
-
readonly previousValueC?: number;
|
|
5513
|
-
readonly changed?: SliderChangedField;
|
|
5514
|
-
}
|
|
5515
|
-
type SliderInputInputEvent = CustomEvent<SliderInputInputDetail>;
|
|
5516
|
-
type SliderInputChangeEvent = CustomEvent<SliderInputChangeDetail>;
|
|
5517
|
-
interface SliderInputElementEventMap {
|
|
5518
|
-
input: SliderInputInputEvent;
|
|
5519
|
-
change: SliderInputChangeEvent;
|
|
5520
|
-
}
|
|
5521
|
-
//#endregion
|
|
5522
|
-
//#region src/slider-input/slider-input.d.ts
|
|
5523
|
-
declare const SliderInputElement_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
|
|
5524
|
-
declare class SliderInputElement extends SliderInputElement_base {
|
|
5525
|
-
#private;
|
|
5526
|
-
valueA: number;
|
|
5527
|
-
valueB: number;
|
|
5528
|
-
/**
|
|
5529
|
-
* Triple-mode middle handle. `undefined` until first willUpdate, then
|
|
5530
|
-
* defaulted to the midpoint of valueA/valueB (matching radial-input's
|
|
5531
|
-
* deferred lane-correction pattern).
|
|
5532
|
-
*/
|
|
5533
|
-
valueC: number | undefined;
|
|
5534
|
-
min: number;
|
|
5535
|
-
max: number;
|
|
5536
|
-
step: number | undefined;
|
|
5537
|
-
stops: number | undefined;
|
|
5538
|
-
valueMode: SliderValueMode;
|
|
5539
|
-
singleStyle: SliderSingleStyle;
|
|
5540
|
-
orientation: SliderOrientation;
|
|
5541
|
-
markerStyle: SliderMarkerStyle;
|
|
5542
|
-
/**
|
|
5543
|
-
* Optional marker-style override for the C handle in triple mode. Lets
|
|
5544
|
-
* consumers give C a different shape (e.g. dot) from the global
|
|
5545
|
-
* `markerStyle` applied to A/B.
|
|
5546
|
-
*/
|
|
5547
|
-
markerStyleC: SliderMarkerStyle | undefined;
|
|
5548
|
-
crossover: SliderCrossover;
|
|
5549
|
-
valueDrag: SliderValueDrag;
|
|
5550
|
-
/**
|
|
5551
|
-
* In triple mode, how the C handle reacts when A or B moves the [A, B]
|
|
5552
|
-
* band. `none` (default): C keeps its value unless pushed outside the
|
|
5553
|
-
* new band. `proportional`: C is re-anchored at the same fractional
|
|
5554
|
-
* position it had within the *old* band, so it moves with A/B.
|
|
5555
|
-
*/
|
|
5556
|
-
valueCFollow: SliderValueCFollow;
|
|
5557
|
-
valueMin: number;
|
|
5558
|
-
disabled: boolean;
|
|
5559
|
-
constructor();
|
|
5560
|
-
connectedCallback(): void;
|
|
5561
|
-
addLane(key: string, options?: {
|
|
5562
|
-
value?: number;
|
|
5563
|
-
valueMin?: number;
|
|
5564
|
-
valueMax?: number;
|
|
5565
|
-
type?: SliderLaneType;
|
|
5566
|
-
offset?: number;
|
|
5567
|
-
width?: number;
|
|
5568
|
-
}): void;
|
|
5569
|
-
setLaneValue(key: string, value: number): void;
|
|
5570
|
-
setLaneRange(key: string, valueMin: number, valueMax: number): void;
|
|
5571
|
-
removeLane(key: string): void;
|
|
5572
|
-
getLanes(): ReadonlyMap<string, SliderLaneData>;
|
|
5573
|
-
getLane(key: string): SliderLaneData | undefined;
|
|
5574
|
-
_applyWheelDelta(direction: WheelDirection, event: WheelEvent): void;
|
|
5575
|
-
protected willUpdate(changed: PropertyValues): void;
|
|
5576
|
-
render(): unknown;
|
|
5577
|
-
protected updated(changed: PropertyValues): void;
|
|
5578
|
-
disconnectedCallback(): void;
|
|
6653
|
+
input: RatingInputEvent;
|
|
6654
|
+
}
|
|
6655
|
+
declare class RatingElement extends LitElement {
|
|
5579
6656
|
static styles: CSSResult[];
|
|
6657
|
+
value: number;
|
|
6658
|
+
max: number;
|
|
6659
|
+
allowHalf: boolean;
|
|
6660
|
+
disabled: boolean;
|
|
6661
|
+
readonly: boolean;
|
|
6662
|
+
variant: RatingVariant;
|
|
6663
|
+
private _preview;
|
|
6664
|
+
connectedCallback(): void;
|
|
6665
|
+
protected updated(changed: Map<string, unknown>): void;
|
|
6666
|
+
private _path;
|
|
6667
|
+
private _effective;
|
|
6668
|
+
private _commit;
|
|
6669
|
+
private _calc;
|
|
6670
|
+
protected render(): TemplateResult<1>;
|
|
6671
|
+
firstUpdated(): void;
|
|
5580
6672
|
}
|
|
5581
6673
|
declare global {
|
|
5582
6674
|
interface HTMLElementTagNameMap {
|
|
5583
|
-
'ixfx-
|
|
6675
|
+
'ixfx-rating': RatingElement;
|
|
5584
6676
|
}
|
|
5585
6677
|
}
|
|
5586
|
-
interface
|
|
5587
|
-
addEventListener: (<K extends keyof
|
|
6678
|
+
interface IxfxRatingElement {
|
|
6679
|
+
addEventListener: (<K extends keyof RatingElementEventMap>(type: K, listener: (this: RatingElement, ev: RatingElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
6680
|
+
removeEventListener: (<K extends keyof RatingElementEventMap>(type: K, listener: (this: RatingElement, ev: RatingElementEventMap[K]) => void, options?: boolean | EventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void);
|
|
6681
|
+
}
|
|
6682
|
+
//#endregion
|
|
6683
|
+
//#region src/select-horiz/select-horiz.d.ts
|
|
6684
|
+
type SelectHorizChangeDetail = {
|
|
6685
|
+
readonly selectedIndex: number;
|
|
6686
|
+
readonly selectedItem: HTMLElement | null;
|
|
6687
|
+
readonly selectedValue: string | null;
|
|
6688
|
+
};
|
|
6689
|
+
type SelectHorizChangeEvent = CustomEvent<SelectHorizChangeDetail>;
|
|
6690
|
+
interface SelectHorizEventMap {
|
|
6691
|
+
change: SelectHorizChangeEvent;
|
|
6692
|
+
}
|
|
6693
|
+
declare global {
|
|
6694
|
+
interface HTMLElementTagNameMap {
|
|
6695
|
+
'ixfx-select-horiz': SelectHorizElement;
|
|
6696
|
+
}
|
|
6697
|
+
}
|
|
6698
|
+
interface SelectHorizElement {
|
|
6699
|
+
addEventListener: (<K extends keyof SelectHorizEventMap>(type: K, listener: (this: SelectHorizElement, event: SelectHorizEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
6700
|
+
}
|
|
6701
|
+
declare const SelectHorizElement_base: (new (...args: any[]) => WheelNudgeConsumerType<LitElement>) & typeof LitElement;
|
|
6702
|
+
declare class SelectHorizElement extends SelectHorizElement_base {
|
|
6703
|
+
static styles: CSSResult[];
|
|
6704
|
+
private _selectedIndex;
|
|
6705
|
+
private _slottedItems;
|
|
6706
|
+
private tickled;
|
|
6707
|
+
get selectedIndex(): number;
|
|
6708
|
+
set selectedIndex(value: number);
|
|
6709
|
+
get selectedValue(): string | null;
|
|
6710
|
+
set selectedValue(value: string | null);
|
|
6711
|
+
get selectedItem(): HTMLElement | null;
|
|
6712
|
+
get items(): HTMLCollection;
|
|
6713
|
+
protected render(): TemplateResult<1>;
|
|
6714
|
+
willUpdate(changed: Map<PropertyKey, unknown>): void;
|
|
6715
|
+
private _onSlotChange;
|
|
6716
|
+
private _syncTickled;
|
|
6717
|
+
private _findSlottedItem;
|
|
6718
|
+
private _handlePointerOver;
|
|
6719
|
+
private _handleKeyDown;
|
|
6720
|
+
private _applyTickledSelection;
|
|
6721
|
+
private _wheelCooldown;
|
|
6722
|
+
_applyWheelDelta(direction: WheelDirection, _event: WheelEvent): void;
|
|
6723
|
+
private _handleClick;
|
|
6724
|
+
private _updateSelectedAttribute;
|
|
6725
|
+
private _scrollSelectedIntoView;
|
|
6726
|
+
private _emitChange;
|
|
5588
6727
|
}
|
|
5589
6728
|
//#endregion
|
|
5590
6729
|
//#region src/sliding-number/sliding-number.d.ts
|
|
@@ -5772,62 +6911,23 @@ declare global {
|
|
|
5772
6911
|
}
|
|
5773
6912
|
}
|
|
5774
6913
|
//#endregion
|
|
5775
|
-
//#region src/split-layout/split-
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5779
|
-
|
|
5780
|
-
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
* CSS variables
|
|
5793
|
-
* --handle-size: 2px; // Width/height of split bar
|
|
5794
|
-
* --handle-colour: var(--surface-5); // Colour of handle
|
|
5795
|
-
* --handle-hover-colour: var(--surface-6); // Colour of handle when hovering
|
|
5796
|
-
* --handle-active-colour: var(--accent); // Colour of handle when being used
|
|
5797
|
-
* --handle-bg: var(--handle-colour); // Background of grab handle rectangle
|
|
5798
|
-
* --handle-grab-colour: var(--surface-muted-text); // Colour of grab handle dots
|
|
5799
|
-
* --handle-grab-dot-size: 3px; // Diameter of grab handle dots
|
|
5800
|
-
* --handle-grab-size: 16px; // Length of grab handle
|
|
5801
|
-
* --handle-grab-thickness: 8px; // Thickness of grab handle
|
|
5802
|
-
*/
|
|
5803
|
-
declare class SplitLayoutElement extends LitElement {
|
|
5804
|
-
#private;
|
|
5805
|
-
layout: `vertical` | `horizontal`;
|
|
5806
|
-
sizeA: string;
|
|
5807
|
-
sizeB: string;
|
|
5808
|
-
fixedA: boolean;
|
|
5809
|
-
fixedB: boolean;
|
|
5810
|
-
collapsible: boolean;
|
|
5811
|
-
collapsedA: boolean;
|
|
5812
|
-
collapsedB: boolean;
|
|
5813
|
-
minSizeA: string;
|
|
5814
|
-
maxSizeA: string;
|
|
5815
|
-
minSizeB: string;
|
|
5816
|
-
maxSizeB: string;
|
|
5817
|
-
private _hasCorner;
|
|
5818
|
-
private get showGrabHandle();
|
|
5819
|
-
disconnectedCallback(): void;
|
|
5820
|
-
firstUpdated(): void;
|
|
5821
|
-
updated(changedProperties: Map<string, unknown>): void;
|
|
5822
|
-
getZone(): HTMLElement | undefined;
|
|
5823
|
-
render(): TemplateResult<1>;
|
|
5824
|
-
static styles: CSSResult[];
|
|
5825
|
-
}
|
|
5826
|
-
declare global {
|
|
5827
|
-
interface HTMLElementTagNameMap {
|
|
5828
|
-
"ixfx-split-layout": SplitLayoutElement;
|
|
5829
|
-
}
|
|
5830
|
-
}
|
|
6914
|
+
//#region src/split-layout/split-model.d.ts
|
|
6915
|
+
declare function buildModel(rootEl: HTMLElement): GroupNode;
|
|
6916
|
+
declare function normalise(group: GroupNode): GroupNode;
|
|
6917
|
+
interface DistributeResult {
|
|
6918
|
+
sizesPx: number[];
|
|
6919
|
+
belowMin: number[];
|
|
6920
|
+
}
|
|
6921
|
+
declare function distribute(sizesPx: number[], gutterIndex: number, deltaPx: number, constraints: Array<{
|
|
6922
|
+
minPx: number;
|
|
6923
|
+
maxPx: number | null;
|
|
6924
|
+
fixedPx: number | null;
|
|
6925
|
+
whenSmall: WhenSmall;
|
|
6926
|
+
}>): DistributeResult;
|
|
6927
|
+
declare function resolveTracks(group: GroupNode, _containerPx: number): string;
|
|
6928
|
+
declare function toSnapshot(group: GroupNode): LayoutSnapshot;
|
|
6929
|
+
declare function applySnapshot(group: GroupNode, snapshot: LayoutSnapshot): GroupNode;
|
|
6930
|
+
declare function walk(group: GroupNode, visitor: (node: LayoutNode, path: number[]) => void): void;
|
|
5831
6931
|
//#endregion
|
|
5832
6932
|
//#region src/swipe/swipe.d.ts
|
|
5833
6933
|
type SwipeInputDetail = {
|
|
@@ -5882,82 +6982,6 @@ declare class SwipeElement extends SwipeElement_base {
|
|
|
5882
6982
|
render(): ReturnType<typeof html>;
|
|
5883
6983
|
}
|
|
5884
6984
|
//#endregion
|
|
5885
|
-
//#region src/tabs/tab-list-item.d.ts
|
|
5886
|
-
/**
|
|
5887
|
-
* CSS vars (can be overridden per-instance):
|
|
5888
|
-
* --selected-colour: text colour when selected
|
|
5889
|
-
* --selected-border-width: border width
|
|
5890
|
-
* --ixfx-tab-padding: vertical padding for the tab content (default: var(--space-m))
|
|
5891
|
-
* --ixfx-tab-padding-horizontal: horizontal padding (default: same as --ixfx-tab-padding)
|
|
5892
|
-
*/
|
|
5893
|
-
declare class TabListItemElement extends LitElement {
|
|
5894
|
-
closeable: boolean;
|
|
5895
|
-
hideLabels: boolean;
|
|
5896
|
-
iconName: string | undefined;
|
|
5897
|
-
description: string | undefined;
|
|
5898
|
-
commandActive: string | undefined;
|
|
5899
|
-
registry: CommandRegistry<unknown> | undefined;
|
|
5900
|
-
private _compact;
|
|
5901
|
-
private _hasToolbarContent;
|
|
5902
|
-
private _resizeObserver?;
|
|
5903
|
-
private _commandCleanup?;
|
|
5904
|
-
connectedCallback(): void;
|
|
5905
|
-
disconnectedCallback(): void;
|
|
5906
|
-
updated(changed: PropertyValues): void;
|
|
5907
|
-
private _syncTooltipAttrs;
|
|
5908
|
-
private _syncCommandListener;
|
|
5909
|
-
private _onToolbarSlotChange;
|
|
5910
|
-
private _updateToolbarContent;
|
|
5911
|
-
firstUpdated(): void;
|
|
5912
|
-
render(): TemplateResult<1>;
|
|
5913
|
-
private _onCloseClick;
|
|
5914
|
-
static styles: CSSResult[];
|
|
5915
|
-
}
|
|
5916
|
-
declare global {
|
|
5917
|
-
interface HTMLElementTagNameMap {
|
|
5918
|
-
"ixfx-tab-list-item": TabListItemElement;
|
|
5919
|
-
}
|
|
5920
|
-
}
|
|
5921
|
-
//#endregion
|
|
5922
|
-
//#region src/tabs/tab-list.d.ts
|
|
5923
|
-
/**
|
|
5924
|
-
* Events
|
|
5925
|
-
* 'change' - new tab selected { previous:string, selected:string, for:string }
|
|
5926
|
-
* 'reorder' - tab moved within the list { id:string, fromIndex:number, toIndex:number }
|
|
5927
|
-
*/
|
|
5928
|
-
type TabListChangeDetail = {
|
|
5929
|
-
readonly previous: string | undefined;
|
|
5930
|
-
readonly selected: string;
|
|
5931
|
-
readonly for: string;
|
|
5932
|
-
};
|
|
5933
|
-
type TabListChangeEvent = CustomEvent<TabListChangeDetail>;
|
|
5934
|
-
type TabListReorderDetail = {
|
|
5935
|
-
readonly id: string;
|
|
5936
|
-
readonly fromIndex: number;
|
|
5937
|
-
readonly toIndex: number;
|
|
5938
|
-
};
|
|
5939
|
-
type TabListReorderEvent = CustomEvent<TabListReorderDetail>;
|
|
5940
|
-
type TabListDragMode = `off` | `reorder`;
|
|
5941
|
-
declare class TabListElement extends LitElement {
|
|
5942
|
-
#private;
|
|
5943
|
-
orientation: `horizontal` | `vertical-stack` | `vertical-side`;
|
|
5944
|
-
flip: boolean;
|
|
5945
|
-
scrollable: boolean;
|
|
5946
|
-
hideLabels: boolean;
|
|
5947
|
-
dragMode: TabListDragMode;
|
|
5948
|
-
render(): TemplateResult<1>;
|
|
5949
|
-
firstUpdated(): void;
|
|
5950
|
-
updated(changedProperties: PropertyValues): void;
|
|
5951
|
-
getSelectedElement(): TabListItemElement | undefined;
|
|
5952
|
-
selectElement(el: HTMLElement): void;
|
|
5953
|
-
static styles: CSSResult[];
|
|
5954
|
-
}
|
|
5955
|
-
declare global {
|
|
5956
|
-
interface HTMLElementTagNameMap {
|
|
5957
|
-
"ixfx-tab-list": TabListElement;
|
|
5958
|
-
}
|
|
5959
|
-
}
|
|
5960
|
-
//#endregion
|
|
5961
6985
|
//#region src/tabs/tab-panel.d.ts
|
|
5962
6986
|
declare class TabPanelElement extends LitElement {
|
|
5963
6987
|
render(): TemplateResult<1>;
|
|
@@ -6544,12 +7568,14 @@ declare global {
|
|
|
6544
7568
|
type ToolbarOrientation = `horizontal` | `vertical-left` | `vertical-right`;
|
|
6545
7569
|
type ToolbarLayout = `one-line` | `wrap`;
|
|
6546
7570
|
type ToolbarVerticalWriting = `auto` | `up` | `down` | `none`;
|
|
7571
|
+
type ToolbarAlign = `near` | `far`;
|
|
6547
7572
|
//#endregion
|
|
6548
7573
|
//#region src/toolbar/toolbar.d.ts
|
|
6549
7574
|
declare class ToolbarElement extends LitElement {
|
|
6550
7575
|
orientation: ToolbarOrientation;
|
|
6551
7576
|
layout: ToolbarLayout;
|
|
6552
7577
|
verticalWriting: ToolbarVerticalWriting;
|
|
7578
|
+
toolbarAlign: ToolbarAlign;
|
|
6553
7579
|
showGroupLabels: boolean;
|
|
6554
7580
|
invisibleGroups: boolean;
|
|
6555
7581
|
private _overflowCount;
|
|
@@ -6619,6 +7645,63 @@ declare class TreeController<T> {
|
|
|
6619
7645
|
navigateToValue(predicate: (value: T) => boolean): boolean;
|
|
6620
7646
|
}
|
|
6621
7647
|
//#endregion
|
|
7648
|
+
//#region src/twosplit-layout/split-layout.d.ts
|
|
7649
|
+
/**
|
|
7650
|
+
* Lays out two elements within a container, with a bar to resize them
|
|
7651
|
+
* proportionally.
|
|
7652
|
+
*
|
|
7653
|
+
* Events
|
|
7654
|
+
* ixfx-split-collapsed: Dispatched when a panel is collapsed/uncollapsed via drag.
|
|
7655
|
+
* detail: { panel: 'A' | 'B', collapsed: boolean }
|
|
7656
|
+
*
|
|
7657
|
+
* Attributes
|
|
7658
|
+
* layout: `vertical`|`horizontal`
|
|
7659
|
+
* sizeA/B: CSS size of section A or B. Can use relative or absolute values
|
|
7660
|
+
* fixedA/B: If _true_ size will be calculated in pixels. By default (_false_) it uses % of whole
|
|
7661
|
+
* collapsible: If _true_, panels can be collapsed by dragging to edge (default: false)
|
|
7662
|
+
* minSizeA/B: Minimum size for panel A or B (e.g., "100px" or "20%"). Default: none
|
|
7663
|
+
* maxSizeA/B: Maximum size for panel A or B (e.g., "200px" or "80%"). Default: none
|
|
7664
|
+
*
|
|
7665
|
+
* CSS variables
|
|
7666
|
+
* --handle-size: 2px; // Width/height of split bar
|
|
7667
|
+
* --handle-colour: var(--surface-5); // Colour of handle
|
|
7668
|
+
* --handle-hover-colour: var(--surface-6); // Colour of handle when hovering
|
|
7669
|
+
* --handle-active-colour: var(--accent); // Colour of handle when being used
|
|
7670
|
+
* --handle-bg: var(--handle-colour); // Background of grab handle rectangle
|
|
7671
|
+
* --handle-grab-colour: var(--surface-muted-text); // Colour of grab handle dots
|
|
7672
|
+
* --handle-grab-dot-size: 3px; // Diameter of grab handle dots
|
|
7673
|
+
* --handle-grab-size: 16px; // Length of grab handle
|
|
7674
|
+
* --handle-grab-thickness: 8px; // Thickness of grab handle
|
|
7675
|
+
*/
|
|
7676
|
+
declare class TwoSplitLayoutElement extends LitElement {
|
|
7677
|
+
#private;
|
|
7678
|
+
layout: `vertical` | `horizontal`;
|
|
7679
|
+
sizeA: string;
|
|
7680
|
+
sizeB: string;
|
|
7681
|
+
fixedA: boolean;
|
|
7682
|
+
fixedB: boolean;
|
|
7683
|
+
collapsible: boolean;
|
|
7684
|
+
collapsedA: boolean;
|
|
7685
|
+
collapsedB: boolean;
|
|
7686
|
+
minSizeA: string;
|
|
7687
|
+
maxSizeA: string;
|
|
7688
|
+
minSizeB: string;
|
|
7689
|
+
maxSizeB: string;
|
|
7690
|
+
private _hasCorner;
|
|
7691
|
+
private get showGrabHandle();
|
|
7692
|
+
disconnectedCallback(): void;
|
|
7693
|
+
firstUpdated(): void;
|
|
7694
|
+
updated(changedProperties: Map<string, unknown>): void;
|
|
7695
|
+
getZone(): HTMLElement | undefined;
|
|
7696
|
+
render(): TemplateResult<1>;
|
|
7697
|
+
static styles: CSSResult[];
|
|
7698
|
+
}
|
|
7699
|
+
declare global {
|
|
7700
|
+
interface HTMLElementTagNameMap {
|
|
7701
|
+
"ixfx-twosplit-layout": TwoSplitLayoutElement;
|
|
7702
|
+
}
|
|
7703
|
+
}
|
|
7704
|
+
//#endregion
|
|
6622
7705
|
//#region src/util/checkbox.d.ts
|
|
6623
7706
|
declare function monitorIndeterminate(targetElOrQuery: string | HTMLElement, watchedElsOrQueries: Array<string | HTMLElement>): () => void;
|
|
6624
7707
|
//#endregion
|
|
@@ -6712,5 +7795,5 @@ interface XyPad {
|
|
|
6712
7795
|
//#region src/index.d.ts
|
|
6713
7796
|
declare function init(): void;
|
|
6714
7797
|
//#endregion
|
|
6715
|
-
export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, AddItemOptions, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, DataGridElement, DataGridElementEventMap, DataGridGroupChangeDetail, DataGridGroupChangeEvent, DataGridSelectDetail, DataGridSelectEvent, DataGridSortDetail, DataGridSortEvent, DataProviderResult, DisplayTextLogic, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, Endpoints, EntryMode, FormElement, FormGroupElement, FormPartElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, GridMode, GridResolution, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type IconChangedDetail, type IconChangedEvent, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxRatingElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LaneData, LaneType, LedElement, type ListActivateDetail, type ListActivateEvent, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListSelectDetail, type ListSelectEvent, type ListSelectionMode, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramOrientation, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, RatingChangeDetail, RatingChangeEvent, RatingElement, RatingElementEventMap, RatingInputEvent, RatingVariant, type Rect, RectangularSelectEventDetail, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SlidingNumberElement, SlidingNumberTrend, SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SortCompareFn, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitLayoutElement, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, Tab, TabAddOptions, TabController, TabControllerOptions, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TextShimmerElement, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, ToolbarElement, ToolbarGroupElement, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeListAdapterOptions, TreeListElement, TreeSearchHost, TreeSelectionFilter, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, ViewRange, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, applyAgeModification, applyHighlights, attachTimelineInteractions, buildHighlightTargets, clearHighlights, collectDataResult, computeColour, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch, createPillRenderer, createTreeListAdapter, createVerticalListAdapter, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
|
|
7798
|
+
export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent, AcTokenElement, type AcTokenElementEventMap, type AcTokenItem, type AcTokenRemoveDetail, type AcTokenRemoveEvent, type AcTokenizerFn, type AcTokensChangeDetail, type AcTokensChangeEvent, AddItemOptions, Axis, ButtonElement, Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap, ClickSnapMode, ColourMapConfig, ColourMode, ColourPicker, type ColourPickerChangeEvent, type ColourPickerEventDetail, type ColourPickerInputEvent, ColourPickerPopup, ColourResult, ConfigEntry, ContiguousSelectEventDetail, CrossoverBehaviour, CrumbNavChangeDetail, CrumbNavChangeEvent, CrumbNavExpandDetail, CrumbNavExpandEvent, CrumbNavNavigateDetail, CrumbNavNavigateEvent, CrumbNavigationChangeDetail, CrumbNavigationChangeEvent, CrumbNavigationElement, CrumbNavigationElementEventMap, CrumbNavigationExpandDetail, CrumbNavigationExpandEvent, CrumbNavigationItemClickDetail, CrumbNavigationItemClickEvent, CrumbPathController, CrumbPathControllerOptions, CrumbPathElement, CrumbPathElementEventMap, CrumbSegment, CrumbSiblingLookupFn, type CssVars, CustomCheckboxOptions, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataGridCellClickDetail, DataGridCellClickEvent, DataGridCellEditDetail, DataGridCellEditEvent, DataGridColumnReorderDetail, DataGridColumnReorderEvent, DataGridColumnResizeDetail, DataGridColumnResizeEvent, DataGridColumnVisibilityDetail, DataGridColumnVisibilityEvent, DataGridElement, DataGridElementEventMap, DataGridGroupChangeDetail, DataGridGroupChangeEvent, DataGridSelectDetail, DataGridSelectEvent, DataGridSortDetail, DataGridSortEvent, DataProviderResult, type DetailFormatter, DetailListElement, type DetailSortComparator, type DetailSortItem, type DetailSortMode, DisplayTextLogic, DistributeResult, DockAddPanelTarget, DockAxis, DockChangeDetail, DockChangeEvent, DockDirection, DockDragBoundaryDetail, DockDragBoundaryEvent, DockDropTarget, type DockDropZone, DockEdge, DockHostElement, DockHostElementEventMap, DockLayout, DockLeafContentRules, DockLeafInfo, DockLeafRef, DockNeighbours, DockNode, DockOperation, DockPanelActivatedDetail, DockPanelActivatedEvent, DockPanelAddedDetail, DockPanelAddedEvent, DockPanelDragStartDetail, DockPanelDragStartEvent, DockPanelElement, DockPanelElementEventMap, DockPanelInit, DockPanelRemovedDetail, DockPanelRemovedEvent, DockPanelSnapshot, DockPanelTearOutDetail, DockPanelTearOutEvent, DockRect, DockSplitNode, DockStackNode, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, Endpoints, EntryMode, FormElement, FormGroupElement, FormPartElement, FormatValueForHuman, FormattingOptions, type FuzzySearch, type FuzzySearchOptions, FuzzySearchResult, GridMode, GridResolution, GroupNode, GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, HexChangeDetail, HexChangeEvent, type HighlightOptions, type HighlightTarget, ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, IDataProvider, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type IconChangedDetail, type IconChangedEvent, type IconEntry, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, ItemsProvider, IxfxHexEditorElement, IxfxIconElement, IxfxRatingElement, IxfxTimelineElement, LabelledRadialInput, LabelledRangeInput, LabelledSliderInput, LaneData, LaneType, LayoutNode, LayoutSnapshot, LeafGeom, LedElement, type ListActivateDetail, type ListActivateEvent, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListSelectDetail, type ListSelectEvent, type ListSelectionMode, type ListTickleDetail, type ListTickleEvent, LoadChildrenCallback, MarkerStyle, index_d_exports as Menu, type TreeActivateDetail as MillerActivateDetail, TreeActivateDetail, type TreeActivateEvent as MillerActivateEvent, TreeActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, TreeCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, TreeCollapseEvent, MillerConfig, type TreeExpandDetail as MillerExpandDetail, TreeExpandDetail, type TreeExpandEvent as MillerExpandEvent, TreeExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, TreeItem, type TreeItemClickDetail as MillerItemClickDetail, TreeItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, TreeItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type TreeNode as MillerNode, TreeNode, type TreeSelectDetail as MillerSelectDetail, TreeSelectDetail, type TreeSelectEvent as MillerSelectEvent, TreeSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, TreeTickleDetail, type TreeTickleEvent as MillerTickleEvent, TreeTickleEvent, MillerTreeController, MillerTreeControllerOptions, NarrowedTextChangeDetail, NarrowedTextChangeEvent, NarrowedTextElement, NarrowedTextItem, NoneSelectEventDetail, Notification, NotificationContent, NotificationManager, NotificationPillElement, NotificationPillElementEventMap, NotificationRenderer, NotificationRendererHooks, NotificationType, NotifierOptions, type OklchValue, Orientation, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelInfo, PanelNode, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PillPosition, PillQueueDisplay, PillRendererOptions, PillSafeArea, PillTapDetail, PillTapEvent, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramOrientation, PlotHistogramValueTooltips, PlotMultiAxis, PlotMultiAxisDataPointClickDetail, PlotMultiAxisDataPointClickEvent, PlotMultiAxisElementEventMap, PlotMultiAxisLayout, PlotSingleAxis, PlotSingleAxisElementEventMap, PlotSingleAxisPointerMoveDetail, PlotSingleAxisPointerMoveEvent, PlotXyAxis, PolarPad, PolarPadInputDetail, PolarPadInputEvent, PopupItem, RadialInputChangeDetail, RadialInputChangeEvent, RadialInputElement, RadialInputInputDetail, RadialInputInputEvent, RadioGroup, RadioGroupChangeDetail, RadioGroupChangeEvent, RadioGroupMode, RadioItem, RangeElement, RangeInput, RangeMultiElement, RangeMultiInputDetail, RangeMultiInputEvent, RatingChangeDetail, RatingChangeEvent, RatingElement, RatingElementEventMap, RatingInputEvent, RatingVariant, type Rect, RectangularSelectEventDetail, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizChangeDetail, SelectHorizChangeEvent, SelectHorizElement, SelectHorizEventMap, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SliderChangedField, SliderCrossover, SliderHandleKey, SliderInputChangeDetail, SliderInputChangeEvent, SliderInputElement, SliderInputElementEventMap, SliderInputInputDetail, SliderInputInputEvent, SliderLaneData, SliderLaneType, SliderMarkerStyle, SliderOrientation, SliderSingleStyle, SliderValueCFollow, SliderValueDrag, SliderValueMode, SlidingNumberElement, SlidingNumberTrend, SnackbarDismiss, SnackbarElement, SnackbarMode, SnackbarPlacement, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, SnapshotNode, SortCompareFn, SplitButton, SplitButtonMode, SplitButtonSelectDetail, SplitButtonSelectEvent, SplitChangeDetail, SplitChangeEvent, SplitCloseDetail, SplitCloseEvent, SplitCollapseDetail, SplitCollapseEvent, SplitExpandDetail, SplitExpandEvent, SplitLayoutElement, SplitLayoutElementEventMap, SplitPanelElement, SplitResizeDetail, SplitResizeEvent, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent, SwipeElement, SwipeElementEventMap, SwipeInputDetail, SwipeInputEvent, SwitcherItem, Tab, TabAddOptions, TabController, TabControllerOptions, TabListChangeDetail, TabListChangeEvent, TabListDragMode, TabListElement, TabListItemElement, TabListReorderDetail, TabListReorderEvent, TabPanelElement, TabPanelsElement, TextShimmerElement, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TitlebarCloseEvent, TitlebarElement, TitlebarElementEventMap, TitlebarOrientation, TitlebarToggleDetail, TitlebarToggleEvent, TitlebarToggleInteraction, TitlebarVariant, ToolbarAlign, ToolbarElement, ToolbarGroupElement, ToolbarLayout, ToolbarOrientation, ToolbarVerticalWriting, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, TreeCheckboxState, TreeComponent, TreeComponentEventMap, TreeConfig, TreeController, TreeControllerOptions, TreeDataModel, TreeDataModelOptions, TreeExclusivity, TreeFilterPredicate, TreeInteractionMode, TreeListAdapterOptions, TreeListElement, TreeSearchHost, TreeSelectionFilter, TwoSplitLayoutElement, UserScale, ValueMode, VerticalListAdapterOptions, VerticalListElement, ViewRange, WhenSmall, XyAgeStyle, XyDrawStyle, XyPad, XyPadEventMap, XyPadInputDetail, XyPadInputEvent, addPanelToStack, applyAgeModification, applyHighlights, applySnapshot, attachTimelineInteractions, buildHighlightTargets, buildModel, clearHighlights, collectContainerNames, collectDataResult, collectPanelIds, collectStackPaths, computeColour, computeLeafGeoms, createAcCompletionProvider, createElementIncrSearch, createEmptyLayout, createEmptyStack, createFuzzySearch, createIncrSearch, createPillRenderer, createSplit, createStack, createTreeListAdapter, createVerticalListAdapter, distribute, extractStack, findNode, findParentOf, findStackOf, findStackPathByName, getActiveDragPanelId, getIcon, getIconEntry, getIconFont, getLeafNeighbours, hasIcon, iconBus, init, insertBeside, isDragging, isSplit, isStack, monitorIndeterminate, moveLeafNodeToEdge, moveLeafStep, normalise, normalize, parseColourScaleAttr, parseLayout, pointerOverAnyHost, readBaseColour, registerFontIcon, registerIcon, removePanelFromStack, resolveCssVars, resolveGrid, resolveLeafPath, resolveTracks, serializeLayout, setActive, setIconFont, svgToDataUri, swapLeaves, timelineStyles, toSnapshot, walk, wrapRoot };
|
|
6716
7799
|
//# sourceMappingURL=index.d.ts.map
|