tinybase 6.5.2 → 6.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.
@@ -20,6 +20,7 @@ import type {
20
20
  QueriesOrQueriesId,
21
21
  RelationshipsOrRelationshipsId,
22
22
  ResultCellProps,
23
+ RowProps,
23
24
  StoreOrStoreId,
24
25
  ValueProps,
25
26
  } from '../ui-react/index.d.ts';
@@ -84,6 +85,54 @@ export type CustomResultCell = {
84
85
  getComponentProps?: (rowId: Id, cellId: Id) => ExtraProps;
85
86
  };
86
87
 
88
+ /**
89
+ * The ExtraRowCell object is used to configure the rendering of extra cells in
90
+ * an HTML table that's displaying a ResultTable or Table - before or after the
91
+ * regular data cells.
92
+ * @category Configuration
93
+ * @since v6.6.0
94
+ */
95
+ export type ExtraRowCell = {
96
+ /**
97
+ * A string that will be used as the label at the top of the column for this
98
+ * Cell.
99
+ * @category Prop
100
+ * @since v6.6.0
101
+ */
102
+ label: string;
103
+ /**
104
+ * A custom component for rendering each extra Cell in the table, and which
105
+ * will be passed props for the Row with which it is placed.
106
+ * @category Prop
107
+ * @since v6.6.0
108
+ */
109
+ component: ComponentType<RowProps>;
110
+ };
111
+
112
+ /**
113
+ * The ExtraValueCell object is used to configure the rendering of extra cells
114
+ * in an HTML table that's displaying Values - before or after the regular data
115
+ * cells.
116
+ * @category Configuration
117
+ * @since v6.6.0
118
+ */
119
+ export type ExtraValueCell = {
120
+ /**
121
+ * A string that will be used as the label at the top of the column for this
122
+ * Cell.
123
+ * @category Prop
124
+ * @since v6.6.0
125
+ */
126
+ label: string;
127
+ /**
128
+ * A custom component for rendering each extra Cell in the table, and which
129
+ * will be passed props for the Value with which it is placed.
130
+ * @category Prop
131
+ * @since v6.6.0
132
+ */
133
+ component: ComponentType<ValueProps>;
134
+ };
135
+
87
136
  /**
88
137
  * HtmlTableProps props are used for components that will render in an HTML
89
138
  * table, such as the TableInHtmlTable component or SortedTableInHtmlTable
@@ -152,6 +201,18 @@ export type TableInHtmlTableProps = {
152
201
  * @since v4.1.0
153
202
  */
154
203
  readonly customCells?: Ids | {[cellId: Id]: string | CustomCell};
204
+ /**
205
+ * An optional list of extra Cells to render before the main table Cells.
206
+ * @category Prop
207
+ * @since v6.6.0
208
+ */
209
+ readonly extraCellsBefore?: ExtraRowCell[];
210
+ /**
211
+ * An optional list of extra Cells to render after the main table Cells.
212
+ * @category Prop
213
+ * @since v6.6.0
214
+ */
215
+ readonly extraCellsAfter?: ExtraRowCell[];
155
216
  };
156
217
 
157
218
  /**
@@ -217,6 +278,18 @@ export type SortedTableInHtmlTableProps = {
217
278
  * @since v4.1.0
218
279
  */
219
280
  readonly customCells?: Ids | {[cellId: Id]: string | CustomCell};
281
+ /**
282
+ * An optional list of extra Cells to render before the main table Cells.
283
+ * @category Prop
284
+ * @since v6.6.0
285
+ */
286
+ readonly extraCellsBefore?: ExtraRowCell[];
287
+ /**
288
+ * An optional list of extra Cells to render after the main table Cells.
289
+ * @category Prop
290
+ * @since v6.6.0
291
+ */
292
+ readonly extraCellsAfter?: ExtraRowCell[];
220
293
  /**
221
294
  * Whether the table should be interactive such that clicking a header changes
222
295
  * the sorting and/or direction.
@@ -283,6 +356,18 @@ export type ValuesInHtmlTableProps = {
283
356
  * @since v4.1.0
284
357
  */
285
358
  readonly getValueComponentProps?: (valueId: Id) => ExtraProps;
