@columenlabs/lumen-ui 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +1 -1
  2. package/dist/assistant-panel.js +1 -1
  3. package/dist/coverage-calendar-map.js +1 -1
  4. package/dist/coverage-cells.d.ts +2 -2
  5. package/dist/coverage-map.js +4 -10
  6. package/dist/details-table.js +1 -5
  7. package/dist/form-issues.js +1 -1
  8. package/dist/frame-script.js +1 -1
  9. package/dist/growth-chart.d.ts +9 -9
  10. package/dist/joins.d.ts +4 -3
  11. package/dist/joins.js +1 -1
  12. package/dist/lumen-code.js +1 -5
  13. package/dist/lumen-drawer.js +1 -3
  14. package/dist/lumen-filter.js +5 -13
  15. package/dist/lumen-geo-map.js +15 -1
  16. package/dist/lumen-grid.js +2 -4
  17. package/dist/lumen-layout.js +1 -1
  18. package/dist/lumen-links.d.ts +1 -1
  19. package/dist/lumen-selector.js +1 -1
  20. package/dist/lumen-source.js +2 -4
  21. package/dist/lumen-tab-drawer.js +1 -1
  22. package/dist/lumen-toast.d.ts +4 -4
  23. package/dist/lumen-view-card.js +1 -1
  24. package/dist/lumen-view.js +2 -4
  25. package/dist/lumen-widget.d.ts +170 -170
  26. package/dist/lumen-widget.js +4 -8
  27. package/dist/market/indicator-picker.js +1 -1
  28. package/dist/market/live.d.ts +1 -1
  29. package/dist/market/lumen-chart.js +1 -1
  30. package/dist/market/price-chart.d.ts +10 -10
  31. package/dist/nav.js +1 -1
  32. package/dist/notifications.js +1 -3
  33. package/dist/overview.js +1 -1
  34. package/dist/page.js +1 -1
  35. package/dist/pager.js +1 -1
  36. package/dist/prefs.d.ts +25 -25
  37. package/dist/schedules.js +1 -1
  38. package/dist/settings.js +1 -3
  39. package/dist/shell.js +1 -1
  40. package/dist/summary-cards.js +2 -6
  41. package/dist/symbol-sheet.js +1 -1
  42. package/dist/tasks.d.ts +1 -1
  43. package/dist/tasks.js +1 -1
  44. package/dist/tile.js +2 -4
  45. package/dist/ui/badge.d.ts +1 -1
  46. package/dist/ui/button.d.ts +2 -2
  47. package/dist/ui/chart.d.ts +2 -2
  48. package/dist/ui/chart.js +2 -5
  49. package/dist/ui/field.d.ts +1 -1
  50. package/dist/ui/input-group.d.ts +2 -2
  51. package/dist/ui/item.d.ts +3 -3
  52. package/dist/ui/sidebar.d.ts +1 -1
  53. package/dist/ui/sidebar.js +1 -1
  54. package/dist/ui/toggle.d.ts +1 -1
  55. package/dist/view-edit-cell.js +1 -4
  56. package/dist/view-editor.js +1 -1
  57. package/dist/view-formulas.d.ts +1 -1
  58. package/dist/view-model.d.ts +15 -15
  59. package/dist/whats-new.js +1 -1
  60. package/dist/widget-settings.d.ts +139 -139
  61. package/dist/widget-settings.js +4 -4
  62. package/dist/widget-thumbs.d.ts +1 -1
  63. package/dist/widget-thumbs.js +1 -1
  64. package/dist/workspace-keys.d.ts +1 -1
  65. package/dist/workspaces.js +1 -1
  66. package/package.json +5 -5
@@ -56,34 +56,49 @@ export declare function WidgetSettings<T>({ card, set, domain, }: {
56
56
  }): import("react").JSX.Element;
57
57
  /** Whether a widget reads the view's rows (a chart of symbols reads its own data). */
