@antelopejs/interface-dms 0.5.0 → 0.5.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 (69) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/base/activity-feed.d.ts +43 -31
  3. package/dist/base/activity-feed.js +11 -6
  4. package/dist/base/activity-feed.js.map +1 -1
  5. package/dist/base/banner.d.ts +61 -4
  6. package/dist/base/banner.js +13 -2
  7. package/dist/base/banner.js.map +1 -1
  8. package/dist/base/block-types.d.ts +1 -0
  9. package/dist/base/block-types.js +1 -0
  10. package/dist/base/block-types.js.map +1 -1
  11. package/dist/base/chart-card.d.ts +1 -1
  12. package/dist/base/chart-schemas.d.ts +52 -52
  13. package/dist/base/chart-schemas.js +2 -6
  14. package/dist/base/chart-schemas.js.map +1 -1
  15. package/dist/base/chart.js +2 -20
  16. package/dist/base/chart.js.map +1 -1
  17. package/dist/base/code-block.d.ts +89 -0
  18. package/dist/base/code-block.js +93 -0
  19. package/dist/base/code-block.js.map +1 -0
  20. package/dist/base/display.d.ts +27 -4
  21. package/dist/base/display.js +28 -6
  22. package/dist/base/display.js.map +1 -1
  23. package/dist/base/empty-state.d.ts +35 -0
  24. package/dist/base/empty-state.js +10 -0
  25. package/dist/base/empty-state.js.map +1 -1
  26. package/dist/base/index.d.ts +1 -0
  27. package/dist/base/index.js +1 -0
  28. package/dist/base/index.js.map +1 -1
  29. package/dist/base/internal/composed-text.d.ts +8 -1
  30. package/dist/base/internal/composed-text.js +9 -1
  31. package/dist/base/internal/composed-text.js.map +1 -1
  32. package/dist/base/internal/realtime-topics.d.ts +15 -0
  33. package/dist/base/internal/realtime-topics.js +36 -0
  34. package/dist/base/internal/realtime-topics.js.map +1 -0
  35. package/dist/base/key-value-list.d.ts +23 -0
  36. package/dist/base/key-value-list.js +8 -2
  37. package/dist/base/key-value-list.js.map +1 -1
  38. package/dist/base/meter.d.ts +38 -17
  39. package/dist/base/meter.js +15 -6
  40. package/dist/base/meter.js.map +1 -1
  41. package/dist/base/nav-card-grid.d.ts +41 -31
  42. package/dist/base/nav-card-grid.js +11 -7
  43. package/dist/base/nav-card-grid.js.map +1 -1
  44. package/dist/base/stat-group.d.ts +6 -0
  45. package/dist/base/stat-group.js +3 -2
  46. package/dist/base/stat-group.js.map +1 -1
  47. package/dist/base/tab.d.ts +8 -0
  48. package/dist/base/tab.js +5 -2
  49. package/dist/base/tab.js.map +1 -1
  50. package/dist/base/table-view/column-display.d.ts +43 -3
  51. package/dist/base/table-view/column-display.js +3 -2
  52. package/dist/base/table-view/column-display.js.map +1 -1
  53. package/dist/base/table-view/factory.js +2 -0
  54. package/dist/base/table-view/factory.js.map +1 -1
  55. package/dist/base/table-view/internal/realtime.d.ts +7 -0
  56. package/dist/base/table-view/internal/realtime.js +14 -0
  57. package/dist/base/table-view/internal/realtime.js.map +1 -1
  58. package/dist/base/table-view/options.d.ts +9 -0
  59. package/dist/base/table-view/schema.d.ts +3 -0
  60. package/dist/base/table-view/schema.js +5 -0
  61. package/dist/base/table-view/schema.js.map +1 -1
  62. package/dist/base/table-view/source.d.ts +10 -2
  63. package/dist/base/table-view/source.js +9 -1
  64. package/dist/base/table-view/source.js.map +1 -1
  65. package/dist/base/top-list-card.d.ts +21 -14
  66. package/dist/base/top-list-card.js +3 -2
  67. package/dist/base/top-list-card.js.map +1 -1
  68. package/dist/base/types/action-target.d.ts +14 -0
  69. package/package.json +1 -1
@@ -2,6 +2,7 @@ import { ComponentBuilder } from "../component";
2
2
  import { z } from "zod";
3
3
  import { type BlockLinkAction } from "./display";
