@povio/ui 5.0.0-rc.15 → 5.0.0-rc.16
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/dist/{AppCanvasPage-BnyCHO3I.js → AppCanvasPage-C3KN-Pwb.js} +18 -134
- package/dist/{CanvasInspector-DdP3mHUY.js → CanvasInspector-TC9DOf5p.js} +143 -27
- package/dist/config/app-canvas-tanstack.js +1 -1
- package/dist/config/app-canvas.js +1 -1
- package/dist/config/ui-configurator.d.ts +15 -1
- package/dist/config/ui-configurator.js +96 -3
- package/dist/styles/configurator.css +79 -0
- package/package.json +1 -1
- package/src/configurator/README.md +11 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as createLucideIcon } from "./createLucideIcon-LcezOE4z.js";
|
|
2
|
-
import { a as UIConfigurationModal, d as Trash, f as Sun, h as
|
|
2
|
+
import { _ as Moon, a as UIConfigurationModal, d as Trash, f as Sun, g as Pencil, h as Plus, i as useCanvasInspector, m as ScanLine, n as CanvasInspectorPanel, p as Settings2, r as CanvasLayerHighlight, s as useRepositoryStorage, t as CanvasInspectionOverlay, u as useUIConfiguration, v as Frame } from "./CanvasInspector-TC9DOf5p.js";
|
|
3
3
|
import { t as ChevronDown } from "./chevron-down-B4Pr8bD3.js";
|
|
4
4
|
import { t as ChevronRight } from "./chevron-right-3nKJR5Bb.js";
|
|
5
5
|
import { i as Search } from "./selectDesktop.cva-CHAMxhfO.js";
|
|
@@ -20,7 +20,7 @@ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
|
20
20
|
* This source code is licensed under the ISC license.
|
|
21
21
|
* See the LICENSE file in the root directory of this source tree.
|
|
22
22
|
*/
|
|
23
|
-
const __iconData$
|
|
23
|
+
const __iconData$5 = {
|
|
24
24
|
name: "download",
|
|
25
25
|
size: 24,
|
|
26
26
|
node: [
|
|
@@ -38,52 +38,8 @@ const __iconData$8 = {
|
|
|
38
38
|
}]
|
|
39
39
|
]
|
|
40
40
|
};
|
|
41
|
-
__iconData$
|
|
42
|
-
const Download = createLucideIcon(__iconData$
|
|
43
|
-
//#endregion
|
|
44
|
-
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/frame.mjs
|
|
45
|
-
/**
|
|
46
|
-
* @license lucide-react v1.43.0 - ISC
|
|
47
|
-
*
|
|
48
|
-
* This source code is licensed under the ISC license.
|
|
49
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
50
|
-
*/
|
|
51
|
-
const __iconData$7 = {
|
|
52
|
-
name: "frame",
|
|
53
|
-
size: 24,
|
|
54
|
-
node: [
|
|
55
|
-
["line", {
|
|
56
|
-
x1: "22",
|
|
57
|
-
x2: "2",
|
|
58
|
-
y1: "6",
|
|
59
|
-
y2: "6",
|
|
60
|
-
key: "15w7dq"
|
|
61
|
-
}],
|
|
62
|
-
["line", {
|
|
63
|
-
x1: "22",
|
|
64
|
-
x2: "2",
|
|
65
|
-
y1: "18",
|
|
66
|
-
y2: "18",
|
|
67
|
-
key: "1ip48p"
|
|
68
|
-
}],
|
|
69
|
-
["line", {
|
|
70
|
-
x1: "6",
|
|
71
|
-
x2: "6",
|
|
72
|
-
y1: "2",
|
|
73
|
-
y2: "22",
|
|
74
|
-
key: "a2lnyx"
|
|
75
|
-
}],
|
|
76
|
-
["line", {
|
|
77
|
-
x1: "18",
|
|
78
|
-
x2: "18",
|
|
79
|
-
y1: "2",
|
|
80
|
-
y2: "22",
|
|
81
|
-
key: "8vb6jd"
|
|
82
|
-
}]
|
|
83
|
-
]
|
|
84
|
-
};
|
|
85
|
-
__iconData$7.node;
|
|
86
|
-
const Frame = createLucideIcon(__iconData$7);
|
|
41
|
+
__iconData$5.node;
|
|
42
|
+
const Download = createLucideIcon(__iconData$5);
|
|
87
43
|
//#endregion
|
|
88
44
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/hand.mjs
|
|
89
45
|
/**
|
|
@@ -92,7 +48,7 @@ const Frame = createLucideIcon(__iconData$7);
|
|
|
92
48
|
* This source code is licensed under the ISC license.
|
|
93
49
|
* See the LICENSE file in the root directory of this source tree.
|
|
94
50
|
*/
|
|
95
|
-
const __iconData$
|
|
51
|
+
const __iconData$4 = {
|
|
96
52
|
name: "hand",
|
|
97
53
|
size: 24,
|
|
98
54
|
node: [
|
|
@@ -114,8 +70,8 @@ const __iconData$6 = {
|
|
|
114
70
|
}]
|
|
115
71
|
]
|
|
116
72
|
};
|
|
117
|
-
__iconData$
|
|
118
|
-
const Hand = createLucideIcon(__iconData$
|
|
73
|
+
__iconData$4.node;
|
|
74
|
+
const Hand = createLucideIcon(__iconData$4);
|
|
119
75
|
//#endregion
|
|
120
76
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/monitor.mjs
|
|
121
77
|
/**
|
|
@@ -124,7 +80,7 @@ const Hand = createLucideIcon(__iconData$6);
|
|
|
124
80
|
* This source code is licensed under the ISC license.
|
|
125
81
|
* See the LICENSE file in the root directory of this source tree.
|
|
126
82
|
*/
|
|
127
|
-
const __iconData$
|
|
83
|
+
const __iconData$3 = {
|
|
128
84
|
name: "monitor",
|
|
129
85
|
size: 24,
|
|
130
86
|
node: [
|
|
@@ -152,8 +108,8 @@ const __iconData$5 = {
|
|
|
152
108
|
}]
|
|
153
109
|
]
|
|
154
110
|
};
|
|
155
|
-
__iconData$
|
|
156
|
-
const Monitor = createLucideIcon(__iconData$
|
|
111
|
+
__iconData$3.node;
|
|
112
|
+
const Monitor = createLucideIcon(__iconData$3);
|
|
157
113
|
//#endregion
|
|
158
114
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/mouse-pointer-2.mjs
|
|
159
115
|
/**
|
|
@@ -162,7 +118,7 @@ const Monitor = createLucideIcon(__iconData$5);
|
|
|
162
118
|
* This source code is licensed under the ISC license.
|
|
163
119
|
* See the LICENSE file in the root directory of this source tree.
|
|
164
120
|
*/
|
|
165
|
-
const __iconData$
|
|
121
|
+
const __iconData$2 = {
|
|
166
122
|
name: "mouse-pointer-2",
|
|
167
123
|
size: 24,
|
|
168
124
|
node: [["path", {
|
|
@@ -170,8 +126,8 @@ const __iconData$4 = {
|
|
|
170
126
|
key: "edeuup"
|
|
171
127
|
}]]
|
|
172
128
|
};
|
|
173
|
-
__iconData$
|
|
174
|
-
const MousePointer2 = createLucideIcon(__iconData$
|
|
129
|
+
__iconData$2.node;
|
|
130
|
+
const MousePointer2 = createLucideIcon(__iconData$2);
|
|
175
131
|
//#endregion
|
|
176
132
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/panel-left.mjs
|
|
177
133
|
/**
|
|
@@ -180,7 +136,7 @@ const MousePointer2 = createLucideIcon(__iconData$4);
|
|
|
180
136
|
* This source code is licensed under the ISC license.
|
|
181
137
|
* See the LICENSE file in the root directory of this source tree.
|
|
182
138
|
*/
|
|
183
|
-
const __iconData$
|
|
139
|
+
const __iconData$1 = {
|
|
184
140
|
name: "panel-left",
|
|
185
141
|
size: 24,
|
|
186
142
|
node: [["rect", {
|
|
@@ -196,8 +152,8 @@ const __iconData$3 = {
|
|
|
196
152
|
}]],
|
|
197
153
|
aliases: ["sidebar"]
|
|
198
154
|
};
|
|
199
|
-
__iconData$
|
|
200
|
-
const PanelLeft = createLucideIcon(__iconData$
|
|
155
|
+
__iconData$1.node;
|
|
156
|
+
const PanelLeft = createLucideIcon(__iconData$1);
|
|
201
157
|
//#endregion
|
|
202
158
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/panels-top-left.mjs
|
|
203
159
|
/**
|
|
@@ -206,7 +162,7 @@ const PanelLeft = createLucideIcon(__iconData$3);
|
|
|
206
162
|
* This source code is licensed under the ISC license.
|
|
207
163
|
* See the LICENSE file in the root directory of this source tree.
|
|
208
164
|
*/
|
|
209
|
-
const __iconData
|
|
165
|
+
const __iconData = {
|
|
210
166
|
name: "panels-top-left",
|
|
211
167
|
size: 24,
|
|
212
168
|
node: [
|
|
@@ -229,80 +185,8 @@ const __iconData$2 = {
|
|
|
229
185
|
],
|
|
230
186
|
aliases: ["layout"]
|
|
231
187
|
};
|
|
232
|
-
__iconData$2.node;
|
|
233
|
-
const PanelsTopLeft = createLucideIcon(__iconData$2);
|
|
234
|
-
//#endregion
|
|
235
|
-
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/scan-line.mjs
|
|
236
|
-
/**
|
|
237
|
-
* @license lucide-react v1.43.0 - ISC
|
|
238
|
-
*
|
|
239
|
-
* This source code is licensed under the ISC license.
|
|
240
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
241
|
-
*/
|
|
242
|
-
const __iconData$1 = {
|
|
243
|
-
name: "scan-line",
|
|
244
|
-
size: 24,
|
|
245
|
-
node: [
|
|
246
|
-
["path", {
|
|
247
|
-
d: "M3 7V5a2 2 0 0 1 2-2h2",
|
|
248
|
-
key: "aa7l1z"
|
|
249
|
-
}],
|
|
250
|
-
["path", {
|
|
251
|
-
d: "M17 3h2a2 2 0 0 1 2 2v2",
|
|
252
|
-
key: "4qcy5o"
|
|
253
|
-
}],
|
|
254
|
-
["path", {
|
|
255
|
-
d: "M21 17v2a2 2 0 0 1-2 2h-2",
|
|
256
|
-
key: "6vwrx8"
|
|
257
|
-
}],
|
|
258
|
-
["path", {
|
|
259
|
-
d: "M7 21H5a2 2 0 0 1-2-2v-2",
|
|
260
|
-
key: "ioqczr"
|
|
261
|
-
}],
|
|
262
|
-
["path", {
|
|
263
|
-
d: "M7 12h10",
|
|
264
|
-
key: "b7w52i"
|
|
265
|
-
}]
|
|
266
|
-
]
|
|
267
|
-
};
|
|
268
|
-
__iconData$1.node;
|
|
269
|
-
const ScanLine = createLucideIcon(__iconData$1);
|
|
270
|
-
//#endregion
|
|
271
|
-
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/settings-2.mjs
|
|
272
|
-
/**
|
|
273
|
-
* @license lucide-react v1.43.0 - ISC
|
|
274
|
-
*
|
|
275
|
-
* This source code is licensed under the ISC license.
|
|
276
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
277
|
-
*/
|
|
278
|
-
const __iconData = {
|
|
279
|
-
name: "settings-2",
|
|
280
|
-
size: 24,
|
|
281
|
-
node: [
|
|
282
|
-
["path", {
|
|
283
|
-
d: "M14 17H5",
|
|
284
|
-
key: "gfn3mx"
|
|
285
|
-
}],
|
|
286
|
-
["path", {
|
|
287
|
-
d: "M19 7h-9",
|
|
288
|
-
key: "6i9tg"
|
|
289
|
-
}],
|
|
290
|
-
["circle", {
|
|
291
|
-
cx: "17",
|
|
292
|
-
cy: "17",
|
|
293
|
-
r: "3",
|
|
294
|
-
key: "18b49y"
|
|
295
|
-
}],
|
|
296
|
-
["circle", {
|
|
297
|
-
cx: "7",
|
|
298
|
-
cy: "7",
|
|
299
|
-
r: "3",
|
|
300
|
-
key: "dfmy0x"
|
|
301
|
-
}]
|
|
302
|
-
]
|
|
303
|
-
};
|
|
304
188
|
__iconData.node;
|
|
305
|
-
const
|
|
189
|
+
const PanelsTopLeft = createLucideIcon(__iconData);
|
|
306
190
|
//#endregion
|
|
307
191
|
//#region src/app-canvas/manifest.ts
|
|
308
192
|
function createCanvasWorkspace(name, id) {
|
|
@@ -72,7 +72,7 @@ import { UNSAFE_PortalProvider } from "react-aria";
|
|
|
72
72
|
* This source code is licensed under the ISC license.
|
|
73
73
|
* See the LICENSE file in the root directory of this source tree.
|
|
74
74
|
*/
|
|
75
|
-
const __iconData$
|
|
75
|
+
const __iconData$13 = {
|
|
76
76
|
name: "arrow-down-to-line",
|
|
77
77
|
size: 24,
|
|
78
78
|
node: [
|
|
@@ -90,8 +90,8 @@ const __iconData$10 = {
|
|
|
90
90
|
}]
|
|
91
91
|
]
|
|
92
92
|
};
|
|
93
|
-
__iconData$
|
|
94
|
-
const ArrowDownToLine = createLucideIcon(__iconData$
|
|
93
|
+
__iconData$13.node;
|
|
94
|
+
const ArrowDownToLine = createLucideIcon(__iconData$13);
|
|
95
95
|
//#endregion
|
|
96
96
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/chevrons-up-down.mjs
|
|
97
97
|
/**
|
|
@@ -100,7 +100,7 @@ const ArrowDownToLine = createLucideIcon(__iconData$10);
|
|
|
100
100
|
* This source code is licensed under the ISC license.
|
|
101
101
|
* See the LICENSE file in the root directory of this source tree.
|
|
102
102
|
*/
|
|
103
|
-
const __iconData$
|
|
103
|
+
const __iconData$12 = {
|
|
104
104
|
name: "chevrons-up-down",
|
|
105
105
|
size: 24,
|
|
106
106
|
node: [["path", {
|
|
@@ -111,8 +111,8 @@ const __iconData$9 = {
|
|
|
111
111
|
key: "sgt6xg"
|
|
112
112
|
}]]
|
|
113
113
|
};
|
|
114
|
-
__iconData$
|
|
115
|
-
const ChevronsUpDown = createLucideIcon(__iconData$
|
|
114
|
+
__iconData$12.node;
|
|
115
|
+
const ChevronsUpDown = createLucideIcon(__iconData$12);
|
|
116
116
|
//#endregion
|
|
117
117
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/external-link.mjs
|
|
118
118
|
/**
|
|
@@ -121,7 +121,7 @@ const ChevronsUpDown = createLucideIcon(__iconData$9);
|
|
|
121
121
|
* This source code is licensed under the ISC license.
|
|
122
122
|
* See the LICENSE file in the root directory of this source tree.
|
|
123
123
|
*/
|
|
124
|
-
const __iconData$
|
|
124
|
+
const __iconData$11 = {
|
|
125
125
|
name: "external-link",
|
|
126
126
|
size: 24,
|
|
127
127
|
node: [
|
|
@@ -139,8 +139,52 @@ const __iconData$8 = {
|
|
|
139
139
|
}]
|
|
140
140
|
]
|
|
141
141
|
};
|
|
142
|
-
__iconData$
|
|
143
|
-
const ExternalLink = createLucideIcon(__iconData$
|
|
142
|
+
__iconData$11.node;
|
|
143
|
+
const ExternalLink = createLucideIcon(__iconData$11);
|
|
144
|
+
//#endregion
|
|
145
|
+
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/frame.mjs
|
|
146
|
+
/**
|
|
147
|
+
* @license lucide-react v1.43.0 - ISC
|
|
148
|
+
*
|
|
149
|
+
* This source code is licensed under the ISC license.
|
|
150
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
151
|
+
*/
|
|
152
|
+
const __iconData$10 = {
|
|
153
|
+
name: "frame",
|
|
154
|
+
size: 24,
|
|
155
|
+
node: [
|
|
156
|
+
["line", {
|
|
157
|
+
x1: "22",
|
|
158
|
+
x2: "2",
|
|
159
|
+
y1: "6",
|
|
160
|
+
y2: "6",
|
|
161
|
+
key: "15w7dq"
|
|
162
|
+
}],
|
|
163
|
+
["line", {
|
|
164
|
+
x1: "22",
|
|
165
|
+
x2: "2",
|
|
166
|
+
y1: "18",
|
|
167
|
+
y2: "18",
|
|
168
|
+
key: "1ip48p"
|
|
169
|
+
}],
|
|
170
|
+
["line", {
|
|
171
|
+
x1: "6",
|
|
172
|
+
x2: "6",
|
|
173
|
+
y1: "2",
|
|
174
|
+
y2: "22",
|
|
175
|
+
key: "a2lnyx"
|
|
176
|
+
}],
|
|
177
|
+
["line", {
|
|
178
|
+
x1: "18",
|
|
179
|
+
x2: "18",
|
|
180
|
+
y1: "2",
|
|
181
|
+
y2: "22",
|
|
182
|
+
key: "8vb6jd"
|
|
183
|
+
}]
|
|
184
|
+
]
|
|
185
|
+
};
|
|
186
|
+
__iconData$10.node;
|
|
187
|
+
const Frame = createLucideIcon(__iconData$10);
|
|
144
188
|
//#endregion
|
|
145
189
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/moon.mjs
|
|
146
190
|
/**
|
|
@@ -149,7 +193,7 @@ const ExternalLink = createLucideIcon(__iconData$8);
|
|
|
149
193
|
* This source code is licensed under the ISC license.
|
|
150
194
|
* See the LICENSE file in the root directory of this source tree.
|
|
151
195
|
*/
|
|
152
|
-
const __iconData$
|
|
196
|
+
const __iconData$9 = {
|
|
153
197
|
name: "moon",
|
|
154
198
|
size: 24,
|
|
155
199
|
node: [["path", {
|
|
@@ -157,8 +201,8 @@ const __iconData$7 = {
|
|
|
157
201
|
key: "kfwtm"
|
|
158
202
|
}]]
|
|
159
203
|
};
|
|
160
|
-
__iconData$
|
|
161
|
-
const Moon = createLucideIcon(__iconData$
|
|
204
|
+
__iconData$9.node;
|
|
205
|
+
const Moon = createLucideIcon(__iconData$9);
|
|
162
206
|
//#endregion
|
|
163
207
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/panel-top.mjs
|
|
164
208
|
/**
|
|
@@ -167,7 +211,7 @@ const Moon = createLucideIcon(__iconData$7);
|
|
|
167
211
|
* This source code is licensed under the ISC license.
|
|
168
212
|
* See the LICENSE file in the root directory of this source tree.
|
|
169
213
|
*/
|
|
170
|
-
const __iconData$
|
|
214
|
+
const __iconData$8 = {
|
|
171
215
|
name: "panel-top",
|
|
172
216
|
size: 24,
|
|
173
217
|
node: [["rect", {
|
|
@@ -182,8 +226,8 @@ const __iconData$6 = {
|
|
|
182
226
|
key: "1pudct"
|
|
183
227
|
}]]
|
|
184
228
|
};
|
|
185
|
-
__iconData$
|
|
186
|
-
const PanelTop = createLucideIcon(__iconData$
|
|
229
|
+
__iconData$8.node;
|
|
230
|
+
const PanelTop = createLucideIcon(__iconData$8);
|
|
187
231
|
//#endregion
|
|
188
232
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/pencil.mjs
|
|
189
233
|
/**
|
|
@@ -192,7 +236,7 @@ const PanelTop = createLucideIcon(__iconData$6);
|
|
|
192
236
|
* This source code is licensed under the ISC license.
|
|
193
237
|
* See the LICENSE file in the root directory of this source tree.
|
|
194
238
|
*/
|
|
195
|
-
const __iconData$
|
|
239
|
+
const __iconData$7 = {
|
|
196
240
|
name: "pencil",
|
|
197
241
|
size: 24,
|
|
198
242
|
node: [["path", {
|
|
@@ -203,8 +247,8 @@ const __iconData$5 = {
|
|
|
203
247
|
key: "1mk7zo"
|
|
204
248
|
}]]
|
|
205
249
|
};
|
|
206
|
-
__iconData$
|
|
207
|
-
const Pencil = createLucideIcon(__iconData$
|
|
250
|
+
__iconData$7.node;
|
|
251
|
+
const Pencil = createLucideIcon(__iconData$7);
|
|
208
252
|
//#endregion
|
|
209
253
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/pin.mjs
|
|
210
254
|
/**
|
|
@@ -213,7 +257,7 @@ const Pencil = createLucideIcon(__iconData$5);
|
|
|
213
257
|
* This source code is licensed under the ISC license.
|
|
214
258
|
* See the LICENSE file in the root directory of this source tree.
|
|
215
259
|
*/
|
|
216
|
-
const __iconData$
|
|
260
|
+
const __iconData$6 = {
|
|
217
261
|
name: "pin",
|
|
218
262
|
size: 24,
|
|
219
263
|
node: [["path", {
|
|
@@ -224,8 +268,8 @@ const __iconData$4 = {
|
|
|
224
268
|
key: "1nkz8b"
|
|
225
269
|
}]]
|
|
226
270
|
};
|
|
227
|
-
__iconData$
|
|
228
|
-
const Pin = createLucideIcon(__iconData$
|
|
271
|
+
__iconData$6.node;
|
|
272
|
+
const Pin = createLucideIcon(__iconData$6);
|
|
229
273
|
//#endregion
|
|
230
274
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/plus.mjs
|
|
231
275
|
/**
|
|
@@ -234,7 +278,7 @@ const Pin = createLucideIcon(__iconData$4);
|
|
|
234
278
|
* This source code is licensed under the ISC license.
|
|
235
279
|
* See the LICENSE file in the root directory of this source tree.
|
|
236
280
|
*/
|
|
237
|
-
const __iconData$
|
|
281
|
+
const __iconData$5 = {
|
|
238
282
|
name: "plus",
|
|
239
283
|
size: 24,
|
|
240
284
|
node: [["path", {
|
|
@@ -245,8 +289,8 @@ const __iconData$3 = {
|
|
|
245
289
|
key: "s699le"
|
|
246
290
|
}]]
|
|
247
291
|
};
|
|
248
|
-
__iconData$
|
|
249
|
-
const Plus = createLucideIcon(__iconData$
|
|
292
|
+
__iconData$5.node;
|
|
293
|
+
const Plus = createLucideIcon(__iconData$5);
|
|
250
294
|
//#endregion
|
|
251
295
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/rotate-ccw.mjs
|
|
252
296
|
/**
|
|
@@ -255,7 +299,7 @@ const Plus = createLucideIcon(__iconData$3);
|
|
|
255
299
|
* This source code is licensed under the ISC license.
|
|
256
300
|
* See the LICENSE file in the root directory of this source tree.
|
|
257
301
|
*/
|
|
258
|
-
const __iconData$
|
|
302
|
+
const __iconData$4 = {
|
|
259
303
|
name: "rotate-ccw",
|
|
260
304
|
size: 24,
|
|
261
305
|
node: [["path", {
|
|
@@ -266,8 +310,80 @@ const __iconData$2 = {
|
|
|
266
310
|
key: "1xhq8a"
|
|
267
311
|
}]]
|
|
268
312
|
};
|
|
313
|
+
__iconData$4.node;
|
|
314
|
+
const RotateCcw = createLucideIcon(__iconData$4);
|
|
315
|
+
//#endregion
|
|
316
|
+
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/scan-line.mjs
|
|
317
|
+
/**
|
|
318
|
+
* @license lucide-react v1.43.0 - ISC
|
|
319
|
+
*
|
|
320
|
+
* This source code is licensed under the ISC license.
|
|
321
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
322
|
+
*/
|
|
323
|
+
const __iconData$3 = {
|
|
324
|
+
name: "scan-line",
|
|
325
|
+
size: 24,
|
|
326
|
+
node: [
|
|
327
|
+
["path", {
|
|
328
|
+
d: "M3 7V5a2 2 0 0 1 2-2h2",
|
|
329
|
+
key: "aa7l1z"
|
|
330
|
+
}],
|
|
331
|
+
["path", {
|
|
332
|
+
d: "M17 3h2a2 2 0 0 1 2 2v2",
|
|
333
|
+
key: "4qcy5o"
|
|
334
|
+
}],
|
|
335
|
+
["path", {
|
|
336
|
+
d: "M21 17v2a2 2 0 0 1-2 2h-2",
|
|
337
|
+
key: "6vwrx8"
|
|
338
|
+
}],
|
|
339
|
+
["path", {
|
|
340
|
+
d: "M7 21H5a2 2 0 0 1-2-2v-2",
|
|
341
|
+
key: "ioqczr"
|
|
342
|
+
}],
|
|
343
|
+
["path", {
|
|
344
|
+
d: "M7 12h10",
|
|
345
|
+
key: "b7w52i"
|
|
346
|
+
}]
|
|
347
|
+
]
|
|
348
|
+
};
|
|
349
|
+
__iconData$3.node;
|
|
350
|
+
const ScanLine = createLucideIcon(__iconData$3);
|
|
351
|
+
//#endregion
|
|
352
|
+
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/settings-2.mjs
|
|
353
|
+
/**
|
|
354
|
+
* @license lucide-react v1.43.0 - ISC
|
|
355
|
+
*
|
|
356
|
+
* This source code is licensed under the ISC license.
|
|
357
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
358
|
+
*/
|
|
359
|
+
const __iconData$2 = {
|
|
360
|
+
name: "settings-2",
|
|
361
|
+
size: 24,
|
|
362
|
+
node: [
|
|
363
|
+
["path", {
|
|
364
|
+
d: "M14 17H5",
|
|
365
|
+
key: "gfn3mx"
|
|
366
|
+
}],
|
|
367
|
+
["path", {
|
|
368
|
+
d: "M19 7h-9",
|
|
369
|
+
key: "6i9tg"
|
|
370
|
+
}],
|
|
371
|
+
["circle", {
|
|
372
|
+
cx: "17",
|
|
373
|
+
cy: "17",
|
|
374
|
+
r: "3",
|
|
375
|
+
key: "18b49y"
|
|
376
|
+
}],
|
|
377
|
+
["circle", {
|
|
378
|
+
cx: "7",
|
|
379
|
+
cy: "7",
|
|
380
|
+
r: "3",
|
|
381
|
+
key: "dfmy0x"
|
|
382
|
+
}]
|
|
383
|
+
]
|
|
384
|
+
};
|
|
269
385
|
__iconData$2.node;
|
|
270
|
-
const
|
|
386
|
+
const Settings2 = createLucideIcon(__iconData$2);
|
|
271
387
|
//#endregion
|
|
272
388
|
//#region ../../node_modules/.bun/lucide-react@1.43.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/sun.mjs
|
|
273
389
|
/**
|
|
@@ -8946,4 +9062,4 @@ function CanvasLayerHighlight(t0) {
|
|
|
8946
9062
|
return t3;
|
|
8947
9063
|
}
|
|
8948
9064
|
//#endregion
|
|
8949
|
-
export { UIConfigurationModal as a, resolveUIConfiguration as c, Trash as d, Sun as f,
|
|
9065
|
+
export { Moon as _, UIConfigurationModal as a, resolveUIConfiguration as c, Trash as d, Sun as f, Pencil as g, Plus as h, useCanvasInspector as i, UIConfigurationProvider as l, ScanLine as m, CanvasInspectorPanel as n, ColorModeSwitch as o, Settings2 as p, CanvasLayerHighlight as r, useRepositoryStorage as s, CanvasInspectionOverlay as t, useUIConfiguration as u, Frame as v };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as AppCanvasPage, r as AppCanvasFrameBridge, t as APP_CANVAS_PATH } from "../AppCanvasPage-
|
|
1
|
+
import { n as AppCanvasPage, r as AppCanvasFrameBridge, t as APP_CANVAS_PATH } from "../AppCanvasPage-C3KN-Pwb.js";
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
4
|
import { createRoute, notFound, useRouter, useRouterState } from "@tanstack/react-router";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as defaultCanvasBreakpoints, c as layoutCanvasPages, i as AppCanvas, n as AppCanvasPage, o as isAppCanvasFrame, r as AppCanvasFrameBridge, s as discoverCanvasPages, t as APP_CANVAS_PATH } from "../AppCanvasPage-
|
|
1
|
+
import { a as defaultCanvasBreakpoints, c as layoutCanvasPages, i as AppCanvas, n as AppCanvasPage, o as isAppCanvasFrame, r as AppCanvasFrameBridge, s as discoverCanvasPages, t as APP_CANVAS_PATH } from "../AppCanvasPage-C3KN-Pwb.js";
|
|
2
2
|
export { APP_CANVAS_PATH, AppCanvas, AppCanvasFrameBridge, AppCanvasPage, defaultCanvasBreakpoints, discoverCanvasPages, isAppCanvasFrame, layoutCanvasPages };
|
|
@@ -24,6 +24,20 @@ interface PageInspectorProps {
|
|
|
24
24
|
*/
|
|
25
25
|
declare function PageInspector({ open, onClose }: PageInspectorProps): import("react").ReactPortal | null;
|
|
26
26
|
//#endregion
|
|
27
|
+
//#region src/configurator/UIDevToolbar.d.ts
|
|
28
|
+
interface UIDevToolbarProps {
|
|
29
|
+
/** Opens the App Canvas; the toolbar shows its button only when provided (for example only in development). */
|
|
30
|
+
onOpenCanvas?: () => void;
|
|
31
|
+
/** Where the toolbar remembers being hidden. */
|
|
32
|
+
storageKey?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A floating developer dock for a running app: the compact configurator, the page inspector and, optionally, the App
|
|
36
|
+
* Canvas. It tucks into a tab on the window's left edge. Mount it once inside `UIConfigurationProvider`; it renders the
|
|
37
|
+
* configurator itself, so the app needs no separate `UIConfigurationModal`.
|
|
38
|
+
*/
|
|
39
|
+
declare function UIDevToolbar({ onOpenCanvas, storageKey }: UIDevToolbarProps): import("react").JSX.Element;
|
|
40
|
+
//#endregion
|
|
27
41
|
//#region src/configurator/component-configuration.d.ts
|
|
28
42
|
/**
|
|
29
43
|
* The app's applied component settings: pass the JSON written by the configurator's Apply theme
|
|
@@ -43,4 +57,4 @@ interface ColorModeSwitchProps {
|
|
|
43
57
|
/** Controlled color-mode switch, shared by configurators and application settings. */
|
|
44
58
|
declare function ColorModeSwitch({ value, onChange, label }: ColorModeSwitchProps): import("react").JSX.Element;
|
|
45
59
|
//#endregion
|
|
46
|
-
export { ColorModeSwitch, type ColorModeSwitchProps, type CvaDefinition, type CvaEdits, PageInspector, type PageInspectorProps, type ThemeEdits, type Tokens, type UIConfiguration, UIConfigurationModal, type UIConfigurationModalProps, UIConfigurationProvider, type UIConfigurationProviderProps, exportCss, parseThemeCss, resolveUIConfiguration, useUIConfiguration };
|
|
60
|
+
export { ColorModeSwitch, type ColorModeSwitchProps, type CvaDefinition, type CvaEdits, PageInspector, type PageInspectorProps, type ThemeEdits, type Tokens, type UIConfiguration, UIConfigurationModal, type UIConfigurationModalProps, UIConfigurationProvider, type UIConfigurationProviderProps, UIDevToolbar, type UIDevToolbarProps, exportCss, parseThemeCss, resolveUIConfiguration, useUIConfiguration };
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { a as UIConfigurationModal, c as resolveUIConfiguration, i as useCanvasInspector, l as UIConfigurationProvider, n as CanvasInspectorPanel, o as ColorModeSwitch, t as CanvasInspectionOverlay, u as useUIConfiguration } from "../CanvasInspector-
|
|
1
|
+
import { a as UIConfigurationModal, c as resolveUIConfiguration, i as useCanvasInspector, l as UIConfigurationProvider, m as ScanLine, n as CanvasInspectorPanel, o as ColorModeSwitch, p as Settings2, t as CanvasInspectionOverlay, u as useUIConfiguration, v as Frame } from "../CanvasInspector-TC9DOf5p.js";
|
|
2
|
+
import { t as ChevronLeft } from "../chevron-left-Dgo_b9wJ.js";
|
|
3
|
+
import { t as ChevronRight } from "../chevron-right-3nKJR5Bb.js";
|
|
2
4
|
import { c as isEditableToken, i as exportCss, v as parseThemeCss } from "../theme-model-DtTsIxou.js";
|
|
3
|
-
import { useEffect } from "react";
|
|
5
|
+
import { useEffect, useState } from "react";
|
|
4
6
|
import { c } from "react/compiler-runtime";
|
|
5
7
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
8
|
import { createPortal } from "react-dom";
|
|
@@ -118,4 +120,95 @@ function _temp(event_0) {
|
|
|
118
120
|
event_0.stopPropagation();
|
|
119
121
|
}
|
|
120
122
|
//#endregion
|
|
121
|
-
|
|
123
|
+
//#region src/configurator/UIDevToolbar.tsx
|
|
124
|
+
const readHidden = (key) => {
|
|
125
|
+
try {
|
|
126
|
+
return localStorage.getItem(key) === "1";
|
|
127
|
+
} catch {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* A floating developer dock for a running app: the compact configurator, the page inspector and, optionally, the App
|
|
133
|
+
* Canvas. It tucks into a tab on the window's left edge. Mount it once inside `UIConfigurationProvider`; it renders the
|
|
134
|
+
* configurator itself, so the app needs no separate `UIConfigurationModal`.
|
|
135
|
+
*/
|
|
136
|
+
function UIDevToolbar({ onOpenCanvas, storageKey = "povio-dev-toolbar-hidden" }) {
|
|
137
|
+
const { openFloating, isOpen } = useUIConfiguration();
|
|
138
|
+
const [hidden, setHidden] = useState(() => readHidden(storageKey));
|
|
139
|
+
const [inspecting, setInspecting] = useState(false);
|
|
140
|
+
const setVisibility = (next) => {
|
|
141
|
+
setHidden(next);
|
|
142
|
+
try {
|
|
143
|
+
localStorage.setItem(storageKey, next ? "1" : "0");
|
|
144
|
+
} catch {}
|
|
145
|
+
};
|
|
146
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
147
|
+
hidden ? /* @__PURE__ */ jsx("button", {
|
|
148
|
+
type: "button",
|
|
149
|
+
className: "studio-dev-toolbar-tab",
|
|
150
|
+
"data-povio-inspector-ignore": "",
|
|
151
|
+
"aria-label": "Show developer toolbar",
|
|
152
|
+
title: "Show developer toolbar",
|
|
153
|
+
onClick: () => setVisibility(false),
|
|
154
|
+
children: /* @__PURE__ */ jsx(ChevronRight, { size: 14 })
|
|
155
|
+
}) : /* @__PURE__ */ jsxs("div", {
|
|
156
|
+
className: "studio-dev-toolbar",
|
|
157
|
+
"data-povio-inspector-ignore": "",
|
|
158
|
+
role: "toolbar",
|
|
159
|
+
"aria-label": "Developer toolbar",
|
|
160
|
+
children: [
|
|
161
|
+
/* @__PURE__ */ jsxs("button", {
|
|
162
|
+
type: "button",
|
|
163
|
+
className: "studio-dev-toolbar-labelled",
|
|
164
|
+
"aria-label": "Configure Povio UI",
|
|
165
|
+
"aria-pressed": isOpen,
|
|
166
|
+
onClick: openFloating,
|
|
167
|
+
children: [/* @__PURE__ */ jsx(Settings2, { size: 14 }), /* @__PURE__ */ jsx("span", {
|
|
168
|
+
"aria-hidden": "true",
|
|
169
|
+
children: "Configure UI"
|
|
170
|
+
})]
|
|
171
|
+
}),
|
|
172
|
+
/* @__PURE__ */ jsxs("button", {
|
|
173
|
+
type: "button",
|
|
174
|
+
className: "studio-dev-toolbar-labelled",
|
|
175
|
+
"aria-label": "Inspect page",
|
|
176
|
+
"aria-pressed": inspecting,
|
|
177
|
+
onClick: () => setInspecting((value) => !value),
|
|
178
|
+
children: [/* @__PURE__ */ jsx(ScanLine, { size: 14 }), /* @__PURE__ */ jsx("span", {
|
|
179
|
+
"aria-hidden": "true",
|
|
180
|
+
children: "Inspect"
|
|
181
|
+
})]
|
|
182
|
+
}),
|
|
183
|
+
onOpenCanvas && /* @__PURE__ */ jsxs("button", {
|
|
184
|
+
type: "button",
|
|
185
|
+
className: "studio-dev-toolbar-labelled",
|
|
186
|
+
"aria-label": "Open App canvas",
|
|
187
|
+
onClick: onOpenCanvas,
|
|
188
|
+
children: [/* @__PURE__ */ jsx(Frame, { size: 14 }), /* @__PURE__ */ jsx("span", {
|
|
189
|
+
"aria-hidden": "true",
|
|
190
|
+
children: "App canvas"
|
|
191
|
+
})]
|
|
192
|
+
}),
|
|
193
|
+
/* @__PURE__ */ jsx("span", {
|
|
194
|
+
className: "studio-dev-toolbar-divider",
|
|
195
|
+
"aria-hidden": "true"
|
|
196
|
+
}),
|
|
197
|
+
/* @__PURE__ */ jsx("button", {
|
|
198
|
+
type: "button",
|
|
199
|
+
"aria-label": "Hide developer toolbar",
|
|
200
|
+
title: "Hide toolbar",
|
|
201
|
+
onClick: () => setVisibility(true),
|
|
202
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { size: 14 })
|
|
203
|
+
})
|
|
204
|
+
]
|
|
205
|
+
}),
|
|
206
|
+
/* @__PURE__ */ jsx(UIConfigurationModal, { editorOnly: true }),
|
|
207
|
+
/* @__PURE__ */ jsx(PageInspector, {
|
|
208
|
+
open: inspecting,
|
|
209
|
+
onClose: () => setInspecting(false)
|
|
210
|
+
})
|
|
211
|
+
] });
|
|
212
|
+
}
|
|
213
|
+
//#endregion
|
|
214
|
+
export { ColorModeSwitch, PageInspector, UIConfigurationModal, UIConfigurationProvider, UIDevToolbar, exportCss, parseThemeCss, resolveUIConfiguration, useUIConfiguration };
|
|
@@ -4202,3 +4202,82 @@ html.studio-page-inspecting body {
|
|
|
4202
4202
|
.studio-subtabs-bar .studio-theme-toggle + .studio-toggle-all {
|
|
4203
4203
|
margin-left: 4px;
|
|
4204
4204
|
}
|
|
4205
|
+
|
|
4206
|
+
/* UIDevToolbar: matches the App Canvas docks, and stays independent of the app theme being configured. */
|
|
4207
|
+
.studio-dev-toolbar,
|
|
4208
|
+
.studio-dev-toolbar-tab {
|
|
4209
|
+
position: fixed;
|
|
4210
|
+
bottom: 12px;
|
|
4211
|
+
z-index: 50;
|
|
4212
|
+
box-sizing: border-box;
|
|
4213
|
+
background: #fff;
|
|
4214
|
+
border: 1px solid #e3e1e8;
|
|
4215
|
+
box-shadow: 0 4px 16px #24202d12;
|
|
4216
|
+
color: #45454d;
|
|
4217
|
+
}
|
|
4218
|
+
.studio-dev-toolbar {
|
|
4219
|
+
left: 12px;
|
|
4220
|
+
display: flex;
|
|
4221
|
+
align-items: center;
|
|
4222
|
+
gap: 2px;
|
|
4223
|
+
padding: 4px;
|
|
4224
|
+
border-radius: 8px;
|
|
4225
|
+
}
|
|
4226
|
+
.studio-dev-toolbar button {
|
|
4227
|
+
display: grid;
|
|
4228
|
+
place-items: center;
|
|
4229
|
+
width: 28px;
|
|
4230
|
+
height: 28px;
|
|
4231
|
+
padding: 0;
|
|
4232
|
+
border: 0;
|
|
4233
|
+
border-radius: 5px;
|
|
4234
|
+
background: transparent;
|
|
4235
|
+
color: inherit;
|
|
4236
|
+
cursor: pointer;
|
|
4237
|
+
}
|
|
4238
|
+
.studio-dev-toolbar button:hover {
|
|
4239
|
+
background: #f1f1f4;
|
|
4240
|
+
}
|
|
4241
|
+
/* Labelled buttons read like the canvas tool dock: icon, then a 10px label. */
|
|
4242
|
+
.studio-dev-toolbar button.studio-dev-toolbar-labelled {
|
|
4243
|
+
display: inline-flex;
|
|
4244
|
+
align-items: center;
|
|
4245
|
+
gap: 4px;
|
|
4246
|
+
width: auto;
|
|
4247
|
+
padding: 0 8px;
|
|
4248
|
+
font:
|
|
4249
|
+
500 10px/1 Inter,
|
|
4250
|
+
system-ui,
|
|
4251
|
+
sans-serif;
|
|
4252
|
+
white-space: nowrap;
|
|
4253
|
+
}
|
|
4254
|
+
.studio-dev-toolbar button[aria-pressed="true"] {
|
|
4255
|
+
background: #eee8ff;
|
|
4256
|
+
color: #6540c2;
|
|
4257
|
+
}
|
|
4258
|
+
.studio-dev-toolbar button:focus-visible,
|
|
4259
|
+
.studio-dev-toolbar-tab:focus-visible {
|
|
4260
|
+
outline: 2px solid #7655d7;
|
|
4261
|
+
outline-offset: 1px;
|
|
4262
|
+
}
|
|
4263
|
+
.studio-dev-toolbar-divider {
|
|
4264
|
+
width: 1px;
|
|
4265
|
+
height: 16px;
|
|
4266
|
+
margin: 0 2px;
|
|
4267
|
+
background: #e8e8eb;
|
|
4268
|
+
}
|
|
4269
|
+
/* Hidden: a small tab against the left edge that brings the dock back. */
|
|
4270
|
+
.studio-dev-toolbar-tab {
|
|
4271
|
+
left: 0;
|
|
4272
|
+
display: grid;
|
|
4273
|
+
place-items: center;
|
|
4274
|
+
width: 20px;
|
|
4275
|
+
height: 36px;
|
|
4276
|
+
padding: 0;
|
|
4277
|
+
border-left: 0;
|
|
4278
|
+
border-radius: 0 6px 6px 0;
|
|
4279
|
+
cursor: pointer;
|
|
4280
|
+
}
|
|
4281
|
+
.studio-dev-toolbar-tab:hover {
|
|
4282
|
+
background: #f1f1f4;
|
|
4283
|
+
}
|
package/package.json
CHANGED
|
@@ -38,6 +38,17 @@ For persistence, load a saved `UIConfiguration` and pass it as `initialValue` be
|
|
|
38
38
|
|
|
39
39
|
The exporter provides Tailwind CSS overrides and a separate `UIConfig.Provider` configuration. Import exported CSS **after** the app's existing theme. Light and dark colors retain separate selectors. The CSS export uses `@theme` for build-time Tailwind integration; the live provider emits ordinary CSS selectors.
|
|
40
40
|
|
|
41
|
+
## Developer toolbar
|
|
42
|
+
|
|
43
|
+
`UIDevToolbar` is a ready-made floating dock for a running app: **Configure UI** opens the compact, editor-only configurator; **Inspect** turns on the page inspector, a sidebar beside the page whose token links open the configurator on that token; and an optional **App canvas** button calls `onOpenCanvas`. The toolbar tucks into a tab on the window's left edge and remembers that across reloads. It renders the configurator and the inspector itself, so mount it once inside `UIConfigurationProvider` instead of `UIConfigurationModal`.
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
import { UIDevToolbar } from "@povio/ui/ui-configurator";
|
|
47
|
+
import "@povio/ui/ui-configurator/styles";
|
|
48
|
+
|
|
49
|
+
<UIDevToolbar onOpenCanvas={import.meta.env.DEV ? () => navigate({ to: "/_canvas" }) : undefined} />;
|
|
50
|
+
```
|
|
51
|
+
|
|
41
52
|
## Save directly to your app's theme in Vite
|
|
42
53
|
|
|
43
54
|
The configurator and its stylesheet ship with `@povio/ui` as separate, optional subpath exports. The Node plugin ships in another entry, `@povio/ui/ui-configurator/vite`; neither the configurator nor Node code is exported from the regular component barrels.
|