mates 0.2.4 → 0.3.0-beta.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.
Files changed (40) hide show
  1. package/dist/Directives/index.d.ts +1 -1
  2. package/dist/Directives/index.d.ts.map +1 -1
  3. package/dist/Directives/virtualHelpers.d.ts +8 -6
  4. package/dist/Directives/virtualHelpers.d.ts.map +1 -1
  5. package/dist/Fetch/Fetch.d.ts +48 -2
  6. package/dist/Fetch/Fetch.d.ts.map +1 -1
  7. package/dist/Mutables/atom/atom.d.ts.map +1 -1
  8. package/dist/Mutables/useStore/hostContext.d.ts.map +1 -1
  9. package/dist/TrackState/componentStatus.d.ts +0 -5
  10. package/dist/TrackState/componentStatus.d.ts.map +1 -1
  11. package/dist/TrackState/readTracking.d.ts.map +1 -1
  12. package/dist/css-in-js/index.d.ts +1 -1
  13. package/dist/css-in-js/index.d.ts.map +1 -1
  14. package/dist/css-in-js/stylesheet.d.ts +15 -0
  15. package/dist/css-in-js/stylesheet.d.ts.map +1 -1
  16. package/dist/index.d.ts +141 -105
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.esm.js +39 -66
  19. package/dist/index.esm.js.map +1 -1
  20. package/dist/portals/index.d.ts +1 -1
  21. package/dist/portals/index.d.ts.map +1 -1
  22. package/dist/portals/popup.d.ts +47 -8
  23. package/dist/portals/popup.d.ts.map +1 -1
  24. package/dist/virtualizer/Virtualizer.d.ts +3 -2
  25. package/dist/virtualizer/Virtualizer.d.ts.map +1 -1
  26. package/dist/virtualizer/index.d.ts +1 -1
  27. package/dist/virtualizer/index.d.ts.map +1 -1
  28. package/dist/virtualizer/layouts/shared/BaseLayout.d.ts +8 -0
  29. package/dist/virtualizer/layouts/shared/BaseLayout.d.ts.map +1 -1
  30. package/dist/virtualizer/mates-adapter.d.ts +36 -88
  31. package/dist/virtualizer/mates-adapter.d.ts.map +1 -1
  32. package/package.json +1 -1
  33. package/dist/virtualizer/LitVirtualizer.d.ts +0 -62
  34. package/dist/virtualizer/LitVirtualizer.d.ts.map +0 -1
  35. package/dist/virtualizer/layouts/flexWrap.d.ts +0 -65
  36. package/dist/virtualizer/layouts/flexWrap.d.ts.map +0 -1
  37. package/dist/virtualizer/layouts/grid.d.ts +0 -25
  38. package/dist/virtualizer/layouts/grid.d.ts.map +0 -1
  39. package/dist/virtualizer/lit-virtualizer.d.ts +0 -23
  40. package/dist/virtualizer/lit-virtualizer.d.ts.map +0 -1
@@ -1,6 +1,6 @@
1
1
  export type { DialogOptions } from "./dialog";
2
2
  export { dialog } from "./dialog";
3
- export type { PopupOptions, PopupPlacement } from "./popup";
3
+ export type { PopupOpenAtom, PopupOptions, PopupPlacement } from "./popup";
4
4
  export { popup } from "./popup";
5
5
  export type { Placement, PortalOptions } from "./portal";
6
6
  export { computeAutoPlacement, getCoords, placementTransform, portal, } from "./portal";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/portals/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,MAAM,GACP,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/portals/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,MAAM,GACP,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC"}
@@ -1,5 +1,14 @@
1
1
  import { type TemplateResult } from "lit-html";
2
2
  import type { DirectiveResult } from "lit-html/directive.js";
3
+ /**
4
+ * A readable boolean atom — any callable that returns a boolean and also
5
+ * exposes a `get()` method (compatible with mates `atom(false)`).
6
+ * Used by the `open` option of `popup()` to drive controlled mode.
7
+ */
8
+ export interface PopupOpenAtom {
9
+ (): boolean;
10
+ get(): boolean;
11
+ }
3
12
  export type PopupPlacement = "auto" | "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";
