@iyulab/u-board-designer 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +127 -2
- package/dist/lib/authoring/AnchorFields.d.ts +12 -0
- package/dist/lib/authoring/AnchorFields.js +64 -0
- package/dist/lib/authoring/BackgroundField.d.ts +13 -0
- package/dist/lib/authoring/BackgroundField.js +38 -0
- package/dist/lib/authoring/BoardAuthoring.d.ts +37 -0
- package/dist/lib/authoring/BoardAuthoring.js +288 -0
- package/dist/lib/authoring/BoardElementsPanel.d.ts +14 -0
- package/dist/lib/authoring/BoardElementsPanel.js +49 -0
- package/dist/lib/authoring/BoardPanel.d.ts +40 -0
- package/dist/lib/authoring/BoardPanel.js +22 -0
- package/dist/lib/authoring/CanvasAuthoring.d.ts +13 -0
- package/dist/lib/authoring/CanvasAuthoring.js +161 -0
- package/dist/lib/authoring/DataPanel.d.ts +29 -0
- package/dist/lib/authoring/DataPanel.js +98 -0
- package/dist/lib/authoring/GridAuthoring.d.ts +13 -0
- package/dist/lib/authoring/GridAuthoring.js +135 -0
- package/dist/lib/authoring/GridItemPanel.d.ts +22 -0
- package/dist/lib/authoring/GridItemPanel.js +21 -0
- package/dist/lib/authoring/LinkPanel.d.ts +19 -0
- package/dist/lib/authoring/LinkPanel.js +24 -0
- package/dist/lib/authoring/MappingEditor.d.ts +23 -0
- package/dist/lib/authoring/MappingEditor.js +83 -0
- package/dist/lib/authoring/PartPanel.d.ts +24 -0
- package/dist/lib/authoring/PartPanel.js +78 -0
- package/dist/lib/authoring/ShapePanel.d.ts +20 -0
- package/dist/lib/authoring/ShapePanel.js +54 -0
- package/dist/lib/authoring/StatesEditor.d.ts +18 -0
- package/dist/lib/authoring/StatesEditor.js +79 -0
- package/dist/lib/authoring/StatusesPanel.d.ts +14 -0
- package/dist/lib/authoring/StatusesPanel.js +32 -0
- package/dist/lib/authoring/TriggersEditor.d.ts +30 -0
- package/dist/lib/authoring/TriggersEditor.js +137 -0
- package/dist/lib/authoring/ValueMapFields.d.ts +64 -0
- package/dist/lib/authoring/ValueMapFields.js +68 -0
- package/dist/lib/authoring/WidgetPropsForm.d.ts +27 -0
- package/dist/lib/authoring/WidgetPropsForm.js +56 -0
- package/dist/lib/authoring/background-image.d.ts +25 -0
- package/dist/lib/authoring/background-image.js +63 -0
- package/dist/lib/authoring/board-layout.d.ts +64 -0
- package/dist/lib/authoring/board-layout.js +326 -0
- package/dist/lib/authoring/board-triggers.d.ts +5 -0
- package/dist/lib/authoring/board-triggers.js +55 -0
- package/dist/lib/authoring/document-history.d.ts +23 -0
- package/dist/lib/authoring/document-history.js +37 -0
- package/dist/lib/authoring/editor-parts.d.ts +46 -0
- package/dist/lib/authoring/editor-parts.js +6 -0
- package/dist/lib/authoring/field-style.d.ts +3 -0
- package/dist/lib/authoring/field-style.js +2 -0
- package/dist/lib/authoring/part-names.d.ts +6 -0
- package/dist/lib/authoring/part-names.js +9 -0
- package/dist/lib/authoring/scene-mapping.d.ts +22 -0
- package/dist/lib/authoring/scene-mapping.js +124 -0
- package/dist/lib/authoring/use-edit-keys.d.ts +13 -0
- package/dist/lib/authoring/use-edit-keys.js +57 -0
- package/dist/lib/authoring/widget-catalog.d.ts +4 -0
- package/dist/lib/authoring/widget-catalog.js +9 -0
- package/dist/lib/authoring/widget-fields.d.ts +45 -0
- package/dist/lib/authoring/widget-fields.js +129 -0
- package/dist/lib/board/check.d.ts +27 -0
- package/dist/lib/board/check.js +48 -0
- package/dist/lib/board/rulebook.d.ts +7 -0
- package/dist/lib/board/rulebook.js +148 -0
- package/dist/lib/check-entry.d.ts +3 -0
- package/dist/lib/check-entry.js +4 -0
- package/dist/lib/editing/grid-editing.d.ts +19 -0
- package/dist/lib/editing/grid-editing.js +68 -0
- package/dist/lib/editing/part-removal.d.ts +4 -0
- package/dist/lib/editing/part-removal.js +11 -0
- package/dist/lib/editing/trigger-editing.d.ts +16 -0
- package/dist/lib/editing/trigger-editing.js +36 -0
- package/dist/lib/index.d.ts +7 -0
- package/dist/lib/index.js +5 -0
- package/dist/lib/labels-ko.d.ts +4 -0
- package/dist/lib/labels-ko.js +270 -0
- package/dist/lib/labels.d.ts +368 -0
- package/dist/lib/labels.js +273 -0
- package/dist/lib/use-labels.d.ts +7 -0
- package/dist/lib/use-labels.js +12 -0
- package/package.json +75 -4
- package/styles.css +277 -0
package/package.json
CHANGED
|
@@ -1,6 +1,77 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iyulab/u-board-designer",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "The authoring tool for U-Board boards, and the check and rulebook an assistant writes by",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "AGPL-3.0-or-later",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/iyulab/u-board-studio.git",
|
|
10
|
+
"directory": "packages/designer"
|
|
11
|
+
},
|
|
12
|
+
"main": "./dist/lib/index.js",
|
|
13
|
+
"module": "./dist/lib/index.js",
|
|
14
|
+
"types": "./dist/lib/index.d.ts",
|
|
15
|
+
"files": [
|
|
16
|
+
"dist/lib",
|
|
17
|
+
"styles.css",
|
|
18
|
+
"LICENSE",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"exports": {
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./dist/lib/index.d.ts",
|
|
24
|
+
"import": "./dist/lib/index.js"
|
|
25
|
+
},
|
|
26
|
+
"./check": {
|
|
27
|
+
"types": "./dist/lib/check-entry.d.ts",
|
|
28
|
+
"import": "./dist/lib/check-entry.js"
|
|
29
|
+
},
|
|
30
|
+
"./styles.css": "./styles.css"
|
|
31
|
+
},
|
|
32
|
+
"scripts": {
|
|
33
|
+
"dev": "vite",
|
|
34
|
+
"build": "tsc --noEmit && vite build",
|
|
35
|
+
"build:lib": "tsc -p tsconfig.build.json",
|
|
36
|
+
"typecheck": "tsc --noEmit",
|
|
37
|
+
"test": "vitest run",
|
|
38
|
+
"test:watch": "vitest",
|
|
39
|
+
"test:e2e": "playwright test",
|
|
40
|
+
"prepack": "node scripts/prepack.mjs",
|
|
41
|
+
"test:visual:update": "bash ../../scripts/update-visual-baselines.sh"
|
|
42
|
+
},
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=22.12.0"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@canvas-kit/core": "^0.8.0",
|
|
48
|
+
"@canvas-kit/designer": "^0.10.0",
|
|
49
|
+
"@canvas-kit/viewer": "^0.6.1",
|
|
50
|
+
"@iyulab/u-board": "^0.39.0",
|
|
51
|
+
"@iyulab/u-widgets": "^0.45.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@playwright/test": "^1.62.1",
|
|
55
|
+
"@testing-library/dom": "^10.4.2",
|
|
56
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
57
|
+
"@testing-library/react": "^16.3.2",
|
|
58
|
+
"@types/node": "^26.4.0",
|
|
59
|
+
"@types/react": "^19.2.14",
|
|
60
|
+
"@types/react-dom": "^19.2.5",
|
|
61
|
+
"@vitejs/plugin-react": "^6.0.5",
|
|
62
|
+
"jsdom": "^30.1.1",
|
|
63
|
+
"react": "^19.2.0",
|
|
64
|
+
"react-dom": "^19.2.0",
|
|
65
|
+
"typescript": "^7.0.2",
|
|
66
|
+
"vite": "^8.2.1",
|
|
67
|
+
"vitest": "^5.0.2"
|
|
68
|
+
},
|
|
69
|
+
"peerDependencies": {
|
|
70
|
+
"react": "^19.2.0",
|
|
71
|
+
"react-dom": "^19.2.0"
|
|
72
|
+
},
|
|
73
|
+
"publishConfig": {
|
|
74
|
+
"access": "public",
|
|
75
|
+
"provenance": true
|
|
76
|
+
}
|
|
77
|
+
}
|
package/styles.css
ADDED
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @iyulab/u-board-designer — optional default look for the authoring view.
|
|
3
|
+
*
|
|
4
|
+
* Import it once, after `@iyulab/u-board/styles.css` (which carries the buttons and the viewer the authoring
|
|
5
|
+
* view draws the board with): `import '@iyulab/u-board-designer/styles.css'`. Without it every screen still
|
|
6
|
+
* works; the controls just keep the browser's own look.
|
|
7
|
+
*
|
|
8
|
+
* Theming and light or dark work as in `@iyulab/u-board/styles.css`: the rules read `--ub-*` custom
|
|
9
|
+
* properties, fall back to the values written here, and follow the page's declared theme or the system
|
|
10
|
+
* preference. The full list is in the package README ("Styling").
|
|
11
|
+
*
|
|
12
|
+
* Rules target the stable class names (`ub-authoring`, `ub-panel`, …), mostly one class each.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/* Each root resolves the public tokens once, under private names, so a token a host defines on an
|
|
16
|
+
ancestor reaches every rule below and an undefined one falls back here. */
|
|
17
|
+
.ub-authoring {
|
|
18
|
+
--_ub-surface: var(--ub-bg-surface, #ffffff);
|
|
19
|
+
--_ub-subtle: var(--ub-bg-subtle, #f1f5f9);
|
|
20
|
+
--_ub-border: var(--ub-border, #e2e8f0);
|
|
21
|
+
--_ub-border-strong: var(--ub-border-strong, #cbd5e1);
|
|
22
|
+
--_ub-text-strong: var(--ub-text-strong, #0f172a);
|
|
23
|
+
--_ub-text: var(--ub-text-normal, #334155);
|
|
24
|
+
--_ub-text-muted: var(--ub-text-muted, #64748b);
|
|
25
|
+
--_ub-accent: var(--ub-brand-solid, #0f766e);
|
|
26
|
+
--_ub-accent-text: var(--ub-text-inverse, #ffffff);
|
|
27
|
+
--_ub-accent-subtle: var(--ub-brand-subtle, rgba(15, 118, 110, 0.08));
|
|
28
|
+
--_ub-error: var(--ub-error, #b91c1c);
|
|
29
|
+
--_ub-warning: var(--ub-warning, #92400e);
|
|
30
|
+
--_ub-warning-bg: var(--ub-warning-bg, #fef3c7);
|
|
31
|
+
--_ub-radius-sm: var(--ub-radius-sm, 6px);
|
|
32
|
+
--_ub-radius-md: var(--ub-radius-md, 10px);
|
|
33
|
+
--_ub-space-1: var(--ub-space-1, 4px);
|
|
34
|
+
--_ub-space-2: var(--ub-space-2, 8px);
|
|
35
|
+
--_ub-space-3: var(--ub-space-3, 12px);
|
|
36
|
+
--_ub-space-4: var(--ub-space-4, 16px);
|
|
37
|
+
--_ub-font-xs: var(--ub-font-size-xs, 11px);
|
|
38
|
+
--_ub-font-sm: var(--ub-font-size-sm, 12px);
|
|
39
|
+
--_ub-font-md: var(--ub-font-size-md, 13px);
|
|
40
|
+
--_ub-font-base: var(--ub-font-size-base, 14px);
|
|
41
|
+
--_ub-font: var(--ub-font-sans, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
|
|
42
|
+
|
|
43
|
+
font-family: var(--_ub-font);
|
|
44
|
+
font-size: var(--_ub-font-base);
|
|
45
|
+
line-height: 1.5;
|
|
46
|
+
color: var(--_ub-text);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* The dark fallbacks — twice, because a declared theme and the system preference are separate
|
|
50
|
+
conditions: once for a page that declares dark, once for one that declares nothing on a dark system. */
|
|
51
|
+
:root[data-theme='dark'] .ub-authoring {
|
|
52
|
+
--_ub-surface: var(--ub-bg-surface, #111b2f);
|
|
53
|
+
--_ub-subtle: var(--ub-bg-subtle, #16243a);
|
|
54
|
+
--_ub-border: var(--ub-border, #22324a);
|
|
55
|
+
--_ub-border-strong: var(--ub-border-strong, #2b3f5c);
|
|
56
|
+
--_ub-text-strong: var(--ub-text-strong, #e2e8f0);
|
|
57
|
+
--_ub-text: var(--ub-text-normal, #cbd5e1);
|
|
58
|
+
--_ub-text-muted: var(--ub-text-muted, #94a3b8);
|
|
59
|
+
--_ub-accent-subtle: var(--ub-brand-subtle, rgba(45, 212, 191, 0.12));
|
|
60
|
+
--_ub-error: var(--ub-error, #f87171);
|
|
61
|
+
--_ub-warning: var(--ub-warning, #fbbf24);
|
|
62
|
+
--_ub-warning-bg: var(--ub-warning-bg, #2d1d05);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@media (prefers-color-scheme: dark) {
|
|
66
|
+
:root:not([data-theme='light']):not([data-theme='dark']) .ub-authoring {
|
|
67
|
+
--_ub-surface: var(--ub-bg-surface, #111b2f);
|
|
68
|
+
--_ub-subtle: var(--ub-bg-subtle, #16243a);
|
|
69
|
+
--_ub-border: var(--ub-border, #22324a);
|
|
70
|
+
--_ub-border-strong: var(--ub-border-strong, #2b3f5c);
|
|
71
|
+
--_ub-text-strong: var(--ub-text-strong, #e2e8f0);
|
|
72
|
+
--_ub-text: var(--ub-text-normal, #cbd5e1);
|
|
73
|
+
--_ub-text-muted: var(--ub-text-muted, #94a3b8);
|
|
74
|
+
--_ub-accent-subtle: var(--ub-brand-subtle, rgba(45, 212, 191, 0.12));
|
|
75
|
+
--_ub-error: var(--ub-error, #f87171);
|
|
76
|
+
--_ub-warning: var(--ub-warning, #fbbf24);
|
|
77
|
+
--_ub-warning-bg: var(--ub-warning-bg, #2d1d05);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* ── Authoring view ──────────────────────────────────────────────────── */
|
|
82
|
+
|
|
83
|
+
/* ── Buttons the authoring view adds to the viewer package's ───────────── */
|
|
84
|
+
|
|
85
|
+
.ub-action--primary {
|
|
86
|
+
border-color: var(--_ub-accent);
|
|
87
|
+
background: var(--_ub-accent);
|
|
88
|
+
color: var(--_ub-accent-text);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* The chosen one of a set of toggles. */
|
|
92
|
+
.ub-action[aria-pressed="true"] {
|
|
93
|
+
border-color: var(--_ub-accent);
|
|
94
|
+
background: var(--_ub-accent-subtle);
|
|
95
|
+
color: var(--_ub-text);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.ub-action--primary:hover:not(:disabled) {
|
|
99
|
+
background: var(--_ub-accent);
|
|
100
|
+
filter: brightness(1.08);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* ── Authoring view ──────────────────────────────────────────────────── */
|
|
104
|
+
|
|
105
|
+
.ub-authoring__toolbar {
|
|
106
|
+
padding-bottom: var(--_ub-space-3);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* Actions that belong together sit together; a thin rule sets one group off from the next. */
|
|
110
|
+
.ub-authoring__group + .ub-authoring__group {
|
|
111
|
+
padding-left: var(--_ub-space-2);
|
|
112
|
+
border-left: 1px solid var(--_ub-border);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.ub-authoring__error {
|
|
116
|
+
margin: var(--_ub-space-2) 0 0;
|
|
117
|
+
font-size: var(--_ub-font-md);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* The widget type named above a node on the editor — a quiet hint over the board, never covering the widget. */
|
|
121
|
+
.ub-authoring__node-tag {
|
|
122
|
+
padding: 0 var(--_ub-space-1);
|
|
123
|
+
border-radius: var(--_ub-radius-sm) var(--_ub-radius-sm) 0 0;
|
|
124
|
+
background: var(--_ub-accent);
|
|
125
|
+
color: var(--_ub-accent-text);
|
|
126
|
+
font-size: var(--_ub-font-xs);
|
|
127
|
+
line-height: 1.5;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* The board's frame (the editor, or the board in view mode), so a board with nothing on it still reads as a board.
|
|
131
|
+
Inside the frame is the board's paper — the board's own tone, not the page theme: light like the drawings boards
|
|
132
|
+
are made on, unless the board is dark (below). */
|
|
133
|
+
.ub-authoring__surface {
|
|
134
|
+
border: 1px solid var(--_ub-border);
|
|
135
|
+
border-radius: var(--_ub-radius-md);
|
|
136
|
+
background: var(--ub-board-bg, #ffffff);
|
|
137
|
+
overflow: hidden;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* A dark board (`appearance: "dark"`) — for a dark drawing, or none: dark paper, and the widgets on it
|
|
141
|
+
take their dark palette. */
|
|
142
|
+
.ub-authoring__surface[data-appearance="dark"] {
|
|
143
|
+
background: var(--ub-board-bg-dark, #111827);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.ub-authoring__panel {
|
|
147
|
+
box-sizing: border-box;
|
|
148
|
+
padding: var(--_ub-space-3);
|
|
149
|
+
border: 1px solid var(--_ub-border);
|
|
150
|
+
border-radius: var(--_ub-radius-md);
|
|
151
|
+
background: var(--_ub-surface);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.ub-authoring__status {
|
|
155
|
+
margin: var(--_ub-space-2) 0;
|
|
156
|
+
font-size: var(--_ub-font-md);
|
|
157
|
+
color: var(--_ub-text-muted);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/* ── Property and decoration panels ──────────────────────────────────── */
|
|
161
|
+
|
|
162
|
+
.ub-panel__heading {
|
|
163
|
+
margin: 0 0 var(--_ub-space-3);
|
|
164
|
+
font-size: var(--_ub-font-base);
|
|
165
|
+
font-weight: 700;
|
|
166
|
+
color: var(--_ub-text-strong);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.ub-panel__subheading {
|
|
170
|
+
margin: var(--_ub-space-3) 0 var(--_ub-space-2);
|
|
171
|
+
padding-top: var(--_ub-space-3);
|
|
172
|
+
border-top: 1px solid var(--_ub-border);
|
|
173
|
+
font-size: var(--_ub-font-md);
|
|
174
|
+
font-weight: 700;
|
|
175
|
+
color: var(--_ub-text-strong);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* A label above its control, the control as wide as the panel. */
|
|
179
|
+
.ub-panel__field {
|
|
180
|
+
display: flex;
|
|
181
|
+
flex-direction: column;
|
|
182
|
+
gap: var(--_ub-space-1);
|
|
183
|
+
margin: 0 0 var(--_ub-space-2);
|
|
184
|
+
font-size: var(--_ub-font-sm);
|
|
185
|
+
font-weight: 600;
|
|
186
|
+
color: var(--_ub-text);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.ub-panel input:not([type='checkbox']):not([type='radio']),
|
|
190
|
+
.ub-panel select,
|
|
191
|
+
.ub-panel textarea {
|
|
192
|
+
box-sizing: border-box;
|
|
193
|
+
width: 100%;
|
|
194
|
+
min-width: 0;
|
|
195
|
+
min-height: 32px;
|
|
196
|
+
padding: var(--_ub-space-1) var(--_ub-space-2);
|
|
197
|
+
border: 1px solid var(--_ub-border-strong);
|
|
198
|
+
border-radius: var(--_ub-radius-sm);
|
|
199
|
+
background: var(--_ub-surface);
|
|
200
|
+
color: var(--_ub-text-strong);
|
|
201
|
+
font: inherit;
|
|
202
|
+
font-size: var(--_ub-font-md);
|
|
203
|
+
font-weight: 400;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.ub-panel__group {
|
|
207
|
+
margin: 0 0 var(--_ub-space-3);
|
|
208
|
+
padding: var(--_ub-space-2);
|
|
209
|
+
border: 1px solid var(--_ub-border);
|
|
210
|
+
border-radius: var(--_ub-radius-sm);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.ub-panel__group legend {
|
|
214
|
+
padding: 0 var(--_ub-space-1);
|
|
215
|
+
font-size: var(--_ub-font-sm);
|
|
216
|
+
font-weight: 600;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/* The widget library's name for a value, with its key for anyone matching it to the JSON. */
|
|
220
|
+
.ub-panel__field-name code {
|
|
221
|
+
font-size: var(--_ub-font-xs);
|
|
222
|
+
font-weight: 400;
|
|
223
|
+
color: var(--_ub-text-muted);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.ub-panel__field--check {
|
|
227
|
+
font-weight: 400;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.ub-panel__hint {
|
|
231
|
+
margin: 0 0 var(--_ub-space-2);
|
|
232
|
+
font-size: var(--_ub-font-sm);
|
|
233
|
+
color: var(--_ub-text-muted);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.ub-panel__error {
|
|
237
|
+
margin: var(--_ub-space-1) 0 var(--_ub-space-2);
|
|
238
|
+
font-size: var(--_ub-font-sm);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.ub-panel__findings {
|
|
242
|
+
margin: var(--_ub-space-2) 0;
|
|
243
|
+
padding-left: var(--_ub-space-4);
|
|
244
|
+
font-size: var(--_ub-font-sm);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.ub-panel__binding-tag {
|
|
248
|
+
font-size: var(--_ub-font-xs);
|
|
249
|
+
color: var(--_ub-text-muted);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.ub-panel__value-map {
|
|
253
|
+
margin: var(--_ub-space-2) 0;
|
|
254
|
+
padding: var(--_ub-space-2);
|
|
255
|
+
border: 1px solid var(--_ub-border);
|
|
256
|
+
border-radius: var(--_ub-radius-sm);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.ub-panel__value-map legend {
|
|
260
|
+
padding: 0 var(--_ub-space-1);
|
|
261
|
+
font-size: var(--_ub-font-sm);
|
|
262
|
+
font-weight: 600;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.ub-panel__map-row {
|
|
266
|
+
margin-bottom: var(--_ub-space-1);
|
|
267
|
+
font-size: var(--_ub-font-sm);
|
|
268
|
+
color: var(--_ub-text-muted);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.ub-panel__value-map > .ub-action {
|
|
272
|
+
margin: var(--_ub-space-1) var(--_ub-space-1) var(--_ub-space-2) 0;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.ub-panel__actions {
|
|
276
|
+
margin-top: var(--_ub-space-2);
|
|
277
|
+
}
|