@povio/ui 5.0.0-rc.12 → 5.0.0-rc.14

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.
Files changed (35) hide show
  1. package/README.md +9 -1
  2. package/dist/{AppCanvasPage-DCjiFfQW.js → AppCanvasPage-vta1j5YQ.js} +583 -847
  3. package/dist/{CanvasComponentsFrame-CZXY0Dxi.js → CanvasComponentsFrame-D6Mh_G3q.js} +1 -1
  4. package/dist/{ComponentGallery-D4U5hXZL.js → ComponentGallery-CzKU899_.js} +2 -2
  5. package/dist/{Form-DmcByQts.d.ts → Form-DAtj2szV.d.ts} +1 -1
  6. package/dist/{Inputs-C0sUmuPv.d.ts → Inputs-C_6dVwC7.d.ts} +1 -1
  7. package/dist/{Table-BN2_J_Ne.js → Table-piX1SWvN.js} +54 -1
  8. package/dist/{UIConfigurator-CBU0G6rb.js → UIConfigurator-CjAW1SJY.js} +1521 -318
  9. package/dist/config/app-canvas-tanstack.js +1 -1
  10. package/dist/config/app-canvas.d.ts +1 -1
  11. package/dist/config/app-canvas.js +1 -1
  12. package/dist/config/ui-config.d.ts +1 -1
  13. package/dist/config/ui-configurator-vite.d.ts +9 -0
  14. package/dist/config/ui-configurator-vite.js +560 -184
  15. package/dist/config/ui-configurator.d.ts +14 -2
  16. package/dist/config/ui-configurator.js +2 -2
  17. package/dist/{configuration.context-iuZu-ie0.d.ts → configuration.context-3I7-wBII.d.ts} +3 -2
  18. package/dist/{dynamicInputs-DdcsSoYu.d.ts → dynamicInputs-R5i7AT_C.d.ts} +1 -1
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.js +3 -3
  21. package/dist/rhf/inputs.d.ts +1 -1
  22. package/dist/rhf.d.ts +2 -2
  23. package/dist/rhf.js +3 -3
  24. package/dist/styles/app-canvas.css +15 -42
  25. package/dist/styles/configurator.css +453 -92
  26. package/dist/{table.cva-D5oQ-QvA.js → table.cva-DlMT-zLD.js} +1 -54
  27. package/dist/tanstack/form.d.ts +1 -1
  28. package/dist/tanstack/inputs.d.ts +2 -2
  29. package/dist/tanstack/table.js +2 -2
  30. package/dist/tanstack.d.ts +4 -4
  31. package/dist/tanstack.js +3 -3
  32. package/dist/{uiConfig.context-BqKWd_MO.d.ts → uiConfig.context-BksnNQyw.d.ts} +1 -1
  33. package/dist/{useTableColumnConfig-6zn3zKl3.js → useTableColumnConfig-CNJ_ZvIN.js} +1 -1
  34. package/package.json +1 -1
  35. package/src/configurator/README.md +18 -1
@@ -118,7 +118,7 @@
118
118
  font-weight: 650;
119
119
  letter-spacing: -0.3px;
120
120
  }
121
- /* Title, section tabs and global controls share one bar above the editor; the tabs take their own row. */
121
+ /* The theme version menu takes the first row of the bar above the editor; section tabs and token search the second. */
122
122
  .studio-topbar {
123
123
  grid-column: 1;
124
124
  grid-row: 1;
@@ -126,34 +126,27 @@
126
126
  flex-wrap: wrap;
127
127
  align-items: center;
128
128
  gap: 4px 12px;
129
- padding: 8px 12px 4px;
129
+ /* The extra top space keeps the move pill clear of the title row. */
130
+ padding: 12px 12px 4px;
130
131
  background: #fbfbfb;
131
132
  border-bottom: 1px solid #eaeaea;
132
133
  min-width: 0;
133
134
  }
