@povio/ui 5.0.0-rc.13 → 5.0.0-rc.15

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 (82) hide show
  1. package/README.md +8 -0
  2. package/dist/{AppCanvasPage-DtWEvs_Y.js → AppCanvasPage-BnyCHO3I.js} +152 -462
  3. package/dist/{AppCanvasPage-BZ2mrKY4.d.ts → AppCanvasPage-U9SxNwjS.d.ts} +1 -1
  4. package/dist/{BottomSheet-BXLE3161.js → BottomSheet-AqYVSMK9.js} +1 -75
  5. package/dist/BottomSheetHeader-Be6Elvs2.js +79 -0
  6. package/dist/{Calendar-DRHruqr_.js → Calendar-1p3VjSED.js} +3 -3
  7. package/dist/{CanvasComponentsFrame-CbgJJv-3.js → CanvasComponentsFrame-Dp0oDDoH.js} +6 -6
  8. package/dist/{UIConfigurator-DekPXjv9.js → CanvasInspector-DdP3mHUY.js} +1707 -522
  9. package/dist/{ComponentGallery-COqEqqN6.js → ComponentGallery-C_rXFvUY.js} +250 -1797
  10. package/dist/{DatePicker-xDEqzNJv.js → DatePicker-CAzuZRmd.js} +6 -6
  11. package/dist/{DatePickerInput-B0fEeCOf.js → DatePickerInput-BeQOVCk0.js} +4 -3
  12. package/dist/{DateRangePicker-DxuVhRaf.js → DateRangePicker-X3mBhfmL.js} +5 -5
  13. package/dist/{DateTimePicker-4N1Pka07.js → DateTimePicker-EtmGtoRe.js} +6 -6
  14. package/dist/{InputItem-Cv19Hwnx.js → InputItem-yC5oMyN-.js} +7 -7
  15. package/dist/{Inputs-D1aE_J9f.js → Inputs-Bd2nRNqk.js} +1 -1
  16. package/dist/{NumberRangeInput-Bzfe-RlV.js → NumberRangeInput-TkPXiWV3.js} +2 -2
  17. package/dist/{RichTextEditor-Bd7F5D8f.js → RichTextEditor-DiaPcBUM.js} +110 -32
  18. package/dist/{Select-CgIhoWgk.js → Select-tNlFSbAC.js} +5 -5
  19. package/dist/{Table-piX1SWvN.js → Table-CgG02oHQ.js} +1 -1
  20. package/dist/{TextArea-uPffb457.js → TextArea-DuvFUjts.js} +1 -1
  21. package/dist/{TimePicker-DN-i98z5.js → TimePicker-CBkiE-Yq.js} +5 -4
  22. package/dist/{TooltipWrapper-CDHFaUKZ.js → TooltipWrapper-CSXs5-E3.js} +2 -2
  23. package/dist/components/autocomplete.js +3 -3
  24. package/dist/components/bottom-sheet.js +1 -1
  25. package/dist/components/date-picker.js +1 -1
  26. package/dist/components/date-range-picker.js +1 -1
  27. package/dist/components/date-time-picker.js +1 -1
  28. package/dist/components/input.js +3 -3
  29. package/dist/components/number-field.js +3 -3
  30. package/dist/components/number-range-input.js +1 -1
  31. package/dist/components/query-autocomplete.js +1 -1
  32. package/dist/components/query-select.js +2 -2
  33. package/dist/components/select.js +1 -1
  34. package/dist/components/text-area.js +1 -1
  35. package/dist/components/time-picker.js +1 -1
  36. package/dist/config/app-canvas-tanstack.d.ts +1 -1
  37. package/dist/config/app-canvas-tanstack.js +1 -1
  38. package/dist/config/app-canvas.d.ts +1 -1
  39. package/dist/config/app-canvas.js +1 -1
  40. package/dist/config/ui-configurator-vite.d.ts +2 -0
  41. package/dist/config/ui-configurator-vite.js +234 -8
  42. package/dist/config/ui-configurator.d.ts +21 -2
  43. package/dist/config/ui-configurator.js +121 -3
  44. package/dist/{datePickerValue.utils-QWR2q5Vv.js → datePickerValue.utils-BDB6KM8q.js} +1 -1
  45. package/dist/demos-DIwj5vc0.js +2011 -0
  46. package/dist/index.js +7 -7
  47. package/dist/{logger-CqZjM-sn.js → logger-CW24po62.js} +10 -1
  48. package/dist/rhf/date-picker.js +1 -1
  49. package/dist/rhf/date-range-picker.js +1 -1
  50. package/dist/rhf/date-time-picker.js +1 -1
  51. package/dist/rhf/number-range-input.js +1 -1
  52. package/dist/rhf/rich-text-editor.js +1 -1
  53. package/dist/rhf/select.js +1 -1
  54. package/dist/rhf/text-area.js +1 -1
  55. package/dist/rhf/time-picker.js +1 -1
  56. package/dist/rhf.js +7 -7
  57. package/dist/rich-text-editor.js +1 -1
  58. package/dist/{staticDateTimeSegments-BWea3HAt.js → staticDateTimeSegments-Bs1_N5MR.js} +1 -1
  59. package/dist/{staticSelect.utils-BfTCi26B.js → staticSelect.utils-BgdYv2vP.js} +5 -4
  60. package/dist/styles/app-canvas.css +30 -24
  61. package/dist/styles/configurator.css +544 -34
  62. package/dist/tanstack/date-picker.js +1 -1
  63. package/dist/tanstack/date-range-picker.js +1 -1
  64. package/dist/tanstack/date-time-picker.js +1 -1
  65. package/dist/tanstack/form.js +1 -1
  66. package/dist/tanstack/inputs.js +1 -1
  67. package/dist/tanstack/number-range-input.js +1 -1
  68. package/dist/tanstack/rich-text-editor.js +1 -1
  69. package/dist/tanstack/select.js +1 -1
  70. package/dist/tanstack/table.js +2 -2
  71. package/dist/tanstack/text-area.js +1 -1
  72. package/dist/tanstack/time-picker.js +1 -1
  73. package/dist/tanstack.js +15 -15
  74. package/dist/token-classes-BqLWiy6O.js +245 -0
  75. package/dist/{useFieldAccessibility-B-bjtrNw.js → useFieldAccessibility-DnCdz938.js} +2 -1
  76. package/dist/{useFormAutosave-pmh35PXp.js → useFormAutosave-CxqZAJAB.js} +1 -1
  77. package/dist/{useStaticInputHandoff-B7DEm75m.js → useStaticInputHandoff-DKsxpVck.js} +2 -1
  78. package/dist/{useTableColumnConfig-CNJ_ZvIN.js → useTableColumnConfig-BnbKElno.js} +1 -1
  79. package/dist/utils/logger.js +1 -1
  80. package/package.json +1 -1
  81. package/dist/groups-oQmSeqXn.js +0 -18
  82. package/dist/underline-66hmELxa.js +0 -81
