@ixfx/components 0.16.3 → 0.16.4
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 +2 -2
- package/bundle/index.js +5 -5
- package/dist/{index-DyaHA9Kk.d.ts → index-YCDugjdu.d.ts} +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{miller-Be7x4ufN.js → miller-BrmBywNZ.js} +17 -7
- package/dist/miller.d.ts +1 -1
- package/dist/miller.js +1 -1
- package/docs-user/README.md +5 -0
- package/docs-user/bottom-drawer.md +2 -2
- package/docs-user/crumbs.md +1 -1
- package/docs-user/data-grid.md +2 -2
- package/docs-user/detail-list.md +3 -3
- package/docs-user/dock.md +3 -3
- package/docs-user/flat-list.md +7 -7
- package/docs-user/grid-list.md +3 -3
- package/docs-user/hyperbolic-tree.md +6 -6
- package/docs-user/icicle-tree.md +2 -2
- package/docs-user/incr-search.md +1 -1
- package/docs-user/index.json +22 -2
- package/docs-user/infra-handle.md +122 -0
- package/docs-user/infra-incremental.md +154 -0
- package/docs-user/infra-theming.md +510 -0
- package/docs-user/infra-view-state.md +210 -0
- package/docs-user/list-state.md +656 -0
- package/docs-user/llms.txt +5 -0
- package/docs-user/miller.md +2 -2
- package/docs-user/panel.md +3 -3
- package/docs-user/split-layout.md +2 -2
- package/docs-user/sunburst-tree.md +3 -3
- package/docs-user/titlebar.md +2 -2
- package/docs-user/tree.md +2 -2
- package/docs-user/treemap.md +2 -2
- package/docs-user/twosplit-layout.md +3 -3
- package/docs-user/user-selection-intents.md +3 -3
- package/docs-user/user-theming.md +1 -1
- package/docs-user/vertical-list.md +2 -2
- package/llms.txt +5 -0
- package/package.json +1 -1
package/docs-user/panel.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
An collapsible panel component with support for titles, icons, toolbars, and multiple visual variants.
|
|
4
4
|
|
|
5
|
-
The header chrome is an `ixfx-titlebar` (see [`ixfx-titlebar`](
|
|
5
|
+
The header chrome is an `ixfx-titlebar` (see [`ixfx-titlebar`](./titlebar.md)); the panel adds the collapsible content area beneath it.
|
|
6
6
|
|
|
7
7
|
```html
|
|
8
8
|
<ixfx-panel title="Settings">
|
|
@@ -341,5 +341,5 @@ import type { TitlebarOrientation, TitlebarVariant, TitlebarToggleInteraction, T
|
|
|
341
341
|
|
|
342
342
|
## See also
|
|
343
343
|
|
|
344
|
-
- [`ixfx-titlebar`](
|
|
345
|
-
- [`ixfx-icon`](
|
|
344
|
+
- [`ixfx-titlebar`](./titlebar.md) — Standalone titlebar chrome composed by this panel
|
|
345
|
+
- [`ixfx-icon`](./icons.md) — Icon component used by panel
|
|
@@ -132,7 +132,7 @@ Nested `<ixfx-split-layout>` elements create sub-groups:
|
|
|
132
132
|
| `--split-collapsed-size` | `0px` | Size of collapsed panels |
|
|
133
133
|
| `--split-snap` | `24px` | Snap/hysteresis distance |
|
|
134
134
|
The gutter grip is the shared `dimpled` handle — theme it with the
|
|
135
|
-
`--ixfx-handle-*` variables (see [docs/infra-handle.md](
|
|
135
|
+
`--ixfx-handle-*` variables (see [docs/infra-handle.md](./infra-handle.md)).
|
|
136
136
|
|
|
137
137
|
---
|
|
138
138
|
|
|
@@ -202,7 +202,7 @@ layouts, resizing several splits with one gesture.
|
|
|
202
202
|
`getViewState()` / `setViewState()` snapshot and restore the size and
|
|
203
203
|
collapse of each direct child that has an `id`, as plain JSON (`kind:
|
|
204
204
|
'split-layout'`). The component never persists anything itself — see
|
|
205
|
-
[docs/infra-view-state.md](
|
|
205
|
+
[docs/infra-view-state.md](./infra-view-state.md) and
|
|
206
206
|
`bindViewState()`.
|
|
207
207
|
|
|
208
208
|
```ts
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
`<ixfx-sunbursttree-list>` — a zoomable sunburst over weighted tree data. The zoom node is the centre disc; each ring outward is one generation, and each arc's angle is its share of its parent's value. Every change — data arriving, a different weighting, a zoom — animates from what's on screen to the new layout.
|
|
4
4
|
|
|
5
|
-
It implements the shared `TreeComponent` interface (see [`src/tree/README.md`](
|
|
5
|
+
It implements the shared `TreeComponent` interface (see [`src/tree/README.md`](./tree.md)), so `TreeDataModel`, `IncrSearchTreeController`, and `TreeComponent`-typed code work unmodified. Geometrically it is a polar [icicle](./icicle-tree.md), and shares its API shape.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -123,7 +123,7 @@ All of it is computed in CSS from per-arc custom properties, so the palette is t
|
|
|
123
123
|
| `animationDuration` (`animation-duration`) | `number` | `600` | Transition length in ms; `0` snaps. Respects `prefers-reduced-motion` |
|
|
124
124
|
| `filterPredicate` | `TreeFilterPredicate \| undefined` | `undefined` | Non-matching arcs (with no matching descendant) are dimmed |
|
|
125
125
|
| `disableKeyboardNavigation` (`disable-keyboard-navigation`) | `boolean` | `false` | Turn off keyboard handling |
|
|
126
|
-
| `searchModes` (`search-modes`) | `string \| undefined` | `undefined` | Subset of `navigate select filter` — see [`docs/infra-incremental.md`](
|
|
126
|
+
| `searchModes` (`search-modes`) | `string \| undefined` | `undefined` | Subset of `navigate select filter` — see [`docs/infra-incremental.md`](./infra-incremental.md) |
|
|
127
127
|
| `exclusivity` | `TreeExclusivity` | `'none'` | Accepted for interface compatibility, ignored |
|
|
128
128
|
| `selectedNode` / `selectedNodes` | | | Same contract as `ixfx-tree-list` |
|
|
129
129
|
| `focusedNode` | `TreeNode \| undefined` (read-only) | `undefined` | Current zoom node; `undefined` when showing the full tree |
|
|
@@ -174,7 +174,7 @@ All events **bubble** and are **composed**. `depth` counts from the root's child
|
|
|
174
174
|
|
|
175
175
|
## View state
|
|
176
176
|
|
|
177
|
-
Implements the shared view-state API (`getViewState()` / `setViewState()` / `clearPendingViewState()` / `view-state-change`) — see [`docs/infra-view-state.md`](
|
|
177
|
+
Implements the shared view-state API (`getViewState()` / `setViewState()` / `clearPendingViewState()` / `view-state-change`) — see [`docs/infra-view-state.md`](./infra-view-state.md). `kind` is `sunbursttree-list`.
|
|
178
178
|
|
|
179
179
|
| Field | Type | Meaning |
|
|
180
180
|
|---|---|---|
|
package/docs-user/titlebar.md
CHANGED
|
@@ -97,5 +97,5 @@ import type { TitlebarOrientation, TitlebarVariant, TitlebarToggleInteraction, T
|
|
|
97
97
|
|
|
98
98
|
## See also
|
|
99
99
|
|
|
100
|
-
- [`ixfx-panel`](
|
|
101
|
-
- [`ixfx-icon`](
|
|
100
|
+
- [`ixfx-panel`](./panel.md) — Collapsible panel that composes this titlebar
|
|
101
|
+
- [`ixfx-icon`](./icons.md) — Icon component used by the titlebar
|
package/docs-user/tree.md
CHANGED
|
@@ -466,7 +466,7 @@ Notes:
|
|
|
466
466
|
## View state (`ixfx-tree-list`)
|
|
467
467
|
|
|
468
468
|
Snapshot and restore selection, expansion, keyboard cursor and scroll
|
|
469
|
-
separately from the data — see [`docs/infra-view-state.md`](
|
|
469
|
+
separately from the data — see [`docs/infra-view-state.md`](./infra-view-state.md)
|
|
470
470
|
for the shared contract. `kind: 'tree-list'`; fields `selected`, `expanded`,
|
|
471
471
|
`focus`, `scroll`, all keyed by `item.key`.
|
|
472
472
|
|
|
@@ -701,7 +701,7 @@ el.registry.invoke('list.search.navigate'); // or .select / .filter
|
|
|
701
701
|
```
|
|
702
702
|
|
|
703
703
|
Limit the offered modes with the `search-modes` attribute
|
|
704
|
-
(`search-modes="navigate filter"`). Full model: [`docs/infra-incremental.md`](
|
|
704
|
+
(`search-modes="navigate filter"`). Full model: [`docs/infra-incremental.md`](./infra-incremental.md).
|
|
705
705
|
|
|
706
706
|
### Deprecated: `IncrSearchTreeController`
|
|
707
707
|
|
package/docs-user/treemap.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Treemap
|
|
2
2
|
|
|
3
|
-
`<ixfx-treemap-list>` — a nested-area (treemap) view over tree data. The zoom root fills the viewport; each node's rectangle is subdivided among its children by `valueAccessor` share. Clicking a branch zooms into it, and ancestors collapse into a breadcrumb strip. It implements the shared `TreeComponent` interface (see [`src/tree/README.md`](
|
|
3
|
+
`<ixfx-treemap-list>` — a nested-area (treemap) view over tree data. The zoom root fills the viewport; each node's rectangle is subdivided among its children by `valueAccessor` share. Clicking a branch zooms into it, and ancestors collapse into a breadcrumb strip. It implements the shared `TreeComponent` interface (see [`src/tree/README.md`](./tree.md)). See the class docs in `treemap-list.ts` for properties and events.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## View state
|
|
8
8
|
|
|
9
|
-
Implements the shared view-state API (`getViewState()` / `setViewState()` / `clearPendingViewState()` / `view-state-change`) — see [`docs/infra-view-state.md`](
|
|
9
|
+
Implements the shared view-state API (`getViewState()` / `setViewState()` / `clearPendingViewState()` / `view-state-change`) — see [`docs/infra-view-state.md`](./infra-view-state.md). `kind` is `treemap-list`.
|
|
10
10
|
|
|
11
11
|
```typescript
|
|
12
12
|
type TreemapListViewState = ViewStateBase & {
|
|
@@ -39,7 +39,7 @@ A Lit web component that lays out two elements within a container with a split b
|
|
|
39
39
|
|
|
40
40
|
When `--handle-size` exceeds `5px` the split bar shows the shared `dimpled` grip —
|
|
41
41
|
theme it with the `--ixfx-handle-*` variables (see
|
|
42
|
-
[docs/infra-handle.md](
|
|
42
|
+
[docs/infra-handle.md](./infra-handle.md)).
|
|
43
43
|
|
|
44
44
|
### Events
|
|
45
45
|
|
|
@@ -53,7 +53,7 @@ theme it with the `--ixfx-handle-*` variables (see
|
|
|
53
53
|
`getViewState()` / `setViewState()` snapshot and restore both sides as plain
|
|
54
54
|
JSON (`kind: 'twosplit-layout'`), keyed by slot name. The component never
|
|
55
55
|
persists anything itself — see
|
|
56
|
-
[docs/infra-view-state.md](
|
|
56
|
+
[docs/infra-view-state.md](./infra-view-state.md) and `bindViewState()`.
|
|
57
57
|
|
|
58
58
|
```ts
|
|
59
59
|
split.getViewState();
|
|
@@ -211,7 +211,7 @@ ixfx-twosplit-layout {
|
|
|
211
211
|
When `--handle-size` is greater than `5px`, a grip appears in the centre of the
|
|
212
212
|
split bar — the shared `dimpled` handle (a debossed square grid), oriented along
|
|
213
213
|
the split. Theme it with the `--ixfx-handle-*` variables; see
|
|
214
|
-
[docs/infra-handle.md](
|
|
214
|
+
[docs/infra-handle.md](./infra-handle.md).
|
|
215
215
|
|
|
216
216
|
```css
|
|
217
217
|
ixfx-twosplit-layout {
|
|
@@ -49,7 +49,7 @@ list.addEventListener('list-select-intent', (e) => {
|
|
|
49
49
|
- **Cursor and anchor keep moving when cancelled.** They are view state, not selection; the next `extend` still has its `anchorKey`.
|
|
50
50
|
- **Who fires it.** Gestures (click, Space, Enter, double-click, checkbox, Shift+Arrow, Cmd/Ctrl+A, marquee, Escape, click on empty space) and `selectAll()`. The imperative `select()` / `selectKeys()` / `clearSelection()` family never fires it, so applying your decision through them cannot re-enter your handler.
|
|
51
51
|
- **`manual` mode.** The intent is reported and nothing else happens, so the caller never re-implements modifier handling. (`ixfx-data-grid` keeps Space toggling in `manual`, as before.)
|
|
52
|
-
- **Not covered.** Right-click auto-select and the drag-origin auto-select of native drag-out still apply directly. `ixfx-miller-list` reports click / checkbox / Shift+Arrow; it has no select-all, and Escape navigates rather than clears.
|
|
52
|
+
- **Not covered.** Right-click auto-select and the drag-origin auto-select of native drag-out still apply directly. `ixfx-miller-list` reports click / checkbox / Shift+Arrow; it has no select-all, and Escape navigates rather than clears.
|
|
53
53
|
|
|
54
54
|
## `list-select` (consistent)
|
|
55
55
|
|
|
@@ -73,7 +73,7 @@ list.partialKeys = ['k1', 'k2']; // ReadonlySet<string> getter; replace-on-set
|
|
|
73
73
|
- Light-DOM lists (vertical, detail): `data-partial` on the row; grid-list cell and data-grid row: `data-partial` plus `.partial` (`part="item partial"` on grid-list); miller: `.partial`.
|
|
74
74
|
- Accessibility: in `checked` mode the checkbox is indeterminate with `aria-checked="mixed"`; otherwise the row gets `aria-description="Partially selected"` (an author-set `aria-description` is never overwritten).
|
|
75
75
|
- Style hooks: `--item-bg-partial`, `--item-border-partial` (`--grid-list-partial-outline` on grid-list).
|
|
76
|
-
- `ixfx-flat-list` forwards `partialKeys` to its inner list.
|
|
76
|
+
- `ixfx-flat-list` forwards `partialKeys` to its inner list. In `checked` mode (tree-list and miller-list alike) indeterminate comes from loaded descendants or `partialKeys`, whichever says so.
|
|
77
77
|
|
|
78
78
|
## Selected keys that aren't loaded yet
|
|
79
79
|
|
|
@@ -83,4 +83,4 @@ list.partialKeys = ['k1', 'k2']; // ReadonlySet<string> getter; replace-on-set
|
|
|
83
83
|
|
|
84
84
|
- **`ixfx-tree-list`** — also fires `list-select` next to `select`. `partialKeys` combines with the checkbox state derived from loaded descendants: indeterminate if either says so; selected wins.
|
|
85
85
|
- **`ixfx-multicol-list`** — the intent is re-fired on the host with `columnId`; the "All" row is a `clear`. `partialKeys` applies to every column with a matching item key; `setColumnPartialKeys(columnId, keys)` targets one column.
|
|
86
|
-
- **`ixfx-miller-list`** —
|
|
86
|
+
- **`ixfx-miller-list`** — same contract as the tree: a branch checkbox is one `toggle` with `descendants: true` and `checked`, `keys` = the node and its loaded descendants; `partialKeys` combines with the derived checkbox state (indeterminate if either says so; selected wins).
|
|
@@ -482,7 +482,7 @@ If you're upgrading from previous versions:
|
|
|
482
482
|
|
|
483
483
|
For implementation details, see:
|
|
484
484
|
- [`docs/infra-theming.md`](infra-theming.md) - Internal theming specification
|
|
485
|
-
- [`docs-user/icons.md`](
|
|
485
|
+
- [`docs-user/icons.md`](./icons.md) - Full icon registry reference
|
|
486
486
|
- [`demo/loader.html?demo=icons`](/demo/loader.html?demo=icons) - Interactive icons demo
|
|
487
487
|
- [`src/style.css`] - Base theme definitions
|
|
488
488
|
- [`demo/shared/`] - Example theme implementations
|
|
@@ -620,7 +620,7 @@ The element must be focused (click it or tab to it) before keyboard navigation w
|
|
|
620
620
|
|
|
621
621
|
## Incremental search
|
|
622
622
|
|
|
623
|
-
A built-in type-ahead popover with three modes — **navigate** (cursor jumps to the best match, ↑/↓ cycle), **select** (matches become the selection), **filter** (non-matches hidden). See [`docs/infra-incremental.md`](
|
|
623
|
+
A built-in type-ahead popover with three modes — **navigate** (cursor jumps to the best match, ↑/↓ cycle), **select** (matches become the selection), **filter** (non-matches hidden). See [`docs/infra-incremental.md`](./infra-incremental.md) for the full model, conversions between modes, and the `search-modes` attribute.
|
|
624
624
|
|
|
625
625
|
There is **no default shortcut**. Open it by invoking one of the commands on `list.registry`:
|
|
626
626
|
|
|
@@ -701,7 +701,7 @@ The event is cancelable: call `preventDefault()` to suppress the browser's nativ
|
|
|
701
701
|
|
|
702
702
|
Rename is **opt-in**: set `editValidator = (value, key) => boolean` first. Without it `beginEdit` returns `false` and rows stay plain text. The validator runs on commit; returning `false` rejects the text and the edit ends as a cancel.
|
|
703
703
|
|
|
704
|
-
`list.beginEdit(key)` swaps an [`ixfx-editable-label`](
|
|
704
|
+
`list.beginEdit(key)` swaps an [`ixfx-editable-label`](./editable-label.md) into the row, selects its text and focuses it. It returns `false` if there is no `editValidator`, or the row is unknown or not rendered.
|
|
705
705
|
|
|
706
706
|
The editor replaces the row's `[data-edit-label]` element, or the whole row if there is none. Mark the text element in rows that carry icons or badges, and set `data-edit-value` there if the editable text differs from its content.
|
|
707
707
|
|
package/llms.txt
CHANGED
|
@@ -73,7 +73,12 @@ import '@ixfx/components/data-grid';
|
|
|
73
73
|
- [xy-pad](docs-user/xy-pad.md): A 2D touch-friendly XY pad for controlling two parameters simultaneously. Each axis supports independent linear/logarithmic scaling.
|
|
74
74
|
|
|
75
75
|
## Overviews
|
|
76
|
+
- [infra-handle.md](docs-user/infra-handle.md)
|
|
77
|
+
- [infra-incremental.md](docs-user/infra-incremental.md)
|
|
78
|
+
- [infra-theming.md](docs-user/infra-theming.md)
|
|
76
79
|
- [infra-tickled.md](docs-user/infra-tickled.md)
|
|
80
|
+
- [infra-view-state.md](docs-user/infra-view-state.md)
|
|
81
|
+
- [list-state.md](docs-user/list-state.md)
|
|
77
82
|
- [user-catalog.md](docs-user/user-catalog.md)
|
|
78
83
|
- [user-selection-intents.md](docs-user/user-selection-intents.md)
|
|
79
84
|
- [user-theming.md](docs-user/user-theming.md)
|