@devicechain/widgets 0.23.0-rc.1 → 0.24.0-rc.1

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 (97) hide show
  1. package/README.md +8 -3
  2. package/dist/aggregate-fold.d.ts +3 -2
  3. package/dist/aggregate-strings.d.ts +1 -0
  4. package/dist/alarm-strings.d.ts +18 -0
  5. package/dist/binding-policy.d.ts +4 -0
  6. package/dist/bound-devices-notice.d.ts +30 -0
  7. package/dist/builtin-descriptors.d.ts +290 -249
  8. package/dist/builtin-option-docs.d.ts +2 -0
  9. package/dist/builtin-registry.d.ts +249 -226
  10. package/dist/category-geometry.d.ts +1 -0
  11. package/dist/chunks/{aggregate-feed-BD3CHNFU.js → aggregate-feed-4FSBQYJL.js} +39 -11
  12. package/dist/chunks/aggregate-feed-4FSBQYJL.js.map +7 -0
  13. package/dist/chunks/{aggregate-widgets-HZQI5HTX.js → aggregate-widgets-2ZQBW3YF.js} +376 -182
  14. package/dist/chunks/aggregate-widgets-2ZQBW3YF.js.map +7 -0
  15. package/dist/chunks/alarm-widgets-X4PX5MYJ.js +72 -0
  16. package/dist/chunks/alarm-widgets-X4PX5MYJ.js.map +7 -0
  17. package/dist/chunks/chunk-546TK2QG.js +722 -0
  18. package/dist/chunks/chunk-546TK2QG.js.map +7 -0
  19. package/dist/chunks/{chunk-WBKHYZU2.js → chunk-62CHYCHI.js} +6 -62
  20. package/dist/chunks/chunk-62CHYCHI.js.map +7 -0
  21. package/dist/chunks/chunk-BMFQOTYG.js +41 -0
  22. package/dist/chunks/chunk-BMFQOTYG.js.map +7 -0
  23. package/dist/chunks/{chunk-2D7JNKFE.js → chunk-JFH4QMLA.js} +28 -4
  24. package/dist/chunks/chunk-JFH4QMLA.js.map +7 -0
  25. package/dist/chunks/chunk-QMGKB6J3.js +84 -0
  26. package/dist/chunks/chunk-QMGKB6J3.js.map +7 -0
  27. package/dist/chunks/chunk-XNEBAY4J.js +19 -0
  28. package/dist/chunks/chunk-XNEBAY4J.js.map +7 -0
  29. package/dist/chunks/chunk-YYJV54BV.js +58 -0
  30. package/dist/chunks/chunk-YYJV54BV.js.map +7 -0
  31. package/dist/chunks/compare-feed-AY3CVKUZ.js +346 -0
  32. package/dist/chunks/compare-feed-AY3CVKUZ.js.map +7 -0
  33. package/dist/chunks/{control-widgets-3V2LSSRF.js → control-widgets-UCTJJJ2D.js} +267 -78
  34. package/dist/chunks/control-widgets-UCTJJJ2D.js.map +7 -0
  35. package/dist/chunks/event-markers-feed-GEGTIHXT.js +373 -0
  36. package/dist/chunks/event-markers-feed-GEGTIHXT.js.map +7 -0
  37. package/dist/chunks/{fleet-feed-5QGDLOV5.js → fleet-feed-2SKDR6ZQ.js} +47 -8
  38. package/dist/chunks/fleet-feed-2SKDR6ZQ.js.map +7 -0
  39. package/dist/chunks/presence-widgets-2LIUKN4Y.js +350 -0
  40. package/dist/chunks/presence-widgets-2LIUKN4Y.js.map +7 -0
  41. package/dist/command-control-strings.d.ts +5 -0
  42. package/dist/compare-feed.d.ts +13 -0
  43. package/dist/compare-model.d.ts +38 -0
  44. package/dist/compare-strings.d.ts +13 -0
  45. package/dist/documented-descriptors.d.ts +4826 -0
  46. package/dist/event-markers-feed.d.ts +11 -0
  47. package/dist/event-markers-model.d.ts +38 -0
  48. package/dist/event-markers-strings.d.ts +20 -0
  49. package/dist/event-markers-types.d.ts +7 -0
  50. package/dist/fleet-count-model.d.ts +13 -0
  51. package/dist/fleet-feed.d.ts +1 -0
  52. package/dist/fleet-model.d.ts +1 -0
  53. package/dist/fleet-strings.d.ts +11 -0
  54. package/dist/index.d.ts +6 -3
  55. package/dist/index.js +946 -398
  56. package/dist/index.js.map +4 -4
  57. package/dist/presence-feed.d.ts +24 -0
  58. package/dist/presence-model.d.ts +13 -0
  59. package/dist/presence-strings.d.ts +19 -0
  60. package/dist/sparkline.d.ts +23 -0
  61. package/dist/use-bound-devices.d.ts +26 -0
  62. package/dist/widgets/aggregate-lazy.d.ts +81 -46
  63. package/dist/widgets/aggregate-widgets.d.ts +1 -0
  64. package/dist/widgets/alarm-grouped.d.ts +17 -0
  65. package/dist/widgets/alarm-lazy.d.ts +63 -16
  66. package/dist/widgets/alarm-severity.d.ts +8 -0
  67. package/dist/widgets/alarm-table.d.ts +2 -0
  68. package/dist/widgets/alarm-type-tabs.d.ts +10 -0
  69. package/dist/widgets/alarm-widgets.d.ts +2 -0
  70. package/dist/widgets/command-stepper.d.ts +22 -0
  71. package/dist/widgets/control-lazy.d.ts +16 -24
  72. package/dist/widgets/device-status.d.ts +4 -0
  73. package/dist/widgets/fleet-count.d.ts +2 -0
  74. package/dist/widgets/gauge.d.ts +2 -15
  75. package/dist/widgets/image.d.ts +2 -6
  76. package/dist/widgets/label.d.ts +2 -6
  77. package/dist/widgets/latest-card.d.ts +2 -13
  78. package/dist/widgets/lazy-chunk.d.ts +7 -2
  79. package/dist/widgets/level-lazy.d.ts +14 -96
  80. package/dist/widgets/map.d.ts +8 -5
  81. package/dist/widgets/online-doughnut.d.ts +2 -0
  82. package/dist/widgets/presence-lazy.d.ts +27 -0
  83. package/dist/widgets/presence-widgets.d.ts +3 -0
  84. package/dist/widgets/selection-lazy.d.ts +2 -4
  85. package/dist/widgets/table-lazy.d.ts +2 -7
  86. package/dist/widgets/time-series-chart.d.ts +62 -12
  87. package/package.json +13 -13
  88. package/dist/chunks/aggregate-feed-BD3CHNFU.js.map +0 -7
  89. package/dist/chunks/aggregate-widgets-HZQI5HTX.js.map +0 -7
  90. package/dist/chunks/alarm-widgets-7UY6MIYZ.js +0 -9
  91. package/dist/chunks/alarm-widgets-7UY6MIYZ.js.map +0 -7
  92. package/dist/chunks/chunk-2D7JNKFE.js.map +0 -7
  93. package/dist/chunks/chunk-6OGI4UFJ.js +0 -367
  94. package/dist/chunks/chunk-6OGI4UFJ.js.map +0 -7
  95. package/dist/chunks/chunk-WBKHYZU2.js.map +0 -7
  96. package/dist/chunks/control-widgets-3V2LSSRF.js.map +0 -7
  97. package/dist/chunks/fleet-feed-5QGDLOV5.js.map +0 -7
@@ -1,15 +1,26 @@
1
1
  import { type WidgetDescriptor } from '@devicechain/dashboards';