@@ -94,11 +94,11 @@
94
94
  background: #fff;
95
95
  overflow: hidden;
96
96
  }
97
- /* With the components shown by the host (the App Canvas), the window is only the editor: narrow and one column. */
98
- .studio-modal[data-components-hosted] {
97
+ /* An editor-only window (the App Canvas, or a host that asks for it) is narrow and one column. */
98
+ .studio-modal[data-editor-only] {
99
99
  width: min(360px, calc(100vw - 48px));
100
100
  }
101
- .studio-modal[data-components-hosted] .studio-dialog {
101
+ .studio-modal[data-editor-only] .studio-dialog {
102
102
  grid-template-columns: minmax(0, 1fr);
103
103
  }
104
104
  /*
@@ -1567,9 +1567,9 @@
1567
1567
  overflow-wrap: anywhere;
1568
1568
  }
1569
1569
 
1570
- /* Shades generator for base palette groups; its group gets top padding so the panel clears the header row. */
1570
+ /* Shades generator for base palette groups: rows of the same table, above the palette's own token rows. */
1571
1571
  .studio-token-group > div:has(> .studio-shades) {
1572
- padding-top: 10px;
1572
+ padding-top: 0;
1573
1573
  }
1574
1574
  .studio-palette-actions {
1575
1575
  display: flex;
@@ -1595,63 +1595,279 @@
1595
1595
  font-weight: 550;
1596
1596
  text-transform: none;
1597
1597
  }
1598
+ /* Shades generator: table rows divided by the same hairlines as the tokens, in the 10px / 24px control language. */
1598
1599
  .studio-shades {
1599
- display: flex;
1600
- flex-direction: column;
1601
- gap: 12px;
1602
- margin: 0 10px 10px;
1603
- padding: 8px;
1604
- border: 1px solid #e3e3e3;
1605
- border-radius: 8px;
1606
- background: #fbfbfb;
1600
+ display: grid;
1601
+ }
1602
+ .studio-shades > * {
1603
+ border-bottom: 1px solid var(--studio-cell-line);
1607
1604
  }
1608
- .studio-shades-input {
1605
+ .studio-shades-row {
1609
1606
  display: flex;
1610
1607
  align-items: center;
1611
- gap: 8px;
1608
+ gap: 6px;
1609
+ min-height: 32px;
1610
+ padding: 4px var(--studio-editor-pad);
1611
+ box-sizing: border-box;
1612
+ }
1613
+ .studio-shades > .studio-error {
1614
+ margin: 0;
1615
+ padding: 4px var(--studio-editor-pad);
1612
1616
  }
1613
- .studio-shades-input label {
1617
+ .studio-shades-label {
1618
+ flex-shrink: 0;
1619
+ color: #464646;
1614
1620
  font-size: 10px;
1615
1621
  font-weight: 550;
1616
1622
  white-space: nowrap;
1617
1623
  }
1618
- .studio-shades-input .studio-token-input {
1624
+ .studio-shades-field {
1625
+ display: flex;
1626
+ flex: 1;
1619
1627
  align-items: center;
1620
1628
  gap: 4px;
1621
- max-width: 140px;
1622
- padding-left: 8px;
1629
+ min-width: 0;
1630
+ height: 24px;
1631
+ padding: 0 6px 0 4px;
1623
1632
  border: 1px solid #e5e5e5;
1624
1633
  border-radius: 5px;
1625
1634
  background: #fff;
1626
1635
  color: #939393;
1636
+ font-size: 10px;
1627
1637
  }
1628
- .studio-shades-input .studio-token-input input {
1629
- width: 100%;
1638
+ .studio-shades-field:focus-within {
1639
+ border-color: #8e8e8e;
1640
+ }
1641
+ .studio-shades-field input[type="color"] {
1642
+ flex-shrink: 0;
1643
+ width: 16px;
1644
+ height: 16px;
1645
+ padding: 0;
1646
+ border: 0;
1647
+ border-radius: 3px;
1648
+ background: none;
1649
+ cursor: pointer;
1650
+ }
1651
+ .studio-shades-field input[type="color"]::-webkit-color-swatch-wrapper {
1652
+ padding: 0;
1653
+ }
1654
+ .studio-shades-field input[type="color"]::-webkit-color-swatch {
1655
+ border: 1px solid #0002;
1656
+ border-radius: 3px;
1657
+ }
1658
+ .studio-shades-field input[type="color"]::-moz-color-swatch {
1659
+ border: 1px solid #0002;
1660
+ border-radius: 3px;
1661
+ }
1662
+ .studio-shades-field input:not([type="color"]) {
1663
+ flex: 1;
1664
+ min-width: 0;
1665
+ padding: 0;
1630
1666
  border: 0;
1631
- padding: 6px 6px 6px 0;
1632
1667
  outline: none;
1668
+ background: transparent;
1669
+ color: #393939;
1633
1670
  font-family: ui-monospace, monospace;
1671
+ font-size: 10px;
1634
1672
  text-transform: uppercase;
1635
1673
  }
1636
- /* Compact actions share the base color row to save vertical space. */
1637
- .studio-shades-actions {
1674
+ .studio-shades .studio-shades-apply {
1675
+ flex-shrink: 0;
1676
+ height: 24px;
1677
+ padding: 0 8px;
1678
+ border-radius: 5px;
1679
+ font-size: 10px;
1680
+ }
1681
+ .studio-shades .studio-shades-apply:disabled {
1682
+ opacity: 0.4;
1683
+ }
1684
+ .studio-shades-bar {
1638
1685
  display: flex;
1686
+ align-items: center;
1687
+ justify-content: space-between;
1688
+ min-height: 28px;
1689
+ padding: 0 calc(var(--studio-editor-pad) - 4px) 0 var(--studio-editor-pad);
1690
+ }
1691
+ .studio-shades-advanced-toggle,
1692
+ .studio-shades-reset {
1693
+ display: inline-flex;
1694
+ align-items: center;
1695
+ gap: 4px;
1696
+ height: 20px;
1697
+ padding: 0 4px;
1698
+ border: 0;
1699
+ border-radius: 4px;
1700
+ background: transparent;
1701
+ color: #707070;
1702
+ font-size: 10px;
1703
+ cursor: pointer;
1704
+ }
1705
+ .studio-shades-advanced-toggle {
1706
+ margin-left: -4px;
1707
+ }
1708
+ .studio-shades-advanced-toggle:hover,
1709
+ .studio-shades-reset:hover {
1710
+ background: #efefef;
1711
+ color: #393939;
1712
+ }
1713
+ .studio-shades-advanced-toggle > svg {
1714
+ transition: rotate 120ms;
1715
+ }
1716
+ .studio-shades-advanced-toggle[aria-expanded="true"] > svg {
1717
+ rotate: 90deg;
1718
+ }
1719
+ .studio-shades-advanced {
1720
+ display: grid;
1639
1721
  gap: 6px;
1640
- margin-left: auto;
1722
+ padding: 8px var(--studio-editor-pad) 10px;
1641
1723
  }
1642
- .studio-shades-actions button {
1643
- padding: 4px 8px;
1724
+ /* Palette curve editor: a vector-style curve with draggable ends and handles, and shades that pin on click. */
1725
+ .studio-curve-editor {
1726
+ display: block;
1727
+ width: 100%;
1728
+ height: auto;
1729
+ border: 1px solid #ececec;
1730
+ border-radius: 5px;
1731
+ background: #f7f7f7;
1732
+ touch-action: none;
1733
+ user-select: none;
1734
+ }
1735
+ .studio-curve-editor.is-dragging {
1736
+ cursor: grabbing;
1737
+ }
1738
+ .studio-curve-range {
1739
+ fill: #fff;
1740
+ stroke: #e6e6e6;
1741
+ }
1742
+ .studio-curve-grid,
1743
+ .studio-curve-step {
1744
+ stroke: #efefef;
1745
+ }
1746
+ .studio-curve-step {
1747
+ stroke-dasharray: 1 3;
1748
+ }
1749
+ .studio-curve-base-mark {
1750
+ stroke: #9a9a9a;
1751
+ stroke-dasharray: 2 2;
1752
+ }
1753
+ .studio-curve-path {
1754
+ fill: none;
1755
+ stroke: #393939;
1756
+ stroke-width: 1.5;
1757
+ }
1758
+ .studio-curve-handle-line {
1759
+ stroke: #7655d7;
1760
+ stroke-width: 1;
1761
+ }
1762
+ .studio-curve-handle,
1763
+ .studio-curve-end {
1764
+ fill: #fff;
1765
+ stroke: #7655d7;
1766
+ stroke-width: 1.5;
1767
+ cursor: grab;
1768
+ outline: none;
1769
+ }
1770
+ .studio-curve-end {
1771
+ cursor: ns-resize;
1772
+ }
1773
+ .studio-curve-shade {
1774
+ stroke: #393939;
1775
+ stroke-width: 0.75;
1776
+ cursor: pointer;
1777
+ outline: none;
1778
+ }
1779
+ .studio-curve-shade.is-base {
1780
+ stroke-width: 1.25;
1781
+ }
1782
+ .studio-curve-shade.is-pinned {
1783
+ stroke: #7655d7;
1784
+ stroke-width: 2;
1785
+ }
1786
+ .studio-curve-editor :is(.studio-curve-handle, .studio-curve-end, .studio-curve-shade):focus-visible {
1787
+ stroke: #393939;
1788
+ stroke-width: 2.5;
1789
+ }
1790
+ .studio-curve-label {
1791
+ fill: #707070;
1792
+ font-size: 10px;
1793
+ pointer-events: none;
1794
+ }
1795
+ .studio-shades-hint {
1796
+ margin: 0;
1797
+ color: #9a9a9a;
1798
+ font-size: 10px;
1799
+ }
1800
+ .studio-shades-heading {
1801
+ display: block;
1802
+ margin: 2px 0 4px;
1803
+ color: #9a9a9a;
1804
+ font-size: 10px;
1805
+ }
1806
+ .studio-slider-fields {
1807
+ display: grid;
1808
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1809
+ gap: 4px;
1810
+ }
1811
+ /* Slider field: the whole 24px field is the slider, filled from its origin to the value. */
1812
+ .studio-slider-field {
1813
+ position: relative;
1814
+ display: flex;
1815
+ align-items: center;
1816
+ justify-content: space-between;
1817
+ gap: 6px;
1818
+ height: 24px;
1819
+ padding: 0 8px;
1820
+ overflow: hidden;
1644
1821
  border-radius: 5px;
1822
+ background: #f0f0f0;
1645
1823
  font-size: 10px;
1646
- line-height: 1.3;
1824
+ cursor: ew-resize;
1647
1825
  }
1648
- .studio-shades-actions button:not(.studio-primary) {
1649
- border: 1px solid #e7e7e7;
1650
- background: #fff;
1651
- color: #717171;
1826
+ .studio-slider-field::before {
1827
+ content: "";
1828
+ position: absolute;
1829
+ top: 0;
1830
+ bottom: 0;
1831
+ left: var(--from);
1832
+ width: calc(var(--to) - var(--from));
1833
+ background: #dcdcdc;
1834
+ pointer-events: none;
1652
1835
  }
1653
- .studio-shades-actions .studio-primary:disabled {
1654
- opacity: 0.5;
1836
+ .studio-slider-field:hover {
1837
+ background: #e9e9e9;
1838
+ }
1839
+ .studio-slider-field:has(input:focus-visible) {
1840
+ outline: 1px solid #393939;
1841
+ outline-offset: -1px;
1842
+ }
1843
+ .studio-slider-field:has(input:disabled) {
1844
+ opacity: 0.45;
1845
+ cursor: default;
1846
+ }
1847
+ .studio-slider-field > span,
1848
+ .studio-slider-field > output {
1849
+ position: relative;
1850
+ overflow: hidden;
1851
+ text-overflow: ellipsis;
1852
+ white-space: nowrap;
1853
+ pointer-events: none;
1854
+ }
1855
+ .studio-slider-field > span {
1856
+ color: #555;
1857
+ }
1858
+ .studio-slider-field > output {
1859
+ flex-shrink: 0;
1860
+ color: #393939;
1861
+ font-variant-numeric: tabular-nums;
1862
+ }
1863
+ .studio-slider-field > input {
1864
+ position: absolute;
1865
+ inset: 0;
1866
+ width: 100%;
1867
+ height: 100%;
1868
+ margin: 0;
1869
+ opacity: 0;
1870
+ cursor: inherit;
1655
1871
  }
1656
1872
  /* Global rounding stepper at the top of the Radius section. */
1657
1873
  .studio-rounding {
@@ -3692,3 +3908,297 @@
3692
3908
  outline: 2px solid #555;
3693
3909
  outline-offset: 1px;
3694
3910
  }
3911
+
3912
+ /* Inspector pieces shared by the App Canvas and the live-page inspector. */
3913
+ .povio-canvas-inspect-hint {
3914
+ margin: 8px 12px;
3915
+ color: #77717e;
3916
+ font-size: 10px;
3917
+ line-height: 16px;
3918
+ }
3919
+ .povio-canvas-auto-spacing .studio-measure-label {
3920
+ display: none;
3921
+ }
3922
+ .povio-canvas-spacing-value {
3923
+ position: absolute;
3924
+ transform: translate(-50%, -50%);
3925
+ border-radius: 3px;
3926
+ background: #24202de6;
3927
+ color: white;
3928
+ padding: 1px 4px;
3929
+ white-space: nowrap;
3930
+ font:
3931
+ 10px/1.3 "Inter Variable",
3932
+ Inter,
3933
+ sans-serif;
3934
+ pointer-events: none;
3935
+ }
3936
+
3937
+ /*
3938
+ * The live-page inspector: a sidebar on the window's right edge. The page gives up that width while inspecting, so the
3939
+ * sidebar sits beside it, like the App Canvas inspector, rather than covering it.
3940
+ */
3941
+ .studio-inspector-panel.studio-page-inspector {
3942
+ position: fixed;
3943
+ top: 0;
3944
+ right: 0;
3945
+ bottom: 0;
3946
+ z-index: 999;
3947
+ width: 272px;
3948
+ height: auto;
3949
+ border: 0;
3950
+ border-left: 1px solid #e8e8eb;
3951
+ border-radius: 0;
3952
+ box-shadow: none;
3953
+ }
3954
+ html.studio-page-inspecting body {
3955
+ margin-right: 272px !important;
3956
+ }
3957
+ .studio-page-inspection {
3958
+ position: fixed;
3959
+ inset: 0;
3960
+ z-index: 998;
3961
+ overflow: visible;
3962
+ pointer-events: none;
3963
+ }
3964
+ /* Crosshair over the page while inspecting; the inspector, configurator and host tools keep their own cursors. */
3965
+ .studio-page-inspecting body,
3966
+ .studio-page-inspecting
3967
+ body
3968
+ *:not([data-povio-inspector-ignore], [data-povio-inspector-ignore] *, .studio-overlay, .studio-overlay *) {
3969
+ cursor: crosshair !important;
3970
+ }
3971
+ /* Cursor inherits, so each tool resets it at its root; its own controls then keep their usual cursors. */
3972
+ .studio-page-inspecting :is([data-povio-inspector-ignore], .studio-overlay) {
3973
+ cursor: default;
3974
+ }
3975
+
3976
+ /* Fontsource browsing stays compact even when the preview theme changes. */
3977
+ .studio-fontsource {
3978
+ display: flex;
3979
+ align-items: center;
3980
+ gap: 8px;
3981
+ padding-top: 8px;
3982
+ }
3983
+ .studio-fontsource-notice {
3984
+ color: #777;
3985
+ font-size: 10px;
3986
+ }
3987
+ .studio-fontsource-popover {
3988
+ width: min(340px, calc(100vw - 24px));
3989
+ max-height: min(680px, calc(100dvh - 24px));
3990
+ overflow: auto;
3991
+ padding: 12px;
3992
+ border: 1px solid #e5e5e5;
3993
+ border-radius: 10px;
3994
+ background: #fff;
3995
+ color: #303036;
3996
+ box-shadow: 0 8px 32px #24202d26;
3997
+ font:
3998
+ 11px/1.4 Inter,
3999
+ system-ui,
4000
+ sans-serif;
4001
+ z-index: 10020;
4002
+ }
4003
+ .studio-fontsource-popover * {
4004
+ box-sizing: border-box;
4005
+ }
4006
+ .studio-fontsource-popover [role="dialog"] {
4007
+ outline: none;
4008
+ }
4009
+ .studio-fontsource-popover header {
4010
+ display: flex;
4011
+ align-items: center;
4012
+ justify-content: space-between;
4013
+ gap: 8px;
4014
+ margin-bottom: 10px;
4015
+ }
4016
+ .studio-fontsource-popover h2 {
4017
+ margin: 0;
4018
+ font-size: 12px;
4019
+ font-weight: 600;
4020
+ }
4021
+ .studio-fontsource-popover button,
4022
+ .studio-fontsource-popover input,
4023
+ .studio-fontsource-popover select {
4024
+ font: inherit;
4025
+ color: inherit;
4026
+ }
4027
+ .studio-fontsource-popover button {
4028
+ border: 1px solid #e5e5e5;
4029
+ border-radius: 5px;
4030
+ padding: 4px 7px;
4031
+ background: #fff;
4032
+ cursor: pointer;
4033
+ }
4034
+ .studio-fontsource-popover button:disabled {
4035
+ opacity: 0.5;
4036
+ cursor: default;
4037
+ }
4038
+ .studio-fontsource-popover header button {
4039
+ display: grid;
4040
+ place-items: center;
4041
+ padding: 3px;
4042
+ border: 0;
4043
+ }
4044
+ .studio-fontsource-popover input:not([type="checkbox"]),
4045
+ .studio-fontsource-popover select {
4046
+ min-width: 0;
4047
+ width: 100%;
4048
+ border: 1px solid #e5e5e5;
4049
+ border-radius: 5px;
4050
+ padding: 6px 7px;
4051
+ background: #fafafa;
4052
+ }
4053
+ .studio-fontsource-popover :focus-visible {
4054
+ outline: 2px solid #7655d7;
4055
+ outline-offset: 1px;
4056
+ }
4057
+ .studio-fontsource-search {
4058
+ position: relative;
4059
+ display: flex;
4060
+ align-items: center;
4061
+ }
4062
+ .studio-fontsource-search svg {
4063
+ position: absolute;
4064
+ left: 8px;
4065
+ color: #888;
4066
+ }
4067
+ .studio-fontsource-popover .studio-fontsource-search input {
4068
+ padding-left: 27px;
4069
+ }
4070
+ .studio-fontsource-filters {
4071
+ display: flex;
4072
+ align-items: center;
4073
+ gap: 8px;
4074
+ margin: 8px 0;
4075
+ }
4076
+ .studio-fontsource-filters select {
4077
+ flex: 1;
4078
+ }
4079
+ .studio-fontsource-filters label {
4080
+ display: flex;
4081
+ align-items: center;
4082
+ gap: 4px;
4083
+ white-space: nowrap;
4084
+ }
4085
+ .studio-fontsource-filters input {
4086
+ margin: 0;
4087
+ accent-color: #7655d7;
4088
+ }
4089
+ .studio-fontsource-count {
4090
+ display: block;
4091
+ margin: 8px 0 3px;
4092
+ font-size: 10px;
4093
+ color: #888;
4094
+ }
4095
+ .studio-fontsource-list {
4096
+ display: grid;
4097
+ gap: 2px;
4098
+ max-height: 180px;
4099
+ overflow: auto;
4100
+ padding: 3px;
4101
+ margin-inline: -3px;
4102
+ }
4103
+ .studio-fontsource-list button {
4104
+ display: grid;
4105
+ grid-template-columns: 1fr auto;
4106
+ align-items: center;
4107
+ text-align: left;
4108
+ border-color: transparent;
4109
+ padding: 5px 7px;
4110
+ }
4111
+ .studio-fontsource-list small {
4112
+ grid-column: 1;
4113
+ color: #888;
4114
+ font-size: 9px;
4115
+ }
4116
+ .studio-fontsource-list svg {
4117
+ grid-row: 1 / span 2;
4118
+ grid-column: 2;
4119
+ }
4120
+ .studio-fontsource-list button:hover {
4121
+ background: #f6f4fa;
4122
+ }
4123
+ .studio-fontsource-list button[aria-pressed="true"] {
4124
+ color: #6540c2;
4125
+ background: #eee8ff;
4126
+ }
4127
+ .studio-fontsource-preview {
4128
+ border-top: 1px solid #eee;
4129
+ margin-top: 10px;
4130
+ padding-top: 10px;
4131
+ }
4132
+ .studio-fontsource-preview > strong {
4133
+ display: block;
4134
+ margin-bottom: 6px;
4135
+ }
4136
+ .studio-fontsource-sample {
4137
+ margin: 10px 0;
4138
+ font-size: 26px;
4139
+ line-height: 1.4;
4140
+ overflow-wrap: anywhere;
4141
+ }
4142
+ .studio-fontsource-preview > [role="status"] {
4143
+ color: #888;
4144
+ font-size: 10px;
4145
+ }
4146
+ .studio-fontsource-role {
4147
+ display: flex;
4148
+ align-items: center;
4149
+ gap: 8px;
4150
+ margin: 8px 0;
4151
+ }
4152
+ .studio-fontsource-role select {
4153
+ flex: 1;
4154
+ }
4155
+ .studio-fontsource-popover .studio-primary {
4156
+ width: 100%;
4157
+ background: #7655d7;
4158
+ border-color: #7655d7;
4159
+ color: white;
4160
+ }
4161
+ .studio-fontsource-help {
4162
+ margin: 10px 0 0;
4163
+ color: #888;
4164
+ font-size: 10px;
4165
+ line-height: 1.5;
4166
+ }
4167
+ .studio-fontsource-popover [role="alert"] {
4168
+ color: #ad2937;
4169
+ }
4170
+ .studio-fontsource-popover [role="alert"] button {
4171
+ margin-left: 8px;
4172
+ }
4173
+ .studio-fontsource-popover .studio-fontsource-more {
4174
+ width: 100%;
4175
+ margin-top: 5px;
4176
+ font-size: 10px;
4177
+ }
4178
+
4179
+ /* The Semantic palette's light / dark toggle: the App Canvas dock's single sun / moon button, in the sub-tab row. */
4180
+ .studio-subtabs-bar .studio-theme-toggle {
4181
+ display: grid;
4182
+ flex-shrink: 0;
4183
+ place-items: center;
4184
+ /* No taller than the tab labels, so the row (and the active tab's underline) keeps its height. */
4185
+ width: 22px;
4186
+ height: 18px;
4187
+ margin: 0 0 2px auto;
4188
+ padding: 0;
4189
+ border: 0;
4190
+ border-radius: 4px;
4191
+ background: transparent;
4192
+ color: #45454d;
4193
+ cursor: pointer;
4194
+ }
4195
+ .studio-subtabs-bar .studio-theme-toggle:hover {
4196
+ background: #f1f1f4;
4197
+ }
4198
+ .studio-subtabs-bar .studio-theme-toggle:focus-visible {
4199
+ outline: 2px solid #7655d7;
4200
+ outline-offset: -2px;
4201
+ }
4202
+ .studio-subtabs-bar .studio-theme-toggle + .studio-toggle-all {
4203
+ margin-left: 4px;
4204
+ }
@@ -1,2 +1,2 @@
1
- import { t as DatePicker } from "../DatePicker-xDEqzNJv.js";
1
+ import { t as DatePicker } from "../DatePicker-CAzuZRmd.js";
2
2
  export { DatePicker };
@@ -1,2 +1,2 @@
1
- import { t as DateRangePicker } from "../DateRangePicker-DxuVhRaf.js";
1
+ import { t as DateRangePicker } from "../DateRangePicker-X3mBhfmL.js";
2
2
  export { DateRangePicker };
@@ -1,2 +1,2 @@
1
- import { t as DateTimePicker } from "../DateTimePicker-4N1Pka07.js";
1
+ import { t as DateTimePicker } from "../DateTimePicker-EtmGtoRe.js";
2
2
  export { DateTimePicker };
@@ -1,3 +1,3 @@
1
1
  import { i as useFormValue, n as useForm, r as useFormState } from "../form.binding-CG1RPv6o.js";
2
- import { r as Form, t as useFormAutosave } from "../useFormAutosave-pmh35PXp.js";
2
+ import { r as Form, t as useFormAutosave } from "../useFormAutosave-CxqZAJAB.js";
3
3
  export { Form, useForm, useFormAutosave, useFormState, useFormValue };
@@ -1,3 +1,3 @@
1
1
  import { t as dynamicInputs } from "../dynamicInputs-CRMWIpHA.js";
2
- import { t as Inputs } from "../Inputs-D1aE_J9f.js";
2
+ import { t as Inputs } from "../Inputs-Bd2nRNqk.js";
3
3
  export { Inputs, dynamicInputs };
@@ -1,2 +1,2 @@
1
- import { t as NumberRangeInput } from "../NumberRangeInput-Bzfe-RlV.js";
1
+ import { t as NumberRangeInput } from "../NumberRangeInput-TkPXiWV3.js";
2
2
  export { NumberRangeInput };
@@ -1,2 +1,2 @@
1
- import { t as RichTextEditor } from "../RichTextEditor-Bd7F5D8f.js";
1
+ import { t as RichTextEditor } from "../RichTextEditor-DiaPcBUM.js";
2
2
  export { RichTextEditor };
@@ -1,2 +1,2 @@
1
- import { t as Select } from "../Select-CgIhoWgk.js";
1
+ import { t as Select } from "../Select-tNlFSbAC.js";
2
2
  export { Select };
@@ -1,3 +1,3 @@
1
- import { i as CellText, n as useTableNav, r as HeaderText, t as Table } from "../Table-piX1SWvN.js";
2
- import { a as PaginatedTable, i as dynamicColumns, n as useSorting, o as InfiniteTable, r as usePagination, s as ColumnConfigModal, t as useTableColumnConfig } from "../useTableColumnConfig-CNJ_ZvIN.js";
1
+ import { i as CellText, n as useTableNav, r as HeaderText, t as Table } from "../Table-CgG02oHQ.js";
2
+ import { a as PaginatedTable, i as dynamicColumns, n as useSorting, o as InfiniteTable, r as usePagination, s as ColumnConfigModal, t as useTableColumnConfig } from "../useTableColumnConfig-BnbKElno.js";
3
3
  export { CellText, ColumnConfigModal, HeaderText, InfiniteTable, PaginatedTable, Table, dynamicColumns, usePagination, useSorting, useTableColumnConfig, useTableNav };
@@ -1,2 +1,2 @@
1
- import { t as TextArea } from "../TextArea-uPffb457.js";
1
+ import { t as TextArea } from "../TextArea-DuvFUjts.js";
2
2
  export { TextArea };
@@ -1,2 +1,2 @@
1
- import { t as TimePicker } from "../TimePicker-DN-i98z5.js";
1
+ import { t as TimePicker } from "../TimePicker-CBkiE-Yq.js";
2
2
  export { TimePicker };