359
+ /**
360
+ * An optional list of extra Cells to render before the main table Cells.
361
+ * @category Prop
362
+ * @since v6.6.0
363
+ */
364
+ readonly extraCellsBefore?: ExtraValueCell[];
365
+ /**
366
+ * An optional list of extra Cells to render after the main table Cells.
367
+ * @category Prop
368
+ * @since v6.6.0
369
+ */
370
+ readonly extraCellsAfter?: ExtraValueCell[];
286
371
  };
287
372
 
288
373
  /**
@@ -330,6 +415,18 @@ export type SliceInHtmlTableProps = {
330
415
  * @since v4.1.0
331
416
  */
332
417
  readonly customCells?: Ids | {[cellId: Id]: string | CustomCell};
418
+ /**
419
+ * An optional list of extra Cells to render before the main table Cells.
420
+ * @category Prop
421
+ * @since v6.6.0
422
+ */
423
+ readonly extraCellsBefore?: ExtraRowCell[];
424
+ /**
425
+ * An optional list of extra Cells to render after the main table Cells.
426
+ * @category Prop
427
+ * @since v6.6.0
428
+ */
429
+ readonly extraCellsAfter?: ExtraRowCell[];
333
430
  };
334
431
 
335
432
  /**
@@ -379,6 +476,18 @@ export type RelationshipInHtmlTableProps = {
379
476
  * @since v4.1.0
380
477
  */
381
478
  readonly customCells?: Ids | {[cellId: Id]: string | CustomCell};
479
+ /**
480
+ * An optional list of extra Cells to render before the main table Cells.
481
+ * @category Prop
482
+ * @since v6.6.0
483
+ */
484
+ readonly extraCellsBefore?: ExtraRowCell[];
485
+ /**
486
+ * An optional list of extra Cells to render after the main table Cells.
487
+ * @category Prop
488
+ * @since v6.6.0
489
+ */
490
+ readonly extraCellsAfter?: ExtraRowCell[];
382
491
  };
383
492
 
384
493
  /**
@@ -413,6 +522,18 @@ export type ResultTableInHtmlTableProps = {
413
522
  * @since v4.1.0
414
523
  */
415
524
  readonly customCells?: Ids | {[cellId: Id]: string | CustomResultCell};
525
+ /**
526
+ * An optional list of extra Cells to render before the main table Cells.
527
+ * @category Prop
528
+ * @since v6.6.0
529
+ */
530
+ readonly extraCellsBefore?: ExtraRowCell[];
531
+ /**
532
+ * An optional list of extra Cells to render after the main table Cells.
533
+ * @category Prop
534
+ * @since v6.6.0
535
+ */
536
+ readonly extraCellsAfter?: ExtraRowCell[];
416
537
  };
417
538
 
418
539
  /**
@@ -473,6 +594,18 @@ export type ResultSortedTableInHtmlTableProps = {
473
594
  * @since v4.1.0
474
595
  */
475
596
  readonly customCells?: Ids | {[cellId: Id]: string | CustomResultCell};
