@downcity/ui 0.1.0 → 0.1.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.
- package/README.md +144 -6
- package/dist/index.cjs +3909 -38
- package/dist/index.d.cts +864 -1
- package/dist/index.d.ts +864 -1
- package/dist/index.js +3864 -36
- package/package.json +21 -15
- package/src/source.css +10 -0
package/dist/index.d.cts
CHANGED
|
@@ -5,9 +5,16 @@ import { Button as Button$1 } from '@base-ui/react/button';
|
|
|
5
5
|
import { VariantProps } from 'class-variance-authority';
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { useRender } from '@base-ui/react/use-render';
|
|
8
|
+
import { Checkbox as Checkbox$1 } from '@base-ui/react/checkbox';
|
|
9
|
+
import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
|
|
8
10
|
import { Menu } from '@base-ui/react/menu';
|
|
9
11
|
import { Popover as Popover$1 } from '@base-ui/react/popover';
|
|
12
|
+
import { Separator as Separator$1 } from '@base-ui/react/separator';
|
|
13
|
+
import { Tabs as Tabs$1 } from '@base-ui/react/tabs';
|
|
10
14
|
import { ToasterProps } from 'sonner';
|
|
15
|
+
import { Toggle as Toggle$1 } from '@base-ui/react/toggle';
|
|
16
|
+
import { ToggleGroup as ToggleGroup$1 } from '@base-ui/react/toggle-group';
|
|
17
|
+
import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
|
|
11
18
|
|
|
12
19
|
/**
|
|
13
20
|
* Downcity UI SDK 通用工具。
|
|
@@ -47,6 +54,759 @@ type DowncityDropdownMenuItemVariant = "default" | "destructive";
|
|
|
47
54
|
*/
|
|
48
55
|
type DowncityToasterTheme = "light" | "dark" | "system";
|
|
49
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Workboard 组件公开类型。
|
|
59
|
+
*
|
|
60
|
+
* 关键点(中文)
|
|
61
|
+
* - 这里导出的是“全局 workboard”板面类型,而不是单个 agent 面板。
|
|
62
|
+
* - UI 组件只消费聚合后的公开状态,不知道 plugin 内部实现。
|
|
63
|
+
*/
|
|
64
|
+
/**
|
|
65
|
+
* 单个公开活动项。
|
|
66
|
+
*/
|
|
67
|
+
interface DowncityWorkboardActivityItem {
|
|
68
|
+
/**
|
|
69
|
+
* 活动稳定标识。
|
|
70
|
+
*/
|
|
71
|
+
id: string;
|
|
72
|
+
/**
|
|
73
|
+
* 活动类型。
|
|
74
|
+
*/
|
|
75
|
+
kind: "focus" | "progress" | "idle";
|
|
76
|
+
/**
|
|
77
|
+
* 对外标题。
|
|
78
|
+
*/
|
|
79
|
+
title: string;
|
|
80
|
+
/**
|
|
81
|
+
* 对外摘要。
|
|
82
|
+
*/
|
|
83
|
+
summary: string;
|
|
84
|
+
/**
|
|
85
|
+
* 当前状态。
|
|
86
|
+
*/
|
|
87
|
+
status: "active" | "steady" | "waiting" | "issue";
|
|
88
|
+
/**
|
|
89
|
+
* 最近更新时间(ISO8601)。
|
|
90
|
+
*/
|
|
91
|
+
updatedAt: string;
|
|
92
|
+
/**
|
|
93
|
+
* 对外安全标签。
|
|
94
|
+
*/
|
|
95
|
+
tags: string[];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* 单个公开线索项。
|
|
99
|
+
*/
|
|
100
|
+
interface DowncityWorkboardSignalItem {
|
|
101
|
+
/**
|
|
102
|
+
* 线索名称。
|
|
103
|
+
*/
|
|
104
|
+
label: string;
|
|
105
|
+
/**
|
|
106
|
+
* 线索值。
|
|
107
|
+
*/
|
|
108
|
+
value: string;
|
|
109
|
+
/**
|
|
110
|
+
* 线索语气。
|
|
111
|
+
*/
|
|
112
|
+
tone: "neutral" | "accent" | "warning";
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* 单个 agent 的公开快照。
|
|
116
|
+
*/
|
|
117
|
+
interface DowncityWorkboardAgentSnapshot {
|
|
118
|
+
/**
|
|
119
|
+
* agent 展示名称。
|
|
120
|
+
*/
|
|
121
|
+
name: string;
|
|
122
|
+
/**
|
|
123
|
+
* 是否运行中。
|
|
124
|
+
*/
|
|
125
|
+
running: boolean;
|
|
126
|
+
/**
|
|
127
|
+
* 对外状态文案。
|
|
128
|
+
*/
|
|
129
|
+
statusText: string;
|
|
130
|
+
/**
|
|
131
|
+
* 最近采样时间(ISO8601)。
|
|
132
|
+
*/
|
|
133
|
+
collectedAt: string;
|
|
134
|
+
/**
|
|
135
|
+
* headline。
|
|
136
|
+
*/
|
|
137
|
+
headline: string;
|
|
138
|
+
/**
|
|
139
|
+
* posture。
|
|
140
|
+
*/
|
|
141
|
+
posture: string;
|
|
142
|
+
/**
|
|
143
|
+
* momentum。
|
|
144
|
+
*/
|
|
145
|
+
momentum: string;
|
|
146
|
+
/**
|
|
147
|
+
* 可见性说明。
|
|
148
|
+
*/
|
|
149
|
+
visibilityNote: string;
|
|
150
|
+
/**
|
|
151
|
+
* 当前公开活动列表。
|
|
152
|
+
*/
|
|
153
|
+
current: DowncityWorkboardActivityItem[];
|
|
154
|
+
/**
|
|
155
|
+
* 最近公开活动列表。
|
|
156
|
+
*/
|
|
157
|
+
recent: DowncityWorkboardActivityItem[];
|
|
158
|
+
/**
|
|
159
|
+
* 公开线索列表。
|
|
160
|
+
*/
|
|
161
|
+
signals: DowncityWorkboardSignalItem[];
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* 全局看板中的单个 agent 项。
|
|
165
|
+
*/
|
|
166
|
+
interface DowncityWorkboardAgentItem {
|
|
167
|
+
/**
|
|
168
|
+
* agent 稳定标识。
|
|
169
|
+
*/
|
|
170
|
+
id: string;
|
|
171
|
+
/**
|
|
172
|
+
* agent 展示名称。
|
|
173
|
+
*/
|
|
174
|
+
name: string;
|
|
175
|
+
/**
|
|
176
|
+
* 当前是否运行中。
|
|
177
|
+
*/
|
|
178
|
+
running: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* headline。
|
|
181
|
+
*/
|
|
182
|
+
headline: string;
|
|
183
|
+
/**
|
|
184
|
+
* posture。
|
|
185
|
+
*/
|
|
186
|
+
posture: string;
|
|
187
|
+
/**
|
|
188
|
+
* momentum。
|
|
189
|
+
*/
|
|
190
|
+
momentum: string;
|
|
191
|
+
/**
|
|
192
|
+
* 状态摘要文案。
|
|
193
|
+
*/
|
|
194
|
+
statusText: string;
|
|
195
|
+
/**
|
|
196
|
+
* 最近采样时间(ISO8601)。
|
|
197
|
+
*/
|
|
198
|
+
collectedAt: string;
|
|
199
|
+
/**
|
|
200
|
+
* 当前公开活动数量。
|
|
201
|
+
*/
|
|
202
|
+
currentCount: number;
|
|
203
|
+
/**
|
|
204
|
+
* 近期片段数量。
|
|
205
|
+
*/
|
|
206
|
+
recentCount: number;
|
|
207
|
+
/**
|
|
208
|
+
* 公开线索数量。
|
|
209
|
+
*/
|
|
210
|
+
signalCount: number;
|
|
211
|
+
/**
|
|
212
|
+
* 该 agent 的完整公开快照。
|
|
213
|
+
*/
|
|
214
|
+
snapshot: DowncityWorkboardAgentSnapshot;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* 全局看板顶部摘要。
|
|
218
|
+
*/
|
|
219
|
+
interface DowncityWorkboardBoardSummary {
|
|
220
|
+
/**
|
|
221
|
+
* agent 总数。
|
|
222
|
+
*/
|
|
223
|
+
totalAgents: number;
|
|
224
|
+
/**
|
|
225
|
+
* live agent 数量。
|
|
226
|
+
*/
|
|
227
|
+
liveAgents: number;
|
|
228
|
+
/**
|
|
229
|
+
* 呈现活跃状态的 agent 数量。
|
|
230
|
+
*/
|
|
231
|
+
activeAgents: number;
|
|
232
|
+
/**
|
|
233
|
+
* 安静中的 agent 数量。
|
|
234
|
+
*/
|
|
235
|
+
quietAgents: number;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* 全局 workboard 板面。
|
|
239
|
+
*/
|
|
240
|
+
interface DowncityWorkboardBoardSnapshot {
|
|
241
|
+
/**
|
|
242
|
+
* 顶部摘要。
|
|
243
|
+
*/
|
|
244
|
+
summary: DowncityWorkboardBoardSummary;
|
|
245
|
+
/**
|
|
246
|
+
* agent 列表。
|
|
247
|
+
*/
|
|
248
|
+
agents: DowncityWorkboardAgentItem[];
|
|
249
|
+
/**
|
|
250
|
+
* 最近采样时间(ISO8601)。
|
|
251
|
+
*/
|
|
252
|
+
collectedAt: string;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Workboard 组件属性。
|
|
256
|
+
*/
|
|
257
|
+
interface DowncityWorkboardProps {
|
|
258
|
+
/**
|
|
259
|
+
* 当前板面。
|
|
260
|
+
*/
|
|
261
|
+
board: DowncityWorkboardBoardSnapshot | null;
|
|
262
|
+
/**
|
|
263
|
+
* 当前是否处于刷新中。
|
|
264
|
+
*/
|
|
265
|
+
loading?: boolean;
|
|
266
|
+
/**
|
|
267
|
+
* 当前选中的 agent id。
|
|
268
|
+
*/
|
|
269
|
+
selectedAgentId?: string;
|
|
270
|
+
/**
|
|
271
|
+
* 外层接收选中变化。
|
|
272
|
+
*/
|
|
273
|
+
onSelectAgent?: (agentId: string) => void;
|
|
274
|
+
/**
|
|
275
|
+
* 外层触发刷新。
|
|
276
|
+
*/
|
|
277
|
+
onRefresh?: () => void;
|
|
278
|
+
/**
|
|
279
|
+
* 自定义类名。
|
|
280
|
+
*/
|
|
281
|
+
className?: string;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Workboard 主舞台内部类型。
|
|
286
|
+
*
|
|
287
|
+
* 关键点(中文)
|
|
288
|
+
* - 这些类型只服务于 Workboard 的舞台布局与聚焦交互。
|
|
289
|
+
* - 它们仍然集中放在 `types/` 下,避免在组件文件里散落领域类型定义。
|
|
290
|
+
*/
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Workboard 舞台层级。
|
|
294
|
+
*/
|
|
295
|
+
type DowncityWorkboardStageLevel = "clusters" | "agents";
|
|
296
|
+
/**
|
|
297
|
+
* 像素角色在地图上的朝向。
|
|
298
|
+
*/
|
|
299
|
+
type DowncityWorkboardMotionDirection = "left" | "right" | "up" | "down";
|
|
300
|
+
/**
|
|
301
|
+
* 像素角色当前的运动状态。
|
|
302
|
+
*/
|
|
303
|
+
type DowncityWorkboardMotionState = "walking" | "dwell";
|
|
304
|
+
/**
|
|
305
|
+
* Workboard 公共状态分区标识。
|
|
306
|
+
*/
|
|
307
|
+
type DowncityWorkboardZoneId = "engaged" | "steady" | "quiet" | "drift";
|
|
308
|
+
/**
|
|
309
|
+
* 单个状态分区的视觉与文案定义。
|
|
310
|
+
*/
|
|
311
|
+
interface DowncityWorkboardZoneDefinition {
|
|
312
|
+
/**
|
|
313
|
+
* 分区唯一标识。
|
|
314
|
+
*/
|
|
315
|
+
id: DowncityWorkboardZoneId;
|
|
316
|
+
/**
|
|
317
|
+
* 分区标题。
|
|
318
|
+
*/
|
|
319
|
+
title: string;
|
|
320
|
+
/**
|
|
321
|
+
* 分区辅助标题。
|
|
322
|
+
*/
|
|
323
|
+
subtitle: string;
|
|
324
|
+
/**
|
|
325
|
+
* 分区说明文本。
|
|
326
|
+
*/
|
|
327
|
+
description: string;
|
|
328
|
+
/**
|
|
329
|
+
* 分区徽标文案。
|
|
330
|
+
*/
|
|
331
|
+
badge: string;
|
|
332
|
+
/**
|
|
333
|
+
* 分区背景样式类名。
|
|
334
|
+
*/
|
|
335
|
+
areaClassName: string;
|
|
336
|
+
/**
|
|
337
|
+
* 分区边界样式类名。
|
|
338
|
+
*/
|
|
339
|
+
borderClassName: string;
|
|
340
|
+
/**
|
|
341
|
+
* 分区辉光样式类名。
|
|
342
|
+
*/
|
|
343
|
+
glowClassName: string;
|
|
344
|
+
/**
|
|
345
|
+
* 节点底板样式类名。
|
|
346
|
+
*/
|
|
347
|
+
nodeClassName: string;
|
|
348
|
+
/**
|
|
349
|
+
* 连线样式类名。
|
|
350
|
+
*/
|
|
351
|
+
lineClassName: string;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* 舞台上的绝对坐标点。
|
|
355
|
+
*/
|
|
356
|
+
interface DowncityWorkboardStagePoint {
|
|
357
|
+
/**
|
|
358
|
+
* 舞台横向坐标,单位为像素。
|
|
359
|
+
*/
|
|
360
|
+
x: number;
|
|
361
|
+
/**
|
|
362
|
+
* 舞台纵向坐标,单位为像素。
|
|
363
|
+
*/
|
|
364
|
+
y: number;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* 动效计算后的节点位置。
|
|
368
|
+
*/
|
|
369
|
+
interface DowncityWorkboardMotionFrame {
|
|
370
|
+
/**
|
|
371
|
+
* 当前横向坐标。
|
|
372
|
+
*/
|
|
373
|
+
x: number;
|
|
374
|
+
/**
|
|
375
|
+
* 当前纵向坐标。
|
|
376
|
+
*/
|
|
377
|
+
y: number;
|
|
378
|
+
/**
|
|
379
|
+
* 当前角色朝向。
|
|
380
|
+
*/
|
|
381
|
+
direction: DowncityWorkboardMotionDirection;
|
|
382
|
+
/**
|
|
383
|
+
* 当前运动状态。
|
|
384
|
+
*/
|
|
385
|
+
state: DowncityWorkboardMotionState;
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* 舞台 hover 标签。
|
|
389
|
+
*/
|
|
390
|
+
interface DowncityWorkboardHoverTag {
|
|
391
|
+
/**
|
|
392
|
+
* 标签唯一标识。
|
|
393
|
+
*/
|
|
394
|
+
id: string;
|
|
395
|
+
/**
|
|
396
|
+
* 展示文本。
|
|
397
|
+
*/
|
|
398
|
+
label: string;
|
|
399
|
+
/**
|
|
400
|
+
* 标签指向的横向坐标。
|
|
401
|
+
*/
|
|
402
|
+
x: number;
|
|
403
|
+
/**
|
|
404
|
+
* 标签指向的纵向坐标。
|
|
405
|
+
*/
|
|
406
|
+
y: number;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* Workboard 游戏地图配置类型。
|
|
411
|
+
*
|
|
412
|
+
* 关键点(中文)
|
|
413
|
+
* - 这里定义的是把公开 workboard 数据映射成“游戏地图世界”的中间层。
|
|
414
|
+
* - 上层可以把它交给 Pxlkit,也可以交给当前自研地图渲染器。
|
|
415
|
+
* - 该模型只描述舞台、节点、路线、标签和热点,不关心 plugin 或 console 内部实现。
|
|
416
|
+
*/
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* 地图中的单个区域标签。
|
|
420
|
+
*/
|
|
421
|
+
interface DowncityWorkboardGameAreaLabel {
|
|
422
|
+
/**
|
|
423
|
+
* 标签稳定标识。
|
|
424
|
+
*/
|
|
425
|
+
id: string;
|
|
426
|
+
/**
|
|
427
|
+
* 标签文案。
|
|
428
|
+
*/
|
|
429
|
+
label: string;
|
|
430
|
+
/**
|
|
431
|
+
* 标签横向坐标。
|
|
432
|
+
*/
|
|
433
|
+
x: number;
|
|
434
|
+
/**
|
|
435
|
+
* 标签纵向坐标。
|
|
436
|
+
*/
|
|
437
|
+
y: number;
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* 地图中的单个兴趣点或场景道具。
|
|
441
|
+
*/
|
|
442
|
+
interface DowncityWorkboardGamePointOfInterest {
|
|
443
|
+
/**
|
|
444
|
+
* 道具稳定标识。
|
|
445
|
+
*/
|
|
446
|
+
id: string;
|
|
447
|
+
/**
|
|
448
|
+
* 道具类型。
|
|
449
|
+
*/
|
|
450
|
+
kind: "desk" | "rack" | "console" | "crate" | "bench" | "plant" | "hub";
|
|
451
|
+
/**
|
|
452
|
+
* 道具所在横向坐标。
|
|
453
|
+
*/
|
|
454
|
+
x: number;
|
|
455
|
+
/**
|
|
456
|
+
* 道具所在纵向坐标。
|
|
457
|
+
*/
|
|
458
|
+
y: number;
|
|
459
|
+
/**
|
|
460
|
+
* 该道具是否为当前聚焦热点。
|
|
461
|
+
*/
|
|
462
|
+
active?: boolean;
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* 地图中的单条可视化路线。
|
|
466
|
+
*/
|
|
467
|
+
interface DowncityWorkboardGameRoute {
|
|
468
|
+
/**
|
|
469
|
+
* 路线稳定标识。
|
|
470
|
+
*/
|
|
471
|
+
id: string;
|
|
472
|
+
/**
|
|
473
|
+
* 路径点集合。
|
|
474
|
+
*/
|
|
475
|
+
points: DowncityWorkboardStagePoint[];
|
|
476
|
+
/**
|
|
477
|
+
* 路线类别。
|
|
478
|
+
*/
|
|
479
|
+
kind: "corridor" | "patrol" | "hub-link";
|
|
480
|
+
/**
|
|
481
|
+
* 是否处于高亮状态。
|
|
482
|
+
*/
|
|
483
|
+
active?: boolean;
|
|
484
|
+
/**
|
|
485
|
+
* 该路线所属的状态簇。
|
|
486
|
+
* 仅当路线和某个分区直接绑定时提供,便于舞台按簇过滤。
|
|
487
|
+
*/
|
|
488
|
+
zoneId?: DowncityWorkboardZoneId;
|
|
489
|
+
/**
|
|
490
|
+
* 角色经过路径点时的停留比例。
|
|
491
|
+
* 用于让 actor 在门口、hub、工位等关键点有短暂停靠感。
|
|
492
|
+
*/
|
|
493
|
+
dwellRatio?: number;
|
|
494
|
+
/**
|
|
495
|
+
* 路线坐标吸附到像素网格的尺寸。
|
|
496
|
+
* 该值会传给 motion 层,确保 movement 更像像素游戏。
|
|
497
|
+
*/
|
|
498
|
+
snapSize?: number;
|
|
499
|
+
/**
|
|
500
|
+
* 路线在地图上的短标签。
|
|
501
|
+
* 当前主要用于自定义 host 或后续增强的路线标记。
|
|
502
|
+
*/
|
|
503
|
+
label?: string;
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* 地图中的单个 agent actor。
|
|
507
|
+
*/
|
|
508
|
+
interface DowncityWorkboardGameActor {
|
|
509
|
+
/**
|
|
510
|
+
* actor 对应的 agent id。
|
|
511
|
+
*/
|
|
512
|
+
id: string;
|
|
513
|
+
/**
|
|
514
|
+
* 关联的 agent 公开项。
|
|
515
|
+
*/
|
|
516
|
+
agent: DowncityWorkboardAgentItem;
|
|
517
|
+
/**
|
|
518
|
+
* actor 当前所处分区。
|
|
519
|
+
*/
|
|
520
|
+
zoneId: DowncityWorkboardZoneId;
|
|
521
|
+
/**
|
|
522
|
+
* actor 在 atlas 总览层的锚点。
|
|
523
|
+
*/
|
|
524
|
+
overviewAnchor: DowncityWorkboardStagePoint;
|
|
525
|
+
/**
|
|
526
|
+
* actor 在 atlas 总览层对应的巡游路线。
|
|
527
|
+
*/
|
|
528
|
+
overviewRoute: DowncityWorkboardStagePoint[];
|
|
529
|
+
/**
|
|
530
|
+
* actor 在 focused 局部舞台中的锚点。
|
|
531
|
+
* 只有进入该分区内部后才会被消费。
|
|
532
|
+
*/
|
|
533
|
+
focusedAnchor?: DowncityWorkboardStagePoint;
|
|
534
|
+
/**
|
|
535
|
+
* actor 在 focused 局部舞台中所绑定的巡游路线 id。
|
|
536
|
+
* 渲染器会据此关联 patrol 路线并驱动节点运动。
|
|
537
|
+
*/
|
|
538
|
+
focusedRouteId?: string;
|
|
539
|
+
/**
|
|
540
|
+
* actor 在 atlas 中进入当前分区的门口坐标。
|
|
541
|
+
* 渲染器可以用它表现角色从公共通道切入某个状态簇。
|
|
542
|
+
*/
|
|
543
|
+
overviewGate: DowncityWorkboardStagePoint;
|
|
544
|
+
/**
|
|
545
|
+
* actor 在 focused 舞台中的工位坐标。
|
|
546
|
+
* 它通常接近 focusedAnchor,但语义上表示可停靠的 station。
|
|
547
|
+
*/
|
|
548
|
+
focusedStation?: DowncityWorkboardStagePoint;
|
|
549
|
+
/**
|
|
550
|
+
* 该 actor 是否处于当前 spotlight。
|
|
551
|
+
*/
|
|
552
|
+
active?: boolean;
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* 地图中的单个状态簇分区。
|
|
556
|
+
*/
|
|
557
|
+
interface DowncityWorkboardGameZone {
|
|
558
|
+
/**
|
|
559
|
+
* 分区标识。
|
|
560
|
+
*/
|
|
561
|
+
id: DowncityWorkboardZoneId;
|
|
562
|
+
/**
|
|
563
|
+
* 分区标题。
|
|
564
|
+
*/
|
|
565
|
+
title: string;
|
|
566
|
+
/**
|
|
567
|
+
* 分区副标题。
|
|
568
|
+
* 用于 atlas 标签和 focused 顶部提示语。
|
|
569
|
+
*/
|
|
570
|
+
subtitle: string;
|
|
571
|
+
/**
|
|
572
|
+
* 分区的公开说明。
|
|
573
|
+
* 用于 inspector 或主舞台边角说明。
|
|
574
|
+
*/
|
|
575
|
+
description: string;
|
|
576
|
+
/**
|
|
577
|
+
* 分区短徽标。
|
|
578
|
+
* 通常用于 focused hub 顶部的小型状态牌。
|
|
579
|
+
*/
|
|
580
|
+
badge: string;
|
|
581
|
+
/**
|
|
582
|
+
* 分区当前 agent 数量。
|
|
583
|
+
*/
|
|
584
|
+
count: number;
|
|
585
|
+
/**
|
|
586
|
+
* 该分区是否为当前活跃分区。
|
|
587
|
+
*/
|
|
588
|
+
active: boolean;
|
|
589
|
+
/**
|
|
590
|
+
* 分区 hub 坐标。
|
|
591
|
+
*/
|
|
592
|
+
hub: DowncityWorkboardStagePoint;
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* 完整的 workboard 游戏地图配置。
|
|
596
|
+
*/
|
|
597
|
+
interface DowncityWorkboardGameMapConfig {
|
|
598
|
+
/**
|
|
599
|
+
* 原始公开 board 快照。
|
|
600
|
+
*/
|
|
601
|
+
board: DowncityWorkboardBoardSnapshot;
|
|
602
|
+
/**
|
|
603
|
+
* 当前活跃分区。
|
|
604
|
+
*/
|
|
605
|
+
activeZoneId: DowncityWorkboardZoneId;
|
|
606
|
+
/**
|
|
607
|
+
* 当前选中的 agent id。
|
|
608
|
+
*/
|
|
609
|
+
selectedAgentId?: string;
|
|
610
|
+
/**
|
|
611
|
+
* atlas 层的分区摘要。
|
|
612
|
+
*/
|
|
613
|
+
zones: DowncityWorkboardGameZone[];
|
|
614
|
+
/**
|
|
615
|
+
* atlas 与 focused 共用的 actor 集合。
|
|
616
|
+
*/
|
|
617
|
+
actors: DowncityWorkboardGameActor[];
|
|
618
|
+
/**
|
|
619
|
+
* atlas 层通道。
|
|
620
|
+
*/
|
|
621
|
+
corridors: DowncityWorkboardGameRoute[];
|
|
622
|
+
/**
|
|
623
|
+
* focused 层巡游路线。
|
|
624
|
+
*/
|
|
625
|
+
patrols: DowncityWorkboardGameRoute[];
|
|
626
|
+
/**
|
|
627
|
+
* focused 层兴趣点与道具。
|
|
628
|
+
*/
|
|
629
|
+
pointsOfInterest: DowncityWorkboardGamePointOfInterest[];
|
|
630
|
+
/**
|
|
631
|
+
* focused 层区域标签。
|
|
632
|
+
*/
|
|
633
|
+
areaLabels: DowncityWorkboardGameAreaLabel[];
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
/**
|
|
637
|
+
* Workboard 游戏化 UI 组件类型。
|
|
638
|
+
*
|
|
639
|
+
* 关键点(中文)
|
|
640
|
+
* - 这里只描述 Workboard game shell 内部组件的 props。
|
|
641
|
+
* - 类型集中放在 types/ 下,避免 renderer 文件继续混入类型定义。
|
|
642
|
+
* - 这些类型不表达 plugin 或 console 语义,只表达游戏地图 UI 的组合关系。
|
|
643
|
+
*/
|
|
644
|
+
|
|
645
|
+
/**
|
|
646
|
+
* Workboard atlas 世界地图组件属性。
|
|
647
|
+
*/
|
|
648
|
+
interface DowncityWorkboardGameAtlasProps {
|
|
649
|
+
/**
|
|
650
|
+
* 当前公开 board 快照。
|
|
651
|
+
*/
|
|
652
|
+
board: DowncityWorkboardBoardSnapshot;
|
|
653
|
+
/**
|
|
654
|
+
* 当前游戏地图配置。
|
|
655
|
+
*/
|
|
656
|
+
gameMap: DowncityWorkboardGameMapConfig;
|
|
657
|
+
/**
|
|
658
|
+
* 当前活跃分区。
|
|
659
|
+
*/
|
|
660
|
+
activeZoneId: DowncityWorkboardZoneId;
|
|
661
|
+
/**
|
|
662
|
+
* 当前选中的 agent id。
|
|
663
|
+
*/
|
|
664
|
+
selectedAgentId?: string;
|
|
665
|
+
/**
|
|
666
|
+
* 当前地图流速档位。
|
|
667
|
+
*/
|
|
668
|
+
flowMode: "cruise" | "turbo";
|
|
669
|
+
/**
|
|
670
|
+
* 当前 motion hook 计算出的 actor 坐标。
|
|
671
|
+
*/
|
|
672
|
+
motionFrames: Record<string, DowncityWorkboardMotionFrame>;
|
|
673
|
+
/**
|
|
674
|
+
* 选择状态簇的回调。
|
|
675
|
+
*/
|
|
676
|
+
onSelectZone: (zoneId: DowncityWorkboardZoneId) => void;
|
|
677
|
+
/**
|
|
678
|
+
* 选择 agent 的回调。
|
|
679
|
+
*/
|
|
680
|
+
onSelectAgent?: (agentId: string, zoneId: DowncityWorkboardZoneId) => void;
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* Workboard cluster room 场景组件属性。
|
|
684
|
+
*/
|
|
685
|
+
interface DowncityWorkboardGameRoomProps {
|
|
686
|
+
/**
|
|
687
|
+
* 当前房间所属状态簇。
|
|
688
|
+
*/
|
|
689
|
+
zone: DowncityWorkboardZoneDefinition;
|
|
690
|
+
/**
|
|
691
|
+
* 当前房间中的 agent 列表。
|
|
692
|
+
*/
|
|
693
|
+
items: DowncityWorkboardAgentItem[];
|
|
694
|
+
/**
|
|
695
|
+
* 当前游戏地图配置。
|
|
696
|
+
*/
|
|
697
|
+
gameMap: DowncityWorkboardGameMapConfig;
|
|
698
|
+
/**
|
|
699
|
+
* 当前选中的 agent id。
|
|
700
|
+
*/
|
|
701
|
+
selectedAgentId?: string;
|
|
702
|
+
/**
|
|
703
|
+
* 当前 motion hook 计算出的 actor 坐标。
|
|
704
|
+
*/
|
|
705
|
+
motionFrames?: Record<string, DowncityWorkboardMotionFrame>;
|
|
706
|
+
/**
|
|
707
|
+
* 当前地图流速档位。
|
|
708
|
+
*/
|
|
709
|
+
flowMode: "cruise" | "turbo";
|
|
710
|
+
/**
|
|
711
|
+
* 选择 agent 的回调。
|
|
712
|
+
*/
|
|
713
|
+
onSelectAgent?: (agentId: string) => void;
|
|
714
|
+
}
|
|
715
|
+
/**
|
|
716
|
+
* Workboard 游戏化 HUD 属性。
|
|
717
|
+
*/
|
|
718
|
+
interface DowncityWorkboardGameHudProps {
|
|
719
|
+
/**
|
|
720
|
+
* 当前公开 board 快照。
|
|
721
|
+
*/
|
|
722
|
+
board: DowncityWorkboardBoardSnapshot;
|
|
723
|
+
/**
|
|
724
|
+
* 当前舞台层级。
|
|
725
|
+
*/
|
|
726
|
+
stageLevel: DowncityWorkboardStageLevel;
|
|
727
|
+
/**
|
|
728
|
+
* 当前活跃分区。
|
|
729
|
+
*/
|
|
730
|
+
activeZone: DowncityWorkboardZoneDefinition;
|
|
731
|
+
/**
|
|
732
|
+
* 当前选中的 agent。
|
|
733
|
+
*/
|
|
734
|
+
selected: DowncityWorkboardAgentItem | null;
|
|
735
|
+
/**
|
|
736
|
+
* 当前地图流速档位。
|
|
737
|
+
*/
|
|
738
|
+
flowMode: "cruise" | "turbo";
|
|
739
|
+
/**
|
|
740
|
+
* 是否正在刷新。
|
|
741
|
+
*/
|
|
742
|
+
loading?: boolean;
|
|
743
|
+
/**
|
|
744
|
+
* 是否处于全屏。
|
|
745
|
+
*/
|
|
746
|
+
isFullscreen: boolean;
|
|
747
|
+
/**
|
|
748
|
+
* 底部 portal rail 展示的状态簇集合。
|
|
749
|
+
*/
|
|
750
|
+
zones: DowncityWorkboardGameZone[];
|
|
751
|
+
/**
|
|
752
|
+
* 从底部 portal rail 进入某个状态簇。
|
|
753
|
+
*/
|
|
754
|
+
onSelectZone?: (zoneId: DowncityWorkboardZoneId) => void;
|
|
755
|
+
/**
|
|
756
|
+
* 返回 atlas 的回调。
|
|
757
|
+
*/
|
|
758
|
+
onBackToAtlas?: () => void;
|
|
759
|
+
/**
|
|
760
|
+
* 切换地图流速的回调。
|
|
761
|
+
*/
|
|
762
|
+
onToggleFlowMode: () => void;
|
|
763
|
+
/**
|
|
764
|
+
* 刷新数据的回调。
|
|
765
|
+
*/
|
|
766
|
+
onRefresh?: () => void;
|
|
767
|
+
/**
|
|
768
|
+
* 切换全屏的回调。
|
|
769
|
+
*/
|
|
770
|
+
onToggleFullscreen: () => void;
|
|
771
|
+
}
|
|
772
|
+
/**
|
|
773
|
+
* Workboard 游戏化 inspector 属性。
|
|
774
|
+
*/
|
|
775
|
+
interface DowncityWorkboardGameInspectorProps {
|
|
776
|
+
/**
|
|
777
|
+
* 当前选中的 agent。
|
|
778
|
+
*/
|
|
779
|
+
selected: DowncityWorkboardAgentItem | null;
|
|
780
|
+
/**
|
|
781
|
+
* 当前活跃分区。
|
|
782
|
+
*/
|
|
783
|
+
activeZone: DowncityWorkboardZoneDefinition;
|
|
784
|
+
/**
|
|
785
|
+
* 当前分区里的 agent 列表。
|
|
786
|
+
*/
|
|
787
|
+
selectedPeers: DowncityWorkboardAgentItem[];
|
|
788
|
+
/**
|
|
789
|
+
* 当前舞台层级。
|
|
790
|
+
*/
|
|
791
|
+
stageLevel: DowncityWorkboardStageLevel;
|
|
792
|
+
/**
|
|
793
|
+
* 是否折叠 inspector。
|
|
794
|
+
*/
|
|
795
|
+
collapsed: boolean;
|
|
796
|
+
/**
|
|
797
|
+
* 切换 inspector 折叠状态。
|
|
798
|
+
*/
|
|
799
|
+
onToggleCollapsed?: () => void;
|
|
800
|
+
/**
|
|
801
|
+
* 选择 agent 的回调。
|
|
802
|
+
*/
|
|
803
|
+
onSelectAgent?: (agentId: string) => void;
|
|
804
|
+
}
|
|
805
|
+
/**
|
|
806
|
+
* Workboard hover 标签状态更新函数。
|
|
807
|
+
*/
|
|
808
|
+
type DowncityWorkboardHoverTagSetter = (tag: DowncityWorkboardHoverTag | null) => void;
|
|
809
|
+
|
|
50
810
|
declare const buttonVariants: (props?: ({
|
|
51
811
|
variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "link" | null | undefined;
|
|
52
812
|
size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
@@ -68,6 +828,25 @@ declare function CardAction({ className, ...props }: React.ComponentProps<"div">
|
|
|
68
828
|
declare function CardContent({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
69
829
|
declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
70
830
|
|
|
831
|
+
declare function Checkbox({ className, ...props }: Checkbox$1.Root.Props): react_jsx_runtime.JSX.Element;
|
|
832
|
+
|
|
833
|
+
declare function Dialog(props: Dialog$1.Root.Props): react_jsx_runtime.JSX.Element;
|
|
834
|
+
declare function DialogTrigger(props: Dialog$1.Trigger.Props): react_jsx_runtime.JSX.Element;
|
|
835
|
+
declare function DialogPortal(props: Dialog$1.Portal.Props): react_jsx_runtime.JSX.Element;
|
|
836
|
+
declare function DialogClose(props: Dialog$1.Close.Props): react_jsx_runtime.JSX.Element;
|
|
837
|
+
declare function DialogOverlay({ className, ...props }: Dialog$1.Backdrop.Props): react_jsx_runtime.JSX.Element;
|
|
838
|
+
declare function DialogContent({ className, children, showCloseButton, ...props }: Dialog$1.Popup.Props & {
|
|
839
|
+
showCloseButton?: boolean;
|
|
840
|
+
}): react_jsx_runtime.JSX.Element;
|
|
841
|
+
declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
842
|
+
declare function DialogFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
843
|
+
declare function DialogTitle({ className, ...props }: Dialog$1.Title.Props): react_jsx_runtime.JSX.Element;
|
|
844
|
+
declare function DialogDescription({ className, ...props }: Dialog$1.Description.Props): react_jsx_runtime.JSX.Element;
|
|
845
|
+
|
|
846
|
+
declare function Input({ className, type, ...props }: React.ComponentProps<"input">): react_jsx_runtime.JSX.Element;
|
|
847
|
+
|
|
848
|
+
declare function Label({ className, ...props }: React.ComponentProps<"label">): react_jsx_runtime.JSX.Element;
|
|
849
|
+
|
|
71
850
|
declare function DropdownMenu({ ...props }: Menu.Root.Props): react_jsx_runtime.JSX.Element;
|
|
72
851
|
declare function DropdownMenuPortal({ ...props }: Menu.Portal.Props): react_jsx_runtime.JSX.Element;
|
|
73
852
|
declare function DropdownMenuTrigger({ ...props }: Menu.Trigger.Props): react_jsx_runtime.JSX.Element;
|
|
@@ -99,6 +878,90 @@ declare function Popover({ ...props }: Popover$1.Root.Props): react_jsx_runtime.
|
|
|
99
878
|
declare function PopoverTrigger({ ...props }: Popover$1.Trigger.Props): react_jsx_runtime.JSX.Element;
|
|
100
879
|
declare function PopoverContent({ className, side, sideOffset, align, alignOffset, ...props }: Popover$1.Popup.Props & Pick<Popover$1.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): react_jsx_runtime.JSX.Element;
|
|
101
880
|
|
|
881
|
+
declare function Separator({ className, orientation, ...props }: Separator$1.Props): react_jsx_runtime.JSX.Element;
|
|
882
|
+
|
|
883
|
+
declare function Sheet({ ...props }: Dialog$1.Root.Props): react_jsx_runtime.JSX.Element;
|
|
884
|
+
declare function SheetTrigger({ ...props }: Dialog$1.Trigger.Props): react_jsx_runtime.JSX.Element;
|
|
885
|
+
declare function SheetClose({ ...props }: Dialog$1.Close.Props): react_jsx_runtime.JSX.Element;
|
|
886
|
+
declare function SheetPortal({ ...props }: Dialog$1.Portal.Props): react_jsx_runtime.JSX.Element;
|
|
887
|
+
declare function SheetOverlay({ className, ...props }: Dialog$1.Backdrop.Props): react_jsx_runtime.JSX.Element;
|
|
888
|
+
declare function SheetContent({ className, children, side, showCloseButton, ...props }: Dialog$1.Popup.Props & {
|
|
889
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
890
|
+
showCloseButton?: boolean;
|
|
891
|
+
}): react_jsx_runtime.JSX.Element;
|
|
892
|
+
declare function SheetHeader({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
893
|
+
declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
894
|
+
declare function SheetTitle({ className, ...props }: Dialog$1.Title.Props): react_jsx_runtime.JSX.Element;
|
|
895
|
+
declare function SheetDescription({ className, ...props }: Dialog$1.Description.Props): react_jsx_runtime.JSX.Element;
|
|
896
|
+
|
|
897
|
+
declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
898
|
+
|
|
899
|
+
declare function Tabs({ className, orientation, ...props }: Tabs$1.Root.Props): react_jsx_runtime.JSX.Element;
|
|
900
|
+
declare const tabsListVariants: (props?: ({
|
|
901
|
+
variant?: "default" | "line" | null | undefined;
|
|
902
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
903
|
+
declare function TabsList({ className, variant, ...props }: Tabs$1.List.Props & VariantProps<typeof tabsListVariants>): react_jsx_runtime.JSX.Element;
|
|
904
|
+
declare function TabsTrigger({ className, ...props }: Tabs$1.Tab.Props): react_jsx_runtime.JSX.Element;
|
|
905
|
+
declare function TabsContent({ className, ...props }: Tabs$1.Panel.Props): react_jsx_runtime.JSX.Element;
|
|
906
|
+
|
|
907
|
+
/**
|
|
908
|
+
* Downcity Textarea 基础组件。
|
|
909
|
+
*
|
|
910
|
+
* 关键说明(中文)
|
|
911
|
+
* - 用于多行文本、Prompt、环境变量片段等输入场景。
|
|
912
|
+
* - 默认保留较舒展的内边距,适合配置面板中的长文本编辑。
|
|
913
|
+
*/
|
|
914
|
+
|
|
915
|
+
/**
|
|
916
|
+
* Textarea 组件属性。
|
|
917
|
+
*
|
|
918
|
+
* 关键说明(中文)
|
|
919
|
+
* - 直接复用原生 `textarea` 属性,保证宿主应用接入成本最低。
|
|
920
|
+
*/
|
|
921
|
+
interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
922
|
+
}
|
|
923
|
+
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
924
|
+
|
|
102
925
|
declare function Toaster({ ...props }: ToasterProps): react_jsx_runtime.JSX.Element;
|
|
103
926
|
|
|
104
|
-
|
|
927
|
+
declare const toggleVariants: (props?: ({
|
|
928
|
+
variant?: "default" | "outline" | null | undefined;
|
|
929
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
930
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
931
|
+
declare function Toggle({ className, variant, size, ...props }: Toggle$1.Props & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
|
|
932
|
+
|
|
933
|
+
declare function ToggleGroup({ className, variant, size, spacing, orientation, children, ...props }: ToggleGroup$1.Props & VariantProps<typeof toggleVariants> & {
|
|
934
|
+
spacing?: number;
|
|
935
|
+
orientation?: "horizontal" | "vertical";
|
|
936
|
+
}): react_jsx_runtime.JSX.Element;
|
|
937
|
+
declare function ToggleGroupItem({ className, children, variant, size, ...props }: Toggle$1.Props & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
|
|
938
|
+
|
|
939
|
+
declare function TooltipProvider({ delay, ...props }: Tooltip$1.Provider.Props): react_jsx_runtime.JSX.Element;
|
|
940
|
+
declare function Tooltip({ ...props }: Tooltip$1.Root.Props): react_jsx_runtime.JSX.Element;
|
|
941
|
+
declare function TooltipTrigger({ ...props }: Tooltip$1.Trigger.Props): react_jsx_runtime.JSX.Element;
|
|
942
|
+
declare function TooltipContent({ className, side, sideOffset, align, alignOffset, children, ...props }: Tooltip$1.Popup.Props & Pick<Tooltip$1.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): react_jsx_runtime.JSX.Element;
|
|
943
|
+
|
|
944
|
+
/**
|
|
945
|
+
* 渲染全局 Workboard 游戏世界。
|
|
946
|
+
*/
|
|
947
|
+
declare function Workboard(props: DowncityWorkboardProps): react_jsx_runtime.JSX.Element;
|
|
948
|
+
|
|
949
|
+
/**
|
|
950
|
+
* Workboard 游戏地图配置构建器。
|
|
951
|
+
*
|
|
952
|
+
* 关键点(中文)
|
|
953
|
+
* - 这里负责把公开 board 快照映射成游戏地图层可消费的配置。
|
|
954
|
+
* - 它不直接渲染,只输出 zones / actors / routes / POI / labels。
|
|
955
|
+
* - 当前渲染器和未来接入的 Pxlkit 都可以复用这层配置。
|
|
956
|
+
*/
|
|
957
|
+
|
|
958
|
+
/**
|
|
959
|
+
* 根据当前 board 构建完整游戏地图配置。
|
|
960
|
+
*/
|
|
961
|
+
declare function buildWorkboardGameMapConfig(params: {
|
|
962
|
+
board: DowncityWorkboardBoardSnapshot;
|
|
963
|
+
activeZoneId: DowncityWorkboardZoneId;
|
|
964
|
+
selectedAgentId?: string;
|
|
965
|
+
}): DowncityWorkboardGameMapConfig;
|
|
966
|
+
|
|
967
|
+
export { Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, type DowncityButtonSize, type DowncityButtonVariant, type DowncityCardSize, type DowncityDropdownMenuItemVariant, type DowncityToasterTheme, type DowncityWorkboardActivityItem, type DowncityWorkboardAgentItem, type DowncityWorkboardAgentSnapshot, type DowncityWorkboardBoardSnapshot, type DowncityWorkboardBoardSummary, type DowncityWorkboardGameActor, type DowncityWorkboardGameAreaLabel, type DowncityWorkboardGameAtlasProps, type DowncityWorkboardGameHudProps, type DowncityWorkboardGameInspectorProps, type DowncityWorkboardGameMapConfig, type DowncityWorkboardGamePointOfInterest, type DowncityWorkboardGameRoomProps, type DowncityWorkboardGameRoute, type DowncityWorkboardGameZone, type DowncityWorkboardHoverTagSetter, type DowncityWorkboardProps, type DowncityWorkboardSignalItem, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, Label, Popover, PopoverContent, PopoverTrigger, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, type TextareaProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Workboard, badgeVariants, buildWorkboardGameMapConfig, buttonVariants, cn, tabsListVariants, toggleVariants };
|