tinybase 8.5.0-beta.3 → 8.5.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.
Files changed (163) hide show
  1. package/@types/ui-react-dom/index.d.ts +10 -10
  2. package/@types/ui-react-dom/with-schemas/index.d.ts +10 -10
  3. package/@types/ui-react-dom-charts/index.d.ts +177 -44
  4. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +187 -48
  5. package/@types/ui-react-inspector/index.d.ts +1 -1
  6. package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
  7. package/@types/ui-solid-dom/index.d.ts +10 -10
  8. package/@types/ui-solid-dom/with-schemas/index.d.ts +10 -10
  9. package/@types/ui-solid-inspector/index.d.ts +1 -1
  10. package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
  11. package/@types/ui-svelte-dom/index.d.ts +10 -10
  12. package/@types/ui-svelte-dom/with-schemas/index.d.ts +10 -10
  13. package/@types/ui-svelte-inspector/index.d.ts +1 -1
  14. package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
  15. package/common/index.js +1 -1
  16. package/common/with-schemas/index.js +1 -1
  17. package/index.js +3 -2
  18. package/mergeable-store/index.js +3 -2
  19. package/mergeable-store/with-schemas/index.js +3 -2
  20. package/min/index.js +1 -1
  21. package/min/index.js.gz +0 -0
  22. package/min/mergeable-store/index.js +1 -1
  23. package/min/mergeable-store/index.js.gz +0 -0
  24. package/min/mergeable-store/with-schemas/index.js +1 -1
  25. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  26. package/min/omni/index.js +1 -1
  27. package/min/omni/index.js.gz +0 -0
  28. package/min/omni/with-schemas/index.js +1 -1
  29. package/min/omni/with-schemas/index.js.gz +0 -0
  30. package/min/persisters/index.js +1 -1
  31. package/min/persisters/index.js.gz +0 -0
  32. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  33. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  34. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  35. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  36. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  37. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  38. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  39. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  40. package/min/persisters/persister-electric-sql/index.js +1 -1
  41. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  42. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  45. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  46. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-libsql/index.js +1 -1
  49. package/min/persisters/persister-libsql/index.js.gz +0 -0
  50. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-pglite/index.js +1 -1
  53. package/min/persisters/persister-pglite/index.js.gz +0 -0
  54. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-postgres/index.js +1 -1
  57. package/min/persisters/persister-postgres/index.js.gz +0 -0
  58. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-powersync/index.js +1 -1
  61. package/min/persisters/persister-powersync/index.js.gz +0 -0
  62. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  65. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  66. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-remote/index.js +1 -1
  69. package/min/persisters/persister-remote/index.js.gz +0 -0
  70. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  73. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  74. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  77. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  78. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-sqlite3/index.js +1 -1
  81. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  82. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/with-schemas/index.js +1 -1
  85. package/min/persisters/with-schemas/index.js.gz +0 -0
  86. package/min/synchronizers/index.js +1 -1
  87. package/min/synchronizers/index.js.gz +0 -0
  88. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  89. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  90. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  91. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  92. package/min/synchronizers/synchronizer-local/index.js +1 -1
  93. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  94. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  95. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  96. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  97. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  98. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  99. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  100. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  101. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  102. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  103. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  104. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  105. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  106. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  107. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  108. package/min/synchronizers/with-schemas/index.js +1 -1
  109. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  110. package/min/ui-react-dom-charts/index.js +1 -1
  111. package/min/ui-react-dom-charts/index.js.gz +0 -0
  112. package/min/ui-react-dom-charts/with-schemas/index.js +1 -1
  113. package/min/ui-react-dom-charts/with-schemas/index.js.gz +0 -0
  114. package/min/with-schemas/index.js +1 -1
  115. package/min/with-schemas/index.js.gz +0 -0
  116. package/omni/index.js +7 -6
  117. package/omni/with-schemas/index.js +7 -6
  118. package/package.json +4 -4
  119. package/persisters/index.js +1 -1
  120. package/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  121. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  122. package/persisters/persister-durable-object-sql-storage/index.js +1 -1
  123. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  124. package/persisters/persister-electric-sql/index.js +1 -1
  125. package/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  126. package/persisters/persister-expo-sqlite/index.js +1 -1
  127. package/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  128. package/persisters/persister-libsql/index.js +1 -1
  129. package/persisters/persister-libsql/with-schemas/index.js +1 -1
  130. package/persisters/persister-pglite/index.js +1 -1
  131. package/persisters/persister-pglite/with-schemas/index.js +1 -1
  132. package/persisters/persister-postgres/index.js +1 -1
  133. package/persisters/persister-postgres/with-schemas/index.js +1 -1
  134. package/persisters/persister-powersync/index.js +1 -1
  135. package/persisters/persister-powersync/with-schemas/index.js +1 -1
  136. package/persisters/persister-react-native-sqlite/index.js +1 -1
  137. package/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  138. package/persisters/persister-remote/index.js +3 -3
  139. package/persisters/persister-remote/with-schemas/index.js +3 -3
  140. package/persisters/persister-sqlite-bun/index.js +1 -1
  141. package/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  142. package/persisters/persister-sqlite-wasm/index.js +1 -1
  143. package/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  144. package/persisters/persister-sqlite3/index.js +1 -1
  145. package/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  146. package/persisters/with-schemas/index.js +1 -1
  147. package/readme.md +14 -14
  148. package/releases.md +57 -57
  149. package/synchronizers/index.js +2 -1
  150. package/synchronizers/synchronizer-broadcast-channel/index.js +2 -1
  151. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +2 -1
  152. package/synchronizers/synchronizer-local/index.js +2 -1
  153. package/synchronizers/synchronizer-local/with-schemas/index.js +2 -1
  154. package/synchronizers/synchronizer-ws-client/index.js +2 -1
  155. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +2 -1
  156. package/synchronizers/synchronizer-ws-server/index.js +2 -1
  157. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +2 -1
  158. package/synchronizers/synchronizer-ws-server-durable-object/index.js +2 -1
  159. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +2 -1
  160. package/synchronizers/with-schemas/index.js +2 -1
  161. package/ui-react-dom-charts/index.js +688 -324
  162. package/ui-react-dom-charts/with-schemas/index.js +688 -324
  163. package/with-schemas/index.js +3 -2
