@fusion.dev/helix 0.5.0 → 0.6.0

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.
@@ -98849,7 +98849,7 @@
98849
98849
  "text": "number"
98850
98850
  },
98851
98851
  "default": "32",
98852
- "description": "How tall one row is, in pixels, used to map scroll offset to an index.",
98852
+ "description": "How tall one row is, in pixels, used to map scroll offset to an index.\n\nAn estimate rather than a measurement while `measured` is off, which is\nright whenever the rows really are one height and is the cheaper of the two.",
98853
98853
  "attribute": "estimate",
98854
98854
  "inheritedFrom": {
98855
98855
  "name": "HelixHeadlessVirtualList",
@@ -98884,6 +98884,20 @@
98884
98884
  "module": "src/virtual-list/root/virtual-list-root.ts"
98885
98885
  }
98886
98886
  },
98887
+ {
98888
+ "kind": "field",
98889
+ "name": "measured",
98890
+ "type": {
98891
+ "text": "boolean"
98892
+ },
98893
+ "default": "false",
98894
+ "description": "Places rows by what they came to rather than by `estimate`.\n\n**Off by default, because the straight line is better when it holds.** One\nestimate makes offset and index convert by division, which can never\ndisagree with itself; measuring is what a set of genuinely different\nheights needs and costs a read of each row as it renders. A list of\none-line rows should leave this alone.",
98895
+ "attribute": "measured",
98896
+ "inheritedFrom": {
98897
+ "name": "HelixHeadlessVirtualList",
98898
+ "module": "src/virtual-list/root/virtual-list-root.ts"
98899
+ }
98900
+ },
98887
98901
  {
98888
98902
  "kind": "field",
98889
98903
  "name": "rows",
@@ -98903,7 +98917,22 @@
98903
98917
  "name": "virtualize",
98904
98918
  "privacy": "private",
98905
98919
  "readonly": true,
98906
- "default": "new VirtualizeController(this, { container: () => this.renderRoot.querySelector<HTMLElement>('[part=\"viewport\"]'), count: () => this.rows.length, estimate: () => this.estimate, })",
98920
+ "default": "new VirtualizeController(this, { container: () => this.renderRoot.querySelector<HTMLElement>('[part=\"viewport\"]'), count: () => this.rows.length, estimate: () => this.estimate, measured: () => this.measured, rows: () => this.drawn(), })",
98921
+ "inheritedFrom": {
98922
+ "name": "HelixHeadlessVirtualList",
98923
+ "module": "src/virtual-list/root/virtual-list-root.ts"
98924
+ }
98925
+ },
98926
+ {
98927
+ "kind": "method",
98928
+ "name": "drawn",
98929
+ "privacy": "private",
98930
+ "return": {
98931
+ "type": {
98932
+ "text": "{ element: HTMLElement; index: number }[]"
98933
+ }
98934
+ },
98935
+ "description": "The rows in the tree, each with the item it drew.\n\n**Read off `data-index` rather than counted**, because what is in the tree\nwhen the controller asks is what `place` appended on the *previous* pass:\n`hostUpdated` runs before `updated`, so counting from the current window\nwould record the right heights against the wrong items every time the\nwindow moved.",
98907
98936
  "inheritedFrom": {
98908
98937
  "name": "HelixHeadlessVirtualList",
98909
98938
  "module": "src/virtual-list/root/virtual-list-root.ts"
@@ -99142,7 +99171,7 @@
99142
99171
  "text": "number"
99143
99172
  },
99144
99173
  "default": "32",
99145
- "description": "How tall one row is, in pixels, used to map scroll offset to an index.",
99174
+ "description": "How tall one row is, in pixels, used to map scroll offset to an index.\n\nAn estimate rather than a measurement while `measured` is off, which is\nright whenever the rows really are one height and is the cheaper of the two.",
99146
99175
  "fieldName": "estimate",
99147
99176
  "inheritedFrom": {
99148
99177
  "name": "HelixHeadlessVirtualList",
@@ -99174,6 +99203,19 @@
99174
99203
  "name": "HelixHeadlessVirtualList",
99175
99204
  "module": "src/virtual-list/root/virtual-list-root.ts"
99176
99205
  }
99206
+ },
99207
+ {
99208
+ "name": "measured",
99209
+ "type": {
99210
+ "text": "boolean"
99211
+ },
99212
+ "default": "false",
99213
+ "description": "Places rows by what they came to rather than by `estimate`.\n\n**Off by default, because the straight line is better when it holds.** One\nestimate makes offset and index convert by division, which can never\ndisagree with itself; measuring is what a set of genuinely different\nheights needs and costs a read of each row as it renders. A list of\none-line rows should leave this alone.",
99214
+ "fieldName": "measured",
99215
+ "inheritedFrom": {
99216
+ "name": "HelixHeadlessVirtualList",
99217
+ "module": "src/virtual-list/root/virtual-list-root.ts"
99218
+ }
99177
99219
  }
