@povio/ui 5.0.0-rc.10 → 5.0.0-rc.11

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,4 +1,4 @@
1
- import { n as AppCanvasPage, r as AppCanvasPageProps, t as APP_CANVAS_PATH } from "../AppCanvasPage-BIFYeEeS.js";
1
+ import { n as AppCanvasPage, r as AppCanvasPageProps, t as APP_CANVAS_PATH } from "../AppCanvasPage-BTmt8poT.js";
2
2
  import { AnyRoute } from "@tanstack/react-router";
3
3
  //#region src/app-canvas/tanstack.d.ts
4
4
  interface AppCanvasRouteOptions {
@@ -1,4 +1,4 @@
1
- import { n as AppCanvasPage, r as AppCanvasFrameBridge, t as APP_CANVAS_PATH } from "../AppCanvasPage-BEER5hHp.js";
1
+ import { n as AppCanvasPage, r as AppCanvasFrameBridge, t as APP_CANVAS_PATH } from "../AppCanvasPage-BsQrZ8q7.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,5 +1,5 @@
1
- import { a as AppCanvasProps, c as CanvasPage, d as CanvasRouter, f as discoverCanvasPages, i as AppCanvas, l as CanvasPosition, n as AppCanvasPage, o as CanvasBreakpoint, p as layoutCanvasPages, r as AppCanvasPageProps, s as defaultCanvasBreakpoints, t as APP_CANVAS_PATH, u as CanvasRouteExample } from "../AppCanvasPage-BIFYeEeS.js";
2
- import "../configuration.context-DP4p1cIe.js";
1
+ import { a as AppCanvasProps, c as CanvasPage, d as CanvasRouter, f as discoverCanvasPages, i as AppCanvas, l as CanvasPosition, n as AppCanvasPage, o as CanvasBreakpoint, p as layoutCanvasPages, r as AppCanvasPageProps, s as defaultCanvasBreakpoints, t as APP_CANVAS_PATH, u as CanvasRouteExample } from "../AppCanvasPage-BTmt8poT.js";
2
+ import "../configuration.context-qdjDwQJj.js";
3
3
  //#region src/app-canvas/AppCanvasFrameBridge.d.ts
4
4
  /** Mount once inside the application's existing UIConfigurationProvider. No separate app copy or theme fork. */
5
5
  declare function AppCanvasFrameBridge({ href }: {
@@ -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-BEER5hHp.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-BsQrZ8q7.js";
2
2
  export { APP_CANVAS_PATH, AppCanvas, AppCanvasFrameBridge, AppCanvasPage, defaultCanvasBreakpoints, discoverCanvasPages, isAppCanvasFrame, layoutCanvasPages };
@@ -1,2 +1,2 @@
1
- import { _ as parseThemeCss, i as exportCss } from "../theme-model-DtYPxNvH.js";
1
+ import { i as exportCss, v as parseThemeCss } from "../theme-model-DtTsIxou.js";
2
2
  export { exportCss, parseThemeCss };
@@ -1,4 +1,4 @@
1
- import { a as CvaDefinition, i as useUIConfiguration, n as UIConfigurationProvider, o as CvaEdits, r as UIConfigurationProviderProps, t as UIConfiguration } from "../configuration.context-DP4p1cIe.js";
1
+ import { a as CvaDefinition, i as useUIConfiguration, n as UIConfigurationProvider, o as CvaEdits, r as UIConfigurationProviderProps, t as UIConfiguration } from "../configuration.context-qdjDwQJj.js";
2
2
  import { a as parseThemeCss, i as exportCss, n as ThemeEdits, r as Tokens, t as Mode } from "../theme-model-T1zIdBg8.js";
3
3
  //#region src/configurator/UIConfigurator.d.ts
4
4
  declare function UIConfigurationModal(): import("react").JSX.Element | null;
@@ -1,3 +1,3 @@
1
- import { c as UIConfigurationProvider, l as useUIConfiguration, n as ColorModeSwitch, t as UIConfigurationModal } from "../UIConfigurator-CTlq-hrG.js";
2
- import { _ as parseThemeCss, i as exportCss } from "../theme-model-DtYPxNvH.js";
1
+ import { c as UIConfigurationProvider, l as useUIConfiguration, n as ColorModeSwitch, t as UIConfigurationModal } from "../UIConfigurator-C_2kgJtm.js";
2
+ import { i as exportCss, v as parseThemeCss } from "../theme-model-DtTsIxou.js";
3
3
  export { ColorModeSwitch, UIConfigurationModal, UIConfigurationProvider, exportCss, parseThemeCss, useUIConfiguration };
@@ -911,6 +911,18 @@ interface ConfigurationContextValue {
911
911
  cancel: () => void;
912
912
  apply: () => void;
913
913
  revision: number;
914
+ /** Opens the configurator (floating, if closed) on a token's row, e.g. from an inspector outside the modal. */
915
+ revealToken: (name: string) => void;
916
+ /** The pending reveal; the open editor focuses it and then calls `clearTokenRequest`. */
917
+ tokenRequest: {
918
+ name: string;
919
+ id: number;
920
+ } | null;
921
+ clearTokenRequest: () => void;
922
+ /** True while a host such as the App Canvas shows the components, so the configurator omits its own preview. */
923
+ componentsHosted: boolean;
924
+ /** Registers such a host; call the returned function when it unmounts. */
925
+ hostComponents: () => () => void;
914
926
  }
915
927
  interface UIConfigurationProviderProps extends PropsWithChildren {
916
928
  /** The application's base theme. Use parseThemeCss with your Tailwind theme source. */
@@ -0,0 +1,18 @@
1
+ //#region src/configurator/gallery/groups.ts
2
+ /** Gallery sections, kept apart from the demos so a host can list them without loading every component. */
3
+ const galleryGroups = [
4
+ "Buttons",
5
+ "Inputs",
6
+ "Selection",
7
+ "Files",
8
+ "Feedback",
9
+ "Text",
10
+ "Navigation",
11
+ "Overlays",
12
+ "Data"
13
+ ];
14
+ /** One App Canvas artboard per section, after the composed layouts. */
15
+ const layoutsArtboard = "Layouts";
16
+ const componentArtboards = [layoutsArtboard, ...galleryGroups];
17
+ //#endregion
18
+ export { galleryGroups as n, layoutsArtboard as r, componentArtboards as t };
@@ -10,7 +10,7 @@
10
10
  background: #ececee;
11
11
  color: #242428;
12
12
  font:
13
- 12px/1.45 Inter,
13
+ 10px/16px Inter,
14
14
  system-ui,
15
15
  sans-serif;
16
16
  isolation: isolate;
@@ -28,8 +28,8 @@
28
28
  background: #fff;
29
29
  color: #45454d;
30
30
  border: 1px solid transparent;
31
- border-radius: 6px;
32
- padding: 7px 9px;
31
+ border-radius: 5px;
32
+ padding: 4px 6px;
33
33
  }
34
34
  .povio-app-canvas button:hover {
35
35
  background: #f1f1f4;
@@ -51,8 +51,8 @@
51
51
  .povio-app-canvas input,
52
52
  .povio-app-canvas select {
53
53
  border: 1px solid var(--canvas-border);
54
- border-radius: 6px;
55
- padding: 7px;
54
+ border-radius: 5px;
55
+ padding: 4px 6px;
56
56
  min-width: 0;
57
57
  background: #f7f7f8;
58
58
  color: #333;
@@ -62,11 +62,11 @@
62
62
  align-items: center;
63
63
  gap: 6px;
64
64
  background: #fff;
65
- padding: 10px 16px;
65
+ padding: 6px 12px;
66
66
  border-bottom: 1px solid var(--canvas-border);
67
67
  flex-shrink: 0;
68
68
  z-index: 5;
69
- min-height: 64px;
69
+ min-height: 40px;
70
70
  }
71
71
  .povio-canvas-brand {
72
72
  display: flex;
@@ -77,14 +77,14 @@
77
77
  }
78
78
  .povio-canvas-brand strong {
79
79
  display: block;
80
- font-size: 13px;
81
- font-weight: 650;
80
+ font-size: 10px;
81
+ font-weight: 600;
82
82
  }
83
83
  .povio-canvas-brand small {
84
84
  display: block;
85
85
  color: #73737c;
86
86
  font-size: 10px;
87
- margin-top: 2px;
87
+ margin-top: 0;
88
88
  }
89
89
  .povio-canvas-brand small span {
90
90
  padding: 0 5px;
@@ -93,11 +93,11 @@
93
93
  .povio-canvas-logo {
94
94
  display: grid;
95
95
  place-items: center;
96
- width: 32px;
97
- height: 32px;
96
+ width: 24px;
97
+ height: 24px;
98
98
  background: #252329;
99
99
  color: #fff;
100
- border-radius: 9px;
100
+ border-radius: 6px;
101
101
  }
102
102
  .povio-canvas-breakpoint {
103
103
  display: flex;
@@ -114,13 +114,13 @@
114
114
  display: inline-flex;
115
115
  align-items: center;
116
116
  justify-content: center;
117
- gap: 7px;
118
- min-height: 34px;
117
+ gap: 4px;
118
+ min-height: 24px;
119
119
  }
120
120
  .povio-canvas-toolbar .povio-canvas-configure {
121
121
  background: var(--canvas-accent);
122
122
  color: white;
123
- padding-inline: 13px;
123
+ padding-inline: 8px;
124
124
  }
125
125
  .povio-canvas-toolbar .povio-canvas-configure:hover {
126
126
  background: #6545c4;
@@ -131,7 +131,7 @@
131
131
  gap: 6px;
132
132
  color: #77717e;
133
133
  font-size: 10px;
134
- padding-left: 10px;
134
+ padding-left: 8px;
135
135
  white-space: nowrap;
136
136
  }
137
137
  .povio-canvas-ready i,
@@ -149,8 +149,8 @@
149
149
  min-height: 0;
150
150
  }
151
151
  .povio-canvas-catalog {
152
- width: 232px;
153
- flex: 0 0 232px;
152
+ width: 240px;
153
+ flex: 0 0 240px;
154
154
  background: #fff;
155
155
  display: flex;
156
156
  flex-direction: column;
@@ -165,9 +165,9 @@
165
165
  display: flex;
166
166
  align-items: center;
167
167
  gap: 8px;
168
- padding: 17px 16px;
168
+ padding: 8px 12px;
169
169
  border-bottom: 1px solid var(--canvas-border);
170
- min-height: 52px;
170
+ min-height: 40px;
171
171
  }
172
172
  .povio-canvas-panel-heading > span {
173
173
  font-size: 10px;
@@ -179,33 +179,33 @@
179
179
  .povio-canvas-search {
180
180
  display: flex;
181
181
  align-items: center;
182
- gap: 7px;
183
- margin: 14px 12px;
182
+ gap: 6px;
183
+ margin: 0 8px 8px;
184
184
  padding: 0 8px;
185
185
  background: #f6f6f8;
186
186
  color: #88838e;
187
- border-radius: 6px;
187
+ border-radius: 5px;
188
188
  }
189
189
  .povio-canvas-search input {
190
190
  width: 100%;
191
191
  background: transparent;
192
192
  border: 0;
193
- padding: 8px 0;
194
- font-size: 11px;
193
+ padding: 4px 0;
194
+ font-size: 10px;
195
195
  }
196
196
  .povio-canvas-page-list {
197
197
  flex: 1;
198
198
  overflow-y: auto;
199
- padding: 0 8px 12px;
199
+ padding: 0 8px 8px;
200
200
  }
201
201
  .povio-canvas-page-list > button {
202
202
  display: flex;
203
203
  align-items: flex-start;
204
- gap: 9px;
204
+ gap: 6px;
205
205
  width: 100%;
206
206
  text-align: left;
207
- margin-bottom: 3px;
208
- padding: 10px 8px;
207
+ margin-bottom: 1px;
208
+ padding: 4px 8px;
209
209
  }
210
210
  .povio-canvas-page-list > button > svg {
211
211
  flex-shrink: 0;
@@ -216,10 +216,10 @@
216
216
  display: flex;
217
217
  flex-direction: column;
218
218
  min-width: 0;
219
- gap: 2px;
219
+ gap: 0;
220
220
  }
221
221
  .povio-canvas-page-label strong {
222
- font-weight: 550;
222
+ font-weight: 500;
223
223
  overflow: hidden;
224
224
  text-overflow: ellipsis;
225
225
  white-space: nowrap;
@@ -231,13 +231,13 @@
231
231
  }
232
232
  .povio-canvas-page-label small:last-child {
233
233
  color: #76727f;
234
- font-size: 9px;
234
+ font-size: 10px;
235
235
  }
236
236
  .povio-canvas-catalog-footer {
237
237
  border-top: 1px solid var(--canvas-border);
238
- padding: 14px 16px;
238
+ padding: 8px 12px;
239
239
  color: #5a5963;
240
- font-size: 11px;
240
+ font-size: 10px;
241
241
  }
242
242
  .povio-canvas-catalog-footer .povio-canvas-live-dot {
243
243
  margin-right: 6px;
@@ -246,25 +246,25 @@
246
246
  display: block;
247
247
  color: #76727f;
248
248
  font-size: 10px;
249
- padding-left: 13px;
250
- margin-top: 3px;
249
+ padding-left: 12px;
250
+ margin-top: 0;
251
251
  }
252
252
 
253
253
  .povio-canvas-connections {
254
254
  display: grid;
255
- gap: 8px;
256
- padding: 18px 16px;
255
+ gap: 6px;
256
+ padding: 12px;
257
257
  }
258
258
  .povio-canvas-connections label {
259
259
  display: grid;
260
- gap: 12px;
261
- font-size: 11px;
260
+ gap: 6px;
261
+ font-size: 10px;
262
262
  font-weight: 600;
263
263
  }
264
264
  .povio-canvas-connections button {
265
265
  text-align: left;
266
266
  background: #f6f6f8;
267
- font-size: 11px;
267
+ font-size: 10px;
268
268
  overflow-wrap: anywhere;
269
269
  }
270
270
  .povio-canvas-connections select {
@@ -292,29 +292,51 @@
292
292
  }
293
293
  .povio-canvas-node {
294
294
  position: absolute;
295
- box-shadow: 0 2px 8px #24202d16;
295
+ }
296
+ .povio-canvas-node > :is(.povio-canvas-frame, .povio-canvas-unresolved) {
297
+ box-shadow: 0 1px 4px #24202d16;
296
298
  background: #fff;
297
299
  }
298
- .povio-canvas-node.is-selected {
299
- outline: 3px solid var(--canvas-accent);
300
- outline-offset: 2px;
300
+ .povio-canvas-node.is-selected > :is(.povio-canvas-frame, .povio-canvas-unresolved) {
301
+ outline: calc(2px / var(--canvas-zoom, 1)) solid var(--canvas-accent);
302
+ outline-offset: 0;
301
303
  }
304
+ /* The header keeps its 48px slot in world space; its label divides by the zoom to stay 10px on screen. */
302
305
  .povio-canvas-node-header {
303
306
  position: relative;
304
307
  display: flex;
305
- align-items: center;
306
- gap: 16px;
308
+ align-items: flex-end;
309
+ gap: calc(8px / var(--canvas-zoom, 1));
307
310
  height: 48px;
308
- padding: 6px 12px;
309
- background: #fafafa;
310
- border-bottom: 1px solid #eee;
311
+ padding: 0 0 calc(4px / var(--canvas-zoom, 1));
312
+ color: #77717e;
311
313
  cursor: move;
312
- font-size: 16px;
314
+ font-size: calc(10px / var(--canvas-zoom, 1));
315
+ line-height: 1.2;
316
+ white-space: nowrap;
317
+ }
318
+ .povio-canvas-node-header > strong {
319
+ overflow: hidden;
320
+ text-overflow: ellipsis;
321
+ font-weight: 500;
322
+ }
323
+ .povio-canvas-node.is-selected .povio-canvas-node-header > strong {
324
+ color: var(--canvas-accent);
313
325
  }
314
326
  .povio-canvas-node-header > span {
315
- color: #76727f;
327
+ color: #9a96a3;
316
328
  margin-left: auto;
317
329
  }
330
+ .povio-app-canvas .povio-canvas-node-header > button {
331
+ padding: 0 calc(2px / var(--canvas-zoom, 1));
332
+ border-radius: calc(3px / var(--canvas-zoom, 1));
333
+ background: transparent;
334
+ color: inherit;
335
+ line-height: inherit;
336
+ }
337
+ .povio-app-canvas .povio-canvas-node-header > button:hover {
338
+ background: #e3e1e8;
339
+ }
318
340
  .povio-canvas-frame {
319
341
  display: block;
320
342
  border: 0;
@@ -352,61 +374,63 @@
352
374
  .povio-canvas-camera,
353
375
  .povio-canvas-tool-dock {
354
376
  position: absolute;
355
- bottom: 16px;
377
+ bottom: 12px;
356
378
  display: flex;
357
379
  align-items: center;
358
- gap: 3px;
359
- padding: 5px;
380
+ gap: 2px;
381
+ padding: 4px;
360
382
  background: #fff;
361
383
  border: 1px solid #e3e1e8;
362
- border-radius: 10px;
384
+ border-radius: 8px;
363
385
  cursor: default;
364
386
  box-shadow: 0 4px 16px #24202d12;
365
387
  z-index: 2;
366
388
  }
367
389
  .povio-canvas-camera {
368
- right: 16px;
390
+ right: 12px;
369
391
  }
370
392
  .povio-canvas-tool-dock {
371
- left: 16px;
393
+ left: 12px;
372
394
  }
395
+ .povio-canvas-camera button,
373
396
  .povio-canvas-tool-dock button {
374
397
  display: flex;
375
398
  align-items: center;
376
- gap: 6px;
377
- font-size: 11px;
399
+ gap: 4px;
400
+ min-height: 24px;
401
+ font-size: 10px;
378
402
  }
379
403
  .povio-canvas-dock-divider {
380
404
  width: 1px;
381
- height: 20px;
405
+ height: 16px;
382
406
  background: var(--canvas-border);
383
- margin: 0 3px;
407
+ margin: 0 2px;
384
408
  }
385
409
  .povio-canvas-camera output {
386
- min-width: 44px;
410
+ min-width: 36px;
387
411
  text-align: center;
388
- font-size: 11px;
412
+ font-size: 10px;
389
413
  font-variant-numeric: tabular-nums;
390
414
  }
391
415
  .povio-canvas-unresolved {
392
- padding: 24px;
416
+ padding: 12px;
393
417
  min-height: 200px;
394
418
  display: flex;
395
419
  flex-direction: column;
396
- gap: 12px;
420
+ gap: 8px;
397
421
  }
398
422
  .povio-canvas-unresolved label {
399
423
  display: grid;
400
- gap: 6px;
424
+ gap: 4px;
401
425
  }
402
426
  .povio-canvas-page-note {
403
427
  background: #fff4d6;
404
428
  color: #6b501a;
405
- padding: 10px;
406
- font-size: 14px;
429
+ padding: 4px 8px;
430
+ font-size: 10px;
407
431
  }
408
432
  .povio-canvas-notice {
409
- padding: 8px 12px;
433
+ padding: 4px 12px;
410
434
  display: flex;
411
435
  justify-content: space-between;
412
436
  background: #fff4d6;
@@ -523,7 +547,7 @@
523
547
  .povio-canvas-camera .povio-canvas-breakpoint select {
524
548
  width: 135px;
525
549
  padding-inline: 3px;
526
- font-size: 11px;
550
+ font-size: 10px;
527
551
  }
528
552
  .povio-canvas-camera .povio-canvas-breakpoint > svg {
529
553
  display: none;
@@ -534,18 +558,18 @@
534
558
  }
535
559
 
536
560
  .povio-app-canvas .povio-canvas-inspector {
537
- flex: 0 0 320px;
538
- width: 320px;
561
+ flex: 0 0 272px;
562
+ width: 272px;
539
563
  border-radius: 0;
540
564
  border: 0;
541
565
  border-left: 1px solid var(--canvas-border);
542
566
  z-index: 4;
543
567
  }
544
568
  .povio-canvas-inspect-hint {
545
- margin: 12px;
569
+ margin: 8px 12px;
546
570
  color: #77717e;
547
- font-size: 11px;
548
- line-height: 1.6;
571
+ font-size: 10px;
572
+ line-height: 16px;
549
573
  }
550
574
  .povio-canvas-inspection-overlay {
551
575
  position: absolute;
@@ -569,7 +593,7 @@
569
593
  top: 0;
570
594
  bottom: 76px;
571
595
  height: auto;
572
- width: min(320px, 80%);
596
+ width: min(272px, 80%);
573
597
  box-shadow: -6px 0 24px #24202d16;
574
598
  }
575
599
  }
@@ -578,7 +602,7 @@
578
602
  top: auto;
579
603
  bottom: 124px;
580
604
  max-height: 48%;
581
- width: min(300px, 78%);
605
+ width: min(272px, 78%);
582
606
  border: 1px solid var(--canvas-border);
583
607
  border-radius: 8px;
584
608
  }
@@ -587,26 +611,28 @@
587
611
  .povio-canvas-catalog > .povio-canvas-brand {
588
612
  min-width: 0;
589
613
  margin: 0;
590
- padding: 17px 16px 4px;
591
- gap: 8px;
614
+ padding: 12px 12px 4px;
615
+ gap: 6px;
592
616
  }
593
617
  .povio-canvas-page-count {
594
618
  color: #76727f;
595
- font-size: 11px;
619
+ font-size: 10px;
620
+ line-height: 14px;
596
621
  background: #f1f1f4;
597
- padding: 1px 6px;
622
+ padding: 0 4px;
598
623
  border-radius: 4px;
599
624
  }
600
625
  .povio-canvas-sidebar-actions {
601
626
  display: flex;
602
627
  align-items: center;
603
- padding: 10px 8px;
628
+ padding: 4px 8px;
629
+ min-height: 40px;
604
630
  gap: 2px;
605
631
  border-top: 1px solid var(--canvas-border);
606
632
  }
607
633
  .povio-canvas-sidebar-actions button {
608
634
  display: inline-flex;
609
- padding: 7px;
635
+ padding: 5px;
610
636
  }
611
637
  .povio-canvas-sidebar-actions .povio-canvas-ready {
612
638
  display: flex;
@@ -625,15 +651,17 @@
625
651
  }
626
652
  .povio-canvas-layers {
627
653
  border-top: 1px solid var(--canvas-border);
628
- margin-top: 12px;
629
- padding-top: 8px;
654
+ margin-top: 8px;
655
+ padding-top: 4px;
630
656
  }
631
657
  .povio-canvas-layers > header {
632
658
  display: flex;
633
659
  align-items: center;
634
- gap: 7px;
635
- padding: 6px 8px 12px;
636
- font-size: 11px;
660
+ gap: 6px;
661
+ padding: 4px 8px;
662
+ min-height: 28px;
663
+ font-size: 10px;
664
+ font-weight: 600;
637
665
  }
638
666
  .povio-canvas-layers > header > span {
639
667
  color: #77717e;
@@ -647,7 +675,7 @@
647
675
  display: flex;
648
676
  align-items: center;
649
677
  min-width: 0;
650
- min-height: 28px;
678
+ min-height: 24px;
651
679
  border-radius: 4px;
652
680
  }
653
681
  [role="treeitem"][aria-selected="true"] > .povio-canvas-layer-row {
@@ -655,15 +683,15 @@
655
683
  color: #6540c2;
656
684
  }
657
685
  .povio-canvas-layer-row .povio-canvas-layer-toggle {
658
- flex: 0 0 18px;
659
- width: 18px;
660
- padding: 3px;
686
+ flex: 0 0 16px;
687
+ width: 16px;
688
+ padding: 2px;
661
689
  display: grid;
662
690
  place-items: center;
663
691
  background: transparent;
664
692
  }
665
693
  .povio-canvas-layer-spacer {
666
- flex: 0 0 18px;
694
+ flex: 0 0 16px;
667
695
  }
668
696
  .povio-canvas-layer-row .povio-canvas-layer-select {
669
697
  display: flex;
@@ -672,7 +700,7 @@
672
700
  flex: 1;
673
701
  min-width: 0;
674
702
  text-align: left;
675
- padding: 5px 3px;
703
+ padding: 4px 2px;
676
704
  background: transparent;
677
705
  font-size: 10px;
678
706
  }
@@ -687,13 +715,13 @@
687
715
  white-space: nowrap;
688
716
  }
689
717
  .povio-canvas-layers > p {
690
- padding: 8px;
718
+ padding: 4px 8px;
691
719
  color: #77717e;
692
- font-size: 11px;
720
+ font-size: 10px;
693
721
  }
694
722
  .povio-canvas-more-layers {
695
- margin: 8px;
696
- font-size: 11px;
723
+ margin: 4px 8px;
724
+ font-size: 10px;
697
725
  }
698
726
  @media (max-width: 900px) {
699
727
  .povio-canvas-viewport > .povio-canvas-mobile-tools {
@@ -738,3 +766,67 @@
738
766
  height: 100dvh;
739
767
  background: #eeeef0;
740
768
  }
769
+
770
+ /* Chrome icons follow the 10px type: 12px beside a label, 14px in icon-only controls. */
771
+ .povio-app-canvas svg.lucide:not(.povio-canvas-world *, .studio-inspector-canvas *) {
772
+ width: 12px;
773
+ height: 12px;
774
+ flex-shrink: 0;
775
+ }
776
+ .povio-app-canvas
777
+ :is(
778
+ .povio-canvas-file-action,
779
+ .povio-canvas-theme-toggle,
780
+ .povio-canvas-configure,
781
+ .povio-canvas-mode-switch > button,
782
+ .povio-canvas-tool-dock > button,
783
+ .povio-canvas-panel-close,
784
+ .povio-canvas-mobile-tools > button
785
+ )
786
+ > svg.lucide {
787
+ width: 14px;
788
+ height: 14px;
789
+ }
790
+
791
+ /* Pages | Components: what the canvas shows, as underlined tabs like the configurator's sub-tabs. */
792
+ .povio-canvas-catalog > .povio-canvas-content-switch {
793
+ gap: 12px;
794
+ margin: 0 12px 8px;
795
+ padding: 8px 0 0;
796
+ border-bottom: 1px solid var(--canvas-border);
797
+ }
798
+ .povio-app-canvas .povio-canvas-content-switch > button {
799
+ display: inline-flex;
800
+ align-items: center;
801
+ gap: 4px;
802
+ margin-bottom: -1px;
803
+ padding: 4px 0 6px;
804
+ border: 0;
805
+ border-bottom: 2px solid transparent;
806
+ border-radius: 0;
807
+ background: transparent;
808
+ color: #77717e;
809
+ font-weight: 500;
810
+ }
811
+ .povio-app-canvas .povio-canvas-content-switch > button:hover {
812
+ background: transparent;
813
+ color: #242428;
814
+ }
815
+ .povio-app-canvas .povio-canvas-content-switch > button[aria-pressed="true"] {
816
+ border-bottom-color: #242428;
817
+ background: transparent;
818
+ color: #242428;
819
+ font-weight: 600;
820
+ }
821
+ .povio-canvas-content-switch .povio-canvas-page-count {
822
+ font-weight: 500;
823
+ }
824
+ /* A Components artboard's own document: one gallery section on the page background. */
825
+ .povio-canvas-components-frame.studio-sample {
826
+ padding: 32px;
827
+ border-radius: 0;
828
+ }
829
+ /* The footer stays at the sidebar's bottom when the list is short. */
830
+ .povio-canvas-catalog > .povio-canvas-sidebar-actions {
831
+ margin-top: auto;
832
+ }