134
135
  .studio-topbar .studio-title {
136
+ flex: 1 1 auto;
135
137
  gap: 9px;
136
- flex-shrink: 0;
138
+ min-width: 0;
137
139
  }
138
140
  .studio-topbar .studio-nav {
139
141
  order: 1;
140
- flex-basis: 100%;
142
+ /* Spans the bar plus both negative margins, so tab text and the search edge line up with the rows above. */
143
+ flex-basis: calc(100% + 8px);
141
144
  margin-inline: -4px;
142
145
  }
143
146
  .studio-topbar .studio-title h2 {
144
147
  white-space: nowrap;
145
148
  }
146
- /* Controls share the title's row and only wrap below it once even their narrowest layout no longer fits. */
147
- .studio-topbar-controls {
148
- display: flex;
149
- flex: 1 1 min-content;
150
- justify-content: flex-end;
151
- align-items: center;
152
- gap: 8px;
153
- margin-left: auto;
154
- min-width: 0;
155
- }
156
- /* Search rests as a magnifier beside the window controls and expands over the title row while in use. */
149
+ /* Search rests as a magnifier at the end of the section tabs and expands over them while in use. */
157
150
  .studio-topbar .studio-search {
158
151
  position: relative;
159
152
  flex: 0 0 auto;
@@ -190,7 +183,8 @@
190
183
  width: auto;
191
184
  opacity: 1;
192
185
  }