4
4
  import type { BaseComponentProps, EnumOption } from "./types";
5
+ import type { BlockText } from "./types/composed-text";
5
6
  import type { HttpMethod } from "./types/http";
6
7
  /**
7
8
  * Fill tones of a meter: the semantic tones plus `soft`, the pale primary of
@@ -19,15 +20,19 @@ export type MeterSize = (typeof METER_SIZES)[number];
19
20
  export interface MeterSegment {
20
21
  value: number;
21
22
  tone?: MeterTone;
22
- /** Legend text ("6 members"). */
23
- label?: string;
23
+ /**
24
+ * Legend text ("6 members"): a literal, a `$`-prefixed i18n key, or a
25
+ * `ComposedText` (`{ key: "media.storage.files", params: { count: { type:
26
+ * "count", value: 6 } } }`).
27
+ */
28
+ label?: BlockText;
24
29
  }
25
30
  /** The options `Meter` takes. */
26
31
  export interface MeterProps extends BaseComponentProps {
27
32
  /** Name of the measure ("Seats"). */
28
33
  label?: string;
29
- /** Dimmed note after the label ("8 in use · 2 free"). */
30
- hint?: string;
34
+ /** Dimmed note after the label ("8 in use · 2 free"); a `BlockText`. */
35
+ hint?: BlockText;
31
36
  /** Filled amount; ignored when `segments` is set. */
32
37
  value?: number;
33
38
  /** Total the bar stands for. Defaults to 100. */
@@ -38,8 +43,8 @@ export interface MeterProps extends BaseComponentProps {
38
43
  legend?: boolean;
39
44
  /** Value text right of the label. Defaults to `fraction`. */
40
45
  format?: MeterFormat;
41
- /** Replaces the formatted value text. */
42
- valueLabel?: string;
46
+ /** Replaces the formatted value text; a `BlockText`. */
47
+ valueLabel?: BlockText;
43
48
  /** Fill tone of a single value. Defaults to `primary`. */
44
49
  tone?: MeterTone;
45
50
  /** Percent of `max` from which the fill turns warning. */
@@ -56,6 +61,16 @@ export interface MeterProps extends BaseComponentProps {
56
61
  */
57
62
  fetchUrl?: string;
58
63
  fetchUrlMethod?: EnumOption<HttpMethod>;
64
+ /**
65
+ * Id of the `PeriodSelector` the figures follow, as in
66
+ * `BlockItemsSource.periodScope`.
67
+ */
68
+ periodScope?: string;
69
+ /**
70
+ * Topics whose events make the meter read `fetchUrl` again, as in
71
+ * `BlockItemsSource.realtimeTopic`.
72
+ */
73
+ realtimeTopic?: string | string[];
59
74
  /** Wraps the meter in a padded card. Defaults to `false`. */
60
75
  card?: boolean;
61
76
  /** Link buttons under the bar, on the right ("Manage members"). */
@@ -85,31 +100,33 @@ export declare function Meter(options?: MeterProps): ComponentBuilder<MeterProps
85
100
  /** The options `Meter` accepts. */
86
101
  export declare const MeterSchema: z.ZodObject<{
87
102
  label: z.ZodOptional<z.ZodString>;
88
- hint: z.ZodOptional<z.ZodString>;
103
+ hint: z.ZodOptional<z.ZodType<BlockText, z.ZodTypeDef, BlockText>>;
89
104
  value: z.ZodOptional<z.ZodNumber>;
90
105
  max: z.ZodOptional<z.ZodNumber>;
91
106
  segments: z.ZodOptional<z.ZodArray<z.ZodObject<{
92
107
  value: z.ZodNumber;
93
108
  tone: z.ZodOptional<z.ZodEnum<["soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral", ...("soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral")[]]>>;
94
- label: z.ZodOptional<z.ZodString>;
109
+ label: z.ZodOptional<z.ZodType<BlockText, z.ZodTypeDef, BlockText>>;
95
110
  }, "strip", z.ZodTypeAny, {
96
111
  value: number;
97
- label?: string | undefined;
112
+ label?: BlockText | undefined;
98
113
  tone?: "soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
99
114
  }, {
100
115
  value: number;
101
- label?: string | undefined;
116
+ label?: BlockText | undefined;
102
117
  tone?: "soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
103
118
  }>, "many">>;
104
119
  legend: z.ZodOptional<z.ZodBoolean>;
105
120
  format: z.ZodOptional<z.ZodEnum<["fraction", "percent", "value", "none"]>>;
106
- valueLabel: z.ZodOptional<z.ZodString>;
121
+ valueLabel: z.ZodOptional<z.ZodType<BlockText, z.ZodTypeDef, BlockText>>;
107
122
  tone: z.ZodOptional<z.ZodEnum<["soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral", ...("soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral")[]]>>;
108
123
  warnAt: z.ZodOptional<z.ZodNumber>;
109
124
  errorAt: z.ZodOptional<z.ZodNumber>;
110
125
  size: z.ZodOptional<z.ZodEnum<["xs", "sm", "md"]>>;
111
126
  fetchUrl: z.ZodOptional<z.ZodString>;
112
127
  fetchUrlMethod: z.ZodOptional<z.ZodNativeEnum<typeof HttpMethod>>;
128
+ periodScope: z.ZodOptional<z.ZodString>;
129
+ realtimeTopic: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
113
130
  card: z.ZodDefault<z.ZodBoolean>;
114
131
  actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
115
132
  label: z.ZodString;
@@ -137,10 +154,12 @@ export declare const MeterSchema: z.ZodObject<{
137
154
  size?: "xs" | "sm" | "md" | undefined;
138
155
  format?: "value" | "none" | "percent" | "fraction" | undefined;
139
156
  label?: string | undefined;
140
- hint?: string | undefined;
157
+ hint?: BlockText | undefined;
141
158
  fetchUrl?: string | undefined;
142
159
  fetchUrlMethod?: HttpMethod | undefined;
143
- valueLabel?: string | undefined;
160
+ periodScope?: string | undefined;
161
+ valueLabel?: BlockText | undefined;
162
+ realtimeTopic?: string | string[] | undefined;
144
163
  legend?: boolean | undefined;
145
164
  actions?: {
146
165
  label: string;
@@ -152,7 +171,7 @@ export declare const MeterSchema: z.ZodObject<{
152
171
  tone?: "soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
153
172
  segments?: {
154
173
  value: number;
155
- label?: string | undefined;
174
+ label?: BlockText | undefined;
156
175
  tone?: "soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
157
176
  }[] | undefined;
158
177
  warnAt?: number | undefined;
@@ -163,11 +182,13 @@ export declare const MeterSchema: z.ZodObject<{
163
182
  size?: "xs" | "sm" | "md" | undefined;
164
183
  format?: "value" | "none" | "percent" | "fraction" | undefined;
165
184
  label?: string | undefined;
166
- hint?: string | undefined;
185
+ hint?: BlockText | undefined;
167
186
  fetchUrl?: string | undefined;
168
187
  fetchUrlMethod?: HttpMethod | undefined;
169
188
  card?: boolean | undefined;
170
- valueLabel?: string | undefined;
189
+ periodScope?: string | undefined;
190
+ valueLabel?: BlockText | undefined;
191
+ realtimeTopic?: string | string[] | undefined;
171
192
  legend?: boolean | undefined;
172
193
  actions?: {
173
194
  label: string;
@@ -179,7 +200,7 @@ export declare const MeterSchema: z.ZodObject<{
179
200
  tone?: "soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
180
201
  segments?: {
181
202
  value: number;
182
- label?: string | undefined;
203
+ label?: BlockText | undefined;
183
204
  tone?: "soft" | "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
184
205
  }[] | undefined;
185
206
  warnAt?: number | undefined;
@@ -7,7 +7,9 @@ const zod_1 = require("zod");
7
7
  const block_registry_1 = require("./block-registry");
8
8
  const display_1 = require("./display");
9
9
  const display_2 = require("./internal/display");
10
+ const composed_text_1 = require("./internal/composed-text");
10
11
  const tone_1 = require("./types/tone");
12
+ const realtime_topics_1 = require("./internal/realtime-topics");
11
13
  /**
12
14
  * Fill tones of a meter: the semantic tones plus `soft`, the pale primary of
13
15
  * what is pending or reserved.
@@ -40,12 +42,12 @@ const DEFAULT_ICON = "i-ph-gauge";
40
42
  * ```
41
43
  */
42
44
  function Meter(options) {
43
- return new component_1.ComponentBuilder(METER_COMPONENT_NAME)
45
+ return (0, realtime_topics_1.attachRealtimeTopicsHook)(new component_1.ComponentBuilder(METER_COMPONENT_NAME)
44
46
  .options({ ...options })
45
47
  .meta({
46
48
  name: options?.label || "Meter",
47
49
  icon: DEFAULT_ICON,
48
- });
50
+ }), options?.realtimeTopic);
49
51
  }
50
52
  const MeterSegmentSchema = zod_1.z.object({
51
53
  value: (0, block_registry_1.ui)(zod_1.z.number(), { label: "Value", widget: "number" }),
@@ -53,7 +55,7 @@ const MeterSegmentSchema = zod_1.z.object({
53
55
  label: "Tone",
54
56
  widget: "select",
55
57
  }),
56
- label: (0, block_registry_1.ui)(zod_1.z.string().optional(), { label: "Legend" }),
58
+ label: (0, block_registry_1.ui)((0, composed_text_1.blockTextSchema)().optional(), { label: "Legend", widget: "text" }),
57
59
  });
58
60
  /** The options `Meter` accepts. */
59
61
  exports.MeterSchema = zod_1.z.object({
@@ -61,7 +63,11 @@ exports.MeterSchema = zod_1.z.object({
61
63
  label: "Label",
62
64
  group: "content",
63
65
  }),
64
- hint: (0, block_registry_1.ui)(zod_1.z.string().optional(), { label: "Hint", group: "content" }),
66
+ hint: (0, block_registry_1.ui)((0, composed_text_1.blockTextSchema)().optional(), {
67
+ label: "Hint",
68
+ group: "content",
69
+ widget: "text",
70
+ }),
65
71
  value: (0, block_registry_1.ui)(zod_1.z.number().optional().describe("Filled amount."), {
66
72
  label: "Value",
67
73
  group: "data",
@@ -87,9 +93,10 @@ exports.MeterSchema = zod_1.z.object({
87
93
  group: "appearance",
88
94
  widget: "segmented",
89
95
  }),
90
- valueLabel: (0, block_registry_1.ui)(zod_1.z.string().optional(), {
96
+ valueLabel: (0, block_registry_1.ui)((0, composed_text_1.blockTextSchema)().optional(), {
91
97
  label: "Custom value text",
92
98
  group: "content",
99
+ widget: "text",
93
100
  }),
94
101
  tone: (0, block_registry_1.ui)((0, display_2.toneEnum)(exports.METER_TONES).optional(), {
95
102
  label: "Tone",
@@ -115,8 +122,10 @@ exports.MeterSchema = zod_1.z.object({
115
122
  group: "appearance",
116
123
  widget: "segmented",
117
124
  }),
118
- fetchUrl: (0, display_1.blockFetchUrlOption)("Where the figures come from."),
125
+ fetchUrl: (0, display_1.blockFetchUrlOption)("Where the figures come from.", "periodScope"),
119
126
  fetchUrlMethod: (0, display_1.blockFetchUrlMethodOption)(),
127
+ periodScope: (0, display_1.blockPeriodScopeOption)(),
128
+ realtimeTopic: (0, display_1.blockRealtimeTopicOption)(),
120
129
  card: (0, display_1.blockCardOption)(false),
121
130
  actions: (0, display_1.blockActionsOption)("Link buttons under the bar."),
122
131
  });
@@ -1 +1 @@
1
- {"version":3,"file":"meter.js","sourceRoot":"","sources":["../../src/base/meter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meter.js","sourceRoot":"","sources":["../../src/base/meter.ts"],"names":[],"mappings":"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"}
@@ -3,26 +3,30 @@ import { z } from "zod";
3
3
  import { type BlockItemsSource } from "./display";
4
4
  import { type Tone, type IconTone } from "./types/tone";
5
5
  import type { BaseComponentProps } from "./types";
6
+ import type { BlockText } from "./types/composed-text";
6
7
  import type { CategoryInfo } from "../page/types";
7
8
  /** One navigation card. */
8
9
  export interface NavCardItem {
9
10
  /** Stable key; the target is used without one. */
10
11
  id?: string;
11
- /** `$`-prefixed for an i18n key, like every text of the card. */
12
- title: string;
13
- description?: string;
12
+ /**
13
+ * `$`-prefixed for an i18n key, or a `ComposedText`, like every text of
14
+ * the card.
15
+ */
16
+ title: BlockText;
17
+ description?: BlockText;
14
18
  icon: string;
15
19
  iconTone?: IconTone;
16
20
  /** Route, `#anchor` or URL. */
17
21
  to: string;
18
22
  /** Live state of the target, in mono at the bottom ("3 unread"). */
19
- state?: string;
23
+ state?: BlockText;
20
24
  /** Tone of the state line (`neutral` = dimmed). */
21
25
  stateTone?: Tone;
22
26
  /** Small uppercase tag after the title (the module a page comes from). */
23
- tag?: string;
27
+ tag?: BlockText;
24
28
  /** Mono readout lines under the description. */
25
- readout?: string[];
29
+ readout?: BlockText[];
26
30
  }
27
31
  /** The options `NavCardGrid` takes. */
28
32
  export interface NavCardGridProps extends BaseComponentProps, BlockItemsSource {
@@ -75,6 +79,8 @@ export declare function NavCardGrid(options?: NavCardGridOptions): ComponentBuil
75
79
  export declare const NavCardGridSchema: z.ZodObject<{
76
80
  fetchUrl: z.ZodOptional<z.ZodString>;
77
81
  fetchUrlMethod: z.ZodOptional<z.ZodNativeEnum<typeof import("./types").HttpMethod>>;
82
+ periodScope: z.ZodOptional<z.ZodString>;
83
+ realtimeTopic: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
78
84
  empty: z.ZodOptional<z.ZodObject<{
79
85
  title: z.ZodString;
80
86
  description: z.ZodOptional<z.ZodString>;
@@ -90,37 +96,37 @@ export declare const NavCardGridSchema: z.ZodObject<{
90
96
  description: z.ZodOptional<z.ZodString>;
91
97
  items: z.ZodOptional<z.ZodArray<z.ZodObject<{
92
98
  id: z.ZodOptional<z.ZodString>;
93
- title: z.ZodString;
94
- description: z.ZodOptional<z.ZodString>;
99
+ title: z.ZodType<BlockText, z.ZodTypeDef, BlockText>;
100
+ description: z.ZodOptional<z.ZodType<BlockText, z.ZodTypeDef, BlockText>>;
95
101
  icon: z.ZodString;
96
102
  iconTone: z.ZodOptional<z.ZodEnum<["primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | "muted", ...("primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | "muted")[]]>>;
97
103
  to: z.ZodString;
98
- state: z.ZodOptional<z.ZodString>;
104
+ state: z.ZodOptional<z.ZodType<BlockText, z.ZodTypeDef, BlockText>>;
99
105
  stateTone: z.ZodOptional<z.ZodEnum<["primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral", ...("primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral")[]]>>;
100
- tag: z.ZodOptional<z.ZodString>;
101
- readout: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
106
+ tag: z.ZodOptional<z.ZodType<BlockText, z.ZodTypeDef, BlockText>>;
107
+ readout: z.ZodOptional<z.ZodArray<z.ZodType<BlockText, z.ZodTypeDef, BlockText>, "many">>;
102
108
  }, "strip", z.ZodTypeAny, {
103
- title: string;
109
+ title: BlockText;
104
110
  icon: string;
105
111
  to: string;
106
- description?: string | undefined;
112
+ description?: BlockText | undefined;
107
113
  id?: string | undefined;
108
- state?: string | undefined;
114
+ state?: BlockText | undefined;
109
115
  iconTone?: "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | "muted" | undefined;
110
116
  stateTone?: "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
111
- tag?: string | undefined;
112
- readout?: string[] | undefined;
117
+ tag?: BlockText | undefined;
118
+ readout?: BlockText[] | undefined;
113
119
  }, {
114
- title: string;
120
+ title: BlockText;
115
121
  icon: string;
116
122
  to: string;
117
- description?: string | undefined;
123
+ description?: BlockText | undefined;
118
124
  id?: string | undefined;
119
- state?: string | undefined;
125
+ state?: BlockText | undefined;
120
126
  iconTone?: "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | "muted" | undefined;
121
127
  stateTone?: "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
122
- tag?: string | undefined;
123
- readout?: string[] | undefined;
128
+ tag?: BlockText | undefined;
129
+ readout?: BlockText[] | undefined;
124
130
  }>, "many">>;
125
131
  columns: z.ZodDefault<z.ZodNumber>;
126
132
  categoryId: z.ZodOptional<z.ZodString>;
@@ -128,20 +134,22 @@ export declare const NavCardGridSchema: z.ZodObject<{
128
134
  columns: number;
129
135
  description?: string | undefined;
130
136
  items?: {
131
- title: string;
137
+ title: BlockText;
132
138
  icon: string;
133
139
  to: string;
134
- description?: string | undefined;
140
+ description?: BlockText | undefined;
135
141
  id?: string | undefined;
136
- state?: string | undefined;
142
+ state?: BlockText | undefined;
137
143
  iconTone?: "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | "muted" | undefined;
138
144
  stateTone?: "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
139
- tag?: string | undefined;
140
- readout?: string[] | undefined;
145
+ tag?: BlockText | undefined;
146
+ readout?: BlockText[] | undefined;
141
147
  }[] | undefined;
142
148
  title?: string | undefined;
143
149
  fetchUrl?: string | undefined;
144
150
  fetchUrlMethod?: import("./types").HttpMethod | undefined;
151
+ periodScope?: string | undefined;
152
+ realtimeTopic?: string | string[] | undefined;
145
153
  empty?: {
146
154
  title: string;
147
155
  description?: string | undefined;
@@ -151,20 +159,22 @@ export declare const NavCardGridSchema: z.ZodObject<{
151
159
  }, {
152
160
  description?: string | undefined;
153
161
  items?: {
154
- title: string;
162
+ title: BlockText;
155
163
  icon: string;
156
164
  to: string;
157
- description?: string | undefined;
165
+ description?: BlockText | undefined;
158
166
  id?: string | undefined;
159
- state?: string | undefined;
167
+ state?: BlockText | undefined;
160
168
  iconTone?: "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | "muted" | undefined;
161
169
  stateTone?: "primary" | "secondary" | "success" | "info" | "warning" | "error" | "neutral" | undefined;
162
- tag?: string | undefined;
163
- readout?: string[] | undefined;
170
+ tag?: BlockText | undefined;
171
+ readout?: BlockText[] | undefined;
164
172
  }[] | undefined;
165
173
  title?: string | undefined;
166
174
  fetchUrl?: string | undefined;
167
175
  fetchUrlMethod?: import("./types").HttpMethod | undefined;
176
+ periodScope?: string | undefined;
177
+ realtimeTopic?: string | string[] | undefined;
168
178
  columns?: number | undefined;
169
179
  empty?: {
170
180
  title: string;
@@ -8,6 +8,8 @@ const block_registry_1 = require("./block-registry");
8
8
  const display_1 = require("./display");
9
9
  const display_2 = require("./internal/display");
10
10
  const tone_1 = require("./types/tone");
11
+ const composed_text_1 = require("./internal/composed-text");
12
+ const realtime_topics_1 = require("./internal/realtime-topics");
11
13
  const NAV_CARD_GRID_COMPONENT_NAME = "dms-nav-card-grid-block";
12
14
  const NAV_CARD_GRID_ICON = "i-ph-cards";
13
15
  const NAV_CARD_GRID_DEFAULT_COLUMNS = 3;
@@ -19,17 +21,17 @@ function NavCardGrid(options) {
19
21
  };
20
22
  if (category)
21
23
  props.categoryId = category.fullId;
22
- return new component_1.ComponentBuilder(NAV_CARD_GRID_COMPONENT_NAME)
24
+ return (0, realtime_topics_1.attachRealtimeTopicsHook)(new component_1.ComponentBuilder(NAV_CARD_GRID_COMPONENT_NAME)
23
25
  .options(props)
24
26
  .meta({
25
27
  name: options?.title || "Navigation cards",
26
28
  icon: NAV_CARD_GRID_ICON,
27
- });
29
+ }), rest.realtimeTopic);
28
30
  }
29
31
  const NavCardItemSchema = zod_1.z.object({
30
32
  id: (0, block_registry_1.ui)(zod_1.z.string().optional(), { label: "Key", advanced: true }),
31
- title: (0, block_registry_1.ui)(zod_1.z.string(), { label: "Title" }),
32
- description: (0, block_registry_1.ui)(zod_1.z.string().optional(), {
33
+ title: (0, block_registry_1.ui)((0, composed_text_1.blockTextSchema)(), { label: "Title", widget: "text" }),
34
+ description: (0, block_registry_1.ui)((0, composed_text_1.blockTextSchema)().optional(), {
33
35
  label: "Description",
34
36
  widget: "textarea",
35
37
  }),
@@ -42,13 +44,15 @@ const NavCardItemSchema = zod_1.z.object({
42
44
  label: "Link",
43
45
  widget: "url",
44
46
  }),
45
- state: (0, block_registry_1.ui)(zod_1.z.string().optional(), { label: "State" }),
47
+ state: (0, block_registry_1.ui)((0, composed_text_1.blockTextSchema)().optional(), { label: "State", widget: "text" }),
46
48
  stateTone: (0, block_registry_1.ui)((0, display_2.toneEnum)(tone_1.TONES).optional(), {
47
49
  label: "State tone",
48
50
  widget: "select",
49
51
  }),
50
- tag: (0, block_registry_1.ui)(zod_1.z.string().optional(), { label: "Tag" }),
51
- readout: (0, block_registry_1.ui)(zod_1.z.array(zod_1.z.string()).optional(), { label: "Readout lines" }),
52
+ tag: (0, block_registry_1.ui)((0, composed_text_1.blockTextSchema)().optional(), { label: "Tag", widget: "text" }),
53
+ readout: (0, block_registry_1.ui)(zod_1.z.array((0, composed_text_1.blockTextSchema)()).optional(), {
54
+ label: "Readout lines",
55
+ }),
52
56
  });
53
57
  /** The options `NavCardGrid` accepts. */
54
58
  exports.NavCardGridSchema = zod_1.z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"nav-card-grid.js","sourceRoot":"","sources":["../../src/base/nav-card-grid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nav-card-grid.js","sourceRoot":"","sources":["../../src/base/nav-card-grid.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,8 @@ export declare function StatGroup(options?: StatGroupProps): ComponentBuilder<St
74
74
  export declare const StatGroupSchema: z.ZodObject<{
75
75
  fetchUrl: z.ZodOptional<z.ZodString>;
76
76
  fetchUrlMethod: z.ZodOptional<z.ZodNativeEnum<typeof import("./types").HttpMethod>>;
77
+ periodScope: z.ZodOptional<z.ZodString>;
78
+ realtimeTopic: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
77
79
  empty: z.ZodOptional<z.ZodObject<{
78
80
  title: z.ZodString;
79
81
  description: z.ZodOptional<z.ZodString>;
@@ -131,6 +133,8 @@ export declare const StatGroupSchema: z.ZodObject<{
131
133
  label?: string | undefined;
132
134
  fetchUrl?: string | undefined;
133
135
  fetchUrlMethod?: import("./types").HttpMethod | undefined;
136
+ periodScope?: string | undefined;
137
+ realtimeTopic?: string | string[] | undefined;
134
138
  columns?: number | undefined;
135
139
  empty?: {
136
140
  title: string;
@@ -152,6 +156,8 @@ export declare const StatGroupSchema: z.ZodObject<{
152
156
  fetchUrl?: string | undefined;
153
157
  fetchUrlMethod?: import("./types").HttpMethod | undefined;
154
158
  layout?: "cards" | "joined" | undefined;
159
+ periodScope?: string | undefined;
160
+ realtimeTopic?: string | string[] | undefined;
155
161
  columns?: number | undefined;
156
162
  empty?: {
157
163
  title: string;
@@ -9,6 +9,7 @@ const display_1 = require("./display");
9
9
  const display_2 = require("./internal/display");
10
10
  const tone_1 = require("./types/tone");
11
11
  const composed_text_1 = require("./internal/composed-text");
12
+ const realtime_topics_1 = require("./internal/realtime-topics");
12
13
  /** How a stat group lays its cells out: see `StatGroupProps.layout`. */
13
14
  exports.STAT_GROUP_LAYOUTS = ["joined", "cards"];
14
15
  const STAT_GROUP_COMPONENT_NAME = "dms-stat-group-block";
@@ -34,9 +35,9 @@ const STAT_GROUP_DEFAULT_LAYOUT = "joined";
34
35
  * ```
35
36
  */
36
37
  function StatGroup(options) {
37
- return new component_1.ComponentBuilder(STAT_GROUP_COMPONENT_NAME)
38
+ return (0, realtime_topics_1.attachRealtimeTopicsHook)(new component_1.ComponentBuilder(STAT_GROUP_COMPONENT_NAME)
38
39
  .options({ layout: STAT_GROUP_DEFAULT_LAYOUT, ...options })
39
- .meta({ name: "Stat group", icon: STAT_GROUP_ICON });
40
+ .meta({ name: "Stat group", icon: STAT_GROUP_ICON }), options?.realtimeTopic);
40
41
  }
41
42
  const StatGroupItemSchema = zod_1.z.object({
42
43
  id: (0, block_registry_1.ui)(zod_1.z.string().optional(), { label: "Key", advanced: true }),
@@ -1 +1 @@
1
- {"version":3,"file":"stat-group.js","sourceRoot":"","sources":["../../src/base/stat-group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stat-group.js","sourceRoot":"","sources":["../../src/base/stat-group.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,11 @@ export interface TabProps extends BaseComponentProps {
53
53
  * requested while a token has no value: the static badges show.
54
54
  */
55
55
  badgesUrl?: string;
56
+ /**
57
+ * Topics whose events make the tab set read `badgesUrl` again, as in
58
+ * `BlockItemsSource.realtimeTopic`.
59
+ */
60
+ realtimeTopic?: string | string[];
56
61
  }
57
62
  /**
58
63
  * `options` is optional because a page is written as it is built: the editor
@@ -64,6 +69,7 @@ export declare const Tab: (options?: TabProps) => ComponentBuilder<TabProps>;
64
69
  /** The options `Tab` accepts. */
65
70
  export declare const TabSchema: z.ZodObject<{
66
71
  badgesUrl: z.ZodOptional<z.ZodString>;
72
+ realtimeTopic: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
67
73
  items: z.ZodArray<z.ZodObject<{
68
74
  label: z.ZodString;
69
75
  slot: z.ZodString;
@@ -164,6 +170,7 @@ export declare const TabSchema: z.ZodObject<{
164
170
  variant?: TabVariant | undefined;
165
171
  color?: Color | undefined;
166
172
  orientation?: AxeOrientation | undefined;
173
+ realtimeTopic?: string | string[] | undefined;
167
174
  unmountOnHide?: boolean | undefined;
168
175
  persistState?: boolean | undefined;
169
176
  stateKey?: string | undefined;
@@ -191,6 +198,7 @@ export declare const TabSchema: z.ZodObject<{
191
198
  variant?: TabVariant | undefined;
192
199
  color?: Color | undefined;
193
200
  orientation?: AxeOrientation | undefined;
201
+ realtimeTopic?: string | string[] | undefined;
194
202
  unmountOnHide?: boolean | undefined;
195
203
  persistState?: boolean | undefined;
196
204
  stateKey?: string | undefined;
package/dist/base/tab.js CHANGED
@@ -7,6 +7,8 @@ const block_registry_1 = require("./block-registry");
7
7
  const color_1 = require("./types/color");
8
8
  const orientation_1 = require("./types/orientation");
9
9
  const size_1 = require("./types/size");
10
+ const display_1 = require("./display");
11
+ const realtime_topics_1 = require("./internal/realtime-topics");
10
12
  var TabEvents;
11
13
  (function (TabEvents) {
12
14
  TabEvents.TAB_CHANGE = "DmsComponent.Tab.Change";
@@ -24,12 +26,12 @@ const TAB_COMPONENT_NAME = "dms-tab";
24
26
  * on every edit — so a block with nothing set yet has to be a legal call.
25
27
  */
26
28
  const Tab = (options) => {
27
- return new component_1.ComponentBuilder(TAB_COMPONENT_NAME)
29
+ return (0, realtime_topics_1.attachRealtimeTopicsHook)(new component_1.ComponentBuilder(TAB_COMPONENT_NAME)
28
30
  .options({ ...options })
29
31
  .meta({
30
32
  name: "Tabs",
31
33
  icon: "i-ph-tabs",
32
- });
34
+ }), options?.realtimeTopic);
33
35
  };
34
36
  exports.Tab = Tab;
35
37
  const BadgeSchema = zod_1.z.object({
@@ -61,6 +63,7 @@ exports.TabSchema = zod_1.z.object({
61
63
  .string()
62
64
  .optional()
63
65
  .describe("Route answering the badge of each tab, by slot."), { label: "Badges from", group: "data", widget: "url", advanced: true }),
66
+ realtimeTopic: (0, display_1.blockRealtimeTopicOption)(),
64
67
  items: (0, block_registry_1.ui)(zod_1.z.array(TabItemSchema).describe("The tabs, in display order."), {
65
68
  label: "Tabs",
66
69
  group: "content",
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sourceRoot":"","sources":["../../src/base/tab.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tab.js","sourceRoot":"","sources":["../../src/base/tab.ts"],"names":[],"mappings":"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"}