@ixfx/components 0.3.2 → 0.4.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 +1086 -603
- package/bundle/index.d.ts.map +1 -1
- package/bundle/index.js +16153 -15296
- package/bundle/index.js.map +1 -1
- package/bundle/style.css +14 -4
- package/dist/ac-text.d.ts.map +1 -1
- package/dist/ac-text.js +11 -6
- package/dist/ac-text.js.map +1 -1
- package/dist/{button-DMt5XWUK.js → button-C3fLMKUv.js} +4 -4
- package/dist/{button-DMt5XWUK.js.map → button-C3fLMKUv.js.map} +1 -1
- package/dist/button.d.ts.map +1 -1
- package/dist/button.js +1 -1
- package/dist/checkbox.d.ts +2 -2
- package/dist/checkbox.d.ts.map +1 -1
- package/dist/checkbox.js +14 -8
- package/dist/checkbox.js.map +1 -1
- package/dist/{colour-C3MQIjFJ-BLXg8W3U.js → colour-C3MQIjFJ-vRCdr8W-.js} +146 -552
- package/dist/colour-C3MQIjFJ-vRCdr8W-.js.map +1 -0
- package/dist/{colour-picker-K6zu82lm.js → colour-picker-0sgAha1T.js} +14 -9
- package/dist/colour-picker-0sgAha1T.js.map +1 -0
- package/dist/colour-picker.d.ts +1 -1
- package/dist/colour-picker.js +1 -1
- package/dist/crumbs.d.ts +1 -1
- package/dist/crumbs.d.ts.map +1 -1
- package/dist/crumbs.js +11 -6
- package/dist/crumbs.js.map +1 -1
- package/dist/data-display.d.ts +9 -4
- package/dist/data-display.d.ts.map +1 -1
- package/dist/data-display.js +270 -43
- package/dist/data-display.js.map +1 -1
- package/dist/data-provider-DgI909FP.js +23 -0
- package/dist/data-provider-DgI909FP.js.map +1 -0
- package/dist/{decorate-D7rC1gLP.js → decorate-DdjvVHS-.js} +2 -2
- package/dist/{decorate-D7rC1gLP.js.map → decorate-DdjvVHS-.js.map} +1 -1
- package/dist/{defaults-C7elhuyJ.js → defaults-C3b9OWJD.js} +2 -2
- package/dist/{defaults-C7elhuyJ.js.map → defaults-C3b9OWJD.js.map} +1 -1
- package/dist/{dist-TAGYwaju.js → dist-CA13FvMn.js} +7 -66
- package/dist/dist-CA13FvMn.js.map +1 -0
- package/dist/editable-label.d.ts.map +1 -1
- package/dist/editable-label.js +3 -2
- package/dist/editable-label.js.map +1 -1
- package/dist/fallbacks-pNMOMx38.js +168 -0
- package/dist/fallbacks-pNMOMx38.js.map +1 -0
- package/dist/{hex-editor-DlfoA65y.d.ts → hex-editor-CMIxtNgT.d.ts} +1 -1
- package/dist/hex-editor-CMIxtNgT.d.ts.map +1 -0
- package/dist/{hex-editor-CsN_ySkH.js → hex-editor-WZrjRtvL.js} +3 -3
- package/dist/{hex-editor-CsN_ySkH.js.map → hex-editor-WZrjRtvL.js.map} +1 -1
- package/dist/hex.d.ts +1 -1
- package/dist/hex.js +1 -1
- package/dist/{highlight-TPbSHruI.js → highlight-B-eQrhhb.js} +1 -1
- package/dist/{highlight-TPbSHruI.js.map → highlight-B-eQrhhb.js.map} +1 -1
- package/dist/{icon-9NWTXtE1.js → icon-Ndo40kNO.js} +6 -5
- package/dist/icon-Ndo40kNO.js.map +1 -0
- package/dist/{icon-Dm_DHDz6.d.ts → icon-epZd-JIO.d.ts} +2 -2
- package/dist/icon-epZd-JIO.d.ts.map +1 -0
- package/dist/icons.d.ts +2 -2
- package/dist/icons.js +3 -3
- package/dist/{incr-search-DSKKsk6w.js → incr-search-CeERfijK.js} +2 -2
- package/dist/{incr-search-DSKKsk6w.js.map → incr-search-CeERfijK.js.map} +1 -1
- package/dist/incr-search.d.ts +1 -1
- package/dist/incr-search.js +2 -2
- package/dist/{index-hXFn14tM.d.ts → index-BMjri2-S.d.ts} +2 -2
- package/dist/{index-hXFn14tM.d.ts.map → index-BMjri2-S.d.ts.map} +1 -1
- package/dist/{index-DSlPeWLK.d.ts → index-CWpNcQKE.d.ts} +5 -5
- package/dist/index-CWpNcQKE.d.ts.map +1 -0
- package/dist/{index-DLkSKL4T.d.ts → index-CowKi2mo.d.ts} +1 -1
- package/dist/index-CowKi2mo.d.ts.map +1 -0
- package/dist/{index-B1hNR7Z9.d.ts → index-D87kRcEs.d.ts} +1 -1
- package/dist/{index-B1hNR7Z9.d.ts.map → index-D87kRcEs.d.ts.map} +1 -1
- package/dist/{index-CnL9krsH.d.ts → index-DgXpCg_G.d.ts} +32 -26
- package/dist/index-DgXpCg_G.d.ts.map +1 -0
- package/dist/{index-iZLld8Ca.d.ts → index-JuEVfmr-.d.ts} +2 -2
- package/dist/index-JuEVfmr-.d.ts.map +1 -0
- package/dist/index.d.ts +432 -121
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2369 -1706
- package/dist/index.js.map +1 -1
- package/dist/interaction-D6efrBLo.js +1 -0
- package/dist/{keyboard-De_vOHLg.js → keyboard-CimiEskD.js} +1 -1
- package/dist/{keyboard-De_vOHLg.js.map → keyboard-CimiEskD.js.map} +1 -1
- package/dist/{labelled-input-base-CqPL5rKm.js → labelled-input-base-9K_w3oLj.js} +2 -2
- package/dist/{labelled-input-base-CqPL5rKm.js.map → labelled-input-base-9K_w3oLj.js.map} +1 -1
- package/dist/{labelled-input-base-BVvNeb5R.d.ts → labelled-input-base-Cz6qE6Dk.d.ts} +1 -1
- package/dist/labelled-input-base-Cz6qE6Dk.d.ts.map +1 -0
- package/dist/labelled-radial-input.d.ts +2 -2
- package/dist/labelled-radial-input.d.ts.map +1 -1
- package/dist/labelled-radial-input.js +7 -6
- package/dist/labelled-radial-input.js.map +1 -1
- package/dist/labelled-range-input.d.ts +1 -1
- package/dist/labelled-range-input.js +2 -2
- package/dist/led.d.ts +1 -1
- package/dist/led.d.ts.map +1 -1
- package/dist/led.js +2 -2
- package/dist/led.js.map +1 -1
- package/dist/{menu-item-CKRfP0pN.js → menu-item-BrIuORYD.js} +20 -10
- package/dist/menu-item-BrIuORYD.js.map +1 -0
- package/dist/{menu-item-ClQF2DKN.d.ts → menu-item-COx-Azgj.d.ts} +1 -1
- package/dist/menu-item-COx-Azgj.d.ts.map +1 -0
- package/dist/{menu-DJJuCm-5.js → menu-vjoiHZ13.js} +30 -17
- package/dist/menu-vjoiHZ13.js.map +1 -0
- package/dist/menu.d.ts +2 -2
- package/dist/menu.js +2 -2
- package/dist/miller.d.ts +2 -2
- package/dist/miller.d.ts.map +1 -1
- package/dist/miller.js +18 -11
- package/dist/miller.js.map +1 -1
- package/dist/narrowed-text.d.ts.map +1 -1
- package/dist/narrowed-text.js +7 -5
- package/dist/narrowed-text.js.map +1 -1
- package/dist/panel.d.ts +1 -1
- package/dist/panel.d.ts.map +1 -1
- package/dist/panel.js +5 -4
- package/dist/panel.js.map +1 -1
- package/dist/plots.d.ts +2 -2
- package/dist/plots.js +2 -2
- package/dist/polar-pad.d.ts +1 -1
- package/dist/polar-pad.d.ts.map +1 -1
- package/dist/polar-pad.js +10 -4
- package/dist/polar-pad.js.map +1 -1
- package/dist/{popup-ImtS9KnS.js → popup-DiWMxsWj.js} +1 -1
- package/dist/{popup-ImtS9KnS.js.map → popup-DiWMxsWj.js.map} +1 -1
- package/dist/prominence-DlFShic3.js +104 -0
- package/dist/prominence-DlFShic3.js.map +1 -0
- package/dist/{radial-input-LUSBEycd.d.ts → radial-input-CpQPs1Mp.d.ts} +1 -1
- package/dist/radial-input-CpQPs1Mp.d.ts.map +1 -0
- package/dist/{radial-input-DZA6WaFu.js → radial-input-DZ7eQCcM.js} +11 -6
- package/dist/radial-input-DZ7eQCcM.js.map +1 -0
- package/dist/radial-input.d.ts +1 -1
- package/dist/radial-input.js +1 -1
- package/dist/range-input.d.ts +1 -1
- package/dist/range-input.d.ts.map +1 -1
- package/dist/range-input.js +9 -4
- package/dist/range-input.js.map +1 -1
- package/dist/range.d.ts +1 -1
- package/dist/range.d.ts.map +1 -1
- package/dist/range.js +5 -3
- package/dist/range.js.map +1 -1
- package/dist/{registry-Q2gYQCHM.js → registry-CkW7q09Q.js} +1 -1
- package/dist/{registry-Q2gYQCHM.js.map → registry-CkW7q09Q.js.map} +1 -1
- package/dist/selecthorizontal.d.ts +1 -1
- package/dist/selecthorizontal.d.ts.map +1 -1
- package/dist/selecthorizontal.js +4 -3
- package/dist/selecthorizontal.js.map +1 -1
- package/dist/snap-container.d.ts.map +1 -1
- package/dist/snap-container.js +1 -1
- package/dist/split-layout.d.ts +1 -1
- package/dist/split-layout.d.ts.map +1 -1
- package/dist/split-layout.js +6 -5
- package/dist/split-layout.js.map +1 -1
- package/dist/style.css +14 -4
- package/dist/swipe.d.ts.map +1 -1
- package/dist/swipe.js +9 -4
- package/dist/swipe.js.map +1 -1
- package/dist/{tab-list-BnqISNvO.d.ts → tab-list-DLzb-m-I.d.ts} +2 -2
- package/dist/tab-list-DLzb-m-I.d.ts.map +1 -0
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +10 -4
- package/dist/tabs.js.map +1 -1
- package/dist/{tickled-controller-Cq1Va0rR.d.ts → tickled-controller-BjYCzGrU.d.ts} +2 -2
- package/dist/tickled-controller-BjYCzGrU.d.ts.map +1 -0
- package/dist/{tickled-styles-Bg3QbcrD.js → tickled-styles-fNDdqf6l.js} +1 -17
- package/dist/{tickled-styles-Bg3QbcrD.js.map → tickled-styles-fNDdqf6l.js.map} +1 -1
- package/dist/{timeline-Bh0PhlKW.js → timeline-2OFtN4Ta.js} +2 -2
- package/dist/{timeline-Bh0PhlKW.js.map → timeline-2OFtN4Ta.js.map} +1 -1
- package/dist/timeline.d.ts +1 -1
- package/dist/timeline.js +1 -1
- package/dist/{tooltip-DMxmBNky.js → tooltip-CJt3WLmN.js} +1 -1
- package/dist/{tooltip-DMxmBNky.js.map → tooltip-CJt3WLmN.js.map} +1 -1
- package/dist/{tooltip-CwGfb4lp.d.ts → tooltip-RGVIwHrZ.d.ts} +1 -1
- package/dist/{tooltip-CwGfb4lp.d.ts.map → tooltip-RGVIwHrZ.d.ts.map} +1 -1
- package/dist/{tree-CvvKbO-f.js → tree-CJWpMUvD.js} +113 -103
- package/dist/tree-CJWpMUvD.js.map +1 -0
- package/dist/{tree-component-D8Bg48tt.d.ts → tree-component-BcO26Xvt.d.ts} +65 -3
- package/dist/tree-component-BcO26Xvt.d.ts.map +1 -0
- package/dist/tree.d.ts +15 -15
- package/dist/tree.d.ts.map +1 -1
- package/dist/tree.js +1 -1
- package/dist/{types-BKaqnpwx.d.ts → types-DSfbtHs3.d.ts} +1 -1
- package/dist/types-DSfbtHs3.d.ts.map +1 -0
- package/dist/{xy-axis-DL0tfJDr.js → xy-axis-CK64haaK.js} +1831 -359
- package/dist/xy-axis-CK64haaK.js.map +1 -0
- package/dist/{xy-axis-D9uwpGTT.d.ts → xy-axis-McdUpcYr.d.ts} +102 -3
- package/dist/xy-axis-McdUpcYr.d.ts.map +1 -0
- package/dist/xy-pad.d.ts +1 -1
- package/dist/xy-pad.d.ts.map +1 -1
- package/dist/xy-pad.js +11 -6
- package/dist/xy-pad.js.map +1 -1
- package/docs-user/README.md +45 -0
- package/docs-user/ac-text.md +67 -0
- package/docs-user/ac-token.md +187 -0
- package/docs-user/button.md +355 -0
- package/docs-user/checkbox.md +62 -0
- package/docs-user/colour-picker.md +237 -0
- package/docs-user/crumbs.md +66 -0
- package/docs-user/data-display.md +98 -0
- package/docs-user/editable-label.md +244 -0
- package/docs-user/grouped-item-lister.md +424 -0
- package/docs-user/icons.md +191 -0
- package/docs-user/incr-search.md +94 -0
- package/docs-user/labelled-radial-input.md +204 -0
- package/docs-user/labelled-range-input.md +194 -0
- package/docs-user/led.md +40 -0
- package/docs-user/menu.md +319 -0
- package/docs-user/miller.md +453 -0
- package/docs-user/narrowed-text.md +72 -0
- package/docs-user/panel.md +250 -0
- package/docs-user/plots.md +361 -0
- package/docs-user/polar-pad.md +228 -0
- package/docs-user/radial-input.md +559 -0
- package/docs-user/range-input.md +264 -0
- package/docs-user/range.md +12 -0
- package/docs-user/selecthorizontal.md +32 -0
- package/docs-user/snap-container.md +132 -0
- package/docs-user/split-layout.md +232 -0
- package/docs-user/swipe.md +44 -0
- package/docs-user/tabs.md +217 -0
- package/docs-user/timeline.md +116 -0
- package/docs-user/transitory-label.md +120 -0
- package/docs-user/tree.md +592 -0
- package/docs-user/user-catalog.md +165 -0
- package/docs-user/user-theming.md +379 -0
- package/docs-user/util.md +122 -0
- package/docs-user/vertical-list.md +351 -0
- package/docs-user/xy-pad.md +94 -0
- package/package.json +19 -18
- package/dist/colour-C3MQIjFJ-BLXg8W3U.js.map +0 -1
- package/dist/colour-picker-K6zu82lm.js.map +0 -1
- package/dist/dist-BX0OVIm7.js +0 -1290
- package/dist/dist-BX0OVIm7.js.map +0 -1
- package/dist/dist-TAGYwaju.js.map +0 -1
- package/dist/hex-editor-DlfoA65y.d.ts.map +0 -1
- package/dist/icon-9NWTXtE1.js.map +0 -1
- package/dist/icon-Dm_DHDz6.d.ts.map +0 -1
- package/dist/index-CnL9krsH.d.ts.map +0 -1
- package/dist/index-DLkSKL4T.d.ts.map +0 -1
- package/dist/index-DSlPeWLK.d.ts.map +0 -1
- package/dist/index-iZLld8Ca.d.ts.map +0 -1
- package/dist/interaction-DG7X1rhI.js +0 -1
- package/dist/labelled-input-base-BVvNeb5R.d.ts.map +0 -1
- package/dist/menu-DJJuCm-5.js.map +0 -1
- package/dist/menu-item-CKRfP0pN.js.map +0 -1
- package/dist/menu-item-ClQF2DKN.d.ts.map +0 -1
- package/dist/prominence--ic9uWBl.js +0 -98
- package/dist/prominence--ic9uWBl.js.map +0 -1
- package/dist/radial-input-DZA6WaFu.js.map +0 -1
- package/dist/radial-input-LUSBEycd.d.ts.map +0 -1
- package/dist/tab-list-BnqISNvO.d.ts.map +0 -1
- package/dist/tickled-controller-Cq1Va0rR.d.ts.map +0 -1
- package/dist/tree-CvvKbO-f.js.map +0 -1
- package/dist/tree-component-D8Bg48tt.d.ts.map +0 -1
- package/dist/types-BKaqnpwx.d.ts.map +0 -1
- package/dist/xy-axis-D9uwpGTT.d.ts.map +0 -1
- package/dist/xy-axis-DL0tfJDr.js.map +0 -1
- /package/bundle/{chunk-pbuEa-1d.js → chunk-D7D4PA-g.js} +0 -0
- /package/dist/{chunk-pbuEa-1d.js → chunk-D7D4PA-g.js} +0 -0
package/bundle/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FzfOptions } from "fzf";
|
|
2
|
-
import { CommandRegistry, KeyboardManager } from "@clinth/ui-commands";
|
|
2
|
+
import { CommandId, CommandRegistry, KeyboardManager } from "@clinth/ui-commands";
|
|
3
3
|
|
|
4
4
|
//#region node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/development/css-tag.d.ts
|
|
5
5
|
/**
|
|
@@ -1054,7 +1054,7 @@ declare class IxfxIconElement extends LitElement {
|
|
|
1054
1054
|
disconnectedCallback(): void;
|
|
1055
1055
|
protected render(): typeof nothing | TemplateResult<1>;
|
|
1056
1056
|
protected updated(changed: Map<string, unknown>): void;
|
|
1057
|
-
static styles: CSSResult;
|
|
1057
|
+
static styles: CSSResult[];
|
|
1058
1058
|
}
|
|
1059
1059
|
declare global {
|
|
1060
1060
|
interface HTMLElementTagNameMap {
|
|
@@ -1163,7 +1163,6 @@ type AcTokenItem = {
|
|
|
1163
1163
|
readonly data?: unknown;
|
|
1164
1164
|
readonly positions?: ReadonlySet<number>;
|
|
1165
1165
|
};
|
|
1166
|
-
type AcTokenCompletionProvider = (token: string, signal: AbortSignal) => Promise<AcTokenItem[]> | AcTokenItem[];
|
|
1167
1166
|
type AcTokenizerFn = (text: string) => string[];
|
|
1168
1167
|
type AcTokensChangeDetail = {
|
|
1169
1168
|
readonly tokens: readonly AcTokenItem[];
|
|
@@ -1185,6 +1184,64 @@ interface AcTokenElementEventMap {
|
|
|
1185
1184
|
'ac-token-remove': AcTokenRemoveEvent;
|
|
1186
1185
|
}
|
|
1187
1186
|
//#endregion
|
|
1187
|
+
//#region src/common/data-provider.d.ts
|
|
1188
|
+
/**
|
|
1189
|
+
* Shared data-provider contract used by components that render a list of items.
|
|
1190
|
+
*
|
|
1191
|
+
* A provider is a simple callable — the consuming component (via DataController)
|
|
1192
|
+
* manages the request lifecycle, cancellation, and reactive state.
|
|
1193
|
+
*/
|
|
1194
|
+
/**
|
|
1195
|
+
* One batch of items within a streaming provider response.
|
|
1196
|
+
*
|
|
1197
|
+
* For sync and async one-shot providers, the DataController synthesises a single
|
|
1198
|
+
* DataBatch internally — you only need this type when writing a streaming provider.
|
|
1199
|
+
*/
|
|
1200
|
+
type DataBatch<T> = {
|
|
1201
|
+
/** Items delivered in this batch. */readonly items: readonly T[];
|
|
1202
|
+
/**
|
|
1203
|
+
* When true, replace all previously accumulated items with this batch instead
|
|
1204
|
+
* of appending. Useful for re-ranked or filtered results mid-stream.
|
|
1205
|
+
* Default: false (append).
|
|
1206
|
+
*/
|
|
1207
|
+
replace?: boolean;
|
|
1208
|
+
/**
|
|
1209
|
+
* Provider's current estimate of the total number of items that will be
|
|
1210
|
+
* delivered across all batches. Enables progress percentage in the consumer.
|
|
1211
|
+
* May be refined in subsequent batches as the estimate improves.
|
|
1212
|
+
* Omit when the total is unknown.
|
|
1213
|
+
*/
|
|
1214
|
+
total?: number;
|
|
1215
|
+
};
|
|
1216
|
+
/**
|
|
1217
|
+
* The three return modes a provider may use.
|
|
1218
|
+
* DataController normalises all three — callers can mix modes freely.
|
|
1219
|
+
*
|
|
1220
|
+
* - `readonly T[]` — sync, items available immediately
|
|
1221
|
+
* - `Promise<readonly T[]>` — async one-shot, resolves to the full result
|
|
1222
|
+
* - `AsyncIterable<DataBatch<T>>` — streaming, batches arrive over time
|
|
1223
|
+
*/
|
|
1224
|
+
type DataProviderResult<T> = readonly T[] | Promise<readonly T[]> | AsyncIterable<DataBatch<T>>;
|
|
1225
|
+
/**
|
|
1226
|
+
* A data provider callable.
|
|
1227
|
+
*
|
|
1228
|
+
* @typeParam TQuery - The input that scopes the request (e.g. `string` for
|
|
1229
|
+
* autocomplete, `{ node, depth }` for a tree branch, `void` for a plain list).
|
|
1230
|
+
* @typeParam TItem - The item type produced.
|
|
1231
|
+
*
|
|
1232
|
+
* The AbortSignal is cancelled when the consumer supersedes the request (e.g.
|
|
1233
|
+
* a new query arrives before the previous one completes). Streaming providers
|
|
1234
|
+
* should check `signal.aborted` between yields or pass the signal to their
|
|
1235
|
+
* underlying fetch calls.
|
|
1236
|
+
*/
|
|
1237
|
+
type IDataProvider<TQuery, TItem> = (query: TQuery, signal: AbortSignal) => DataProviderResult<TItem>;
|
|
1238
|
+
/**
|
|
1239
|
+
* Collects all items from any DataProviderResult into a flat array.
|
|
1240
|
+
* Useful for components that need a complete list before rendering (e.g. tree branches).
|
|
1241
|
+
* Respects the AbortSignal — stops accumulating if cancelled mid-stream.
|
|
1242
|
+
*/
|
|
1243
|
+
declare function collectDataResult<T>(result: DataProviderResult<T>, signal: AbortSignal): Promise<readonly T[]>;
|
|
1244
|
+
//#endregion
|
|
1188
1245
|
//#region src/ac-token/ac-token.d.ts
|
|
1189
1246
|
/**
|
|
1190
1247
|
* Token/tag input with per-token autocomplete suggestions.
|
|
@@ -1205,7 +1262,7 @@ interface AcTokenElementEventMap {
|
|
|
1205
1262
|
declare class AcTokenElement extends LitElement {
|
|
1206
1263
|
#private;
|
|
1207
1264
|
/** Provides completion results for the current draft token. */
|
|
1208
|
-
completionProvider:
|
|
1265
|
+
completionProvider: IDataProvider<string, AcTokenItem> | undefined;
|
|
1209
1266
|
/** Custom tokenizer — defaults to splitting on space, comma, semicolon. */
|
|
1210
1267
|
tokenizer: AcTokenizerFn | undefined;
|
|
1211
1268
|
/** Placeholder text shown when no tokens or draft text are present. */
|
|
@@ -1219,12 +1276,16 @@ declare class AcTokenElement extends LitElement {
|
|
|
1219
1276
|
* When false (default), typing text and pressing Enter commits it as-is.
|
|
1220
1277
|
*/
|
|
1221
1278
|
strict: boolean;
|
|
1279
|
+
/**
|
|
1280
|
+
* When false (default), tokens that have already been committed are
|
|
1281
|
+
* filtered out of the suggestion list. Set to true to show all
|
|
1282
|
+
* suggestions including duplicates.
|
|
1283
|
+
*/
|
|
1284
|
+
allowDuplicates: boolean;
|
|
1222
1285
|
private _tokens;
|
|
1223
1286
|
private _draft;
|
|
1224
1287
|
private _selectedTokenIndex;
|
|
1225
|
-
private _suggestions;
|
|
1226
1288
|
private _isOpen;
|
|
1227
|
-
private _isLoading;
|
|
1228
1289
|
private _tickled;
|
|
1229
1290
|
constructor();
|
|
1230
1291
|
get tokens(): readonly AcTokenItem[];
|
|
@@ -1498,10 +1559,10 @@ declare global {
|
|
|
1498
1559
|
}
|
|
1499
1560
|
} //# sourceMappingURL=split-button.d.ts.map
|
|
1500
1561
|
//#endregion
|
|
1501
|
-
//#region src/checkbox.d.ts
|
|
1562
|
+
//#region src/checkbox/checkbox.d.ts
|
|
1502
1563
|
declare class Checkbox extends LitElement {
|
|
1503
1564
|
#private;
|
|
1504
|
-
static styles: CSSResult;
|
|
1565
|
+
static styles: CSSResult[];
|
|
1505
1566
|
checked: boolean;
|
|
1506
1567
|
disabled: boolean;
|
|
1507
1568
|
indeterminate: boolean;
|
|
@@ -1556,7 +1617,38 @@ declare global {
|
|
|
1556
1617
|
}
|
|
1557
1618
|
} //# sourceMappingURL=types.d.ts.map
|
|
1558
1619
|
//#endregion
|
|
1559
|
-
//#region node_modules/.pnpm/@ixfx+
|
|
1620
|
+
//#region node_modules/.pnpm/@ixfx+geometry@0.56.13/node_modules/@ixfx/geometry/dist/angles.d.ts
|
|
1621
|
+
/**
|
|
1622
|
+
* A angle with unit.
|
|
1623
|
+
* - [Degrees](https://en.wikipedia.org/wiki/Degree_(angle)): 0..360
|
|
1624
|
+
* - [Radians](https://en.wikipedia.org/wiki/Radian): 0...2Pi
|
|
1625
|
+
* - [Gradians](https://en.wikipedia.org/wiki/Gradian): 0..400
|
|
1626
|
+
* - [Turns](https://en.wikipedia.org/wiki/Turn_(angle)): 0..1
|
|
1627
|
+
*
|
|
1628
|
+
*
|
|
1629
|
+
* ```
|
|
1630
|
+
* 100 grad
|
|
1631
|
+
* 1/4 turn
|
|
1632
|
+
* 90 deg
|
|
1633
|
+
* PI/2 rad
|
|
1634
|
+
* |
|
|
1635
|
+
* Pi rad | 0 or 2PI rad
|
|
1636
|
+
* 180deg -------+------- 0 or 360 deg
|
|
1637
|
+
* 1/2 turn | 0 or 1 turn
|
|
1638
|
+
* 200 grad | 0 or 400 grad
|
|
1639
|
+
* |
|
|
1640
|
+
* 270 deg
|
|
1641
|
+
* 3PI/2 rad
|
|
1642
|
+
* 3/4 turn
|
|
1643
|
+
* 300 grad
|
|
1644
|
+
* ```
|
|
1645
|
+
*/
|
|
1646
|
+
type Angle = {
|
|
1647
|
+
value: number;
|
|
1648
|
+
unit: `deg` | `rad` | `turn` | `grad`;
|
|
1649
|
+
};
|
|
1650
|
+
//#endregion
|
|
1651
|
+
//#region node_modules/.pnpm/@ixfx+collections@0.56.13/node_modules/@ixfx/collections/dist/index-rrpZOWbs.d.ts
|
|
1560
1652
|
/**
|
|
1561
1653
|
* Traversable Tree.
|
|
1562
1654
|
*
|
|
@@ -1584,7 +1676,7 @@ type TraversableTree<TValue> = {
|
|
|
1584
1676
|
getIdentity: () => any;
|
|
1585
1677
|
};
|
|
1586
1678
|
//#endregion
|
|
1587
|
-
//#region node_modules/.pnpm/@ixfx+random@0.56.
|
|
1679
|
+
//#region node_modules/.pnpm/@ixfx+random@0.56.13/node_modules/@ixfx/random/dist/index.d.ts
|
|
1588
1680
|
//#region src/types.d.ts
|
|
1589
1681
|
/**
|
|
1590
1682
|
* A random source.
|
|
@@ -1593,32 +1685,7 @@ type TraversableTree<TValue> = {
|
|
|
1593
1685
|
*/
|
|
1594
1686
|
type RandomSource = () => number;
|
|
1595
1687
|
//#endregion
|
|
1596
|
-
//#region node_modules/.pnpm/@ixfx+
|
|
1597
|
-
type Angle = {
|
|
1598
|
-
value: number;
|
|
1599
|
-
unit: `deg` | `rad` | `turn` | `grad`;
|
|
1600
|
-
};
|
|
1601
|
-
/**
|
|
1602
|
-
* Parses CSS-style angle strings into an 'Angle' type. By default assumes degrees.
|
|
1603
|
-
*
|
|
1604
|
-
* ```js
|
|
1605
|
-
* angleParse(`100`); // { value: 100, unit: `deg` }
|
|
1606
|
-
* angleParse(100); // { value: 100, unit: `deg` }
|
|
1607
|
-
* angleParse(`100deg`); // { value: 100, unit: `deg` }
|
|
1608
|
-
*
|
|
1609
|
-
* // More exotic units:
|
|
1610
|
-
* angleParse(`100rad`); // { value: 100, unit: `rad` }
|
|
1611
|
-
* angleParse(`100turn`); // { value: 100, unit: `turn` }
|
|
1612
|
-
* angleParse(`100grad`); // { value: 100, unit: `grad` }
|
|
1613
|
-
* ```
|
|
1614
|
-
*
|
|
1615
|
-
* Once parsed in this format, use {@link angleConvert} to convert to
|
|
1616
|
-
* a different unit.
|
|
1617
|
-
* @param value
|
|
1618
|
-
* @returns
|
|
1619
|
-
*/
|
|
1620
|
-
//#endregion
|
|
1621
|
-
//#region node_modules/.pnpm/@ixfx+visual@0.56.12/node_modules/@ixfx/visual/dist/index-a3KMyMEu.d.ts
|
|
1688
|
+
//#region node_modules/.pnpm/@ixfx+visual@0.56.13/node_modules/@ixfx/visual/dist/index-a3KMyMEu.d.ts
|
|
1622
1689
|
//#region src/colour/types.d.ts
|
|
1623
1690
|
type HslBase = {
|
|
1624
1691
|
/**
|
|
@@ -2843,6 +2910,80 @@ declare global {
|
|
|
2843
2910
|
}
|
|
2844
2911
|
}
|
|
2845
2912
|
//#endregion
|
|
2913
|
+
//#region src/common/data-controller.d.ts
|
|
2914
|
+
type DataControllerOptions = {
|
|
2915
|
+
/**
|
|
2916
|
+
* Clear accumulated items immediately when request() is called.
|
|
2917
|
+
* When false, stale items remain visible while the new request is in-flight
|
|
2918
|
+
* (useful for re-query-on-keystroke patterns — avoids a blank flash).
|
|
2919
|
+
* Default: true.
|
|
2920
|
+
*/
|
|
2921
|
+
clearOnRequest?: boolean;
|
|
2922
|
+
/**
|
|
2923
|
+
* Called when the provider throws or rejects. Useful for logging without
|
|
2924
|
+
* coupling the error to render logic.
|
|
2925
|
+
*/
|
|
2926
|
+
onError?: (err: unknown) => void;
|
|
2927
|
+
};
|
|
2928
|
+
/**
|
|
2929
|
+
* Lit ReactiveController that manages one active data provider request at a time.
|
|
2930
|
+
*
|
|
2931
|
+
* Handles all three provider return modes (sync, async one-shot, streaming),
|
|
2932
|
+
* tracks progress, and cancels in-flight requests when a new one starts.
|
|
2933
|
+
* Calls host.requestUpdate() on every state change so the component re-renders
|
|
2934
|
+
* automatically.
|
|
2935
|
+
*
|
|
2936
|
+
* @typeParam TQuery - The query/scope type passed to the provider.
|
|
2937
|
+
* @typeParam TItem - The item type produced by the provider.
|
|
2938
|
+
*
|
|
2939
|
+
* @example
|
|
2940
|
+
* ```ts
|
|
2941
|
+
* class MyList extends LitElement {
|
|
2942
|
+
* #data = new DataController<string, MyItem>(this, myProvider);
|
|
2943
|
+
*
|
|
2944
|
+
* protected override render() {
|
|
2945
|
+
* return html`
|
|
2946
|
+
* ${this.#data.loading ? html`<span>Loading…</span>` : nothing}
|
|
2947
|
+
* ${this.#data.items.map(item => html`<div>${item.label}</div>`)}
|
|
2948
|
+
* `;
|
|
2949
|
+
* }
|
|
2950
|
+
* }
|
|
2951
|
+
* ```
|
|
2952
|
+
*/
|
|
2953
|
+
declare class DataController<TQuery, TItem> implements ReactiveController {
|
|
2954
|
+
#private;
|
|
2955
|
+
constructor(host: ReactiveControllerHost, provider?: IDataProvider<TQuery, TItem>, options?: DataControllerOptions);
|
|
2956
|
+
hostConnected(): void;
|
|
2957
|
+
hostDisconnected(): void;
|
|
2958
|
+
get provider(): IDataProvider<TQuery, TItem> | undefined;
|
|
2959
|
+
set provider(value: IDataProvider<TQuery, TItem> | undefined);
|
|
2960
|
+
/** The currently accumulated items. */
|
|
2961
|
+
get items(): readonly TItem[];
|
|
2962
|
+
/** True while a provider call is pending or a stream is still open. */
|
|
2963
|
+
get loading(): boolean;
|
|
2964
|
+
/** Number of items accumulated so far in the current request. */
|
|
2965
|
+
get loaded(): number;
|
|
2966
|
+
/**
|
|
2967
|
+
* Provider's latest estimate of the total number of items expected.
|
|
2968
|
+
* Undefined when the provider has not reported a total.
|
|
2969
|
+
*/
|
|
2970
|
+
get total(): number | undefined;
|
|
2971
|
+
/**
|
|
2972
|
+
* Progress as a 0–1 value, or undefined when total is unknown.
|
|
2973
|
+
* Derived from loaded / total.
|
|
2974
|
+
*/
|
|
2975
|
+
get progress(): number | undefined;
|
|
2976
|
+
/** The last error thrown by the provider, or undefined if the last request succeeded. */
|
|
2977
|
+
get error(): unknown;
|
|
2978
|
+
/**
|
|
2979
|
+
* Cancel any in-flight request and start a new one.
|
|
2980
|
+
* Clears items immediately unless clearOnRequest was set to false.
|
|
2981
|
+
*/
|
|
2982
|
+
request(query: TQuery): void;
|
|
2983
|
+
/** Abort any in-flight request without issuing a new one. */
|
|
2984
|
+
cancel(): void;
|
|
2985
|
+
}
|
|
2986
|
+
//#endregion
|
|
2846
2987
|
//#region src/common/types.d.ts
|
|
2847
2988
|
/**
|
|
2848
2989
|
* Canonical shared types for all tree-like components (ixfx-tree-list, ixfx-miller-list,
|
|
@@ -2872,8 +3013,12 @@ type TreeNode = {
|
|
|
2872
3013
|
/**
|
|
2873
3014
|
* Callback invoked when a node's children need to be loaded.
|
|
2874
3015
|
* The AbortSignal is cancelled if the request is superseded (e.g. node collapsed before load completes).
|
|
3016
|
+
* May return children synchronously, as a promise, or as a streaming async iterable of batches.
|
|
2875
3017
|
*/
|
|
2876
|
-
type LoadChildrenCallback =
|
|
3018
|
+
type LoadChildrenCallback = IDataProvider<{
|
|
3019
|
+
node: TreeNode;
|
|
3020
|
+
depth: number;
|
|
3021
|
+
}, TreeNode>;
|
|
2877
3022
|
/**
|
|
2878
3023
|
* Predicate used by search/filter controllers to determine whether a node should be visible.
|
|
2879
3024
|
* Receives depth so column-scoped filtering (e.g. in ixfx-miller-list) is possible.
|
|
@@ -3405,21 +3550,26 @@ declare class CrumbPathController {
|
|
|
3405
3550
|
disconnect(): void;
|
|
3406
3551
|
}
|
|
3407
3552
|
//#endregion
|
|
3408
|
-
//#region src/data-display.d.ts
|
|
3553
|
+
//#region src/data-display/data-display.d.ts
|
|
3554
|
+
type RendererStyle = `led` | `plot` | `plot-xy` | `plot-heat` | `plot-histogram` | `time-elapsed` | `hide`;
|
|
3555
|
+
type ConfigEntry = readonly [path: string, style: RendererStyle, options?: Record<string, unknown>];
|
|
3409
3556
|
type FormattingOptions = {
|
|
3410
3557
|
readonly precision?: number;
|
|
3411
3558
|
readonly roundNumbers?: number;
|
|
3412
3559
|
};
|
|
3413
3560
|
declare class DataDisplayComponent extends LitElement {
|
|
3414
|
-
|
|
3561
|
+
#private;
|
|
3562
|
+
static styles: CSSResult[];
|
|
3563
|
+
automap: boolean;
|
|
3415
3564
|
previousValue: Record<string, unknown> | undefined;
|
|
3416
3565
|
_container: HTMLElement;
|
|
3417
3566
|
constructor();
|
|
3418
3567
|
connectedCallback(): void;
|
|
3568
|
+
configure(config: ConfigEntry[]): void;
|
|
3419
3569
|
formatValue(v: unknown, options?: FormattingOptions): string;
|
|
3420
3570
|
displayData(o: Record<string, unknown> | unknown[]): void;
|
|
3421
|
-
getOrCreate(path: string, init?: (parent: HTMLElement) => void): HTMLElement;
|
|
3422
3571
|
updateData(value: Record<string, unknown>): void;
|
|
3572
|
+
getOrCreate(path: string, init?: (parent: HTMLElement) => void): HTMLElement;
|
|
3423
3573
|
}
|
|
3424
3574
|
declare global {
|
|
3425
3575
|
interface HTMLElementTagNameMap {
|
|
@@ -3560,146 +3710,781 @@ declare global {
|
|
|
3560
3710
|
}
|
|
3561
3711
|
} //# sourceMappingURL=editable-number.d.ts.map
|
|
3562
3712
|
//#endregion
|
|
3563
|
-
//#region src/
|
|
3564
|
-
type
|
|
3565
|
-
|
|
3566
|
-
|
|
3567
|
-
|
|
3713
|
+
//#region src/vertical-list/types.d.ts
|
|
3714
|
+
type ListSelectionMode = `none` | `single` | `multiple`;
|
|
3715
|
+
/**
|
|
3716
|
+
* Controls how pointer and keyboard gestures map to selection changes.
|
|
3717
|
+
*
|
|
3718
|
+
* - `implicit` — click always replaces selection (no modifier support)
|
|
3719
|
+
* - `standard` — click replaces; Ctrl/Cmd+click toggles; Shift+click range-selects (multiple only)
|
|
3720
|
+
* - `manual` — no auto-selection; drive state via select()/deselect()/clearSelection()
|
|
3721
|
+
* - `checked` — every click toggles; implies multiple selection regardless of selectionMode
|
|
3722
|
+
* - `vscode` — like standard for clicks; Shift+Arrow extends range from the keyboard anchor
|
|
3723
|
+
*
|
|
3724
|
+
* Switching interactionMode clears the current selection.
|
|
3725
|
+
*/
|
|
3726
|
+
type ListInteractionMode = `implicit` | `standard` | `manual` | `checked` | `vscode`;
|
|
3727
|
+
type ListSelectDetail = {
|
|
3728
|
+
readonly selected: ReadonlySet<Element>;
|
|
3729
|
+
readonly previous: ReadonlySet<Element>;
|
|
3568
3730
|
};
|
|
3569
|
-
type
|
|
3570
|
-
readonly
|
|
3571
|
-
readonly start: BytePos;
|
|
3572
|
-
readonly end: BytePos;
|
|
3731
|
+
type ListTickleDetail = {
|
|
3732
|
+
readonly item: Element;
|
|
3573
3733
|
};
|
|
3574
|
-
type
|
|
3575
|
-
readonly
|
|
3576
|
-
readonly x: number;
|
|
3577
|
-
readonly y: number;
|
|
3578
|
-
readonly width: number;
|
|
3579
|
-
readonly height: number;
|
|
3734
|
+
type ListActivateDetail = {
|
|
3735
|
+
readonly item: Element;
|
|
3580
3736
|
};
|
|
3581
|
-
type
|
|
3582
|
-
|
|
3583
|
-
readonly before: number;
|
|
3584
|
-
readonly after: number;
|
|
3737
|
+
type ListItemClickDetail = {
|
|
3738
|
+
readonly item: Element;
|
|
3585
3739
|
};
|
|
3586
|
-
type
|
|
3587
|
-
type
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
|
|
3595
|
-
hideHexCol: boolean;
|
|
3596
|
-
hideTextCol: boolean;
|
|
3597
|
-
private _selection;
|
|
3598
|
-
private _scrollTop;
|
|
3599
|
-
private _editState;
|
|
3600
|
-
private _containerH;
|
|
3601
|
-
private _shadeMap;
|
|
3602
|
-
private _focusSide;
|
|
3603
|
-
private _store;
|
|
3604
|
-
private _undoStack;
|
|
3605
|
-
private _copyBuffer;
|
|
3606
|
-
private _rowHeight;
|
|
3607
|
-
private _dragStart;
|
|
3608
|
-
private _dragAnchor;
|
|
3609
|
-
private _rectAnchorX;
|
|
3610
|
-
private _rectAnchorY;
|
|
3611
|
-
private _rectAnchorXFromKeyboard;
|
|
3612
|
-
private _rectAnchorYFromKeyboard;
|
|
3613
|
-
private _initialSelectionPoint;
|
|
3614
|
-
private _currentCursorPoint;
|
|
3615
|
-
private _pointerMode;
|
|
3616
|
-
private _currentDragDiff;
|
|
3617
|
-
private _shiftClickTarget;
|
|
3618
|
-
static styles: CSSResult;
|
|
3619
|
-
setData(data: Uint8Array): void;
|
|
3620
|
-
undo(): void;
|
|
3621
|
-
redo(): void;
|
|
3622
|
-
recomputeColours(): void;
|
|
3623
|
-
selectedBytes(): Generator<{
|
|
3624
|
-
selection_index: number;
|
|
3625
|
-
array_index: number;
|
|
3626
|
-
value: number;
|
|
3627
|
-
}>;
|
|
3628
|
-
containsPosition(pos: number): boolean;
|
|
3629
|
-
selectSingle(position: number): void;
|
|
3630
|
-
selectContiguous(start: number, end: number): void;
|
|
3631
|
-
selectRectangular(x: number, y: number, width: number, height: number): void;
|
|
3632
|
-
clearSelection(): void;
|
|
3633
|
-
getSelection(): Selection;
|
|
3634
|
-
protected firstUpdated(): void;
|
|
3635
|
-
private _onScroll;
|
|
3636
|
-
private _onPointerDown;
|
|
3637
|
-
private _onPointerMove;
|
|
3638
|
-
private _onPointerUp;
|
|
3639
|
-
private _onKeyDown;
|
|
3640
|
-
private _handleBackspace;
|
|
3641
|
-
private _handleValueEntry;
|
|
3642
|
-
private _commitDecimalValue;
|
|
3643
|
-
private _advanceCursor;
|
|
3644
|
-
private _dispatchChangeEvent;
|
|
3645
|
-
private _dispatchSelectEvent;
|
|
3646
|
-
private _copy;
|
|
3647
|
-
private _paste;
|
|
3648
|
-
private _parseHexString;
|
|
3649
|
-
private _getColHeaders;
|
|
3650
|
-
private _isRowShaded;
|
|
3651
|
-
private _isHexShaded;
|
|
3652
|
-
private _isTextShaded;
|
|
3653
|
-
protected render(): TemplateResult<1>;
|
|
3654
|
-
private _renderRow;
|
|
3655
|
-
private _renderColumn;
|
|
3656
|
-
private _renderHexCell;
|
|
3657
|
-
private _renderTextChar;
|
|
3740
|
+
type ListSelectEvent = CustomEvent<ListSelectDetail>;
|
|
3741
|
+
type ListTickleEvent = CustomEvent<ListTickleDetail>;
|
|
3742
|
+
type ListActivateEvent = CustomEvent<ListActivateDetail>;
|
|
3743
|
+
type ListItemClickEvent = CustomEvent<ListItemClickDetail>;
|
|
3744
|
+
interface ListElementEventMap {
|
|
3745
|
+
'list-select': ListSelectEvent;
|
|
3746
|
+
'list-tickle': ListTickleEvent;
|
|
3747
|
+
'list-activate': ListActivateEvent;
|
|
3748
|
+
'list-item-click': ListItemClickEvent;
|
|
3658
3749
|
}
|
|
3659
|
-
type HexChangeDetail = {
|
|
3660
|
-
readonly diff: Diff;
|
|
3661
|
-
};
|
|
3662
|
-
type HexChangeEvent = CustomEvent<HexChangeDetail>;
|
|
3663
|
-
type SingleSelectEventDetail = {
|
|
3664
|
-
readonly type: `single`;
|
|
3665
|
-
readonly position: number;
|
|
3666
|
-
};
|
|
3667
|
-
type ContiguousSelectEventDetail = {
|
|
3668
|
-
readonly type: `contiguous`;
|
|
3669
|
-
readonly start: number;
|
|
3670
|
-
readonly end: number;
|
|
3671
|
-
};
|
|
3672
|
-
type RectangularSelectEventDetail = {
|
|
3673
|
-
readonly type: `rectangular`;
|
|
3674
|
-
readonly x: number;
|
|
3675
|
-
readonly y: number;
|
|
3676
|
-
readonly width: number;
|
|
3677
|
-
readonly height: number;
|
|
3678
|
-
};
|
|
3679
|
-
type NoneSelectEventDetail = {
|
|
3680
|
-
readonly type: `none`;
|
|
3681
|
-
};
|
|
3682
|
-
type SelectEventDetail = SingleSelectEventDetail | ContiguousSelectEventDetail | RectangularSelectEventDetail | NoneSelectEventDetail;
|
|
3683
|
-
declare global {
|
|
3684
|
-
interface HTMLElementTagNameMap {
|
|
3685
|
-
'ixfx-hex-editor': IxfxHexEditorElement;
|
|
3686
|
-
}
|
|
3687
|
-
} //# sourceMappingURL=hex-editor.d.ts.map
|
|
3688
3750
|
//#endregion
|
|
3689
|
-
//#region src/
|
|
3751
|
+
//#region src/grouped-item-lister/types.d.ts
|
|
3690
3752
|
/**
|
|
3691
|
-
*
|
|
3692
|
-
*
|
|
3753
|
+
* Fired when the selection set changes by any means.
|
|
3754
|
+
* Event name: `select`
|
|
3693
3755
|
*/
|
|
3694
|
-
|
|
3756
|
+
type SubComponentSelectDetail<T> = {
|
|
3757
|
+
readonly selected: ReadonlySet<T>;
|
|
3758
|
+
readonly previous: ReadonlySet<T>;
|
|
3759
|
+
};
|
|
3695
3760
|
/**
|
|
3696
|
-
*
|
|
3697
|
-
*
|
|
3761
|
+
* Fired when an item is explicitly activated (double-click or Enter key).
|
|
3762
|
+
* Event name: `activate`
|
|
3698
3763
|
*/
|
|
3699
|
-
|
|
3764
|
+
type SubComponentActivateDetail<T> = {
|
|
3765
|
+
readonly item: T;
|
|
3766
|
+
};
|
|
3700
3767
|
/**
|
|
3701
|
-
*
|
|
3702
|
-
*
|
|
3768
|
+
* Fired on a raw pointer click before any selection change.
|
|
3769
|
+
* Event name: `item-click`
|
|
3770
|
+
*/
|
|
3771
|
+
type SubComponentItemClickDetail<T> = {
|
|
3772
|
+
readonly item: T;
|
|
3773
|
+
};
|
|
3774
|
+
/**
|
|
3775
|
+
* Fired when the pointer hovers over an item or the keyboard cursor moves to it.
|
|
3776
|
+
* Event name: `tickle`
|
|
3777
|
+
*/
|
|
3778
|
+
type SubComponentTickleDetail<T> = {
|
|
3779
|
+
readonly item: T;
|
|
3780
|
+
};
|
|
3781
|
+
type SubComponentSelectEvent<T> = CustomEvent<SubComponentSelectDetail<T>>;
|
|
3782
|
+
type SubComponentActivateEvent<T> = CustomEvent<SubComponentActivateDetail<T>>;
|
|
3783
|
+
type SubComponentItemClickEvent<T> = CustomEvent<SubComponentItemClickDetail<T>>;
|
|
3784
|
+
type SubComponentTickleEvent<T> = CustomEvent<SubComponentTickleDetail<T>>;
|
|
3785
|
+
interface IGroupedSubComponentEventMap<T> {
|
|
3786
|
+
'select': SubComponentSelectEvent<T>;
|
|
3787
|
+
'activate': SubComponentActivateEvent<T>;
|
|
3788
|
+
'item-click': SubComponentItemClickEvent<T>;
|
|
3789
|
+
'tickle': SubComponentTickleEvent<T>;
|
|
3790
|
+
}
|
|
3791
|
+
/**
|
|
3792
|
+
* Contract that sub-components passed to `ixfx-grouped-item-lister` must satisfy.
|
|
3793
|
+
*
|
|
3794
|
+
* All four events (`select`, `activate`, `item-click`, `tickle`) must bubble and be composed
|
|
3795
|
+
* so they propagate through the lister's light DOM to external listeners.
|
|
3796
|
+
*/
|
|
3797
|
+
interface IGroupedSubComponent<T> extends HTMLElement {
|
|
3798
|
+
/** Replace the full item list. Called whenever the lister's items or grouping changes. */
|
|
3799
|
+
setItems(items: readonly T[]): void;
|
|
3800
|
+
/** Clear the current selection without firing a `select` event (avoids re-entrant loops). */
|
|
3801
|
+
clearSelection(): void;
|
|
3802
|
+
/** The current selection set. */
|
|
3803
|
+
readonly selectedItems: ReadonlySet<T>;
|
|
3804
|
+
/** Controls how many items can be selected simultaneously. */
|
|
3805
|
+
selectionMode: ListSelectionMode;
|
|
3806
|
+
/**
|
|
3807
|
+
* Forward a command (e.g. sort-order change) to this sub-component.
|
|
3808
|
+
* Uses `CommandId` from `@clinth/ui-commands` for interoperability.
|
|
3809
|
+
*/
|
|
3810
|
+
dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
|
|
3811
|
+
addEventListener<K extends keyof IGroupedSubComponentEventMap<T>>(type: K, listener: (event: IGroupedSubComponentEventMap<T>[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
3812
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
3813
|
+
}
|
|
3814
|
+
/**
|
|
3815
|
+
* Factory that creates a sub-component for a given group.
|
|
3816
|
+
* Called once per group (or once with `undefined` in ungrouped mode).
|
|
3817
|
+
*/
|
|
3818
|
+
type SubComponentFactory<T> = (groupKey: string | undefined) => HTMLElement & IGroupedSubComponent<T>;
|
|
3819
|
+
/**
|
|
3820
|
+
* Fired by `ixfx-grouped-item-lister` after any sub-component fires `select`.
|
|
3821
|
+
* Carries the full cross-group selection union and the key of the group whose
|
|
3822
|
+
* selection just changed (or `undefined` in ungrouped mode).
|
|
3823
|
+
*/
|
|
3824
|
+
type GroupedSelectDetail<T> = {
|
|
3825
|
+
readonly selected: ReadonlySet<T>;
|
|
3826
|
+
readonly groupKey: string | undefined;
|
|
3827
|
+
};
|
|
3828
|
+
type GroupedSelectEvent<T> = CustomEvent<GroupedSelectDetail<T>>;
|
|
3829
|
+
interface GroupedItemListerElementEventMap<T> {
|
|
3830
|
+
'grouped-select': GroupedSelectEvent<T>;
|
|
3831
|
+
}
|
|
3832
|
+
//#endregion
|
|
3833
|
+
//#region src/panel/panel.d.ts
|
|
3834
|
+
type PanelOrientation = `horizontal` | `vertical`;
|
|
3835
|
+
type PanelVariant = `titlebar` | `midline`;
|
|
3836
|
+
type PanelToggleInteraction = `implicit` | `explicit` | `disabled`;
|
|
3837
|
+
interface PanelToggleDetail {
|
|
3838
|
+
readonly collapsed: boolean;
|
|
3839
|
+
}
|
|
3840
|
+
type PanelToggleEvent = CustomEvent<PanelToggleDetail>;
|
|
3841
|
+
type PanelCloseEvent = CustomEvent<void>;
|
|
3842
|
+
interface PanelElementEventMap {
|
|
3843
|
+
toggle: PanelToggleEvent;
|
|
3844
|
+
close: PanelCloseEvent;
|
|
3845
|
+
}
|
|
3846
|
+
declare class PanelElement extends LitElement {
|
|
3847
|
+
collapsed: boolean;
|
|
3848
|
+
orientation: PanelOrientation;
|
|
3849
|
+
closable: boolean;
|
|
3850
|
+
title: string;
|
|
3851
|
+
iconName: string;
|
|
3852
|
+
toggleInteraction: PanelToggleInteraction;
|
|
3853
|
+
variant: PanelVariant;
|
|
3854
|
+
private _isVertical;
|
|
3855
|
+
private _onToggleClick;
|
|
3856
|
+
private _onCloseClick;
|
|
3857
|
+
private _getCaretIcon;
|
|
3858
|
+
protected updated(changed: Map<string, unknown>): void;
|
|
3859
|
+
protected render(): TemplateResult<1>;
|
|
3860
|
+
static styles: CSSResult[];
|
|
3861
|
+
}
|
|
3862
|
+
declare global {
|
|
3863
|
+
interface HTMLElementTagNameMap {
|
|
3864
|
+
'ixfx-panel': PanelElement;
|
|
3865
|
+
}
|
|
3866
|
+
}
|
|
3867
|
+
interface PanelElement {
|
|
3868
|
+
addEventListener: (<K extends keyof PanelElementEventMap>(type: K, listener: (this: PanelElement, event: PanelElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
3869
|
+
}
|
|
3870
|
+
//#endregion
|
|
3871
|
+
//#region src/grouped-item-lister/grouped-item-lister.d.ts
|
|
3872
|
+
declare class GroupedItemListerElement<T = unknown> extends LitElement {
|
|
3873
|
+
#private;
|
|
3874
|
+
grouped: boolean;
|
|
3875
|
+
crossGroupSelection: boolean;
|
|
3876
|
+
get groupBy(): ((item: T) => string) | undefined;
|
|
3877
|
+
set groupBy(value: ((item: T) => string) | undefined);
|
|
3878
|
+
get factory(): SubComponentFactory<T> | undefined;
|
|
3879
|
+
set factory(value: SubComponentFactory<T> | undefined);
|
|
3880
|
+
get provider(): IDataProvider<void, T> | undefined;
|
|
3881
|
+
set provider(value: IDataProvider<void, T> | undefined);
|
|
3882
|
+
/** The union of all selected items across every sub-component. */
|
|
3883
|
+
get selectedItems(): ReadonlySet<T>;
|
|
3884
|
+
/**
|
|
3885
|
+
* Forward a command to all live sub-components.
|
|
3886
|
+
* Use this to propagate changes like sort order, filter state, or view mode.
|
|
3887
|
+
*/
|
|
3888
|
+
dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
|
|
3889
|
+
protected createRenderRoot(): this;
|
|
3890
|
+
connectedCallback(): void;
|
|
3891
|
+
disconnectedCallback(): void;
|
|
3892
|
+
protected updated(changed: PropertyValues): void;
|
|
3893
|
+
protected render(): typeof nothing | TemplateResult<1>;
|
|
3894
|
+
}
|
|
3895
|
+
declare global {
|
|
3896
|
+
interface HTMLElementTagNameMap {
|
|
3897
|
+
'ixfx-grouped-item-lister': GroupedItemListerElement;
|
|
3898
|
+
}
|
|
3899
|
+
}
|
|
3900
|
+
interface GroupedItemListerElement<T> {
|
|
3901
|
+
addEventListener<K extends keyof GroupedItemListerElementEventMap<T>>(type: K, listener: (this: GroupedItemListerElement<T>, event: GroupedItemListerElementEventMap<T>[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
3902
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
3903
|
+
}
|
|
3904
|
+
//#endregion
|
|
3905
|
+
//#region src/interaction/tickled-controller.d.ts
|
|
3906
|
+
/**
|
|
3907
|
+
* Represents an item that can be tickled (highlighted via hover or keyboard navigation)
|
|
3908
|
+
*/
|
|
3909
|
+
type TickledItem<T = unknown> = {
|
|
3910
|
+
/**
|
|
3911
|
+
* Unique identifier for the item (e.g., index, id, path)
|
|
3912
|
+
*/
|
|
3913
|
+
readonly id: T;
|
|
3914
|
+
/**
|
|
3915
|
+
* Whether the item is currently enabled/interactive
|
|
3916
|
+
*/
|
|
3917
|
+
readonly enabled?: boolean;
|
|
3918
|
+
};
|
|
3919
|
+
/**
|
|
3920
|
+
* Input mode determines which mechanism controls the tickled state
|
|
3921
|
+
*/
|
|
3922
|
+
type InputMode = `keyboard` | `mouse`;
|
|
3923
|
+
/**
|
|
3924
|
+
* Configuration for TickledController
|
|
3925
|
+
*/
|
|
3926
|
+
type TickledControllerConfig<T> = {
|
|
3927
|
+
/**
|
|
3928
|
+
* Function to retrieve all items that can be tickled
|
|
3929
|
+
*/
|
|
3930
|
+
getItems: () => ReadonlyArray<TickledItem<T>>;
|
|
3931
|
+
/**
|
|
3932
|
+
* Optional callback when an item becomes tickled
|
|
3933
|
+
* Use this for side effects like opening submenus
|
|
3934
|
+
* @param id - The id of the newly tickled item, or undefined if nothing is tickled
|
|
3935
|
+
*/
|
|
3936
|
+
onTickle?: (id: T | undefined) => void;
|
|
3937
|
+
/**
|
|
3938
|
+
* Optional callback fired after any state change (tickled id or input mode)
|
|
3939
|
+
* Use this to sync DOM attributes for slotted content that can't use reactive rendering
|
|
3940
|
+
*
|
|
3941
|
+
* For components that render items directly, this is usually not needed as
|
|
3942
|
+
* Lit's reactive rendering will handle updates automatically via requestUpdate()
|
|
3943
|
+
*
|
|
3944
|
+
* @example
|
|
3945
|
+
* ```ts
|
|
3946
|
+
* onStateChange: () => {
|
|
3947
|
+
* // Sync data-tickled attributes for slotted items
|
|
3948
|
+
* const items = this.getItems();
|
|
3949
|
+
* items.forEach((item, i) => {
|
|
3950
|
+
* if (this.tickled.isTickled(i)) {
|
|
3951
|
+
* item.setAttribute('data-tickled', '');
|
|
3952
|
+
* } else {
|
|
3953
|
+
* item.removeAttribute('data-tickled');
|
|
3954
|
+
* }
|
|
3955
|
+
* });
|
|
3956
|
+
* }
|
|
3957
|
+
* ```
|
|
3958
|
+
*/
|
|
3959
|
+
onStateChange?: () => void;
|
|
3960
|
+
/**
|
|
3961
|
+
* Optional initial input mode (defaults to 'mouse')
|
|
3962
|
+
*/
|
|
3963
|
+
initialInputMode?: InputMode;
|
|
3964
|
+
};
|
|
3965
|
+
/**
|
|
3966
|
+
* ReactiveController that manages "tickled" state for interactive lists.
|
|
3967
|
+
*
|
|
3968
|
+
* A "tickled" item is one that is under active attention via hover (mouse mode)
|
|
3969
|
+
* or keyboard focus (keyboard mode). Only one item can be tickled at a time.
|
|
3970
|
+
*
|
|
3971
|
+
* The input mode determines which mechanism controls tickled state:
|
|
3972
|
+
* - Mouse mode: hover controls tickled, keyboard navigation ignored
|
|
3973
|
+
* - Keyboard mode: keyboard navigation controls tickled, hover ignored
|
|
3974
|
+
*
|
|
3975
|
+
* Last interaction wins - any mouse hover switches to mouse mode, any keyboard
|
|
3976
|
+
* navigation switches to keyboard mode.
|
|
3977
|
+
*
|
|
3978
|
+
* ## Global Mouse Tracking
|
|
3979
|
+
*
|
|
3980
|
+
* This controller uses a singleton global `pointermove` listener to track actual
|
|
3981
|
+
* mouse movement. This prevents `pointerenter` events caused by content scrolling
|
|
3982
|
+
* from incorrectly switching to mouse mode when the user is actually using keyboard
|
|
3983
|
+
* navigation.
|
|
3984
|
+
*
|
|
3985
|
+
* @example
|
|
3986
|
+
* ```ts
|
|
3987
|
+
* class MyList extends LitElement {
|
|
3988
|
+
* private tickled = new TickledController(this, {
|
|
3989
|
+
* getItems: () => this.items.map((item, i) => ({ id: i, enabled: !item.disabled })),
|
|
3990
|
+
* onTickle: (id) => {
|
|
3991
|
+
* // Optional: perform side effect when item is tickled
|
|
3992
|
+
* console.log('Tickled item:', id);
|
|
3993
|
+
* }
|
|
3994
|
+
* });
|
|
3995
|
+
*
|
|
3996
|
+
* render() {
|
|
3997
|
+
* return html`
|
|
3998
|
+
* <ul @pointerleave=${(e) => this.tickled.handlePointerLeave(e)}>
|
|
3999
|
+
* ${this.items.map((item, i) => html`
|
|
4000
|
+
* <li
|
|
4001
|
+
* class="item ${this.tickled.isTickled(i) ? 'tickled' : ''}"
|
|
4002
|
+
* @pointerenter=${() => this.tickled.handlePointerEnter(i)}
|
|
4003
|
+
* >${item.label}</li>
|
|
4004
|
+
* `)}
|
|
4005
|
+
* </ul>
|
|
4006
|
+
* `;
|
|
4007
|
+
* }
|
|
4008
|
+
*
|
|
4009
|
+
* private handleKeyDown(e: KeyboardEvent) {
|
|
4010
|
+
* if (e.key === 'ArrowDown') {
|
|
4011
|
+
* this.tickled.handleKeyboardNavigation('next');
|
|
4012
|
+
* } else if (e.key === 'ArrowUp') {
|
|
4013
|
+
* this.tickled.handleKeyboardNavigation('previous');
|
|
4014
|
+
* }
|
|
4015
|
+
* }
|
|
4016
|
+
* }
|
|
4017
|
+
* ```
|
|
4018
|
+
*/
|
|
4019
|
+
declare class TickledController<T = number> implements ReactiveController {
|
|
4020
|
+
private host;
|
|
4021
|
+
private config;
|
|
4022
|
+
private _tickledId;
|
|
4023
|
+
private _inputMode;
|
|
4024
|
+
private static _lastMouseClientX;
|
|
4025
|
+
private static _lastMouseClientY;
|
|
4026
|
+
private static _mouseMovedSinceKeyboard;
|
|
4027
|
+
private static _globalListenerAttached;
|
|
4028
|
+
constructor(host: ReactiveControllerHost, config: TickledControllerConfig<T>);
|
|
4029
|
+
hostConnected(): void;
|
|
4030
|
+
hostDisconnected(): void;
|
|
4031
|
+
/**
|
|
4032
|
+
* Get the current input mode
|
|
4033
|
+
*/
|
|
4034
|
+
get inputMode(): InputMode;
|
|
4035
|
+
/**
|
|
4036
|
+
* Get the currently tickled item id
|
|
4037
|
+
*/
|
|
4038
|
+
get tickledId(): T | undefined;
|
|
4039
|
+
/**
|
|
4040
|
+
* Check if a specific item is tickled
|
|
4041
|
+
*/
|
|
4042
|
+
isTickled(id: T): boolean;
|
|
4043
|
+
/**
|
|
4044
|
+
* Handle global pointer move event.
|
|
4045
|
+
* Called automatically by the global listener.
|
|
4046
|
+
* Tracks mouse movement to distinguish real hover from content scrolling.
|
|
4047
|
+
*/
|
|
4048
|
+
private static handleGlobalPointerMove;
|
|
4049
|
+
/**
|
|
4050
|
+
* Check if actual mouse movement has occurred since last keyboard interaction.
|
|
4051
|
+
* Used to distinguish real hover/leave from content-scrolling-induced events.
|
|
4052
|
+
*/
|
|
4053
|
+
static get hasMouseMovedSinceKeyboard(): boolean;
|
|
4054
|
+
/**
|
|
4055
|
+
* Handle pointer enter event on an item (mouse hover).
|
|
4056
|
+
* Only processes if actual mouse movement is detected (not content scrolling).
|
|
4057
|
+
* Switches to mouse mode and tickles the item.
|
|
4058
|
+
*/
|
|
4059
|
+
handlePointerEnter(id: T): void;
|
|
4060
|
+
/**
|
|
4061
|
+
* Handle pointer leave event on an item.
|
|
4062
|
+
* Only clears tickled state if actual mouse movement is detected.
|
|
4063
|
+
* @param _e The pointer event (not used, but kept for API compatibility)
|
|
4064
|
+
*/
|
|
4065
|
+
handlePointerLeave(_e: PointerEvent): void;
|
|
4066
|
+
/**
|
|
4067
|
+
* Handle keyboard navigation.
|
|
4068
|
+
* Switches to keyboard mode and moves tickled state.
|
|
4069
|
+
*
|
|
4070
|
+
* @param direction - 'next', 'previous', 'first', 'last', or specific id
|
|
4071
|
+
*/
|
|
4072
|
+
handleKeyboardNavigation(direction: `next` | `previous` | `first` | `last` | T): void;
|
|
4073
|
+
/**
|
|
4074
|
+
* Manually set the tickled item (useful for programmatic control).
|
|
4075
|
+
* Does NOT change input mode.
|
|
4076
|
+
*/
|
|
4077
|
+
setTickled(id: T | undefined): void;
|
|
4078
|
+
/**
|
|
4079
|
+
* Clear the tickled state (e.g., on pointer leave).
|
|
4080
|
+
* Note: For pointer leave events, prefer using handlePointerLeave() which
|
|
4081
|
+
* checks for actual mouse movement.
|
|
4082
|
+
*/
|
|
4083
|
+
clearTickled(): void;
|
|
4084
|
+
/**
|
|
4085
|
+
* Manually set the input mode.
|
|
4086
|
+
* When switching to keyboard mode, resets the mouse movement tracking.
|
|
4087
|
+
*/
|
|
4088
|
+
setInputMode(mode: InputMode): void;
|
|
4089
|
+
}
|
|
4090
|
+
//#endregion
|
|
4091
|
+
//#region src/tree/tree-base.d.ts
|
|
4092
|
+
declare class TreeBaseElement extends LitElement implements TreeComponent, TreeSearchHost {
|
|
4093
|
+
#private;
|
|
4094
|
+
root: TreeNode | undefined;
|
|
4095
|
+
model: TreeDataModel | undefined;
|
|
4096
|
+
/** Callback to lazily load children for a node. Superseded by `model` when both are set. */
|
|
4097
|
+
loadChildren: LoadChildrenCallback | undefined;
|
|
4098
|
+
exclusivity: TreeExclusivity;
|
|
4099
|
+
selectionFilter: TreeSelectionFilter;
|
|
4100
|
+
/** Controls how pointer/keyboard gestures map to selection changes. Default: `'standard'`. */
|
|
4101
|
+
interactionMode: TreeInteractionMode;
|
|
4102
|
+
selectedNode: TreeNode | undefined;
|
|
4103
|
+
protected _selectedNodes: Set<TreeNode>;
|
|
4104
|
+
get selectedNodes(): ReadonlySet<TreeNode>;
|
|
4105
|
+
filterPredicate: TreeFilterPredicate | undefined;
|
|
4106
|
+
disableKeyboardNavigation: boolean;
|
|
4107
|
+
protected _expandedKeys: Set<string>;
|
|
4108
|
+
protected tickled: TickledController<string>;
|
|
4109
|
+
protected _focusedDepth: number;
|
|
4110
|
+
updated(changedProps: PropertyValues): void;
|
|
4111
|
+
connectedCallback(): void;
|
|
4112
|
+
disconnectedCallback(): void;
|
|
4113
|
+
getConfig(): TreeConfig;
|
|
4114
|
+
setConfig(config: Partial<TreeConfig>): void;
|
|
4115
|
+
select(node: TreeNode): void;
|
|
4116
|
+
deselect(node: TreeNode): void;
|
|
4117
|
+
clearSelection(): void;
|
|
4118
|
+
navigateTo(keys: readonly string[]): boolean;
|
|
4119
|
+
navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
|
|
4120
|
+
getNodes(): ReadonlyArray<{
|
|
4121
|
+
node: TreeNode;
|
|
4122
|
+
depth: number;
|
|
4123
|
+
}>;
|
|
4124
|
+
protected renderNodeContent(node: TreeNode, _depth: number): TemplateResult | typeof nothing;
|
|
4125
|
+
protected _handleItemClick(node: TreeNode, depth: number, event?: MouseEvent): void;
|
|
4126
|
+
protected _handleCheckboxClick(event: MouseEvent, node: TreeNode, _depth: number): void;
|
|
4127
|
+
protected _isSelected(node: TreeNode): boolean;
|
|
4128
|
+
protected _isFocused(node: TreeNode): boolean;
|
|
4129
|
+
protected _isExpanded(node: TreeNode): boolean;
|
|
4130
|
+
protected get _pendingNode(): TreeNode | undefined;
|
|
4131
|
+
protected renderLoadingIndicator(): TemplateResult | typeof nothing;
|
|
4132
|
+
protected render(): TemplateResult<1>;
|
|
4133
|
+
protected _renderNode(node: TreeNode, depth: number): TemplateResult;
|
|
4134
|
+
static styles: CSSResult[];
|
|
4135
|
+
}
|
|
4136
|
+
declare global {
|
|
4137
|
+
interface HTMLElementTagNameMap {
|
|
4138
|
+
'ixfx-tree-base': TreeBaseElement;
|
|
4139
|
+
}
|
|
4140
|
+
}
|
|
4141
|
+
interface TreeBaseElementEventMap extends TreeComponentEventMap {
|
|
4142
|
+
'item-click': TreeItemClickEvent;
|
|
4143
|
+
'expand': TreeExpandEvent;
|
|
4144
|
+
'collapse': TreeCollapseEvent;
|
|
4145
|
+
'select': TreeSelectEvent;
|
|
4146
|
+
'tickle': TreeTickleEvent;
|
|
4147
|
+
'activate': TreeActivateEvent;
|
|
4148
|
+
}
|
|
4149
|
+
interface TreeBaseElement {
|
|
4150
|
+
addEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeBaseElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
4151
|
+
removeEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeBaseElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | EventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void);
|
|
4152
|
+
}
|
|
4153
|
+
//#endregion
|
|
4154
|
+
//#region src/tree/tree-list.d.ts
|
|
4155
|
+
declare class TreeListElement extends TreeBaseElement {
|
|
4156
|
+
#private;
|
|
4157
|
+
protected render(): TemplateResult<1>;
|
|
4158
|
+
protected renderNodeContent(node: TreeNode, depth: number): TemplateResult;
|
|
4159
|
+
protected _renderNode(node: TreeNode, depth: number): TemplateResult;
|
|
4160
|
+
static styles: CSSResult[];
|
|
4161
|
+
}
|
|
4162
|
+
declare global {
|
|
4163
|
+
interface HTMLElementTagNameMap {
|
|
4164
|
+
'ixfx-tree-list': TreeListElement;
|
|
4165
|
+
}
|
|
4166
|
+
}
|
|
4167
|
+
interface TreeListElement {
|
|
4168
|
+
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);
|
|
4169
|
+
}
|
|
4170
|
+
//#endregion
|
|
4171
|
+
//#region src/grouped-item-lister/tree-list-adapter.d.ts
|
|
4172
|
+
type TreeListAdapterOptions<T> = {
|
|
4173
|
+
/**
|
|
4174
|
+
* Returns the direct children of an item to build the tree hierarchy.
|
|
4175
|
+
* Omit for flat item lists — all items become leaf nodes at the root level.
|
|
4176
|
+
*/
|
|
4177
|
+
getChildren?: (item: T) => readonly T[]; /** Forwarded to the inner ixfx-tree-list. Default: `'standard'`. */
|
|
4178
|
+
interactionMode?: TreeInteractionMode;
|
|
4179
|
+
/**
|
|
4180
|
+
* Controls which node types are selectable.
|
|
4181
|
+
* Forwarded to the inner ixfx-tree-list. Default: `'all'`.
|
|
4182
|
+
*/
|
|
4183
|
+
selectionFilter?: TreeSelectionFilter;
|
|
4184
|
+
/**
|
|
4185
|
+
* Controls how expanding one node affects its siblings.
|
|
4186
|
+
* Forwarded to the inner ixfx-tree-list. Default: `'none'`.
|
|
4187
|
+
*/
|
|
4188
|
+
exclusivity?: TreeExclusivity;
|
|
4189
|
+
/**
|
|
4190
|
+
* Called when a command is dispatched via `ixfx-grouped-item-lister.dispatch()`.
|
|
4191
|
+
* Receives the inner `TreeBaseElement` (undefined until the first `setItems()` call)
|
|
4192
|
+
* so the handler can sort, filter, or otherwise manipulate the tree directly.
|
|
4193
|
+
*/
|
|
4194
|
+
onDispatch?: (commandId: CommandId, args: Record<string, unknown> | undefined, tree: TreeBaseElement | undefined) => void;
|
|
4195
|
+
};
|
|
4196
|
+
/**
|
|
4197
|
+
* Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
|
|
4198
|
+
* an `ixfx-tree-list` internally.
|
|
4199
|
+
*
|
|
4200
|
+
* `toTreeItem` converts each item `T` to display metadata (`key`, `label`, etc).
|
|
4201
|
+
* The adapter stores the original `T` in `TreeItem.data` and uses it to map
|
|
4202
|
+
* tree-node selections back to typed values.
|
|
4203
|
+
*
|
|
4204
|
+
* Unlike `createVerticalListAdapter`, items can be hierarchical: provide
|
|
4205
|
+
* `options.getChildren` to return each item's children and the adapter will
|
|
4206
|
+
* recursively build the `TreeNode` tree. Omit it for a flat list of leaf nodes.
|
|
4207
|
+
*
|
|
4208
|
+
* The four interface events (`select`, `activate`, `item-click`, `tickle`) are
|
|
4209
|
+
* intercepted at the tree level, re-typed from `TreeNode` → `T`, and re-dispatched
|
|
4210
|
+
* on the adapter element so `ixfx-grouped-item-lister` can identify the source.
|
|
4211
|
+
*
|
|
4212
|
+
* @example Flat item list:
|
|
4213
|
+
* ```ts
|
|
4214
|
+
* lister.factory = () =>
|
|
4215
|
+
* createTreeListAdapter<FileItem>(item => ({ key: item.id, label: item.name, isLeaf: true }));
|
|
4216
|
+
* ```
|
|
4217
|
+
*
|
|
4218
|
+
* @example Hierarchical items:
|
|
4219
|
+
* ```ts
|
|
4220
|
+
* lister.factory = () =>
|
|
4221
|
+
* createTreeListAdapter<Category>(
|
|
4222
|
+
* cat => ({ key: cat.id, label: cat.name }),
|
|
4223
|
+
* { getChildren: cat => cat.subCategories },
|
|
4224
|
+
* );
|
|
4225
|
+
* ```
|
|
4226
|
+
*/
|
|
4227
|
+
declare function createTreeListAdapter<T>(toTreeItem: (item: T) => Omit<TreeItem, 'data'>, options?: TreeListAdapterOptions<T>): HTMLElement & IGroupedSubComponent<T>;
|
|
4228
|
+
//#endregion
|
|
4229
|
+
//#region src/vertical-list/vertical-list.d.ts
|
|
4230
|
+
declare class VerticalListElement extends LitElement {
|
|
4231
|
+
#private;
|
|
4232
|
+
selectionMode: ListSelectionMode;
|
|
4233
|
+
interactionMode: ListInteractionMode;
|
|
4234
|
+
filterPredicate: ((el: Element) => boolean) | undefined;
|
|
4235
|
+
private _selectedItems;
|
|
4236
|
+
private _searchVisible;
|
|
4237
|
+
private _searchQuery;
|
|
4238
|
+
private _searchInputEl;
|
|
4239
|
+
private tickled;
|
|
4240
|
+
connectedCallback(): void;
|
|
4241
|
+
disconnectedCallback(): void;
|
|
4242
|
+
firstUpdated(): void;
|
|
4243
|
+
updated(changed: PropertyValues): void;
|
|
4244
|
+
/** The most recently selected item, or `undefined` if nothing is selected. */
|
|
4245
|
+
get selectedItem(): Element | undefined;
|
|
4246
|
+
/** The full current selection set (read-only). */
|
|
4247
|
+
get selectedItems(): ReadonlySet<Element>;
|
|
4248
|
+
addItem(item: Element | string): void;
|
|
4249
|
+
removeItem(item: Element): void;
|
|
4250
|
+
clearItems(): void;
|
|
4251
|
+
/**
|
|
4252
|
+
* Replace the entire item list in one call.
|
|
4253
|
+
* Equivalent to `clearItems()` followed by `addItem()` for each element.
|
|
4254
|
+
* Preserves `interactionMode` checkbox wrapping.
|
|
4255
|
+
*/
|
|
4256
|
+
setItems(items: readonly Element[]): void;
|
|
4257
|
+
/**
|
|
4258
|
+
* Dispatch a command to this list. No-op by default.
|
|
4259
|
+
* Intended for use with `ixfx-grouped-item-lister`'s `dispatch()` method,
|
|
4260
|
+
* which forwards commands to all sub-components.
|
|
4261
|
+
*/
|
|
4262
|
+
dispatch(_commandId: CommandId, _args?: Record<string, unknown>): void;
|
|
4263
|
+
select(item: Element): void;
|
|
4264
|
+
selectMany(items: Iterable<Element>): void;
|
|
4265
|
+
deselect(item: Element): void;
|
|
4266
|
+
clearSelection(): void;
|
|
4267
|
+
selectAll(): void;
|
|
4268
|
+
private _replaceSelection;
|
|
4269
|
+
private _toggleItem;
|
|
4270
|
+
private _rangeSelectTo;
|
|
4271
|
+
private _clearSelection;
|
|
4272
|
+
private _selectAll;
|
|
4273
|
+
private _handleClickSelection;
|
|
4274
|
+
private _handleSpaceKey;
|
|
4275
|
+
private _getVisibleItems;
|
|
4276
|
+
private _syncItemStates;
|
|
4277
|
+
private _syncCheckboxes;
|
|
4278
|
+
private _findListItem;
|
|
4279
|
+
private _dispatch;
|
|
4280
|
+
private _openSearch;
|
|
4281
|
+
private _closeSearch;
|
|
4282
|
+
private _onPointerOver;
|
|
4283
|
+
private _onPointerLeave;
|
|
4284
|
+
private _onKeyDown;
|
|
4285
|
+
private _onClick;
|
|
4286
|
+
private _onDblClick;
|
|
4287
|
+
private _activateItem;
|
|
4288
|
+
private _onSearchInput;
|
|
4289
|
+
private _onSearchKeydown;
|
|
4290
|
+
static styles: CSSResult[];
|
|
4291
|
+
render(): TemplateResult<1>;
|
|
4292
|
+
}
|
|
4293
|
+
declare global {
|
|
4294
|
+
interface HTMLElementTagNameMap {
|
|
4295
|
+
'ixfx-vertical-list': VerticalListElement;
|
|
4296
|
+
}
|
|
4297
|
+
interface HTMLElementEventMap extends ListElementEventMap {}
|
|
4298
|
+
} //# sourceMappingURL=vertical-list.d.ts.map
|
|
4299
|
+
//#endregion
|
|
4300
|
+
//#region src/grouped-item-lister/vertical-list-adapter.d.ts
|
|
4301
|
+
type VerticalListAdapterOptions = {
|
|
4302
|
+
/** Initial selection mode forwarded to the inner ixfx-vertical-list. Default: `'single'`. */selectionMode?: ListSelectionMode; /** Interaction mode forwarded to the inner ixfx-vertical-list. Default: `'standard'`. */
|
|
4303
|
+
interactionMode?: ListInteractionMode;
|
|
4304
|
+
/**
|
|
4305
|
+
* Called when a command is dispatched via `ixfx-grouped-item-lister.dispatch()`.
|
|
4306
|
+
*
|
|
4307
|
+
* Receives the current inner `VerticalListElement` (undefined until the first
|
|
4308
|
+
* `setItems()` call) so the handler can sort, filter, or otherwise mutate the
|
|
4309
|
+
* list directly.
|
|
4310
|
+
*
|
|
4311
|
+
* @example Sort items alphabetically by text content:
|
|
4312
|
+
* ```ts
|
|
4313
|
+
* onDispatch: (id, _args, list) => {
|
|
4314
|
+
* if (id !== 'sort-alpha' || !list) return;
|
|
4315
|
+
* const rows = [...list.querySelectorAll<HTMLElement>('li')];
|
|
4316
|
+
* rows.sort((a, b) => (a.textContent ?? '').localeCompare(b.textContent ?? ''));
|
|
4317
|
+
* for (const row of rows) list.appendChild(row);
|
|
4318
|
+
* }
|
|
4319
|
+
* ```
|
|
4320
|
+
*/
|
|
4321
|
+
onDispatch?: (commandId: CommandId, args: Record<string, unknown> | undefined, list: VerticalListElement | undefined) => void;
|
|
4322
|
+
};
|
|
4323
|
+
/**
|
|
4324
|
+
* Creates an `HTMLElement` that implements `IGroupedSubComponent<T>` by wrapping
|
|
4325
|
+
* an `ixfx-vertical-list` internally.
|
|
4326
|
+
*
|
|
4327
|
+
* Items are typed as `T`. The `renderItem` function converts each item to a DOM
|
|
4328
|
+
* element (typically an `<li>`) that `ixfx-vertical-list` renders and handles
|
|
4329
|
+
* pointer/keyboard interaction for.
|
|
4330
|
+
*
|
|
4331
|
+
* The returned element bridges the `list-*` event names fired by
|
|
4332
|
+
* `ixfx-vertical-list` to the `select / activate / item-click / tickle` names
|
|
4333
|
+
* required by `IGroupedSubComponent`, and maps element-based selection sets back
|
|
4334
|
+
* to typed `T` values.
|
|
4335
|
+
*
|
|
4336
|
+
* @example Basic usage with ixfx-grouped-item-lister:
|
|
4337
|
+
* ```ts
|
|
4338
|
+
* lister.factory = () =>
|
|
4339
|
+
* createVerticalListAdapter<MyItem>(item => {
|
|
4340
|
+
* const li = document.createElement('li');
|
|
4341
|
+
* li.textContent = item.label;
|
|
4342
|
+
* return li;
|
|
4343
|
+
* });
|
|
4344
|
+
* ```
|
|
4345
|
+
*/
|
|
4346
|
+
declare function createVerticalListAdapter<T>(renderItem: (item: T) => Element, options?: VerticalListAdapterOptions): HTMLElement & IGroupedSubComponent<T>;
|
|
4347
|
+
//#endregion
|
|
4348
|
+
//#region src/hex/types.d.ts
|
|
4349
|
+
type BytePos = number;
|
|
4350
|
+
type SingleSelection = {
|
|
4351
|
+
readonly kind: `single`;
|
|
4352
|
+
readonly pos: BytePos;
|
|
4353
|
+
};
|
|
4354
|
+
type ContiguousSelection = {
|
|
4355
|
+
readonly kind: `contiguous`;
|
|
4356
|
+
readonly start: BytePos;
|
|
4357
|
+
readonly end: BytePos;
|
|
4358
|
+
};
|
|
4359
|
+
type RectangularSelection = {
|
|
4360
|
+
readonly kind: `rectangular`;
|
|
4361
|
+
readonly x: number;
|
|
4362
|
+
readonly y: number;
|
|
4363
|
+
readonly width: number;
|
|
4364
|
+
readonly height: number;
|
|
4365
|
+
};
|
|
4366
|
+
type Selection = SingleSelection | ContiguousSelection | RectangularSelection | null;
|
|
4367
|
+
type DiffEntry = {
|
|
4368
|
+
readonly before: number;
|
|
4369
|
+
readonly after: number;
|
|
4370
|
+
};
|
|
4371
|
+
type Diff = ReadonlyMap<BytePos, DiffEntry>;
|
|
4372
|
+
type ColourScheme = `ascii` | `shade`;
|
|
4373
|
+
//#endregion
|
|
4374
|
+
//#region src/hex/hex-editor.d.ts
|
|
4375
|
+
declare class IxfxHexEditorElement extends LitElement {
|
|
4376
|
+
columns: number;
|
|
4377
|
+
colourScheme: ColourScheme;
|
|
4378
|
+
showChangeset: boolean;
|
|
4379
|
+
hideOffsetCol: boolean;
|
|
4380
|
+
hideHexCol: boolean;
|
|
4381
|
+
hideTextCol: boolean;
|
|
4382
|
+
private _selection;
|
|
4383
|
+
private _scrollTop;
|
|
4384
|
+
private _editState;
|
|
4385
|
+
private _containerH;
|
|
4386
|
+
private _shadeMap;
|
|
4387
|
+
private _focusSide;
|
|
4388
|
+
private _store;
|
|
4389
|
+
private _undoStack;
|
|
4390
|
+
private _copyBuffer;
|
|
4391
|
+
private _rowHeight;
|
|
4392
|
+
private _dragStart;
|
|
4393
|
+
private _dragAnchor;
|
|
4394
|
+
private _rectAnchorX;
|
|
4395
|
+
private _rectAnchorY;
|
|
4396
|
+
private _rectAnchorXFromKeyboard;
|
|
4397
|
+
private _rectAnchorYFromKeyboard;
|
|
4398
|
+
private _initialSelectionPoint;
|
|
4399
|
+
private _currentCursorPoint;
|
|
4400
|
+
private _pointerMode;
|
|
4401
|
+
private _currentDragDiff;
|
|
4402
|
+
private _shiftClickTarget;
|
|
4403
|
+
static styles: CSSResult;
|
|
4404
|
+
setData(data: Uint8Array): void;
|
|
4405
|
+
undo(): void;
|
|
4406
|
+
redo(): void;
|
|
4407
|
+
recomputeColours(): void;
|
|
4408
|
+
selectedBytes(): Generator<{
|
|
4409
|
+
selection_index: number;
|
|
4410
|
+
array_index: number;
|
|
4411
|
+
value: number;
|
|
4412
|
+
}>;
|
|
4413
|
+
containsPosition(pos: number): boolean;
|
|
4414
|
+
selectSingle(position: number): void;
|
|
4415
|
+
selectContiguous(start: number, end: number): void;
|
|
4416
|
+
selectRectangular(x: number, y: number, width: number, height: number): void;
|
|
4417
|
+
clearSelection(): void;
|
|
4418
|
+
getSelection(): Selection;
|
|
4419
|
+
protected firstUpdated(): void;
|
|
4420
|
+
private _onScroll;
|
|
4421
|
+
private _onPointerDown;
|
|
4422
|
+
private _onPointerMove;
|
|
4423
|
+
private _onPointerUp;
|
|
4424
|
+
private _onKeyDown;
|
|
4425
|
+
private _handleBackspace;
|
|
4426
|
+
private _handleValueEntry;
|
|
4427
|
+
private _commitDecimalValue;
|
|
4428
|
+
private _advanceCursor;
|
|
4429
|
+
private _dispatchChangeEvent;
|
|
4430
|
+
private _dispatchSelectEvent;
|
|
4431
|
+
private _copy;
|
|
4432
|
+
private _paste;
|
|
4433
|
+
private _parseHexString;
|
|
4434
|
+
private _getColHeaders;
|
|
4435
|
+
private _isRowShaded;
|
|
4436
|
+
private _isHexShaded;
|
|
4437
|
+
private _isTextShaded;
|
|
4438
|
+
protected render(): TemplateResult<1>;
|
|
4439
|
+
private _renderRow;
|
|
4440
|
+
private _renderColumn;
|
|
4441
|
+
private _renderHexCell;
|
|
4442
|
+
private _renderTextChar;
|
|
4443
|
+
}
|
|
4444
|
+
type HexChangeDetail = {
|
|
4445
|
+
readonly diff: Diff;
|
|
4446
|
+
};
|
|
4447
|
+
type HexChangeEvent = CustomEvent<HexChangeDetail>;
|
|
4448
|
+
type SingleSelectEventDetail = {
|
|
4449
|
+
readonly type: `single`;
|
|
4450
|
+
readonly position: number;
|
|
4451
|
+
};
|
|
4452
|
+
type ContiguousSelectEventDetail = {
|
|
4453
|
+
readonly type: `contiguous`;
|
|
4454
|
+
readonly start: number;
|
|
4455
|
+
readonly end: number;
|
|
4456
|
+
};
|
|
4457
|
+
type RectangularSelectEventDetail = {
|
|
4458
|
+
readonly type: `rectangular`;
|
|
4459
|
+
readonly x: number;
|
|
4460
|
+
readonly y: number;
|
|
4461
|
+
readonly width: number;
|
|
4462
|
+
readonly height: number;
|
|
4463
|
+
};
|
|
4464
|
+
type NoneSelectEventDetail = {
|
|
4465
|
+
readonly type: `none`;
|
|
4466
|
+
};
|
|
4467
|
+
type SelectEventDetail = SingleSelectEventDetail | ContiguousSelectEventDetail | RectangularSelectEventDetail | NoneSelectEventDetail;
|
|
4468
|
+
declare global {
|
|
4469
|
+
interface HTMLElementTagNameMap {
|
|
4470
|
+
'ixfx-hex-editor': IxfxHexEditorElement;
|
|
4471
|
+
}
|
|
4472
|
+
} //# sourceMappingURL=hex-editor.d.ts.map
|
|
4473
|
+
//#endregion
|
|
4474
|
+
//#region src/icons/defaults.d.ts
|
|
4475
|
+
/**
|
|
4476
|
+
* Chevron pointing down. Used for split-button dropdown toggle.
|
|
4477
|
+
* fill="currentColor" so it inherits CSS color.
|
|
4478
|
+
*/
|
|
4479
|
+
declare const ICON_CHEVRON_DOWN = "<svg viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\"/></svg>";
|
|
4480
|
+
/**
|
|
4481
|
+
* Caret pointing right. Used for tree-basic expand indicator as a CSS mask.
|
|
4482
|
+
* fill="black" is correct for CSS mask-image use (shape only, color comes from background-color).
|
|
4483
|
+
*/
|
|
4484
|
+
declare const ICON_CARET_RIGHT = "<svg viewBox=\"0 0 24 24\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 7l6 5-6 5V7z\"/></svg>";
|
|
4485
|
+
/**
|
|
4486
|
+
* Checkmark. Useful for menu-check-item or confirmation states.
|
|
4487
|
+
* fill="currentColor" so it inherits CSS color.
|
|
3703
4488
|
*/
|
|
3704
4489
|
declare const ICON_CHECK = "<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z\"/></svg>";
|
|
3705
4490
|
/**
|
|
@@ -3967,7 +4752,7 @@ declare global {
|
|
|
3967
4752
|
}
|
|
3968
4753
|
} //# sourceMappingURL=labelled-radial-input.d.ts.map
|
|
3969
4754
|
//#endregion
|
|
3970
|
-
//#region src/led.d.ts
|
|
4755
|
+
//#region src/led/led.d.ts
|
|
3971
4756
|
declare class LedElement extends LitElement {
|
|
3972
4757
|
#private;
|
|
3973
4758
|
value: number;
|
|
@@ -4094,7 +4879,7 @@ declare global {
|
|
|
4094
4879
|
//#endregion
|
|
4095
4880
|
//#region src/menu/menu-separator.d.ts
|
|
4096
4881
|
declare class MenuSeparator extends LitElement {
|
|
4097
|
-
static styles: CSSResult;
|
|
4882
|
+
static styles: CSSResult[];
|
|
4098
4883
|
render(): TemplateResult<1>;
|
|
4099
4884
|
}
|
|
4100
4885
|
declare global {
|
|
@@ -4106,7 +4891,7 @@ declare global {
|
|
|
4106
4891
|
//#region src/menu/menu-header.d.ts
|
|
4107
4892
|
declare class MenuHeader extends LitElement {
|
|
4108
4893
|
label: string;
|
|
4109
|
-
static styles: CSSResult;
|
|
4894
|
+
static styles: CSSResult[];
|
|
4110
4895
|
render(): TemplateResult<1>;
|
|
4111
4896
|
}
|
|
4112
4897
|
declare global {
|
|
@@ -4218,192 +5003,6 @@ type MillerItemState = {
|
|
|
4218
5003
|
isLeaf: boolean;
|
|
4219
5004
|
};
|
|
4220
5005
|
//#endregion
|
|
4221
|
-
//#region src/interaction/tickled-controller.d.ts
|
|
4222
|
-
/**
|
|
4223
|
-
* Represents an item that can be tickled (highlighted via hover or keyboard navigation)
|
|
4224
|
-
*/
|
|
4225
|
-
type TickledItem<T = unknown> = {
|
|
4226
|
-
/**
|
|
4227
|
-
* Unique identifier for the item (e.g., index, id, path)
|
|
4228
|
-
*/
|
|
4229
|
-
readonly id: T;
|
|
4230
|
-
/**
|
|
4231
|
-
* Whether the item is currently enabled/interactive
|
|
4232
|
-
*/
|
|
4233
|
-
readonly enabled?: boolean;
|
|
4234
|
-
};
|
|
4235
|
-
/**
|
|
4236
|
-
* Input mode determines which mechanism controls the tickled state
|
|
4237
|
-
*/
|
|
4238
|
-
type InputMode = `keyboard` | `mouse`;
|
|
4239
|
-
/**
|
|
4240
|
-
* Configuration for TickledController
|
|
4241
|
-
*/
|
|
4242
|
-
type TickledControllerConfig<T> = {
|
|
4243
|
-
/**
|
|
4244
|
-
* Function to retrieve all items that can be tickled
|
|
4245
|
-
*/
|
|
4246
|
-
getItems: () => ReadonlyArray<TickledItem<T>>;
|
|
4247
|
-
/**
|
|
4248
|
-
* Optional callback when an item becomes tickled
|
|
4249
|
-
* Use this for side effects like opening submenus
|
|
4250
|
-
* @param id - The id of the newly tickled item, or undefined if nothing is tickled
|
|
4251
|
-
*/
|
|
4252
|
-
onTickle?: (id: T | undefined) => void;
|
|
4253
|
-
/**
|
|
4254
|
-
* Optional callback fired after any state change (tickled id or input mode)
|
|
4255
|
-
* Use this to sync DOM attributes for slotted content that can't use reactive rendering
|
|
4256
|
-
*
|
|
4257
|
-
* For components that render items directly, this is usually not needed as
|
|
4258
|
-
* Lit's reactive rendering will handle updates automatically via requestUpdate()
|
|
4259
|
-
*
|
|
4260
|
-
* @example
|
|
4261
|
-
* ```ts
|
|
4262
|
-
* onStateChange: () => {
|
|
4263
|
-
* // Sync data-tickled attributes for slotted items
|
|
4264
|
-
* const items = this.getItems();
|
|
4265
|
-
* items.forEach((item, i) => {
|
|
4266
|
-
* if (this.tickled.isTickled(i)) {
|
|
4267
|
-
* item.setAttribute('data-tickled', '');
|
|
4268
|
-
* } else {
|
|
4269
|
-
* item.removeAttribute('data-tickled');
|
|
4270
|
-
* }
|
|
4271
|
-
* });
|
|
4272
|
-
* }
|
|
4273
|
-
* ```
|
|
4274
|
-
*/
|
|
4275
|
-
onStateChange?: () => void;
|
|
4276
|
-
/**
|
|
4277
|
-
* Optional initial input mode (defaults to 'mouse')
|
|
4278
|
-
*/
|
|
4279
|
-
initialInputMode?: InputMode;
|
|
4280
|
-
};
|
|
4281
|
-
/**
|
|
4282
|
-
* ReactiveController that manages "tickled" state for interactive lists.
|
|
4283
|
-
*
|
|
4284
|
-
* A "tickled" item is one that is under active attention via hover (mouse mode)
|
|
4285
|
-
* or keyboard focus (keyboard mode). Only one item can be tickled at a time.
|
|
4286
|
-
*
|
|
4287
|
-
* The input mode determines which mechanism controls tickled state:
|
|
4288
|
-
* - Mouse mode: hover controls tickled, keyboard navigation ignored
|
|
4289
|
-
* - Keyboard mode: keyboard navigation controls tickled, hover ignored
|
|
4290
|
-
*
|
|
4291
|
-
* Last interaction wins - any mouse hover switches to mouse mode, any keyboard
|
|
4292
|
-
* navigation switches to keyboard mode.
|
|
4293
|
-
*
|
|
4294
|
-
* ## Global Mouse Tracking
|
|
4295
|
-
*
|
|
4296
|
-
* This controller uses a singleton global `pointermove` listener to track actual
|
|
4297
|
-
* mouse movement. This prevents `pointerenter` events caused by content scrolling
|
|
4298
|
-
* from incorrectly switching to mouse mode when the user is actually using keyboard
|
|
4299
|
-
* navigation.
|
|
4300
|
-
*
|
|
4301
|
-
* @example
|
|
4302
|
-
* ```ts
|
|
4303
|
-
* class MyList extends LitElement {
|
|
4304
|
-
* private tickled = new TickledController(this, {
|
|
4305
|
-
* getItems: () => this.items.map((item, i) => ({ id: i, enabled: !item.disabled })),
|
|
4306
|
-
* onTickle: (id) => {
|
|
4307
|
-
* // Optional: perform side effect when item is tickled
|
|
4308
|
-
* console.log('Tickled item:', id);
|
|
4309
|
-
* }
|
|
4310
|
-
* });
|
|
4311
|
-
*
|
|
4312
|
-
* render() {
|
|
4313
|
-
* return html`
|
|
4314
|
-
* <ul @pointerleave=${(e) => this.tickled.handlePointerLeave(e)}>
|
|
4315
|
-
* ${this.items.map((item, i) => html`
|
|
4316
|
-
* <li
|
|
4317
|
-
* class="item ${this.tickled.isTickled(i) ? 'tickled' : ''}"
|
|
4318
|
-
* @pointerenter=${() => this.tickled.handlePointerEnter(i)}
|
|
4319
|
-
* >${item.label}</li>
|
|
4320
|
-
* `)}
|
|
4321
|
-
* </ul>
|
|
4322
|
-
* `;
|
|
4323
|
-
* }
|
|
4324
|
-
*
|
|
4325
|
-
* private handleKeyDown(e: KeyboardEvent) {
|
|
4326
|
-
* if (e.key === 'ArrowDown') {
|
|
4327
|
-
* this.tickled.handleKeyboardNavigation('next');
|
|
4328
|
-
* } else if (e.key === 'ArrowUp') {
|
|
4329
|
-
* this.tickled.handleKeyboardNavigation('previous');
|
|
4330
|
-
* }
|
|
4331
|
-
* }
|
|
4332
|
-
* }
|
|
4333
|
-
* ```
|
|
4334
|
-
*/
|
|
4335
|
-
declare class TickledController<T = number> implements ReactiveController {
|
|
4336
|
-
private host;
|
|
4337
|
-
private config;
|
|
4338
|
-
private _tickledId;
|
|
4339
|
-
private _inputMode;
|
|
4340
|
-
private static _lastMouseClientX;
|
|
4341
|
-
private static _lastMouseClientY;
|
|
4342
|
-
private static _mouseMovedSinceKeyboard;
|
|
4343
|
-
private static _globalListenerAttached;
|
|
4344
|
-
constructor(host: ReactiveControllerHost, config: TickledControllerConfig<T>);
|
|
4345
|
-
hostConnected(): void;
|
|
4346
|
-
hostDisconnected(): void;
|
|
4347
|
-
/**
|
|
4348
|
-
* Get the current input mode
|
|
4349
|
-
*/
|
|
4350
|
-
get inputMode(): InputMode;
|
|
4351
|
-
/**
|
|
4352
|
-
* Get the currently tickled item id
|
|
4353
|
-
*/
|
|
4354
|
-
get tickledId(): T | undefined;
|
|
4355
|
-
/**
|
|
4356
|
-
* Check if a specific item is tickled
|
|
4357
|
-
*/
|
|
4358
|
-
isTickled(id: T): boolean;
|
|
4359
|
-
/**
|
|
4360
|
-
* Handle global pointer move event.
|
|
4361
|
-
* Called automatically by the global listener.
|
|
4362
|
-
* Tracks mouse movement to distinguish real hover from content scrolling.
|
|
4363
|
-
*/
|
|
4364
|
-
private static handleGlobalPointerMove;
|
|
4365
|
-
/**
|
|
4366
|
-
* Check if actual mouse movement has occurred since last keyboard interaction.
|
|
4367
|
-
* Used to distinguish real hover/leave from content-scrolling-induced events.
|
|
4368
|
-
*/
|
|
4369
|
-
static get hasMouseMovedSinceKeyboard(): boolean;
|
|
4370
|
-
/**
|
|
4371
|
-
* Handle pointer enter event on an item (mouse hover).
|
|
4372
|
-
* Only processes if actual mouse movement is detected (not content scrolling).
|
|
4373
|
-
* Switches to mouse mode and tickles the item.
|
|
4374
|
-
*/
|
|
4375
|
-
handlePointerEnter(id: T): void;
|
|
4376
|
-
/**
|
|
4377
|
-
* Handle pointer leave event on an item.
|
|
4378
|
-
* Only clears tickled state if actual mouse movement is detected.
|
|
4379
|
-
* @param _e The pointer event (not used, but kept for API compatibility)
|
|
4380
|
-
*/
|
|
4381
|
-
handlePointerLeave(_e: PointerEvent): void;
|
|
4382
|
-
/**
|
|
4383
|
-
* Handle keyboard navigation.
|
|
4384
|
-
* Switches to keyboard mode and moves tickled state.
|
|
4385
|
-
*
|
|
4386
|
-
* @param direction - 'next', 'previous', 'first', 'last', or specific id
|
|
4387
|
-
*/
|
|
4388
|
-
handleKeyboardNavigation(direction: `next` | `previous` | `first` | `last` | T): void;
|
|
4389
|
-
/**
|
|
4390
|
-
* Manually set the tickled item (useful for programmatic control).
|
|
4391
|
-
* Does NOT change input mode.
|
|
4392
|
-
*/
|
|
4393
|
-
setTickled(id: T | undefined): void;
|
|
4394
|
-
/**
|
|
4395
|
-
* Clear the tickled state (e.g., on pointer leave).
|
|
4396
|
-
* Note: For pointer leave events, prefer using handlePointerLeave() which
|
|
4397
|
-
* checks for actual mouse movement.
|
|
4398
|
-
*/
|
|
4399
|
-
clearTickled(): void;
|
|
4400
|
-
/**
|
|
4401
|
-
* Manually set the input mode.
|
|
4402
|
-
* When switching to keyboard mode, resets the mouse movement tracking.
|
|
4403
|
-
*/
|
|
4404
|
-
setInputMode(mode: InputMode): void;
|
|
4405
|
-
}
|
|
4406
|
-
//#endregion
|
|
4407
5006
|
//#region src/miller/miller-base.d.ts
|
|
4408
5007
|
/**
|
|
4409
5008
|
* Base class for Miller column components. Handles column lifecycle,
|
|
@@ -4639,66 +5238,28 @@ type MillerTreeControllerOptions<T> = {
|
|
|
4639
5238
|
* Children are populated lazily: the controller provides a `loadChildren`
|
|
4640
5239
|
* callback that synchronously reads from the underlying tree.
|
|
4641
5240
|
*
|
|
4642
|
-
* Call `disconnect()` to remove all event listeners and release resources.
|
|
4643
|
-
*/
|
|
4644
|
-
declare class MillerTreeController<T> {
|
|
4645
|
-
#private;
|
|
4646
|
-
constructor(root: TraversableTree<T>, element: MillerBaseElement, options: MillerTreeControllerOptions<T>);
|
|
4647
|
-
/**
|
|
4648
|
-
* Wire up the controller: sets `element.root` and provides `loadChildren` callback.
|
|
4649
|
-
* Safe to call again after `disconnect()`.
|
|
4650
|
-
*/
|
|
4651
|
-
connect(): void;
|
|
4652
|
-
/** Remove all event listeners and release internal state. */
|
|
4653
|
-
disconnect(): void;
|
|
4654
|
-
/**
|
|
4655
|
-
* Navigate the component to the first node (depth-first) in the ixfx tree
|
|
4656
|
-
* whose value satisfies `predicate`.
|
|
4657
|
-
*
|
|
4658
|
-
* Any ancestor `MillerNode`s with unloaded children are populated
|
|
4659
|
-
* synchronously before calling `element.navigateTo()`.
|
|
4660
|
-
*
|
|
4661
|
-
* Returns `false` if no matching node is found.
|
|
4662
|
-
*/
|
|
4663
|
-
navigateToValue(predicate: (value: T) => boolean): boolean;
|
|
4664
|
-
}
|
|
4665
|
-
//#endregion
|
|
4666
|
-
//#region src/panel/panel.d.ts
|
|
4667
|
-
type PanelOrientation = `horizontal` | `vertical`;
|
|
4668
|
-
type PanelVariant = `titlebar` | `midline`;
|
|
4669
|
-
type PanelToggleInteraction = `implicit` | `explicit` | `disabled`;
|
|
4670
|
-
interface PanelToggleDetail {
|
|
4671
|
-
readonly collapsed: boolean;
|
|
4672
|
-
}
|
|
4673
|
-
type PanelToggleEvent = CustomEvent<PanelToggleDetail>;
|
|
4674
|
-
type PanelCloseEvent = CustomEvent<void>;
|
|
4675
|
-
interface PanelElementEventMap {
|
|
4676
|
-
toggle: PanelToggleEvent;
|
|
4677
|
-
close: PanelCloseEvent;
|
|
4678
|
-
}
|
|
4679
|
-
declare class PanelElement extends LitElement {
|
|
4680
|
-
collapsed: boolean;
|
|
4681
|
-
orientation: PanelOrientation;
|
|
4682
|
-
closable: boolean;
|
|
4683
|
-
title: string;
|
|
4684
|
-
iconName: string;
|
|
4685
|
-
toggleInteraction: PanelToggleInteraction;
|
|
4686
|
-
variant: PanelVariant;
|
|
4687
|
-
private _isVertical;
|
|
4688
|
-
private _onToggleClick;
|
|
4689
|
-
private _onCloseClick;
|
|
4690
|
-
private _getCaretIcon;
|
|
4691
|
-
protected updated(changed: Map<string, unknown>): void;
|
|
4692
|
-
protected render(): TemplateResult<1>;
|
|
4693
|
-
static styles: CSSResult;
|
|
4694
|
-
}
|
|
4695
|
-
declare global {
|
|
4696
|
-
interface HTMLElementTagNameMap {
|
|
4697
|
-
'ixfx-panel': PanelElement;
|
|
4698
|
-
}
|
|
4699
|
-
}
|
|
4700
|
-
interface PanelElement {
|
|
4701
|
-
addEventListener: (<K extends keyof PanelElementEventMap>(type: K, listener: (this: PanelElement, event: PanelElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
5241
|
+
* Call `disconnect()` to remove all event listeners and release resources.
|
|
5242
|
+
*/
|
|
5243
|
+
declare class MillerTreeController<T> {
|
|
5244
|
+
#private;
|
|
5245
|
+
constructor(root: TraversableTree<T>, element: MillerBaseElement, options: MillerTreeControllerOptions<T>);
|
|
5246
|
+
/**
|
|
5247
|
+
* Wire up the controller: sets `element.root` and provides `loadChildren` callback.
|
|
5248
|
+
* Safe to call again after `disconnect()`.
|
|
5249
|
+
*/
|
|
5250
|
+
connect(): void;
|
|
5251
|
+
/** Remove all event listeners and release internal state. */
|
|
5252
|
+
disconnect(): void;
|
|
5253
|
+
/**
|
|
5254
|
+
* Navigate the component to the first node (depth-first) in the ixfx tree
|
|
5255
|
+
* whose value satisfies `predicate`.
|
|
5256
|
+
*
|
|
5257
|
+
* Any ancestor `MillerNode`s with unloaded children are populated
|
|
5258
|
+
* synchronously before calling `element.navigateTo()`.
|
|
5259
|
+
*
|
|
5260
|
+
* Returns `false` if no matching node is found.
|
|
5261
|
+
*/
|
|
5262
|
+
navigateToValue(predicate: (value: T) => boolean): boolean;
|
|
4702
5263
|
}
|
|
4703
5264
|
//#endregion
|
|
4704
5265
|
//#region src/panel/panel-group.d.ts
|
|
@@ -4780,6 +5341,85 @@ declare class PlotDataSeries {
|
|
|
4780
5341
|
clear(): void;
|
|
4781
5342
|
}
|
|
4782
5343
|
//#endregion
|
|
5344
|
+
//#region src/plots/multi-axis.d.ts
|
|
5345
|
+
type PlotMultiAxisLayout = `overlap` | `horizontal` | `vertical` | `grid`;
|
|
5346
|
+
type PlotMultiAxisDataPointClickDetail = {
|
|
5347
|
+
readonly value: number;
|
|
5348
|
+
readonly index: number;
|
|
5349
|
+
readonly series: string;
|
|
5350
|
+
};
|
|
5351
|
+
type PlotMultiAxisDataPointClickEvent = CustomEvent<PlotMultiAxisDataPointClickDetail>;
|
|
5352
|
+
interface PlotMultiAxisElementEventMap {
|
|
5353
|
+
'plot-datapoint-click': PlotMultiAxisDataPointClickEvent;
|
|
5354
|
+
}
|
|
5355
|
+
declare class PlotMultiAxis extends LitElement {
|
|
5356
|
+
#private;
|
|
5357
|
+
layout: PlotMultiAxisLayout;
|
|
5358
|
+
gridMinWidth: number;
|
|
5359
|
+
/** Override to customize tooltip value display. */
|
|
5360
|
+
valueFormat: (v: number | undefined) => string;
|
|
5361
|
+
addData(data: Record<string, number>): void;
|
|
5362
|
+
addData(name: string, value: number): void;
|
|
5363
|
+
styleSeries(name: string, styles: Record<string, string>): void;
|
|
5364
|
+
clear(): void;
|
|
5365
|
+
clearSeries(name: string): void;
|
|
5366
|
+
get series(): string[];
|
|
5367
|
+
protected render(): TemplateResult<1>;
|
|
5368
|
+
static styles: CSSResult;
|
|
5369
|
+
}
|
|
5370
|
+
declare global {
|
|
5371
|
+
interface HTMLElementTagNameMap {
|
|
5372
|
+
'ixfx-plot-multi-axis': PlotMultiAxis;
|
|
5373
|
+
}
|
|
5374
|
+
}
|
|
5375
|
+
interface PlotMultiAxis {
|
|
5376
|
+
addEventListener: {
|
|
5377
|
+
<K extends keyof PlotMultiAxisElementEventMap>(type: K, listener: (this: PlotMultiAxis, event: PlotMultiAxisElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
5378
|
+
(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5379
|
+
};
|
|
5380
|
+
}
|
|
5381
|
+
//#endregion
|
|
5382
|
+
//#region src/plots/plot-histogram.d.ts
|
|
5383
|
+
type PlotHistogramOrientation = 'horizontal' | 'vertical';
|
|
5384
|
+
type PlotHistogramBucketClickDetail = {
|
|
5385
|
+
readonly bucketIndex: number;
|
|
5386
|
+
readonly valueMin: number;
|
|
5387
|
+
readonly valueMax: number;
|
|
5388
|
+
readonly relativeValue: number;
|
|
5389
|
+
};
|
|
5390
|
+
type PlotHistogramBucketClickEvent = CustomEvent<PlotHistogramBucketClickDetail>;
|
|
5391
|
+
interface PlotHistogramElementEventMap {
|
|
5392
|
+
'plot-bucket-click': PlotHistogramBucketClickEvent;
|
|
5393
|
+
}
|
|
5394
|
+
declare class PlotHistogram extends LitElement {
|
|
5395
|
+
#private;
|
|
5396
|
+
orientation: PlotHistogramOrientation;
|
|
5397
|
+
resolution: number;
|
|
5398
|
+
min?: number;
|
|
5399
|
+
max?: number;
|
|
5400
|
+
capacity: number;
|
|
5401
|
+
title: string;
|
|
5402
|
+
paused: boolean;
|
|
5403
|
+
private _width;
|
|
5404
|
+
private _height;
|
|
5405
|
+
add(v: number): void;
|
|
5406
|
+
set(values: number[]): void;
|
|
5407
|
+
clear(): void;
|
|
5408
|
+
protected firstUpdated(_changed: PropertyValues): void;
|
|
5409
|
+
protected updated(changed: PropertyValues): void;
|
|
5410
|
+
render(): TemplateResult<1>;
|
|
5411
|
+
static styles: CSSResult;
|
|
5412
|
+
}
|
|
5413
|
+
declare global {
|
|
5414
|
+
interface HTMLElementTagNameMap {
|
|
5415
|
+
'ixfx-plot-histogram': PlotHistogram;
|
|
5416
|
+
}
|
|
5417
|
+
}
|
|
5418
|
+
interface PlotHistogram {
|
|
5419
|
+
addEventListener<K extends keyof PlotHistogramElementEventMap>(type: K, listener: (this: PlotHistogram, event: PlotHistogramElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
5420
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5421
|
+
}
|
|
5422
|
+
//#endregion
|
|
4783
5423
|
//#region src/plots/single-axis.d.ts
|
|
4784
5424
|
type SingleAxisDrawStyle = `line-sharp` | `line-round` | `circles` | `squares` | `vbar` | `hbar` | `hist-bottom` | `hist-top` | `hist-middle`;
|
|
4785
5425
|
type SingleAxisAgeStyle = `none` | `opacity` | `desaturation` | `size`;
|
|
@@ -4805,6 +5445,10 @@ declare class PlotSingleAxis extends LitElement {
|
|
|
4805
5445
|
private _height;
|
|
4806
5446
|
/** Override to customize tooltip label. */
|
|
4807
5447
|
valueFormat: (v: number | undefined) => string;
|
|
5448
|
+
get values(): readonly number[];
|
|
5449
|
+
get dataCount(): number;
|
|
5450
|
+
getValueAt(index: number): number | undefined;
|
|
5451
|
+
getIndexFromClientX(clientX: number): number;
|
|
4808
5452
|
add(v: number): void;
|
|
4809
5453
|
set(values: number[]): void;
|
|
4810
5454
|
clear(): void;
|
|
@@ -4813,11 +5457,27 @@ declare class PlotSingleAxis extends LitElement {
|
|
|
4813
5457
|
render(): TemplateResult<1>;
|
|
4814
5458
|
static styles: CSSResult;
|
|
4815
5459
|
}
|
|
5460
|
+
type PlotSingleAxisPointerMoveDetail = {
|
|
5461
|
+
readonly clientX: number;
|
|
5462
|
+
readonly clientY: number;
|
|
5463
|
+
readonly index: number;
|
|
5464
|
+
};
|
|
5465
|
+
type PlotSingleAxisPointerMoveEvent = CustomEvent<PlotSingleAxisPointerMoveDetail>;
|
|
5466
|
+
interface PlotSingleAxisElementEventMap {
|
|
5467
|
+
'plot-pointer-move': PlotSingleAxisPointerMoveEvent;
|
|
5468
|
+
'plot-pointer-leave': Event;
|
|
5469
|
+
}
|
|
4816
5470
|
declare global {
|
|
4817
5471
|
interface HTMLElementTagNameMap {
|
|
4818
5472
|
'ixfx-plot-single-axis': PlotSingleAxis;
|
|
4819
5473
|
}
|
|
4820
|
-
}
|
|
5474
|
+
}
|
|
5475
|
+
interface PlotSingleAxis {
|
|
5476
|
+
addEventListener: {
|
|
5477
|
+
<K extends keyof PlotSingleAxisElementEventMap>(type: K, listener: (this: PlotSingleAxis, event: PlotSingleAxisElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
5478
|
+
(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5479
|
+
};
|
|
5480
|
+
}
|
|
4821
5481
|
//#endregion
|
|
4822
5482
|
//#region src/plots/xy-axis.d.ts
|
|
4823
5483
|
type XyDrawStyle = `circles` | `squares`;
|
|
@@ -4861,7 +5521,7 @@ declare global {
|
|
|
4861
5521
|
//#endregion
|
|
4862
5522
|
//#region src/polar-pad/polar-pad.d.ts
|
|
4863
5523
|
declare class PolarPad extends LitElement {
|
|
4864
|
-
static styles: CSSResult;
|
|
5524
|
+
static styles: CSSResult[];
|
|
4865
5525
|
/** Current angle in degrees. 0 = right, increases clockwise. */
|
|
4866
5526
|
angle: number;
|
|
4867
5527
|
/** Current radius 0–1. 0 = origin, 1 = edge. */
|
|
@@ -5065,7 +5725,7 @@ declare global {
|
|
|
5065
5725
|
declare class SelectHorizontalElement extends LitElement {
|
|
5066
5726
|
editMode: boolean;
|
|
5067
5727
|
render(): TemplateResult<1>;
|
|
5068
|
-
static styles: CSSResult;
|
|
5728
|
+
static styles: CSSResult[];
|
|
5069
5729
|
}
|
|
5070
5730
|
declare global {
|
|
5071
5731
|
interface HTMLElementTagNameMap {
|
|
@@ -5161,7 +5821,7 @@ declare class SplitLayoutElement extends LitElement {
|
|
|
5161
5821
|
updated(changedProperties: Map<string, unknown>): void;
|
|
5162
5822
|
getZone(): HTMLElement | undefined;
|
|
5163
5823
|
render(): TemplateResult<1>;
|
|
5164
|
-
static styles: CSSResult;
|
|
5824
|
+
static styles: CSSResult[];
|
|
5165
5825
|
}
|
|
5166
5826
|
declare global {
|
|
5167
5827
|
interface HTMLElementTagNameMap {
|
|
@@ -5264,7 +5924,7 @@ declare class TabListElement extends LitElement {
|
|
|
5264
5924
|
updated(changedProperties: PropertyValues): void;
|
|
5265
5925
|
getSelectedElement(): TabListItemElement | undefined;
|
|
5266
5926
|
selectElement(el: HTMLElement): void;
|
|
5267
|
-
static styles: CSSResult;
|
|
5927
|
+
static styles: CSSResult[];
|
|
5268
5928
|
}
|
|
5269
5929
|
declare global {
|
|
5270
5930
|
interface HTMLElementTagNameMap {
|
|
@@ -5275,7 +5935,7 @@ declare global {
|
|
|
5275
5935
|
//#region src/tabs/tab-panel.d.ts
|
|
5276
5936
|
declare class TabPanelElement extends LitElement {
|
|
5277
5937
|
render(): TemplateResult<1>;
|
|
5278
|
-
static styles: CSSResult;
|
|
5938
|
+
static styles: CSSResult[];
|
|
5279
5939
|
}
|
|
5280
5940
|
declare global {
|
|
5281
5941
|
interface HTMLElementTagNameMap {
|
|
@@ -5730,69 +6390,6 @@ declare global {
|
|
|
5730
6390
|
}
|
|
5731
6391
|
} //# sourceMappingURL=transitory-label.d.ts.map
|
|
5732
6392
|
//#endregion
|
|
5733
|
-
//#region src/tree/tree-base.d.ts
|
|
5734
|
-
declare class TreeBaseElement extends LitElement implements TreeComponent, TreeSearchHost {
|
|
5735
|
-
#private;
|
|
5736
|
-
root: TreeNode | undefined;
|
|
5737
|
-
model: TreeDataModel | undefined;
|
|
5738
|
-
/** Callback to lazily load children for a node. Superseded by `model` when both are set. */
|
|
5739
|
-
loadChildren: LoadChildrenCallback | undefined;
|
|
5740
|
-
exclusivity: TreeExclusivity;
|
|
5741
|
-
selectionFilter: TreeSelectionFilter;
|
|
5742
|
-
/** Controls how pointer/keyboard gestures map to selection changes. Default: `'standard'`. */
|
|
5743
|
-
interactionMode: TreeInteractionMode;
|
|
5744
|
-
selectedNode: TreeNode | undefined;
|
|
5745
|
-
protected _selectedNodes: Set<TreeNode>;
|
|
5746
|
-
get selectedNodes(): ReadonlySet<TreeNode>;
|
|
5747
|
-
filterPredicate: TreeFilterPredicate | undefined;
|
|
5748
|
-
disableKeyboardNavigation: boolean;
|
|
5749
|
-
protected _expandedKeys: Set<string>;
|
|
5750
|
-
protected tickled: TickledController<string>;
|
|
5751
|
-
protected _focusedDepth: number;
|
|
5752
|
-
updated(changedProps: PropertyValues): void;
|
|
5753
|
-
connectedCallback(): void;
|
|
5754
|
-
disconnectedCallback(): void;
|
|
5755
|
-
getConfig(): TreeConfig;
|
|
5756
|
-
setConfig(config: Partial<TreeConfig>): void;
|
|
5757
|
-
select(node: TreeNode): void;
|
|
5758
|
-
deselect(node: TreeNode): void;
|
|
5759
|
-
clearSelection(): void;
|
|
5760
|
-
navigateTo(keys: readonly string[]): boolean;
|
|
5761
|
-
navigateToNode(predicate: (node: TreeNode) => boolean): boolean;
|
|
5762
|
-
getNodes(): ReadonlyArray<{
|
|
5763
|
-
node: TreeNode;
|
|
5764
|
-
depth: number;
|
|
5765
|
-
}>;
|
|
5766
|
-
protected renderNodeContent(node: TreeNode, _depth: number): TemplateResult | typeof nothing;
|
|
5767
|
-
protected _handleItemClick(node: TreeNode, depth: number, event?: MouseEvent): void;
|
|
5768
|
-
protected _handleCheckboxClick(event: MouseEvent, node: TreeNode, _depth: number): void;
|
|
5769
|
-
protected _isSelected(node: TreeNode): boolean;
|
|
5770
|
-
protected _isFocused(node: TreeNode): boolean;
|
|
5771
|
-
protected _isExpanded(node: TreeNode): boolean;
|
|
5772
|
-
protected get _pendingNode(): TreeNode | undefined;
|
|
5773
|
-
protected renderLoadingIndicator(): TemplateResult | typeof nothing;
|
|
5774
|
-
protected render(): TemplateResult<1>;
|
|
5775
|
-
protected _renderNode(node: TreeNode, depth: number): TemplateResult;
|
|
5776
|
-
static styles: CSSResult[];
|
|
5777
|
-
}
|
|
5778
|
-
declare global {
|
|
5779
|
-
interface HTMLElementTagNameMap {
|
|
5780
|
-
'ixfx-tree-base': TreeBaseElement;
|
|
5781
|
-
}
|
|
5782
|
-
}
|
|
5783
|
-
interface TreeBaseElementEventMap extends TreeComponentEventMap {
|
|
5784
|
-
'item-click': TreeItemClickEvent;
|
|
5785
|
-
'expand': TreeExpandEvent;
|
|
5786
|
-
'collapse': TreeCollapseEvent;
|
|
5787
|
-
'select': TreeSelectEvent;
|
|
5788
|
-
'tickle': TreeTickleEvent;
|
|
5789
|
-
'activate': TreeActivateEvent;
|
|
5790
|
-
}
|
|
5791
|
-
interface TreeBaseElement {
|
|
5792
|
-
addEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeBaseElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
5793
|
-
removeEventListener: (<K extends keyof TreeBaseElementEventMap>(type: K, listener: (this: TreeBaseElement, event: TreeBaseElementEventMap[K]) => void, options?: boolean | EventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void);
|
|
5794
|
-
}
|
|
5795
|
-
//#endregion
|
|
5796
6393
|
//#region src/tree/tree-controller.d.ts
|
|
5797
6394
|
type TreeControllerOptions<T> = {
|
|
5798
6395
|
valueToItem: (value: T, node: TraversableTree<T>) => TreeItem;
|
|
@@ -5805,124 +6402,10 @@ declare class TreeController<T> {
|
|
|
5805
6402
|
navigateToValue(predicate: (value: T) => boolean): boolean;
|
|
5806
6403
|
}
|
|
5807
6404
|
//#endregion
|
|
5808
|
-
//#region src/tree/tree-list.d.ts
|
|
5809
|
-
declare class TreeListElement extends TreeBaseElement {
|
|
5810
|
-
#private;
|
|
5811
|
-
protected render(): TemplateResult<1>;
|
|
5812
|
-
protected renderNodeContent(node: TreeNode, depth: number): TemplateResult;
|
|
5813
|
-
protected _renderNode(node: TreeNode, depth: number): TemplateResult;
|
|
5814
|
-
static styles: CSSResult[];
|
|
5815
|
-
}
|
|
5816
|
-
declare global {
|
|
5817
|
-
interface HTMLElementTagNameMap {
|
|
5818
|
-
'ixfx-tree-list': TreeListElement;
|
|
5819
|
-
}
|
|
5820
|
-
}
|
|
5821
|
-
interface TreeListElement {
|
|
5822
|
-
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);
|
|
5823
|
-
}
|
|
5824
|
-
//#endregion
|
|
5825
6405
|
//#region src/util/checkbox.d.ts
|
|
5826
6406
|
declare function monitorIndeterminate(targetElOrQuery: string | HTMLElement, watchedElsOrQueries: Array<string | HTMLElement>): () => void;
|
|
5827
6407
|
//#endregion
|
|
5828
|
-
//#region src/
|
|
5829
|
-
type ListSelectionMode = `none` | `single` | `multiple`;
|
|
5830
|
-
/**
|
|
5831
|
-
* Controls how pointer and keyboard gestures map to selection changes.
|
|
5832
|
-
*
|
|
5833
|
-
* - `implicit` — click always replaces selection (no modifier support)
|
|
5834
|
-
* - `standard` — click replaces; Ctrl/Cmd+click toggles; Shift+click range-selects (multiple only)
|
|
5835
|
-
* - `manual` — no auto-selection; drive state via select()/deselect()/clearSelection()
|
|
5836
|
-
* - `checked` — every click toggles; implies multiple selection regardless of selectionMode
|
|
5837
|
-
* - `vscode` — like standard for clicks; Shift+Arrow extends range from the keyboard anchor
|
|
5838
|
-
*
|
|
5839
|
-
* Switching interactionMode clears the current selection.
|
|
5840
|
-
*/
|
|
5841
|
-
type ListInteractionMode = `implicit` | `standard` | `manual` | `checked` | `vscode`;
|
|
5842
|
-
type ListSelectDetail = {
|
|
5843
|
-
readonly selected: ReadonlySet<Element>;
|
|
5844
|
-
readonly previous: ReadonlySet<Element>;
|
|
5845
|
-
};
|
|
5846
|
-
type ListTickleDetail = {
|
|
5847
|
-
readonly item: Element;
|
|
5848
|
-
};
|
|
5849
|
-
type ListActivateDetail = {
|
|
5850
|
-
readonly item: Element;
|
|
5851
|
-
};
|
|
5852
|
-
type ListItemClickDetail = {
|
|
5853
|
-
readonly item: Element;
|
|
5854
|
-
};
|
|
5855
|
-
type ListSelectEvent = CustomEvent<ListSelectDetail>;
|
|
5856
|
-
type ListTickleEvent = CustomEvent<ListTickleDetail>;
|
|
5857
|
-
type ListActivateEvent = CustomEvent<ListActivateDetail>;
|
|
5858
|
-
type ListItemClickEvent = CustomEvent<ListItemClickDetail>;
|
|
5859
|
-
interface ListElementEventMap {
|
|
5860
|
-
'list-select': ListSelectEvent;
|
|
5861
|
-
'list-tickle': ListTickleEvent;
|
|
5862
|
-
'list-activate': ListActivateEvent;
|
|
5863
|
-
'list-item-click': ListItemClickEvent;
|
|
5864
|
-
}
|
|
5865
|
-
//#endregion
|
|
5866
|
-
//#region src/vertical-list/vertical-list.d.ts
|
|
5867
|
-
declare class VerticalListElement extends LitElement {
|
|
5868
|
-
#private;
|
|
5869
|
-
selectionMode: ListSelectionMode;
|
|
5870
|
-
interactionMode: ListInteractionMode;
|
|
5871
|
-
filterPredicate: ((el: Element) => boolean) | undefined;
|
|
5872
|
-
private _selectedItems;
|
|
5873
|
-
private _searchVisible;
|
|
5874
|
-
private _searchQuery;
|
|
5875
|
-
private _searchInputEl;
|
|
5876
|
-
private tickled;
|
|
5877
|
-
connectedCallback(): void;
|
|
5878
|
-
disconnectedCallback(): void;
|
|
5879
|
-
firstUpdated(): void;
|
|
5880
|
-
updated(changed: PropertyValues): void;
|
|
5881
|
-
/** The most recently selected item, or `undefined` if nothing is selected. */
|
|
5882
|
-
get selectedItem(): Element | undefined;
|
|
5883
|
-
/** The full current selection set (read-only). */
|
|
5884
|
-
get selectedItems(): ReadonlySet<Element>;
|
|
5885
|
-
addItem(item: Element | string): void;
|
|
5886
|
-
removeItem(item: Element): void;
|
|
5887
|
-
clearItems(): void;
|
|
5888
|
-
select(item: Element): void;
|
|
5889
|
-
selectMany(items: Iterable<Element>): void;
|
|
5890
|
-
deselect(item: Element): void;
|
|
5891
|
-
clearSelection(): void;
|
|
5892
|
-
selectAll(): void;
|
|
5893
|
-
private _replaceSelection;
|
|
5894
|
-
private _toggleItem;
|
|
5895
|
-
private _rangeSelectTo;
|
|
5896
|
-
private _clearSelection;
|
|
5897
|
-
private _selectAll;
|
|
5898
|
-
private _handleClickSelection;
|
|
5899
|
-
private _handleSpaceKey;
|
|
5900
|
-
private _getVisibleItems;
|
|
5901
|
-
private _syncItemStates;
|
|
5902
|
-
private _syncCheckboxes;
|
|
5903
|
-
private _findListItem;
|
|
5904
|
-
private _dispatch;
|
|
5905
|
-
private _openSearch;
|
|
5906
|
-
private _closeSearch;
|
|
5907
|
-
private _onPointerOver;
|
|
5908
|
-
private _onPointerLeave;
|
|
5909
|
-
private _onKeyDown;
|
|
5910
|
-
private _onClick;
|
|
5911
|
-
private _onDblClick;
|
|
5912
|
-
private _activateItem;
|
|
5913
|
-
private _onSearchInput;
|
|
5914
|
-
private _onSearchKeydown;
|
|
5915
|
-
static styles: CSSResult;
|
|
5916
|
-
render(): TemplateResult<1>;
|
|
5917
|
-
}
|
|
5918
|
-
declare global {
|
|
5919
|
-
interface HTMLElementTagNameMap {
|
|
5920
|
-
'ixfx-vertical-list': VerticalListElement;
|
|
5921
|
-
}
|
|
5922
|
-
interface HTMLElementEventMap extends ListElementEventMap {}
|
|
5923
|
-
} //# sourceMappingURL=vertical-list.d.ts.map
|
|
5924
|
-
//#endregion
|
|
5925
|
-
//#region src/xy-pad.d.ts
|
|
6408
|
+
//#region src/xy-pad/xy-pad.d.ts
|
|
5926
6409
|
declare class XyPad extends LitElement {
|
|
5927
6410
|
static styles: CSSResult[];
|
|
5928
6411
|
xMin: number;
|
|
@@ -6001,5 +6484,5 @@ interface XyPad {
|
|
|
6001
6484
|
//#region src/index.d.ts
|
|
6002
6485
|
declare function init(): void;
|
|
6003
6486
|
//#endregion
|
|
6004
|
-
export { AcTextChangeDetail, AcTextChangeEvent, AcTextCompletionProvider, AcTextElement, AcTextItem, AcTextSelectDetail, AcTextSelectEvent, type AcTokenAddDetail, type AcTokenAddEvent,
|
|
6487
|
+
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, 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, DataBatch, DataController, DataControllerOptions, DataDisplayComponent, DataProviderResult, DisplayTextLogic, DragSnappingFn, DragTarget, EditableLabel, EditableLabelChangeDetail, EditableLabelChangeEvent, EditableMode, EditableNumber, Effect, type ElementIncrSearch, type ElementIncrSearchOptions, Endpoints, EntryMode, 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, 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, type OklchValue, Orientation, PanelCloseEvent, PanelElement, PanelElementEventMap, PanelGroupElement, PanelGroupOrientation, PanelOrientation, PanelToggleDetail, PanelToggleEvent, PanelToggleInteraction, PanelVariant, PlotDataSeries, PlotDataSeriesOptions, PlotHistogram, PlotHistogramBucketClickDetail, PlotHistogramBucketClickEvent, PlotHistogramElementEventMap, PlotHistogramOrientation, 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, type Rect, RectangularSelectEventDetail, RendererStyle, ResizeMode, SelectEventDetail, SelectHorizontalElement, SelectionMode, SingleAxisAgeStyle, SingleAxisDrawStyle, SingleSelectEventDetail, SnapChangeDetail, SnapChangeEvent, SnapContainer, SnapInputDetail, SnapInputEvent, SnapLogic, 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, TabListChangeDetail, TabListChangeEvent, TabListElement, TabListItemElement, TabPanelElement, TabPanelsElement, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TooltipElement, TooltipOrientations, TrackHeightMode, TrackLayout, TransitoryLabelElement, TreeBaseElement, TreeBaseElementEventMap, 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, createTreeListAdapter, createVerticalListAdapter, getIcon, hasIcon, iconBus, init, monitorIndeterminate, parseColourScaleAttr, readBaseColour, registerIcon, resolveCssVars, resolveGrid, svgToDataUri, timelineStyles };
|
|
6005
6488
|
//# sourceMappingURL=index.d.ts.map
|