@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.
@@ -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 Moon, i as useCanvasInspector, m as Pencil, n as CanvasInspectorPanel, p as Plus, r as CanvasLayerHighlight, s as useRepositoryStorage, t as CanvasInspectionOverlay, u as useUIConfiguration } from "./CanvasInspector-DdP3mHUY.js";
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$8 = {
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$8.node;
42
- const Download = createLucideIcon(__iconData$8);
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$6 = {
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$6.node;
118
- const Hand = createLucideIcon(__iconData$6);
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$5 = {
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$5.node;
156
- const Monitor = createLucideIcon(__iconData$5);
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$4 = {
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$4.node;
174
- const MousePointer2 = createLucideIcon(__iconData$4);
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$3 = {
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$3.node;
200
- const PanelLeft = createLucideIcon(__iconData$3);
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$2 = {
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 Settings2 = createLucideIcon(__iconData);
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$10 = {
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$10.node;
94
- const ArrowDownToLine = createLucideIcon(__iconData$10);
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$9 = {
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$9.node;
115
- const ChevronsUpDown = createLucideIcon(__iconData$9);
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$8 = {
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$8.node;
143
- const ExternalLink = createLucideIcon(__iconData$8);
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$7 = {
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$7.node;
161
- const Moon = createLucideIcon(__iconData$7);
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$6 = {
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$6.node;
186
- const PanelTop = createLucideIcon(__iconData$6);
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$5 = {
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$5.node;
207
- const Pencil = createLucideIcon(__iconData$5);
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$4 = {
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$4.node;
228
- const Pin = createLucideIcon(__iconData$4);
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$3 = {
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$3.node;
249
- const Plus = createLucideIcon(__iconData$3);
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$2 = {
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 RotateCcw = createLucideIcon(__iconData$2);
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, Moon as h, useCanvasInspector as i, UIConfigurationProvider as l, Pencil as m, CanvasInspectorPanel as n, ColorModeSwitch as o, Plus as p, CanvasLayerHighlight as r, useRepositoryStorage as s, CanvasInspectionOverlay as t, useUIConfiguration as u };
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-BnyCHO3I.js";
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-BnyCHO3I.js";
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-DdP3mHUY.js";
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
- export { ColorModeSwitch, PageInspector, UIConfigurationModal, UIConfigurationProvider, exportCss, parseThemeCss, resolveUIConfiguration, useUIConfiguration };
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@povio/ui",
3
- "version": "5.0.0-rc.15",
3
+ "version": "5.0.0-rc.16",
4
4
  "type": "module",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -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.