99178
99220
  ],
99179
99221
  "modulePath": "src/virtual-list/root/virtual-list-root.ts",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix",
3
3
  "description": "Styled component tier. Extends the headless tier with token-driven presentation.",
4
- "version": "0.5.0",
4
+ "version": "0.6.0",
5
5
  "license": "MIT",
6
6
  "author": "Ross Sheppard <ross.sheppard@fusion.dev>",
7
7
  "repository": {
@@ -46,14 +46,14 @@
46
46
  },
47
47
  "bugs": "https://github.com/project-fusion/fusion/issues",
48
48
  "dependencies": {
49
- "@fusion.dev/helix-core": "0.5.0",
50
- "@fusion.dev/helix-headless": "0.5.0",
51
- "@fusion.dev/helix-styles": "0.5.0"
49
+ "@fusion.dev/helix-core": "0.6.0",
50
+ "@fusion.dev/helix-headless": "0.6.0",
51
+ "@fusion.dev/helix-styles": "0.6.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@custom-elements-manifest/analyzer": "^0.11.0",
55
- "@fusion.dev/helix-cem": "0.5.0",
56
- "@fusion.dev/helix-testing": "0.5.0",
55
+ "@fusion.dev/helix-cem": "0.6.0",
56
+ "@fusion.dev/helix-testing": "0.6.0",
57
57
  "@fusion.dev/scripts": "0.0.0-dev",
58
58
  "@happy-dom/global-registrator": "^20.0.0",
59
59
  "@lit-labs/ssr": "^3.3.0",
package/types/jsx.d.ts CHANGED
@@ -17890,21 +17890,43 @@ past the end is the one write the platform answers with an exception. */
17890
17890
  };
17891
17891
 
17892
17892
  export type HelixVirtualListProps = {
17893
- /** How tall one row is, in pixels, used to map scroll offset to an index. */
17893
+ /** How tall one row is, in pixels, used to map scroll offset to an index.
17894
+
17895
+ An estimate rather than a measurement while `measured` is off, which is
17896
+ right whenever the rows really are one height and is the cheaper of the two. */
17894
17897
  estimate?: (HelixVirtualList["estimate"]) | undefined;
17895
17898
  /** Id of the element holding the rows, as JSON in a script. */
17896
17899
  for?: (HelixVirtualList["for"]) | undefined;
17897
17900
  /** What the list is called, since the rendered rows are only a window on it. */
17898
17901
  label?: (HelixVirtualList["label"]) | undefined;
17902
+ /** Places rows by what they came to rather than by `estimate`.
17903
+
17904
+ **Off by default, because the straight line is better when it holds.** One
17905
+ estimate makes offset and index convert by division, which can never
17906
+ disagree with itself; measuring is what a set of genuinely different
17907
+ heights needs and costs a read of each row as it renders. A list of
17908
+ one-line rows should leave this alone. */
17909
+ measured?: (HelixVirtualList["measured"]) | undefined;
17899
17910
  };
17900
17911
 