2
+ type Documented<S> = S extends {
3
+ item: infer I;
4
+ } ? Omit<S, 'item'> & {
5
+ readonly doc: string;
6
+ readonly item: {
7
+ readonly [K in keyof I]: Documented<I[K]>;
8
+ };
9
+ } : S & {
10
+ readonly doc: string;
11
+ };
12
+ export type DocumentedSpecs<S> = {
13
+ readonly [K in keyof S]: Documented<S[K]>;
14
+ };
2
15
  export declare const builtinWidgetDescriptors: {
3
- readonly 'timeseries-chart': WidgetDescriptor<"measurement", {
16
+ readonly 'timeseries-chart': WidgetDescriptor<"measurement", DocumentedSpecs<{
4
17
  readonly title: {
5
18
  readonly kind: 'string';
6
19
  readonly labelId: 'widgetLabelTitle';
7
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
8
20
  };
9
21
  readonly unit: {
10
22
  readonly kind: 'string';
11
23
  readonly labelId: 'widgetLabelUnit';
12
- readonly doc: 'Unit suffix shown beside the value.';
13
24
  };
14
25
  readonly precision: {
15
26
  readonly kind: 'number';
@@ -18,20 +29,17 @@ export declare const builtinWidgetDescriptors: {
18
29
  readonly max: 100;
19
30
  readonly labelId: 'widgetLabelPrecision';
20
31
  readonly helpId: 'widgetHintPrecision';
21
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
22
32
  };
23
33
  readonly thresholds: {
24
34
  readonly kind: 'list';
25
35
  readonly maxItems: 12;
26
36
  readonly labelId: 'widgetLabelThresholds';
27
37
  readonly helpId: 'widgetHintThresholds';
28
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
29
38
  readonly item: {
30
39
  readonly value: {
31
40
  readonly kind: 'number';
32
41
  readonly required: true;
33
42
  readonly labelId: 'widgetLabelThresholdValue';
34
- readonly doc: 'The value at which this band starts.';
35
43
  };
36
44
  readonly level: {
37
45
  readonly kind: 'enum';
@@ -46,12 +54,10 @@ export declare const builtinWidgetDescriptors: {
46
54
  readonly critical: 'widgetSeverityCritical';
47
55
  };
48
56
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
49
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
50
57
  };
51
58
  readonly label: {
52
59
  readonly kind: 'string';
53
60
  readonly labelId: 'widgetLabelThresholdLabel';
54
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
55
61
  };
56
62
  };
57
63
  };
@@ -61,7 +67,6 @@ export declare const builtinWidgetDescriptors: {
61
67
  readonly min: 1;
62
68
  readonly labelId: 'widgetLabelStaleAfter';
63
69
  readonly helpId: 'widgetHintStaleAfter';
64
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
65
70
  };
66
71
  readonly windowSeconds: {
67
72
  readonly kind: 'number';
@@ -70,25 +75,75 @@ export declare const builtinWidgetDescriptors: {
70
75
  readonly max: 604800;
71
76
  readonly labelId: 'widgetLabelWindowSeconds';
72
77
  readonly helpId: 'widgetHintWindowSeconds';
73
- readonly doc: 'Seconds of history the widget covers, back from now. Leave unset to follow the board’s time range; set it to pin this widget to a fixed span that the viewer’s range picker does not change. 60 to 604800.';
74
78
  };
75
- }>;
76
- readonly 'latest-card': WidgetDescriptor<"measurement", {
79
+ readonly groupBy: {
80
+ readonly kind: "enum";
81
+ readonly values: readonly ["measurement", "device"];
82
+ readonly labelId: "widgetLabelSeriesBy";
83
+ readonly helpId: "widgetHintSeriesBy";
84
+ readonly valueLabelIds: {
85
+ readonly measurement: "widgetGroupByMeasurement";
86
+ readonly device: "widgetGroupByDevice";
87
+ };
88
+ readonly placeholderId: "widgetPlaceholderDefault";
89
+ };
90
+ readonly measurement: {
91
+ readonly kind: 'string';
92
+ readonly labelId: 'widgetLabelMeasurement';
93
+ readonly helpId: 'widgetHintMeasurement';
94
+ };
95
+ readonly maxSeries: {
96
+ readonly kind: 'number';
97
+ readonly integer: true;
98
+ readonly min: 1;
99
+ readonly labelId: 'widgetLabelMaxSeries';
100
+ readonly helpId: 'widgetHintMaxSeries';
101
+ };
102
+ readonly markAlarms: {
103
+ readonly kind: 'boolean';
104
+ readonly labelId: 'widgetLabelMarkAlarms';
105
+ readonly helpId: 'widgetHintMarkAlarms';
106
+ };
107
+ readonly markAlarmsScope: {
108
+ readonly kind: 'enum';
109
+ readonly values: readonly ["series", "device"];
110
+ readonly labelId: 'widgetLabelMarkAlarmsScope';
111
+ readonly helpId: 'widgetHintMarkAlarmsScope';
112
+ readonly valueLabelIds: {
113
+ readonly series: 'widgetMarkAlarmsScopeSeries';
114
+ readonly device: 'widgetMarkAlarmsScopeDevice';
115
+ };
116
+ readonly placeholderId: 'widgetPlaceholderWholeDevice';
117
+ };
118
+ readonly markCommands: {
119
+ readonly kind: 'boolean';
120
+ readonly labelId: 'widgetLabelMarkCommands';
121
+ readonly helpId: 'widgetHintMarkCommands';
122
+ };
123
+ readonly min: {
124
+ readonly kind: 'number';
125
+ readonly labelId: 'widgetLabelMin';
126
+ readonly helpId: 'widgetHintChartAxisMin';
127
+ };
128
+ readonly max: {
129
+ readonly kind: 'number';
130
+ readonly labelId: 'widgetLabelMax';
131
+ readonly helpId: 'widgetHintChartAxisMax';
132
+ };
133
+ }>>;
134
+ readonly 'latest-card': WidgetDescriptor<"measurement", DocumentedSpecs<{
77
135
  readonly title: {
78
136
  readonly kind: 'string';
79
137
  readonly labelId: 'widgetLabelTitle';
80
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
81
138
  };
82
139
  readonly measurement: {
83
140
  readonly kind: "string";
84
141
  readonly labelId: "widgetLabelMeasurement";
85
142
  readonly helpId: "widgetHintMeasurement";
86
- readonly doc: "Which measurement to display. Defaults to the first the datasource selects.";
87
143
  };
88
144
  readonly unit: {
89
145
  readonly kind: 'string';
90
146
  readonly labelId: 'widgetLabelUnit';
91
- readonly doc: 'Unit suffix shown beside the value.';
92
147
  };
93
148
  readonly precision: {
94
149
  readonly kind: 'number';
@@ -97,20 +152,17 @@ export declare const builtinWidgetDescriptors: {
97
152
  readonly max: 100;
98
153
  readonly labelId: 'widgetLabelPrecision';
99
154
  readonly helpId: 'widgetHintPrecision';
100
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
101
155
  };
102
156
  readonly thresholds: {
103
157
  readonly kind: 'list';
104
158
  readonly maxItems: 12;
105
159
  readonly labelId: 'widgetLabelThresholds';
106
160
  readonly helpId: 'widgetHintThresholds';
107
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
108
161
  readonly item: {
109
162
  readonly value: {
110
163
  readonly kind: 'number';
111
164
  readonly required: true;
112
165
  readonly labelId: 'widgetLabelThresholdValue';
113
- readonly doc: 'The value at which this band starts.';
114
166
  };
115
167
  readonly level: {
116
168
  readonly kind: 'enum';
@@ -125,12 +177,10 @@ export declare const builtinWidgetDescriptors: {
125
177
  readonly critical: 'widgetSeverityCritical';
126
178
  };
127
179
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
128
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
129
180
  };
130
181
  readonly label: {
131
182
  readonly kind: 'string';
132
183
  readonly labelId: 'widgetLabelThresholdLabel';
133
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
134
184
  };
135
185
  };
136
186
  };
@@ -138,7 +188,6 @@ export declare const builtinWidgetDescriptors: {
138
188
  readonly kind: 'boolean';
139
189
  readonly labelId: 'widgetFlashOnChange';
140
190
  readonly helpId: 'widgetFlashOnChangeHint';
141
- readonly doc: 'Briefly tint a value green on a rise and red on a fall when it changes.';
142
191
  };
143
192
  readonly staleAfterSeconds: {
144
193
  readonly kind: 'number';
@@ -146,7 +195,6 @@ export declare const builtinWidgetDescriptors: {
146
195
  readonly min: 1;
147
196
  readonly labelId: 'widgetLabelStaleAfter';
148
197
  readonly helpId: 'widgetHintStaleAfter';
149
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
150
198
  };
151
199
  readonly window: {
152
200
  readonly kind: 'number';
@@ -154,35 +202,29 @@ export declare const builtinWidgetDescriptors: {
154
202
  readonly min: 1;
155
203
  readonly labelId: 'widgetLabelWindow';
156
204
  readonly helpId: 'widgetHintWindow';
157
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
158
205
  };
159
- }>;
160
- readonly gauge: WidgetDescriptor<"measurement", {
206
+ }>>;
207
+ readonly gauge: WidgetDescriptor<"measurement", DocumentedSpecs<{
161
208
  readonly title: {
162
209
  readonly kind: 'string';
163
210
  readonly labelId: 'widgetLabelTitle';
164
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
165
211
  };
166
212
  readonly measurement: {
167
213
  readonly kind: "string";
168
214
  readonly labelId: "widgetLabelMeasurement";
169
215
  readonly helpId: "widgetHintMeasurement";
170
- readonly doc: "Which measurement to display. Defaults to the first the datasource selects.";
171
216
  };
172
217
  readonly min: {
173
218
  readonly kind: "number";
174
219
  readonly labelId: "widgetLabelMin";
175
- readonly doc: "Low end of the gauge scale. Default 0.";
176
220
  };
177
221
  readonly max: {
178
222
  readonly kind: "number";
179
223
  readonly labelId: "widgetLabelMax";
180
- readonly doc: "High end of the gauge scale. Default 100.";
181
224
  };
182
225
  readonly unit: {
183
226
  readonly kind: 'string';
184
227
  readonly labelId: 'widgetLabelUnit';
185
- readonly doc: 'Unit suffix shown beside the value.';
186
228
  };
187
229
  readonly precision: {
188
230
  readonly kind: 'number';
@@ -191,20 +233,17 @@ export declare const builtinWidgetDescriptors: {
191
233
  readonly max: 100;
192
234
  readonly labelId: 'widgetLabelPrecision';
193
235
  readonly helpId: 'widgetHintPrecision';
194
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
195
236
  };
196
237
  readonly thresholds: {
197
238
  readonly kind: 'list';
198
239
  readonly maxItems: 12;
199
240
  readonly labelId: 'widgetLabelThresholds';
200
241
  readonly helpId: 'widgetHintThresholds';
201
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
202
242
  readonly item: {
203
243
  readonly value: {
204
244
  readonly kind: 'number';
205
245
  readonly required: true;
206
246
  readonly labelId: 'widgetLabelThresholdValue';
207
- readonly doc: 'The value at which this band starts.';
208
247
  };
209
248
  readonly level: {
210
249
  readonly kind: 'enum';
@@ -219,12 +258,10 @@ export declare const builtinWidgetDescriptors: {
219
258
  readonly critical: 'widgetSeverityCritical';
220
259
  };
221
260
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
222
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
223
261
  };
224
262
  readonly label: {
225
263
  readonly kind: 'string';
226
264
  readonly labelId: 'widgetLabelThresholdLabel';
227
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
228
265
  };
229
266
  };
230
267
  };
@@ -232,7 +269,6 @@ export declare const builtinWidgetDescriptors: {
232
269
  readonly kind: 'boolean';
233
270
  readonly labelId: 'widgetFlashOnChange';
234
271
  readonly helpId: 'widgetFlashOnChangeHint';
235
- readonly doc: 'Briefly tint a value green on a rise and red on a fall when it changes.';
236
272
  };
237
273
  readonly staleAfterSeconds: {
238
274
  readonly kind: 'number';
@@ -240,7 +276,6 @@ export declare const builtinWidgetDescriptors: {
240
276
  readonly min: 1;
241
277
  readonly labelId: 'widgetLabelStaleAfter';
242
278
  readonly helpId: 'widgetHintStaleAfter';
243
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
244
279
  };
245
280
  readonly window: {
246
281
  readonly kind: 'number';
@@ -248,14 +283,12 @@ export declare const builtinWidgetDescriptors: {
248
283
  readonly min: 1;
249
284
  readonly labelId: 'widgetLabelWindow';
250
285
  readonly helpId: 'widgetHintWindow';
251
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
252
286
  };
253
- }>;
254
- readonly table: WidgetDescriptor<"measurement", {
287
+ }>>;
288
+ readonly table: WidgetDescriptor<"measurement", DocumentedSpecs<{
255
289
  readonly title: {
256
290
  readonly kind: 'string';
257
291
  readonly labelId: 'widgetLabelTitle';
258
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
259
292
  };
260
293
  readonly precision: {
261
294
  readonly kind: 'number';
@@ -264,13 +297,11 @@ export declare const builtinWidgetDescriptors: {
264
297
  readonly max: 100;
265
298
  readonly labelId: 'widgetLabelPrecision';
266
299
  readonly helpId: 'widgetHintPrecision';
267
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
268
300
  };
269
301
  readonly flashOnChange: {
270
302
  readonly kind: 'boolean';
271
303
  readonly labelId: 'widgetFlashOnChange';
272
304
  readonly helpId: 'widgetFlashOnChangeHint';
273
- readonly doc: 'Briefly tint a value green on a rise and red on a fall when it changes.';
274
305
  };
275
306
  readonly staleAfterSeconds: {
276
307
  readonly kind: 'number';
@@ -278,7 +309,6 @@ export declare const builtinWidgetDescriptors: {
278
309
  readonly min: 1;
279
310
  readonly labelId: 'widgetLabelStaleAfter';
280
311
  readonly helpId: 'widgetHintStaleAfter';
281
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
282
312
  };
283
313
  readonly window: {
284
314
  readonly kind: 'number';
@@ -286,20 +316,17 @@ export declare const builtinWidgetDescriptors: {
286
316
  readonly min: 1;
287
317
  readonly labelId: 'widgetLabelWindow';
288
318
  readonly helpId: 'widgetHintWindow';
289
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
290
319
  };
291
- }>;
292
- readonly label: WidgetDescriptor<"none", {
320
+ }>>;
321
+ readonly label: WidgetDescriptor<"none", DocumentedSpecs<{
293
322
  readonly title: {
294
323
  readonly kind: 'string';
295
324
  readonly labelId: 'widgetLabelTitle';
296
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
297
325
  };
298
326
  readonly text: {
299
327
  readonly kind: "string";
300
328
  readonly required: true;
301
329
  readonly labelId: "widgetLabelText";
302
- readonly doc: "The text to show. Rendered as plain text — markup is never interpreted.";
303
330
  };
304
331
  readonly align: {
305
332
  readonly kind: "enum";
@@ -311,32 +338,27 @@ export declare const builtinWidgetDescriptors: {
311
338
  readonly right: "widgetAlignRight";
312
339
  };
313
340
  readonly placeholderId: "widgetPlaceholderDefault";
314
- readonly doc: "Horizontal alignment of the text. Default center.";
315
341
  };
316
342
  readonly fontSize: {
317
343
  readonly kind: "number";
318
344
  readonly min: 1;
319
345
  readonly labelId: "widgetLabelFontSize";
320
346
  readonly helpId: "widgetHintFontSize";
321
- readonly doc: "Text size in pixels at the comfortable density; it scales with the board density. Default 16.";
322
347
  };
323
- }>;
324
- readonly image: WidgetDescriptor<"none", {
348
+ }>>;
349
+ readonly image: WidgetDescriptor<"none", DocumentedSpecs<{
325
350
  readonly title: {
326
351
  readonly kind: 'string';
327
352
  readonly labelId: 'widgetLabelTitle';
328
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
329
353
  };
330
354
  readonly url: {
331
355
  readonly kind: "string";
332
356
  readonly required: true;
333
357
  readonly labelId: "widgetLabelImageUrl";
334
- readonly doc: "Source URL of the image.";
335
358
  };
336
359
  readonly alt: {
337
360
  readonly kind: "string";
338
361
  readonly labelId: "widgetLabelAltText";
339
- readonly doc: "Alternative text describing the image for assistive technology.";
340
362
  };
341
363
  readonly fit: {
342
364
  readonly kind: "enum";
@@ -348,14 +370,12 @@ export declare const builtinWidgetDescriptors: {
348
370
  readonly fill: "widgetFitFill";
349
371
  };
350
372
  readonly placeholderId: "widgetPlaceholderDefault";
351
- readonly doc: "How the image fills its box. Default contain.";
352
373
  };
353
- }>;
354
- readonly 'alarm-table': WidgetDescriptor<"alarm", {
374
+ }>>;
375
+ readonly 'alarm-table': WidgetDescriptor<"alarm", DocumentedSpecs<{
355
376
  readonly title: {
356
377
  readonly kind: 'string';
357
378
  readonly labelId: 'widgetLabelTitle';
358
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
359
379
  };
360
380
  readonly state: {
361
381
  readonly kind: 'enum';
@@ -367,7 +387,6 @@ export declare const builtinWidgetDescriptors: {
367
387
  readonly CLEARED: 'widgetAlarmStateCleared';
368
388
  };
369
389
  readonly placeholderId: 'widgetPlaceholderAny';
370
- readonly doc: 'Show only alarms in this state. Unset shows every state.';
371
390
  };
372
391
  readonly severity: {
373
392
  readonly kind: 'enum';
@@ -382,7 +401,6 @@ export declare const builtinWidgetDescriptors: {
382
401
  readonly INDETERMINATE: 'widgetAlarmSeverityIndeterminate';
383
402
  };
384
403
  readonly placeholderId: 'widgetPlaceholderAny';
385
- readonly doc: 'Show only alarms at this severity. Unset shows every severity.';
386
404
  };
387
405
  readonly acknowledged: {
388
406
  readonly kind: 'enum';
@@ -394,7 +412,31 @@ export declare const builtinWidgetDescriptors: {
394
412
  readonly false: 'widgetAlarmAckUnacknowledged';
395
413
  };
396
414
  readonly placeholderId: 'widgetPlaceholderAny';
397
- readonly doc: "Show only acknowledged ('true') or unacknowledged ('false') alarms. Unset shows both.";
415
+ };
416
+ readonly groupBy: {
417
+ readonly kind: "enum";
418
+ readonly values: readonly ["none", "deviceType"];
419
+ readonly labelId: "widgetLabelAlarmGroupBy";
420
+ readonly helpId: "widgetHintAlarmGroupBy";
421
+ readonly valueLabelIds: {
422
+ readonly none: "widgetAlarmGroupByNone";
423
+ readonly deviceType: "widgetAlarmGroupByDeviceType";
424
+ };
425
+ readonly placeholderId: "widgetPlaceholderDefault";
426
+ };
427
+ readonly deviceTypes: {
428
+ readonly kind: "list";
429
+ readonly maxItems: 24;
430
+ readonly ordered: true;
431
+ readonly labelId: "widgetLabelAlarmDeviceTypes";
432
+ readonly helpId: "widgetHintAlarmDeviceTypes";
433
+ readonly item: {
434
+ readonly token: {
435
+ readonly kind: "string";
436
+ readonly control: "device-type";
437
+ readonly labelId: "widgetLabelAlarmDeviceTypeToken";
438
+ };
439
+ };
398
440
  };
399
441
  readonly maxRows: {
400
442
  readonly kind: "number";
@@ -402,7 +444,6 @@ export declare const builtinWidgetDescriptors: {
402
444
  readonly min: 1;
403
445
  readonly labelId: "widgetLabelMaxRows";
404
446
  readonly helpId: "widgetMaxRowsAlarmHint";
405
- readonly doc: "Alarms loaded into the table. Default 50.";
406
447
  };
407
448
  readonly precision: {
408
449
  readonly kind: 'number';
@@ -411,27 +452,23 @@ export declare const builtinWidgetDescriptors: {
411
452
  readonly max: 100;
412
453
  readonly labelId: 'widgetLabelPrecision';
413
454
  readonly helpId: 'widgetHintPrecision';
414
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
415
455
  };
416
456
  readonly flashOnChange: {
417
457
  readonly kind: 'boolean';
418
458
  readonly labelId: 'widgetFlashOnChange';
419
459
  readonly helpId: 'widgetFlashOnChangeHint';
420
- readonly doc: 'Briefly tint a value green on a rise and red on a fall when it changes.';
421
460
  };
422
461
  readonly selectionTarget: {
423
462
  readonly kind: 'string';
424
463
  readonly labelId: 'widgetLabelTargetSlot';
425
464
  readonly helpId: 'widgetTargetSlotHint';
426
465
  readonly control: 'slot-target';
427
- readonly doc: 'Name of the slot this widget re-points when the viewer picks an entity.';
428
466
  };
429
- }>;
430
- readonly 'alarm-count': WidgetDescriptor<"alarm", {
467
+ }>>;
468
+ readonly 'alarm-count': WidgetDescriptor<"alarm", DocumentedSpecs<{
431
469
  readonly title: {
432
470
  readonly kind: 'string';
433
471
  readonly labelId: 'widgetLabelTitle';
434
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
435
472
  };
436
473
  readonly state: {
437
474
  readonly kind: 'enum';
@@ -443,7 +480,6 @@ export declare const builtinWidgetDescriptors: {
443
480
  readonly CLEARED: 'widgetAlarmStateCleared';
444
481
  };
445
482
  readonly placeholderId: 'widgetPlaceholderAny';
446
- readonly doc: 'Show only alarms in this state. Unset shows every state.';
447
483
  };
448
484
  readonly severity: {
449
485
  readonly kind: 'enum';
@@ -458,7 +494,6 @@ export declare const builtinWidgetDescriptors: {
458
494
  readonly INDETERMINATE: 'widgetAlarmSeverityIndeterminate';
459
495
  };
460
496
  readonly placeholderId: 'widgetPlaceholderAny';
461
- readonly doc: 'Show only alarms at this severity. Unset shows every severity.';
462
497
  };
463
498
  readonly acknowledged: {
464
499
  readonly kind: 'enum';
@@ -470,14 +505,46 @@ export declare const builtinWidgetDescriptors: {
470
505
  readonly false: 'widgetAlarmAckUnacknowledged';
471
506
  };
472
507
  readonly placeholderId: 'widgetPlaceholderAny';
473
- readonly doc: "Show only acknowledged ('true') or unacknowledged ('false') alarms. Unset shows both.";
474
508
  };
475
- }>;
476
- readonly 'command-button': WidgetDescriptor<"control", {
509
+ }>>;
510
+ readonly 'alarm-severity': WidgetDescriptor<"alarm", DocumentedSpecs<{
511
+ readonly title: {
512
+ readonly kind: 'string';
513
+ readonly labelId: 'widgetLabelTitle';
514
+ };
515
+ readonly state: {
516
+ readonly kind: 'enum';
517
+ readonly values: readonly ["ACTIVE", "CLEARED"];
518
+ readonly labelId: 'widgetLabelState';
519
+ readonly helpId: 'widgetStateHint';
520
+ readonly valueLabelIds: {
521
+ readonly ACTIVE: 'widgetAlarmStateActive';
522
+ readonly CLEARED: 'widgetAlarmStateCleared';
523
+ };
524
+ readonly placeholderId: 'widgetPlaceholderAny';
525
+ };
526
+ readonly acknowledged: {
527
+ readonly kind: 'enum';
528
+ readonly values: readonly ["true", "false"];
529
+ readonly labelId: 'widgetLabelAcknowledged';
530
+ readonly helpId: 'widgetAcknowledgedHint';
531
+ readonly valueLabelIds: {
532
+ readonly true: 'widgetAlarmAckAcknowledged';
533
+ readonly false: 'widgetAlarmAckUnacknowledged';
534
+ };
535
+ readonly placeholderId: 'widgetPlaceholderAny';
536
+ };
537
+ readonly deviceType: {
538
+ readonly kind: "string";
539
+ readonly control: "device-type";
540
+ readonly labelId: "widgetLabelAlarmSeverityType";
541
+ readonly helpId: "widgetHintAlarmSeverityType";
542
+ };
543
+ }>>;
544
+ readonly 'command-button': WidgetDescriptor<"control", DocumentedSpecs<{
477
545
  readonly title: {
478
546
  readonly kind: 'string';
479
547
  readonly labelId: 'widgetLabelTitle';
480
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
481
548
  };
482
549
  readonly commandName: {
483
550
  readonly kind: "string";
@@ -485,14 +552,12 @@ export declare const builtinWidgetDescriptors: {
485
552
  readonly labelId: "widgetCommandHeading";
486
553
  readonly helpId: "widgetCommandFieldHint";
487
554
  readonly control: "command-vocabulary";
488
- readonly doc: "Command key issued to the target device. Without it the widget cannot send.";
489
555
  };
490
556
  readonly commandLabel: {
491
557
  readonly kind: "string";
492
558
  readonly labelId: "widgetCommandHeading";
493
559
  readonly helpId: "widgetCommandFieldHint";
494
560
  readonly control: "command-vocabulary";
495
- readonly doc: "Text on the send button. Defaults to the command key.";
496
561
  };
497
562
  readonly parameterSchema: {
498
563
  readonly kind: "string";
@@ -500,7 +565,6 @@ export declare const builtinWidgetDescriptors: {
500
565
  readonly labelId: "widgetCommandHeading";
501
566
  readonly helpId: "widgetCommandFieldHint";
502
567
  readonly control: "command-vocabulary";
503
- readonly doc: "The command's parameter descriptors, baked in as JSON at author time. Drives the typed form.";
504
568
  };
505
569
  readonly maxRows: {
506
570
  readonly kind: "number";
@@ -508,70 +572,66 @@ export declare const builtinWidgetDescriptors: {
508
572
  readonly min: 1;
509
573
  readonly labelId: "widgetLabelMaxRows";
510
574
  readonly helpId: "widgetMaxRowsCommandHint";
511
- readonly doc: "Recent commands shown in the history. Default 20.";
512
575
  };
513
- }>;
514
- readonly 'entity-selector': WidgetDescriptor<"selection", {
576
+ }>>;
577
+ readonly 'entity-selector': WidgetDescriptor<"selection", DocumentedSpecs<{
515
578
  readonly title: {
516
579
  readonly kind: 'string';
517
580
  readonly labelId: 'widgetLabelTitle';
518
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
519
581
  };
520
582
  readonly selectionTarget: {
521
583
  readonly kind: 'string';
522
584
  readonly labelId: 'widgetLabelTargetSlot';
523
585
  readonly helpId: 'widgetTargetSlotHint';
524
586
  readonly control: 'slot-target';
525
- readonly doc: 'Name of the slot this widget re-points when the viewer picks an entity.';
526
587
  readonly required: true;
527
588
  };
528
- }>;
529
- readonly map: WidgetDescriptor<"location", {
589
+ }>>;
590
+ readonly map: WidgetDescriptor<"location", DocumentedSpecs<{
530
591
  readonly title: {
531
592
  readonly kind: 'string';
532
593
  readonly labelId: 'widgetLabelTitle';
533
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
534
594
  };
535
595
  readonly tileUrl: {
536
596
  readonly kind: "string";
537
597
  readonly labelId: "widgetLabelTileUrl";
538
598
  readonly helpId: "widgetTileUrlHint";
539
599
  readonly control: "basemap";
540
- readonly doc: "Raster tile URL template, e.g. https://tiles.example.com/{z}/{x}/{y}.png. Leave empty to inherit the tenant's basemap; setting one overrides it for this board only.";
541
600
  };
542
601
  readonly attribution: {
543
602
  readonly kind: "string";
544
603
  readonly labelId: "widgetLabelAttribution";
545
604
  readonly helpId: "widgetAttributionHint";
546
605
  readonly control: "basemap";
547
- readonly doc: "Credit line the tile source requires, shown on the map. Set whatever the provider you chose asks for.";
548
606
  };
549
- }>;
550
- readonly 'linear-gauge': WidgetDescriptor<"measurement", {
607
+ readonly selectionTarget: {
608
+ readonly kind: 'string';
609
+ readonly labelId: 'widgetLabelTargetSlot';
610
+ readonly helpId: 'widgetTargetSlotHint';
611
+ readonly control: 'slot-target';
612
+ };
613
+ }>>;
614
+ readonly 'linear-gauge': WidgetDescriptor<"measurement", DocumentedSpecs<{
551
615
  readonly title: {
552
616
  readonly kind: 'string';
553
617
  readonly labelId: 'widgetLabelTitle';
554
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
555
618
  };
556
619
  readonly measurement: {
557
620
  readonly kind: 'string';
558
621
  readonly labelId: 'widgetLabelMeasurement';
559
622
  readonly helpId: 'widgetHintMeasurement';
560
- readonly doc: 'Which measurement to display. Defaults to the first the datasource selects.';
561
623
  };
562
624
  readonly min: {
563
625
  readonly kind: 'number';
564
626
  readonly required: true;
565
627
  readonly labelId: 'widgetLabelMin';
566
628
  readonly helpId: 'widgetHintScaleMin';
567
- readonly doc: 'Value at the empty end of the scale. Required: the widget does not guess a range.';
568
629
  };
569
630
  readonly max: {
570
631
  readonly kind: 'number';
571
632
  readonly required: true;
572
633
  readonly labelId: 'widgetLabelMax';
573
634
  readonly helpId: 'widgetHintScaleMax';
574
- readonly doc: 'Value at the full end of the scale. Required, and above min.';
575
635
  };
576
636
  readonly style: {
577
637
  readonly kind: "enum";
@@ -582,7 +642,6 @@ export declare const builtinWidgetDescriptors: {
582
642
  readonly thermometer: "widgetLinearStyleThermometer";
583
643
  };
584
644
  readonly placeholderId: "widgetPlaceholderDefault";
585
- readonly doc: "A plain bar (default) or a thermometer: a vertical tube with a bulb. A thermometer is always vertical.";
586
645
  };
587
646
  readonly orientation: {
588
647
  readonly kind: "enum";
@@ -593,12 +652,10 @@ export declare const builtinWidgetDescriptors: {
593
652
  readonly vertical: "widgetOrientationVertical";
594
653
  };
595
654
  readonly placeholderId: "widgetPlaceholderDefault";
596
- readonly doc: "Direction of a bar: horizontal (default) or vertical. Ignored by a thermometer.";
597
655
  };
598
656
  readonly unit: {
599
657
  readonly kind: 'string';
600
658
  readonly labelId: 'widgetLabelUnit';
601
- readonly doc: 'Unit suffix shown beside the value.';
602
659
  };
603
660
  readonly precision: {
604
661
  readonly kind: 'number';
@@ -607,20 +664,17 @@ export declare const builtinWidgetDescriptors: {
607
664
  readonly max: 100;
608
665
  readonly labelId: 'widgetLabelPrecision';
609
666
  readonly helpId: 'widgetHintPrecision';
610
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
611
667
  };
612
668
  readonly thresholds: {
613
669
  readonly kind: 'list';
614
670
  readonly maxItems: 12;
615
671
  readonly labelId: 'widgetLabelThresholds';
616
672
  readonly helpId: 'widgetHintThresholds';
617
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
618
673
  readonly item: {
619
674
  readonly value: {
620
675
  readonly kind: 'number';
621
676
  readonly required: true;
622
677
  readonly labelId: 'widgetLabelThresholdValue';
623
- readonly doc: 'The value at which this band starts.';
624
678
  };
625
679
  readonly level: {
626
680
  readonly kind: 'enum';
@@ -635,12 +689,10 @@ export declare const builtinWidgetDescriptors: {
635
689
  readonly critical: 'widgetSeverityCritical';
636
690
  };
637
691
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
638
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
639
692
  };
640
693
  readonly label: {
641
694
  readonly kind: 'string';
642
695
  readonly labelId: 'widgetLabelThresholdLabel';
643
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
644
696
  };
645
697
  };
646
698
  };
@@ -650,7 +702,6 @@ export declare const builtinWidgetDescriptors: {
650
702
  readonly min: 1;
651
703
  readonly labelId: 'widgetLabelStaleAfter';
652
704
  readonly helpId: 'widgetHintStaleAfter';
653
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
654
705
  };
655
706
  readonly window: {
656
707
  readonly kind: 'number';
@@ -658,34 +709,29 @@ export declare const builtinWidgetDescriptors: {
658
709
  readonly min: 1;
659
710
  readonly labelId: 'widgetLabelWindow';
660
711
  readonly helpId: 'widgetHintWindow';
661
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
662
712
  };
663
- }>;
664
- readonly 'level-gauge': WidgetDescriptor<"measurement", {
713
+ }>>;
714
+ readonly 'level-gauge': WidgetDescriptor<"measurement", DocumentedSpecs<{
665
715
  readonly title: {
666
716
  readonly kind: 'string';
667
717
  readonly labelId: 'widgetLabelTitle';
668
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
669
718
  };
670
719
  readonly measurement: {
671
720
  readonly kind: 'string';
672
721
  readonly labelId: 'widgetLabelMeasurement';
673
722
  readonly helpId: 'widgetHintMeasurement';
674
- readonly doc: 'Which measurement to display. Defaults to the first the datasource selects.';
675
723
  };
676
724
  readonly min: {
677
725
  readonly kind: 'number';
678
726
  readonly required: true;
679
727
  readonly labelId: 'widgetLabelMin';
680
728
  readonly helpId: 'widgetHintScaleMin';
681
- readonly doc: 'Value at the empty end of the scale. Required: the widget does not guess a range.';
682
729
  };
683
730
  readonly max: {
684
731
  readonly kind: 'number';
685
732
  readonly required: true;
686
733
  readonly labelId: 'widgetLabelMax';
687
734
  readonly helpId: 'widgetHintScaleMax';
688
- readonly doc: 'Value at the full end of the scale. Required, and above min.';
689
735
  };
690
736
  readonly readout: {
691
737
  readonly kind: "enum";
@@ -696,12 +742,10 @@ export declare const builtinWidgetDescriptors: {
696
742
  readonly percent: "widgetReadoutPercent";
697
743
  };
698
744
  readonly placeholderId: "widgetPlaceholderDefault";
699
- readonly doc: "What the readout shows: the value with its unit (default) or the percent of the scale.";
700
745
  };
701
746
  readonly unit: {
702
747
  readonly kind: 'string';
703
748
  readonly labelId: 'widgetLabelUnit';
704
- readonly doc: 'Unit suffix shown beside the value.';
705
749
  };
706
750
  readonly precision: {
707
751
  readonly kind: 'number';
@@ -710,20 +754,17 @@ export declare const builtinWidgetDescriptors: {
710
754
  readonly max: 100;
711
755
  readonly labelId: 'widgetLabelPrecision';
712
756
  readonly helpId: 'widgetHintPrecision';
713
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
714
757
  };
715
758
  readonly thresholds: {
716
759
  readonly kind: 'list';
717
760
  readonly maxItems: 12;
718
761
  readonly labelId: 'widgetLabelThresholds';
719
762
  readonly helpId: 'widgetHintThresholds';
720
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
721
763
  readonly item: {
722
764
  readonly value: {
723
765
  readonly kind: 'number';
724
766
  readonly required: true;
725
767
  readonly labelId: 'widgetLabelThresholdValue';
726
- readonly doc: 'The value at which this band starts.';
727
768
  };
728
769
  readonly level: {
729
770
  readonly kind: 'enum';
@@ -738,12 +779,10 @@ export declare const builtinWidgetDescriptors: {
738
779
  readonly critical: 'widgetSeverityCritical';
739
780
  };
740
781
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
741
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
742
782
  };
743
783
  readonly label: {
744
784
  readonly kind: 'string';
745
785
  readonly labelId: 'widgetLabelThresholdLabel';
746
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
747
786
  };
748
787
  };
749
788
  };
@@ -753,7 +792,6 @@ export declare const builtinWidgetDescriptors: {
753
792
  readonly min: 1;
754
793
  readonly labelId: 'widgetLabelStaleAfter';
755
794
  readonly helpId: 'widgetHintStaleAfter';
756
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
757
795
  };
758
796
  readonly window: {
759
797
  readonly kind: 'number';
@@ -761,37 +799,31 @@ export declare const builtinWidgetDescriptors: {
761
799
  readonly min: 1;
762
800
  readonly labelId: 'widgetLabelWindow';
763
801
  readonly helpId: 'widgetHintWindow';
764
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
765
802
  };
766
- }>;
767
- readonly battery: WidgetDescriptor<"measurement", {
803
+ }>>;
804
+ readonly battery: WidgetDescriptor<"measurement", DocumentedSpecs<{
768
805
  readonly title: {
769
806
  readonly kind: 'string';
770
807
  readonly labelId: 'widgetLabelTitle';
771
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
772
808
  };
773
809
  readonly measurement: {
774
810
  readonly kind: 'string';
775
811
  readonly labelId: 'widgetLabelMeasurement';
776
812
  readonly helpId: 'widgetHintMeasurement';
777
- readonly doc: 'Which measurement to display. Defaults to the first the datasource selects.';
778
813
  };
779
814
  readonly min: {
780
815
  readonly kind: "number";
781
816
  readonly labelId: "widgetLabelMin";
782
817
  readonly helpId: "widgetHintBatteryRange";
783
- readonly doc: "Value of an empty battery. Default 0 (the scale is percent unless you set min and max).";
784
818
  };
785
819
  readonly max: {
786
820
  readonly kind: "number";
787
821
  readonly labelId: "widgetLabelMax";
788
822
  readonly helpId: "widgetHintBatteryRange";
789
- readonly doc: "Value of a full battery. Default 100 (the scale is percent unless you set min and max).";
790
823
  };
791
824
  readonly unit: {
792
825
  readonly kind: 'string';
793
826
  readonly labelId: 'widgetLabelUnit';
794
- readonly doc: 'Unit suffix shown beside the value.';
795
827
  };
796
828
  readonly precision: {
797
829
  readonly kind: 'number';
@@ -800,20 +832,17 @@ export declare const builtinWidgetDescriptors: {
800
832
  readonly max: 100;
801
833
  readonly labelId: 'widgetLabelPrecision';
802
834
  readonly helpId: 'widgetHintPrecision';
803
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
804
835
  };
805
836
  readonly thresholds: {
806
837
  readonly kind: 'list';
807
838
  readonly maxItems: 12;
808
839
  readonly labelId: 'widgetLabelThresholds';
809
840
  readonly helpId: 'widgetHintThresholds';
810
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
811
841
  readonly item: {
812
842
  readonly value: {
813
843
  readonly kind: 'number';
814
844
  readonly required: true;
815
845
  readonly labelId: 'widgetLabelThresholdValue';
816
- readonly doc: 'The value at which this band starts.';
817
846
  };
818
847
  readonly level: {
819
848
  readonly kind: 'enum';
@@ -828,12 +857,10 @@ export declare const builtinWidgetDescriptors: {
828
857
  readonly critical: 'widgetSeverityCritical';
829
858
  };
830
859
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
831
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
832
860
  };
833
861
  readonly label: {
834
862
  readonly kind: 'string';
835
863
  readonly labelId: 'widgetLabelThresholdLabel';
836
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
837
864
  };
838
865
  };
839
866
  };
@@ -843,7 +870,6 @@ export declare const builtinWidgetDescriptors: {
843
870
  readonly min: 1;
844
871
  readonly labelId: 'widgetLabelStaleAfter';
845
872
  readonly helpId: 'widgetHintStaleAfter';
846
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
847
873
  };
848
874
  readonly window: {
849
875
  readonly kind: 'number';
@@ -851,31 +877,26 @@ export declare const builtinWidgetDescriptors: {
851
877
  readonly min: 1;
852
878
  readonly labelId: 'widgetLabelWindow';
853
879
  readonly helpId: 'widgetHintWindow';
854
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
855
880
  };
856
- }>;
857
- readonly 'status-light': WidgetDescriptor<"measurement", {
881
+ }>>;
882
+ readonly 'status-light': WidgetDescriptor<"measurement", DocumentedSpecs<{
858
883
  readonly title: {
859
884
  readonly kind: 'string';
860
885
  readonly labelId: 'widgetLabelTitle';
861
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
862
886
  };
863
887
  readonly measurement: {
864
888
  readonly kind: 'string';
865
889
  readonly labelId: 'widgetLabelMeasurement';
866
890
  readonly helpId: 'widgetHintMeasurement';
867
- readonly doc: 'Which measurement to display. Defaults to the first the datasource selects.';
868
891
  };
869
892
  readonly onAt: {
870
893
  readonly kind: "number";
871
894
  readonly labelId: "widgetLabelOnAt";
872
895
  readonly helpId: "widgetHintOnAt";
873
- readonly doc: "For an on/off signal: the lamp is lit at or above this value and dark below it. Unset keeps the lamp lit while a value is present, coloured by its threshold band.";
874
896
  };
875
897
  readonly unit: {
876
898
  readonly kind: 'string';
877
899
  readonly labelId: 'widgetLabelUnit';
878
- readonly doc: 'Unit suffix shown beside the value.';
879
900
  };
880
901
  readonly precision: {
881
902
  readonly kind: 'number';
@@ -884,20 +905,17 @@ export declare const builtinWidgetDescriptors: {
884
905
  readonly max: 100;
885
906
  readonly labelId: 'widgetLabelPrecision';
886
907
  readonly helpId: 'widgetHintPrecision';
887
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
888
908
  };
889
909
  readonly thresholds: {
890
910
  readonly kind: 'list';
891
911
  readonly maxItems: 12;
892
912
  readonly labelId: 'widgetLabelThresholds';
893
913
  readonly helpId: 'widgetHintThresholds';
894
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
895
914
  readonly item: {
896
915
  readonly value: {
897
916
  readonly kind: 'number';
898
917
  readonly required: true;
899
918
  readonly labelId: 'widgetLabelThresholdValue';
900
- readonly doc: 'The value at which this band starts.';
901
919
  };
902
920
  readonly level: {
903
921
  readonly kind: 'enum';
@@ -912,12 +930,10 @@ export declare const builtinWidgetDescriptors: {
912
930
  readonly critical: 'widgetSeverityCritical';
913
931
  };
914
932
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
915
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
916
933
  };
917
934
  readonly label: {
918
935
  readonly kind: 'string';
919
936
  readonly labelId: 'widgetLabelThresholdLabel';
920
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
921
937
  };
922
938
  };
923
939
  };
@@ -927,7 +943,6 @@ export declare const builtinWidgetDescriptors: {
927
943
  readonly min: 1;
928
944
  readonly labelId: 'widgetLabelStaleAfter';
929
945
  readonly helpId: 'widgetHintStaleAfter';
930
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
931
946
  };
932
947
  readonly window: {
933
948
  readonly kind: 'number';
@@ -935,25 +950,21 @@ export declare const builtinWidgetDescriptors: {
935
950
  readonly min: 1;
936
951
  readonly labelId: 'widgetLabelWindow';
937
952
  readonly helpId: 'widgetHintWindow';
938
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
939
953
  };
940
- }>;
941
- readonly 'signal-bars': WidgetDescriptor<"measurement", {
954
+ }>>;
955
+ readonly 'signal-bars': WidgetDescriptor<"measurement", DocumentedSpecs<{
942
956
  readonly title: {
943
957
  readonly kind: 'string';
944
958
  readonly labelId: 'widgetLabelTitle';
945
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
946
959
  };
947
960
  readonly measurement: {
948
961
  readonly kind: 'string';
949
962
  readonly labelId: 'widgetLabelMeasurement';
950
963
  readonly helpId: 'widgetHintMeasurement';
951
- readonly doc: 'Which measurement to display. Defaults to the first the datasource selects.';
952
964
  };
953
965
  readonly unit: {
954
966
  readonly kind: 'string';
955
967
  readonly labelId: 'widgetLabelUnit';
956
- readonly doc: 'Unit suffix shown beside the value.';
957
968
  };
958
969
  readonly precision: {
959
970
  readonly kind: 'number';
@@ -962,7 +973,6 @@ export declare const builtinWidgetDescriptors: {
962
973
  readonly max: 100;
963
974
  readonly labelId: 'widgetLabelPrecision';
964
975
  readonly helpId: 'widgetHintPrecision';
965
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
966
976
  };
967
977
  readonly thresholds: {
968
978
  readonly kind: 'list';
@@ -972,7 +982,6 @@ export declare const builtinWidgetDescriptors: {
972
982
  readonly kind: 'number';
973
983
  readonly required: true;
974
984
  readonly labelId: 'widgetLabelThresholdValue';
975
- readonly doc: 'The value at which this band starts.';
976
985
  };
977
986
  readonly level: {
978
987
  readonly kind: 'enum';
@@ -987,18 +996,15 @@ export declare const builtinWidgetDescriptors: {
987
996
  readonly critical: 'widgetSeverityCritical';
988
997
  };
989
998
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
990
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
991
999
  };
992
1000
  readonly label: {
993
1001
  readonly kind: 'string';
994
1002
  readonly labelId: 'widgetLabelThresholdLabel';
995
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
996
1003
  };
997
1004
  };
998
1005
  readonly maxItems: 8;
999
1006
  readonly required: true;
1000
1007
  readonly helpId: "widgetHintSignalThresholds";
1001
- readonly doc: "The steps of the signal, lowest first: one bar per entry, lit once the value reaches it and coloured by its level. At least two, at most eight.";
1002
1008
  };
1003
1009
  readonly staleAfterSeconds: {
1004
1010
  readonly kind: 'number';
@@ -1006,7 +1012,6 @@ export declare const builtinWidgetDescriptors: {
1006
1012
  readonly min: 1;
1007
1013
  readonly labelId: 'widgetLabelStaleAfter';
1008
1014
  readonly helpId: 'widgetHintStaleAfter';
1009
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
1010
1015
  };
1011
1016
  readonly window: {
1012
1017
  readonly kind: 'number';
@@ -1014,20 +1019,17 @@ export declare const builtinWidgetDescriptors: {
1014
1019
  readonly min: 1;
1015
1020
  readonly labelId: 'widgetLabelWindow';
1016
1021
  readonly helpId: 'widgetHintWindow';
1017
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
1018
1022
  };
1019
- }>;
1020
- readonly compass: WidgetDescriptor<"measurement", {
1023
+ }>>;
1024
+ readonly compass: WidgetDescriptor<"measurement", DocumentedSpecs<{
1021
1025
  readonly title: {
1022
1026
  readonly kind: 'string';
1023
1027
  readonly labelId: 'widgetLabelTitle';
1024
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
1025
1028
  };
1026
1029
  readonly measurement: {
1027
1030
  readonly kind: 'string';
1028
1031
  readonly labelId: 'widgetLabelMeasurement';
1029
1032
  readonly helpId: 'widgetHintMeasurement';
1030
- readonly doc: 'Which measurement to display. Defaults to the first the datasource selects.';
1031
1033
  };
1032
1034
  readonly precision: {
1033
1035
  readonly kind: 'number';
@@ -1036,7 +1038,6 @@ export declare const builtinWidgetDescriptors: {
1036
1038
  readonly max: 100;
1037
1039
  readonly labelId: 'widgetLabelPrecision';
1038
1040
  readonly helpId: 'widgetHintPrecision';
1039
- readonly doc: "Decimal places of the heading. Default 0 (whole degrees). The heading is rounded first, then folded onto 0 to 360, so it never reads 360.";
1040
1041
  };
1041
1042
  readonly thresholds: {
1042
1043
  readonly kind: 'list';
@@ -1048,7 +1049,6 @@ export declare const builtinWidgetDescriptors: {
1048
1049
  readonly kind: 'number';
1049
1050
  readonly required: true;
1050
1051
  readonly labelId: 'widgetLabelThresholdValue';
1051
- readonly doc: 'The value at which this band starts.';
1052
1052
  };
1053
1053
  readonly level: {
1054
1054
  readonly kind: 'enum';
@@ -1063,15 +1063,12 @@ export declare const builtinWidgetDescriptors: {
1063
1063
  readonly critical: 'widgetSeverityCritical';
1064
1064
  };
1065
1065
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
1066
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
1067
1066
  };
1068
1067
  readonly label: {
1069
1068
  readonly kind: 'string';
1070
1069
  readonly labelId: 'widgetLabelThresholdLabel';
1071
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
1072
1070
  };
1073
1071
  };
1074
- readonly doc: "Severity bands over the heading in degrees (0 to 360, after folding). Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the needle keeps its own colour.";
1075
1072
  };
1076
1073
  readonly staleAfterSeconds: {
1077
1074
  readonly kind: 'number';
@@ -1079,7 +1076,6 @@ export declare const builtinWidgetDescriptors: {
1079
1076
  readonly min: 1;
1080
1077
  readonly labelId: 'widgetLabelStaleAfter';
1081
1078
  readonly helpId: 'widgetHintStaleAfter';
1082
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
1083
1079
  };
1084
1080
  readonly window: {
1085
1081
  readonly kind: 'number';
@@ -1087,34 +1083,29 @@ export declare const builtinWidgetDescriptors: {
1087
1083
  readonly min: 1;
1088
1084
  readonly labelId: 'widgetLabelWindow';
1089
1085
  readonly helpId: 'widgetHintWindow';
1090
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
1091
1086
  };
1092
- }>;
1093
- readonly 'progress-ring': WidgetDescriptor<"measurement", {
1087
+ }>>;
1088
+ readonly 'progress-ring': WidgetDescriptor<"measurement", DocumentedSpecs<{
1094
1089
  readonly title: {
1095
1090
  readonly kind: 'string';
1096
1091
  readonly labelId: 'widgetLabelTitle';
1097
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
1098
1092
  };
1099
1093
  readonly measurement: {
1100
1094
  readonly kind: 'string';
1101
1095
  readonly labelId: 'widgetLabelMeasurement';
1102
1096
  readonly helpId: 'widgetHintMeasurement';
1103
- readonly doc: 'Which measurement to display. Defaults to the first the datasource selects.';
1104
1097
  };
1105
1098
  readonly min: {
1106
1099
  readonly kind: 'number';
1107
1100
  readonly required: true;
1108
1101
  readonly labelId: 'widgetLabelMin';
1109
1102
  readonly helpId: 'widgetHintScaleMin';
1110
- readonly doc: 'Value at the empty end of the scale. Required: the widget does not guess a range.';
1111
1103
  };
1112
1104
  readonly max: {
1113
1105
  readonly kind: 'number';
1114
1106
  readonly required: true;
1115
1107
  readonly labelId: 'widgetLabelMax';
1116
1108
  readonly helpId: 'widgetHintScaleMax';
1117
- readonly doc: 'Value at the full end of the scale. Required, and above min.';
1118
1109
  };
1119
1110
  readonly readout: {
1120
1111
  readonly kind: "enum";
@@ -1125,12 +1116,10 @@ export declare const builtinWidgetDescriptors: {
1125
1116
  readonly value: "widgetReadoutValue";
1126
1117
  };
1127
1118
  readonly placeholderId: "widgetPlaceholderDefault";
1128
- readonly doc: "What the middle of the ring shows: the percent of the scale (default) or the value with its unit.";
1129
1119
  };
1130
1120
  readonly unit: {
1131
1121
  readonly kind: 'string';
1132
1122
  readonly labelId: 'widgetLabelUnit';
1133
- readonly doc: 'Unit suffix shown beside the value.';
1134
1123
  };
1135
1124
  readonly precision: {
1136
1125
  readonly kind: 'number';
@@ -1139,20 +1128,17 @@ export declare const builtinWidgetDescriptors: {
1139
1128
  readonly max: 100;
1140
1129
  readonly labelId: 'widgetLabelPrecision';
1141
1130
  readonly helpId: 'widgetHintPrecision';
1142
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
1143
1131
  };
1144
1132
  readonly thresholds: {
1145
1133
  readonly kind: 'list';
1146
1134
  readonly maxItems: 12;
1147
1135
  readonly labelId: 'widgetLabelThresholds';
1148
1136
  readonly helpId: 'widgetHintThresholds';
1149
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
1150
1137
  readonly item: {
1151
1138
  readonly value: {
1152
1139
  readonly kind: 'number';
1153
1140
  readonly required: true;
1154
1141
  readonly labelId: 'widgetLabelThresholdValue';
1155
- readonly doc: 'The value at which this band starts.';
1156
1142
  };
1157
1143
  readonly level: {
1158
1144
  readonly kind: 'enum';
@@ -1167,12 +1153,10 @@ export declare const builtinWidgetDescriptors: {
1167
1153
  readonly critical: 'widgetSeverityCritical';
1168
1154
  };
1169
1155
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
1170
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
1171
1156
  };
1172
1157
  readonly label: {
1173
1158
  readonly kind: 'string';
1174
1159
  readonly labelId: 'widgetLabelThresholdLabel';
1175
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
1176
1160
  };
1177
1161
  };
1178
1162
  };
@@ -1182,7 +1166,6 @@ export declare const builtinWidgetDescriptors: {
1182
1166
  readonly min: 1;
1183
1167
  readonly labelId: 'widgetLabelStaleAfter';
1184
1168
  readonly helpId: 'widgetHintStaleAfter';
1185
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
1186
1169
  };
1187
1170
  readonly window: {
1188
1171
  readonly kind: 'number';
@@ -1190,14 +1173,12 @@ export declare const builtinWidgetDescriptors: {
1190
1173
  readonly min: 1;
1191
1174
  readonly labelId: 'widgetLabelWindow';
1192
1175
  readonly helpId: 'widgetHintWindow';
1193
- readonly doc: 'Samples retained across ALL of the widget\'s measurements before the oldest are dropped. Bounds memory; only the chart draws them. Default 300.';
1194
1176
  };
1195
- }>;
1196
- readonly 'command-slider': WidgetDescriptor<"control", {
1177
+ }>>;
1178
+ readonly 'command-slider': WidgetDescriptor<"control", DocumentedSpecs<{
1197
1179
  readonly title: {
1198
1180
  readonly kind: 'string';
1199
1181
  readonly labelId: 'widgetLabelTitle';
1200
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
1201
1182
  };
1202
1183
  readonly commandName: {
1203
1184
  readonly kind: 'string';
@@ -1205,14 +1186,12 @@ export declare const builtinWidgetDescriptors: {
1205
1186
  readonly labelId: 'widgetCommandHeading';
1206
1187
  readonly helpId: 'widgetCommandFieldHint';
1207
1188
  readonly control: 'command-vocabulary';
1208
- readonly doc: 'Command key issued to the target device. Without it the control cannot send.';
1209
1189
  };
1210
1190
  readonly commandLabel: {
1211
1191
  readonly kind: 'string';
1212
1192
  readonly labelId: 'widgetCommandHeading';
1213
1193
  readonly helpId: 'widgetCommandFieldHint';
1214
1194
  readonly control: 'command-vocabulary';
1215
- readonly doc: 'Name of the control for assistive technology. Defaults to the command key.';
1216
1195
  };
1217
1196
  readonly parameterSchema: {
1218
1197
  readonly kind: 'string';
@@ -1220,39 +1199,43 @@ export declare const builtinWidgetDescriptors: {
1220
1199
  readonly labelId: 'widgetCommandHeading';
1221
1200
  readonly helpId: 'widgetCommandFieldHint';
1222
1201
  readonly control: 'command-vocabulary';
1223
- readonly doc: "The command's parameter descriptors, baked in as JSON at author time. Gives the control its range and its refusals.";
1224
1202
  };
1225
1203
  readonly parameter: {
1226
1204
  readonly kind: 'string';
1227
1205
  readonly labelId: 'widgetLabelParameter';
1228
1206
  readonly helpId: 'widgetHintControlParameter';
1229
- readonly doc: 'Which parameter of the command this control sets. May be left blank when the command has exactly one parameter of the right type.';
1230
1207
  };
1231
1208
  readonly min: {
1232
1209
  readonly kind: "number";
1233
1210
  readonly labelId: "widgetLabelMin";
1234
1211
  readonly helpId: "widgetHintSliderRange";
1235
- readonly doc: "Lowest value, used only when the command's parameter declares no minimum.";
1236
1212
  };
1237
1213
  readonly max: {
1238
1214
  readonly kind: "number";
1239
1215
  readonly labelId: "widgetLabelMax";
1240
1216
  readonly helpId: "widgetHintSliderRange";
1241
- readonly doc: "Highest value, used only when the command's parameter declares no maximum.";
1242
1217
  };
1243
1218
  readonly step: {
1244
1219
  readonly kind: "number";
1245
1220
  readonly min: 0;
1246
1221
  readonly labelId: "widgetLabelStep";
1247
1222
  readonly helpId: "widgetHintSliderStep";
1248
- readonly doc: "Distance between values. Defaults to 1 for a whole-number parameter, else a hundredth of the range.";
1249
1223
  };
1250
- }>;
1251
- readonly 'command-toggle': WidgetDescriptor<"control", {
1224
+ readonly mode: {
1225
+ readonly kind: "enum";
1226
+ readonly values: readonly ["slider", "stepper"];
1227
+ readonly labelId: "widgetLabelControlMode";
1228
+ readonly valueLabelIds: {
1229
+ readonly slider: "widgetControlModeSlider";
1230
+ readonly stepper: "widgetControlModeStepper";
1231
+ };
1232
+ readonly placeholderId: "widgetPlaceholderDefault";
1233
+ };
1234
+ }>>;
1235
+ readonly 'command-toggle': WidgetDescriptor<"control", DocumentedSpecs<{
1252
1236
  readonly title: {
1253
1237
  readonly kind: 'string';
1254
1238
  readonly labelId: 'widgetLabelTitle';
1255
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
1256
1239
  };
1257
1240
  readonly commandName: {
1258
1241
  readonly kind: 'string';
@@ -1260,14 +1243,12 @@ export declare const builtinWidgetDescriptors: {
1260
1243
  readonly labelId: 'widgetCommandHeading';
1261
1244
  readonly helpId: 'widgetCommandFieldHint';
1262
1245
  readonly control: 'command-vocabulary';
1263
- readonly doc: 'Command key issued to the target device. Without it the control cannot send.';
1264
1246
  };
1265
1247
  readonly commandLabel: {
1266
1248
  readonly kind: 'string';
1267
1249
  readonly labelId: 'widgetCommandHeading';
1268
1250
  readonly helpId: 'widgetCommandFieldHint';
1269
1251
  readonly control: 'command-vocabulary';
1270
- readonly doc: 'Name of the control for assistive technology. Defaults to the command key.';
1271
1252
  };
1272
1253
  readonly parameterSchema: {
1273
1254
  readonly kind: 'string';
@@ -1275,26 +1256,22 @@ export declare const builtinWidgetDescriptors: {
1275
1256
  readonly labelId: 'widgetCommandHeading';
1276
1257
  readonly helpId: 'widgetCommandFieldHint';
1277
1258
  readonly control: 'command-vocabulary';
1278
- readonly doc: "The command's parameter descriptors, baked in as JSON at author time. Gives the control its range and its refusals.";
1279
1259
  };
1280
1260
  readonly parameter: {
1281
1261
  readonly kind: 'string';
1282
1262
  readonly labelId: 'widgetLabelParameter';
1283
1263
  readonly helpId: 'widgetHintControlParameter';
1284
- readonly doc: 'Which parameter of the command this control sets. May be left blank when the command has exactly one parameter of the right type.';
1285
1264
  };
1286
- }>;
1287
- readonly 'stat-card': WidgetDescriptor<"aggregate", {
1265
+ }>>;
1266
+ readonly 'stat-card': WidgetDescriptor<"aggregate", DocumentedSpecs<{
1288
1267
  readonly title: {
1289
1268
  readonly kind: 'string';
1290
1269
  readonly labelId: 'widgetLabelTitle';
1291
- readonly doc: 'Heading shown in the widget frame. Defaults to the displayed measurement name.';
1292
1270
  };
1293
1271
  readonly measurement: {
1294
1272
  readonly kind: 'string';
1295
1273
  readonly labelId: 'widgetLabelMeasurement';
1296
1274
  readonly helpId: 'widgetHintMeasurement';
1297
- readonly doc: 'Which measurement to display. Defaults to the first the datasource selects.';
1298
1275
  };
1299
1276
  readonly stat: {
1300
1277
  readonly kind: "enum";
@@ -1310,12 +1287,10 @@ export declare const builtinWidgetDescriptors: {
1310
1287
  readonly last: "widgetStatLast";
1311
1288
  };
1312
1289
  readonly placeholderId: "widgetPlaceholderDefault";
1313
- readonly doc: "Which figure to show. Default average.";
1314
1290
  };
1315
1291
  readonly unit: {
1316
1292
  readonly kind: 'string';
1317
1293
  readonly labelId: 'widgetLabelUnit';
1318
- readonly doc: 'Unit suffix shown beside the value.';
1319
1294
  };
1320
1295
  readonly precision: {
1321
1296
  readonly kind: 'number';
@@ -1324,20 +1299,17 @@ export declare const builtinWidgetDescriptors: {
1324
1299
  readonly max: 100;
1325
1300
  readonly labelId: 'widgetLabelPrecision';
1326
1301
  readonly helpId: 'widgetHintPrecision';
1327
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
1328
1302
  };
1329
1303
  readonly thresholds: {
1330
1304
  readonly kind: 'list';
1331
1305
  readonly maxItems: 12;
1332
1306
  readonly labelId: 'widgetLabelThresholds';
1333
1307
  readonly helpId: 'widgetHintThresholds';
1334
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
1335
1308
  readonly item: {
1336
1309
  readonly value: {
1337
1310
  readonly kind: 'number';
1338
1311
  readonly required: true;
1339
1312
  readonly labelId: 'widgetLabelThresholdValue';
1340
- readonly doc: 'The value at which this band starts.';
1341
1313
  };
1342
1314
  readonly level: {
1343
1315
  readonly kind: 'enum';
@@ -1352,15 +1324,18 @@ export declare const builtinWidgetDescriptors: {
1352
1324
  readonly critical: 'widgetSeverityCritical';
1353
1325
  };
1354
1326
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
1355
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
1356
1327
  };
1357
1328
  readonly label: {
1358
1329
  readonly kind: 'string';
1359
1330
  readonly labelId: 'widgetLabelThresholdLabel';
1360
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
1361
1331
  };
1362
1332
  };
1363
1333
  };
1334
+ readonly sparkline: {
1335
+ readonly kind: "boolean";
1336
+ readonly labelId: "widgetLabelSparkline";
1337
+ readonly helpId: "widgetHintSparkline";
1338
+ };
1364
1339
  readonly windowSeconds: {
1365
1340
  readonly kind: 'number';
1366
1341
  readonly integer: true;
@@ -1368,14 +1343,12 @@ export declare const builtinWidgetDescriptors: {
1368
1343
  readonly max: 604800;
1369
1344
  readonly labelId: 'widgetLabelWindowSeconds';
1370
1345
  readonly helpId: 'widgetHintWindowSeconds';
1371
- readonly doc: 'Seconds of history the widget covers, back from now. Leave unset to follow the board’s time range; set it to pin this widget to a fixed span that the viewer’s range picker does not change. 60 to 604800.';
1372
1346
  };
1373
- }>;
1374
- readonly 'bar-chart': WidgetDescriptor<"measurement", {
1347
+ }>>;
1348
+ readonly 'bar-chart': WidgetDescriptor<"measurement", DocumentedSpecs<{
1375
1349
  readonly title: {
1376
1350
  readonly kind: 'string';
1377
1351
  readonly labelId: 'widgetLabelTitle';
1378
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
1379
1352
  };
1380
1353
  readonly groupBy: {
1381
1354
  readonly kind: "enum";
@@ -1387,18 +1360,15 @@ export declare const builtinWidgetDescriptors: {
1387
1360
  readonly device: "widgetGroupByDevice";
1388
1361
  };
1389
1362
  readonly placeholderId: "widgetPlaceholderDefault";
1390
- readonly doc: "One bar per measurement (the default), or per device of the group for the measurement set below.";
1391
1363
  };
1392
1364
  readonly measurement: {
1393
1365
  readonly kind: 'string';
1394
1366
  readonly labelId: 'widgetLabelMeasurement';
1395
1367
  readonly helpId: 'widgetHintMeasurement';
1396
- readonly doc: 'Which measurement to display. Defaults to the first the datasource selects.';
1397
1368
  };
1398
1369
  readonly unit: {
1399
1370
  readonly kind: 'string';
1400
1371
  readonly labelId: 'widgetLabelUnit';
1401
- readonly doc: 'Unit suffix shown beside the value.';
1402
1372
  };
1403
1373
  readonly precision: {
1404
1374
  readonly kind: 'number';
@@ -1407,7 +1377,6 @@ export declare const builtinWidgetDescriptors: {
1407
1377
  readonly max: 100;
1408
1378
  readonly labelId: 'widgetLabelPrecision';
1409
1379
  readonly helpId: 'widgetHintPrecision';
1410
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
1411
1380
  };
1412
1381
  readonly sort: {
1413
1382
  readonly kind: 'enum';
@@ -1419,19 +1388,16 @@ export declare const builtinWidgetDescriptors: {
1419
1388
  readonly descending: 'widgetSortDescending';
1420
1389
  };
1421
1390
  readonly placeholderId: 'widgetPlaceholderDefault';
1422
- readonly doc: 'Order of the categories. Default: as the data source lists them.';
1423
1391
  };
1424
- }>;
1425
- readonly 'pie-chart': WidgetDescriptor<"measurement", {
1392
+ }>>;
1393
+ readonly 'pie-chart': WidgetDescriptor<"measurement", DocumentedSpecs<{
1426
1394
  readonly title: {
1427
1395
  readonly kind: 'string';
1428
1396
  readonly labelId: 'widgetLabelTitle';
1429
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
1430
1397
  };
1431
1398
  readonly unit: {
1432
1399
  readonly kind: 'string';
1433
1400
  readonly labelId: 'widgetLabelUnit';
1434
- readonly doc: 'Unit suffix shown beside the value.';
1435
1401
  };
1436
1402
  readonly precision: {
1437
1403
  readonly kind: 'number';
@@ -1440,7 +1406,6 @@ export declare const builtinWidgetDescriptors: {
1440
1406
  readonly max: 100;
1441
1407
  readonly labelId: 'widgetLabelPrecision';
1442
1408
  readonly helpId: 'widgetHintPrecision';
1443
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
1444
1409
  };
1445
1410
  readonly sort: {
1446
1411
  readonly kind: 'enum';
@@ -1452,37 +1417,31 @@ export declare const builtinWidgetDescriptors: {
1452
1417
  readonly descending: 'widgetSortDescending';
1453
1418
  };
1454
1419
  readonly placeholderId: 'widgetPlaceholderDefault';
1455
- readonly doc: 'Order of the categories. Default: as the data source lists them.';
1456
1420
  };
1457
- }>;
1458
- readonly 'fleet-table': WidgetDescriptor<"measurement", {
1421
+ }>>;
1422
+ readonly 'fleet-table': WidgetDescriptor<"measurement", DocumentedSpecs<{
1459
1423
  readonly title: {
1460
1424
  readonly kind: 'string';
1461
1425
  readonly labelId: 'widgetLabelTitle';
1462
- readonly doc: 'Heading shown in the widget frame. Blank hides the frame heading.';
1463
1426
  };
1464
1427
  readonly columns: {
1465
1428
  readonly kind: 'list';
1466
1429
  readonly maxItems: 24;
1467
1430
  readonly labelId: 'widgetLabelColumns';
1468
1431
  readonly helpId: 'widgetHintColumns';
1469
- readonly doc: 'Heading, unit and precision per measurement column; a column with none shows its name.';
1470
1432
  readonly item: {
1471
1433
  readonly measurement: {
1472
1434
  readonly kind: 'string';
1473
1435
  readonly required: true;
1474
1436
  readonly labelId: 'widgetLabelMeasurement';
1475
- readonly doc: 'The measurement column this entry applies to.';
1476
1437
  };
1477
1438
  readonly label: {
1478
1439
  readonly kind: 'string';
1479
1440
  readonly labelId: 'widgetLabelColumnHeading';
1480
- readonly doc: 'Column heading. Defaults to the measurement name.';
1481
1441
  };
1482
1442
  readonly unit: {
1483
1443
  readonly kind: 'string';
1484
1444
  readonly labelId: 'widgetLabelUnit';
1485
- readonly doc: 'Unit suffix shown beside the value.';
1486
1445
  };
1487
1446
  readonly precision: {
1488
1447
  readonly kind: 'number';
@@ -1491,7 +1450,6 @@ export declare const builtinWidgetDescriptors: {
1491
1450
  readonly max: 100;
1492
1451
  readonly labelId: 'widgetLabelPrecision';
1493
1452
  readonly helpId: 'widgetHintPrecision';
1494
- readonly doc: 'Decimal places to round displayed values to. Unset rounds to at most 3 decimals (4 significant digits under 1).';
1495
1453
  };
1496
1454
  };
1497
1455
  };
@@ -1500,13 +1458,11 @@ export declare const builtinWidgetDescriptors: {
1500
1458
  readonly maxItems: 12;
1501
1459
  readonly labelId: 'widgetLabelThresholds';
1502
1460
  readonly helpId: 'widgetHintThresholds';
1503
- readonly doc: 'Severity bands over the value. Each entry starts a band at its value that runs to the next entry; below the first, and in a normal band, the widget keeps its own colour.';
1504
1461
  readonly item: {
1505
1462
  readonly value: {
1506
1463
  readonly kind: 'number';
1507
1464
  readonly required: true;
1508
1465
  readonly labelId: 'widgetLabelThresholdValue';
1509
- readonly doc: 'The value at which this band starts.';
1510
1466
  };
1511
1467
  readonly level: {
1512
1468
  readonly kind: 'enum';
@@ -1521,18 +1477,15 @@ export declare const builtinWidgetDescriptors: {
1521
1477
  readonly critical: 'widgetSeverityCritical';
1522
1478
  };
1523
1479
  readonly placeholderId: 'widgetPlaceholderThresholdLevel';
1524
- readonly doc: 'The severity of this band. The theme decides the colour; normal has none.';
1525
1480
  };
1526
1481
  readonly label: {
1527
1482
  readonly kind: 'string';
1528
1483
  readonly labelId: 'widgetLabelThresholdLabel';
1529
- readonly doc: 'Text shown on the chart line for this threshold. Defaults to its value.';
1530
1484
  };
1531
1485
  readonly measurement: {
1532
1486
  readonly kind: 'string';
1533
1487
  readonly required: true;
1534
1488
  readonly labelId: 'widgetLabelMeasurement';
1535
- readonly doc: 'The measurement column this entry applies to.';
1536
1489
  };
1537
1490
  };
1538
1491
  };
@@ -1542,7 +1495,6 @@ export declare const builtinWidgetDescriptors: {
1542
1495
  readonly min: 1;
1543
1496
  readonly labelId: 'widgetLabelStaleAfter';
1544
1497
  readonly helpId: 'widgetHintStaleAfter';
1545
- readonly doc: 'Seconds after which the newest sample is called stale: the value is greyed out and badged. Unset shows the sample age only and never marks the widget stale.';
1546
1498
  };
1547
1499
  readonly ageLagSeconds: {
1548
1500
  readonly kind: "number";
@@ -1550,18 +1502,15 @@ export declare const builtinWidgetDescriptors: {
1550
1502
  readonly min: 1;
1551
1503
  readonly labelId: "widgetLabelAgeLag";
1552
1504
  readonly helpId: "widgetHintAgeLag";
1553
- readonly doc: "Show a reading's age under it only when the reading is at least this many seconds older than the newest reading in the table (or stale). Unset shows every reading's age.";
1554
1505
  };
1555
1506
  readonly sortBy: {
1556
1507
  readonly kind: "string";
1557
1508
  readonly labelId: "widgetLabelSortBy";
1558
1509
  readonly helpId: "widgetHintSortBy";
1559
- readonly doc: "The measurement the table is ordered by. Blank orders by device name.";
1560
1510
  };
1561
1511
  readonly sortDescending: {
1562
1512
  readonly kind: "boolean";
1563
1513
  readonly labelId: "widgetLabelSortDescending";
1564
- readonly doc: "Largest first.";
1565
1514
  };
1566
1515
  readonly pageSize: {
1567
1516
  readonly kind: "number";
@@ -1569,14 +1518,12 @@ export declare const builtinWidgetDescriptors: {
1569
1518
  readonly min: 5;
1570
1519
  readonly max: 100;
1571
1520
  readonly labelId: "widgetLabelPageSize";
1572
- readonly doc: "Devices per page. Default 20.";
1573
1521
  };
1574
1522
  readonly selectionTarget: {
1575
1523
  readonly kind: 'string';
1576
1524
  readonly labelId: 'widgetLabelTargetSlot';
1577
1525
  readonly helpId: 'widgetTargetSlotHint';
1578
1526
  readonly control: 'slot-target';
1579
- readonly doc: 'Name of the slot this widget re-points when the viewer picks an entity.';
1580
1527
  };
1581
1528
  readonly windowSeconds: {
1582
1529
  readonly kind: 'number';
@@ -1585,8 +1532,102 @@ export declare const builtinWidgetDescriptors: {
1585
1532
  readonly max: 604800;
1586
1533
  readonly labelId: 'widgetLabelWindowSeconds';
1587
1534
  readonly helpId: 'widgetHintWindowSeconds';
1588
- readonly doc: 'Seconds of history the widget covers, back from now. Leave unset to follow the board’s time range; set it to pin this widget to a fixed span that the viewer’s range picker does not change. 60 to 604800.';
1589
1535
  };
1590
- }>;
1536
+ }>>;
1537
+ readonly 'fleet-count': WidgetDescriptor<"measurement", DocumentedSpecs<{
1538
+ readonly title: {
1539
+ readonly kind: 'string';
1540
+ readonly labelId: 'widgetLabelTitle';
1541
+ };
1542
+ readonly show: {
1543
+ readonly kind: "enum";
1544
+ readonly values: readonly ["attention", "devices"];
1545
+ readonly labelId: "widgetLabelFleetShow";
1546
+ readonly helpId: "widgetHintFleetShow";
1547
+ readonly valueLabelIds: {
1548
+ readonly attention: "widgetFleetShowAttention";
1549
+ readonly devices: "widgetFleetShowDevices";
1550
+ };
1551
+ readonly placeholderId: "widgetPlaceholderDefault";
1552
+ };
1553
+ readonly measurement: {
1554
+ readonly kind: 'string';
1555
+ readonly labelId: 'widgetLabelMeasurement';
1556
+ readonly helpId: 'widgetHintMeasurement';
1557
+ };
1558
+ readonly thresholds: {
1559
+ readonly kind: 'list';
1560
+ readonly maxItems: 12;
1561
+ readonly labelId: 'widgetLabelThresholds';
1562
+ readonly helpId: 'widgetHintThresholds';
1563
+ readonly item: {
1564
+ readonly value: {
1565
+ readonly kind: 'number';
1566
+ readonly required: true;
1567
+ readonly labelId: 'widgetLabelThresholdValue';
1568
+ };
1569
+ readonly level: {
1570
+ readonly kind: 'enum';
1571
+ readonly required: true;
1572
+ readonly values: readonly ["normal", "warning", "minor", "major", "critical"];
1573
+ readonly labelId: 'widgetLabelThresholdLevel';
1574
+ readonly valueLabelIds: {
1575
+ readonly normal: 'widgetSeverityNormal';
1576
+ readonly warning: 'widgetSeverityWarning';
1577
+ readonly minor: 'widgetSeverityMinor';
1578
+ readonly major: 'widgetSeverityMajor';
1579
+ readonly critical: 'widgetSeverityCritical';
1580
+ };
1581
+ readonly placeholderId: 'widgetPlaceholderThresholdLevel';
1582
+ };
1583
+ readonly label: {
1584
+ readonly kind: 'string';
1585
+ readonly labelId: 'widgetLabelThresholdLabel';
1586
+ };
1587
+ };
1588
+ };
1589
+ readonly staleAfterSeconds: {
1590
+ readonly kind: 'number';
1591
+ readonly integer: true;
1592
+ readonly min: 1;
1593
+ readonly labelId: 'widgetLabelStaleAfter';
1594
+ readonly helpId: 'widgetHintStaleAfter';
1595
+ };
1596
+ readonly windowSeconds: {
1597
+ readonly kind: 'number';
1598
+ readonly integer: true;
1599
+ readonly min: 60;
1600
+ readonly max: 604800;
1601
+ readonly labelId: 'widgetLabelWindowSeconds';
1602
+ readonly helpId: 'widgetHintWindowSeconds';
1603
+ };
1604
+ }>>;
1605
+ readonly 'device-status': WidgetDescriptor<"measurement", DocumentedSpecs<{
1606
+ readonly title: {
1607
+ readonly kind: 'string';
1608
+ readonly labelId: 'widgetLabelTitle';
1609
+ };
1610
+ readonly staleAfterSeconds: {
1611
+ readonly kind: 'number';
1612
+ readonly integer: true;
1613
+ readonly min: 1;
1614
+ readonly labelId: 'widgetLabelStaleAfter';
1615
+ readonly helpId: 'widgetHintStaleAfter';
1616
+ };
1617
+ }>>;
1618
+ readonly 'online-doughnut': WidgetDescriptor<"measurement", DocumentedSpecs<{
1619
+ readonly title: {
1620
+ readonly kind: 'string';
1621
+ readonly labelId: 'widgetLabelTitle';
1622
+ };
1623
+ readonly staleAfterSeconds: {
1624
+ readonly kind: 'number';
1625
+ readonly integer: true;
1626
+ readonly min: 1;
1627
+ readonly labelId: 'widgetLabelStaleAfter';
1628
+ readonly helpId: 'widgetHintStaleAfter';
1629
+ };
1630
+ }>>;
1591
1631
  };
1592
1632
  export declare const builtinWidgetCatalog: import("@devicechain/dashboards").WidgetCatalog;
1633
+ export {};