@@ -135,9 +135,10 @@ export type BindingProps<
135
135
  > = {
136
136
  /**
137
137
  * The Id of the Cell that provides each data point's x value. Finite numbers
138
- * can be used as continuous x values in line charts, while strings and
139
- * booleans are used as category values. Boolean category labels are rendered
140
- * as `true` and `false`.
138
+ * can be used as continuous linear x values in line charts, ISO date strings
139
+ * can be used as time x values, and other strings and booleans are used as
140
+ * category values. Boolean category labels are rendered as `true` and
141
+ * `false`.
141
142
  * @category Prop
142
143
  * @since v8.5.0
143
144
  */
@@ -193,9 +194,10 @@ export type SeriesProps<CellId extends Id = Id> = {
193
194
  readonly className?: string;
194
195
  /**
195
196
  * The Id of the Cell that provides each data point's x value. Finite numbers
196
- * can be used as continuous x values in line series, while strings and
197
- * booleans are used as category values. Boolean category labels are rendered
198
- * as `true` and `false`.
197
+ * can be used as continuous linear x values in line series, ISO date strings
198
+ * can be used as time x values, and other strings and booleans are used as
199
+ * category values. Boolean category labels are rendered as `true` and
200
+ * `false`.
199
201
  * @category Prop
200
202
  * @since v8.5.0
201
203
  */
@@ -242,16 +244,35 @@ export type SeriesProps<CellId extends Id = Id> = {
242
244
  };
243
245
 
244
246
  /**
245
- * The XAxisProps type describes the props that configure the x axis of a
246
- * CartesianChart component.
247
- *
248
- * The x axis is inferred by default. Use an XAxis component child when you want
249
- * to override its title, numeric bounds, tick values, tick count, tick labels,
250
- * or SVG class name.
247
+ * The XAxisScale type describes how x-axis values should be interpreted:
248
+ * `auto`, `category`, `linear`, or `time`.
249
+ * @category Configuration
250
+ * @since v8.5.0
251
+ */
252
+ export type XAxisScale = 'auto' | 'category' | 'linear' | 'time';
253
+
254
+ /**
255
+ * The TimestampUnit type describes the unit used by numeric timestamp values on
256
+ * a time x axis: `millisecond` or `second`.
257
+ * @category Configuration
258
+ * @since v8.5.0
259
+ */
260
+ export type TimestampUnit = 'millisecond' | 'second';
261
+
262
+ /**
263
+ * The TimeValue type describes values that can be used for explicit bounds and
264
+ * ticks on a time x axis: numbers, ISO date strings, or Date objects.
265
+ * @category Configuration
266
+ * @since v8.5.0
267
+ */
268
+ export type TimeValue = number | string | Date;
269
+
270
+ /**
271
+ * The BaseXAxisProps type describes props shared by all x-axis configurations.
251
272
  * @category Configuration
252
273
  * @since v8.5.0
253
274
  */
254
- export type XAxisProps = {
275
+ export type BaseXAxisProps = {
255
276
  /**
256
277
  * An optional string that will be added to the class attribute of the x-axis
257
278
  * SVG group element.
@@ -267,7 +288,43 @@ export type XAxisProps = {
267
288
  */
268
289
  readonly title?: string;
269
290
  /**
270
- * An optional minimum x-axis bound for continuous numeric x values.
291
+ * An optional preferred number of ticks to render on a continuous x axis.
292
+ *
293
+ * The actual number of ticks may vary so that labels remain readable.
294
+ * @category Prop
295
+ * @since v8.5.0
296
+ */
297
+ readonly tickCount?: number;
298
+ };
299
+
300
+ /**
301
+ * The LinearXAxisProps type describes x-axis configuration for automatically
302
+ * inferred, categorical, and linear axes.
303
+ * @category Configuration
304
+ * @since v8.5.0
305
+ */
306
+ export type LinearXAxisProps = BaseXAxisProps & {
307
+ /**
308
+ * An optional scale to use for the x axis.
309
+ *
310
+ * The default `auto` scale infers linear axes from numeric line-series x
311
+ * values, time axes from ISO date strings, and category axes otherwise. Use
312
+ * `time` explicitly for numeric Unix timestamp values.
313
+ * @category Prop
314
+ * @since v8.5.0
315
+ */
316
+ readonly scale?: 'auto' | 'category' | 'linear';
317
+ /**
318
+ * The unit for numeric timestamp values on a time x axis.
319
+ *
320
+ * This prop is ignored unless the scale prop is `time`, and defaults to
321
+ * `millisecond`.
322
+ * @category Prop
323
+ * @since v8.5.0
324
+ */
325
+ readonly timestampUnit?: never;
326
+ /**
327
+ * An optional minimum x-axis bound for continuous numeric or time x values.
271
328
  *
272
329
  * This prop is ignored when the x axis is categorical.
273
330
  * @category Prop
@@ -275,7 +332,7 @@ export type XAxisProps = {
275
332
  */
276
333
  readonly min?: number;
277
334
  /**
278
- * An optional maximum x-axis bound for continuous numeric x values.
335
+ * An optional maximum x-axis bound for continuous numeric or time x values.
279
336
  *
280
337
  * This prop is ignored when the x axis is categorical.
281
338
  * @category Prop
@@ -283,7 +340,7 @@ export type XAxisProps = {
283
340
  */
284
341
  readonly max?: number;
285
342
  /**
286
- * Optional numeric tick values to use for a continuous x axis.
343
+ * Optional tick values to use for a continuous numeric or time x axis.
287
344
  *
288
345
  * This prop is ignored when the x axis is categorical.
289
346
  * @category Prop
@@ -291,24 +348,90 @@ export type XAxisProps = {
291
348
  */
292
349
  readonly ticks?: readonly number[];
293
350
  /**
294
- * An optional preferred number of ticks to render on a continuous x axis.
351
+ * An optional function for formatting x-axis tick labels.
295
352
  *
296
- * The actual number of ticks may vary so that labels remain readable.
353
+ * It receives the original tick value for category axes, the numeric tick
354
+ * value for linear axes, or a Date object for time axes. For time axes, the
355
+ * normalized epoch millisecond timestamp is provided as a second argument.
297
356
  * @category Prop
298
357
  * @since v8.5.0
299
358
  */
300
- readonly tickCount?: number;
359
+ readonly tickFormatter?: (tick: boolean | number | string) => string;
360
+ };
361
+
362
+ /**
363
+ * The TimeXAxisProps type describes x-axis configuration for time axes.
364
+ * @category Configuration
365
+ * @since v8.5.0
366
+ */
367
+ export type TimeXAxisProps = BaseXAxisProps & {
368
+ /**
369
+ * An optional scale to use for the x axis.
370
+ *
371
+ * The default `auto` scale infers linear axes from numeric line-series x
372
+ * values, time axes from ISO date strings, and category axes otherwise. Use
373
+ * `time` explicitly for numeric Unix timestamp values.
374
+ * @category Prop
375
+ * @since v8.5.0
376
+ */
377
+ readonly scale: 'time';
378
+ /**
379
+ * The unit for numeric timestamp values on a time x axis.
380
+ *
381
+ * This prop is ignored unless the scale prop is `time`, and defaults to
382
+ * `millisecond`.
383
+ * @category Prop
384
+ * @since v8.5.0
385
+ */
386
+ readonly timestampUnit?: TimestampUnit;
387
+ /**
388
+ * An optional minimum x-axis bound for continuous numeric or time x values.
389
+ *
390
+ * This prop is ignored when the x axis is categorical.
391
+ * @category Prop
392
+ * @since v8.5.0
393
+ */
394
+ readonly min?: TimeValue;
395
+ /**
396
+ * An optional maximum x-axis bound for continuous numeric or time x values.
397
+ *
398
+ * This prop is ignored when the x axis is categorical.
399
+ * @category Prop
400
+ * @since v8.5.0
401
+ */
402
+ readonly max?: TimeValue;
403
+ /**
404
+ * Optional tick values to use for a continuous numeric or time x axis.
405
+ *
406
+ * This prop is ignored when the x axis is categorical.
407
+ * @category Prop
408
+ * @since v8.5.0
409
+ */
410
+ readonly ticks?: readonly TimeValue[];
301
411
  /**
302
412
  * An optional function for formatting x-axis tick labels.
303
413
  *
304
- * It receives the original tick value, which can be a finite number, string,
305
- * or boolean.
414
+ * It receives the original tick value for category axes, the numeric tick
415
+ * value for linear axes, or a Date object for time axes. For time axes, the
416
+ * normalized epoch millisecond timestamp is provided as a second argument.
306
417
  * @category Prop
307
418
  * @since v8.5.0
308
419
  */
309
- readonly tickFormatter?: (tick: boolean | number | string) => string;
420
+ readonly tickFormatter?: (tick: Date, timestamp: number) => string;
310
421
  };
311
422
 
423
+ /**
424
+ * The XAxisProps type describes the props that configure the x axis of a
425
+ * CartesianChart component, LineChart component, or BarChart component.
426
+ *
427
+ * The x axis is inferred by default. Use an XAxis component child when you
428
+ * want to override its title, scale, continuous bounds, tick values, tick
429
+ * count, tick labels, or SVG class name.
430
+ * @category Configuration
431
+ * @since v8.5.0
432
+ */
433
+ export type XAxisProps = LinearXAxisProps | TimeXAxisProps;
434
+
312
435
  /**
313
436
  * The YAxisProps type describes the props that configure the y axis of a
314
437
  * CartesianChart component.
@@ -422,7 +545,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
422
545
  *
423
546
  * See the Composing Charts (React) demo for this component in action:
424
547
  *
425
- * ![CartesianChart component example](https://beta.tinybase.org/shots/composing-charts-react-demo.png
548
+ * ![CartesianChart component example](https://tinybase.org/shots/composing-charts-react-demo.png
426
549
  * "CartesianChart component example")
427
550
  *
428
551
  * The series children declare their own xCellId and yCellId bindings. The
@@ -478,15 +601,16 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
478
601
  };
479
602
 
480
603
  /**
481
- * The XAxis component configures the x axis of a CartesianChart component.
604
+ * The XAxis component configures the x axis of a CartesianChart component,
605
+ * LineChart component, or BarChart component.
482
606
  *
483
607
  * It is a configuration child rather than a separately rendered SVG element:
484
- * include zero or one XAxis component in a CartesianChart component's children.
485
- * If omitted, the x axis is inferred from the chart's series.
608
+ * include zero or one XAxis component in a chart's children. If omitted, the x
609
+ * axis is inferred from the chart's series.
486
610
  *
487
611
  * See the Axis Overrides (React) demo for this component in action:
488
612
  *
489
- * ![XAxis component example](https://beta.tinybase.org/shots/axis-overrides-react-demo.png
613
+ * ![XAxis component example](https://tinybase.org/shots/axis-overrides-react-demo.png
490
614
  * "XAxis component example")
491
615
  * @category Store components
492
616
  * @since v8.5.0
@@ -502,7 +626,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
502
626
  *
503
627
  * See the Axis Overrides (React) demo for this component in action:
504
628
  *
505
- * ![YAxis component example](https://beta.tinybase.org/shots/axis-overrides-react-demo.png
629
+ * ![YAxis component example](https://tinybase.org/shots/axis-overrides-react-demo.png
506
630
  * "YAxis component example")
507
631
  * @category Store components
508
632
  * @since v8.5.0
@@ -512,13 +636,13 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
512
636
  /**
513
637
  * The LineSeries component renders a line series in a CartesianChart component.
514
638
  * If every x value in every series is a finite number, the x axis is rendered
515
- * as a continuous numeric scale. If any x value is a string or boolean, the x
516
- * axis is rendered categorically. When sortCellId is omitted, rows are sorted
517
- * by xCellId.
639
+ * as a continuous linear scale. ISO date strings are inferred as a time scale.
640
+ * Other strings and booleans are rendered categorically. When sortCellId is
641
+ * omitted, rows are sorted by xCellId.
518
642
  *
519
643
  * See the Composing Charts (React) demo for this component in action:
520
644
  *
521
- * ![LineSeries component example](https://beta.tinybase.org/shots/composing-charts-react-demo.png
645
+ * ![LineSeries component example](https://tinybase.org/shots/composing-charts-react-demo.png
522
646
  * "LineSeries component example")
523
647
  * @category Store components
524
648
  * @since v8.5.0
@@ -527,12 +651,14 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
527
651
 
528
652
  /**
529
653
  * The BarSeries component renders a bar series in a CartesianChart component.
530
- * Its x values are always rendered categorically, even when they are finite
531
- * numbers. Boolean category labels are rendered as `true` and `false`.
654
+ * Its x values are rendered categorically by default, even when they are finite
655
+ * numbers. Add an XAxis component with a `linear` or `time` scale to position
656
+ * bars continuously. Boolean category labels are rendered as `true` and
657
+ * `false`.
532
658
  *
533
659
  * See the Composing Charts (React) demo for this component in action:
534
660
  *
535
- * ![BarSeries component example](https://beta.tinybase.org/shots/composing-charts-react-demo.png
661
+ * ![BarSeries component example](https://tinybase.org/shots/composing-charts-react-demo.png
536
662
  * "BarSeries component example")
537
663
  * @category Store components
538
664
  * @since v8.5.0
@@ -541,21 +667,25 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
541
667
 
542
668
  /**
543
669
  * The LineChart component renders a line chart from TinyBase data. If every x
544
- * value is a finite number, the x axis is rendered as a continuous numeric
545
- * scale. If any x value is a string or boolean, the x axis is rendered
546
- * categorically. When sortCellId is omitted, rows are sorted by xCellId.
670
+ * value is a finite number, the x axis is rendered as a continuous linear
671
+ * scale. ISO date strings are inferred as a time scale. Other strings and
672
+ * booleans are rendered categorically. Add XAxis component and YAxis component
673
+ * children to override axis configuration. When sortCellId is omitted, rows are
674
+ * sorted by xCellId.
547
675
  *
548
676
  * This has schema-based typing. The following is a simplified representation:
549
677
  *
550
678
  * ```ts override
551
679
  * LineChart(
552
- * props: (TableSourceProps | QuerySourceProps) & BindingProps & ChartProps,
680
+ * props: (TableSourceProps | QuerySourceProps) &
681
+ * BindingProps &
682
+ * ChartProps & {readonly children?: ReactNode},
553
683
  * ): ComponentReturnType;
554
684
  * ```
555
685
  *
556
686
  * See the <LineChart /> (React) demo for this component in action:
557
687
  *
558
- * ![LineChart component example](https://beta.tinybase.org/shots/basic-chart-react-demo.png "LineChart
688
+ * ![LineChart component example](https://tinybase.org/shots/basic-chart-react-demo.png "LineChart
559
689
  * component example")
560
690
  * @category Store components
561
691
  * @since v8.5.0
@@ -596,26 +726,32 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
596
726
  */
597
727
  LineChart: (
598
728
  props:
599
- | (TableBindingProps<Schemas> & ChartProps)
600
- | (QuerySourceProps<Schemas> & BindingProps & ChartProps),
729
+ | (TableBindingProps<Schemas> &
730
+ ChartProps & {readonly children?: ReactNode})
731
+ | (QuerySourceProps<Schemas> &
732
+ BindingProps &
733
+ ChartProps & {readonly children?: ReactNode}),
601
734
  ) => ComponentReturnType;
602
735
 
603
736
  /**
604
737
  * The BarChart component renders a bar chart from TinyBase data. Its x values
605
- * are always rendered categorically, even when they are finite numbers. Boolean
606
- * category labels are rendered as `true` and `false`.
738
+ * are rendered categorically by default, even when they are finite numbers. Add
739
+ * an XAxis component with a `linear` or `time` scale to position bars
740
+ * continuously. Boolean category labels are rendered as `true` and `false`.
607
741
  *
608
742
  * This has schema-based typing. The following is a simplified representation:
609
743
  *
610
744
  * ```ts override
611
745
  * BarChart(
612
- * props: (TableSourceProps | QuerySourceProps) & BindingProps & ChartProps,
746
+ * props: (TableSourceProps | QuerySourceProps) &
747
+ * BindingProps &
748
+ * ChartProps & {readonly children?: ReactNode},
613
749
  * ): ComponentReturnType;
614
750
  * ```
615
751
  *
616
752
  * See the Sorting And Types (React) demo for this component in action:
617
753
  *
618
- * ![BarChart component example](https://beta.tinybase.org/shots/sorting-and-types-react-demo.png
754
+ * ![BarChart component example](https://tinybase.org/shots/sorting-and-types-react-demo.png
619
755
  * "BarChart component example")
620
756
  * @category Store components
621
757
  * @since v8.5.0
@@ -657,7 +793,10 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
657
793
  */
658
794
  BarChart: (
659
795
  props:
660
- | (TableBindingProps<Schemas> & ChartProps)
661
- | (QuerySourceProps<Schemas> & BindingProps & ChartProps),
796
+ | (TableBindingProps<Schemas> &
797
+ ChartProps & {readonly children?: ReactNode})
798
+ | (QuerySourceProps<Schemas> &
799
+ BindingProps &
800
+ ChartProps & {readonly children?: ReactNode}),
662
801
  ) => ComponentReturnType;
663
802
  };
@@ -46,7 +46,7 @@ export type InspectorProps = {
46
46
  *
47
47
  * See the <Inspector /> (React) demo for this component in action:
48
48
  *
49
- * ![Inspector example](https://beta.tinybase.org/shots/inspector-react-demo.png
49
+ * ![Inspector example](https://tinybase.org/shots/inspector-react-demo.png
50
50
  * "Inspector example")
51
51
  *
52
52
  * The component displays a nub in the corner of the screen which you may then
@@ -46,7 +46,7 @@ export type InspectorProps = {
46
46
  *
47
47
  * See the <Inspector /> (React) demo for this component in action:
48
48
  *
49
- * ![Inspector example](https://beta.tinybase.org/shots/inspector-react-demo.png
49
+ * ![Inspector example](https://tinybase.org/shots/inspector-react-demo.png
50
50
  * "Inspector example")
51
51
  *
52
52
  * The component displays a nub in the corner of the screen which you may then
@@ -692,7 +692,7 @@ export type SortedTablePaginatorProps = {
692
692
  *
693
693
  * See the <TableInHtmlTable /> (Solid) demo for this component in action:
694
694
  *
695
- * ![TableInHtmlTable example](https://beta.tinybase.org/shots/tableinhtmltable-solid-demo.png
695
+ * ![TableInHtmlTable example](https://tinybase.org/shots/tableinhtmltable-solid-demo.png
696
696
  * "TableInHtmlTable example")
697
697
  *
698
698
  * The component's props identify which Table to render based on Table Id, and
@@ -836,7 +836,7 @@ export function TableInHtmlTable(
836
836
  * See the <SortedTableInHtmlTable /> (Solid) demo for this component in
837
837
  * action:
838
838
  *
839
- * ![SortedTableInHtmlTable example](https://beta.tinybase.org/shots/sortedtableinhtmltable-solid-demo.png
839
+ * ![SortedTableInHtmlTable example](https://tinybase.org/shots/sortedtableinhtmltable-solid-demo.png
840
840
  * "SortedTableInHtmlTable example")
841
841
  *
842
842
  * The component's props identify which Table to render based on Table Id, and
@@ -1007,7 +1007,7 @@ export function SortedTableInHtmlTable(
1007
1007
  *
1008
1008
  * See the <ValuesInHtmlTable /> (Solid) demo for this component in action:
1009
1009
  *
1010
- * ![ValuesInHtmlTable example](https://beta.tinybase.org/shots/valuesinhtmltable-solid-demo.png
1010
+ * ![ValuesInHtmlTable example](https://tinybase.org/shots/valuesinhtmltable-solid-demo.png
1011
1011
  * "ValuesInHtmlTable example")
1012
1012
  *
1013
1013
  * The component's props identify which Row to render based on Table Id, Row Id,
@@ -1136,7 +1136,7 @@ export function ValuesInHtmlTable(
1136
1136
  *
1137
1137
  * See the <SliceInHtmlTable /> (Solid) demo for this component in action:
1138
1138
  *
1139
- * ![SliceInHtmlTable example](https://beta.tinybase.org/shots/sliceinhtmltable-solid-demo.png
1139
+ * ![SliceInHtmlTable example](https://tinybase.org/shots/sliceinhtmltable-solid-demo.png
1140
1140
  * "SliceInHtmlTable example")
1141
1141
  *
1142
1142
  * The component's props identify which Slice to render based on Index Id, Slice
@@ -1292,7 +1292,7 @@ export function SliceInHtmlTable(
1292
1292
  * See the <RelationshipInHtmlTable /> (Solid) demo for this component in
1293
1293
  * action:
1294
1294
  *
1295
- * ![RelationshipInHtmlTable example](https://beta.tinybase.org/shots/relationshipinhtmltable-solid-demo.png
1295
+ * ![RelationshipInHtmlTable example](https://tinybase.org/shots/relationshipinhtmltable-solid-demo.png
1296
1296
  * "RelationshipInHtmlTable example")
1297
1297
  *
1298
1298
  * The component's props identify which Relationship to render based on
@@ -1466,7 +1466,7 @@ export function RelationshipInHtmlTable(
1466
1466
  * See the <ResultTableInHtmlTable /> (Solid) demo for this component in
1467
1467
  * action:
1468
1468
  *
1469
- * ![ResultTableInHtmlTable example](https://beta.tinybase.org/shots/resulttableinhtmltable-solid-demo.png
1469
+ * ![ResultTableInHtmlTable example](https://tinybase.org/shots/resulttableinhtmltable-solid-demo.png
1470
1470
  * "ResultTableInHtmlTable example")
1471
1471
  *
1472
1472
  * The component's props identify which ResultTable to render based on query Id,
@@ -1617,7 +1617,7 @@ export function ResultTableInHtmlTable(
1617
1617
  * See the <ResultSortedTableInHtmlTable /> (Solid) demo for this component in
1618
1618
  * action:
1619
1619
  *
1620
- * ![ResultSortedTableInHtmlTable example](https://beta.tinybase.org/shots/resultsortedtableinhtmltable-solid-demo.png
1620
+ * ![ResultSortedTableInHtmlTable example](https://tinybase.org/shots/resultsortedtableinhtmltable-solid-demo.png
1621
1621
  * "ResultSortedTableInHtmlTable example")
1622
1622
  *
1623
1623
  * The component's props identify which ResultTable to render based on query Id,
@@ -1789,7 +1789,7 @@ export function ResultSortedTableInHtmlTable(
1789
1789
  *
1790
1790
  * See the <EditableCellView /> (Solid) demo for this component in action:
1791
1791
  *
1792
- * ![EditableCellView example](https://beta.tinybase.org/shots/editablecellview-solid-demo.png
1792
+ * ![EditableCellView example](https://tinybase.org/shots/editablecellview-solid-demo.png
1793
1793
  * "EditableCellView example")
1794
1794
  *
1795
1795
  * The component's props identify which Cell to render based on Table Id, Row
@@ -1859,7 +1859,7 @@ export function EditableCellView(
1859
1859
  *
1860
1860
  * See the <EditableValueView /> (Solid) demo for this component in action:
1861
1861
  *
1862
- * ![EditableValueView example](https://beta.tinybase.org/shots/editablevalueview-solid-demo.png
1862
+ * ![EditableValueView example](https://tinybase.org/shots/editablevalueview-solid-demo.png
1863
1863
  * "EditableValueView example")
1864
1864
  *
1865
1865
  * The component's props identify which Value to render based on Table Id, Row
@@ -1929,7 +1929,7 @@ export function EditableValueView(
1929
1929
  * See the <SortedTableInHtmlTable /> (Solid) demo for this component in
1930
1930
  * action:
1931
1931
  *
1932
- * ![SortedTablePaginator example](https://beta.tinybase.org/shots/sortedtablepaginator-solid-demo.png
1932
+ * ![SortedTablePaginator example](https://tinybase.org/shots/sortedtablepaginator-solid-demo.png
1933
1933
  * "SortedTablePaginator example")
1934
1934
  *
1935
1935
  * The component displays 'previous' and 'next' buttons for paging through the
@@ -672,7 +672,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
672
672
  *
673
673
  * See the <TableInHtmlTable /> (Solid) demo for this component in action:
674
674
  *
675
- * ![TableInHtmlTable example](https://beta.tinybase.org/shots/tableinhtmltable-solid-demo.png
675
+ * ![TableInHtmlTable example](https://tinybase.org/shots/tableinhtmltable-solid-demo.png
676
676
  * "TableInHtmlTable example")
677
677
  *
678
678
  * The component's props identify which Table to render based on Table Id, and
@@ -824,7 +824,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
824
824
  * See the <SortedTableInHtmlTable /> (Solid) demo for this component in
825
825
  * action:
826
826
  *
827
- * ![SortedTableInHtmlTable example](https://beta.tinybase.org/shots/sortedtableinhtmltable-solid-demo.png
827
+ * ![SortedTableInHtmlTable example](https://tinybase.org/shots/sortedtableinhtmltable-solid-demo.png
828
828
  * "SortedTableInHtmlTable example")
829
829
  *
830
830
  * The component's props identify which Table to render based on Table Id, and
@@ -1003,7 +1003,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1003
1003
  *
1004
1004
  * See the <ValuesInHtmlTable /> (Solid) demo for this component in action:
1005
1005
  *
1006
- * ![ValuesInHtmlTable example](https://beta.tinybase.org/shots/valuesinhtmltable-solid-demo.png
1006
+ * ![ValuesInHtmlTable example](https://tinybase.org/shots/valuesinhtmltable-solid-demo.png
1007
1007
  * "ValuesInHtmlTable example")
1008
1008
  *
1009
1009
  * The component's props identify which Row to render based on Table Id, Row Id,
@@ -1140,7 +1140,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1140
1140
  *
1141
1141
  * See the <SliceInHtmlTable /> (Solid) demo for this component in action:
1142
1142
  *
1143
- * ![SliceInHtmlTable example](https://beta.tinybase.org/shots/sliceinhtmltable-solid-demo.png
1143
+ * ![SliceInHtmlTable example](https://tinybase.org/shots/sliceinhtmltable-solid-demo.png
1144
1144
  * "SliceInHtmlTable example")
1145
1145
  *
1146
1146
  * The component's props identify which Slice to render based on Index Id, Slice
@@ -1304,7 +1304,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1304
1304
  * See the <RelationshipInHtmlTable /> (Solid) demo for this component in
1305
1305
  * action:
1306
1306
  *
1307
- * ![RelationshipInHtmlTable example](https://beta.tinybase.org/shots/relationshipinhtmltable-solid-demo.png
1307
+ * ![RelationshipInHtmlTable example](https://tinybase.org/shots/relationshipinhtmltable-solid-demo.png
1308
1308
  * "RelationshipInHtmlTable example")
1309
1309
  *
1310
1310
  * The component's props identify which Relationship to render based on
@@ -1486,7 +1486,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1486
1486
  * See the <ResultTableInHtmlTable /> (Solid) demo for this component in
1487
1487
  * action:
1488
1488
  *
1489
- * ![ResultTableInHtmlTable example](https://beta.tinybase.org/shots/resulttableinhtmltable-solid-demo.png
1489
+ * ![ResultTableInHtmlTable example](https://tinybase.org/shots/resulttableinhtmltable-solid-demo.png
1490
1490
  * "ResultTableInHtmlTable example")
1491
1491
  *
1492
1492
  * The component's props identify which ResultTable to render based on query Id,
@@ -1645,7 +1645,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1645
1645
  * See the <ResultSortedTableInHtmlTable /> (Solid) demo for this component in
1646
1646
  * action:
1647
1647
  *
1648
- * ![ResultSortedTableInHtmlTable example](https://beta.tinybase.org/shots/resultsortedtableinhtmltable-solid-demo.png
1648
+ * ![ResultSortedTableInHtmlTable example](https://tinybase.org/shots/resultsortedtableinhtmltable-solid-demo.png
1649
1649
  * "ResultSortedTableInHtmlTable example")
1650
1650
  *
1651
1651
  * The component's props identify which ResultTable to render based on query Id,
@@ -1825,7 +1825,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1825
1825
  *
1826
1826
  * See the <EditableCellView /> (Solid) demo for this component in action:
1827
1827
  *
1828
- * ![EditableCellView example](https://beta.tinybase.org/shots/editablecellview-solid-demo.png
1828
+ * ![EditableCellView example](https://tinybase.org/shots/editablecellview-solid-demo.png
1829
1829
  * "EditableCellView example")
1830
1830
  *
1831
1831
  * The component's props identify which Cell to render based on Table Id, Row
@@ -1909,7 +1909,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1909
1909
  *
1910
1910
  * See the <EditableValueView /> (Solid) demo for this component in action:
1911
1911
  *
1912
- * ![EditableValueView example](https://beta.tinybase.org/shots/editablevalueview-solid-demo.png
1912
+ * ![EditableValueView example](https://tinybase.org/shots/editablevalueview-solid-demo.png
1913
1913
  * "EditableValueView example")
1914
1914
  *
1915
1915
  * The component's props identify which Value to render based on Table Id, Row
@@ -1979,7 +1979,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1979
1979
  * See the <SortedTableInHtmlTable /> (Solid) demo for this component in
1980
1980
  * action:
1981
1981
  *
1982
- * ![SortedTablePaginator example](https://beta.tinybase.org/shots/sortedtablepaginator-solid-demo.png
1982
+ * ![SortedTablePaginator example](https://tinybase.org/shots/sortedtablepaginator-solid-demo.png
1983
1983
  * "SortedTablePaginator example")
1984
1984
  *
1985
1985
  * The component displays 'previous' and 'next' buttons for paging through the
@@ -46,7 +46,7 @@ export type InspectorProps = {
46
46
  *
47
47
  * See the <Inspector /> (Solid) demo for this component in action:
48
48
  *
49
- * ![Inspector example](https://beta.tinybase.org/shots/inspector-solid-demo.png
49
+ * ![Inspector example](https://tinybase.org/shots/inspector-solid-demo.png
50
50
  * "Inspector example")
51
51
  *
52
52
  * The component displays a nub in the corner of the screen which you may then
@@ -46,7 +46,7 @@ export type InspectorProps = {
46
46
  *
47
47
  * See the <Inspector /> (Solid) demo for this component in action:
48
48
  *
49
- * ![Inspector example](https://beta.tinybase.org/shots/inspector-solid-demo.png
49
+ * ![Inspector example](https://tinybase.org/shots/inspector-solid-demo.png
50
50
  * "Inspector example")
51
51
  *
52
52
  * The component displays a nub in the corner of the screen which you may then