58
58
  export declare const readsRows: (card: ViewWidget) => card is {
59
- kind: "table";
60
- style: "table";
61
59
  id: string;
62
60
  title: string | null;
63
61
  w: number;
62
+ h?: number | undefined;
63
+ x?: number | undefined;
64
+ y?: number | undefined;
65
+ phone?: {
66
+ x: number;
67
+ y: number;
68
+ w: number;
69
+ h?: number | undefined;
70
+ } | undefined;
64
71
  filter: {
65
72
  key: string;
66
73
  value: string;
67
74
  not?: boolean | undefined;
68
- op?: "gt" | "lt" | "eq" | "between" | undefined;
69
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
75
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
76
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
70
77
  }[];
78
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
79
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
80
+ kind: "table";
81
+ style: "table";
71
82
  table?: {
72
- shape: "table" | "group" | "pivot";
83
+ shape: "group" | "pivot" | "table";
73
84
  columns: string[];
85
+ hidden?: string[] | undefined;
74
86
  chips: {
75
87
  key: string;
76
- placement: "inline" | "column";
88
+ placement: "column" | "inline";
77
89
  }[];
90
+ formats?: Record<string, "compact" | "integer" | "number" | "percent" | "price" | "price_rounded" | "price_signed" | "rounded" | "signed" | "weight"> | undefined;
91
+ aggs?: Record<string, "count" | "distinct" | "first" | "last" | "max" | "mean" | "min" | "none" | "sum"> | undefined;
78
92
  group: {
79
93
  fields: string[];
80
94
  default: string | null;
81
95
  };
96
+ subgroup?: string | null | undefined;
82
97
  pivot: {
83
98
  rows: string;
84
99
  columns: string;
85
100
  value: string;
86
- agg: "max" | "min" | "first" | "last" | "sum" | "count" | "mean" | "distinct";
101
+ agg: "count" | "distinct" | "first" | "last" | "max" | "mean" | "min" | "sum";
87
102
  } | null;
88
103
  sort: {
89
104
  key: string;
@@ -91,14 +106,14 @@ export declare const readsRows: (card: ViewWidget) => card is {
91
106
  } | null;
92
107
  pagination: {
93
108
  on: boolean;
94
- size: 100 | 50 | 25 | 250;
109
+ size: 25 | 50 | 100 | 250;
95
110
  };
96
- hidden?: string[] | undefined;
97
- formats?: Record<string, "number" | "weight" | "compact" | "rounded" | "price" | "price_rounded" | "price_signed" | "percent" | "signed" | "integer"> | undefined;
98
- aggs?: Record<string, "none" | "max" | "min" | "first" | "last" | "sum" | "count" | "mean" | "distinct"> | undefined;
99
- subgroup?: string | null | undefined;
100
- width?: "scroll" | "fit" | undefined;
111
+ width?: "fit" | "scroll" | undefined;
101
112
  } | undefined;
113
+ } | {
114
+ id: string;
115
+ title: string | null;
116
+ w: number;
102
117
  h?: number | undefined;
103
118
  x?: number | undefined;
104
119
  y?: number | undefined;
@@ -108,25 +123,24 @@ export declare const readsRows: (card: ViewWidget) => card is {
108
123
  w: number;
109
124
  h?: number | undefined;
110
125
  } | undefined;
111
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
112
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
113
- } | {
126
+ filter: {
127
+ key: string;
128
+ value: string;
129
+ not?: boolean | undefined;
130
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
131
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
132
+ }[];
133
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
134
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
114
135
  kind: "table";
115
136
  style: "top_n";
116
137
  sort: string;
117
138
  desc: boolean;
118
139
  n: number;
119
140
  columns: string[];
141
+ } | {
120
142
  id: string;
121
143
  title: string | null;
122
- w: number;
123
- filter: {
124
- key: string;
125
- value: string;
126
- not?: boolean | undefined;
127
- op?: "gt" | "lt" | "eq" | "between" | undefined;
128
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
129
- }[];
130
144
  h?: number | undefined;
131
145
  x?: number | undefined;
132
146
  y?: number | undefined;
@@ -136,9 +150,15 @@ export declare const readsRows: (card: ViewWidget) => card is {
136
150
  w: number;
137
151
  h?: number | undefined;
138
152
  } | undefined;
139
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
140
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
141
- } | {
153
+ filter: {
154
+ key: string;
155
+ value: string;
156
+ not?: boolean | undefined;
157
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
158
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
159
+ }[];
160
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
161
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
142
162
  kind: "metric";
143
163
  style: "number" | "progress_bar" | "progress_circle";
144
164
  w: number;
@@ -146,32 +166,32 @@ export declare const readsRows: (card: ViewWidget) => card is {
146
166
  key: string;
147
167
  label: string;
148
168
  field: string;
149
- agg: "max" | "min" | "first" | "last" | "sum" | "count" | "mean" | "distinct";
169
+ agg: "count" | "distinct" | "first" | "last" | "max" | "mean" | "min" | "sum";
150
170
  filter: {
151
171
  key: string;
152
172
  value: string;
153
173
  not?: boolean | undefined;
154
- op?: "gt" | "lt" | "eq" | "between" | undefined;
155
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
174
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
175
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
156
176
  }[];
157
177
  sign: boolean;
158
178
  suffix: string;
159
179
  lines: ({
160
180
  kind: "value";
161
181
  field: string;
162
- agg: "max" | "min" | "first" | "last" | "sum" | "count" | "mean" | "distinct";
182
+ agg: "count" | "distinct" | "first" | "last" | "max" | "mean" | "min" | "sum";
163
183
  filter: {
164
184
  key: string;
165
185
  value: string;
166
186
  not?: boolean | undefined;
167
- op?: "gt" | "lt" | "eq" | "between" | undefined;
168
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
187
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
188
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
169
189
  }[];
170
190
  suffix: string;
171
191
  } | {
172
192
  kind: "pct";
173
193
  field: string;
174
- agg: "max" | "min" | "first" | "last" | "sum" | "count" | "mean" | "distinct";
194
+ agg: "count" | "distinct" | "first" | "last" | "max" | "mean" | "min" | "sum";
175
195
  } | {
176
196
  kind: "text";
177
197
  text: string;
@@ -179,21 +199,16 @@ export declare const readsRows: (card: ViewWidget) => card is {
179
199
  } | {
180
200
  key: string;
181
201
  };
182
- id: string;
183
- title: string | null;
184
- filter: {
185
- key: string;
186
- value: string;
187
- not?: boolean | undefined;
188
- op?: "gt" | "lt" | "eq" | "between" | undefined;
189
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
190
- }[];
191
202
  target?: number | undefined;
192
203
  meter?: "health" | "usage" | undefined;
193
204
  bands?: {
194
205
  warn: number;
195
206
  bad: number;
196
207
  } | undefined;
208
+ } | {
209
+ id: string;
210
+ title: string | null;
211
+ w: number;
197
212
  h?: number | undefined;
198
213
  x?: number | undefined;
199
214
  y?: number | undefined;
@@ -203,51 +218,47 @@ export declare const readsRows: (card: ViewWidget) => card is {
203
218
  w: number;
204
219
  h?: number | undefined;
205
220
  } | undefined;
206
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
207
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
208
- } | {
209
- kind: "metric";
210
- style: "row";
211
- id: string;
212
- title: string | null;
213
- w: number;
214
221
  filter: {
215
222
  key: string;
216
223
  value: string;
217
224
  not?: boolean | undefined;
218
- op?: "gt" | "lt" | "eq" | "between" | undefined;
219
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
225
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
226
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
220
227
  }[];
228
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
229
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
230
+ kind: "metric";
231
+ style: "row";
221
232
  tiles?: ({
222
233
  key: string;
223
234
  label: string;
224
235
  field: string;
225
- agg: "max" | "min" | "first" | "last" | "sum" | "count" | "mean" | "distinct";
236
+ agg: "count" | "distinct" | "first" | "last" | "max" | "mean" | "min" | "sum";
226
237
  filter: {
227
238
  key: string;
228
239
  value: string;
229
240
  not?: boolean | undefined;
230
- op?: "gt" | "lt" | "eq" | "between" | undefined;
231
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
241
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
242
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
232
243
  }[];
233
244
  sign: boolean;
234
245
  suffix: string;
235
246
  lines: ({
236
247
  kind: "value";
237
248
  field: string;
238
- agg: "max" | "min" | "first" | "last" | "sum" | "count" | "mean" | "distinct";
249
+ agg: "count" | "distinct" | "first" | "last" | "max" | "mean" | "min" | "sum";
239
250
  filter: {
240
251
  key: string;
241
252
  value: string;
242
253
  not?: boolean | undefined;
243
- op?: "gt" | "lt" | "eq" | "between" | undefined;
244
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
254
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
255
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
245
256
  }[];
246
257
  suffix: string;
247
258
  } | {
248
259
  kind: "pct";
249
260
  field: string;
250
- agg: "max" | "min" | "first" | "last" | "sum" | "count" | "mean" | "distinct";
261
+ agg: "count" | "distinct" | "first" | "last" | "max" | "mean" | "min" | "sum";
251
262
  } | {
252
263
  kind: "text";
253
264
  text: string;
@@ -257,6 +268,9 @@ export declare const readsRows: (card: ViewWidget) => card is {
257
268
  })[] | undefined;
258
269
  rank?: string | undefined;
259
270
  cash?: boolean | undefined;
271
+ } | {
272
+ id: string;
273
+ title: string | null;
260
274
  h?: number | undefined;
261
275
  x?: number | undefined;
262
276
  y?: number | undefined;
@@ -266,25 +280,26 @@ export declare const readsRows: (card: ViewWidget) => card is {
266
280
  w: number;
267
281
  h?: number | undefined;
268
282
  } | undefined;
269
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
270
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
271
- } | {
283
+ filter: {
284
+ key: string;
285
+ value: string;
286
+ not?: boolean | undefined;
287
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
288
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
289
+ }[];
290
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
291
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
272
292
  w: number;
273
293
  date: string;
274
294
  values: string[];
275
- bucket: "month" | "week" | "year" | "day";
276
- agg: "last" | "sum" | "count" | "mean";
295
+ bucket: "day" | "month" | "week" | "year";
296
+ agg: "count" | "last" | "mean" | "sum";
277
297
  kind: "metric";
278
298
  style: "spark" | "tracker";
299
+ } | {
279
300
  id: string;
280
301
  title: string | null;
281
- filter: {
282
- key: string;
283
- value: string;
284
- not?: boolean | undefined;
285
- op?: "gt" | "lt" | "eq" | "between" | undefined;
286
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
287
- }[];
302
+ w: number;
288
303
  h?: number | undefined;
289
304
  x?: number | undefined;
290
305
  y?: number | undefined;
@@ -294,24 +309,24 @@ export declare const readsRows: (card: ViewWidget) => card is {
294
309
  w: number;
295
310
  h?: number | undefined;
296
311
  } | undefined;
297
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
298
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
299
- } | {
312
+ filter: {
313
+ key: string;
314
+ value: string;
315
+ not?: boolean | undefined;
316
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
317
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
318
+ }[];
319
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
320
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
300
321
  kind: "allocation";
301
322
  style: "bar";
302
323
  by: string;
303
324
  value: string;
304
325
  max: number;
326
+ } | {
305
327
  id: string;
306
328
  title: string | null;
307
329
  w: number;
308
- filter: {
309
- key: string;
310
- value: string;
311
- not?: boolean | undefined;
312
- op?: "gt" | "lt" | "eq" | "between" | undefined;
313
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
314
- }[];
315
330
  h?: number | undefined;
316
331
  x?: number | undefined;
317
332
  y?: number | undefined;
@@ -321,24 +336,24 @@ export declare const readsRows: (card: ViewWidget) => card is {
321
336
  w: number;
322
337
  h?: number | undefined;
323
338
  } | undefined;
324
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
325
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
326
- } | {
339
+ filter: {
340
+ key: string;
341
+ value: string;
342
+ not?: boolean | undefined;
343
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
344
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
345
+ }[];
346
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
347
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
327
348
  kind: "allocation";
328
349
  style: "donut";
329
350
  by: string;
330
351
  value: string;
331
352
  max: number;
353
+ } | {
332
354
  id: string;
333
355
  title: string | null;
334
356
  w: number;
335
- filter: {
336
- key: string;
337
- value: string;
338
- not?: boolean | undefined;
339
- op?: "gt" | "lt" | "eq" | "between" | undefined;
340
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
341
- }[];
342
357
  h?: number | undefined;
343
358
  x?: number | undefined;
344
359
  y?: number | undefined;
@@ -348,27 +363,27 @@ export declare const readsRows: (card: ViewWidget) => card is {
348
363
  w: number;
349
364
  h?: number | undefined;
350
365
  } | undefined;
351
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
352
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
353
- } | {
366
+ filter: {
367
+ key: string;
368
+ value: string;
369
+ not?: boolean | undefined;
370
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
371
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
372
+ }[];
373
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
374
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
354
375
  kind: "allocation";
355
376
  style: "bar_list";
356
377
  by: string;
357
378
  value: string;
358
379
  signed: boolean;
380
+ stack?: string | undefined;
359
381
  desc: boolean;
360
382
  n: number;
383
+ } | {
361
384
  id: string;
362
385
  title: string | null;
363
386
  w: number;
364
- filter: {
365
- key: string;
366
- value: string;
367
- not?: boolean | undefined;
368
- op?: "gt" | "lt" | "eq" | "between" | undefined;
369
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
370
- }[];
371
- stack?: string | undefined;
372
387
  h?: number | undefined;
373
388
  x?: number | undefined;
374
389
  y?: number | undefined;
@@ -378,22 +393,21 @@ export declare const readsRows: (card: ViewWidget) => card is {
378
393
  w: number;
379
394
  h?: number | undefined;
380
395
  } | undefined;
381
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
382
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
383
- } | {
384
- kind: "chart";
385
- style: "growth";
386
- scale: "log" | "linear";
387
- id: string;
388
- title: string | null;
389
- w: number;
390
396
  filter: {
391
397
  key: string;
392
398
  value: string;
393
399
  not?: boolean | undefined;
394
- op?: "gt" | "lt" | "eq" | "between" | undefined;
395
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
400
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
401
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
396
402
  }[];
403
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
404
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
405
+ kind: "chart";
406
+ style: "growth";
407
+ scale: "linear" | "log";
408
+ } | {
409
+ id: string;
410
+ title: string | null;
397
411
  h?: number | undefined;
398
412
  x?: number | undefined;
399
413
  y?: number | undefined;
@@ -403,34 +417,20 @@ export declare const readsRows: (card: ViewWidget) => card is {
403
417
  w: number;
404
418
  h?: number | undefined;
405
419
  } | undefined;
406
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
407
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
408
- } | {
409
- w: number;
410
- date: string;
411
- values: string[];
412
- bucket: "month" | "week" | "year" | "day";
413
- agg: "last" | "sum" | "count" | "mean";
414
- kind: "chart";
415
- style: "area" | "line" | "bars" | "stacked" | "combo";
416
- id: string;
417
- title: string | null;
418
420
  filter: {
419
421
  key: string;
420
422
  value: string;
421
423
  not?: boolean | undefined;
422
- op?: "gt" | "lt" | "eq" | "between" | undefined;
423
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
424
+ op?: "between" | "eq" | "gt" | "lt" | undefined;
425
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
424
426
  }[];
425
- h?: number | undefined;
426
- x?: number | undefined;
427
- y?: number | undefined;
428
- phone?: {
429
- x: number;
430
- y: number;
431
- w: number;
432
- h?: number | undefined;
433
- } | undefined;
434
- link?: "blue" | "lime" | "pink" | "teal" | "amber" | undefined;
435
- controls?: Partial<Record<"footer" | "header" | "legend" | "filter" | "group" | "download" | "columns" | "ask" | "refresh" | "pager" | "window", boolean>> | undefined;
427
+ link?: "amber" | "blue" | "lime" | "pink" | "teal" | undefined;
428
+ controls?: Partial<Record<"ask" | "columns" | "download" | "filter" | "footer" | "group" | "header" | "legend" | "pager" | "refresh" | "window", boolean>> | undefined;
429
+ w: number;
430
+ date: string;
431
+ values: string[];
432
+ bucket: "day" | "month" | "week" | "year";
433
+ agg: "count" | "last" | "mean" | "sum";
434
+ kind: "chart";
435
+ style: "area" | "bars" | "combo" | "line" | "stacked";
436
436
  };
@@ -1,11 +1,11 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // Edit widget's own parts (one editor for every widget). Every widget opens the
3
3
  // same editor (view-editor.tsx): Widget (type, name, width, link colour), Fields, Settings, Rows,
4
4
  // Formulas, Controls, with the field tree beside it. A table's Fields are its columns; any other
5
5
  // widget's are its slots (By and Value, Date and Values, a card's number), which the tree fills the
6
6
  // same way it ticks a column. Settings are the picked style's own options. Switching the type
7
7
  // swaps only these two parts.
8
- import { OUTLOOK_INDEXES, marketWindows } from '@columenlabs/lumen-ui-types/market';
8
+ import { OUTLOOK_INDEXES, marketWindows, } from '@columenlabs/lumen-ui-types/market';
9
9
  import { ALLOCATION_MAX, isOwnTile, isRowCard, isTableCard, trendBuckets, widgetStyleId, } from '@columenlabs/lumen-ui-types/views';
10
10
  import { ArrowDownIcon, ArrowUpIcon } from 'lucide-react';
11
11
  import { useState } from 'react';
@@ -46,8 +46,8 @@ const freeTileKey = (tiles, taken) => {
46
46
  /** A widget's slots, in the order the editor lists them; none for a chart of symbols. */
47
47
  export function widgetSlots(card, domain) {
48
48
  const label = (k) => domain.fields.find((f) => f.key === k)?.label ?? k;
49
- const text = { accepts: (isTextField), why: 'Takes a text field' };
50
- const number = { accepts: (isNumberField), why: 'Takes a number' };
49
+ const text = { accepts: isTextField, why: 'Takes a text field' };
50
+ const number = { accepts: isNumberField, why: 'Takes a number' };
51
51
  if ('by' in card)
52
52
  return [
53
53
  {
@@ -1,3 +1,3 @@
1
1
  import type { ReactNode } from 'react';
2
2
  /** A style's thumbnail (`WIDGET_STYLES` id); a style with none draws nothing. */
3
- export declare const widgetThumb: (id: string) => string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null;
3
+ export declare const widgetThumb: (id: string) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  const C1 = 'var(--chart-1)';
3
3
  const C2 = 'var(--chart-2)';
4
4
  const C3 = 'var(--chart-3)';
@@ -1,6 +1,6 @@
1
1
  import type { WorkspaceSummary } from '@columenlabs/lumen-ui-types/workspaces';
2
2
  /** Every workspace query's key starts here: the assistant's tab moves invalidate them all. */
3
- export declare const WORKSPACES_KEY: readonly ["workspaces"];
3
+ export declare const WORKSPACES_KEY: readonly ['workspaces'];
4
4
  /** A frame's rows; a remade frame invalidates it. */
5
5
  export declare const frameKey: (api: string, id: string) => string[];
6
6
  /** The workspaces as the sidebar and the @ picker list them. */
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { frameConfig, frameKeyAt, frameSymbolAt, liveQuoteColumns, } from '@columenlabs/lumen-ui-types/frames';
3
3
  import { customViewConfigSchema, frameSpace, } from '@columenlabs/lumen-ui-types/views';
4
4
  import { workspacePath, } from '@columenlabs/lumen-ui-types/workspaces';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@columenlabs/lumen-ui",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Lumen: shared React components (frame, views, widgets, charts, drawers).",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,13 +25,13 @@
25
25
  "sideEffects": [
26
26
  "**/*.css"
27
27
  ],
28
- "homepage": "https://github.com/columenlabs/lumen",
28
+ "homepage": "https://github.com/columenlabs/lumen-ui",
29
29
  "repository": {
30
30
  "type": "git",
31
- "url": "git+https://github.com/columenlabs/lumen.git",
31
+ "url": "git+https://github.com/columenlabs/lumen-ui.git",
32
32
  "directory": "packages/lumen"
33
33
  },
34
- "bugs": "https://github.com/columenlabs/lumen/issues",
34
+ "bugs": "https://github.com/columenlabs/lumen-ui/issues",
35
35
  "publishConfig": {
36
36
  "access": "public",
37
37
  "registry": "https://registry.npmjs.org/"
@@ -41,7 +41,7 @@
41
41
  "@codemirror/lang-javascript": "6.2.5",
42
42
  "@codemirror/lang-json": "6.0.2",
43
43
  "@codemirror/lang-sql": "6.10.0",
44
- "@columenlabs/lumen-ui-types": "0.1.0",
44
+ "@columenlabs/lumen-ui-types": "0.1.2",
45
45
  "@dnd-kit/core": "6.3.1",
46
46
  "@dnd-kit/sortable": "10.0.0",
47
47
  "@dnd-kit/utilities": "3.2.2",