@salemcobalt/ui 0.2.0-rc.7 → 0.2.0-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -23
- package/dist/index.d.ts +196 -28
- package/dist/index.js +812 -9
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1925 -99
- package/package.json +6 -5
package/dist/styles.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* @salemcobalt/ui 0.2.0-rc.
|
|
1
|
+
/* @salemcobalt/ui 0.2.0-rc.9 — requires @salemcobalt/tokens/css. */
|
|
2
2
|
@layer sc {
|
|
3
3
|
/* ---- base.css ---- */
|
|
4
4
|
/* Shared: focus ring, reduced motion. Component files follow. */
|
|
@@ -306,6 +306,10 @@
|
|
|
306
306
|
.sc-button[data-loading] > .sc-button__label {
|
|
307
307
|
opacity: 0;
|
|
308
308
|
}
|
|
309
|
+
/* Its own line box, so descenders sit inside the label (the button sets line-height: 1 for centring). */
|
|
310
|
+
.sc-button__label {
|
|
311
|
+
line-height: var(--sc-font-line-height-ui);
|
|
312
|
+
}
|
|
309
313
|
.sc-button__icon {
|
|
310
314
|
display: inline-flex;
|
|
311
315
|
inline-size: 1.125em;
|
|
@@ -325,6 +329,44 @@
|
|
|
325
329
|
border-inline-end-color: transparent;
|
|
326
330
|
animation: sc-spin 0.8s linear infinite;
|
|
327
331
|
}
|
|
332
|
+
/* Icon-only: square, the label kept for assistive tech only, no shortcut hint. Same element, so focus and
|
|
333
|
+
any open tooltip survive the switch. */
|
|
334
|
+
.sc-button[data-icon-only] {
|
|
335
|
+
inline-size: var(--_h);
|
|
336
|
+
padding-inline: 0;
|
|
337
|
+
}
|
|
338
|
+
.sc-button[data-icon-only] > .sc-button__label {
|
|
339
|
+
position: absolute;
|
|
340
|
+
inline-size: 1px;
|
|
341
|
+
block-size: 1px;
|
|
342
|
+
overflow: hidden;
|
|
343
|
+
clip-path: inset(50%);
|
|
344
|
+
white-space: nowrap;
|
|
345
|
+
}
|
|
346
|
+
.sc-button[data-icon-only] > .sc-button__shortcut {
|
|
347
|
+
display: none;
|
|
348
|
+
}
|
|
349
|
+
/* A shortcut hint after the label: a Kbd tinted to the button's own colour, so it reads on every variant. */
|
|
350
|
+
.sc-button__shortcut {
|
|
351
|
+
display: inline-flex;
|
|
352
|
+
align-items: center;
|
|
353
|
+
gap: var(--sc-spacing-3xs);
|
|
354
|
+
flex: none;
|
|
355
|
+
margin-inline-start: var(--sc-spacing-3xs);
|
|
356
|
+
}
|
|
357
|
+
.sc-button__shortcut .sc-kbd {
|
|
358
|
+
background: transparent;
|
|
359
|
+
color: inherit;
|
|
360
|
+
border-color: currentColor;
|
|
361
|
+
box-shadow: none;
|
|
362
|
+
opacity: 0.72;
|
|
363
|
+
}
|
|
364
|
+
.sc-button__shortcut .sc-kbd-group {
|
|
365
|
+
color: inherit;
|
|
366
|
+
}
|
|
367
|
+
.sc-button[data-loading] > .sc-button__shortcut {
|
|
368
|
+
opacity: 0;
|
|
369
|
+
}
|
|
328
370
|
@keyframes sc-spin {
|
|
329
371
|
to {
|
|
330
372
|
rotate: 1turn;
|
|
@@ -361,6 +403,40 @@
|
|
|
361
403
|
.sc-icon-button[data-loading] > .sc-button__icon {
|
|
362
404
|
opacity: 0;
|
|
363
405
|
}
|
|
406
|
+
/* Status dot, top-left: icons such as the broom own the top-right and fill the bottom. Physical corner on
|
|
407
|
+
purpose, because the glyph does not mirror in RTL either. */
|
|
408
|
+
.sc-icon-button__dot {
|
|
409
|
+
--_dot: var(--sc-color-accent-default);
|
|
410
|
+
position: absolute;
|
|
411
|
+
inset: var(--sc-spacing-2xs) auto auto var(--sc-spacing-2xs);
|
|
412
|
+
inline-size: 8px;
|
|
413
|
+
block-size: 8px;
|
|
414
|
+
border-radius: var(--sc-radius-full);
|
|
415
|
+
background: var(--_dot);
|
|
416
|
+
box-shadow: 0 0 0 var(--sc-border-width-focus)
|
|
417
|
+
var(--sc-icon-button-dot-ring, var(--sc-color-surface-default));
|
|
418
|
+
pointer-events: none;
|
|
419
|
+
}
|
|
420
|
+
.sc-icon-button[data-size='sm'] > .sc-icon-button__dot {
|
|
421
|
+
inset: var(--sc-spacing-3xs) auto auto var(--sc-spacing-3xs);
|
|
422
|
+
inline-size: 6px;
|
|
423
|
+
block-size: 6px;
|
|
424
|
+
}
|
|
425
|
+
.sc-icon-button__dot[data-tone='neutral'] {
|
|
426
|
+
--_dot: var(--sc-color-text-subtle);
|
|
427
|
+
}
|
|
428
|
+
.sc-icon-button__dot[data-tone='success'] {
|
|
429
|
+
--_dot: var(--sc-color-success-solid);
|
|
430
|
+
}
|
|
431
|
+
.sc-icon-button__dot[data-tone='warning'] {
|
|
432
|
+
--_dot: var(--sc-color-warning-solid);
|
|
433
|
+
}
|
|
434
|
+
.sc-icon-button__dot[data-tone='danger'] {
|
|
435
|
+
--_dot: var(--sc-color-danger-solid);
|
|
436
|
+
}
|
|
437
|
+
.sc-icon-button__dot[data-tone='info'] {
|
|
438
|
+
--_dot: var(--sc-color-info-solid);
|
|
439
|
+
}
|
|
364
440
|
.sc-button[data-popup-open] {
|
|
365
441
|
background: var(--sc-color-surface-active);
|
|
366
442
|
}
|
|
@@ -1703,6 +1779,50 @@
|
|
|
1703
1779
|
.sc-tabs__panel[data-hidden] {
|
|
1704
1780
|
display: none;
|
|
1705
1781
|
}
|
|
1782
|
+
/* Segmented: a quiet control. Sunken track, the active tab raised on `surface-default` by the sliding
|
|
1783
|
+
indicator, no accent colour; counts are plain muted numbers
|
|
1784
|
+
(`text-muted`, not `text-subtle`, which fails AA on the sunken track). */
|
|
1785
|
+
.sc-tabs__list[data-variant='segmented'] {
|
|
1786
|
+
display: inline-flex;
|
|
1787
|
+
align-self: flex-start;
|
|
1788
|
+
max-inline-size: 100%;
|
|
1789
|
+
gap: var(--sc-spacing-3xs);
|
|
1790
|
+
padding: var(--sc-spacing-3xs);
|
|
1791
|
+
border-block-end: 0;
|
|
1792
|
+
border-radius: var(--sc-radius-md);
|
|
1793
|
+
background: var(--sc-color-surface-sunken);
|
|
1794
|
+
isolation: isolate;
|
|
1795
|
+
}
|
|
1796
|
+
.sc-tabs__list[data-variant='segmented'][data-fill] {
|
|
1797
|
+
display: flex;
|
|
1798
|
+
align-self: stretch;
|
|
1799
|
+
}
|
|
1800
|
+
.sc-tabs__list[data-variant='segmented'] > .sc-tabs__tab {
|
|
1801
|
+
position: relative;
|
|
1802
|
+
z-index: 1;
|
|
1803
|
+
block-size: var(--sc-size-control-sm);
|
|
1804
|
+
padding-inline: var(--sc-spacing-sm);
|
|
1805
|
+
border-radius: var(--sc-radius-sm);
|
|
1806
|
+
}
|
|
1807
|
+
.sc-tabs__list[data-variant='segmented'] > .sc-tabs__tab:hover:not([data-disabled]) {
|
|
1808
|
+
background: transparent;
|
|
1809
|
+
}
|
|
1810
|
+
.sc-tabs__list[data-variant='segmented'] .sc-tabs__count,
|
|
1811
|
+
.sc-tabs__list[data-variant='segmented'] > .sc-tabs__tab[data-active] > .sc-tabs__count {
|
|
1812
|
+
padding-inline: 0;
|
|
1813
|
+
background: transparent;
|
|
1814
|
+
color: var(--sc-color-text-muted);
|
|
1815
|
+
font-weight: var(--sc-font-weight-regular);
|
|
1816
|
+
}
|
|
1817
|
+
.sc-tabs__list[data-variant='segmented'] > .sc-tabs__indicator {
|
|
1818
|
+
inset-block: 0 auto;
|
|
1819
|
+
z-index: 0;
|
|
1820
|
+
block-size: var(--active-tab-height);
|
|
1821
|
+
translate: var(--active-tab-left) var(--active-tab-top);
|
|
1822
|
+
background: var(--sc-color-surface-default);
|
|
1823
|
+
border-radius: var(--sc-radius-sm);
|
|
1824
|
+
box-shadow: var(--sc-elevation-1);
|
|
1825
|
+
}
|
|
1706
1826
|
@media (prefers-reduced-motion: reduce) {
|
|
1707
1827
|
.sc-tabs__tab,
|
|
1708
1828
|
.sc-tabs__indicator {
|
|
@@ -1710,139 +1830,573 @@
|
|
|
1710
1830
|
}
|
|
1711
1831
|
}
|
|
1712
1832
|
|
|
1713
|
-
/* ----
|
|
1714
|
-
/* ----
|
|
1715
|
-
|
|
1833
|
+
/* ---- priority-nav.css ---- */
|
|
1834
|
+
/* ---- PriorityNav ----------------------------------------------------------- */
|
|
1835
|
+
/* Takes the free space in a flex header (brand · nav · actions) without sizing to its own links, so the
|
|
1836
|
+
row can grow back after collapsing. In a grid, give it a `minmax(0, 1fr)` track. */
|
|
1837
|
+
.sc-priority-nav {
|
|
1838
|
+
position: relative;
|
|
1839
|
+
flex: 1 1 0%;
|
|
1840
|
+
min-inline-size: 0;
|
|
1841
|
+
/* The toggle goes icon-only when the nav itself is narrow (below), whatever the viewport. */
|
|
1842
|
+
container: sc-priority-nav / inline-size;
|
|
1843
|
+
font-family: var(--sc-font-family-sans);
|
|
1844
|
+
font-size: var(--sc-font-size-sm);
|
|
1845
|
+
}
|
|
1846
|
+
.sc-priority-nav__list {
|
|
1716
1847
|
display: flex;
|
|
1717
1848
|
flex-wrap: nowrap;
|
|
1718
1849
|
align-items: center;
|
|
1719
|
-
gap: var(--sc-spacing-
|
|
1850
|
+
gap: var(--sc-spacing-2xs);
|
|
1851
|
+
min-inline-size: 0;
|
|
1852
|
+
margin: 0;
|
|
1853
|
+
padding: 0;
|
|
1854
|
+
list-style: none;
|
|
1855
|
+
}
|
|
1856
|
+
.sc-priority-nav__item,
|
|
1857
|
+
.sc-priority-nav__more {
|
|
1858
|
+
flex: none;
|
|
1859
|
+
display: flex;
|
|
1860
|
+
}
|
|
1861
|
+
.sc-priority-nav__more[hidden] {
|
|
1862
|
+
display: none;
|
|
1863
|
+
}
|
|
1864
|
+
/* Once measured, the current link is the one item that may shrink (ellipsis) when the row cannot hold it
|
|
1865
|
+
and "More". While measuring it keeps its full width like the others. */
|
|
1866
|
+
.sc-priority-nav:not([data-measuring]) .sc-priority-nav__item[data-current] {
|
|
1867
|
+
flex: 0 1 auto;
|
|
1720
1868
|
min-inline-size: 0;
|
|
1869
|
+
}
|
|
1870
|
+
/* Before measurement (server HTML, pre-hydration, no JS): one line that never wraps. With JS the line
|
|
1871
|
+
clips for the few frames before hydration measures it; without JS it scrolls sideways (below). */
|
|
1872
|
+
.sc-priority-nav[data-measuring] > .sc-priority-nav__list {
|
|
1721
1873
|
overflow-x: auto;
|
|
1874
|
+
overflow-y: hidden;
|
|
1722
1875
|
scrollbar-width: none;
|
|
1723
1876
|
}
|
|
1724
|
-
.sc-
|
|
1725
|
-
|
|
1726
|
-
|
|
1877
|
+
.sc-priority-nav[data-measuring] .sc-priority-nav__more[hidden] {
|
|
1878
|
+
display: flex;
|
|
1879
|
+
position: absolute;
|
|
1880
|
+
visibility: hidden;
|
|
1881
|
+
pointer-events: none;
|
|
1727
1882
|
}
|
|
1728
|
-
|
|
1883
|
+
@media (scripting: none) {
|
|
1884
|
+
.sc-priority-nav[data-measuring] > .sc-priority-nav__list {
|
|
1885
|
+
scrollbar-width: thin;
|
|
1886
|
+
}
|
|
1887
|
+
}
|
|
1888
|
+
.sc-priority-nav__link,
|
|
1889
|
+
.sc-priority-nav__toggle {
|
|
1729
1890
|
display: inline-flex;
|
|
1730
|
-
flex: none;
|
|
1731
1891
|
align-items: center;
|
|
1732
1892
|
gap: var(--sc-spacing-2xs);
|
|
1893
|
+
box-sizing: border-box;
|
|
1894
|
+
block-size: var(--sc-size-control-sm);
|
|
1895
|
+
margin: 0;
|
|
1896
|
+
padding-inline: var(--sc-spacing-sm);
|
|
1897
|
+
border: 0;
|
|
1898
|
+
border-radius: var(--sc-radius-sm);
|
|
1899
|
+
background: transparent;
|
|
1900
|
+
color: var(--sc-color-text-muted);
|
|
1901
|
+
font: inherit;
|
|
1902
|
+
font-weight: var(--sc-font-weight-medium);
|
|
1903
|
+
line-height: var(--sc-font-line-height-ui);
|
|
1904
|
+
white-space: nowrap;
|
|
1905
|
+
text-decoration: none;
|
|
1906
|
+
cursor: pointer;
|
|
1907
|
+
user-select: none;
|
|
1908
|
+
transition:
|
|
1909
|
+
background-color var(--sc-duration-fast) var(--sc-ease-standard),
|
|
1910
|
+
color var(--sc-duration-fast) var(--sc-ease-standard);
|
|
1733
1911
|
}
|
|
1734
|
-
.sc-
|
|
1735
|
-
|
|
1736
|
-
inline-size: var(--sc-border-width-hairline);
|
|
1737
|
-
block-size: var(--sc-size-icon-lg);
|
|
1738
|
-
margin-inline: var(--sc-spacing-2xs);
|
|
1739
|
-
background: var(--sc-color-border-default);
|
|
1740
|
-
}
|
|
1741
|
-
.sc-toolbar[data-orientation='vertical'] {
|
|
1742
|
-
flex-direction: column;
|
|
1743
|
-
align-items: stretch;
|
|
1744
|
-
}
|
|
1745
|
-
.sc-toolbar[data-orientation='vertical'] > .sc-toolbar__separator {
|
|
1746
|
-
inline-size: auto;
|
|
1747
|
-
block-size: var(--sc-border-width-hairline);
|
|
1748
|
-
margin-inline: 0;
|
|
1749
|
-
margin-block: var(--sc-spacing-2xs);
|
|
1750
|
-
}
|
|
1751
|
-
.sc-toolbar__spacer {
|
|
1752
|
-
flex: 1 1 0;
|
|
1753
|
-
min-inline-size: var(--sc-spacing-xs);
|
|
1912
|
+
.sc-priority-nav__link {
|
|
1913
|
+
min-inline-size: 0;
|
|
1754
1914
|
}
|
|
1755
|
-
.sc-
|
|
1756
|
-
|
|
1757
|
-
|
|
1915
|
+
.sc-priority-nav__label {
|
|
1916
|
+
min-inline-size: 0;
|
|
1917
|
+
overflow: hidden;
|
|
1918
|
+
text-overflow: ellipsis;
|
|
1758
1919
|
}
|
|
1759
|
-
.sc-
|
|
1760
|
-
.sc-
|
|
1761
|
-
|
|
1920
|
+
.sc-priority-nav__link:hover,
|
|
1921
|
+
.sc-priority-nav__toggle:hover {
|
|
1922
|
+
background: var(--sc-color-surface-hover);
|
|
1923
|
+
color: var(--sc-color-text-default);
|
|
1762
1924
|
}
|
|
1763
|
-
.sc-
|
|
1764
|
-
.sc-
|
|
1765
|
-
|
|
1925
|
+
.sc-priority-nav__link:active,
|
|
1926
|
+
.sc-priority-nav__toggle:active {
|
|
1927
|
+
background: var(--sc-color-surface-active);
|
|
1766
1928
|
}
|
|
1767
|
-
.sc-
|
|
1768
|
-
|
|
1769
|
-
|
|
1929
|
+
.sc-priority-nav__link[aria-current='page'] {
|
|
1930
|
+
color: var(--sc-color-text-default);
|
|
1931
|
+
box-shadow: inset 0 calc(-1 * var(--sc-border-width-focus)) 0 var(--sc-color-accent-default);
|
|
1932
|
+
border-end-start-radius: 0;
|
|
1933
|
+
border-end-end-radius: 0;
|
|
1770
1934
|
}
|
|
1771
|
-
.sc-
|
|
1772
|
-
.sc-
|
|
1773
|
-
|
|
1935
|
+
.sc-priority-nav__link:focus-visible,
|
|
1936
|
+
.sc-priority-nav__toggle:focus-visible {
|
|
1937
|
+
outline: var(--sc-border-width-focus) solid var(--sc-color-border-focus);
|
|
1938
|
+
outline-offset: calc(-1 * var(--sc-border-width-focus));
|
|
1774
1939
|
}
|
|
1775
|
-
.sc-
|
|
1776
|
-
|
|
1777
|
-
|
|
1940
|
+
.sc-priority-nav__toggle[aria-expanded='true'] {
|
|
1941
|
+
background: var(--sc-color-surface-active);
|
|
1942
|
+
color: var(--sc-color-text-default);
|
|
1778
1943
|
}
|
|
1779
|
-
.sc-
|
|
1780
|
-
|
|
1781
|
-
gap: var(--sc-spacing-lg);
|
|
1944
|
+
.sc-priority-nav__ellipsis {
|
|
1945
|
+
display: none;
|
|
1782
1946
|
}
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1947
|
+
@container sc-priority-nav (inline-size <= 400px) {
|
|
1948
|
+
.sc-priority-nav__toggle {
|
|
1949
|
+
justify-content: center;
|
|
1950
|
+
inline-size: var(--sc-size-control-sm);
|
|
1951
|
+
padding-inline: 0;
|
|
1952
|
+
}
|
|
1953
|
+
.sc-priority-nav__ellipsis {
|
|
1954
|
+
display: inline-block;
|
|
1955
|
+
}
|
|
1956
|
+
.sc-priority-nav__chevron {
|
|
1957
|
+
display: none;
|
|
1958
|
+
}
|
|
1959
|
+
/* Visually hidden, still part of the accessible name ("More, 3 links"). */
|
|
1960
|
+
.sc-priority-nav__toggle-label {
|
|
1961
|
+
position: absolute;
|
|
1962
|
+
inline-size: 1px;
|
|
1963
|
+
block-size: 1px;
|
|
1964
|
+
overflow: hidden;
|
|
1965
|
+
clip-path: inset(50%);
|
|
1966
|
+
white-space: nowrap;
|
|
1967
|
+
}
|
|
1786
1968
|
}
|
|
1787
|
-
.sc-
|
|
1788
|
-
|
|
1789
|
-
gap: var(--sc-spacing-2xl);
|
|
1969
|
+
.sc-priority-nav__chevron {
|
|
1970
|
+
transition: rotate var(--sc-duration-fast) var(--sc-ease-standard);
|
|
1790
1971
|
}
|
|
1791
|
-
.sc-
|
|
1792
|
-
|
|
1793
|
-
gap: var(--sc-spacing-3xl);
|
|
1972
|
+
.sc-priority-nav__toggle[aria-expanded='true'] > .sc-priority-nav__chevron {
|
|
1973
|
+
rotate: 180deg;
|
|
1794
1974
|
}
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1975
|
+
/* The panel: Menu's surface, a list of the collapsed links. While open it is in the top layer (Popover
|
|
1976
|
+
API), so no ancestor's overflow clips it; it is fixed-positioned against the viewport either way. */
|
|
1977
|
+
.sc-priority-nav__toggle {
|
|
1978
|
+
anchor-name: var(--_anchor);
|
|
1798
1979
|
}
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
--_fg: var(--sc-color-info-text);
|
|
1980
|
+
.sc-priority-nav__panel {
|
|
1981
|
+
--_gutter: var(--sc-spacing-md);
|
|
1982
|
+
position: fixed;
|
|
1983
|
+
inset: auto;
|
|
1984
|
+
z-index: var(--sc-z-dropdown);
|
|
1805
1985
|
display: flex;
|
|
1806
|
-
|
|
1807
|
-
gap: var(--sc-spacing-xs);
|
|
1986
|
+
flex-direction: column;
|
|
1808
1987
|
box-sizing: border-box;
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1988
|
+
inline-size: max-content;
|
|
1989
|
+
min-inline-size: min(180px, 100vw - 2 * var(--_gutter));
|
|
1990
|
+
max-inline-size: min(320px, 100vw - 2 * var(--_gutter));
|
|
1991
|
+
max-block-size: min(28rem, 100dvh - 2 * var(--_gutter));
|
|
1992
|
+
overflow-y: auto;
|
|
1993
|
+
overscroll-behavior: contain;
|
|
1994
|
+
margin: 0;
|
|
1995
|
+
padding: var(--sc-spacing-2xs);
|
|
1996
|
+
list-style: none;
|
|
1997
|
+
border-radius: var(--sc-radius-lg);
|
|
1998
|
+
background: var(--sc-color-surface-raised);
|
|
1999
|
+
--sc-color-surface-hover: var(--sc-color-surface-raised-hover);
|
|
2000
|
+
--sc-color-surface-active: var(--sc-color-surface-raised-active);
|
|
2001
|
+
color: var(--sc-color-text-default);
|
|
2002
|
+
border: var(--sc-border-width-hairline) solid var(--sc-color-border-default);
|
|
2003
|
+
box-shadow: var(--sc-elevation-2);
|
|
1815
2004
|
font-family: var(--sc-font-family-sans);
|
|
1816
2005
|
font-size: var(--sc-font-size-sm);
|
|
1817
|
-
|
|
2006
|
+
transition:
|
|
2007
|
+
opacity var(--sc-duration-fast) var(--sc-ease-enter),
|
|
2008
|
+
translate var(--sc-duration-fast) var(--sc-ease-enter);
|
|
2009
|
+
}
|
|
2010
|
+
/* Anchored below the toggle, aligned to its inline-end edge; flips to its inline-start edge (and above
|
|
2011
|
+
it) when that would leave the viewport; when no edge fits, it spans the viewport row under the toggle,
|
|
2012
|
+
centred on it and kept a gutter from both edges. Without anchor positioning, JS sets left/top (place.ts). */
|
|
2013
|
+
@supports (anchor-name: --a) {
|
|
2014
|
+
.sc-priority-nav__panel {
|
|
2015
|
+
position-anchor: var(--_anchor);
|
|
2016
|
+
position-area: block-end span-inline-start;
|
|
2017
|
+
margin-block: var(--sc-spacing-2xs);
|
|
2018
|
+
/* Makes an option that ends closer than the gutter to the viewport edge count as overflowing. */
|
|
2019
|
+
margin-inline-start: var(--_gutter);
|
|
2020
|
+
position-try-fallbacks:
|
|
2021
|
+
flip-inline,
|
|
2022
|
+
flip-block,
|
|
2023
|
+
flip-block flip-inline,
|
|
2024
|
+
--sc-priority-nav-fit;
|
|
2025
|
+
}
|
|
1818
2026
|
}
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
2027
|
+
@position-try --sc-priority-nav-fit {
|
|
2028
|
+
position-area: block-end span-all;
|
|
2029
|
+
justify-self: anchor-center;
|
|
2030
|
+
margin-inline: var(--_gutter);
|
|
1822
2031
|
}
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
2032
|
+
@starting-style {
|
|
2033
|
+
.sc-priority-nav__panel {
|
|
2034
|
+
opacity: 0;
|
|
2035
|
+
translate: 0 calc(-1 * var(--sc-spacing-2xs));
|
|
2036
|
+
}
|
|
1826
2037
|
}
|
|
1827
|
-
.sc-
|
|
1828
|
-
|
|
1829
|
-
--_fg: var(--sc-color-danger-text);
|
|
2038
|
+
.sc-priority-nav__panel[hidden] {
|
|
2039
|
+
display: none;
|
|
1830
2040
|
}
|
|
1831
|
-
.sc-
|
|
1832
|
-
|
|
1833
|
-
|
|
2041
|
+
.sc-priority-nav__panel .sc-priority-nav__link {
|
|
2042
|
+
display: flex;
|
|
2043
|
+
inline-size: 100%;
|
|
2044
|
+
padding-inline: var(--sc-spacing-xs);
|
|
2045
|
+
color: var(--sc-color-text-default);
|
|
1834
2046
|
}
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
2047
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2048
|
+
.sc-priority-nav__link,
|
|
2049
|
+
.sc-priority-nav__toggle,
|
|
2050
|
+
.sc-priority-nav__chevron,
|
|
2051
|
+
.sc-priority-nav__panel {
|
|
2052
|
+
transition: none;
|
|
2053
|
+
}
|
|
1838
2054
|
}
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
2055
|
+
|
|
2056
|
+
/* ---- popover.css ---- */
|
|
2057
|
+
/* ---- Popover --------------------------------------------------------------- */
|
|
2058
|
+
.sc-popover__positioner {
|
|
2059
|
+
z-index: var(--sc-z-dropdown);
|
|
2060
|
+
outline: 0;
|
|
1843
2061
|
}
|
|
1844
|
-
.
|
|
1845
|
-
|
|
2062
|
+
/* Menu's surface: raised background, hairline border, large radius, elevation 2. */
|
|
2063
|
+
.sc-popover {
|
|
2064
|
+
position: relative;
|
|
2065
|
+
box-sizing: border-box;
|
|
2066
|
+
inline-size: max-content;
|
|
2067
|
+
max-inline-size: min(100vw - 2 * var(--sc-spacing-md), 360px);
|
|
2068
|
+
max-block-size: var(--available-height);
|
|
2069
|
+
overflow: auto;
|
|
2070
|
+
padding: var(--sc-spacing-md);
|
|
2071
|
+
border-radius: var(--sc-radius-lg);
|
|
2072
|
+
background: var(--sc-color-surface-raised);
|
|
2073
|
+
--sc-color-surface-hover: var(--sc-color-surface-raised-hover);
|
|
2074
|
+
--sc-color-surface-active: var(--sc-color-surface-raised-active);
|
|
2075
|
+
color: var(--sc-color-text-default);
|
|
2076
|
+
border: var(--sc-border-width-hairline) solid var(--sc-color-border-default);
|
|
2077
|
+
box-shadow: var(--sc-elevation-2);
|
|
2078
|
+
font-family: var(--sc-font-family-sans);
|
|
2079
|
+
font-size: var(--sc-font-size-sm);
|
|
2080
|
+
line-height: var(--sc-font-line-height-normal);
|
|
2081
|
+
outline: 0;
|
|
2082
|
+
transform-origin: var(--transform-origin);
|
|
2083
|
+
transition:
|
|
2084
|
+
opacity var(--sc-duration-fast) var(--sc-ease-enter),
|
|
2085
|
+
scale var(--sc-duration-fast) var(--sc-ease-enter);
|
|
2086
|
+
}
|
|
2087
|
+
/* With an arrow the popup must not clip it. */
|
|
2088
|
+
.sc-popover:has(> .sc-popover__arrow) {
|
|
2089
|
+
overflow: visible;
|
|
2090
|
+
}
|
|
2091
|
+
.sc-popover[data-starting-style],
|
|
2092
|
+
.sc-popover[data-ending-style] {
|
|
2093
|
+
opacity: 0;
|
|
2094
|
+
scale: 0.97;
|
|
2095
|
+
}
|
|
2096
|
+
.sc-popover[data-ending-style] {
|
|
2097
|
+
transition-timing-function: var(--sc-ease-exit);
|
|
2098
|
+
}
|
|
2099
|
+
.sc-popover[data-instant] {
|
|
2100
|
+
transition: none;
|
|
2101
|
+
}
|
|
2102
|
+
.sc-popover__title {
|
|
2103
|
+
margin: 0;
|
|
2104
|
+
font-size: var(--sc-font-size-md);
|
|
2105
|
+
line-height: var(--sc-font-line-height-snug);
|
|
2106
|
+
font-weight: var(--sc-font-weight-semibold);
|
|
2107
|
+
}
|
|
2108
|
+
.sc-popover__title:has(~ .sc-popover__close),
|
|
2109
|
+
.sc-popover__close ~ .sc-popover__title {
|
|
2110
|
+
padding-inline-end: var(--sc-spacing-xl);
|
|
2111
|
+
}
|
|
2112
|
+
.sc-popover__description {
|
|
2113
|
+
margin: var(--sc-spacing-2xs) 0 0;
|
|
2114
|
+
color: var(--sc-color-text-muted);
|
|
2115
|
+
}
|
|
2116
|
+
.sc-popover__close {
|
|
2117
|
+
position: absolute;
|
|
2118
|
+
inset-block-start: var(--sc-spacing-xs);
|
|
2119
|
+
inset-inline-end: var(--sc-spacing-xs);
|
|
2120
|
+
display: inline-grid;
|
|
2121
|
+
place-items: center;
|
|
2122
|
+
inline-size: var(--sc-size-control-sm);
|
|
2123
|
+
block-size: var(--sc-size-control-sm);
|
|
2124
|
+
padding: 0;
|
|
2125
|
+
border: 0;
|
|
2126
|
+
border-radius: var(--sc-radius-md);
|
|
2127
|
+
background: transparent;
|
|
2128
|
+
color: var(--sc-color-text-muted);
|
|
2129
|
+
cursor: pointer;
|
|
2130
|
+
}
|
|
2131
|
+
.sc-popover__close:hover {
|
|
2132
|
+
background: var(--sc-color-surface-hover);
|
|
2133
|
+
color: var(--sc-color-text-default);
|
|
2134
|
+
}
|
|
2135
|
+
.sc-popover__close:focus-visible {
|
|
2136
|
+
outline: var(--sc-border-width-focus) solid var(--sc-color-border-focus);
|
|
2137
|
+
outline-offset: calc(-1 * var(--sc-border-width-focus));
|
|
2138
|
+
}
|
|
2139
|
+
/* A 16×8 tip with the popup's fill and border, placed by Base UI on the side facing the trigger. It overlaps
|
|
2140
|
+
the popup's border by one hairline so the border does not run across its base. */
|
|
2141
|
+
.sc-popover__arrow {
|
|
2142
|
+
--_w: 16px;
|
|
2143
|
+
--_h: 8px;
|
|
2144
|
+
display: block;
|
|
2145
|
+
inline-size: var(--_w);
|
|
2146
|
+
block-size: calc(var(--_h) + var(--sc-border-width-hairline));
|
|
2147
|
+
overflow: clip;
|
|
2148
|
+
pointer-events: none;
|
|
2149
|
+
}
|
|
2150
|
+
.sc-popover__arrow::before {
|
|
2151
|
+
content: '';
|
|
2152
|
+
position: absolute;
|
|
2153
|
+
inset-block-end: 0;
|
|
2154
|
+
inset-inline-start: 50%;
|
|
2155
|
+
box-sizing: border-box;
|
|
2156
|
+
inline-size: calc(var(--_h) * 1.4142);
|
|
2157
|
+
block-size: calc(var(--_h) * 1.4142);
|
|
2158
|
+
background: var(--sc-color-surface-raised);
|
|
2159
|
+
border: var(--sc-border-width-hairline) solid var(--sc-color-border-default);
|
|
2160
|
+
translate: -50% 50%;
|
|
2161
|
+
rotate: 45deg;
|
|
2162
|
+
}
|
|
2163
|
+
.sc-popover__arrow[data-side='top'] {
|
|
2164
|
+
inset-block-end: calc(-1 * var(--_h));
|
|
2165
|
+
rotate: 180deg;
|
|
2166
|
+
}
|
|
2167
|
+
.sc-popover__arrow[data-side='bottom'] {
|
|
2168
|
+
inset-block-start: calc(-1 * var(--_h));
|
|
2169
|
+
}
|
|
2170
|
+
.sc-popover__arrow[data-side='left'],
|
|
2171
|
+
.sc-popover__arrow[data-side='inline-start'] {
|
|
2172
|
+
inset-inline-end: calc(-1 * (var(--_w) + var(--_h)) / 2);
|
|
2173
|
+
rotate: 90deg;
|
|
2174
|
+
}
|
|
2175
|
+
.sc-popover__arrow[data-side='right'],
|
|
2176
|
+
.sc-popover__arrow[data-side='inline-end'] {
|
|
2177
|
+
inset-inline-start: calc(-1 * (var(--_w) + var(--_h)) / 2);
|
|
2178
|
+
rotate: -90deg;
|
|
2179
|
+
}
|
|
2180
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2181
|
+
.sc-popover {
|
|
2182
|
+
transition-duration: 0ms;
|
|
2183
|
+
}
|
|
2184
|
+
.sc-popover[data-starting-style],
|
|
2185
|
+
.sc-popover[data-ending-style] {
|
|
2186
|
+
scale: none;
|
|
2187
|
+
}
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
/* ---- broom-icon.css ---- */
|
|
2191
|
+
/* ---- BroomIcon ------------------------------------------------------------- */
|
|
2192
|
+
/* Geometry and motion as approved: the body pivots on the handle top (20.2, 2.2) from -14deg to 8deg while
|
|
2193
|
+
the dust fades in and drifts left in step; strokes stay a fixed screen width at any size. */
|
|
2194
|
+
.sc-broom {
|
|
2195
|
+
--sc-broom-stroke: 1.25px;
|
|
2196
|
+
}
|
|
2197
|
+
/* `display` (72px) is a one-off for the broom's showcase and empty states. Move it into the Icon sizes and
|
|
2198
|
+
tokens if a second icon ever needs it. */
|
|
2199
|
+
.sc-icon.sc-broom[data-size='display'] {
|
|
2200
|
+
--_s: calc(var(--sc-size-icon-xl) * 3);
|
|
2201
|
+
--sc-broom-stroke: 1.75px;
|
|
2202
|
+
}
|
|
2203
|
+
.sc-broom__body,
|
|
2204
|
+
.sc-broom__dust {
|
|
2205
|
+
transform-box: view-box;
|
|
2206
|
+
stroke-width: var(--sc-broom-stroke);
|
|
2207
|
+
}
|
|
2208
|
+
.sc-broom__body {
|
|
2209
|
+
transform-origin: 20.2px 2.2px;
|
|
2210
|
+
}
|
|
2211
|
+
.sc-broom * {
|
|
2212
|
+
vector-effect: non-scaling-stroke;
|
|
2213
|
+
}
|
|
2214
|
+
.sc-broom__band {
|
|
2215
|
+
fill: currentColor;
|
|
2216
|
+
stroke: none;
|
|
2217
|
+
}
|
|
2218
|
+
.sc-broom__dust {
|
|
2219
|
+
opacity: 0;
|
|
2220
|
+
}
|
|
2221
|
+
.sc-broom[data-sweeping] .sc-broom__body {
|
|
2222
|
+
animation: sc-broom-sweep 0.9s ease-in-out infinite alternate;
|
|
2223
|
+
}
|
|
2224
|
+
.sc-broom[data-sweeping] .sc-broom__dust {
|
|
2225
|
+
animation: sc-broom-dust 0.9s ease-in-out infinite alternate;
|
|
2226
|
+
}
|
|
2227
|
+
@keyframes sc-broom-sweep {
|
|
2228
|
+
from {
|
|
2229
|
+
transform: rotate(-14deg);
|
|
2230
|
+
}
|
|
2231
|
+
to {
|
|
2232
|
+
transform: rotate(8deg);
|
|
2233
|
+
}
|
|
2234
|
+
}
|
|
2235
|
+
/* At the top of the sweep (8deg) the head stays about 2 grid units clear of the dust. */
|
|
2236
|
+
@keyframes sc-broom-dust {
|
|
2237
|
+
from {
|
|
2238
|
+
opacity: 0;
|
|
2239
|
+
transform: translateX(0.5px);
|
|
2240
|
+
}
|
|
2241
|
+
to {
|
|
2242
|
+
opacity: 0.9;
|
|
2243
|
+
transform: translateX(-1px);
|
|
2244
|
+
}
|
|
2245
|
+
}
|
|
2246
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2247
|
+
.sc-broom[data-sweeping] .sc-broom__body,
|
|
2248
|
+
.sc-broom[data-sweeping] .sc-broom__dust {
|
|
2249
|
+
animation: none;
|
|
2250
|
+
}
|
|
2251
|
+
.sc-broom[data-sweeping] .sc-broom__dust {
|
|
2252
|
+
opacity: 0.9;
|
|
2253
|
+
}
|
|
2254
|
+
}
|
|
2255
|
+
/* Drawn on a 24px grid (the shipped icons use 16px), so inside an IconButton it takes the next icon size up:
|
|
2256
|
+
20px in an md button, as in the approved nav mock. */
|
|
2257
|
+
.sc-icon-button > .sc-button__icon:has(> .sc-broom) {
|
|
2258
|
+
--_icon: var(--sc-size-icon-lg);
|
|
2259
|
+
}
|
|
2260
|
+
.sc-icon-button[data-size='sm'] > .sc-button__icon:has(> .sc-broom) {
|
|
2261
|
+
--_icon: var(--sc-size-icon-md);
|
|
2262
|
+
}
|
|
2263
|
+
.sc-icon-button[data-size='lg'] > .sc-button__icon:has(> .sc-broom) {
|
|
2264
|
+
--_icon: var(--sc-size-icon-xl);
|
|
2265
|
+
}
|
|
2266
|
+
|
|
2267
|
+
/* ---- toolbar.css ---- */
|
|
2268
|
+
/* ---- Toolbar --------------------------------------------------------------- */
|
|
2269
|
+
.sc-toolbar {
|
|
2270
|
+
display: flex;
|
|
2271
|
+
flex-wrap: nowrap;
|
|
2272
|
+
align-items: center;
|
|
2273
|
+
gap: var(--sc-spacing-xs);
|
|
2274
|
+
min-inline-size: 0;
|
|
2275
|
+
overflow-x: auto;
|
|
2276
|
+
scrollbar-width: none;
|
|
2277
|
+
}
|
|
2278
|
+
.sc-toolbar[data-wrap] {
|
|
2279
|
+
flex-wrap: wrap;
|
|
2280
|
+
overflow: visible;
|
|
2281
|
+
}
|
|
2282
|
+
.sc-toolbar__group {
|
|
2283
|
+
display: inline-flex;
|
|
2284
|
+
flex: none;
|
|
2285
|
+
align-items: center;
|
|
2286
|
+
gap: var(--sc-spacing-2xs);
|
|
2287
|
+
}
|
|
2288
|
+
.sc-toolbar__separator {
|
|
2289
|
+
flex: none;
|
|
2290
|
+
inline-size: var(--sc-border-width-hairline);
|
|
2291
|
+
block-size: var(--sc-size-icon-lg);
|
|
2292
|
+
margin-inline: var(--sc-spacing-2xs);
|
|
2293
|
+
background: var(--sc-color-border-default);
|
|
2294
|
+
}
|
|
2295
|
+
.sc-toolbar[data-orientation='vertical'] {
|
|
2296
|
+
flex-direction: column;
|
|
2297
|
+
align-items: stretch;
|
|
2298
|
+
}
|
|
2299
|
+
.sc-toolbar[data-orientation='vertical'] > .sc-toolbar__separator {
|
|
2300
|
+
inline-size: auto;
|
|
2301
|
+
block-size: var(--sc-border-width-hairline);
|
|
2302
|
+
margin-inline: 0;
|
|
2303
|
+
margin-block: var(--sc-spacing-2xs);
|
|
2304
|
+
}
|
|
2305
|
+
.sc-toolbar__spacer {
|
|
2306
|
+
flex: 1 1 0;
|
|
2307
|
+
min-inline-size: var(--sc-spacing-xs);
|
|
2308
|
+
}
|
|
2309
|
+
.sc-toolbar[data-gap='none'],
|
|
2310
|
+
.sc-toolbar__group[data-gap='none'] {
|
|
2311
|
+
gap: var(--sc-spacing-none);
|
|
2312
|
+
}
|
|
2313
|
+
.sc-toolbar[data-gap='3xs'],
|
|
2314
|
+
.sc-toolbar__group[data-gap='3xs'] {
|
|
2315
|
+
gap: var(--sc-spacing-3xs);
|
|
2316
|
+
}
|
|
2317
|
+
.sc-toolbar[data-gap='2xs'],
|
|
2318
|
+
.sc-toolbar__group[data-gap='2xs'] {
|
|
2319
|
+
gap: var(--sc-spacing-2xs);
|
|
2320
|
+
}
|
|
2321
|
+
.sc-toolbar[data-gap='xs'],
|
|
2322
|
+
.sc-toolbar__group[data-gap='xs'] {
|
|
2323
|
+
gap: var(--sc-spacing-xs);
|
|
2324
|
+
}
|
|
2325
|
+
.sc-toolbar[data-gap='sm'],
|
|
2326
|
+
.sc-toolbar__group[data-gap='sm'] {
|
|
2327
|
+
gap: var(--sc-spacing-sm);
|
|
2328
|
+
}
|
|
2329
|
+
.sc-toolbar[data-gap='md'],
|
|
2330
|
+
.sc-toolbar__group[data-gap='md'] {
|
|
2331
|
+
gap: var(--sc-spacing-md);
|
|
2332
|
+
}
|
|
2333
|
+
.sc-toolbar[data-gap='lg'],
|
|
2334
|
+
.sc-toolbar__group[data-gap='lg'] {
|
|
2335
|
+
gap: var(--sc-spacing-lg);
|
|
2336
|
+
}
|
|
2337
|
+
.sc-toolbar[data-gap='xl'],
|
|
2338
|
+
.sc-toolbar__group[data-gap='xl'] {
|
|
2339
|
+
gap: var(--sc-spacing-xl);
|
|
2340
|
+
}
|
|
2341
|
+
.sc-toolbar[data-gap='2xl'],
|
|
2342
|
+
.sc-toolbar__group[data-gap='2xl'] {
|
|
2343
|
+
gap: var(--sc-spacing-2xl);
|
|
2344
|
+
}
|
|
2345
|
+
.sc-toolbar[data-gap='3xl'],
|
|
2346
|
+
.sc-toolbar__group[data-gap='3xl'] {
|
|
2347
|
+
gap: var(--sc-spacing-3xl);
|
|
2348
|
+
}
|
|
2349
|
+
.sc-toolbar[data-gap='4xl'],
|
|
2350
|
+
.sc-toolbar__group[data-gap='4xl'] {
|
|
2351
|
+
gap: var(--sc-spacing-4xl);
|
|
2352
|
+
}
|
|
2353
|
+
|
|
2354
|
+
/* ---- banner.css ---- */
|
|
2355
|
+
/* ---- Banner ---------------------------------------------------------------- */
|
|
2356
|
+
.sc-banner {
|
|
2357
|
+
--_bg: var(--sc-color-info-subtle);
|
|
2358
|
+
--_fg: var(--sc-color-info-text);
|
|
2359
|
+
display: flex;
|
|
2360
|
+
align-items: center;
|
|
2361
|
+
gap: var(--sc-spacing-xs);
|
|
2362
|
+
box-sizing: border-box;
|
|
2363
|
+
min-block-size: var(--sc-size-control-md);
|
|
2364
|
+
padding-block: var(--sc-spacing-2xs);
|
|
2365
|
+
padding-inline: var(--sc-spacing-sm) var(--sc-spacing-2xs);
|
|
2366
|
+
border-radius: var(--sc-radius-md);
|
|
2367
|
+
background: var(--_bg);
|
|
2368
|
+
color: var(--_fg);
|
|
2369
|
+
font-family: var(--sc-font-family-sans);
|
|
2370
|
+
font-size: var(--sc-font-size-sm);
|
|
2371
|
+
line-height: var(--sc-font-line-height-ui);
|
|
2372
|
+
}
|
|
2373
|
+
.sc-banner[data-tone='success'] {
|
|
2374
|
+
--_bg: var(--sc-color-success-subtle);
|
|
2375
|
+
--_fg: var(--sc-color-success-text);
|
|
2376
|
+
}
|
|
2377
|
+
.sc-banner[data-tone='warning'] {
|
|
2378
|
+
--_bg: var(--sc-color-warning-subtle);
|
|
2379
|
+
--_fg: var(--sc-color-warning-text);
|
|
2380
|
+
}
|
|
2381
|
+
.sc-banner[data-tone='danger'] {
|
|
2382
|
+
--_bg: var(--sc-color-danger-subtle);
|
|
2383
|
+
--_fg: var(--sc-color-danger-text);
|
|
2384
|
+
}
|
|
2385
|
+
.sc-banner[data-tone='neutral'] {
|
|
2386
|
+
--_bg: var(--sc-color-surface-sunken);
|
|
2387
|
+
--_fg: var(--sc-color-text-default);
|
|
2388
|
+
}
|
|
2389
|
+
.sc-banner__icon {
|
|
2390
|
+
display: inline-flex;
|
|
2391
|
+
flex: none;
|
|
2392
|
+
}
|
|
2393
|
+
.sc-banner__body {
|
|
2394
|
+
flex: 1 1 auto;
|
|
2395
|
+
min-inline-size: 0;
|
|
2396
|
+
text-wrap: pretty;
|
|
2397
|
+
}
|
|
2398
|
+
.sc-banner__action {
|
|
2399
|
+
flex: none;
|
|
1846
2400
|
}
|
|
1847
2401
|
.sc-banner__dismiss {
|
|
1848
2402
|
flex: none;
|
|
@@ -2374,9 +2928,11 @@
|
|
|
2374
2928
|
inline-size: 100%;
|
|
2375
2929
|
block-size: 100%;
|
|
2376
2930
|
}
|
|
2931
|
+
/* The label clips for the ellipsis, so it needs a real line box or descenders get cut (the chip sets line-height: 1). */
|
|
2377
2932
|
.sc-chip__label {
|
|
2378
2933
|
overflow: hidden;
|
|
2379
2934
|
text-overflow: ellipsis;
|
|
2935
|
+
line-height: var(--sc-font-line-height-ui);
|
|
2380
2936
|
}
|
|
2381
2937
|
.sc-chip[data-removable] > .sc-chip__action,
|
|
2382
2938
|
.sc-chip[data-removable] > .sc-chip__label {
|
|
@@ -2670,4 +3226,1274 @@
|
|
|
2670
3226
|
}
|
|
2671
3227
|
}
|
|
2672
3228
|
|
|
3229
|
+
/* ---- filepond/dist/filepond.css ---- */
|
|
3230
|
+
/*!
|
|
3231
|
+
* FilePond 4.32.12
|
|
3232
|
+
* Licensed under MIT, https://opensource.org/licenses/MIT/
|
|
3233
|
+
* Please visit https://pqina.nl/filepond/ for details.
|
|
3234
|
+
*/
|
|
3235
|
+
|
|
3236
|
+
/* eslint-disable */
|
|
3237
|
+
.filepond--assistant {
|
|
3238
|
+
position: absolute;
|
|
3239
|
+
overflow: hidden;
|
|
3240
|
+
height: 1px;
|
|
3241
|
+
width: 1px;
|
|
3242
|
+
padding: 0;
|
|
3243
|
+
border: 0;
|
|
3244
|
+
clip: rect(1px, 1px, 1px, 1px);
|
|
3245
|
+
-webkit-clip-path: inset(50%);
|
|
3246
|
+
clip-path: inset(50%);
|
|
3247
|
+
white-space: nowrap;
|
|
3248
|
+
}
|
|
3249
|
+
/* Hard to override styles */
|
|
3250
|
+
.filepond--browser.filepond--browser {
|
|
3251
|
+
/* is positioned absolute so it is focusable for form validation errors */
|
|
3252
|
+
position: absolute;
|
|
3253
|
+
margin: 0;
|
|
3254
|
+
padding: 0;
|
|
3255
|
+
|
|
3256
|
+
/* is positioned ~behind drop label */
|
|
3257
|
+
left: 1em;
|
|
3258
|
+
top: 1.75em;
|
|
3259
|
+
width: calc(100% - 2em);
|
|
3260
|
+
|
|
3261
|
+
/* hide visually */
|
|
3262
|
+
opacity: 0;
|
|
3263
|
+
font-size: 0; /* removes text cursor in Internet Explorer 11 */
|
|
3264
|
+
}
|
|
3265
|
+
.filepond--data {
|
|
3266
|
+
position: absolute;
|
|
3267
|
+
width: 0;
|
|
3268
|
+
height: 0;
|
|
3269
|
+
padding: 0;
|
|
3270
|
+
margin: 0;
|
|
3271
|
+
border: none;
|
|
3272
|
+
visibility: hidden;
|
|
3273
|
+
pointer-events: none;
|
|
3274
|
+
contain: strict;
|
|
3275
|
+
}
|
|
3276
|
+
.filepond--drip {
|
|
3277
|
+
position: absolute;
|
|
3278
|
+
top: 0;
|
|
3279
|
+
left: 0;
|
|
3280
|
+
right: 0;
|
|
3281
|
+
bottom: 0;
|
|
3282
|
+
overflow: hidden;
|
|
3283
|
+
opacity: 0.1;
|
|
3284
|
+
|
|
3285
|
+
/* can't interact with this element */
|
|
3286
|
+
pointer-events: none;
|
|
3287
|
+
|
|
3288
|
+
/* inherit border radius from parent (needed for drip-blob cut of) */
|
|
3289
|
+
border-radius: 0.5em;
|
|
3290
|
+
|
|
3291
|
+
/* this seems to prevent Chrome from redrawing this layer constantly */
|
|
3292
|
+
background: rgba(0, 0, 0, 0.01);
|
|
3293
|
+
}
|
|
3294
|
+
.filepond--drip-blob {
|
|
3295
|
+
position: absolute;
|
|
3296
|
+
-webkit-transform-origin: center center;
|
|
3297
|
+
transform-origin: center center;
|
|
3298
|
+
top: 0;
|
|
3299
|
+
left: 0;
|
|
3300
|
+
width: 8em;
|
|
3301
|
+
height: 8em;
|
|
3302
|
+
margin-left: -4em;
|
|
3303
|
+
margin-top: -4em;
|
|
3304
|
+
background: #292625;
|
|
3305
|
+
border-radius: 50%;
|
|
3306
|
+
|
|
3307
|
+
/* will be animated */
|
|
3308
|
+
will-change: transform, opacity;
|
|
3309
|
+
}
|
|
3310
|
+
.filepond--drop-label {
|
|
3311
|
+
position: absolute;
|
|
3312
|
+
left: 0;
|
|
3313
|
+
right: 0;
|
|
3314
|
+
top: 0;
|
|
3315
|
+
margin: 0;
|
|
3316
|
+
color: #4f4f4f;
|
|
3317
|
+
|
|
3318
|
+
/* center contents */
|
|
3319
|
+
display: flex;
|
|
3320
|
+
justify-content: center;
|
|
3321
|
+
align-items: center;
|
|
3322
|
+
|
|
3323
|
+
/* fixes IE11 centering problems (is overruled by label min-height) */
|
|
3324
|
+
height: 0px;
|
|
3325
|
+
|
|
3326
|
+
/* dont allow selection */
|
|
3327
|
+
-webkit-user-select: none;
|
|
3328
|
+
-moz-user-select: none;
|
|
3329
|
+
-ms-user-select: none;
|
|
3330
|
+
user-select: none;
|
|
3331
|
+
|
|
3332
|
+
/* will be animated */
|
|
3333
|
+
will-change: transform, opacity;
|
|
3334
|
+
}
|
|
3335
|
+
/* Hard to override styles on purpose */
|
|
3336
|
+
.filepond--drop-label.filepond--drop-label label {
|
|
3337
|
+
display: block;
|
|
3338
|
+
margin: 0;
|
|
3339
|
+
padding: 0.5em; /* use padding instead of margin so click area is not impacted */
|
|
3340
|
+
}
|
|
3341
|
+
.filepond--drop-label label {
|
|
3342
|
+
cursor: default;
|
|
3343
|
+
font-size: 0.875em;
|
|
3344
|
+
font-weight: normal;
|
|
3345
|
+
text-align: center;
|
|
3346
|
+
line-height: 1.5;
|
|
3347
|
+
}
|
|
3348
|
+
.filepond--label-action {
|
|
3349
|
+
text-decoration: underline;
|
|
3350
|
+
-webkit-text-decoration-skip: ink;
|
|
3351
|
+
text-decoration-skip-ink: auto;
|
|
3352
|
+
-webkit-text-decoration-color: #a7a4a4;
|
|
3353
|
+
text-decoration-color: #a7a4a4;
|
|
3354
|
+
cursor: pointer;
|
|
3355
|
+
}
|
|
3356
|
+
.filepond--root[data-disabled] .filepond--drop-label label {
|
|
3357
|
+
opacity: 0.5;
|
|
3358
|
+
}
|
|
3359
|
+
/* Hard to override styles */
|
|
3360
|
+
.filepond--file-action-button.filepond--file-action-button {
|
|
3361
|
+
font-size: 1em;
|
|
3362
|
+
width: 1.625em;
|
|
3363
|
+
height: 1.625em;
|
|
3364
|
+
|
|
3365
|
+
font-family: inherit;
|
|
3366
|
+
line-height: inherit;
|
|
3367
|
+
|
|
3368
|
+
margin: 0;
|
|
3369
|
+
padding: 0;
|
|
3370
|
+
border: none;
|
|
3371
|
+
outline: none;
|
|
3372
|
+
|
|
3373
|
+
will-change: transform, opacity;
|
|
3374
|
+
|
|
3375
|
+
/* hidden label */
|
|
3376
|
+
}
|
|
3377
|
+
.filepond--file-action-button.filepond--file-action-button span {
|
|
3378
|
+
position: absolute;
|
|
3379
|
+
overflow: hidden;
|
|
3380
|
+
height: 1px;
|
|
3381
|
+
width: 1px;
|
|
3382
|
+
padding: 0;
|
|
3383
|
+
border: 0;
|
|
3384
|
+
clip: rect(1px, 1px, 1px, 1px);
|
|
3385
|
+
-webkit-clip-path: inset(50%);
|
|
3386
|
+
clip-path: inset(50%);
|
|
3387
|
+
white-space: nowrap;
|
|
3388
|
+
}
|
|
3389
|
+
.filepond--file-action-button.filepond--file-action-button {
|
|
3390
|
+
/* scale SVG to fill button */
|
|
3391
|
+
}
|
|
3392
|
+
.filepond--file-action-button.filepond--file-action-button svg {
|
|
3393
|
+
width: 100%;
|
|
3394
|
+
height: 100%;
|
|
3395
|
+
}
|
|
3396
|
+
.filepond--file-action-button.filepond--file-action-button {
|
|
3397
|
+
/* bigger touch area */
|
|
3398
|
+
}
|
|
3399
|
+
.filepond--file-action-button.filepond--file-action-button::after {
|
|
3400
|
+
position: absolute;
|
|
3401
|
+
left: -0.75em;
|
|
3402
|
+
right: -0.75em;
|
|
3403
|
+
top: -0.75em;
|
|
3404
|
+
bottom: -0.75em;
|
|
3405
|
+
content: '';
|
|
3406
|
+
}
|
|
3407
|
+
/* Soft styles */
|
|
3408
|
+
.filepond--file-action-button {
|
|
3409
|
+
/* use default arrow cursor */
|
|
3410
|
+
cursor: auto;
|
|
3411
|
+
|
|
3412
|
+
/* reset default button styles */
|
|
3413
|
+
color: #fff;
|
|
3414
|
+
|
|
3415
|
+
/* set default look n feel */
|
|
3416
|
+
border-radius: 50%;
|
|
3417
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
3418
|
+
background-image: none;
|
|
3419
|
+
|
|
3420
|
+
/* we animate box shadow on focus */
|
|
3421
|
+
/* it's only slightly slower than animating */
|
|
3422
|
+
/* a pseudo-element with transforms and renders */
|
|
3423
|
+
/* a lot better on chrome */
|
|
3424
|
+
box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
|
|
3425
|
+
transition: box-shadow 0.25s ease-in;
|
|
3426
|
+
}
|
|
3427
|
+
.filepond--file-action-button:hover,
|
|
3428
|
+
.filepond--file-action-button:focus {
|
|
3429
|
+
box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.9);
|
|
3430
|
+
}
|
|
3431
|
+
.filepond--file-action-button[disabled] {
|
|
3432
|
+
color: rgba(255, 255, 255, 0.5);
|
|
3433
|
+
background-color: rgba(0, 0, 0, 0.25);
|
|
3434
|
+
}
|
|
3435
|
+
.filepond--file-action-button[hidden] {
|
|
3436
|
+
display: none;
|
|
3437
|
+
}
|
|
3438
|
+
/* edit button */
|
|
3439
|
+
.filepond--action-edit-item.filepond--action-edit-item {
|
|
3440
|
+
width: 2em;
|
|
3441
|
+
height: 2em;
|
|
3442
|
+
padding: 0.1875em;
|
|
3443
|
+
}
|
|
3444
|
+
.filepond--action-edit-item.filepond--action-edit-item[data-align*='center'] {
|
|
3445
|
+
margin-left: -0.1875em;
|
|
3446
|
+
}
|
|
3447
|
+
.filepond--action-edit-item.filepond--action-edit-item[data-align*='bottom'] {
|
|
3448
|
+
margin-bottom: -0.1875em;
|
|
3449
|
+
}
|
|
3450
|
+
.filepond--action-edit-item-alt {
|
|
3451
|
+
border: none;
|
|
3452
|
+
line-height: inherit;
|
|
3453
|
+
background: transparent;
|
|
3454
|
+
font-family: inherit;
|
|
3455
|
+
color: inherit;
|
|
3456
|
+
outline: none;
|
|
3457
|
+
padding: 0;
|
|
3458
|
+
margin: 0 0 0 0.25em;
|
|
3459
|
+
pointer-events: all;
|
|
3460
|
+
position: absolute;
|
|
3461
|
+
}
|
|
3462
|
+
.filepond--action-edit-item-alt svg {
|
|
3463
|
+
width: 1.3125em;
|
|
3464
|
+
height: 1.3125em;
|
|
3465
|
+
}
|
|
3466
|
+
.filepond--action-edit-item-alt span {
|
|
3467
|
+
font-size: 0;
|
|
3468
|
+
opacity: 0;
|
|
3469
|
+
}
|
|
3470
|
+
.filepond--file-info {
|
|
3471
|
+
position: static;
|
|
3472
|
+
display: flex;
|
|
3473
|
+
flex-direction: column;
|
|
3474
|
+
align-items: flex-start;
|
|
3475
|
+
flex: 1;
|
|
3476
|
+
margin: 0 0.5em 0 0;
|
|
3477
|
+
min-width: 0;
|
|
3478
|
+
|
|
3479
|
+
/* will be animated */
|
|
3480
|
+
will-change: transform, opacity;
|
|
3481
|
+
|
|
3482
|
+
/* can't do anything with this info */
|
|
3483
|
+
pointer-events: none;
|
|
3484
|
+
-webkit-user-select: none;
|
|
3485
|
+
-moz-user-select: none;
|
|
3486
|
+
-ms-user-select: none;
|
|
3487
|
+
user-select: none;
|
|
3488
|
+
|
|
3489
|
+
/* no margins on children */
|
|
3490
|
+
}
|
|
3491
|
+
.filepond--file-info * {
|
|
3492
|
+
margin: 0;
|
|
3493
|
+
}
|
|
3494
|
+
.filepond--file-info {
|
|
3495
|
+
/* we don't want to have these overrules so these selectors are a bit more specific */
|
|
3496
|
+
}
|
|
3497
|
+
.filepond--file-info .filepond--file-info-main {
|
|
3498
|
+
font-size: 0.75em;
|
|
3499
|
+
line-height: 1.2;
|
|
3500
|
+
|
|
3501
|
+
/* we want ellipsis if this bar gets too wide */
|
|
3502
|
+
text-overflow: ellipsis;
|
|
3503
|
+
overflow: hidden;
|
|
3504
|
+
white-space: nowrap;
|
|
3505
|
+
width: 100%;
|
|
3506
|
+
}
|
|
3507
|
+
.filepond--file-info .filepond--file-info-sub {
|
|
3508
|
+
font-size: 0.625em;
|
|
3509
|
+
opacity: 0.5;
|
|
3510
|
+
transition: opacity 0.25s ease-in-out;
|
|
3511
|
+
white-space: nowrap;
|
|
3512
|
+
}
|
|
3513
|
+
.filepond--file-info .filepond--file-info-sub:empty {
|
|
3514
|
+
display: none;
|
|
3515
|
+
}
|
|
3516
|
+
.filepond--file-status {
|
|
3517
|
+
position: static;
|
|
3518
|
+
display: flex;
|
|
3519
|
+
flex-direction: column;
|
|
3520
|
+
align-items: flex-end;
|
|
3521
|
+
flex-grow: 0;
|
|
3522
|
+
flex-shrink: 0;
|
|
3523
|
+
|
|
3524
|
+
margin: 0;
|
|
3525
|
+
min-width: 2.25em;
|
|
3526
|
+
text-align: right;
|
|
3527
|
+
|
|
3528
|
+
/* will be animated */
|
|
3529
|
+
will-change: transform, opacity;
|
|
3530
|
+
|
|
3531
|
+
/* can't do anything with this info */
|
|
3532
|
+
pointer-events: none;
|
|
3533
|
+
-webkit-user-select: none;
|
|
3534
|
+
-moz-user-select: none;
|
|
3535
|
+
-ms-user-select: none;
|
|
3536
|
+
user-select: none;
|
|
3537
|
+
|
|
3538
|
+
/* no margins on children */
|
|
3539
|
+
}
|
|
3540
|
+
.filepond--file-status * {
|
|
3541
|
+
margin: 0;
|
|
3542
|
+
white-space: nowrap;
|
|
3543
|
+
}
|
|
3544
|
+
.filepond--file-status {
|
|
3545
|
+
/* font sizes */
|
|
3546
|
+
}
|
|
3547
|
+
.filepond--file-status .filepond--file-status-main {
|
|
3548
|
+
font-size: 0.75em;
|
|
3549
|
+
line-height: 1.2;
|
|
3550
|
+
}
|
|
3551
|
+
.filepond--file-status .filepond--file-status-sub {
|
|
3552
|
+
font-size: 0.625em;
|
|
3553
|
+
opacity: 0.5;
|
|
3554
|
+
transition: opacity 0.25s ease-in-out;
|
|
3555
|
+
}
|
|
3556
|
+
/* Hard to override styles */
|
|
3557
|
+
.filepond--file-wrapper.filepond--file-wrapper {
|
|
3558
|
+
border: none;
|
|
3559
|
+
margin: 0;
|
|
3560
|
+
padding: 0;
|
|
3561
|
+
min-width: 0;
|
|
3562
|
+
height: 100%;
|
|
3563
|
+
|
|
3564
|
+
/* hide legend for visual users */
|
|
3565
|
+
}
|
|
3566
|
+
.filepond--file-wrapper.filepond--file-wrapper > legend {
|
|
3567
|
+
position: absolute;
|
|
3568
|
+
overflow: hidden;
|
|
3569
|
+
height: 1px;
|
|
3570
|
+
width: 1px;
|
|
3571
|
+
padding: 0;
|
|
3572
|
+
border: 0;
|
|
3573
|
+
clip: rect(1px, 1px, 1px, 1px);
|
|
3574
|
+
-webkit-clip-path: inset(50%);
|
|
3575
|
+
clip-path: inset(50%);
|
|
3576
|
+
white-space: nowrap;
|
|
3577
|
+
}
|
|
3578
|
+
.filepond--file {
|
|
3579
|
+
position: static;
|
|
3580
|
+
display: flex;
|
|
3581
|
+
height: 100%;
|
|
3582
|
+
align-items: flex-start;
|
|
3583
|
+
|
|
3584
|
+
padding: 0.5625em 0.5625em;
|
|
3585
|
+
|
|
3586
|
+
color: #fff;
|
|
3587
|
+
border-radius: 0.5em;
|
|
3588
|
+
|
|
3589
|
+
/* control positions */
|
|
3590
|
+
}
|
|
3591
|
+
.filepond--file .filepond--file-status {
|
|
3592
|
+
margin-left: auto;
|
|
3593
|
+
margin-right: 2.25em;
|
|
3594
|
+
}
|
|
3595
|
+
.filepond--file .filepond--processing-complete-indicator {
|
|
3596
|
+
pointer-events: none;
|
|
3597
|
+
-webkit-user-select: none;
|
|
3598
|
+
-moz-user-select: none;
|
|
3599
|
+
-ms-user-select: none;
|
|
3600
|
+
user-select: none;
|
|
3601
|
+
z-index: 3;
|
|
3602
|
+
}
|
|
3603
|
+
.filepond--file .filepond--processing-complete-indicator,
|
|
3604
|
+
.filepond--file .filepond--progress-indicator,
|
|
3605
|
+
.filepond--file .filepond--file-action-button {
|
|
3606
|
+
position: absolute;
|
|
3607
|
+
}
|
|
3608
|
+
.filepond--file {
|
|
3609
|
+
/* .filepond--file-action-button */
|
|
3610
|
+
}
|
|
3611
|
+
.filepond--file [data-align*='left'] {
|
|
3612
|
+
left: 0.5625em;
|
|
3613
|
+
}
|
|
3614
|
+
.filepond--file [data-align*='right'] {
|
|
3615
|
+
right: 0.5625em;
|
|
3616
|
+
}
|
|
3617
|
+
.filepond--file [data-align*='center'] {
|
|
3618
|
+
left: calc(50% - 0.8125em); /* .8125 is half of button width */
|
|
3619
|
+
}
|
|
3620
|
+
.filepond--file [data-align*='bottom'] {
|
|
3621
|
+
bottom: 1.125em;
|
|
3622
|
+
}
|
|
3623
|
+
.filepond--file [data-align='center'] {
|
|
3624
|
+
top: calc(50% - 0.8125em);
|
|
3625
|
+
}
|
|
3626
|
+
.filepond--file .filepond--progress-indicator {
|
|
3627
|
+
margin-top: 0.1875em;
|
|
3628
|
+
}
|
|
3629
|
+
.filepond--file .filepond--progress-indicator[data-align*='right'] {
|
|
3630
|
+
margin-right: 0.1875em;
|
|
3631
|
+
}
|
|
3632
|
+
.filepond--file .filepond--progress-indicator[data-align*='left'] {
|
|
3633
|
+
margin-left: 0.1875em;
|
|
3634
|
+
}
|
|
3635
|
+
/* make sure text does not overlap */
|
|
3636
|
+
[data-filepond-item-state='cancelled'] .filepond--file-info,
|
|
3637
|
+
[data-filepond-item-state*='invalid'] .filepond--file-info,
|
|
3638
|
+
[data-filepond-item-state*='error'] .filepond--file-info {
|
|
3639
|
+
margin-right: 2.25em;
|
|
3640
|
+
}
|
|
3641
|
+
[data-filepond-item-state~='processing'] .filepond--file-status-sub {
|
|
3642
|
+
opacity: 0;
|
|
3643
|
+
}
|
|
3644
|
+
[data-filepond-item-state~='processing']
|
|
3645
|
+
.filepond--action-abort-item-processing
|
|
3646
|
+
~ .filepond--file-status
|
|
3647
|
+
.filepond--file-status-sub {
|
|
3648
|
+
opacity: 0.5;
|
|
3649
|
+
}
|
|
3650
|
+
[data-filepond-item-state='processing-error'] .filepond--file-status-sub {
|
|
3651
|
+
opacity: 0;
|
|
3652
|
+
}
|
|
3653
|
+
[data-filepond-item-state='processing-error']
|
|
3654
|
+
.filepond--action-retry-item-processing
|
|
3655
|
+
~ .filepond--file-status
|
|
3656
|
+
.filepond--file-status-sub {
|
|
3657
|
+
opacity: 0.5;
|
|
3658
|
+
}
|
|
3659
|
+
[data-filepond-item-state='processing-complete'] {
|
|
3660
|
+
/* busy state */
|
|
3661
|
+
}
|
|
3662
|
+
[data-filepond-item-state='processing-complete'] .filepond--action-revert-item-processing svg {
|
|
3663
|
+
-webkit-animation: fall 0.5s 0.125s linear both;
|
|
3664
|
+
animation: fall 0.5s 0.125s linear both;
|
|
3665
|
+
}
|
|
3666
|
+
[data-filepond-item-state='processing-complete'] {
|
|
3667
|
+
/* hide details by default, only show when can revert */
|
|
3668
|
+
}
|
|
3669
|
+
[data-filepond-item-state='processing-complete'] .filepond--file-status-sub {
|
|
3670
|
+
opacity: 0.5;
|
|
3671
|
+
}
|
|
3672
|
+
[data-filepond-item-state='processing-complete']
|
|
3673
|
+
.filepond--processing-complete-indicator:not([style*='hidden'])
|
|
3674
|
+
~ .filepond--file-status
|
|
3675
|
+
.filepond--file-status-sub {
|
|
3676
|
+
opacity: 0;
|
|
3677
|
+
}
|
|
3678
|
+
[data-filepond-item-state='processing-complete'] .filepond--file-info-sub {
|
|
3679
|
+
opacity: 0;
|
|
3680
|
+
}
|
|
3681
|
+
[data-filepond-item-state='processing-complete']
|
|
3682
|
+
.filepond--action-revert-item-processing
|
|
3683
|
+
~ .filepond--file-info
|
|
3684
|
+
.filepond--file-info-sub {
|
|
3685
|
+
opacity: 0.5;
|
|
3686
|
+
}
|
|
3687
|
+
/* file state can be invalid or error, both are visually similar but */
|
|
3688
|
+
/* having them as separate states might be useful */
|
|
3689
|
+
[data-filepond-item-state*='invalid'] .filepond--panel,
|
|
3690
|
+
[data-filepond-item-state*='invalid'] .filepond--file-wrapper,
|
|
3691
|
+
[data-filepond-item-state*='error'] .filepond--panel,
|
|
3692
|
+
[data-filepond-item-state*='error'] .filepond--file-wrapper {
|
|
3693
|
+
-webkit-animation: shake 0.65s linear both;
|
|
3694
|
+
animation: shake 0.65s linear both;
|
|
3695
|
+
}
|
|
3696
|
+
/* spins progress indicator when file is marked as busy */
|
|
3697
|
+
[data-filepond-item-state*='busy'] .filepond--progress-indicator svg {
|
|
3698
|
+
-webkit-animation: spin 1s linear infinite;
|
|
3699
|
+
animation: spin 1s linear infinite;
|
|
3700
|
+
}
|
|
3701
|
+
/**
|
|
3702
|
+
* States
|
|
3703
|
+
*/
|
|
3704
|
+
@-webkit-keyframes spin {
|
|
3705
|
+
0% {
|
|
3706
|
+
-webkit-transform: rotateZ(0deg);
|
|
3707
|
+
transform: rotateZ(0deg);
|
|
3708
|
+
}
|
|
3709
|
+
|
|
3710
|
+
100% {
|
|
3711
|
+
-webkit-transform: rotateZ(360deg);
|
|
3712
|
+
transform: rotateZ(360deg);
|
|
3713
|
+
}
|
|
3714
|
+
}
|
|
3715
|
+
@keyframes spin {
|
|
3716
|
+
0% {
|
|
3717
|
+
-webkit-transform: rotateZ(0deg);
|
|
3718
|
+
transform: rotateZ(0deg);
|
|
3719
|
+
}
|
|
3720
|
+
|
|
3721
|
+
100% {
|
|
3722
|
+
-webkit-transform: rotateZ(360deg);
|
|
3723
|
+
transform: rotateZ(360deg);
|
|
3724
|
+
}
|
|
3725
|
+
}
|
|
3726
|
+
@-webkit-keyframes shake {
|
|
3727
|
+
10%,
|
|
3728
|
+
90% {
|
|
3729
|
+
-webkit-transform: translateX(-0.0625em);
|
|
3730
|
+
transform: translateX(-0.0625em);
|
|
3731
|
+
}
|
|
3732
|
+
|
|
3733
|
+
20%,
|
|
3734
|
+
80% {
|
|
3735
|
+
-webkit-transform: translateX(0.125em);
|
|
3736
|
+
transform: translateX(0.125em);
|
|
3737
|
+
}
|
|
3738
|
+
|
|
3739
|
+
30%,
|
|
3740
|
+
50%,
|
|
3741
|
+
70% {
|
|
3742
|
+
-webkit-transform: translateX(-0.25em);
|
|
3743
|
+
transform: translateX(-0.25em);
|
|
3744
|
+
}
|
|
3745
|
+
|
|
3746
|
+
40%,
|
|
3747
|
+
60% {
|
|
3748
|
+
-webkit-transform: translateX(0.25em);
|
|
3749
|
+
transform: translateX(0.25em);
|
|
3750
|
+
}
|
|
3751
|
+
}
|
|
3752
|
+
@keyframes shake {
|
|
3753
|
+
10%,
|
|
3754
|
+
90% {
|
|
3755
|
+
-webkit-transform: translateX(-0.0625em);
|
|
3756
|
+
transform: translateX(-0.0625em);
|
|
3757
|
+
}
|
|
3758
|
+
|
|
3759
|
+
20%,
|
|
3760
|
+
80% {
|
|
3761
|
+
-webkit-transform: translateX(0.125em);
|
|
3762
|
+
transform: translateX(0.125em);
|
|
3763
|
+
}
|
|
3764
|
+
|
|
3765
|
+
30%,
|
|
3766
|
+
50%,
|
|
3767
|
+
70% {
|
|
3768
|
+
-webkit-transform: translateX(-0.25em);
|
|
3769
|
+
transform: translateX(-0.25em);
|
|
3770
|
+
}
|
|
3771
|
+
|
|
3772
|
+
40%,
|
|
3773
|
+
60% {
|
|
3774
|
+
-webkit-transform: translateX(0.25em);
|
|
3775
|
+
transform: translateX(0.25em);
|
|
3776
|
+
}
|
|
3777
|
+
}
|
|
3778
|
+
@-webkit-keyframes fall {
|
|
3779
|
+
0% {
|
|
3780
|
+
opacity: 0;
|
|
3781
|
+
-webkit-transform: scale(0.5);
|
|
3782
|
+
transform: scale(0.5);
|
|
3783
|
+
-webkit-animation-timing-function: ease-out;
|
|
3784
|
+
animation-timing-function: ease-out;
|
|
3785
|
+
}
|
|
3786
|
+
|
|
3787
|
+
70% {
|
|
3788
|
+
opacity: 1;
|
|
3789
|
+
-webkit-transform: scale(1.1);
|
|
3790
|
+
transform: scale(1.1);
|
|
3791
|
+
-webkit-animation-timing-function: ease-in-out;
|
|
3792
|
+
animation-timing-function: ease-in-out;
|
|
3793
|
+
}
|
|
3794
|
+
|
|
3795
|
+
100% {
|
|
3796
|
+
-webkit-transform: scale(1);
|
|
3797
|
+
transform: scale(1);
|
|
3798
|
+
-webkit-animation-timing-function: ease-out;
|
|
3799
|
+
animation-timing-function: ease-out;
|
|
3800
|
+
}
|
|
3801
|
+
}
|
|
3802
|
+
@keyframes fall {
|
|
3803
|
+
0% {
|
|
3804
|
+
opacity: 0;
|
|
3805
|
+
-webkit-transform: scale(0.5);
|
|
3806
|
+
transform: scale(0.5);
|
|
3807
|
+
-webkit-animation-timing-function: ease-out;
|
|
3808
|
+
animation-timing-function: ease-out;
|
|
3809
|
+
}
|
|
3810
|
+
|
|
3811
|
+
70% {
|
|
3812
|
+
opacity: 1;
|
|
3813
|
+
-webkit-transform: scale(1.1);
|
|
3814
|
+
transform: scale(1.1);
|
|
3815
|
+
-webkit-animation-timing-function: ease-in-out;
|
|
3816
|
+
animation-timing-function: ease-in-out;
|
|
3817
|
+
}
|
|
3818
|
+
|
|
3819
|
+
100% {
|
|
3820
|
+
-webkit-transform: scale(1);
|
|
3821
|
+
transform: scale(1);
|
|
3822
|
+
-webkit-animation-timing-function: ease-out;
|
|
3823
|
+
animation-timing-function: ease-out;
|
|
3824
|
+
}
|
|
3825
|
+
}
|
|
3826
|
+
/* ignore all other interaction elements while dragging a file */
|
|
3827
|
+
.filepond--hopper[data-hopper-state='drag-over'] > * {
|
|
3828
|
+
pointer-events: none;
|
|
3829
|
+
}
|
|
3830
|
+
/* capture all hit tests using a hidden layer, this speeds up the event flow */
|
|
3831
|
+
.filepond--hopper[data-hopper-state='drag-over']::after {
|
|
3832
|
+
content: '';
|
|
3833
|
+
position: absolute;
|
|
3834
|
+
left: 0;
|
|
3835
|
+
top: 0;
|
|
3836
|
+
right: 0;
|
|
3837
|
+
bottom: 0;
|
|
3838
|
+
z-index: 100;
|
|
3839
|
+
}
|
|
3840
|
+
.filepond--progress-indicator {
|
|
3841
|
+
z-index: 103;
|
|
3842
|
+
}
|
|
3843
|
+
.filepond--file-action-button {
|
|
3844
|
+
z-index: 102;
|
|
3845
|
+
}
|
|
3846
|
+
.filepond--file-status {
|
|
3847
|
+
z-index: 101;
|
|
3848
|
+
}
|
|
3849
|
+
.filepond--file-info {
|
|
3850
|
+
z-index: 100;
|
|
3851
|
+
}
|
|
3852
|
+
.filepond--item {
|
|
3853
|
+
position: absolute;
|
|
3854
|
+
top: 0;
|
|
3855
|
+
left: 0;
|
|
3856
|
+
right: 0;
|
|
3857
|
+
z-index: 1;
|
|
3858
|
+
|
|
3859
|
+
padding: 0;
|
|
3860
|
+
margin: 0.25em;
|
|
3861
|
+
|
|
3862
|
+
will-change: transform, opacity;
|
|
3863
|
+
|
|
3864
|
+
touch-action: auto;
|
|
3865
|
+
|
|
3866
|
+
/* item children order */
|
|
3867
|
+
}
|
|
3868
|
+
.filepond--item > .filepond--panel {
|
|
3869
|
+
z-index: -1;
|
|
3870
|
+
}
|
|
3871
|
+
/* has a slight shadow */
|
|
3872
|
+
.filepond--item > .filepond--panel .filepond--panel-bottom {
|
|
3873
|
+
box-shadow: 0 0.0625em 0.125em -0.0625em rgba(0, 0, 0, 0.25);
|
|
3874
|
+
}
|
|
3875
|
+
.filepond--item {
|
|
3876
|
+
/* drag related */
|
|
3877
|
+
}
|
|
3878
|
+
.filepond--item > .filepond--file-wrapper,
|
|
3879
|
+
.filepond--item > .filepond--panel {
|
|
3880
|
+
transition: opacity 0.15s ease-out;
|
|
3881
|
+
}
|
|
3882
|
+
.filepond--item[data-drag-state] {
|
|
3883
|
+
cursor: -webkit-grab;
|
|
3884
|
+
cursor: grab;
|
|
3885
|
+
}
|
|
3886
|
+
.filepond--item[data-drag-state] > .filepond--panel {
|
|
3887
|
+
transition: box-shadow 0.125s ease-in-out;
|
|
3888
|
+
box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
3889
|
+
}
|
|
3890
|
+
.filepond--item[data-drag-state='drag'] {
|
|
3891
|
+
cursor: -webkit-grabbing;
|
|
3892
|
+
cursor: grabbing;
|
|
3893
|
+
}
|
|
3894
|
+
.filepond--item[data-drag-state='drag'] > .filepond--panel {
|
|
3895
|
+
box-shadow: 0 0.125em 0.3125em rgba(0, 0, 0, 0.325);
|
|
3896
|
+
}
|
|
3897
|
+
.filepond--item[data-drag-state]:not([data-drag-state='idle']) {
|
|
3898
|
+
z-index: 2;
|
|
3899
|
+
}
|
|
3900
|
+
/* states */
|
|
3901
|
+
.filepond--item-panel {
|
|
3902
|
+
background-color: #64605e;
|
|
3903
|
+
}
|
|
3904
|
+
[data-filepond-item-state='processing-complete'] .filepond--item-panel {
|
|
3905
|
+
background-color: #369763;
|
|
3906
|
+
}
|
|
3907
|
+
[data-filepond-item-state*='invalid'] .filepond--item-panel,
|
|
3908
|
+
[data-filepond-item-state*='error'] .filepond--item-panel {
|
|
3909
|
+
background-color: #c44e47;
|
|
3910
|
+
}
|
|
3911
|
+
/* style of item panel */
|
|
3912
|
+
.filepond--item-panel {
|
|
3913
|
+
border-radius: 0.5em;
|
|
3914
|
+
transition: background-color 0.25s;
|
|
3915
|
+
}
|
|
3916
|
+
/* normal mode */
|
|
3917
|
+
.filepond--list-scroller {
|
|
3918
|
+
position: absolute;
|
|
3919
|
+
top: 0;
|
|
3920
|
+
left: 0;
|
|
3921
|
+
right: 0;
|
|
3922
|
+
margin: 0;
|
|
3923
|
+
will-change: transform;
|
|
3924
|
+
}
|
|
3925
|
+
/* scroll mode */
|
|
3926
|
+
.filepond--list-scroller[data-state='overflow'] .filepond--list {
|
|
3927
|
+
bottom: 0;
|
|
3928
|
+
right: 0;
|
|
3929
|
+
}
|
|
3930
|
+
.filepond--list-scroller[data-state='overflow'] {
|
|
3931
|
+
overflow-y: scroll;
|
|
3932
|
+
overflow-x: hidden;
|
|
3933
|
+
-webkit-overflow-scrolling: touch;
|
|
3934
|
+
-webkit-mask: linear-gradient(to bottom, #000 calc(100% - 0.5em), transparent 100%);
|
|
3935
|
+
mask: linear-gradient(to bottom, #000 calc(100% - 0.5em), transparent 100%);
|
|
3936
|
+
}
|
|
3937
|
+
/* style scrollbar */
|
|
3938
|
+
.filepond--list-scroller::-webkit-scrollbar {
|
|
3939
|
+
background: transparent;
|
|
3940
|
+
}
|
|
3941
|
+
.filepond--list-scroller::-webkit-scrollbar:vertical {
|
|
3942
|
+
width: 1em;
|
|
3943
|
+
}
|
|
3944
|
+
.filepond--list-scroller::-webkit-scrollbar:horizontal {
|
|
3945
|
+
height: 0;
|
|
3946
|
+
}
|
|
3947
|
+
.filepond--list-scroller::-webkit-scrollbar-thumb {
|
|
3948
|
+
background-color: rgba(0, 0, 0, 0.3);
|
|
3949
|
+
border-radius: 99999px;
|
|
3950
|
+
border: 0.3125em solid transparent;
|
|
3951
|
+
background-clip: content-box;
|
|
3952
|
+
}
|
|
3953
|
+
/* hard to overide styles on purpose */
|
|
3954
|
+
.filepond--list.filepond--list {
|
|
3955
|
+
position: absolute;
|
|
3956
|
+
top: 0;
|
|
3957
|
+
margin: 0;
|
|
3958
|
+
padding: 0;
|
|
3959
|
+
list-style-type: none;
|
|
3960
|
+
|
|
3961
|
+
/* prevents endless paint calls on filepond--list-scroller */
|
|
3962
|
+
will-change: transform;
|
|
3963
|
+
}
|
|
3964
|
+
/* used for padding so allowed to be restyled */
|
|
3965
|
+
.filepond--list {
|
|
3966
|
+
left: 0.75em;
|
|
3967
|
+
right: 0.75em;
|
|
3968
|
+
}
|
|
3969
|
+
.filepond--root[data-style-panel-layout~='integrated'] {
|
|
3970
|
+
width: 100%;
|
|
3971
|
+
height: 100%;
|
|
3972
|
+
max-width: none;
|
|
3973
|
+
margin: 0;
|
|
3974
|
+
}
|
|
3975
|
+
.filepond--root[data-style-panel-layout~='circle'] .filepond--panel-root,
|
|
3976
|
+
.filepond--root[data-style-panel-layout~='integrated'] .filepond--panel-root {
|
|
3977
|
+
border-radius: 0;
|
|
3978
|
+
}
|
|
3979
|
+
.filepond--root[data-style-panel-layout~='circle'] .filepond--panel-root > *,
|
|
3980
|
+
.filepond--root[data-style-panel-layout~='integrated'] .filepond--panel-root > * {
|
|
3981
|
+
display: none;
|
|
3982
|
+
}
|
|
3983
|
+
.filepond--root[data-style-panel-layout~='circle'] .filepond--drop-label,
|
|
3984
|
+
.filepond--root[data-style-panel-layout~='integrated'] .filepond--drop-label {
|
|
3985
|
+
bottom: 0;
|
|
3986
|
+
height: auto;
|
|
3987
|
+
display: flex;
|
|
3988
|
+
justify-content: center;
|
|
3989
|
+
align-items: center;
|
|
3990
|
+
z-index: 7;
|
|
3991
|
+
}
|
|
3992
|
+
.filepond--root[data-style-panel-layout~='circle'],
|
|
3993
|
+
.filepond--root[data-style-panel-layout~='integrated'] {
|
|
3994
|
+
/* we're only loading one item, this makes the intro animation a bit nicer */
|
|
3995
|
+
}
|
|
3996
|
+
.filepond--root[data-style-panel-layout~='circle'] .filepond--item-panel,
|
|
3997
|
+
.filepond--root[data-style-panel-layout~='integrated'] .filepond--item-panel {
|
|
3998
|
+
display: none;
|
|
3999
|
+
}
|
|
4000
|
+
.filepond--root[data-style-panel-layout~='compact'] .filepond--list-scroller,
|
|
4001
|
+
.filepond--root[data-style-panel-layout~='integrated'] .filepond--list-scroller {
|
|
4002
|
+
overflow: hidden;
|
|
4003
|
+
height: 100%;
|
|
4004
|
+
margin-top: 0;
|
|
4005
|
+
margin-bottom: 0;
|
|
4006
|
+
}
|
|
4007
|
+
.filepond--root[data-style-panel-layout~='compact'] .filepond--list,
|
|
4008
|
+
.filepond--root[data-style-panel-layout~='integrated'] .filepond--list {
|
|
4009
|
+
left: 0;
|
|
4010
|
+
right: 0;
|
|
4011
|
+
height: 100%;
|
|
4012
|
+
}
|
|
4013
|
+
.filepond--root[data-style-panel-layout~='compact'] .filepond--item,
|
|
4014
|
+
.filepond--root[data-style-panel-layout~='integrated'] .filepond--item {
|
|
4015
|
+
margin: 0;
|
|
4016
|
+
}
|
|
4017
|
+
.filepond--root[data-style-panel-layout~='compact'] .filepond--file-wrapper,
|
|
4018
|
+
.filepond--root[data-style-panel-layout~='integrated'] .filepond--file-wrapper {
|
|
4019
|
+
height: 100%;
|
|
4020
|
+
}
|
|
4021
|
+
.filepond--root[data-style-panel-layout~='compact'] .filepond--drop-label,
|
|
4022
|
+
.filepond--root[data-style-panel-layout~='integrated'] .filepond--drop-label {
|
|
4023
|
+
z-index: 7;
|
|
4024
|
+
}
|
|
4025
|
+
.filepond--root[data-style-panel-layout~='circle'] {
|
|
4026
|
+
border-radius: 99999rem;
|
|
4027
|
+
overflow: hidden;
|
|
4028
|
+
}
|
|
4029
|
+
.filepond--root[data-style-panel-layout~='circle'] > .filepond--panel {
|
|
4030
|
+
border-radius: inherit;
|
|
4031
|
+
}
|
|
4032
|
+
.filepond--root[data-style-panel-layout~='circle'] > .filepond--panel > * {
|
|
4033
|
+
display: none;
|
|
4034
|
+
}
|
|
4035
|
+
.filepond--root[data-style-panel-layout~='circle'] {
|
|
4036
|
+
/* circle cuts of this info, so best to hide it */
|
|
4037
|
+
}
|
|
4038
|
+
.filepond--root[data-style-panel-layout~='circle'] .filepond--file-info {
|
|
4039
|
+
display: none;
|
|
4040
|
+
}
|
|
4041
|
+
.filepond--root[data-style-panel-layout~='circle'] .filepond--file-status {
|
|
4042
|
+
display: none;
|
|
4043
|
+
}
|
|
4044
|
+
.filepond--root[data-style-panel-layout~='circle'] .filepond--action-edit-item {
|
|
4045
|
+
opacity: 1 !important;
|
|
4046
|
+
visibility: visible !important;
|
|
4047
|
+
}
|
|
4048
|
+
/* dirfty way to fix circular overflow issue on safari 11+ */
|
|
4049
|
+
@media not all and (min-resolution: 0.001dpcm) {
|
|
4050
|
+
@supports (-webkit-appearance: none) and (stroke-color: transparent) {
|
|
4051
|
+
.filepond--root[data-style-panel-layout~='circle'] {
|
|
4052
|
+
will-change: transform;
|
|
4053
|
+
}
|
|
4054
|
+
}
|
|
4055
|
+
}
|
|
4056
|
+
.filepond--panel-root {
|
|
4057
|
+
border-radius: 0.5em;
|
|
4058
|
+
background-color: #f1f0ef;
|
|
4059
|
+
}
|
|
4060
|
+
.filepond--panel {
|
|
4061
|
+
position: absolute;
|
|
4062
|
+
left: 0;
|
|
4063
|
+
top: 0;
|
|
4064
|
+
right: 0;
|
|
4065
|
+
margin: 0;
|
|
4066
|
+
|
|
4067
|
+
/* defaults to 100% height (fixed height mode) this fixes problem with panel height in IE11 */
|
|
4068
|
+
height: 100% !important;
|
|
4069
|
+
|
|
4070
|
+
/* no interaction possible with panel */
|
|
4071
|
+
pointer-events: none;
|
|
4072
|
+
}
|
|
4073
|
+
.filepond-panel:not([data-scalable='false']) {
|
|
4074
|
+
height: auto !important;
|
|
4075
|
+
}
|
|
4076
|
+
.filepond--panel[data-scalable='false'] > div {
|
|
4077
|
+
display: none;
|
|
4078
|
+
}
|
|
4079
|
+
.filepond--panel[data-scalable='true'] {
|
|
4080
|
+
/* this seems to fix Chrome performance issues */
|
|
4081
|
+
/* - when box-shadow is enabled */
|
|
4082
|
+
/* - when multiple ponds are active on the same page */
|
|
4083
|
+
-webkit-transform-style: preserve-3d;
|
|
4084
|
+
transform-style: preserve-3d;
|
|
4085
|
+
|
|
4086
|
+
/* prevent borders and backgrounds */
|
|
4087
|
+
background-color: transparent !important;
|
|
4088
|
+
border: none !important;
|
|
4089
|
+
}
|
|
4090
|
+
.filepond--panel-top,
|
|
4091
|
+
.filepond--panel-bottom,
|
|
4092
|
+
.filepond--panel-center {
|
|
4093
|
+
position: absolute;
|
|
4094
|
+
left: 0;
|
|
4095
|
+
top: 0;
|
|
4096
|
+
right: 0;
|
|
4097
|
+
margin: 0;
|
|
4098
|
+
padding: 0;
|
|
4099
|
+
}
|
|
4100
|
+
.filepond--panel-top,
|
|
4101
|
+
.filepond--panel-bottom {
|
|
4102
|
+
height: 0.5em;
|
|
4103
|
+
}
|
|
4104
|
+
.filepond--panel-top {
|
|
4105
|
+
border-bottom-left-radius: 0 !important;
|
|
4106
|
+
border-bottom-right-radius: 0 !important;
|
|
4107
|
+
border-bottom: none !important;
|
|
4108
|
+
|
|
4109
|
+
/* fixes tiny transparant line between top and center panel */
|
|
4110
|
+
}
|
|
4111
|
+
.filepond--panel-top::after {
|
|
4112
|
+
content: '';
|
|
4113
|
+
position: absolute;
|
|
4114
|
+
height: 2px;
|
|
4115
|
+
left: 0;
|
|
4116
|
+
right: 0;
|
|
4117
|
+
bottom: -1px;
|
|
4118
|
+
background-color: inherit;
|
|
4119
|
+
}
|
|
4120
|
+
.filepond--panel-center,
|
|
4121
|
+
.filepond--panel-bottom {
|
|
4122
|
+
will-change: transform;
|
|
4123
|
+
-webkit-backface-visibility: hidden;
|
|
4124
|
+
backface-visibility: hidden;
|
|
4125
|
+
-webkit-transform-origin: left top;
|
|
4126
|
+
transform-origin: left top;
|
|
4127
|
+
-webkit-transform: translate3d(0, 0.5em, 0);
|
|
4128
|
+
transform: translate3d(0, 0.5em, 0);
|
|
4129
|
+
}
|
|
4130
|
+
.filepond--panel-bottom {
|
|
4131
|
+
border-top-left-radius: 0 !important;
|
|
4132
|
+
border-top-right-radius: 0 !important;
|
|
4133
|
+
border-top: none !important;
|
|
4134
|
+
|
|
4135
|
+
/* fixes tiny transparant line between bottom and center of panel */
|
|
4136
|
+
}
|
|
4137
|
+
.filepond--panel-bottom::before {
|
|
4138
|
+
content: '';
|
|
4139
|
+
position: absolute;
|
|
4140
|
+
height: 2px;
|
|
4141
|
+
left: 0;
|
|
4142
|
+
right: 0;
|
|
4143
|
+
top: -1px;
|
|
4144
|
+
background-color: inherit;
|
|
4145
|
+
}
|
|
4146
|
+
.filepond--panel-center {
|
|
4147
|
+
/* the center panel is scaled using scale3d to fit the correct height */
|
|
4148
|
+
/* we use 100px instead of 1px as scaling 1px to a huge height is really laggy on chrome */
|
|
4149
|
+
height: 100px !important;
|
|
4150
|
+
border-top: none !important;
|
|
4151
|
+
border-bottom: none !important;
|
|
4152
|
+
border-radius: 0 !important;
|
|
4153
|
+
|
|
4154
|
+
/* hide if not transformed, prevents a little flash when the panel is at 100px height while attached for first time */
|
|
4155
|
+
}
|
|
4156
|
+
.filepond--panel-center:not([style]) {
|
|
4157
|
+
visibility: hidden;
|
|
4158
|
+
}
|
|
4159
|
+
.filepond--progress-indicator {
|
|
4160
|
+
position: static;
|
|
4161
|
+
width: 1.25em;
|
|
4162
|
+
height: 1.25em;
|
|
4163
|
+
|
|
4164
|
+
color: #fff;
|
|
4165
|
+
|
|
4166
|
+
/* can't have margins */
|
|
4167
|
+
margin: 0;
|
|
4168
|
+
|
|
4169
|
+
/* no interaction possible with progress indicator */
|
|
4170
|
+
pointer-events: none;
|
|
4171
|
+
|
|
4172
|
+
/* will be animated */
|
|
4173
|
+
will-change: transform, opacity;
|
|
4174
|
+
}
|
|
4175
|
+
.filepond--progress-indicator svg {
|
|
4176
|
+
width: 100%;
|
|
4177
|
+
height: 100%;
|
|
4178
|
+
vertical-align: top;
|
|
4179
|
+
transform-box: fill-box; /* should center the animation correctly when zoomed in */
|
|
4180
|
+
}
|
|
4181
|
+
.filepond--progress-indicator path {
|
|
4182
|
+
fill: none;
|
|
4183
|
+
stroke: currentColor;
|
|
4184
|
+
}
|
|
4185
|
+
.filepond--list-scroller {
|
|
4186
|
+
z-index: 6;
|
|
4187
|
+
}
|
|
4188
|
+
.filepond--drop-label {
|
|
4189
|
+
z-index: 5;
|
|
4190
|
+
}
|
|
4191
|
+
.filepond--drip {
|
|
4192
|
+
z-index: 3;
|
|
4193
|
+
}
|
|
4194
|
+
.filepond--root > .filepond--panel {
|
|
4195
|
+
z-index: 2;
|
|
4196
|
+
}
|
|
4197
|
+
.filepond--browser {
|
|
4198
|
+
z-index: 1;
|
|
4199
|
+
}
|
|
4200
|
+
.filepond--root {
|
|
4201
|
+
/* layout*/
|
|
4202
|
+
box-sizing: border-box;
|
|
4203
|
+
position: relative;
|
|
4204
|
+
margin-bottom: 1em;
|
|
4205
|
+
|
|
4206
|
+
/* base font size for whole component */
|
|
4207
|
+
font-size: 1rem;
|
|
4208
|
+
|
|
4209
|
+
/* base line height */
|
|
4210
|
+
line-height: normal;
|
|
4211
|
+
|
|
4212
|
+
/* up uses default system font family */
|
|
4213
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif,
|
|
4214
|
+
'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
|
|
4215
|
+
|
|
4216
|
+
/* will increase font weight a bit on Safari */
|
|
4217
|
+
font-weight: 450;
|
|
4218
|
+
|
|
4219
|
+
/* default text alignment */
|
|
4220
|
+
text-align: left;
|
|
4221
|
+
|
|
4222
|
+
/* better text rendering on Safari */
|
|
4223
|
+
text-rendering: optimizeLegibility;
|
|
4224
|
+
|
|
4225
|
+
/* text direction is ltr for now */
|
|
4226
|
+
direction: ltr;
|
|
4227
|
+
|
|
4228
|
+
/* optimize rendering */
|
|
4229
|
+
/* https://developer.mozilla.org/en-US/docs/Web/CSS/contain */
|
|
4230
|
+
contain: layout style size;
|
|
4231
|
+
|
|
4232
|
+
/* correct box sizing, line-height and positioning on child elements */
|
|
4233
|
+
}
|
|
4234
|
+
.filepond--root * {
|
|
4235
|
+
box-sizing: inherit;
|
|
4236
|
+
line-height: inherit;
|
|
4237
|
+
}
|
|
4238
|
+
.filepond--root *:not(text) {
|
|
4239
|
+
font-size: inherit;
|
|
4240
|
+
}
|
|
4241
|
+
.filepond--root {
|
|
4242
|
+
/* block everything */
|
|
4243
|
+
}
|
|
4244
|
+
.filepond--root[data-disabled] {
|
|
4245
|
+
pointer-events: none;
|
|
4246
|
+
}
|
|
4247
|
+
.filepond--root[data-disabled] .filepond--list-scroller {
|
|
4248
|
+
pointer-events: all;
|
|
4249
|
+
}
|
|
4250
|
+
.filepond--root[data-disabled] .filepond--list {
|
|
4251
|
+
pointer-events: none;
|
|
4252
|
+
}
|
|
4253
|
+
/**
|
|
4254
|
+
* Root element children layout
|
|
4255
|
+
*/
|
|
4256
|
+
.filepond--root .filepond--drop-label {
|
|
4257
|
+
min-height: 4.75em;
|
|
4258
|
+
}
|
|
4259
|
+
.filepond--root .filepond--list-scroller {
|
|
4260
|
+
margin-top: 1em;
|
|
4261
|
+
margin-bottom: 1em;
|
|
4262
|
+
}
|
|
4263
|
+
.filepond--root .filepond--credits {
|
|
4264
|
+
position: absolute;
|
|
4265
|
+
right: 0;
|
|
4266
|
+
opacity: 0.4;
|
|
4267
|
+
line-height: 0.85;
|
|
4268
|
+
font-size: 11px;
|
|
4269
|
+
color: inherit;
|
|
4270
|
+
text-decoration: none;
|
|
4271
|
+
z-index: 3;
|
|
4272
|
+
bottom: -14px;
|
|
4273
|
+
}
|
|
4274
|
+
.filepond--root .filepond--credits[style] {
|
|
4275
|
+
top: 0;
|
|
4276
|
+
bottom: auto;
|
|
4277
|
+
margin-top: 14px;
|
|
4278
|
+
}
|
|
4279
|
+
|
|
4280
|
+
/* ---- file-input.css ---- */
|
|
4281
|
+
/* ---- FileInput (FilePond, docs/adr/0004) ------------------------------------
|
|
4282
|
+
FilePond's own stylesheet (filepond/dist/filepond.css) is concatenated just before this file, inside the
|
|
4283
|
+
same layer. Everything here is scoped under .sc-file-input and wins by specificity, never !important.
|
|
4284
|
+
FilePond lays out its rows in JS from measured sizes, so spacing is set in em on its elements and the
|
|
4285
|
+
zone's height through min-height on the drop label. */
|
|
4286
|
+
.sc-file-input-field {
|
|
4287
|
+
/* Drop zone height: two control heights, so `size` and compact density move it with the other fields. */
|
|
4288
|
+
--_zone: calc(var(--_h) * 2);
|
|
4289
|
+
}
|
|
4290
|
+
.sc-file-input {
|
|
4291
|
+
position: relative;
|
|
4292
|
+
box-sizing: border-box;
|
|
4293
|
+
border: var(--sc-border-width-hairline) dashed var(--sc-color-border-strong);
|
|
4294
|
+
border-radius: var(--sc-radius-lg);
|
|
4295
|
+
background: var(--sc-color-surface-default);
|
|
4296
|
+
color: var(--sc-color-text-default);
|
|
4297
|
+
font-size: var(--_fs);
|
|
4298
|
+
transition:
|
|
4299
|
+
border-color var(--sc-duration-fast) var(--sc-ease-standard),
|
|
4300
|
+
background-color var(--sc-duration-fast) var(--sc-ease-standard);
|
|
4301
|
+
}
|
|
4302
|
+
.sc-file-input:not([data-disabled]):hover {
|
|
4303
|
+
border-color: var(--sc-color-text-muted);
|
|
4304
|
+
}
|
|
4305
|
+
/* The file input is FilePond's single tab stop and is invisible; the ring goes on the zone. */
|
|
4306
|
+
.sc-file-input:has(.filepond--browser:focus-visible) {
|
|
4307
|
+
border-color: var(--sc-color-border-focus);
|
|
4308
|
+
outline: var(--sc-border-width-focus) solid var(--sc-color-border-focus);
|
|
4309
|
+
outline-offset: var(--sc-border-width-focus);
|
|
4310
|
+
}
|
|
4311
|
+
.sc-file-input:has(.filepond--root[data-hopper-state='drag-over']) {
|
|
4312
|
+
border-style: solid;
|
|
4313
|
+
border-color: var(--sc-color-accent-default);
|
|
4314
|
+
background: var(--sc-color-accent-subtle);
|
|
4315
|
+
}
|
|
4316
|
+
.sc-file-input[data-invalid] {
|
|
4317
|
+
border-color: var(--sc-color-danger-solid);
|
|
4318
|
+
}
|
|
4319
|
+
.sc-file-input[data-disabled] {
|
|
4320
|
+
border-style: solid;
|
|
4321
|
+
border-color: var(--sc-color-border-default);
|
|
4322
|
+
background: var(--sc-color-surface-sunken);
|
|
4323
|
+
color: var(--sc-color-text-muted);
|
|
4324
|
+
cursor: not-allowed;
|
|
4325
|
+
}
|
|
4326
|
+
|
|
4327
|
+
/* Before FilePond loads (server render, first paint): the same zone, inert. */
|
|
4328
|
+
.sc-file-input__placeholder {
|
|
4329
|
+
display: flex;
|
|
4330
|
+
align-items: center;
|
|
4331
|
+
justify-content: center;
|
|
4332
|
+
min-block-size: var(--_zone);
|
|
4333
|
+
padding: var(--sc-spacing-xs);
|
|
4334
|
+
color: var(--sc-color-text-muted);
|
|
4335
|
+
text-align: center;
|
|
4336
|
+
}
|
|
4337
|
+
.sc-file-input__browse {
|
|
4338
|
+
color: var(--sc-color-text-link);
|
|
4339
|
+
text-decoration: underline;
|
|
4340
|
+
text-underline-offset: 0.2em;
|
|
4341
|
+
}
|
|
4342
|
+
|
|
4343
|
+
/* FilePond's root and the panel it animates behind the rows: the zone above paints the surface instead. */
|
|
4344
|
+
.sc-file-input .filepond--root {
|
|
4345
|
+
margin: 0;
|
|
4346
|
+
font-family: inherit;
|
|
4347
|
+
font-size: inherit;
|
|
4348
|
+
font-weight: inherit;
|
|
4349
|
+
line-height: var(--sc-font-line-height-ui);
|
|
4350
|
+
color: inherit;
|
|
4351
|
+
}
|
|
4352
|
+
.sc-file-input .filepond--panel-root {
|
|
4353
|
+
background-color: transparent;
|
|
4354
|
+
}
|
|
4355
|
+
.sc-file-input .filepond--drip {
|
|
4356
|
+
display: none;
|
|
4357
|
+
}
|
|
4358
|
+
.sc-file-input .filepond--root .filepond--drop-label {
|
|
4359
|
+
min-height: var(--_zone);
|
|
4360
|
+
color: var(--sc-color-text-muted);
|
|
4361
|
+
}
|
|
4362
|
+
/* Disabled reads through the sunken surface, solid border and cursor; the text stays at muted so it keeps AA
|
|
4363
|
+
(axe cannot tell this label belongs to a disabled control). */
|
|
4364
|
+
.sc-file-input[data-disabled] .filepond--root .filepond--drop-label {
|
|
4365
|
+
color: var(--sc-color-text-muted);
|
|
4366
|
+
}
|
|
4367
|
+
.sc-file-input .filepond--drop-label.filepond--drop-label label {
|
|
4368
|
+
padding: var(--sc-spacing-xs);
|
|
4369
|
+
font-size: 1em;
|
|
4370
|
+
line-height: var(--sc-font-line-height-ui);
|
|
4371
|
+
cursor: pointer;
|
|
4372
|
+
}
|
|
4373
|
+
.sc-file-input .filepond--root[data-disabled] .filepond--drop-label label {
|
|
4374
|
+
opacity: 1;
|
|
4375
|
+
}
|
|
4376
|
+
.sc-file-input .filepond--label-action {
|
|
4377
|
+
color: var(--sc-color-text-link);
|
|
4378
|
+
text-decoration-color: currentColor;
|
|
4379
|
+
text-underline-offset: 0.2em;
|
|
4380
|
+
}
|
|
4381
|
+
.sc-file-input[data-disabled] .filepond--label-action {
|
|
4382
|
+
color: inherit;
|
|
4383
|
+
}
|
|
4384
|
+
.sc-file-input .filepond--root .filepond--list-scroller {
|
|
4385
|
+
margin-block: 0 0.5em;
|
|
4386
|
+
}
|
|
4387
|
+
.sc-file-input .filepond--list.filepond--list {
|
|
4388
|
+
inset-inline: 0.5em;
|
|
4389
|
+
}
|
|
4390
|
+
|
|
4391
|
+
/* File rows */
|
|
4392
|
+
.sc-file-input .filepond--item {
|
|
4393
|
+
margin: 0.25em 0;
|
|
4394
|
+
}
|
|
4395
|
+
.sc-file-input .filepond--item-panel {
|
|
4396
|
+
border-radius: var(--sc-radius-md);
|
|
4397
|
+
background-color: var(--sc-color-surface-sunken);
|
|
4398
|
+
}
|
|
4399
|
+
.sc-file-input[data-disabled] .filepond--item-panel {
|
|
4400
|
+
background-color: var(--sc-color-surface-default);
|
|
4401
|
+
}
|
|
4402
|
+
.sc-file-input .filepond--item > .filepond--panel .filepond--panel-bottom {
|
|
4403
|
+
box-shadow: none;
|
|
4404
|
+
}
|
|
4405
|
+
.sc-file-input .filepond--file {
|
|
4406
|
+
align-items: center;
|
|
4407
|
+
padding: 0.5em 0.75em;
|
|
4408
|
+
color: var(--sc-color-text-default);
|
|
4409
|
+
}
|
|
4410
|
+
.sc-file-input[data-disabled] .filepond--file {
|
|
4411
|
+
color: var(--sc-color-text-muted);
|
|
4412
|
+
}
|
|
4413
|
+
.sc-file-input .filepond--file-info {
|
|
4414
|
+
flex-direction: row;
|
|
4415
|
+
align-items: baseline;
|
|
4416
|
+
gap: var(--sc-spacing-xs);
|
|
4417
|
+
margin-inline-end: 2.5em;
|
|
4418
|
+
}
|
|
4419
|
+
.sc-file-input .filepond--file-info .filepond--file-info-main {
|
|
4420
|
+
flex: 0 1 auto;
|
|
4421
|
+
inline-size: auto;
|
|
4422
|
+
font-size: 1em;
|
|
4423
|
+
font-weight: var(--sc-font-weight-medium);
|
|
4424
|
+
line-height: var(--sc-font-line-height-ui);
|
|
4425
|
+
}
|
|
4426
|
+
.sc-file-input .filepond--file-info .filepond--file-info-sub {
|
|
4427
|
+
flex: none;
|
|
4428
|
+
font-size: var(--sc-font-size-xs);
|
|
4429
|
+
font-variant-numeric: tabular-nums;
|
|
4430
|
+
color: var(--sc-color-text-muted);
|
|
4431
|
+
opacity: 1;
|
|
4432
|
+
}
|
|
4433
|
+
.sc-file-input .filepond--file-status {
|
|
4434
|
+
display: none;
|
|
4435
|
+
}
|
|
4436
|
+
.sc-file-input .filepond--progress-indicator {
|
|
4437
|
+
color: var(--sc-color-text-muted);
|
|
4438
|
+
}
|
|
4439
|
+
/* The × at the end of each row: a ghost icon button. */
|
|
4440
|
+
.sc-file-input .filepond--file-action-button.filepond--file-action-button {
|
|
4441
|
+
display: inline-grid;
|
|
4442
|
+
place-items: center;
|
|
4443
|
+
inline-size: var(--sc-size-control-sm);
|
|
4444
|
+
block-size: var(--sc-size-control-sm);
|
|
4445
|
+
border-radius: var(--sc-radius-sm);
|
|
4446
|
+
font-size: inherit;
|
|
4447
|
+
}
|
|
4448
|
+
.sc-file-input .filepond--file [data-align*='right'] {
|
|
4449
|
+
inset-inline-end: 0.25em;
|
|
4450
|
+
}
|
|
4451
|
+
.sc-file-input .filepond--file-action-button.filepond--file-action-button svg {
|
|
4452
|
+
inline-size: var(--sc-size-icon-md);
|
|
4453
|
+
block-size: var(--sc-size-icon-md);
|
|
4454
|
+
}
|
|
4455
|
+
.sc-file-input .filepond--action-remove-item {
|
|
4456
|
+
top: 50%;
|
|
4457
|
+
margin-block-start: calc(var(--sc-size-control-sm) / -2);
|
|
4458
|
+
background: transparent;
|
|
4459
|
+
color: var(--sc-color-text-muted);
|
|
4460
|
+
box-shadow: none;
|
|
4461
|
+
cursor: pointer;
|
|
4462
|
+
transition:
|
|
4463
|
+
background-color var(--sc-duration-fast) var(--sc-ease-standard),
|
|
4464
|
+
color var(--sc-duration-fast) var(--sc-ease-standard);
|
|
4465
|
+
}
|
|
4466
|
+
.sc-file-input .filepond--action-remove-item:hover,
|
|
4467
|
+
.sc-file-input .filepond--action-remove-item:focus {
|
|
4468
|
+
background: var(--sc-color-surface-hover);
|
|
4469
|
+
color: var(--sc-color-text-default);
|
|
4470
|
+
box-shadow: none;
|
|
4471
|
+
}
|
|
4472
|
+
.sc-file-input .filepond--file-action-button.filepond--file-action-button:focus-visible {
|
|
4473
|
+
outline: var(--sc-border-width-focus) solid var(--sc-color-border-focus);
|
|
4474
|
+
outline-offset: 0;
|
|
4475
|
+
}
|
|
4476
|
+
.sc-file-input .filepond--action-remove-item[disabled] {
|
|
4477
|
+
background: transparent;
|
|
4478
|
+
color: var(--sc-color-text-subtle);
|
|
4479
|
+
cursor: not-allowed;
|
|
4480
|
+
}
|
|
4481
|
+
|
|
4482
|
+
/* The message slot stays in the tree (it is the live region); out of the flow while empty. */
|
|
4483
|
+
.sc-file-input__messages {
|
|
4484
|
+
display: flex;
|
|
4485
|
+
flex-direction: column;
|
|
4486
|
+
gap: var(--sc-spacing-3xs);
|
|
4487
|
+
}
|
|
4488
|
+
.sc-file-input__messages:empty {
|
|
4489
|
+
position: absolute;
|
|
4490
|
+
}
|
|
4491
|
+
|
|
4492
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4493
|
+
.sc-file-input,
|
|
4494
|
+
.sc-file-input .filepond--action-remove-item {
|
|
4495
|
+
transition: none;
|
|
4496
|
+
}
|
|
4497
|
+
}
|
|
4498
|
+
|
|
2673
4499
|
}
|