@ixfx/components 0.16.1 → 0.16.2
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 +216 -56
- package/bundle/index.js +370 -315
- package/dist/ac-text.d.ts +1 -1
- package/dist/{ac-token-qEs3FsQv.d.ts → ac-token-Cq7lsYf-.d.ts} +1 -1
- package/dist/ac-token.d.ts +1 -1
- package/dist/ac-token.js +1 -1
- package/dist/{button-N92DKoWb.d.ts → button-D1sPDUCM.d.ts} +1 -1
- package/dist/button.d.ts +1 -1
- package/dist/colour-picker.d.ts +1 -1
- package/dist/{crumb-navigation-YnFVFqrx.js → crumb-navigation-D3ndPgFg.js} +2 -2
- package/dist/{crumb-navigation-BbqfmkYs.d.ts → crumb-navigation-nnr881n-.d.ts} +1 -1
- package/dist/crumbs.d.ts +1 -1
- package/dist/crumbs.js +1 -1
- package/dist/{data-grid-Csh5EJW9.d.ts → data-grid-BAEpfTkb.d.ts} +22 -4
- package/dist/{data-grid-Cqxuwgbb.js → data-grid-CaPLWt5E.js} +138 -57
- package/dist/data-grid.d.ts +2 -2
- package/dist/data-grid.js +1 -1
- package/dist/{detail-list-Bo5ze3SN.js → detail-list-C3XKTRmE.js} +71 -20
- package/dist/{detail-list-DSZ1DDor.d.ts → detail-list-DK49TsJd.d.ts} +12 -4
- package/dist/detail-list.d.ts +2 -2
- package/dist/detail-list.js +1 -1
- package/dist/{flat-list-CT9kX3TQ.d.ts → flat-list-Bv4-qfjp.d.ts} +9 -4
- package/dist/flat-list.d.ts +1 -1
- package/dist/flat-list.js +6 -3
- package/dist/{grid-list-D0dJNVEF.js → grid-list-51XsR2X2.js} +55 -18
- package/dist/{grid-list-DDLrWRxm.d.ts → grid-list-DaeSHv9P.d.ts} +58 -14
- package/dist/grid-list.d.ts +2 -2
- package/dist/grid-list.js +1 -1
- package/dist/{grouped-item-lister-DETte0Dh.d.ts → grouped-item-lister-DZIjo9nO.d.ts} +2 -2
- package/dist/grouped-item-lister.d.ts +1 -1
- package/dist/{icon-CDGprSdE.d.ts → icon-DR_3rSyZ.d.ts} +1 -1
- package/dist/icons.d.ts +2 -2
- package/dist/{incr-search-CgbL-OlS.js → incr-search-2YaxUUA9.js} +10 -1
- package/dist/incr-search.d.ts +1 -1
- package/dist/incr-search.js +1 -1
- package/dist/{index-CoqtMSd9.d.ts → index-BUB5SICW.d.ts} +1 -1
- package/dist/{index-CUErGhCg.d.ts → index-BjRoPrwj.d.ts} +1 -1
- package/dist/{index-DN2BWctP.d.ts → index-Bz3loIAf.d.ts} +1 -1
- package/dist/{index-UvnoZUAo.d.ts → index-CJ5fshD3.d.ts} +1 -1
- package/dist/{index-DxyyVqzA.d.ts → index-DM9OLgTH.d.ts} +3 -2
- package/dist/{index-Bnm-kKGC.d.ts → index-DXDz60XH.d.ts} +20 -1
- package/dist/{index-CYndvTWH.d.ts → index-garxxqgV.d.ts} +1 -1
- package/dist/{index-D-lZNlHa.d.ts → index-vdbbGE7N.d.ts} +1 -1
- package/dist/index.d.ts +45 -25
- package/dist/index.js +15 -14
- package/dist/item-appearance-Bl6rMIID.js +60 -0
- package/dist/{labelled-input-base-DiTme1JO.d.ts → labelled-input-base-Dp_9KP0G.d.ts} +1 -1
- package/dist/labelled-radial-input.d.ts +2 -2
- package/dist/labelled-range-input.d.ts +1 -1
- package/dist/labelled-slider-input.d.ts +1 -1
- package/dist/list-group-header.d.ts +1 -1
- package/dist/{list-selection-controller-5L0Nj9tR.js → list-selection-controller-CJDdjH7E.js} +192 -54
- package/dist/list-selection-types-hj9Njei3.d.ts +83 -0
- package/dist/{menu-CU9KAm8s.js → menu-BX1FHxY8.js} +16 -1
- package/dist/{menu-item-bF6narIz.d.ts → menu-item-B0zqw2xp.d.ts} +1 -1
- package/dist/{menu-item-BUv8An2k.js → menu-item-oxU1VKiJ.js} +34 -9
- package/dist/menu.d.ts +2 -2
- package/dist/menu.js +2 -2
- package/dist/{miller-DUqiUAWQ.js → miller-BfrTcujx.js} +142 -11
- package/dist/miller.d.ts +1 -1
- package/dist/miller.js +1 -1
- package/dist/narrowed-text.js +1 -1
- package/dist/panel.d.ts +1 -1
- package/dist/{split-layout-CophkNeU.d.ts → split-layout-ChZ0Glrs.d.ts} +1 -1
- package/dist/split-layout.d.ts +1 -1
- package/dist/sunburst-tree.d.ts +1 -1
- package/dist/sunburst-tree.js +1 -1
- package/dist/{sunbursttree-list-B_M0YTEA.js → sunbursttree-list-906G33ME.js} +1 -1
- package/dist/{sunbursttree-list-DePuFYlU.d.ts → sunbursttree-list-BAS0KrDG.d.ts} +1 -1
- package/dist/{tab-list-Df371rqw.d.ts → tab-list-wC0xNz1b.d.ts} +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/{titlebar-Tqu-VvMU.d.ts → titlebar-B5zSTZnF.d.ts} +1 -1
- package/dist/titlebar.d.ts +1 -1
- package/dist/{tree-DAlgvaHB.js → tree-C_H1COTf.js} +1 -1
- package/dist/tree.d.ts +1 -1
- package/dist/tree.js +1 -1
- package/dist/{vertical-list-SAx56U-l.d.ts → vertical-list-od4050Bo.d.ts} +11 -2
- package/dist/{vertical-list-DyKPKGxK.js → vertical-list-qMRIxZIT.js} +54 -20
- package/dist/vertical-list.d.ts +2 -2
- package/dist/vertical-list.js +1 -1
- package/docs-user/data-grid.md +10 -3
- package/docs-user/detail-list.md +1 -1
- package/docs-user/grid-list.md +4 -1
- package/docs-user/index.json +2 -2
- package/docs-user/menu.md +11 -1
- package/docs-user/vertical-list.md +9 -1
- package/package.json +1 -1
- package/dist/item-appearance-BjcMyauw.js +0 -29
- package/dist/list-selection-types-PjKdhF-a.d.ts +0 -45
package/dist/vertical-list.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { B as ListNativeDragStartDetail, F as ListDragPreview, I as ListDragPreviewContext, L as ListDragPreviewRenderer, P as ListDragEntry, V as ListNativeDragStartEvent, z as ListDragSource } from "./tree-component-DgfkxmVY.js";
|
|
2
2
|
import { n as ListViewportChangeEvent, t as ListViewportChangeDetail } from "./list-viewport-types-BRZsLcvp.js";
|
|
3
|
-
import { a as ListItemClickDetail, c as ListSelectEvent,
|
|
4
|
-
import { a as VerticalListViewState, c as ListDragLeaveDetail, d as ListDropDetail, f as ListDropEvent, g as ListEditCommitEvent, h as ListEditCommitDetail, i as VerticalListElementEventMap, l as ListDragLeaveEvent, m as ListEditCancelEvent, n as CustomCheckboxOptions, o as ListContextMenuDetail, p as ListEditCancelDetail, r as VerticalListElement, s as ListContextMenuEvent, t as AddItemOptions, u as ListDragOverEvent } from "./vertical-list-
|
|
3
|
+
import { a as ListItemClickDetail, c as ListSelectEvent, g as ListTickleEvent, h as ListTickleDetail, i as ListInteractionMode, m as ListSelectionMode, n as ListActivateEvent, o as ListItemClickEvent, r as ListElementEventMap, s as ListSelectDetail, t as ListActivateDetail } from "./list-selection-types-hj9Njei3.js";
|
|
4
|
+
import { a as VerticalListViewState, c as ListDragLeaveDetail, d as ListDropDetail, f as ListDropEvent, g as ListEditCommitEvent, h as ListEditCommitDetail, i as VerticalListElementEventMap, l as ListDragLeaveEvent, m as ListEditCancelEvent, n as CustomCheckboxOptions, o as ListContextMenuDetail, p as ListEditCancelDetail, r as VerticalListElement, s as ListContextMenuEvent, t as AddItemOptions, u as ListDragOverEvent } from "./vertical-list-od4050Bo.js";
|
|
5
5
|
export { AddItemOptions, CustomCheckboxOptions, type ListActivateDetail, type ListActivateEvent, type ListContextMenuDetail, type ListContextMenuEvent, type ListDragEntry, type ListDragLeaveDetail, type ListDragLeaveEvent, type ListDragOverEvent, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragSource, type ListDropDetail, type ListDropEvent, type ListEditCancelDetail, type ListEditCancelEvent, type ListEditCommitDetail, type ListEditCommitEvent, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListNativeDragStartDetail, type ListNativeDragStartEvent, type ListSelectDetail, type ListSelectEvent, type ListSelectionMode, type ListTickleDetail, type ListTickleEvent, type ListViewportChangeDetail, type ListViewportChangeEvent, VerticalListElement, VerticalListElementEventMap, type VerticalListViewState };
|
package/dist/vertical-list.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as VerticalListElement } from "./vertical-list-
|
|
1
|
+
import { t as VerticalListElement } from "./vertical-list-qMRIxZIT.js";
|
|
2
2
|
export { VerticalListElement };
|
package/docs-user/data-grid.md
CHANGED
|
@@ -222,9 +222,16 @@ grid.tickleRow('r7'); // move the row cursor + scroll it into view
|
|
|
222
222
|
grid.tickledKey; // row key under the cursor, or undefined
|
|
223
223
|
```
|
|
224
224
|
|
|
225
|
-
The setter fires `datagrid-select` `{ selectedKeys, previous }`
|
|
226
|
-
|
|
227
|
-
|
|
225
|
+
The setter fires `datagrid-select` `{ selectedKeys, previous }` (and `list-select`
|
|
226
|
+
`{ selectedKeys, previousKeys, previous }`, the name the other list components use)
|
|
227
|
+
only when the selection actually changes. A cancelable `list-select-intent` fires
|
|
228
|
+
before every selection gesture, and `partialKeys` marks partially selected rows
|
|
229
|
+
(`data-partial`, indeterminate checkbox in `checked` mode).
|
|
230
|
+
See [Selection intents, partial rows, unloaded keys](../../docs/infra-selection-intents.md): `list-select-intent`, `partialKeys`, and keys that arrive later.
|
|
231
|
+
|
|
232
|
+
Selected rows that leave `rows` are deselected silently, and reselected if they
|
|
233
|
+
return. See [View state](#view-state). In `checked` mode the row checkbox toggles
|
|
234
|
+
the row.
|
|
228
235
|
|
|
229
236
|
---
|
|
230
237
|
|
package/docs-user/detail-list.md
CHANGED
|
@@ -310,7 +310,7 @@ the Element API is unchanged, the key API is additive. Object items built from
|
|
|
310
310
|
`items` / a provider get their key stamped automatically from `keyProperty`.
|
|
311
311
|
|
|
312
312
|
```typescript
|
|
313
|
-
list.selectKeys(['row-3', 'row-7']); // replace selection;
|
|
313
|
+
list.selectKeys(['row-3', 'row-7']); // replace selection; keys with no row yet apply when the row appears
|
|
314
314
|
list.addSelectedKeys(['row-9']); // multi-select modes only
|
|
315
315
|
list.removeSelectedKeys(['row-3']);
|
|
316
316
|
list.selectedKeys; // ReadonlySet<string>
|
package/docs-user/grid-list.md
CHANGED
|
@@ -183,7 +183,7 @@ See `docs-user/grid-list.md`.
|
|
|
183
183
|
item, drive selection by key instead — additive, the Element API is unchanged.
|
|
184
184
|
|
|
185
185
|
```typescript
|
|
186
|
-
grid.selectKeys(['a', 'c']); // replace;
|
|
186
|
+
grid.selectKeys(['a', 'c']); // replace; keys with no cell yet apply when the cell appears
|
|
187
187
|
grid.addSelectedKeys(['b']); // multi-select modes only
|
|
188
188
|
grid.removeSelectedKeys(['a']);
|
|
189
189
|
grid.selectedKeys; // ReadonlySet<string>
|
|
@@ -193,6 +193,9 @@ grid.addEventListener('list-select', ({ detail }) => {
|
|
|
193
193
|
});
|
|
194
194
|
```
|
|
195
195
|
|
|
196
|
+
Caller-owned selection: a cancelable `list-select-intent` fires before every gesture, and `partialKeys` marks partially selected cells (`data-partial`, `part="item partial"`).
|
|
197
|
+
See [Selection intents, partial rows, unloaded keys](../../docs/infra-selection-intents.md): `list-select-intent`, `partialKeys`, and keys that arrive later.
|
|
198
|
+
|
|
196
199
|
Restore across a reload:
|
|
197
200
|
|
|
198
201
|
```typescript
|
package/docs-user/index.json
CHANGED
package/docs-user/menu.md
CHANGED
|
@@ -6,7 +6,7 @@ A custom menu system built on native HTML popovers with keyboard navigation, tic
|
|
|
6
6
|
|
|
7
7
|
| Component | Description |
|
|
8
8
|
|------------|-------------|
|
|
9
|
-
| `ixfx-menu-bar` | Horizontal container for menu triggers; handles arrow-key navigation between top-level menus |
|
|
9
|
+
| `ixfx-menu-bar` | Horizontal container for menu triggers; handles arrow-key navigation between top-level menus; while a menu is open, hovering another top-level trigger switches to its menu |
|
|
10
10
|
| `ixfx-menu-trigger` | Button or slot that opens a menu popover. Modes: `trigger` (button), `dropdown` (slot-only), `context` (right-click) |
|
|
11
11
|
| `ixfx-menu-container` | The popover panel holding menu items; manages keyboard focus and tickled state |
|
|
12
12
|
| `ixfx-menu-item` | Basic menu item that dispatches a `command` event |
|
|
@@ -254,6 +254,16 @@ The trigger button and menu bar additionally expose a couple of underscore-prefi
|
|
|
254
254
|
| `--_trigger-hover-bg` | `var(--surface-4)` | Trigger button hover background |
|
|
255
255
|
| `--_trigger-hover-opacity` | `1` | Trigger button hover opacity |
|
|
256
256
|
|
|
257
|
+
Public layout variables:
|
|
258
|
+
|
|
259
|
+
| Variable | Default | Description |
|
|
260
|
+
|----------|---------|-------------|
|
|
261
|
+
| `--ixfx-button-padding` | `var(--space-s) var(--space-m)` | Padding of the default trigger button |
|
|
262
|
+
| `--menu-max-height` | `min(60vh, 400px)` | Max height of a menu panel; taller menus scroll, with an edge fade |
|
|
263
|
+
| `--menu-popup-offset` | `var(--space-xs)` | Distance between a trigger and its menu popup |
|
|
264
|
+
| `--menu-bar-gap` | `var(--space-xs)` | Gap between top-level triggers in `ixfx-menu-bar` |
|
|
265
|
+
| `--menu-bar-padding` | `var(--space-xs)` | Padding around the items in `ixfx-menu-bar` |
|
|
266
|
+
|
|
257
267
|
The popup surface uses these from `popupSurfaceStyles`:
|
|
258
268
|
|
|
259
269
|
| Variable | Description |
|
|
@@ -441,7 +441,7 @@ unchanged — the key API is additive.
|
|
|
441
441
|
```
|
|
442
442
|
|
|
443
443
|
```typescript
|
|
444
|
-
list.selectKeys(['a', 'c']); // replace selection;
|
|
444
|
+
list.selectKeys(['a', 'c']); // replace selection; keys with no row yet apply when the row appears
|
|
445
445
|
list.addSelectedKeys(['b']); // multi-select modes only
|
|
446
446
|
list.removeSelectedKeys(['a']);
|
|
447
447
|
list.selectedKeys; // ReadonlySet<string>, e.g. Set { 'b', 'c' }
|
|
@@ -512,6 +512,7 @@ All events **bubble** and are **composed** (they cross shadow-DOM boundaries).
|
|
|
512
512
|
| Event | Detail type | When fired |
|
|
513
513
|
|---|---|---|
|
|
514
514
|
| `list-select` | `ListSelectDetail` | Selection changes by any means |
|
|
515
|
+
| `list-select-intent` | `ListSelectIntentDetail` | Cancelable; a gesture is about to change the selection (see below) |
|
|
515
516
|
| `list-tickle` | `ListTickleDetail` | An item enters cursor focus (hover or keyboard navigation) |
|
|
516
517
|
| `list-activate` | `ListActivateDetail` | User explicitly activates an item: Enter key or double-click |
|
|
517
518
|
| `list-item-click` | `ListItemClickDetail` | Raw click or Enter on any item |
|
|
@@ -524,6 +525,8 @@ All events **bubble** and are **composed** (they cross shadow-DOM boundaries).
|
|
|
524
525
|
type ListSelectDetail = {
|
|
525
526
|
readonly selected: ReadonlySet<Element>; // Current full selection
|
|
526
527
|
readonly previous: ReadonlySet<Element>; // Selection before this change
|
|
528
|
+
readonly selectedKeys: ReadonlySet<string>;
|
|
529
|
+
readonly previousKeys: ReadonlySet<string>;
|
|
527
530
|
};
|
|
528
531
|
|
|
529
532
|
type ListTickleDetail = { readonly item: Element };
|
|
@@ -531,6 +534,11 @@ type ListActivateDetail = { readonly item: Element };
|
|
|
531
534
|
type ListItemClickDetail = { readonly item: Element };
|
|
532
535
|
```
|
|
533
536
|
|
|
537
|
+
### Caller-owned selection: `list-select-intent` and `partialKeys`
|
|
538
|
+
|
|
539
|
+
`list-select-intent` is fired before any gesture changes the selection (in every `interactionMode`, including `manual`); `preventDefault()` means "I'll apply it". `partialKeys` marks rows as partially selected (`data-partial`, indeterminate checkbox in `checked` mode). Both are shared across the list-like components.
|
|
540
|
+
See [Selection intents, partial rows, unloaded keys](../../docs/infra-selection-intents.md): `list-select-intent`, `partialKeys`, and keys that arrive later.
|
|
541
|
+
|
|
534
542
|
### Usage example
|
|
535
543
|
|
|
536
544
|
```typescript
|
package/package.json
CHANGED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
//#region src/common/item-appearance.ts
|
|
2
|
-
/**
|
|
3
|
-
* Shared helpers for the list components' per-item appearance hooks — the
|
|
4
|
-
* per-item icon colour / text colour / badge that miller-list, detail-list,
|
|
5
|
-
* grid-list, data-grid and vertical-list all accept.
|
|
6
|
-
*
|
|
7
|
-
* Every component takes these three features in its own idiom (plain fields
|
|
8
|
-
* on a `TreeItem`, a property-name lookup, an adapter function, a nominated
|
|
9
|
-
* column) but they all agree on what "not supplied" means, and on never
|
|
10
|
-
* emitting an empty slot for an absent value.
|
|
11
|
-
*/
|
|
12
|
-
/**
|
|
13
|
-
* Whether a per-item appearance value counts as "not supplied". `false` and
|
|
14
|
-
* `''` are included so a consumer can clear a feature without rebuilding the
|
|
15
|
-
* collection — e.g. `badge: flags && tagChip(flags.colour)`.
|
|
16
|
-
*/
|
|
17
|
-
function appearanceAbsent(value) {
|
|
18
|
-
return value === void 0 || value === null || value === false || value === ``;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* A usable CSS colour from a per-item value, or `undefined`. Non-strings and
|
|
22
|
-
* empty strings are ignored rather than stringified, so a stray number or
|
|
23
|
-
* `0` never lands in a `style` attribute.
|
|
24
|
-
*/
|
|
25
|
-
function appearanceColor(value) {
|
|
26
|
-
return typeof value === `string` && value.length > 0 ? value : void 0;
|
|
27
|
-
}
|
|
28
|
-
//#endregion
|
|
29
|
-
export { appearanceColor as n, appearanceAbsent as t };
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
//#region src/interaction/list-selection-types.d.ts
|
|
2
|
-
type ListSelectionMode = `none` | `single` | `multiple`;
|
|
3
|
-
/**
|
|
4
|
-
* Controls how pointer and keyboard gestures map to selection changes.
|
|
5
|
-
*
|
|
6
|
-
* - `implicit` — click always replaces selection (no modifier support)
|
|
7
|
-
* - `standard` — click replaces; Ctrl/Cmd+click toggles; Shift+click range-selects (multiple only)
|
|
8
|
-
* - `manual` — no auto-selection; drive state via select()/deselect()/clearSelection()
|
|
9
|
-
* - `checked` — every click toggles; implies multiple selection regardless of selectionMode
|
|
10
|
-
* - `sticky` — every tap/click toggles (no checkbox column); implies multiple selection, for touchscreens
|
|
11
|
-
* - `vscode` — like standard for clicks; Shift+Arrow extends range from the keyboard anchor
|
|
12
|
-
*
|
|
13
|
-
* Switching interactionMode clears the current selection.
|
|
14
|
-
*/
|
|
15
|
-
type ListInteractionMode = `implicit` | `standard` | `manual` | `checked` | `sticky` | `vscode`;
|
|
16
|
-
type ListSelectDetail = {
|
|
17
|
-
readonly selected: ReadonlySet<Element>;
|
|
18
|
-
readonly previous: ReadonlySet<Element>;
|
|
19
|
-
/**
|
|
20
|
-
* The selection as stable key strings (`data-key` / `data-value`). Empty
|
|
21
|
-
* when items carry no key. Additive to `selected`.
|
|
22
|
-
*/
|
|
23
|
-
readonly selectedKeys: ReadonlySet<string>;
|
|
24
|
-
};
|
|
25
|
-
type ListTickleDetail = {
|
|
26
|
-
readonly item: Element;
|
|
27
|
-
};
|
|
28
|
-
type ListActivateDetail = {
|
|
29
|
-
readonly item: Element;
|
|
30
|
-
};
|
|
31
|
-
type ListItemClickDetail = {
|
|
32
|
-
readonly item: Element;
|
|
33
|
-
};
|
|
34
|
-
type ListSelectEvent = CustomEvent<ListSelectDetail>;
|
|
35
|
-
type ListTickleEvent = CustomEvent<ListTickleDetail>;
|
|
36
|
-
type ListActivateEvent = CustomEvent<ListActivateDetail>;
|
|
37
|
-
type ListItemClickEvent = CustomEvent<ListItemClickDetail>;
|
|
38
|
-
interface ListElementEventMap {
|
|
39
|
-
'list-select': ListSelectEvent;
|
|
40
|
-
'list-tickle': ListTickleEvent;
|
|
41
|
-
'list-activate': ListActivateEvent;
|
|
42
|
-
'list-item-click': ListItemClickEvent;
|
|
43
|
-
}
|
|
44
|
-
//#endregion
|
|
45
|
-
export { ListItemClickDetail as a, ListSelectEvent as c, ListTickleEvent as d, ListInteractionMode as i, ListSelectionMode as l, ListActivateEvent as n, ListItemClickEvent as o, ListElementEventMap as r, ListSelectDetail as s, ListActivateDetail as t, ListTickleDetail as u };
|