193
- .studio-topbar:has(.studio-search:is(:focus-within, :has(input:not(:placeholder-shown)))) .studio-title {
186
+ .studio-nav:has(.studio-search:is(:focus-within, :has(input:not(:placeholder-shown))))
187
+ :is(.studio-section-tabs, .studio-preview-tab) {
194
188
  display: none;
195
189
  }
196
190
  .studio-topbar .studio-search:has(input:disabled) {
@@ -226,17 +220,6 @@
226
220
  .studio-topbar input {
227
221
  cursor: text;
228
222
  }
229
- @container (max-width: 800px) {
230
- .studio-topbar-controls {
231
- flex-wrap: wrap;
232
- margin-left: 0;
233
- flex-shrink: 1;
234
- }
235
-
236
- .studio-topbar .studio-title {
237
- flex: 1;
238
- }
239
- }
240
223
  /* The body only groups the panels in markup; they are placed on the dialog's grid. */
241
224
  .studio-body {
242
225
  display: contents;
@@ -313,7 +296,7 @@
313
296
  margin: 0 4px;
314
297
  background: #e5e5e5;
315
298
  }
316
- .studio-nav button {
299
+ .studio-nav button:not(.studio-search-clear) {
317
300
  display: flex;
318
301
  flex-shrink: 0;
319
302
  align-items: center;
@@ -2609,27 +2592,33 @@
2609
2592
  * The header drags the window, so the grip is only a keyboard control: hidden until it has focus, then shown left
2610
2593
  * of the pop-out button, where arrow keys move the window.
2611
2594
  */
2595
+ /* A small pill centered on the window's top edge moves it; focused, the arrow keys move it too. */
2612
2596
  .studio-window-grip {
2613
2597
  position: absolute;
2614
- top: 20px;
2615
- right: 82px;
2598
+ top: 0;
2599
+ left: 50%;
2600
+ translate: -50% 0;
2616
2601
  z-index: 5;
2617
2602
  display: grid;
2618
2603
  place-items: center;
2604
+ width: 48px;
2605
+ height: 8px;
2619
2606
  border: 0;
2620
- padding: 4px;
2607
+ border-radius: 4px;
2608
+ padding: 0;
2621
2609
  background: transparent;
2622
- color: #858585;
2623
2610
  touch-action: none;
2624
- flex-shrink: 0;
2625
- border-radius: 5px;
2626
2611
  }
2627
- .studio-window-grip:not(:focus-visible) {
2628
- width: 1px;
2629
- height: 1px;
2630
- padding: 0;
2631
- overflow: hidden;
2632
- clip-path: inset(50%);
2612
+ .studio-window-grip::before {
2613
+ content: "";
2614
+ width: 28px;
2615
+ height: 4px;
2616
+ border-radius: 2px;
2617
+ background: #d9d9d9;
2618
+ transition: background 120ms;
2619
+ }
2620
+ .studio-window-grip:is(:hover, :active, :focus-visible)::before {
2621
+ background: #8f8f8f;
2633
2622
  }
2634
2623
  .studio-overlay .studio-window-grip {
2635
2624
  cursor: grab;
@@ -2713,18 +2702,6 @@
2713
2702
  }
2714
2703
  }
2715
2704
 
2716
- @container (max-width: 1050px) {
2717
- .studio-window-grip {
2718
- top: 18px;
2719
- }
2720
- }
2721
- @container (max-width: 800px) {
2722
- .studio-window-grip {
2723
- top: 10px;
2724
- right: 76px;
2725
- }
2726
- }
2727
-
2728
2705
  /* Resized windows must not inherit the gallery specimens' intrinsic minimum width. */
2729
2706
  .studio-layout-card {
2730
2707
  min-width: 0;
@@ -2798,8 +2775,9 @@
2798
2775
  }
2799
2776
  }
2800
2777
  @container (max-width: 800px) {
2778
+ /* Centered on the title row's 24px controls. */
2801
2779
  .studio-window-popout {
2802
- top: 10px;
2780
+ top: 12px;
2803
2781
  right: 44px;
2804
2782
  }
2805
2783
  .studio-topbar {
@@ -2822,11 +2800,11 @@
2822
2800
  @container (max-width: 800px) {
2823
2801
  .studio-topbar,
2824
2802
  .studio-modal-popout .studio-topbar {
2825
- padding-right: 16px;
2803
+ padding-right: 12px;
2826
2804
  }
2827
2805
  /* Leaves the window controls' corner free with the same 8px gap they keep between themselves. */
2828
- .studio-topbar-controls {
2829
- margin-right: 54px;
2806
+ .studio-topbar .studio-title {
2807
+ margin-right: 58px;
2830
2808
  }
2831
2809
  }
2832
2810
  .studio-palette-native {
@@ -2846,7 +2824,7 @@
2846
2824
  border-radius: 4px;
2847
2825
  }
2848
2826
 
2849
- .studio-window-minimize {
2827
+ .studio-window-close {
2850
2828
  position: absolute;
2851
2829
  top: 20px;
2852
2830
  right: 18px;
@@ -2861,51 +2839,24 @@
2861
2839
  color: #858585;
2862
2840
  background: transparent;
2863
2841
  }
2864
- .studio-window-minimize:focus-visible {
2842
+ .studio-window-close:focus-visible {
2865
2843
  outline: 2px solid #555;
2866
2844
  outline-offset: -2px;
2867
2845
  }
2868
2846
  @container (max-width: 1050px) {
2869
- .studio-window-minimize {
2847
+ .studio-window-close {
2870
2848
  top: 18px;
2871
2849
  }
2872
2850
  }
2873
2851
  @container (max-width: 800px) {
2874
- .studio-window-minimize {
2875
- top: 10px;
2852
+ .studio-window-close {
2853
+ top: 12px;
2876
2854
  right: 12px;
2877
2855
  }
2878
2856
  .studio-preview-actions {
2879
2857
  padding-right: 0;
2880
2858
  }
2881
2859
  }
2882
- .studio-floating-launcher {
2883
- position: fixed;
2884
- z-index: 1000;
2885
- display: flex;
2886
- align-items: center;
2887
- gap: 10px;
2888
- padding: 6px 10px;
2889
- border: 1px solid #555;
2890
- border-radius: 999px;
2891
- background: #292929;
2892
- color: #fff;
2893
- box-shadow: 0 4px 16px #0003;
2894
- font:
2895
- 600 10px/1.4 "Inter Variable",
2896
- Inter,
2897
- sans-serif;
2898
- cursor: grab;
2899
- touch-action: none;
2900
- user-select: none;
2901
- }
2902
- .studio-floating-launcher:active {
2903
- cursor: grabbing;
2904
- }
2905
- .studio-floating-launcher:focus-visible {
2906
- outline: 2px solid #555;
2907
- outline-offset: 3px;
2908
- }
2909
2860
 
2910
2861
  /* Live-preview inspection keeps the canvas and property sidebar independently scrollable. */
2911
2862
  .studio-preview:has(.studio-hover-inspector) {
@@ -3521,15 +3472,425 @@
3521
3472
  }
3522
3473
  .studio-overlay
3523
3474
  :is(
3524
- .studio-window-grip,
3525
- .studio-window-minimize,
3475
+ .studio-window-close,
3526
3476
  .studio-window-popout,
3527
3477
  .studio-palette-reset,
3528
3478
  .studio-token-value > button,
3529
- .studio-inspector-panel > header button,
3530
- .studio-floating-launcher
3479
+ .studio-inspector-panel > header button
3531
3480
  )
3532
3481
  svg.lucide {
3533
3482
  width: 14px;
3534
3483
  height: 14px;
3535
3484
  }
3485
+
3486
+ .studio-visually-hidden {
3487
+ position: absolute;
3488
+ width: 1px;
3489
+ height: 1px;
3490
+ overflow: hidden;
3491
+ clip-path: inset(50%);
3492
+ white-space: nowrap;
3493
+ }
3494
+ /* Theme versions: a select with add and edit actions, in the configurator's title row. */
3495
+ .studio-version-picker {
3496
+ display: flex;
3497
+ flex: 1;
3498
+ flex-wrap: wrap;
3499
+ align-items: center;
3500
+ gap: 4px;
3501
+ min-width: 0;
3502
+ max-width: 320px;
3503
+ }
3504
+ .studio-version-select {
3505
+ flex: 1;
3506
+ min-width: 0;
3507
+ }
3508
+ .studio-version-trigger {
3509
+ display: flex;
3510
+ align-items: center;
3511
+ gap: 6px;
3512
+ width: 100%;
3513
+ height: 24px;
3514
+ padding: 0 6px 0 8px;
3515
+ border: 1px solid #e5e5e5;
3516
+ border-radius: 6px;
3517
+ background: #fff;
3518
+ color: #242424;
3519
+ font: inherit;
3520
+ font-weight: 600;
3521
+ text-align: left;
3522
+ }
3523
+ .studio-version-trigger:hover {
3524
+ border-color: #d4d4d4;
3525
+ }
3526
+ .studio-version-trigger > span {
3527
+ flex: 1;
3528
+ min-width: 0;
3529
+ overflow: hidden;
3530
+ text-overflow: ellipsis;
3531
+ white-space: nowrap;
3532
+ }
3533
+ .studio-version-trigger svg {
3534
+ color: #707070;
3535
+ }
3536
+ .studio-version-action {
3537
+ display: grid;
3538
+ place-items: center;
3539
+ width: 24px;
3540
+ height: 24px;
3541
+ flex-shrink: 0;
3542
+ padding: 0;
3543
+ border: 0;
3544
+ border-radius: 5px;
3545
+ background: transparent;
3546
+ color: #707070;
3547
+ }
3548
+ .studio-version-action:hover {
3549
+ background: #f0f0f0;
3550
+ color: #464646;
3551
+ }
3552
+ :is(.studio-version-trigger, .studio-version-action):disabled {
3553
+ opacity: 0.45;
3554
+ cursor: default;
3555
+ }
3556
+ :is(.studio-version-trigger, .studio-version-action):focus-visible {
3557
+ outline: 2px solid #555;
3558
+ outline-offset: 1px;
3559
+ }
3560
+ .studio-version-error {
3561
+ flex-basis: 100%;
3562
+ margin: 2px 0 0;
3563
+ color: #b52c39;
3564
+ }
3565
+ /* The menu and the edit dialog float above the configurator window. */
3566
+ .studio-version-popover {
3567
+ z-index: 1002;
3568
+ min-width: var(--trigger-width, 180px);
3569
+ border: 1px solid #e5e5e5;
3570
+ border-radius: 8px;
3571
+ background: #fff;
3572
+ box-shadow: 0 12px 40px #21212126;
3573
+ font-family: "Inter Variable", Inter, sans-serif;
3574
+ font-size: 10px;
3575
+ line-height: 1.5;
3576
+ color: #242424;
3577
+ }
3578
+ .studio-version-list {
3579
+ max-height: min(320px, calc(var(--visual-viewport-height, 100vh) - 80px));
3580
+ overflow: auto;
3581
+ padding: 4px;
3582
+ outline: none;
3583
+ }
3584
+ .studio-version-item {
3585
+ padding: 5px 8px;
3586
+ border-radius: 5px;
3587
+ outline: none;
3588
+ cursor: pointer;
3589
+ overflow-wrap: anywhere;
3590
+ }
3591
+ .studio-version-item[data-focused],
3592
+ .studio-version-item[data-hovered] {
3593
+ background: #f3f3f3;
3594
+ }
3595
+ .studio-version-item[data-selected] {
3596
+ background: #eeeeee;
3597
+ color: #464646;
3598
+ font-weight: 600;
3599
+ }
3600
+ .studio-version-dialog {
3601
+ width: 240px;
3602
+ max-width: calc(100vw - 16px);
3603
+ padding: 10px;
3604
+ }
3605
+ .studio-version-dialog [role="dialog"],
3606
+ .studio-version-dialog [role="alertdialog"] {
3607
+ outline: none;
3608
+ }
3609
+ .studio-version-dialog-heading {
3610
+ display: flex;
3611
+ align-items: center;
3612
+ justify-content: space-between;
3613
+ margin-bottom: 8px;
3614
+ }
3615
+ .studio-version-dialog-heading h2 {
3616
+ margin: 0;
3617
+ font-size: 11px;
3618
+ font-weight: 600;
3619
+ }
3620
+ .studio-version-dialog-heading button {
3621
+ display: grid;
3622
+ place-items: center;
3623
+ padding: 2px;
3624
+ border: 0;
3625
+ border-radius: 4px;
3626
+ background: transparent;
3627
+ color: #707070;
3628
+ }
3629
+ .studio-version-dialog label {
3630
+ display: grid;
3631
+ gap: 4px;
3632
+ color: #535353;
3633
+ }
3634
+ .studio-version-dialog input {
3635
+ width: 100%;
3636
+ min-width: 0;
3637
+ box-sizing: border-box;
3638
+ padding: 5px 7px;
3639
+ border: 1px solid #e5e5e5;
3640
+ border-radius: 5px;
3641
+ background: #fafafa;
3642
+ color: #242424;
3643
+ font: inherit;
3644
+ }
3645
+ .studio-version-dialog p {
3646
+ margin: 0;
3647
+ }
3648
+ .studio-version-hint {
3649
+ margin-top: 6px !important;
3650
+ color: #858585;
3651
+ }
3652
+ .studio-version-dialog-actions {
3653
+ display: flex;
3654
+ align-items: center;
3655
+ justify-content: flex-end;
3656
+ gap: 6px;
3657
+ margin-top: 10px;
3658
+ }
3659
+ .studio-version-dialog-actions button {
3660
+ display: inline-flex;
3661
+ align-items: center;
3662
+ gap: 4px;
3663
+ padding: 4px 8px;
3664
+ border: 1px solid #e5e5e5;
3665
+ border-radius: 5px;
3666
+ background: #fff;
3667
+ color: #242424;
3668
+ font: inherit;
3669
+ cursor: pointer;
3670
+ }
3671
+ .studio-version-dialog-actions button:disabled {
3672
+ opacity: 0.4;
3673
+ cursor: default;
3674
+ }
3675
+ .studio-version-dialog-actions .studio-version-delete {
3676
+ margin-right: auto;
3677
+ padding-left: 0;
3678
+ border: 0;
3679
+ color: #b52c39;
3680
+ }
3681
+ .studio-version-dialog-actions .is-primary {
3682
+ border-color: #363636;
3683
+ background: #363636;
3684
+ color: #fff;
3685
+ }
3686
+ .studio-version-dialog-actions .is-danger {
3687
+ border-color: #b52c39;
3688
+ background: #b52c39;
3689
+ color: #fff;
3690
+ }
3691
+ .studio-version-dialog :focus-visible {
3692
+ outline: 2px solid #555;
3693
+ outline-offset: 1px;
3694
+ }
3695
+ /* Fontsource browsing stays compact even when the preview theme changes. */
3696
+ .studio-fontsource {
3697
+ display: flex;
3698
+ align-items: center;
3699
+ gap: 8px;
3700
+ padding-top: 8px;
3701
+ }
3702
+ .studio-fontsource-notice {
3703
+ color: #777;
3704
+ font-size: 10px;
3705
+ }
3706
+ .studio-fontsource-popover {
3707
+ width: min(340px, calc(100vw - 24px));
3708
+ max-height: min(680px, calc(100dvh - 24px));
3709
+ overflow: auto;
3710
+ padding: 12px;
3711
+ border: 1px solid #e5e5e5;
3712
+ border-radius: 10px;
3713
+ background: #fff;
3714
+ color: #303036;
3715
+ box-shadow: 0 8px 32px #24202d26;
3716
+ font:
3717
+ 11px/1.4 Inter,
3718
+ system-ui,
3719
+ sans-serif;
3720
+ z-index: 10020;
3721
+ }
3722
+ .studio-fontsource-popover * {
3723
+ box-sizing: border-box;
3724
+ }
3725
+ .studio-fontsource-popover [role="dialog"] {
3726
+ outline: none;
3727
+ }
3728
+ .studio-fontsource-popover header {
3729
+ display: flex;
3730
+ align-items: center;
3731
+ justify-content: space-between;
3732
+ gap: 8px;
3733
+ margin-bottom: 10px;
3734
+ }
3735
+ .studio-fontsource-popover h2 {
3736
+ margin: 0;
3737
+ font-size: 12px;
3738
+ font-weight: 600;
3739
+ }
3740
+ .studio-fontsource-popover button,
3741
+ .studio-fontsource-popover input,
3742
+ .studio-fontsource-popover select {
3743
+ font: inherit;
3744
+ color: inherit;
3745
+ }
3746
+ .studio-fontsource-popover button {
3747
+ border: 1px solid #e5e5e5;
3748
+ border-radius: 5px;
3749
+ padding: 4px 7px;
3750
+ background: #fff;
3751
+ cursor: pointer;
3752
+ }
3753
+ .studio-fontsource-popover button:disabled {
3754
+ opacity: 0.5;
3755
+ cursor: default;
3756
+ }
3757
+ .studio-fontsource-popover header button {
3758
+ display: grid;
3759
+ place-items: center;
3760
+ padding: 3px;
3761
+ border: 0;
3762
+ }
3763
+ .studio-fontsource-popover input:not([type="checkbox"]),
3764
+ .studio-fontsource-popover select {
3765
+ min-width: 0;
3766
+ width: 100%;
3767
+ border: 1px solid #e5e5e5;
3768
+ border-radius: 5px;
3769
+ padding: 6px 7px;
3770
+ background: #fafafa;
3771
+ }
3772
+ .studio-fontsource-popover :focus-visible {
3773
+ outline: 2px solid #7655d7;
3774
+ outline-offset: 1px;
3775
+ }
3776
+ .studio-fontsource-search {
3777
+ position: relative;
3778
+ display: flex;
3779
+ align-items: center;
3780
+ }
3781
+ .studio-fontsource-search svg {
3782
+ position: absolute;
3783
+ left: 8px;
3784
+ color: #888;
3785
+ }
3786
+ .studio-fontsource-popover .studio-fontsource-search input {
3787
+ padding-left: 27px;
3788
+ }
3789
+ .studio-fontsource-filters {
3790
+ display: flex;
3791
+ align-items: center;
3792
+ gap: 8px;
3793
+ margin: 8px 0;
3794
+ }
3795
+ .studio-fontsource-filters select {
3796
+ flex: 1;
3797
+ }
3798
+ .studio-fontsource-filters label {
3799
+ display: flex;
3800
+ align-items: center;
3801
+ gap: 4px;
3802
+ white-space: nowrap;
3803
+ }
3804
+ .studio-fontsource-filters input {
3805
+ margin: 0;
3806
+ accent-color: #7655d7;
3807
+ }
3808
+ .studio-fontsource-count {
3809
+ display: block;
3810
+ margin: 8px 0 3px;
3811
+ font-size: 10px;
3812
+ color: #888;
3813
+ }
3814
+ .studio-fontsource-list {
3815
+ display: grid;
3816
+ gap: 2px;
3817
+ max-height: 180px;
3818
+ overflow: auto;
3819
+ padding: 3px;
3820
+ margin-inline: -3px;
3821
+ }
3822
+ .studio-fontsource-list button {
3823
+ display: grid;
3824
+ grid-template-columns: 1fr auto;
3825
+ align-items: center;
3826
+ text-align: left;
3827
+ border-color: transparent;
3828
+ padding: 5px 7px;
3829
+ }
3830
+ .studio-fontsource-list small {
3831
+ grid-column: 1;
3832
+ color: #888;
3833
+ font-size: 9px;
3834
+ }
3835
+ .studio-fontsource-list svg {
3836
+ grid-row: 1 / span 2;
3837
+ grid-column: 2;
3838
+ }
3839
+ .studio-fontsource-list button:hover {
3840
+ background: #f6f4fa;
3841
+ }
3842
+ .studio-fontsource-list button[aria-pressed="true"] {
3843
+ color: #6540c2;
3844
+ background: #eee8ff;
3845
+ }
3846
+ .studio-fontsource-preview {
3847
+ border-top: 1px solid #eee;
3848
+ margin-top: 10px;
3849
+ padding-top: 10px;
3850
+ }
3851
+ .studio-fontsource-preview > strong {
3852
+ display: block;
3853
+ margin-bottom: 6px;
3854
+ }
3855
+ .studio-fontsource-sample {
3856
+ margin: 10px 0;
3857
+ font-size: 26px;
3858
+ line-height: 1.4;
3859
+ overflow-wrap: anywhere;
3860
+ }
3861
+ .studio-fontsource-preview > [role="status"] {
3862
+ color: #888;
3863
+ font-size: 10px;
3864
+ }
3865
+ .studio-fontsource-role {
3866
+ display: flex;
3867
+ align-items: center;
3868
+ gap: 8px;
3869
+ margin: 8px 0;
3870
+ }
3871
+ .studio-fontsource-role select {
3872
+ flex: 1;
3873
+ }
3874
+ .studio-fontsource-popover .studio-primary {
3875
+ width: 100%;
3876
+ background: #7655d7;
3877
+ border-color: #7655d7;
3878
+ color: white;
3879
+ }
3880
+ .studio-fontsource-help {
3881
+ margin: 10px 0 0;
3882
+ color: #888;
3883
+ font-size: 10px;
3884
+ line-height: 1.5;
3885
+ }
3886
+ .studio-fontsource-popover [role="alert"] {
3887
+ color: #ad2937;
3888
+ }
3889
+ .studio-fontsource-popover [role="alert"] button {
3890
+ margin-left: 8px;
3891
+ }
3892
+ .studio-fontsource-popover .studio-fontsource-more {
3893
+ width: 100%;
3894
+ margin-top: 5px;
3895
+ font-size: 10px;
3896
+ }