17901
17912
  export type HelixVirtualListSolidJsProps = {
17902
- /** How tall one row is, in pixels, used to map scroll offset to an index. */
17913
+ /** How tall one row is, in pixels, used to map scroll offset to an index.
17914
+
17915
+ An estimate rather than a measurement while `measured` is off, which is
17916
+ right whenever the rows really are one height and is the cheaper of the two. */
17903
17917
  "prop:estimate"?: (HelixVirtualList["estimate"]) | undefined;
17904
17918
  /** Id of the element holding the rows, as JSON in a script. */
17905
17919
  "prop:for"?: (HelixVirtualList["for"]) | undefined;
17906
17920
  /** What the list is called, since the rendered rows are only a window on it. */
17907
17921
  "prop:label"?: (HelixVirtualList["label"]) | undefined;
17922
+ /** Places rows by what they came to rather than by `estimate`.
17923
+
17924
+ **Off by default, because the straight line is better when it holds.** One
17925
+ estimate makes offset and index convert by division, which can never
17926
+ disagree with itself; measuring is what a set of genuinely different
17927
+ heights needs and costs a read of each row as it renders. A list of
17928
+ one-line rows should leave this alone. */
17929
+ "prop:measured"?: (HelixVirtualList["measured"]) | undefined;
17908
17930
 
17909
17931
  /** Set the innerHTML of the element */
17910
17932
  innerHTML?: (string) | undefined;
@@ -33451,8 +33473,18 @@ export type CustomElements = {
33451
33473
  * Component attributes and properties that can be applied to the element or by using JavaScript.
33452
33474
  *
33453
33475
  * - `estimate`: How tall one row is, in pixels, used to map scroll offset to an index.
33476
+ *
33477
+ * An estimate rather than a measurement while `measured` is off, which is
33478
+ * right whenever the rows really are one height and is the cheaper of the two.
33454
33479
  * - `for`: Id of the element holding the rows, as JSON in a script.
33455
33480
  * - `label`: What the list is called, since the rendered rows are only a window on it.
33481
+ * - `measured`: Places rows by what they came to rather than by `estimate`.
33482
+ *
33483
+ * **Off by default, because the straight line is better when it holds.** One
33484
+ * estimate makes offset and index convert by division, which can never
33485
+ * disagree with itself; measuring is what a set of genuinely different
33486
+ * heights needs and costs a read of each row as it renders. A list of
33487
+ * one-line rows should leave this alone.
33456
33488
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
33457
33489
  *
33458
33490
  * **Named `whenSettled` because `settled` is taken four times over**, by
@@ -49411,8 +49443,18 @@ export type CustomElementsSolidJs = {
49411
49443
  * Component attributes and properties that can be applied to the element or by using JavaScript.
49412
49444
  *
49413
49445
  * - `estimate`: How tall one row is, in pixels, used to map scroll offset to an index.
49446
+ *
49447
+ * An estimate rather than a measurement while `measured` is off, which is
49448
+ * right whenever the rows really are one height and is the cheaper of the two.
49414
49449
  * - `for`: Id of the element holding the rows, as JSON in a script.
49415
49450
  * - `label`: What the list is called, since the rendered rows are only a window on it.
49451
+ * - `measured`: Places rows by what they came to rather than by `estimate`.
49452
+ *
49453
+ * **Off by default, because the straight line is better when it holds.** One
49454
+ * estimate makes offset and index convert by division, which can never
49455
+ * disagree with itself; measuring is what a set of genuinely different
49456
+ * heights needs and costs a read of each row as it renders. A list of
49457
+ * one-line rows should leave this alone.
49416
49458
  * - `whenSettled`: Resolves a frame after the first update, when transitions are switched on.
49417
49459
  *
49418
49460
  * **Named `whenSettled` because `settled` is taken four times over**, by
package/types/vue.d.ts CHANGED
@@ -9153,12 +9153,23 @@ export type HelixVideoVueEvents = {
9153
9153
  };
9154
9154
 
9155
9155
  export type HelixVirtualListVueProps = {
9156
- /** How tall one row is, in pixels, used to map scroll offset to an index. */
9156
+ /** How tall one row is, in pixels, used to map scroll offset to an index.
9157
+
9158
+ An estimate rather than a measurement while `measured` is off, which is
9159
+ right whenever the rows really are one height and is the cheaper of the two. */
9157
9160
  estimate?: (HelixVirtualList["estimate"]) | undefined;
9158
9161
  /** Id of the element holding the rows, as JSON in a script. */
9159
9162
  for?: (HelixVirtualList["for"]) | undefined;
9160
9163
  /** What the list is called, since the rendered rows are only a window on it. */
9161
9164
  label?: (HelixVirtualList["label"]) | undefined;
9165
+ /** Places rows by what they came to rather than by `estimate`.
9166
+
9167
+ **Off by default, because the straight line is better when it holds.** One
9168
+ estimate makes offset and index convert by division, which can never
9169
+ disagree with itself; measuring is what a set of genuinely different
9170
+ heights needs and costs a read of each row as it renders. A list of
9171
+ one-line rows should leave this alone. */
9172
+ measured?: (HelixVirtualList["measured"]) | undefined;
9162
9173
  };
9163
9174
 
9164
9175
  export type HelixVirtualListVueEvents = {};