@ixfx/components 0.5.19 → 0.5.20
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 +95 -115
- package/bundle/index.d.ts.map +1 -1
- package/bundle/index.js +484 -325
- package/bundle/index.js.map +1 -1
- package/dist/ac-text.d.ts +7 -12
- package/dist/ac-text.d.ts.map +1 -1
- package/dist/ac-text.js +5 -4
- package/dist/ac-text.js.map +1 -1
- package/dist/{button-CphdEaZd.js → button-pcDaCemT.js} +2 -2
- package/dist/{button-CphdEaZd.js.map → button-pcDaCemT.js.map} +1 -1
- package/dist/button.d.ts +3 -2
- package/dist/button.d.ts.map +1 -1
- package/dist/button.js +1 -1
- package/dist/checkbox.d.ts +1 -0
- package/dist/checkbox.d.ts.map +1 -1
- package/dist/checkbox.js +2 -2
- package/dist/checkbox.js.map +1 -1
- package/dist/{colour-picker-37NyVenk.js → colour-picker-D43Q96r0.js} +28 -15
- package/dist/colour-picker-D43Q96r0.js.map +1 -0
- package/dist/colour-picker.d.ts +1 -1
- package/dist/colour-picker.js +1 -1
- package/dist/{crumb-navigation-BrB0r14u.js → crumb-navigation-Pif-kupA.js} +10 -9
- package/dist/{crumb-navigation-BrB0r14u.js.map → crumb-navigation-Pif-kupA.js.map} +1 -1
- package/dist/crumbs.d.ts +2 -4
- package/dist/crumbs.d.ts.map +1 -1
- package/dist/crumbs.js +1 -1
- package/dist/data-display.d.ts +2 -1
- package/dist/data-display.d.ts.map +1 -1
- package/dist/data-display.js +23 -25
- package/dist/data-display.js.map +1 -1
- package/dist/{decorate-VRK8rslU.js → decorate-DdjvVHS-.js} +2 -2
- package/dist/{decorate-VRK8rslU.js.map → decorate-DdjvVHS-.js.map} +1 -1
- package/dist/editable-label.d.ts +2 -1
- package/dist/editable-label.d.ts.map +1 -1
- package/dist/editable-label.js +2 -2
- package/dist/editable-label.js.map +1 -1
- package/dist/fallbacks-DEE1nCTt.js +406 -0
- package/dist/fallbacks-DEE1nCTt.js.map +1 -0
- package/dist/{hex-editor-Bk6rxhfg.js → hex-editor-B-UI4OZu.js} +8 -6
- package/dist/{hex-editor-Bk6rxhfg.js.map → hex-editor-B-UI4OZu.js.map} +1 -1
- package/dist/{hex-editor-Caq8vNQk.d.ts → hex-editor-CMIxtNgT.d.ts} +3 -2
- package/dist/hex-editor-CMIxtNgT.d.ts.map +1 -0
- package/dist/hex.d.ts +1 -1
- package/dist/hex.js +1 -1
- package/dist/highlight-B-eQrhhb.js.map +1 -1
- package/dist/{icon-BUwP1CZ1.d.ts → icon-Bd5BiU4b.d.ts} +4 -3
- package/dist/icon-Bd5BiU4b.d.ts.map +1 -0
- package/dist/{icon-DG9Lm3LT.js → icon-CK14NUcE.js} +5 -7
- package/dist/{icon-DG9Lm3LT.js.map → icon-CK14NUcE.js.map} +1 -1
- package/dist/icons.d.ts +2 -2
- package/dist/icons.js +1 -1
- package/dist/{incr-search-2pz21xtR.js → incr-search-CeERfijK.js} +6 -9
- package/dist/{incr-search-2pz21xtR.js.map → incr-search-CeERfijK.js.map} +1 -1
- package/dist/incr-search.d.ts +1 -1
- package/dist/incr-search.js +1 -1
- package/dist/{index-D9u_Q7-b.d.ts → index-BslNaMLo.d.ts} +3 -3
- package/dist/index-BslNaMLo.d.ts.map +1 -0
- package/dist/{index-DkhBGHgF.d.ts → index-Cdmrn0SZ.d.ts} +11 -11
- package/dist/index-Cdmrn0SZ.d.ts.map +1 -0
- package/dist/{index-BUB5SICW.d.ts → index-CkMIKEWp.d.ts} +4 -3
- package/dist/index-CkMIKEWp.d.ts.map +1 -0
- package/dist/{index-RqMh1i-O.d.ts → index-D87kRcEs.d.ts} +1 -2
- package/dist/index-D87kRcEs.d.ts.map +1 -0
- package/dist/{index-BKAlRgbq.d.ts → index-DrKRD8_a.d.ts} +7 -4
- package/dist/index-DrKRD8_a.d.ts.map +1 -0
- package/dist/{index-BeuCXtiO.d.ts → index-tX6fKF8m.d.ts} +3 -3
- package/dist/index-tX6fKF8m.d.ts.map +1 -0
- package/dist/index.d.ts +48 -53
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +126 -118
- package/dist/index.js.map +1 -1
- package/dist/interaction-_Y2qO3QI.js +1 -0
- package/dist/{labelled-input-base-hoKGwyKT.js → labelled-input-base-9K_w3oLj.js} +2 -2
- package/dist/{labelled-input-base-hoKGwyKT.js.map → labelled-input-base-9K_w3oLj.js.map} +1 -1
- package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-ORb1rGq6.d.ts} +3 -2
- package/dist/labelled-input-base-ORb1rGq6.d.ts.map +1 -0
- package/dist/labelled-radial-input.d.ts +5 -4
- package/dist/labelled-radial-input.d.ts.map +1 -1
- package/dist/labelled-radial-input.js +4 -4
- 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/labelled-range-input.js.map +1 -1
- package/dist/led.d.ts +2 -2
- package/dist/led.d.ts.map +1 -1
- package/dist/led.js +3 -5
- package/dist/led.js.map +1 -1
- package/dist/{menu-CdwSe_XN.js → menu-BiFarLUA.js} +9 -8
- package/dist/{menu-CdwSe_XN.js.map → menu-BiFarLUA.js.map} +1 -1
- package/dist/{menu-item-BG5w7fi4.d.ts → menu-item-AtoP6bD4.d.ts} +4 -4
- package/dist/menu-item-AtoP6bD4.d.ts.map +1 -0
- package/dist/{menu-item-CrmUwIoJ.js → menu-item-yHSPV8nS.js} +10 -9
- package/dist/{menu-item-CrmUwIoJ.js.map → menu-item-yHSPV8nS.js.map} +1 -1
- package/dist/menu.d.ts +2 -2
- package/dist/menu.js +2 -2
- package/dist/miller.d.ts +5 -7
- package/dist/miller.d.ts.map +1 -1
- package/dist/miller.js +26 -24
- package/dist/miller.js.map +1 -1
- package/dist/narrowed-text.d.ts +2 -1
- package/dist/narrowed-text.d.ts.map +1 -1
- package/dist/narrowed-text.js +14 -15
- 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 +3 -3
- package/dist/panel.js.map +1 -1
- package/dist/plots.d.ts +1 -1
- package/dist/plots.js +1 -1
- package/dist/polar-pad.d.ts +2 -1
- package/dist/polar-pad.d.ts.map +1 -1
- package/dist/polar-pad.js +3 -3
- package/dist/polar-pad.js.map +1 -1
- package/dist/{radial-input-CVxGH-Cp.js → radial-input-C4f-2Bya.js} +15 -25
- package/dist/{radial-input-CVxGH-Cp.js.map → radial-input-C4f-2Bya.js.map} +1 -1
- package/dist/{radial-input-BhZeyyP-.d.ts → radial-input-Dhu5ZGP5.d.ts} +3 -2
- package/dist/radial-input-Dhu5ZGP5.d.ts.map +1 -0
- package/dist/radial-input.d.ts +1 -1
- package/dist/radial-input.js +1 -1
- package/dist/range-input.d.ts +3 -2
- package/dist/range-input.d.ts.map +1 -1
- package/dist/range-input.js +3 -3
- package/dist/range-input.js.map +1 -1
- package/dist/range.d.ts +3 -2
- package/dist/range.d.ts.map +1 -1
- package/dist/range.js +3 -3
- package/dist/range.js.map +1 -1
- package/dist/selecthorizontal.d.ts +2 -1
- package/dist/selecthorizontal.d.ts.map +1 -1
- package/dist/selecthorizontal.js +2 -2
- package/dist/selecthorizontal.js.map +1 -1
- package/dist/{slider-input-TidGhvXt.d.ts → slider-input-BEaztT-g.d.ts} +3 -2
- package/dist/slider-input-BEaztT-g.d.ts.map +1 -0
- package/dist/{slider-input-CzmSVgm7.js → slider-input-SW7e2Ac2.js} +28 -31
- package/dist/{slider-input-CzmSVgm7.js.map → slider-input-SW7e2Ac2.js.map} +1 -1
- package/dist/slider-input.d.ts +1 -1
- package/dist/slider-input.js +1 -1
- package/dist/snap-container.d.ts +2 -1
- package/dist/snap-container.d.ts.map +1 -1
- package/dist/snap-container.js +5 -6
- package/dist/snap-container.js.map +1 -1
- package/dist/split-layout.d.ts +2 -1
- package/dist/split-layout.d.ts.map +1 -1
- package/dist/split-layout.js +4 -6
- package/dist/split-layout.js.map +1 -1
- package/dist/swipe.d.ts +2 -1
- package/dist/swipe.d.ts.map +1 -1
- package/dist/swipe.js +4 -5
- package/dist/swipe.js.map +1 -1
- package/dist/{tab-list-Beuh2nom.d.ts → tab-list-B8v9KntS.d.ts} +4 -4
- package/dist/tab-list-B8v9KntS.d.ts.map +1 -0
- package/dist/{tab-list-mAoD6L0e.js → tab-list-CR0v53KJ.js} +3 -3
- package/dist/{tab-list-mAoD6L0e.js.map → tab-list-CR0v53KJ.js.map} +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{tickled-controller-BF2Ea0DE.d.ts → tickled-controller-JDOR9B8V.d.ts} +9 -6
- package/dist/tickled-controller-JDOR9B8V.d.ts.map +1 -0
- package/dist/{tickled-styles-fNDdqf6l.js → tickled-styles-Bgo_Lpw-.js} +28 -28
- package/dist/tickled-styles-Bgo_Lpw-.js.map +1 -0
- package/dist/{timeline-B2fgDL4U.js → timeline-CdSI003L.js} +3 -3
- package/dist/{timeline-B2fgDL4U.js.map → timeline-CdSI003L.js.map} +1 -1
- package/dist/timeline.d.ts +1 -1
- package/dist/timeline.js +1 -1
- package/dist/{tooltip-BlvBUQxx.d.ts → tooltip-BMTSUPBU.d.ts} +3 -2
- package/dist/tooltip-BMTSUPBU.d.ts.map +1 -0
- package/dist/{tree-BtiiDX1a.js → tree-CqPhQRHo.js} +11 -10
- package/dist/{tree-BtiiDX1a.js.map → tree-CqPhQRHo.js.map} +1 -1
- package/dist/{tree-component-DQ9vzdy5.d.ts → tree-component-CDLO1ITF.d.ts} +124 -8
- package/dist/tree-component-CDLO1ITF.d.ts.map +1 -0
- package/dist/tree.d.ts +4 -9
- package/dist/tree.d.ts.map +1 -1
- package/dist/tree.js +1 -1
- package/dist/types-DSfbtHs3.d.ts +8 -0
- package/dist/types-DSfbtHs3.d.ts.map +1 -0
- package/dist/{wheel-nudge-DgMTRYlh.d.ts → wheel-nudge-C-ra_1os.d.ts} +2 -1
- package/dist/wheel-nudge-C-ra_1os.d.ts.map +1 -0
- package/dist/{wheel-nudge-BlSCe_hD.js → wheel-nudge-Dhzi5nHc.js} +2 -2
- package/dist/{wheel-nudge-BlSCe_hD.js.map → wheel-nudge-Dhzi5nHc.js.map} +1 -1
- package/dist/{xy-axis-CxHC8z5E.js → xy-axis-BpA2eJq6.js} +4 -6
- package/dist/{xy-axis-CxHC8z5E.js.map → xy-axis-BpA2eJq6.js.map} +1 -1
- package/dist/{xy-axis-5KhVTNoX.d.ts → xy-axis-CtDDQzGZ.d.ts} +6 -8
- package/dist/xy-axis-CtDDQzGZ.d.ts.map +1 -0
- package/dist/xy-pad.d.ts +2 -1
- package/dist/xy-pad.d.ts.map +1 -1
- package/dist/xy-pad.js +3 -3
- package/dist/xy-pad.js.map +1 -1
- package/docs-user/ac-token.md +7 -1
- package/docs-user/colour-picker.md +8 -4
- package/docs-user/menu.md +11 -8
- package/package.json +1 -1
- package/dist/colour-picker-37NyVenk.js.map +0 -1
- package/dist/fallbacks-DPgPEqo8.js +0 -218
- package/dist/fallbacks-DPgPEqo8.js.map +0 -1
- package/dist/hex-editor-Caq8vNQk.d.ts.map +0 -1
- package/dist/icon-BUwP1CZ1.d.ts.map +0 -1
- package/dist/index-BKAlRgbq.d.ts.map +0 -1
- package/dist/index-BUB5SICW.d.ts.map +0 -1
- package/dist/index-BeuCXtiO.d.ts.map +0 -1
- package/dist/index-D9u_Q7-b.d.ts.map +0 -1
- package/dist/index-DkhBGHgF.d.ts.map +0 -1
- package/dist/index-RqMh1i-O.d.ts.map +0 -1
- package/dist/interaction-D6efrBLo.js +0 -1
- package/dist/labelled-input-base-Dp_9KP0G.d.ts.map +0 -1
- package/dist/menu-item-BG5w7fi4.d.ts.map +0 -1
- package/dist/radial-input-BhZeyyP-.d.ts.map +0 -1
- package/dist/slider-input-TidGhvXt.d.ts.map +0 -1
- package/dist/tab-list-Beuh2nom.d.ts.map +0 -1
- package/dist/tickled-controller-BF2Ea0DE.d.ts.map +0 -1
- package/dist/tickled-styles-fNDdqf6l.js.map +0 -1
- package/dist/tooltip-BlvBUQxx.d.ts.map +0 -1
- package/dist/tree-component-DQ9vzdy5.d.ts.map +0 -1
- package/dist/types-DO3gt5vg.d.ts +0 -130
- package/dist/types-DO3gt5vg.d.ts.map +0 -1
- package/dist/wheel-nudge-DgMTRYlh.d.ts.map +0 -1
- package/dist/xy-axis-5KhVTNoX.d.ts.map +0 -1
- /package/bundle/{rolldown-runtime-D7D4PA-g.js → chunk-D7D4PA-g.js} +0 -0
- /package/dist/{rolldown-runtime-D7D4PA-g.js → chunk-D7D4PA-g.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incr-search-2pz21xtR.js","names":["FzfAny","#el","#opts","#search","#labelMap","#onInput","#onKeydown","#unsub","#onStateChange"],"sources":["../src/incr-search/fuzzy.ts","../src/incr-search/ac-adapter.ts","../src/incr-search/incr-search.ts","../src/incr-search/controller-tree.ts","../src/incr-search/element-search.ts"],"sourcesContent":["import type { FuzzySearch, FuzzySearchOptions, IncrSearchResult } from './types.js';\nimport { Fzf } from 'fzf';\n\nfunction defaultSelector<T>(item: T): string {\n if (typeof item === `string`)\n return item;\n const r = item as Record<string, unknown>;\n if (typeof r.label === `string`)\n return r.label;\n if (typeof r.key === `string`)\n return r.key;\n if (typeof r.value === `string`)\n return r.value;\n return String(item);\n}\n\nexport function createFuzzySearch<T>(\n items: readonly T[],\n options: FuzzySearchOptions<T> = {},\n): FuzzySearch<T> {\n const selector = options.selector ?? defaultSelector<T>;\n // fzf uses a conditional SyncOptionsTuple<T> rest-parameter overload that TypeScript\n // cannot narrow through a spread when T is generic.\n const FzfAny = Fzf as new (list: readonly T[], opts: any) => { find: (q: string) => Array<{ item: T; positions: ReadonlySet<number>; score: number }> };\n const fzf = new FzfAny(items as readonly T[], { selector, ...(options.fzf ?? {}) });\n\n const find = (query: string): ReadonlyArray<IncrSearchResult<T>> => {\n if (!query.trim()) {\n return items.map(item => ({\n item,\n positions: new Set<number>(),\n score: 0,\n }));\n }\n return fzf.find(query).map(r => ({\n item: r.item,\n positions: r.positions,\n score: r.score,\n }));\n };\n\n return { find, items };\n}\n","import type { FuzzySearchOptions } from './types.js';\nimport { createFuzzySearch } from './fuzzy.js';\n\n/**\n * Creates an ixfx-ac-text-compatible `completionProvider` function from a\n * static item list. Uses synchronous fuzzy search wrapped in a Promise so it\n * fits the async provider signature.\n *\n * Each returned item has `positions` populated with matched character indices,\n * which `ixfx-ac-text` uses to render CSS Custom Highlights on the label.\n *\n * Empty query returns all items in original order (no positions).\n * A cancelled signal causes the returned promise to reject with an AbortError.\n */\nexport function createAcCompletionProvider<T extends { label: string }>(\n items: readonly T[],\n options: Pick<FuzzySearchOptions<T>, `selector`> = {},\n): (query: string, signal: AbortSignal) => Promise<Array<T & { positions: ReadonlySet<number> }>> {\n const selector = options.selector ?? ((item: T) => item.label);\n const fuzzy = createFuzzySearch(items, { selector });\n\n return (\n query: string,\n signal: AbortSignal,\n ): Promise<Array<T & { positions: ReadonlySet<number> }>> =>\n new Promise((resolve, reject) => {\n if (signal.aborted) {\n reject(new DOMException(`Aborted`, `AbortError`));\n return;\n }\n\n const results = fuzzy.find(query).map(r => ({ ...r.item, positions: r.positions }));\n\n if (signal.aborted) {\n reject(new DOMException(`Aborted`, `AbortError`));\n return;\n }\n\n resolve(results);\n });\n}\n","import type {\n IncrSearch,\n IncrSearchChangeCallback,\n IncrSearchOptions,\n IncrSearchState,\n} from './types.js';\nimport { createFuzzySearch } from './fuzzy.js';\n\nfunction buildState<T>(results: ReturnType<ReturnType<typeof createFuzzySearch<T>>[`find`]>, query: string): IncrSearchState<T> {\n const positionsByItem = new Map<T, ReadonlySet<number>>();\n for (const r of results) {\n positionsByItem.set(r.item, r.positions);\n }\n return Object.freeze({\n query,\n results: Object.freeze([...results]),\n positionsByItem,\n });\n}\n\nexport function createIncrSearch<T>(options: IncrSearchOptions<T> = {}): IncrSearch<T> {\n let items: readonly T[] = options.items ?? [];\n let query = ``;\n let fuzzy = createFuzzySearch(items, { selector: options.selector, fzf: options.fzf });\n let state: IncrSearchState<T> = buildState(fuzzy.find(query), query);\n let disposed = false;\n\n const observers = new Set<IncrSearchChangeCallback<T>>();\n\n if (options.onChange) {\n observers.add(options.onChange);\n }\n\n const notify = (s: IncrSearchState<T>): void => {\n for (const cb of observers) {\n cb(s);\n }\n };\n\n const run = async (q: string, signal?: AbortSignal): Promise<IncrSearchState<T>> => {\n // Yield to the microtask queue for a consistent async interface\n await Promise.resolve();\n if (signal?.aborted || disposed) {\n return state;\n }\n const results = fuzzy.find(q);\n if (signal?.aborted || disposed) {\n return state;\n }\n state = buildState(results, q);\n notify(state);\n return state;\n };\n\n return {\n get state() {\n return state;\n },\n\n async setItems(newItems: readonly T[], signal?: AbortSignal): Promise<void> {\n items = newItems;\n fuzzy = createFuzzySearch(items, { selector: options.selector, fzf: options.fzf });\n await run(query, signal);\n },\n\n async setQuery(q: string, signal?: AbortSignal): Promise<IncrSearchState<T>> {\n query = q;\n return run(q, signal);\n },\n\n async clearQuery(): Promise<void> {\n query = ``;\n await run(``, undefined);\n },\n\n onChange(cb: IncrSearchChangeCallback<T>): () => void {\n observers.add(cb);\n cb(state);\n return () => {\n observers.delete(cb);\n };\n },\n\n dispose(): void {\n disposed = true;\n observers.clear();\n items = [];\n },\n };\n}\n","import type { FzfOptions } from 'fzf';\nimport type { TreeSearchHost } from '../common/searchable.js';\nimport type { TreeNode } from '../common/types.js';\nimport type { IncrSearchState } from './types.js';\nimport { applyHighlights, buildHighlightTargets, clearHighlights } from './highlight.js';\nimport { createIncrSearch } from './incr-search.js';\n\nconst DEFAULT_HIGHLIGHT_KEY = `incr-search-highlight`;\n\nexport type IncrSearchTreeOptions = {\n selector: (item: { node: TreeNode; depth: number }) => string;\n /**\n * CSS selector for the label elements inside the shadow root.\n * Defaults to `.tree-label` (suitable for ixfx-tree-list).\n * Use `.label` for ixfx-miller-list.\n */\n labelSelector?: string;\n highlightKey?: string;\n input?: HTMLInputElement;\n fzf?: Partial<FzfOptions<{ node: TreeNode; depth: number }>>;\n};\n\ntype SearchItem = { node: TreeNode; depth: number };\n\n/**\n * Incremental-search controller for any component implementing `TreeSearchHost`\n * (i.e. `ixfx-tree-list`, `ixfx-miller-list`, `ixfx-crumb-navigation`).\n *\n * Replaces the previous separate `IncrSearchTreeController` / `IncrSearchMillerController`\n * classes — the unified `TreeFilterPredicate` (with depth) means one implementation works\n * for all tree-like components.\n *\n * @example Using with ixfx-tree-list:\n * ```typescript\n * const ctrl = new IncrSearchTreeController(myTreeList, {\n * selector: item => item.node.item.label,\n * });\n * ctrl.connect();\n * ```\n *\n * @example Using with ixfx-miller-list (different label selector):\n * ```typescript\n * const ctrl = new IncrSearchTreeController(myMillerList, {\n * selector: item => item.node.item.label,\n * labelSelector: '.label',\n * });\n * ctrl.connect();\n * ```\n */\nexport class IncrSearchTreeController {\n #el: TreeSearchHost;\n #opts: IncrSearchTreeOptions;\n #search: ReturnType<typeof createIncrSearch<SearchItem>>;\n #unsub: (() => void) | undefined;\n #labelMap = new Map<string, SearchItem>();\n\n constructor(el: TreeSearchHost, opts: IncrSearchTreeOptions) {\n this.#el = el;\n this.#opts = opts;\n this.#search = createIncrSearch<SearchItem>({\n selector: opts.selector,\n fzf: opts.fzf,\n });\n }\n\n connect(): void {\n this.disconnect();\n\n const items = this.#el.getNodes();\n for (const item of items) {\n this.#labelMap.set(this.#opts.selector(item), item);\n }\n void this.#search.setItems(items);\n\n if (this.#opts.input) {\n this.#opts.input.addEventListener(`input`, this.#onInput);\n this.#opts.input.addEventListener(`keydown`, this.#onKeydown);\n }\n\n this.#unsub = this.#search.onChange(state => this.#onStateChange(state));\n }\n\n disconnect(): void {\n if (this.#unsub) {\n this.#unsub();\n this.#unsub = undefined;\n }\n if (this.#opts.input) {\n this.#opts.input.removeEventListener(`input`, this.#onInput);\n this.#opts.input.removeEventListener(`keydown`, this.#onKeydown);\n }\n this.#el.filterPredicate = undefined;\n clearHighlights({ key: this.#opts.highlightKey ?? DEFAULT_HIGHLIGHT_KEY });\n this.#labelMap.clear();\n }\n\n async setQuery(query: string): Promise<void> {\n await this.#search.setQuery(query);\n }\n\n async clearQuery(): Promise<void> {\n await this.#search.clearQuery();\n }\n\n #onInput = () => {\n const value = this.#opts.input?.value ?? ``;\n void this.setQuery(value);\n };\n\n #onKeydown = (e: KeyboardEvent) => {\n if (e.key === `Escape` && this.#opts.input) {\n this.#opts.input.value = ``;\n void this.clearQuery();\n }\n };\n\n #onStateChange(state: IncrSearchState<SearchItem>): void {\n const matched = new Set(state.results.map(r => r.item.node.item.key));\n const hasQuery = state.query.trim().length > 0;\n this.#el.filterPredicate = hasQuery && matched.size > 0\n ? (node: TreeNode, _depth: number) => matched.has(node.item.key)\n : undefined;\n\n const key = this.#opts.highlightKey ?? DEFAULT_HIGHLIGHT_KEY;\n if (!this.#el.shadowRoot)\n return;\n\n if (!state.query.trim()) {\n clearHighlights({ key });\n return;\n }\n\n const labelSelector = this.#opts.labelSelector ?? `.tree-label`;\n const targets = buildHighlightTargets(\n this.#el.shadowRoot,\n labelSelector,\n state.positionsByItem,\n (labelEl) => {\n const text = labelEl.textContent ?? ``;\n return this.#labelMap.get(text);\n },\n labelEl => labelEl.textContent ?? ``,\n );\n applyHighlights(targets, { key });\n }\n}\n","import type {\n ElementIncrSearchOptions,\n IncrSearchChangeCallback,\n IncrSearchState,\n} from './types.js';\nimport { applyHighlights, buildHighlightTargets, clearHighlights } from './highlight.js';\nimport { createIncrSearch } from './incr-search.js';\n\ntype ElementItem = { readonly key: string; readonly label: string };\n\nconst defaultGetLabel = (el: Element): string => el.textContent?.trim() ?? ``;\n\nfunction defaultGetKey(el: Element): string {\n return el.getAttribute(`data-key`)\n ?? el.getAttribute(`data-value`)\n ?? el.textContent?.trim()\n ?? ``;\n}\n\nexport type ElementIncrSearch = {\n readonly setQuery: (query: string, signal?: AbortSignal) => Promise<void>;\n readonly clearQuery: () => Promise<void>;\n readonly refresh: () => void;\n readonly onChange: (cb: IncrSearchChangeCallback<ElementItem>) => () => void;\n readonly dispose: () => void;\n};\n\nexport function createElementIncrSearch(opts: ElementIncrSearchOptions): ElementIncrSearch {\n const {\n container,\n itemSelector,\n getLabel = defaultGetLabel,\n getKey = defaultGetKey,\n labelSelector,\n highlightKey,\n } = opts;\n\n // Map from key → element reference for highlight lookup\n let elementByKey = new Map<string, Element>();\n\n const search = createIncrSearch<ElementItem>({\n selector: item => item.label,\n fzf: opts.fzf,\n });\n\n const updateVisibility = (state: IncrSearchState<ElementItem>): void => {\n const matchedKeys = new Set(state.results.map(r => r.item.key));\n const hasQuery = state.query.trim().length > 0;\n\n for (const [key, el] of elementByKey) {\n (el as HTMLElement).hidden = hasQuery ? !matchedKeys.has(key) : false;\n }\n };\n\n const updateHighlights = (state: IncrSearchState<ElementItem>): void => {\n if (!state.query.trim()) {\n clearHighlights({ key: highlightKey });\n return;\n }\n\n const sel = labelSelector ?? itemSelector;\n const targets = buildHighlightTargets(\n container,\n sel,\n state.positionsByItem,\n (el) => {\n const key = getKey(el);\n // Find the ElementItem whose key matches this element's key\n const result = state.results.find(r => r.item.key === key);\n return result?.item;\n },\n el => getLabel(el),\n );\n applyHighlights(targets, { key: highlightKey });\n };\n\n const unsubscribeState = search.onChange((state) => {\n updateVisibility(state);\n updateHighlights(state);\n opts.onChange?.(state);\n });\n\n let refreshPending = false;\n\n const refresh = (): void => {\n if (refreshPending)\n return;\n refreshPending = true;\n void Promise.resolve().then(() => {\n refreshPending = false;\n elementByKey = new Map<string, Element>();\n const els = container.querySelectorAll(itemSelector);\n const items: ElementItem[] = [];\n for (const el of els) {\n const key = getKey(el);\n elementByKey.set(key, el);\n items.push({ key, label: getLabel(el) });\n }\n void search.setItems(items);\n });\n };\n\n const observer = new MutationObserver(() => refresh());\n observer.observe(container, { childList: true, subtree: false });\n\n refresh();\n\n return {\n async setQuery(query, signal) {\n await search.setQuery(query, signal);\n },\n\n async clearQuery() {\n await search.clearQuery();\n },\n\n refresh,\n\n onChange(cb) {\n return search.onChange(cb);\n },\n\n dispose() {\n observer.disconnect();\n unsubscribeState();\n search.dispose();\n clearHighlights({ key: highlightKey });\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"incr-search-CeERfijK.js","names":["FzfAny","#el","#opts","#search","#labelMap","#onInput","#onKeydown","#unsub","#onStateChange"],"sources":["../src/incr-search/fuzzy.ts","../src/incr-search/ac-adapter.ts","../src/incr-search/incr-search.ts","../src/incr-search/controller-tree.ts","../src/incr-search/element-search.ts"],"sourcesContent":["import type { FuzzySearch, FuzzySearchOptions, IncrSearchResult } from './types.js';\nimport { Fzf } from 'fzf';\n\nfunction defaultSelector<T>(item: T): string {\n if (typeof item === `string`)\n return item;\n const r = item as Record<string, unknown>;\n if (typeof r.label === `string`)\n return r.label;\n if (typeof r.key === `string`)\n return r.key;\n if (typeof r.value === `string`)\n return r.value;\n return String(item);\n}\n\nexport function createFuzzySearch<T>(\n items: readonly T[],\n options: FuzzySearchOptions<T> = {},\n): FuzzySearch<T> {\n const selector = options.selector ?? defaultSelector<T>;\n // fzf uses a conditional SyncOptionsTuple<T> rest-parameter overload that TypeScript\n // cannot narrow through a spread when T is generic.\n const FzfAny = Fzf as new (list: readonly T[], opts: any) => { find: (q: string) => Array<{ item: T; positions: ReadonlySet<number>; score: number }> };\n const fzf = new FzfAny(items as readonly T[], { selector, ...(options.fzf ?? {}) });\n\n const find = (query: string): ReadonlyArray<IncrSearchResult<T>> => {\n if (!query.trim()) {\n return items.map(item => ({\n item,\n positions: new Set<number>(),\n score: 0,\n }));\n }\n return fzf.find(query).map(r => ({\n item: r.item,\n positions: r.positions,\n score: r.score,\n }));\n };\n\n return { find, items };\n}\n","import type { FuzzySearchOptions } from './types.js';\nimport { createFuzzySearch } from './fuzzy.js';\n\n/**\n * Creates an ixfx-ac-text-compatible `completionProvider` function from a\n * static item list. Uses synchronous fuzzy search wrapped in a Promise so it\n * fits the async provider signature.\n *\n * Each returned item has `positions` populated with matched character indices,\n * which `ixfx-ac-text` uses to render CSS Custom Highlights on the label.\n *\n * Empty query returns all items in original order (no positions).\n * A cancelled signal causes the returned promise to reject with an AbortError.\n */\nexport function createAcCompletionProvider<T extends { label: string }>(\n items: readonly T[],\n options: Pick<FuzzySearchOptions<T>, `selector`> = {},\n): (query: string, signal: AbortSignal) => Promise<Array<T & { positions: ReadonlySet<number> }>> {\n const selector = options.selector ?? ((item: T) => item.label);\n const fuzzy = createFuzzySearch(items, { selector });\n\n return (\n query: string,\n signal: AbortSignal,\n ): Promise<Array<T & { positions: ReadonlySet<number> }>> =>\n new Promise((resolve, reject) => {\n if (signal.aborted) {\n reject(new DOMException(`Aborted`, `AbortError`));\n return;\n }\n\n const results = fuzzy.find(query).map(r => ({ ...r.item, positions: r.positions }));\n\n if (signal.aborted) {\n reject(new DOMException(`Aborted`, `AbortError`));\n return;\n }\n\n resolve(results);\n });\n}\n","import type {\n IncrSearch,\n IncrSearchChangeCallback,\n IncrSearchOptions,\n IncrSearchState,\n} from './types.js';\nimport { createFuzzySearch } from './fuzzy.js';\n\nfunction buildState<T>(results: ReturnType<ReturnType<typeof createFuzzySearch<T>>[`find`]>, query: string): IncrSearchState<T> {\n const positionsByItem = new Map<T, ReadonlySet<number>>();\n for (const r of results) {\n positionsByItem.set(r.item, r.positions);\n }\n return Object.freeze({\n query,\n results: Object.freeze([...results]),\n positionsByItem,\n });\n}\n\nexport function createIncrSearch<T>(options: IncrSearchOptions<T> = {}): IncrSearch<T> {\n let items: readonly T[] = options.items ?? [];\n let query = ``;\n let fuzzy = createFuzzySearch(items, { selector: options.selector, fzf: options.fzf });\n let state: IncrSearchState<T> = buildState(fuzzy.find(query), query);\n let disposed = false;\n\n const observers = new Set<IncrSearchChangeCallback<T>>();\n\n if (options.onChange) {\n observers.add(options.onChange);\n }\n\n const notify = (s: IncrSearchState<T>): void => {\n for (const cb of observers) {\n cb(s);\n }\n };\n\n const run = async (q: string, signal?: AbortSignal): Promise<IncrSearchState<T>> => {\n // Yield to the microtask queue for a consistent async interface\n await Promise.resolve();\n if (signal?.aborted || disposed) {\n return state;\n }\n const results = fuzzy.find(q);\n if (signal?.aborted || disposed) {\n return state;\n }\n state = buildState(results, q);\n notify(state);\n return state;\n };\n\n return {\n get state() {\n return state;\n },\n\n async setItems(newItems: readonly T[], signal?: AbortSignal): Promise<void> {\n items = newItems;\n fuzzy = createFuzzySearch(items, { selector: options.selector, fzf: options.fzf });\n await run(query, signal);\n },\n\n async setQuery(q: string, signal?: AbortSignal): Promise<IncrSearchState<T>> {\n query = q;\n return run(q, signal);\n },\n\n async clearQuery(): Promise<void> {\n query = ``;\n await run(``, undefined);\n },\n\n onChange(cb: IncrSearchChangeCallback<T>): () => void {\n observers.add(cb);\n cb(state);\n return () => {\n observers.delete(cb);\n };\n },\n\n dispose(): void {\n disposed = true;\n observers.clear();\n items = [];\n },\n };\n}\n","import type { FzfOptions } from 'fzf';\nimport type { TreeSearchHost } from '../common/searchable.js';\nimport type { TreeNode } from '../common/types.js';\nimport type { IncrSearchState } from './types.js';\nimport { applyHighlights, buildHighlightTargets, clearHighlights } from './highlight.js';\nimport { createIncrSearch } from './incr-search.js';\n\nconst DEFAULT_HIGHLIGHT_KEY = `incr-search-highlight`;\n\nexport type IncrSearchTreeOptions = {\n selector: (item: { node: TreeNode; depth: number }) => string;\n /**\n * CSS selector for the label elements inside the shadow root.\n * Defaults to `.tree-label` (suitable for ixfx-tree-list).\n * Use `.label` for ixfx-miller-list.\n */\n labelSelector?: string;\n highlightKey?: string;\n input?: HTMLInputElement;\n fzf?: Partial<FzfOptions<{ node: TreeNode; depth: number }>>;\n};\n\ntype SearchItem = { node: TreeNode; depth: number };\n\n/**\n * Incremental-search controller for any component implementing `TreeSearchHost`\n * (i.e. `ixfx-tree-list`, `ixfx-miller-list`, `ixfx-crumb-navigation`).\n *\n * Replaces the previous separate `IncrSearchTreeController` / `IncrSearchMillerController`\n * classes — the unified `TreeFilterPredicate` (with depth) means one implementation works\n * for all tree-like components.\n *\n * @example Using with ixfx-tree-list:\n * ```typescript\n * const ctrl = new IncrSearchTreeController(myTreeList, {\n * selector: item => item.node.item.label,\n * });\n * ctrl.connect();\n * ```\n *\n * @example Using with ixfx-miller-list (different label selector):\n * ```typescript\n * const ctrl = new IncrSearchTreeController(myMillerList, {\n * selector: item => item.node.item.label,\n * labelSelector: '.label',\n * });\n * ctrl.connect();\n * ```\n */\nexport class IncrSearchTreeController {\n #el: TreeSearchHost;\n #opts: IncrSearchTreeOptions;\n #search: ReturnType<typeof createIncrSearch<SearchItem>>;\n #unsub: (() => void) | undefined;\n #labelMap = new Map<string, SearchItem>();\n\n constructor(el: TreeSearchHost, opts: IncrSearchTreeOptions) {\n this.#el = el;\n this.#opts = opts;\n this.#search = createIncrSearch<SearchItem>({\n selector: opts.selector,\n fzf: opts.fzf,\n });\n }\n\n connect(): void {\n this.disconnect();\n\n const items = this.#el.getNodes();\n for (const item of items) {\n this.#labelMap.set(this.#opts.selector(item), item);\n }\n void this.#search.setItems(items);\n\n if (this.#opts.input) {\n this.#opts.input.addEventListener(`input`, this.#onInput);\n this.#opts.input.addEventListener(`keydown`, this.#onKeydown);\n }\n\n this.#unsub = this.#search.onChange(state => this.#onStateChange(state));\n }\n\n disconnect(): void {\n if (this.#unsub) {\n this.#unsub();\n this.#unsub = undefined;\n }\n if (this.#opts.input) {\n this.#opts.input.removeEventListener(`input`, this.#onInput);\n this.#opts.input.removeEventListener(`keydown`, this.#onKeydown);\n }\n this.#el.filterPredicate = undefined;\n clearHighlights({ key: this.#opts.highlightKey ?? DEFAULT_HIGHLIGHT_KEY });\n this.#labelMap.clear();\n }\n\n async setQuery(query: string): Promise<void> {\n await this.#search.setQuery(query);\n }\n\n async clearQuery(): Promise<void> {\n await this.#search.clearQuery();\n }\n\n #onInput = () => {\n const value = this.#opts.input?.value ?? ``;\n void this.setQuery(value);\n };\n\n #onKeydown = (e: KeyboardEvent) => {\n if (e.key === `Escape` && this.#opts.input) {\n this.#opts.input.value = ``;\n void this.clearQuery();\n }\n };\n\n #onStateChange(state: IncrSearchState<SearchItem>): void {\n const matched = new Set(state.results.map(r => r.item.node.item.key));\n const hasQuery = state.query.trim().length > 0;\n this.#el.filterPredicate = hasQuery && matched.size > 0\n ? (node: TreeNode, _depth: number) => matched.has(node.item.key)\n : undefined;\n\n const key = this.#opts.highlightKey ?? DEFAULT_HIGHLIGHT_KEY;\n if (!this.#el.shadowRoot)\n return;\n\n if (!state.query.trim()) {\n clearHighlights({ key });\n return;\n }\n\n const labelSelector = this.#opts.labelSelector ?? `.tree-label`;\n const targets = buildHighlightTargets(\n this.#el.shadowRoot,\n labelSelector,\n state.positionsByItem,\n (labelEl) => {\n const text = labelEl.textContent ?? ``;\n return this.#labelMap.get(text);\n },\n labelEl => labelEl.textContent ?? ``,\n );\n applyHighlights(targets, { key });\n }\n}\n","import type {\n ElementIncrSearchOptions,\n IncrSearchChangeCallback,\n IncrSearchState,\n} from './types.js';\nimport { applyHighlights, buildHighlightTargets, clearHighlights } from './highlight.js';\nimport { createIncrSearch } from './incr-search.js';\n\ntype ElementItem = { readonly key: string; readonly label: string };\n\nconst defaultGetLabel = (el: Element): string => el.textContent?.trim() ?? ``;\n\nfunction defaultGetKey(el: Element): string {\n return el.getAttribute(`data-key`)\n ?? el.getAttribute(`data-value`)\n ?? el.textContent?.trim()\n ?? ``;\n}\n\nexport type ElementIncrSearch = {\n readonly setQuery: (query: string, signal?: AbortSignal) => Promise<void>;\n readonly clearQuery: () => Promise<void>;\n readonly refresh: () => void;\n readonly onChange: (cb: IncrSearchChangeCallback<ElementItem>) => () => void;\n readonly dispose: () => void;\n};\n\nexport function createElementIncrSearch(opts: ElementIncrSearchOptions): ElementIncrSearch {\n const {\n container,\n itemSelector,\n getLabel = defaultGetLabel,\n getKey = defaultGetKey,\n labelSelector,\n highlightKey,\n } = opts;\n\n // Map from key → element reference for highlight lookup\n let elementByKey = new Map<string, Element>();\n\n const search = createIncrSearch<ElementItem>({\n selector: item => item.label,\n fzf: opts.fzf,\n });\n\n const updateVisibility = (state: IncrSearchState<ElementItem>): void => {\n const matchedKeys = new Set(state.results.map(r => r.item.key));\n const hasQuery = state.query.trim().length > 0;\n\n for (const [key, el] of elementByKey) {\n (el as HTMLElement).hidden = hasQuery ? !matchedKeys.has(key) : false;\n }\n };\n\n const updateHighlights = (state: IncrSearchState<ElementItem>): void => {\n if (!state.query.trim()) {\n clearHighlights({ key: highlightKey });\n return;\n }\n\n const sel = labelSelector ?? itemSelector;\n const targets = buildHighlightTargets(\n container,\n sel,\n state.positionsByItem,\n (el) => {\n const key = getKey(el);\n // Find the ElementItem whose key matches this element's key\n const result = state.results.find(r => r.item.key === key);\n return result?.item;\n },\n el => getLabel(el),\n );\n applyHighlights(targets, { key: highlightKey });\n };\n\n const unsubscribeState = search.onChange((state) => {\n updateVisibility(state);\n updateHighlights(state);\n opts.onChange?.(state);\n });\n\n let refreshPending = false;\n\n const refresh = (): void => {\n if (refreshPending)\n return;\n refreshPending = true;\n void Promise.resolve().then(() => {\n refreshPending = false;\n elementByKey = new Map<string, Element>();\n const els = container.querySelectorAll(itemSelector);\n const items: ElementItem[] = [];\n for (const el of els) {\n const key = getKey(el);\n elementByKey.set(key, el);\n items.push({ key, label: getLabel(el) });\n }\n void search.setItems(items);\n });\n };\n\n const observer = new MutationObserver(() => refresh());\n observer.observe(container, { childList: true, subtree: false });\n\n refresh();\n\n return {\n async setQuery(query, signal) {\n await search.setQuery(query, signal);\n },\n\n async clearQuery() {\n await search.clearQuery();\n },\n\n refresh,\n\n onChange(cb) {\n return search.onChange(cb);\n },\n\n dispose() {\n observer.disconnect();\n unsubscribeState();\n search.dispose();\n clearHighlights({ key: highlightKey });\n },\n };\n}\n"],"mappings":"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"}
|
package/dist/incr-search.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as IncrSearchChangeCallback, a as createFuzzySearch, b as IncrSearchState, c as IncrSearchTreeController, d as ElementIncrSearchOptions, f as FuzzySearch, g as IncrSearch, h as HighlightTarget, i as clearHighlights, l as IncrSearchTreeOptions, m as HighlightOptions, n as applyHighlights, o as ElementIncrSearch, p as FuzzySearchOptions, r as buildHighlightTargets, s as createElementIncrSearch, t as createIncrSearch, u as createAcCompletionProvider, v as IncrSearchOptions, y as IncrSearchResult } from "./index-
|
|
1
|
+
import { _ as IncrSearchChangeCallback, a as createFuzzySearch, b as IncrSearchState, c as IncrSearchTreeController, d as ElementIncrSearchOptions, f as FuzzySearch, g as IncrSearch, h as HighlightTarget, i as clearHighlights, l as IncrSearchTreeOptions, m as HighlightOptions, n as applyHighlights, o as ElementIncrSearch, p as FuzzySearchOptions, r as buildHighlightTargets, s as createElementIncrSearch, t as createIncrSearch, u as createAcCompletionProvider, v as IncrSearchOptions, y as IncrSearchResult } from "./index-BslNaMLo.js";
|
|
2
2
|
export { type ElementIncrSearch, type ElementIncrSearchOptions, type FuzzySearch, type FuzzySearchOptions, type HighlightOptions, type HighlightTarget, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, applyHighlights, buildHighlightTargets, clearHighlights, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch };
|
package/dist/incr-search.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { n as buildHighlightTargets, r as clearHighlights, t as applyHighlights } from "./highlight-B-eQrhhb.js";
|
|
2
|
-
import { a as createFuzzySearch, i as createAcCompletionProvider, n as IncrSearchTreeController, r as createIncrSearch, t as createElementIncrSearch } from "./incr-search-
|
|
2
|
+
import { a as createFuzzySearch, i as createAcCompletionProvider, n as IncrSearchTreeController, r as createIncrSearch, t as createElementIncrSearch } from "./incr-search-CeERfijK.js";
|
|
3
3
|
export { IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, applyHighlights, buildHighlightTargets, clearHighlights, createAcCompletionProvider, createElementIncrSearch, createFuzzySearch, createIncrSearch };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { d as TreeSearchHost } from "./tree-component-DQ9vzdy5.js";
|
|
1
|
+
import { C as TreeNode, d as TreeSearchHost } from "./tree-component-CDLO1ITF.js";
|
|
3
2
|
import { FzfOptions } from "fzf";
|
|
3
|
+
|
|
4
4
|
//#region src/incr-search/types.d.ts
|
|
5
5
|
type IncrSearchResult<T> = {
|
|
6
6
|
readonly item: T;
|
|
@@ -157,4 +157,4 @@ declare function buildHighlightTargets<T>(root: ShadowRoot | Element, itemSelect
|
|
|
157
157
|
declare function createIncrSearch<T>(options?: IncrSearchOptions<T>): IncrSearch<T>;
|
|
158
158
|
//#endregion
|
|
159
159
|
export { IncrSearchChangeCallback as _, createFuzzySearch as a, IncrSearchState as b, IncrSearchTreeController as c, ElementIncrSearchOptions as d, FuzzySearch as f, IncrSearch as g, HighlightTarget as h, clearHighlights as i, IncrSearchTreeOptions as l, HighlightOptions as m, applyHighlights as n, ElementIncrSearch as o, FuzzySearchOptions as p, buildHighlightTargets as r, createElementIncrSearch as s, createIncrSearch as t, createAcCompletionProvider as u, IncrSearchOptions as v, IncrSearchResult as y };
|
|
160
|
-
//# sourceMappingURL=index-
|
|
160
|
+
//# sourceMappingURL=index-BslNaMLo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-BslNaMLo.d.ts","names":[],"sources":["../src/incr-search/types.ts","../src/incr-search/ac-adapter.ts","../src/incr-search/controller-tree.ts","../src/incr-search/element-search.ts","../src/incr-search/fuzzy.ts","../src/incr-search/highlight.ts","../src/incr-search/incr-search.ts"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import {
|
|
3
|
-
import { i as MenuContainer, n as MenuTrigger, r as MenuTriggerCommandDetail, t as MenuItem } from "./menu-item-BG5w7fi4.js";
|
|
1
|
+
import { C as TreeNode } from "./tree-component-CDLO1ITF.js";
|
|
2
|
+
import { i as MenuContainer, n as MenuTrigger, r as MenuTriggerCommandDetail, t as MenuItem } from "./menu-item-AtoP6bD4.js";
|
|
4
3
|
import { LitElement, TemplateResult } from "lit";
|
|
5
4
|
import { CommandRegistry, KeyboardManager } from "@clinth/ui-commands";
|
|
5
|
+
|
|
6
6
|
//#region src/menu/menu-bar.d.ts
|
|
7
7
|
declare class MenuBar extends LitElement {
|
|
8
8
|
private _openTrigger;
|
|
@@ -23,7 +23,7 @@ declare global {
|
|
|
23
23
|
interface HTMLElementTagNameMap {
|
|
24
24
|
'ixfx-menu-bar': MenuBar;
|
|
25
25
|
}
|
|
26
|
-
}
|
|
26
|
+
} //# sourceMappingURL=menu-bar.d.ts.map
|
|
27
27
|
//#endregion
|
|
28
28
|
//#region src/menu/menu-check-item.d.ts
|
|
29
29
|
declare class MenuCheckItem extends LitElement {
|
|
@@ -48,7 +48,7 @@ declare global {
|
|
|
48
48
|
interface HTMLElementTagNameMap {
|
|
49
49
|
'ixfx-menu-check-item': MenuCheckItem;
|
|
50
50
|
}
|
|
51
|
-
}
|
|
51
|
+
} //# sourceMappingURL=menu-check-item.d.ts.map
|
|
52
52
|
//#endregion
|
|
53
53
|
//#region src/menu/menu-command-controller.d.ts
|
|
54
54
|
declare class MenuCommandController {
|
|
@@ -106,7 +106,7 @@ declare global {
|
|
|
106
106
|
interface HTMLElementTagNameMap {
|
|
107
107
|
'ixfx-menu-sub-trigger': MenuSubTrigger;
|
|
108
108
|
}
|
|
109
|
-
}
|
|
109
|
+
} //# sourceMappingURL=menu-sub-trigger.d.ts.map
|
|
110
110
|
//#endregion
|
|
111
111
|
//#region src/menu/menu-separator.d.ts
|
|
112
112
|
declare class MenuSeparator extends LitElement {
|
|
@@ -117,7 +117,7 @@ declare global {
|
|
|
117
117
|
interface HTMLElementTagNameMap {
|
|
118
118
|
'ixfx-menu-separator': MenuSeparator;
|
|
119
119
|
}
|
|
120
|
-
}
|
|
120
|
+
} //# sourceMappingURL=menu-separator.d.ts.map
|
|
121
121
|
//#endregion
|
|
122
122
|
//#region src/menu/menu-header.d.ts
|
|
123
123
|
declare class MenuHeader extends LitElement {
|
|
@@ -129,7 +129,7 @@ declare global {
|
|
|
129
129
|
interface HTMLElementTagNameMap {
|
|
130
130
|
'ixfx-menu-header': MenuHeader;
|
|
131
131
|
}
|
|
132
|
-
}
|
|
132
|
+
} //# sourceMappingURL=menu-header.d.ts.map
|
|
133
133
|
//#endregion
|
|
134
134
|
//#region src/menu/menu-from-tree.d.ts
|
|
135
135
|
type MenuFromTreeOptions = {
|
|
@@ -155,7 +155,7 @@ declare global {
|
|
|
155
155
|
interface HTMLElementTagNameMap {
|
|
156
156
|
'ixfx-menu-radio-item': MenuRadioItem;
|
|
157
157
|
}
|
|
158
|
-
}
|
|
158
|
+
} //# sourceMappingURL=menu-radio-item.d.ts.map
|
|
159
159
|
//#endregion
|
|
160
160
|
//#region src/menu/menu-radio-group.d.ts
|
|
161
161
|
declare class MenuRadioGroup extends LitElement {
|
|
@@ -173,10 +173,10 @@ declare global {
|
|
|
173
173
|
interface HTMLElementTagNameMap {
|
|
174
174
|
'ixfx-menu-radio-group': MenuRadioGroup;
|
|
175
175
|
}
|
|
176
|
-
}
|
|
176
|
+
} //# sourceMappingURL=menu-radio-group.d.ts.map
|
|
177
177
|
declare namespace index_d_exports {
|
|
178
178
|
export { MenuBar, MenuCheckItem, MenuCommandController, MenuContainer, MenuFromTreeOptions, MenuHeader, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubTrigger, MenuTrigger, menuFromTree, menuFromTreeToElements };
|
|
179
179
|
}
|
|
180
180
|
//#endregion
|
|
181
181
|
export { menuFromTree as a, MenuSeparator as c, MenuCheckItem as d, MenuBar as f, MenuFromTreeOptions as i, MenuSubTrigger as l, MenuRadioGroup as n, menuFromTreeToElements as o, MenuRadioItem as r, MenuHeader as s, index_d_exports as t, MenuCommandController as u };
|
|
182
|
-
//# sourceMappingURL=index-
|
|
182
|
+
//# sourceMappingURL=index-Cdmrn0SZ.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Cdmrn0SZ.d.ts","names":[],"sources":["../src/menu/menu-bar.ts","../src/menu/menu-check-item.ts","../src/menu/menu-command-controller.ts","../src/menu/menu-sub-trigger.ts","../src/menu/menu-separator.ts","../src/menu/menu-header.ts","../src/menu/menu-from-tree.ts","../src/menu/menu-radio-item.ts","../src/menu/menu-radio-group.ts","../src/menu/index.ts"],"mappings":";;;;;;cAMa,OAAA,SAAgB,UAAU;EAAA,QAC7B,YAAA;EAAA,QACA,UAAA;EAER,iBAAA;EASA,oBAAA;EAAA,QASQ,aAAA;EAAA,QAOA,kBAAA;EAAA,QAIA,YAAA;EAAA,QAMA,kBAAA;EAAA,QAIA,mBAAA;EAAA,QAQA,cAAA;EAAA,QASA,cAAA;EAAA,OAkCD,MAAA,gBAAM,SAAA;EAab,MAAA,kBAAM,cAAA;AAAA;AAAA,QAKA,MAAA;EAAA,UACI,qBAAA;IACR,eAAA,EAAiB,OAAO;EAAA;AAAA;;;cCvGf,aAAA,SAAsB,UAAA;EACL,OAAA;EAC2B,WAAA;EAC3B,KAAA;EACC,OAAA;EACA,QAAA;EACuB,QAAA;EACpB,QAAA,GAAW,eAAA;EACX,eAAA,GAAkB,eAAA;EAAA,QAE1C,WAAA;EAAA,QAYA,cAAA;EAAA,QASA,aAAA;EASR,UAAA,CAAW,iBAAA,EAAmB,GAAA;EAU9B,OAAA,CAAQ,iBAAA,EAAmB,GAAA;EAAA,QAInB,YAAA;EAAA,OAaQ,MAAA,gBAAM,SAAA;EA0DtB,MAAA,kBAAM,cAAA;AAAA;AAAA,QAoBA,MAAA;EAAA,UACI,qBAAA;IACR,sBAAA,EAAwB,aAAa;EAAA;AAAA;;;cClK5B,qBAAA;EAAA,QACH,QAAA;EAAA,QACA,MAAA;EAAA,QACA,YAAA;cAEI,OAAA;IAAW,QAAA,EAAU,eAAA;IAA0B,MAAA,GAAS,WAAW;EAAA;EAM/E,KAAA;EAIA,IAAA;EAAA,QAIQ,aAAA;AAAA;;;cCZG,cAAA,SAAuB,UAAA;EACN,OAAA;EAC2B,WAAA;EAC3B,KAAA;EACC,QAAA;EACuB,QAAA;EACpB,QAAA,GAAW,eAAA;EACX,eAAA,GAAkB,eAAA;EAAA,QAEjC,WAAA;EAAA,QACsB,KAAA;EAAA,QACJ,eAAA;EAAA,QACX,OAAA;EAAA,eAET,MAAA;EAAA,QACP,WAAA;EAAA,QACA,aAAA;EAAA,QACA,YAAA;EAER,iBAAA;EAKA,YAAA;EAIA,oBAAA;EAAA,QAWQ,iBAAA;EAUC,OAAA,CAAQ,iBAAA,EAAmB,GAAA;EAMpC,UAAA,CAAW,iBAAA,EAAmB,GAAA;EAAA,QAUtB,aAAA;EAAA,QASA,iBAAA;EAAA,QAKA,YAAA;EAAA,QAQA,YAAA;EAAA,QAQA,WAAA;EAAA,QAOA,aAAA;EAAA,QAQA,iBAAA;EAAA,QAYA,iBAAA;EAAA,QAQA,wBAAA;EAAA,QAIA,wBAAA;EAAA,QAIA,YAAA;EAAA,QAWA,cAAA;EAAA,OAiCQ,MAAA,gBAAM,SAAA;EAmEtB,MAAA,kBAAM,cAAA;AAAA;AAAA,QA2BA,MAAA;EAAA,UACI,qBAAA;IACR,uBAAA,EAAyB,cAAc;EAAA;AAAA;;;cC1R9B,aAAA,SAAsB,UAAU;EAAA,OACpC,MAAA,gBAAM,SAAA;EAYb,MAAA,kBAAM,cAAA;AAAA;AAAA,QAKA,MAAA;EAAA,UACI,qBAAA;IACR,qBAAA,EAAuB,aAAa;EAAA;AAAA;;;cCnB3B,UAAA,SAAmB,UAAU;EACZ,KAAA;EAAA,OAErB,MAAA,gBAAM,SAAA;EAYb,MAAA,kBAAM,cAAA;AAAA;AAAA,QAKA,MAAA;EAAA,UACI,qBAAA;IACR,kBAAA,EAAoB,UAAU;EAAA;AAAA;;;KCjBtB,mBAAA;EACV,SAAA,IAAa,MAAA,EAAQ,wBAAA;EACrB,QAAA,GAAW,eAAA;EACX,eAAA,GAAkB,eAAA;AAAA;AAAA,iBAOJ,YAAA,CACd,KAAA,EAAO,QAAA,IACP,OAAA,GAAS,mBAAA,GACR,cAAA;AAAA,iBAmGa,sBAAA,CACd,KAAA,EAAO,QAAA,IACP,OAAA,GAAS,mBAAA,GACR,WAAA;;;cChHU,aAAA,SAAsB,UAAU;EACf,KAAA;EACA,KAAA;EACC,QAAA;EACD,UAAA;EACwB,QAAA;EAAA,QAE5C,WAAA;EAAA,OAWQ,MAAA,gBAAM,SAAA;EAoDtB,MAAA,kBAAM,cAAA;AAAA;AAAA,QAmBA,MAAA;EAAA,UACI,qBAAA;IACR,sBAAA,EAAwB,aAAa;EAAA;AAAA;;;cC5F5B,cAAA,SAAuB,UAAU;EAChB,IAAA;EACA,KAAA;EAAA,QAEX,eAAA;EAAA,QAET,gBAAA;EAAA,QAMA,mBAAA;EAAA,QAMA,iBAAA;EAYR,OAAA,CAAQ,iBAAA,EAAmB,GAAA;EAAA,OAMpB,MAAA,gBAAM,SAAA;EAUb,MAAA,kBAAM,cAAA;AAAA;AAAA,QAOA,MAAA;EAAA,UACI,qBAAA;IACR,uBAAA,EAAyB,cAAc;EAAA;AAAA;AAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { t as LabelledInputBase } from "./labelled-input-base-
|
|
1
|
+
import { t as LabelledInputBase } from "./labelled-input-base-ORb1rGq6.js";
|
|
2
2
|
import { CSSResultGroup } from "lit";
|
|
3
|
+
|
|
3
4
|
//#region src/labelled-range-input/labelled-range-input.d.ts
|
|
4
5
|
declare class LabelledRangeInput extends LabelledInputBase {
|
|
5
6
|
readonly inputSelector = "ixfx-range-input";
|
|
@@ -18,7 +19,7 @@ declare global {
|
|
|
18
19
|
interface HTMLElementTagNameMap {
|
|
19
20
|
'ixfx-labelled-range-input': LabelledRangeInput;
|
|
20
21
|
}
|
|
21
|
-
}
|
|
22
|
+
} //# sourceMappingURL=labelled-range-input.d.ts.map
|
|
22
23
|
//#endregion
|
|
23
24
|
export { LabelledRangeInput as t };
|
|
24
|
-
//# sourceMappingURL=index-
|
|
25
|
+
//# sourceMappingURL=index-CkMIKEWp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CkMIKEWp.d.ts","names":[],"sources":["../src/labelled-range-input/labelled-range-input.ts"],"mappings":";;;;cAuEa,kBAAA,SAA2B,iBAAiB;EAAA,SAC9C,aAAA;EAEmB,WAAA;EACC,OAAA;EACyB,SAAA;EACQ,kBAAA;;EAEjC,UAAA;EAE2B,YAAA;EAAA,UAErC,qBAAA,kBAAqB,cAAA;EA2B/B,MAAA,kBAAM,cAAA;EAAA,OA2BR,MAAA,EAAQ,cAAA;AAAA;AAAA,QA2ET,MAAA;EAAA,UACI,qBAAA;IACR,2BAAA,EAA6B,kBAAkB;EAAA;AAAA"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import "./icon-BUwP1CZ1.js";
|
|
2
1
|
//#region src/icons/defaults.d.ts
|
|
3
2
|
/**
|
|
4
3
|
* Chevron pointing down. Used for split-button dropdown toggle.
|
|
@@ -34,4 +33,4 @@ declare function hasIcon(name: string): boolean;
|
|
|
34
33
|
declare function svgToDataUri(svg: string): string;
|
|
35
34
|
//#endregion
|
|
36
35
|
export { iconBus as a, ICON_CARET_RIGHT as c, ICON_CLOSE as d, hasIcon as i, ICON_CHECK as l, IconChangedEvent as n, registerIcon as o, getIcon as r, svgToDataUri as s, IconChangedDetail as t, ICON_CHEVRON_DOWN as u };
|
|
37
|
-
//# sourceMappingURL=index-
|
|
36
|
+
//# sourceMappingURL=index-D87kRcEs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-D87kRcEs.d.ts","names":[],"sources":["../src/icons/defaults.ts","../src/icons/registry.ts"],"mappings":";;;;AAMA;cAAa,iBAAA;;;AAAiB;AAM9B;cAAa,gBAAA;;;AAAgB;AAM7B;cAAa,UAAA;;;AAAU;AAMvB;cAAa,UAAA;;;cCtBA,OAAA,EAAO,WAAoB;AAAA,KAE5B,iBAAA;EAAA,SAA+B,IAAI;AAAA;AAAA,KACnC,gBAAA,GAAmB,WAAW,CAAC,iBAAA;AAAA,iBAE3B,YAAA,CAAa,IAAA,UAAc,GAAW;AAAA,iBAKtC,OAAA,CAAQ,IAAY;AAAA,iBAIpB,OAAA,CAAQ,IAAY;ADJpC;AAAA,iBCSgB,YAAA,CAAa,GAAW"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "./index-BUB5SICW.js";
|
|
2
1
|
import { CSSResultGroup, LitElement, PropertyValues } from "lit";
|
|
3
2
|
import { Colour } from "@ixfx/visual";
|
|
3
|
+
|
|
4
4
|
//#region src/colour-picker/types.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* OKLCH colour value representation
|
|
@@ -10,6 +10,8 @@ type OklchValue = {
|
|
|
10
10
|
readonly c: number;
|
|
11
11
|
readonly h: number;
|
|
12
12
|
readonly a?: number;
|
|
13
|
+
readonly unit: `scalar`;
|
|
14
|
+
readonly space: `oklch`;
|
|
13
15
|
};
|
|
14
16
|
/**
|
|
15
17
|
* Event detail for colour picker input/change events
|
|
@@ -29,7 +31,7 @@ declare global {
|
|
|
29
31
|
interface HTMLElementTagNameMap {
|
|
30
32
|
'ixfx-colour-picker': ColourPicker;
|
|
31
33
|
}
|
|
32
|
-
}
|
|
34
|
+
} //# sourceMappingURL=types.d.ts.map
|
|
33
35
|
//#endregion
|
|
34
36
|
//#region src/colour-picker/colour-picker.d.ts
|
|
35
37
|
declare class ColourPicker extends LitElement {
|
|
@@ -104,7 +106,7 @@ declare global {
|
|
|
104
106
|
interface HTMLElementTagNameMap {
|
|
105
107
|
'ixfx-colour-picker': ColourPicker;
|
|
106
108
|
}
|
|
107
|
-
}
|
|
109
|
+
} //# sourceMappingURL=colour-picker.d.ts.map
|
|
108
110
|
//#endregion
|
|
109
111
|
//#region src/colour-picker/colour-picker-popup.d.ts
|
|
110
112
|
declare const PICKER_SIZES: {
|
|
@@ -157,6 +159,7 @@ declare class ColourPickerPopup extends LitElement {
|
|
|
157
159
|
private _pendingConfirmed;
|
|
158
160
|
constructor();
|
|
159
161
|
get value(): string;
|
|
162
|
+
set value(colour: Colour.Colourish);
|
|
160
163
|
private get _innerHidePreview();
|
|
161
164
|
private get _pickerDimensions();
|
|
162
165
|
setColour(colour: Colour.Colourish): void;
|
|
@@ -181,4 +184,4 @@ declare global {
|
|
|
181
184
|
}
|
|
182
185
|
//#endregion
|
|
183
186
|
export { ColourPickerInputEvent as a, ColourPickerEventDetail as i, ColourPicker as n, OklchValue as o, ColourPickerChangeEvent as r, ColourPickerPopup as t };
|
|
184
|
-
//# sourceMappingURL=index-
|
|
187
|
+
//# sourceMappingURL=index-DrKRD8_a.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DrKRD8_a.d.ts","names":[],"sources":["../src/colour-picker/types.ts","../src/colour-picker/colour-picker.ts","../src/colour-picker/colour-picker-popup.ts"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { LitElement, PropertyValues } from "lit";
|
|
2
|
-
import "@clinth/vcanvas";
|
|
3
2
|
//#region src/timeline/types.d.ts
|
|
4
3
|
type TimelineTrack = {
|
|
5
4
|
readonly key: string;
|
|
@@ -234,7 +233,7 @@ declare global {
|
|
|
234
233
|
interface HTMLElementTagNameMap {
|
|
235
234
|
'ixfx-timeline-track-tab': TimelineTrackTabElement;
|
|
236
235
|
}
|
|
237
|
-
}
|
|
236
|
+
} //# sourceMappingURL=timeline-track-tabs.d.ts.map
|
|
238
237
|
//#endregion
|
|
239
238
|
//#region src/timeline/timeline-element.d.ts
|
|
240
239
|
type VCanvasElement$1 = HTMLElement & {
|
|
@@ -382,6 +381,7 @@ type VCanvasElement = HTMLElement & {
|
|
|
382
381
|
invalidateAll: () => void;
|
|
383
382
|
invalidateRegion: (x: number, y: number, w: number, h: number) => void;
|
|
384
383
|
};
|
|
384
|
+
/** Total pointer movement (px) before an axis drag activates */
|
|
385
385
|
/**
|
|
386
386
|
* Attaches pointer and keyboard interaction handlers to the timeline.
|
|
387
387
|
* Returns a cleanup function.
|
|
@@ -392,4 +392,4 @@ declare function attachTimelineInteractions(host: IxfxTimelineElement, vcanvasEl
|
|
|
392
392
|
declare const timelineStyles: import("lit").CSSResult;
|
|
393
393
|
//#endregion
|
|
394
394
|
export { TimelineTrackReorderEvent as A, TimelineEventResizeEvent as C, TimelineTickleChangeEvent as D, TimelineTickleChangeDetail as E, TrackHeightMode as F, TrackLayout as I, UserScale as L, TimelineTrackResizeEvent as M, TimelineTrackSelectDetail as N, TimelineTrack as O, TimelineTrackSelectEvent as P, ViewRange as R, TimelineEventResizeDetail as S, TimelineSelectionChangeEvent as T, TimelineDraggingEvent as _, CssVars as a, TimelineEventMoveDetail as b, resolveGrid as c, DragSnappingFn as d, DragTarget as f, TimelineDraggingDetail as g, TimelineDraggingCallbackDetail as h, TimelineTrackTabElement as i, TimelineTrackResizeDetail as j, TimelineTrackReorderDetail as k, TimelineController as l, GridResolution as m, attachTimelineInteractions as n, Rect as o, GridMode as p, IxfxTimelineElement as r, resolveCssVars as s, timelineStyles as t, TimelineControllerConfig as u, TimelineElementEventMap as v, TimelineSelectionChangeDetail as w, TimelineEventMoveEvent as x, TimelineEvent as y };
|
|
395
|
-
//# sourceMappingURL=index-
|
|
395
|
+
//# sourceMappingURL=index-tX6fKF8m.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-tX6fKF8m.d.ts","names":[],"sources":["../src/timeline/types.ts","../src/timeline/timeline-controller.ts","../src/timeline/timeline-draw.ts","../src/timeline/timeline-track-tabs.ts","../src/timeline/timeline-element.ts","../src/timeline/timeline-interactions.ts","../src/timeline/timeline-styles.ts"],"mappings":"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"}
|