597
+ /**
598
+ * An optional list of extra Cells to render before the main table Cells.
599
+ * @category Prop
600
+ * @since v6.6.0
601
+ */
602
+ readonly extraCellsBefore?: ExtraRowCell[];
603
+ /**
604
+ * An optional list of extra Cells to render after the main table Cells.
605
+ * @category Prop
606
+ * @since v6.6.0
607
+ */
608
+ readonly extraCellsAfter?: ExtraRowCell[];
476
609
  /**
477
610
  * Whether the table should be interactive such that clicking a header changes
478
611
  * the sorting and/or direction.
@@ -614,11 +747,11 @@ export type SortedTablePaginatorProps = {
614
747
  * </thead>
615
748
  * <tbody>
616
749
  * <tr>
617
- * <th>fido</th>
750
+ * <th title="fido">fido</th>
618
751
  * <td>dog</td>
619
752
  * </tr>
620
753
  * <tr>
621
- * <th>felix</th>
754
+ * <th title="felix">felix</th>
622
755
  * <td>cat</td>
623
756
  * </tr>
624
757
  * </tbody>
@@ -780,11 +913,11 @@ export function TableInHtmlTable(
780
913
  * </thead>
781
914
  * <tbody>
782
915
  * <tr>
783
- * <th>felix</th>
916
+ * <th title="felix">felix</th>
784
917
  * <td>cat</td>
785
918
  * </tr>
786
919
  * <tr>
787
- * <th>fido</th>
920
+ * <th title="fido">fido</th>
788
921
  * <td>dog</td>
789
922
  * </tr>
790
923
  * </tbody>
@@ -925,11 +1058,11 @@ export function SortedTableInHtmlTable(
925
1058
  * </thead>
926
1059
  * <tbody>
927
1060
  * <tr>
928
- * <th>open</th>
1061
+ * <th title="open">open</th>
929
1062
  * <td>true</td>
930
1063
  * </tr>
931
1064
  * <tr>
932
- * <th>employees</th>
1065
+ * <th title="employees">employees</th>
933
1066
  * <td>3</td>
934
1067
  * </tr>
935
1068
  * </tbody>
@@ -1061,11 +1194,11 @@ export function ValuesInHtmlTable(
1061
1194
  * </thead>
1062
1195
  * <tbody>
1063
1196
  * <tr>
1064
- * <th>fido</th>
1197
+ * <th title="fido">fido</th>
1065
1198
  * <td>dog</td>
1066
1199
  * </tr>
1067
1200
  * <tr>
1068
- * <th>cujo</th>
1201
+ * <th title="cujo">cujo</th>
1069
1202
  * <td>dog</td>
1070
1203
  * </tr>
1071
1204
  * </tbody>
@@ -1228,14 +1361,14 @@ export function SliceInHtmlTable(
1228
1361
  * </thead>
1229
1362
  * <tbody>
1230
1363
  * <tr>
1231
- * <th>fido</th>
1232
- * <th>dog</th>
1364
+ * <th title="fido">fido</th>
1365
+ * <th title="dog">dog</th>
1233
1366
  * <td>dog</td>
1234
1367
  * <td>5</td>
1235
1368
  * </tr>
1236
1369
  * <tr>
1237
- * <th>cujo</th>
1238
- * <th>dog</th>
1370
+ * <th title="cujo">cujo</th>
1371
+ * <th title="dog">dog</th>
1239
1372
  * <td>dog</td>
1240
1373
  * <td>5</td>
1241
1374
  * </tr>
@@ -1386,11 +1519,11 @@ export function RelationshipInHtmlTable(
1386
1519
  * </thead>
1387
1520
  * <tbody>
1388
1521
  * <tr>
1389
- * <th>fido</th>
1522
+ * <th title="fido">fido</th>
1390
1523
  * <td>brown</td>
1391
1524
  * </tr>
1392
1525
  * <tr>
1393
- * <th>felix</th>
1526
+ * <th title="felix">felix</th>
1394
1527
  * <td>black</td>
1395
1528
  * </tr>
1396
1529
  * </tbody>
@@ -1556,11 +1689,11 @@ export function ResultTableInHtmlTable(
1556
1689
  * </thead>
1557
1690
  * <tbody>
1558
1691
  * <tr>
1559
- * <th>felix</th>
1692
+ * <th title="felix">felix</th>
1560
1693
  * <td>black</td>
1561
1694
  * </tr>
1562
1695
  * <tr>
1563
- * <th>fido</th>
1696
+ * <th title="fido">fido</th>
1564
1697
  * <td>brown</td>
1565
1698
  * </tr>
1566
1699
  * </tbody>
@@ -1695,7 +1828,7 @@ export function ResultSortedTableInHtmlTable(
1695
1828
  * // ->
1696
1829
  * `
1697
1830
  * <div class="editableCell">
1698
- * <button class="string">string</button>
1831
+ * <button title="string" class="string">string</button>
1699
1832
  * <input value="brown">
1700
1833
  * </div>
1701
1834
  * `;
@@ -1760,7 +1893,7 @@ export function EditableCellView(
1760
1893
  * // ->
1761
1894
  * `
1762
1895
  * <div class="editableValue">
1763
- * <button class="number">number</button>
1896
+ * <button title="number" class="number">number</button>
1764
1897
  * <input type="number" value="3">
1765
1898
  * </div>
1766
1899
  * `;
@@ -1843,11 +1976,11 @@ export function EditableValueView(
1843
1976
  * </thead>
1844
1977
  * <tbody>
1845
1978
  * <tr>
1846
- * <th>felix</th>
1979
+ * <th title="felix">felix</th>
1847
1980
  * <td>cat</td>
1848
1981
  * </tr>
1849
1982
  * <tr>
1850
- * <th>fido</th>
1983
+ * <th title="fido">fido</th>
1851
1984
  * <td>dog</td>
1852
1985
  * </tr>
1853
1986
  * </tbody>
@@ -24,6 +24,7 @@ import type {
24
24
  QueriesOrQueriesId,
25
25
  RelationshipsOrRelationshipsId,
26
26
  ResultCellProps,
27
+ RowProps,
27
28
  StoreOrStoreId,
28
29
  ValueProps,
29
30
  } from '../../_internal/ui-react/with-schemas/index.d.ts';
@@ -97,6 +98,57 @@ export type CustomResultCell<Schemas extends OptionalSchemas> = {
97
98
  getComponentProps?: (rowId: Id, cellId: Id) => ExtraProps;
98
99
  };
99
100
 
101
+ /**
102
+ * The ExtraRowCell object is used to configure the rendering of extra cells in
103
+ * an HTML table that's displaying a ResultTable or Table - before or after the
104
+ * regular data cells.
105
+ * @category Configuration
106
+ * @since v6.6.0
107
+ */
108
+ export type ExtraRowCell<
109
+ Schemas extends OptionalSchemas,
110
+ TableId extends TableIdFromSchema<Schemas[0]>,
111
+ > = {
112
+ /**
113
+ * A string that will be used as the label at the top of the column for this
114
+ * Cell.
115
+ * @category Prop
116
+ * @since v6.6.0
117
+ */
118
+ label: string;
119
+ /**
120
+ * A custom component for rendering each extra Cell in the table, and which
121
+ * will be passed props for the Row with which it is placed.
122
+ * @category Prop
123
+ * @since v6.6.0
124
+ */
125
+ component: ComponentType<RowProps<Schemas, TableId>>;
126
+ };
127
+
128
+ /**
129
+ * The ExtraValueCell object is used to configure the rendering of extra cells
130
+ * in an HTML table that's displaying Values - before or after the regular data
131
+ * cells.
132
+ * @category Configuration
133
+ * @since v6.6.0
134
+ */
135
+ export type ExtraValueCell<Schemas extends OptionalSchemas> = {
136
+ /**
137
+ * A string that will be used as the label at the top of the column for this
138
+ * Cell.
139
+ * @category Prop
140
+ * @since v6.6.0
141
+ */
142
+ label: string;
143
+ /**
144
+ * A custom component for rendering each extra Cell in the table, and which
145
+ * will be passed props for the Value with which it is placed.
146
+ * @category Prop
147
+ * @since v6.6.0
148
+ */
149
+ component: ComponentType<ValueProps<Schemas>>;
150
+ };
151
+
100
152
  /**
101
153
  * HtmlTableProps props are used for components that will render in an HTML
102
154
  * table, such as the TableInHtmlTable component or SortedTableInHtmlTable
@@ -675,11 +727,11 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
675
727
  * </thead>
676
728
  * <tbody>
677
729
  * <tr>
678
- * <th>fido</th>
730
+ * <th title="fido">fido</th>
679
731
  * <td>dog</td>
680
732
  * </tr>
681
733
  * <tr>
682
- * <th>felix</th>
734
+ * <th title="felix">felix</th>
683
735
  * <td>cat</td>
684
736
  * </tr>
685
737
  * </tbody>
@@ -849,11 +901,11 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
849
901
  * </thead>
850
902
  * <tbody>
851
903
  * <tr>
852
- * <th>felix</th>
904
+ * <th title="felix">felix</th>
853
905
  * <td>cat</td>
854
906
  * </tr>
855
907
  * <tr>
856
- * <th>fido</th>
908
+ * <th title="fido">fido</th>
857
909
  * <td>dog</td>
858
910
  * </tr>
859
911
  * </tbody>
@@ -1002,11 +1054,11 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1002
1054
  * </thead>
1003
1055
  * <tbody>
1004
1056
  * <tr>
1005
- * <th>open</th>
1057
+ * <th title="open">open</th>
1006
1058
  * <td>true</td>
1007
1059
  * </tr>
1008
1060
  * <tr>
1009
- * <th>employees</th>
1061
+ * <th title="employees">employees</th>
1010
1062
  * <td>3</td>
1011
1063
  * </tr>
1012
1064
  * </tbody>
@@ -1146,11 +1198,11 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1146
1198
  * </thead>
1147
1199
  * <tbody>
1148
1200
  * <tr>
1149
- * <th>fido</th>
1201
+ * <th title="fido">fido</th>
1150
1202
  * <td>dog</td>
1151
1203
  * </tr>
1152
1204
  * <tr>
1153
- * <th>cujo</th>
1205
+ * <th title="cujo">cujo</th>
1154
1206
  * <td>dog</td>
1155
1207
  * </tr>
1156
1208
  * </tbody>
@@ -1321,14 +1373,14 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1321
1373
  * </thead>
1322
1374
  * <tbody>
1323
1375
  * <tr>
1324
- * <th>fido</th>
1325
- * <th>dog</th>
1376
+ * <th title="fido">fido</th>
1377
+ * <th title="dog">dog</th>
1326
1378
  * <td>dog</td>
1327
1379
  * <td>5</td>
1328
1380
  * </tr>
1329
1381
  * <tr>
1330
- * <th>cujo</th>
1331
- * <th>dog</th>
1382
+ * <th title="cujo">cujo</th>
1383
+ * <th title="dog">dog</th>
1332
1384
  * <td>dog</td>
1333
1385
  * <td>5</td>
1334
1386
  * </tr>
@@ -1487,11 +1539,11 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1487
1539
  * </thead>
1488
1540
  * <tbody>
1489
1541
  * <tr>
1490
- * <th>fido</th>
1542
+ * <th title="fido">fido</th>
1491
1543
  * <td>brown</td>
1492
1544
  * </tr>
1493
1545
  * <tr>
1494
- * <th>felix</th>
1546
+ * <th title="felix">felix</th>
1495
1547
  * <td>black</td>
1496
1548
  * </tr>
1497
1549
  * </tbody>
@@ -1665,11 +1717,11 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1665
1717
  * </thead>
1666
1718
  * <tbody>
1667
1719
  * <tr>
1668
- * <th>felix</th>
1720
+ * <th title="felix">felix</th>
1669
1721
  * <td>black</td>
1670
1722
  * </tr>
1671
1723
  * <tr>
1672
- * <th>fido</th>
1724
+ * <th title="fido">fido</th>
1673
1725
  * <td>brown</td>
1674
1726
  * </tr>
1675
1727
  * </tbody>
@@ -1812,7 +1864,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1812
1864
  * // ->
1813
1865
  * `
1814
1866
  * <div class="editableCell">
1815
- * <button class="string">string</button>
1867
+ * <button title="string" class="string">string</button>
1816
1868
  * <input value="brown">
1817
1869
  * </div>
1818
1870
  * `;
@@ -1891,7 +1943,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1891
1943
  * // ->
1892
1944
  * `
1893
1945
  * <div class="editableValue">
1894
- * <button class="number">number</button>
1946
+ * <button title="number" class="number">number</button>
1895
1947
  * <input type="number" value="3">
1896
1948
  * </div>
1897
1949
  * `;
@@ -1974,11 +2026,11 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1974
2026
  * </thead>
1975
2027
  * <tbody>
1976
2028
  * <tr>
1977
- * <th>felix</th>
2029
+ * <th title="felix">felix</th>
1978
2030
  * <td>cat</td>
1979
2031
  * </tr>
1980
2032
  * <tr>
1981
- * <th>fido</th>
2033
+ * <th title="fido">fido</th>
1982
2034
  * <td>dog</td>
1983
2035
  * </tr>
1984
2036
  * </tbody>
@@ -31,6 +31,13 @@ export type InspectorProps = {
31
31
  * @since v5.0.0
32
32
  */
33
33
  readonly open?: boolean;
34
+ /**
35
+ * An optional number to indicate the hue of the inspector's UI, defaulting to
36
+ * 270.
37
+ * @category Prop
38
+ * @since v6.6.0
39
+ */
40
+ readonly hue?: number;
34
41
  };
35
42
 
36
43
  /**