4
13
  export interface PopupOptions {
5
14
  /** default "bottom-start" */
@@ -19,19 +28,49 @@ export interface PopupOptions {
19
28
  * Receives the anchor element — typical use is `anchor.focus()`.
20
29
  */
21
30
  onClose?: (anchor: HTMLElement) => void;
31
+ /**
32
+ * **Controlled mode** — pass a boolean atom to take full control of
33
+ * open/close state. When provided:
34
+ * - No `click` listener is attached to the anchor element.
35
+ * - The panel opens when `open()` becomes `true` and closes when it
36
+ * becomes `false` (evaluated on every render update).
37
+ * - Outside-click and Escape are **not** wired automatically; the caller
38
+ * is responsible for setting the atom to `false` when appropriate.
39
+ *
40
+ * @example
41
+ * const isOpen = atom(false);
42
+ * html`<div ${popup(listEl, { open: isOpen, position: "bottom-start" })}>
43
+ * <input @focusin=${() => isOpen.set(true)}
44
+ * @focusout=${() => isOpen.set(false)} />
45
+ * </div>`
46
+ */
47
+ open?: PopupOpenAtom;
22
48
  }
23
49
  /**
24
- * `popup(content, positionOrOptions?)` — attach a click-toggle anchored
25
- * floating panel to any element.
50
+ * `popup(content, options?)` — attach an anchored floating panel to any element.
51
+ *
52
+ * **Toggle mode** (default) — clicking the anchor opens/closes the panel.
53
+ * Outside-click and Escape close it automatically.
26
54
  *
27
- * Pure `position:fixed`no Popover API. Each element gets its own floating
28
- * `<div>` appended to `<body>`, so multiple popups can coexist. Clicking
29
- * outside or pressing Escape closes it. Repositions on scroll and resize.
30
- * Optional `onOpen` / `onClose` run when the panel opens or closes (e.g. focus management).
55
+ * **Controlled mode**pass `options.open` with a boolean atom to take full
56
+ * control. No click listener is attached; the panel opens/closes whenever
57
+ * the atom value changes. Outside-click and Escape are NOT wired automatically
58
+ * the caller is responsible for setting the atom to `false`.
31
59
  *
32
- * @example
60
+ * Pure `position:fixed` — no Popover API, no portal wrapper needed.
61
+ * Repositions on scroll and resize.
62
+ *
63
+ * @example — toggle (default)
33
64
  * html`<button ${popup(html`<ul>...</ul>`, "bottom-start")}>Menu ▾</button>`
34
- * html`<button ${popup(html`<div>...</div>`, { position: "top", gap: 8 })}>Open</button>`
65
+ *
66
+ * @example — controlled (combo-box / autocomplete)
67
+ * const isOpen = atom(false);
68
+ * html`
69
+ * <div ${popup(listEl, { open: isOpen, position: "bottom-start", matchAnchorWidth: true })}>
70
+ * <input @focusin=${() => isOpen.set(true)}
71
+ * @focusout=${() => isOpen.set(false)} />
72
+ * </div>
73
+ * `
35
74
  */
36
75
  export declare function popup(content: TemplateResult, positionOrOptions?: PopupPlacement | PopupOptions): DirectiveResult;
37
76
  //# sourceMappingURL=popup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../lib/portals/popup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,KAAK,GACL,WAAW,GACX,SAAS,GACT,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,UAAU,GACV,OAAO,GACP,aAAa,GACb,WAAW,CAAC;AAEhB,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACzC;AAoPD;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CACnB,OAAO,EAAE,cAAc,EACvB,iBAAiB,CAAC,EAAE,cAAc,GAAG,YAAY,GAChD,eAAe,CAMjB"}
1
+ {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../lib/portals/popup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,OAAO,CAAC;IACZ,GAAG,IAAI,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,KAAK,GACL,WAAW,GACX,SAAS,GACT,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,UAAU,GACV,OAAO,GACP,aAAa,GACb,WAAW,CAAC;AAEhB,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAiWD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,KAAK,CACnB,OAAO,EAAE,cAAc,EACvB,iBAAiB,CAAC,EAAE,cAAc,GAAG,YAAY,GAChD,eAAe,CAMjB"}
@@ -86,6 +86,7 @@ export declare class Virtualizer {
86
86
  */
87
87
  private _childrenRO;
88
88
  private _mutationObserver;
89
+ private _scrollEndRafId;
89
90
  private _scrollEventListeners;
90
91
  private _scrollEventListenerOptions;
91
92
  private _loadListener;
@@ -117,7 +118,7 @@ export declare class Virtualizer {
117
118
  * Index of the last item intersecting the viewport.
118
119
  */
119
120
  private _lastVisible;
120
- protected _scheduled: WeakSet<Function>;
121
+ protected _scheduled: Map<Function, number>;
121
122
  /**
122
123
  * Invoked at the end of each render cycle: children in the range are
123
124
  * measured, and their dimensions passed to this callback. Use it to layout
@@ -164,7 +165,7 @@ export declare class Virtualizer {
164
165
  * Returns the width, height, and margins of the given child.
165
166
  */
166
167
  _measureChild(element: Element): ItemBox;
167
- protected _schedule(method: Function): Promise<void>;
168
+ protected _schedule(method: Function): void;
168
169
  _updateDOM(state: StateChangedMessage): Promise<void>;
169
170
  _finishDOMUpdate(): void;
170
171
  _updateLayout(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Virtualizer.d.ts","sourceRoot":"","sources":["../../lib/virtualizer/Virtualizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Virtualizer.d.ts","sourceRoot":"","sources":["../../lib/virtualizer/Virtualizer.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export * from "./mates-adapter";
1
+ export { type VirtualItemTemplate, type VirtualKeyFn, type VirtualListOptions, type VirtualMasonryOptions, virtualList, virtualMasonry, } from "./mates-adapter.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/virtualizer/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/virtualizer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC"}
@@ -95,6 +95,14 @@ export declare abstract class BaseLayout<C extends BaseLayoutConfig> implements
95
95
  * in the active range of items.
96
96
  */
97
97
  protected _overhang: number;
98
+ /**
99
+ * Recompute _overhang whenever the viewport size changes.
100
+ * We use 2× the viewport's scroll-axis dimension so that
101
+ * the user can scroll at full speed without hitting blank rows.
102
+ * Minimum of 200px so tiny/zero-height viewports still pre-render
103
+ * a sensible buffer.
104
+ */
105
+ protected _updateOverhang(): void;
98
106
  /**
99
107
  * Call this to deliver messages (e.g. stateChanged, unpinned) to host
100
108
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLayout.d.ts","sourceRoot":"","sources":["../../../../lib/virtualizer/layouts/shared/BaseLayout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseLayout.d.ts","sourceRoot":"","sources":["../../../../lib/virtualizer/layouts/shared/BaseLayout.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,17 @@
1
1
  /**
2
- * @license
3
- * Copyright 2021 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
2
+ * Mates adapter for the virtualizer engine.
5
3
  *
6
- * Mates adapter for @lit-labs/virtualizer (forked).
4
+ * Exposes two helpers:
5
+ * - `virtualList` — virtualised vertical list, drop-in for `repeat`.
6
+ * Supports dynamic item heights, dynamic container sizes,
7
+ * and dynamic item counts via ResizeObserver measurement.
8
+ * - `virtualMasonry` — virtualised masonry grid with variable item heights.
7
9
  *
8
- * Exposes `virtualList`, `virtualGrid`, and `virtualMasonry` the same
9
- * friendly API that mates users already know — but now backed by the
10
- * battle-tested lit virtualizer engine.
10
+ * Both are used directly in lit-html templates:
11
11
  *
12
- * Key improvement over the old repeatVirtual implementation:
13
- * - `virtualList` no longer requires `itemHeight`. The FlowLayout uses
14
- * ResizeObserver to measure each child's actual rendered height, just
15
- * like the browser's native flow layout. Items can be any height and
16
- * can change height dynamically.
17
- * - `virtualGrid` and `virtualMasonry` still accept explicit sizes since
18
- * the grid/masonry layouts need them for position pre-computation.
12
+ * html`<div style="height:600px;overflow:auto">
13
+ * ${virtualList(items, (item) => html`<div>${item.name}</div>`)}
14
+ * </div>`
19
15
  */
20
16
  import type { TemplateResult } from "lit-html";
21
17
  import type { KeyFn } from "lit-html/directives/repeat.js";
@@ -28,7 +24,7 @@ export interface VirtualListOptions {
28
24
  direction?: "vertical" | "horizontal";
29
25
  /**
30
26
  * If true the virtualizer element itself becomes the scroller.
31
- * Set an explicit height/width on the host element when using this.
27
+ * Give it an explicit height/width via CSS when using this.
32
28
  */
33
29
  scroller?: boolean;
34
30
  /**
@@ -41,16 +37,15 @@ export interface VirtualListOptions {
41
37
  };
42
38
  }
43
39
  /**
44
- * `virtualList` — virtualised single-column list backed by the lit virtualizer
45
- * FlowLayout.
40
+ * `virtualList` — virtualised list backed by the FlowLayout engine.
46
41
  *
47
- * Unlike the previous implementation, **no `itemHeight` is required**. Each
48
- * item is measured by a ResizeObserver after it renders, so items can have
49
- * any height — fixed, dynamic, or content-driven — and the virtualizer adapts
50
- * automatically.
42
+ * **No `itemHeight` required.** Each item is measured by a ResizeObserver
43
+ * after it renders, so items can have any height — fixed, dynamic, or
44
+ * content-driven — and the virtualizer adapts automatically. Also responds
45
+ * to container size changes and item count changes in real time.
51
46
  *
52
- * The parent element of the expression becomes the scroll container. Give it
53
- * a fixed height via CSS or inline style.
47
+ * The parent element of the expression becomes the scroll container.
48
+ * Give it a fixed height via CSS or inline style.
54
49
  *
55
50
  * @example
56
51
  * ```ts
@@ -77,76 +72,30 @@ export interface VirtualListOptions {
77
72
  * { direction: 'horizontal' },
78
73
  * )}
79
74
  * </div>`
80
- * ```
81
- */
82
- export declare function virtualList<T>(items: readonly T[], template: VirtualItemTemplate<T>, options?: VirtualListOptions): unknown;
83
- export declare function virtualList<T>(items: readonly T[], keyFn: VirtualKeyFn<T>, template: VirtualItemTemplate<T>, options?: VirtualListOptions): unknown;
84
- export interface VirtualGridOptions {
85
- /**
86
- * Item width in CSS pixel string, e.g. `'200px'`. Required.
87
- */
88
- itemWidth: `${number}px`;
89
- /**
90
- * Item height in CSS pixel string, e.g. `'200px'`. Required.
91
- */
92
- itemHeight: `${number}px`;
93
- /**
94
- * Gap between cells. Accepts any value supported by the grid layout,
95
- * e.g. `'12px'`, `'12px 8px'`. Defaults to `'8px'`.
96
- */
97
- gap?: `${number}px` | `${number}px ${number}px`;
98
- /**
99
- * Scrolling direction. Defaults to `'vertical'`.
100
- */
101
- direction?: "vertical" | "horizontal";
102
- /**
103
- * If true the virtualizer element itself becomes the scroller.
104
- */
105
- scroller?: boolean;
106
- /**
107
- * Whether to flex items to fill available space. Defaults to `false`.
108
- * Set to `true` to let the grid decide how many columns fit.
109
- */
110
- flex?: boolean;
111
- /**
112
- * Pin a specific item into view on first render.
113
- */
114
- pin?: {
115
- index: number;
116
- block?: ScrollLogicalPosition;
117
- };
118
- }
119
- /**
120
- * `virtualGrid` — virtualised uniform multi-column grid.
121
- *
122
- * Pass flat items — no row-grouping needed. The grid layout computes row and
123
- * column positions automatically. All cells have the same size.
124
75
  *
125
- * @example
126
- * ```ts
127
- * html`<div style="height:600px;overflow:auto">
128
- * ${virtualGrid(
129
- * photos,
130
- * (p) => p.id,
131
- * (p) => html`<img src=${p.url} style="width:100%;height:100%;object-fit:cover" />`,
132
- * { itemWidth: '220px', itemHeight: '220px', gap: '12px' },
76
+ * // Self-scrolling container (virtualizer is its own scroller)
77
+ * html`<div>
78
+ * ${virtualList(
79
+ * items,
80
+ * (item) => html`<div>${item.name}</div>`,
81
+ * { scroller: true },
133
82
  * )}
134
83
  * </div>`
135
84
  * ```
136
85
  */
137
- export declare function virtualGrid<T>(items: readonly T[], template: VirtualItemTemplate<T>, options: VirtualGridOptions): unknown;
138
- export declare function virtualGrid<T>(items: readonly T[], keyFn: VirtualKeyFn<T>, template: VirtualItemTemplate<T>, options: VirtualGridOptions): unknown;
86
+ export declare function virtualList<T>(items: readonly T[], template: VirtualItemTemplate<T>, options?: VirtualListOptions): unknown;
87
+ export declare function virtualList<T>(items: readonly T[], keyFn: VirtualKeyFn<T>, template: VirtualItemTemplate<T>, options?: VirtualListOptions): unknown;
139
88
  export interface VirtualMasonryOptions {
140
89
  /**
141
90
  * A function that returns the aspect ratio (width / height) of each item.
142
- * This is used by the masonry layout to compute item heights based on column
143
- * width. Required.
91
+ * Used by the masonry layout to compute item heights from the column width.
92
+ * Required.
144
93
  */
145
94
  getAspectRatio: (item: unknown) => number;
146
95
  /**
147
- * Item size (column width) as a CSS pixel string, e.g. `'300px'`.
148
- * The masonry layout derives height from the aspect ratio, so only one
149
- * dimension is needed. Defaults to `'300px'`.
96
+ * Column width as a CSS pixel string, e.g. `'300px'`.
97
+ * Height is derived from the aspect ratio.
98
+ * Defaults to `'300px'`.
150
99
  */
151
100
  itemSize?: `${number}px` | "0";
152
101
  /**
@@ -172,10 +121,9 @@ export interface VirtualMasonryOptions {
172
121
  /**
173
122
  * `virtualMasonry` — virtualised masonry grid with variable item heights.
174
123
  *
175
- * Positions are computed automatically using the lit virtualizer's MasonryLayout,
176
- * which places items in the shortest column (greedy algorithm). Provide
177
- * `getAspectRatio` to let the layout derive each item's height from its
178
- * column width.
124
+ * Items are placed into the shortest column (greedy algorithm). Provide
125
+ * `getAspectRatio` so the layout can derive each item's height from its
126
+ * column width without measuring.
179
127
  *
180
128
  * @example
181
129
  * ```ts
@@ -188,8 +136,8 @@ export interface VirtualMasonryOptions {
188
136
  * style="width:100%;height:100%;object-fit:cover;border-radius:8px" />
189
137
  * `,
190
138
  * {
191
- * getAspectRatio: (p) => p.width / p.height,
192
- * itemWidth: '220px',
139
+ * getAspectRatio: (p) => (p as Photo).width / (p as Photo).height,
140
+ * itemSize: '220px',
193
141
  * gap: '12px',
194
142
  * },
195
143
  * )}
@@ -1 +1 @@
1
- {"version":3,"file":"mates-adapter.d.ts","sourceRoot":"","sources":["../../lib/virtualizer/mates-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mates-adapter.d.ts","sourceRoot":"","sources":["../../lib/virtualizer/mates-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAS3D,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,cAAc,CAAC;AAChF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAIvC,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,GAAG,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,qBAAqB,CAAA;KAAE,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;AACX,wBAAgB,WAAW,CAAC,CAAC,EAC3B,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC;AA6BX,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,GAAG,MAAM,IAAI,GAAG,GAAG,CAAC;IAC/B;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,GAAG,GAAG,MAAM,MAAM,MAAM,IAAI,CAAC;IAChD;;OAEG;IACH,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,GAAG,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,qBAAqB,CAAA;KAAE,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC;AACX,wBAAgB,cAAc,CAAC,CAAC,EAC9B,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mates",
3
- "version": "0.2.4",
3
+ "version": "0.3.0-beta.2",
4
4
  "type": "module",
5
5
  "description": "Mates is a front end framework for building web applications",
6
6
  "main": "dist/index.esm.js",
@@ -1,62 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2021 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- *
6
- * Forked from @lit-labs/virtualizer and integrated into Mates.
7
- * Replaces 'lit' / LitElement dependency with lit-html.
8
- */
9
- import type { KeyFn } from "lit-html/directives/repeat.js";
10
- import type { LayoutConfigValue } from "./layouts/shared/Layout.js";
11
- import { type RenderItemFunction } from "./virtualize.js";
12
- /**
13
- * LitVirtualizer — a plain HTMLElement-based virtualizer host.
14
- *
15
- * Replaces the LitElement-based original so that mates (which only depends on
16
- * lit-html, not the full lit package) can use it without pulling in LitElement.
17
- *
18
- * Usage mirrors the original:
19
- * - Set `.items`, `.renderItem`, `.layout`, `.scroller` as properties.
20
- * - Call `.element(index).scrollIntoView(...)` to scroll a virtual item into view.
21
- * - Await `.layoutComplete` to know when the layout has settled.
22
- */
23
- export declare class LitVirtualizer<T = unknown> extends HTMLElement {
24
- private _items;
25
- private _renderItem;
26
- private _keyFunction;
27
- private _layout;
28
- private _scroller;
29
- private _connected;
30
- get items(): T[];
31
- set items(value: T[]);
32
- get renderItem(): RenderItemFunction<T>;
33
- set renderItem(value: RenderItemFunction<T>);
34
- get keyFunction(): KeyFn<T>;
35
- set keyFunction(value: KeyFn<T>);
36
- get layout(): LayoutConfigValue;
37
- set layout(value: LayoutConfigValue);
38
- get scroller(): boolean;
39
- set scroller(value: boolean);
40
- connectedCallback(): void;
41
- disconnectedCallback(): void;
42
- static get observedAttributes(): string[];
43
- attributeChangedCallback(name: string, _old: string | null, next: string | null): void;
44
- private _renderPending;
45
- private _requestRender;
46
- private _doRender;
47
- /**
48
- * Returns a proxy for the child element at `index` (whether or not it is
49
- * currently in the DOM) that exposes `scrollIntoView()`.
50
- */
51
- element(index: number): import("./Virtualizer.js").VirtualizerChildElementProxy | undefined;
52
- /**
53
- * Resolves when the current layout cycle has fully settled.
54
- */
55
- get layoutComplete(): Promise<void> | undefined;
56
- /**
57
- * Scroll to the item at `index`, placing it at `position` within the viewport.
58
- * @deprecated Use `.element(index).scrollIntoView(...)` instead.
59
- */
60
- scrollToIndex(index: number, position?: "start" | "center" | "end" | "nearest"): void;
61
- }
62
- //# sourceMappingURL=LitVirtualizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LitVirtualizer.d.ts","sourceRoot":"","sources":["../../lib/virtualizer/LitVirtualizer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAGL,KAAK,kBAAkB,EAIxB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;GAUG;AACH,qBAAa,cAAc,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,WAAW;IAC1D,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,WAAW,CAC0B;IAC7C,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAI3B,IAAI,KAAK,IAAI,CAAC,EAAE,CAEf;IACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAGnB;IAED,IAAI,UAAU,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAEtC;IACD,IAAI,UAAU,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAG1C;IAED,IAAI,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,CAE1B;IACD,IAAI,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAG9B;IAED,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAGlC;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAQ1B;IAID,iBAAiB;IAKjB,oBAAoB;IAIpB,MAAM,KAAK,kBAAkB,aAE5B;IAED,wBAAwB,CACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI;IAUrB,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,SAAS;IAcjB;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM;IAMrB;;OAEG;IACH,IAAI,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAG9C;IAED;;;OAGG;IACH,aAAa,CACX,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAmB;CAI7D"}
@@ -1,65 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2021 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
- import type { ChildMeasurements, ItemBox, LayoutHostSink, MeasureChildFunction, Positions, Size } from "./shared/Layout.js";
7
- import { type GapSpec, SizeGapPaddingBaseLayout, type SizeGapPaddingBaseLayoutConfig } from "./shared/SizeGapPaddingBaseLayout.js";
8
- interface FlexWrapLayoutConfig extends SizeGapPaddingBaseLayoutConfig {
9
- gap?: GapSpec;
10
- }
11
- type FlexWrapLayoutSpecifier = FlexWrapLayoutConfig & {
12
- type: new (hostSink: LayoutHostSink, config?: FlexWrapLayoutConfig) => FlexWrapLayout;
13
- };
14
- type FlexWrapLayoutSpecifierFactory = (config?: FlexWrapLayoutConfig) => FlexWrapLayoutSpecifier;
15
- export declare const layout1dFlex: FlexWrapLayoutSpecifierFactory;
16
- interface Rolumn {
17
- _startIdx: number;
18
- _endIdx: number;
19
- _startPos: number;
20
- _size: number;
21
- }
22
- interface Chunk {
23
- _itemPositions: Array<Positions>;
24
- _rolumns: Array<Rolumn>;
25
- _size: number;
26
- _dirty: boolean;
27
- }
28
- /**
29
- * TODO @straversi: document and test this Layout.
30
- */
31
- export declare class FlexWrapLayout extends SizeGapPaddingBaseLayout<FlexWrapLayoutConfig> {
32
- private _itemSizes;
33
- private _chunkLength;
34
- private _chunks;
35
- private _chunkSizeCache;
36
- private _rolumnSizeCache;
37
- private _rolumnLengthCache;
38
- private _aspectRatios;
39
- private _numberOfAspectRatiosMeasured;
40
- listenForChildLoadEvents: boolean;
41
- set gap(spec: GapSpec);
42
- /**
43
- * TODO graynorton@ Don't hard-code Flickr - probably need a config option
44
- */
45
- measureChildren: MeasureChildFunction;
46
- updateItemSizes(sizes: ChildMeasurements): void;
47
- _newChunk(): {
48
- _rolumns: never[];
49
- _itemPositions: never[];
50
- _size: number;
51
- _dirty: boolean;
52
- };
53
- _getChunk(idx: number | string): Chunk;
54
- _recordAspectRatio(dims: ItemBox): void;
55
- _getRandomAspectRatio(): Size;
56
- _getActiveItems(): void;
57
- _getItemPosition(idx: number): Positions;
58
- _getItemSize(idx: number): Size;
59
- _getNaturalItemDims(idx: number): Size;
60
- _layOutChunk(startIdx: number, endIdx: number): Chunk;
61
- _updateLayout(): void;
62
- _updateScrollSize(): void;
63
- }
64
- export {};
65
- //# sourceMappingURL=flexWrap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flexWrap.d.ts","sourceRoot":"","sources":["../../../lib/virtualizer/layouts/flexWrap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,IAAI,EACL,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,OAAO,EACZ,wBAAwB,EACxB,KAAK,8BAA8B,EACpC,MAAM,sCAAsC,CAAC;AAE9C,UAAU,oBAAqB,SAAQ,8BAA8B;IACnE,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,KAAK,uBAAuB,GAAG,oBAAoB,GAAG;IACpD,IAAI,EAAE,KACJ,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,oBAAoB,KAC1B,cAAc,CAAC;CACrB,CAAC;AAEF,KAAK,8BAA8B,GAAG,CACpC,MAAM,CAAC,EAAE,oBAAoB,KAC1B,uBAAuB,CAAC;AAE7B,eAAO,MAAM,YAAY,EAAE,8BAQxB,CAAC;AAEJ,UAAU,MAAM;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,KAAK;IACb,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AAeD;;GAEG;AACH,qBAAa,cAAe,SAAQ,wBAAwB,CAAC,oBAAoB,CAAC;IAChF,OAAO,CAAC,UAAU,CAAmB;IAIrC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,kBAAkB,CAA8C;IAExE,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,6BAA6B,CAAK;IAG1C,wBAAwB,UAAQ;IAEhC,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAEpB;IAED;;OAEG;IACH,eAAe,EAAE,oBAAoB,CAUnC;IAEF,eAAe,CAAC,KAAK,EAAE,iBAAiB;IAyBxC,SAAS;;;;;;IAST,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAO9B,kBAAkB,CAAC,IAAI,EAAE,OAAO;IAYhC,qBAAqB,IAAI,IAAI;IAkB7B,eAAe;IAwCf,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAKxC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM/B,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAYtC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IA+D7C,aAAa,IAAI,IAAI;IAoBrB,iBAAiB;CAQlB"}
@@ -1,25 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2021 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
- import { GridBaseLayout, type GridBaseLayoutConfig } from "./shared/GridBaseLayout.js";
7
- import type { LayoutHostSink, Positions, Size } from "./shared/Layout.js";
8
- type GridLayoutSpecifier = GridBaseLayoutConfig & {
9
- type: new (hostSink: LayoutHostSink, config?: GridBaseLayoutConfig) => GridLayout;
10
- };
11
- type GridLayoutSpecifierFactory = (config?: GridBaseLayoutConfig) => GridLayoutSpecifier;
12
- export declare const grid: GridLayoutSpecifierFactory;
13
- export declare class GridLayout extends GridBaseLayout<GridBaseLayoutConfig> {
14
- /**
15
- * Returns the average size (precise or estimated) of an item in the scrolling direction,
16
- * including any surrounding space.
17
- */
18
- protected get _delta(): number;
19
- protected _getItemSize(_idx: number): Size;
20
- _getActiveItems(): void;
21
- _getItemPosition(idx: number): Positions;
22
- _updateScrollSize(): void;
23
- }
24
- export {};
25
- //# sourceMappingURL=grid.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../lib/virtualizer/layouts/grid.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1E,KAAK,mBAAmB,GAAG,oBAAoB,GAAG;IAChD,IAAI,EAAE,KACJ,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,oBAAoB,KAC1B,UAAU,CAAC;CACjB,CAAC;AAEF,KAAK,0BAA0B,GAAG,CAChC,MAAM,CAAC,EAAE,oBAAoB,KAC1B,mBAAmB,CAAC;AAEzB,eAAO,MAAM,IAAI,EAAE,0BAQhB,CAAC;AAEJ,qBAAa,UAAW,SAAQ,cAAc,CAAC,oBAAoB,CAAC;IAClE;;;OAGG;IACH,SAAS,KAAK,MAAM,WAEnB;IAED,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO1C,eAAe;IA+Bf,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAYxC,iBAAiB;CAUlB"}
@@ -1,23 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2021 Google LLC
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- *
6
- * Forked from @lit-labs/virtualizer and integrated into Mates.
7
- * Replaces the full 'lit' package dependency with lit-html.
8
- */
9
- import { LitVirtualizer } from "./LitVirtualizer.js";
10
- export { LitVirtualizer };
11
- export { RangeChangedEvent, UnpinnedEvent, VisibilityChangedEvent, } from "./events.js";
12
- export { flow } from "./layouts/flow.js";
13
- export { grid } from "./layouts/grid.js";
14
- export { masonry } from "./layouts/masonry.js";
15
- export type { VirtualizerHostElement } from "./Virtualizer.js";
16
- export type { RenderItemFunction, VirtualizeDirectiveConfig, } from "./virtualize.js";
17
- export { virtualize, virtualizerRef } from "./virtualize.js";
18
- declare global {
19
- interface HTMLElementTagNameMap {
20
- "lit-virtualizer": LitVirtualizer;
21
- }
22
- }
23
- //# sourceMappingURL=lit-virtualizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lit-virtualizer.d.ts","sourceRoot":"","sources":["../../lib/virtualizer/lit-virtualizer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,YAAY,EACV,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAU7D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,cAAc,CAAC;KACnC;CACF"}