@internetarchive/collection-browser 0.4.19 → 0.4.20

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 (60) hide show
  1. package/dist/src/collection-browser.d.ts +8 -1
  2. package/dist/src/collection-browser.js +319 -291
  3. package/dist/src/collection-browser.js.map +1 -1
  4. package/dist/src/collection-facets/facets-template.js +2 -0
  5. package/dist/src/collection-facets/facets-template.js.map +1 -1
  6. package/dist/src/collection-facets/more-facets-content.js +63 -70
  7. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  8. package/dist/src/collection-facets/more-facets-pagination.js +49 -55
  9. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  10. package/dist/src/collection-facets/toggle-switch.js +46 -56
  11. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  12. package/dist/src/collection-facets.d.ts +1 -1
  13. package/dist/src/collection-facets.js +94 -84
  14. package/dist/src/collection-facets.js.map +1 -1
  15. package/dist/src/sort-filter-bar/alpha-bar.d.ts +2 -1
  16. package/dist/src/sort-filter-bar/alpha-bar.js +33 -25
  17. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  18. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +1 -1
  19. package/dist/src/sort-filter-bar/sort-filter-bar.js +198 -186
  20. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  21. package/dist/src/styles/sr-only.d.ts +1 -0
  22. package/dist/src/styles/sr-only.js +18 -0
  23. package/dist/src/styles/sr-only.js.map +1 -0
  24. package/dist/src/tiles/grid/account-tile.js +1 -1
  25. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  26. package/dist/src/tiles/grid/collection-tile.js +2 -2
  27. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  28. package/dist/src/tiles/grid/item-tile.js +2 -2
  29. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  30. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +5 -15
  31. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js.map +1 -1
  32. package/dist/src/tiles/grid/tile-stats.js +58 -65
  33. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  34. package/dist/src/tiles/tile-dispatcher.js +3 -2
  35. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  36. package/dist/test/collection-facets.test.js +8 -5
  37. package/dist/test/collection-facets.test.js.map +1 -1
  38. package/dist/test/sort-filter-bar/alpha-bar.test.js +12 -12
  39. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  40. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +2 -2
  41. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  42. package/package.json +3 -3
  43. package/src/collection-browser.ts +322 -293
  44. package/src/collection-facets/facets-template.ts +2 -0
  45. package/src/collection-facets/more-facets-content.ts +63 -70
  46. package/src/collection-facets/more-facets-pagination.ts +49 -55
  47. package/src/collection-facets/toggle-switch.ts +51 -61
  48. package/src/collection-facets.ts +96 -85
  49. package/src/sort-filter-bar/alpha-bar.ts +26 -18
  50. package/src/sort-filter-bar/sort-filter-bar.ts +200 -186
  51. package/src/styles/sr-only.ts +18 -0
  52. package/src/tiles/grid/account-tile.ts +1 -1
  53. package/src/tiles/grid/collection-tile.ts +2 -2
  54. package/src/tiles/grid/item-tile.ts +2 -2
  55. package/src/tiles/grid/styles/tile-grid-shared-styles.ts +5 -15
  56. package/src/tiles/grid/tile-stats.ts +66 -73
  57. package/src/tiles/tile-dispatcher.ts +1 -0
  58. package/test/collection-facets.test.ts +10 -2
  59. package/test/sort-filter-bar/alpha-bar.test.ts +16 -12
  60. package/test/sort-filter-bar/sort-filter-bar.test.ts +2 -2
@@ -70,6 +70,7 @@ import {
70
70
  analyticsActions,
71
71
  analyticsCategories,
72
72
  } from './utils/analytics-events';
73
+ import { srOnlyStyle } from './styles/sr-only';
73
74
 
74
75
  @customElement('collection-browser')
75
76
  export class CollectionBrowser
@@ -377,7 +378,9 @@ export class CollectionBrowser
377
378
  class="column${this.isResizeToMobile ? ' preload' : ''}"
378
379
  >
379
380
  <div id="mobile-header-container">
380
- ${this.mobileView ? this.mobileFacetsTemplate : nothing}
381
+ ${this.mobileView
382
+ ? this.mobileFacetsTemplate
383
+ : html`<h2 id="facets-header" class="sr-only">Filters</h2>`}
381
384
  <div id="results-total">
382
385
  <span id="big-results-count">
383
386
  ${shouldShowSearching ? html`Searching&hellip;` : resultsCount}
@@ -387,15 +390,12 @@ export class CollectionBrowser
387
390
  </span>
388
391
  </div>
389
392
  </div>
390
- <div
391
- id="facets-container"
392
- class=${!this.mobileView || this.mobileFacetsVisible
393
- ? 'expanded'
394
- : ''}
395
- >
396
- ${this.facetsTemplate}
397
- <div id="facets-scroll-sentinel"></div>
398
- </div>
393
+ ${this.mobileView
394
+ ? nothing
395
+ : html`<div id="facets-container" aria-labelledby="facets-header">
396
+ ${this.facetsTemplate}
397
+ <div id="facets-scroll-sentinel"></div>
398
+ </div>`}
399
399
  ${this.mobileView ? nothing : html`<div id="facets-bottom-fade"></div>`}
400
400
  </div>
401
401
  <div id="right-column" class="column">
@@ -411,6 +411,7 @@ export class CollectionBrowser
411
411
  return html`<infinite-scroller
412
412
  class=${this.infiniteScrollerClasses}
413
413
  itemCount=${this.placeholderType ? 0 : nothing}
414
+ ariaLandmarkLabel="Search results"
414
415
  .cellProvider=${this}
415
416
  .placeholderCellTemplate=${this.placeholderCellTemplate}
416
417
  @scrollThresholdReached=${this.scrollThresholdReached}
@@ -581,28 +582,34 @@ export class CollectionBrowser
581
582
  this.selectedCreatorFilter = e.detail.selectedLetter;
582
583
  }
583
584
 
584
- private get mobileFacetsTemplate() {
585
+ /**
586
+ * The full template for how the facets should be structured in mobile view,
587
+ * including the collapsible container (with header) and the facets themselves.
588
+ */
589
+ private get mobileFacetsTemplate(): TemplateResult {
590
+ const toggleFacetsVisible = () => {
591
+ this.isResizeToMobile = false;
592
+ this.mobileFacetsVisible = !this.mobileFacetsVisible;
593
+ };
594
+
585
595
  return html`
586
- <div id="mobile-filter-collapse">
587
- <h1
588
- @click=${() => {
589
- this.isResizeToMobile = false;
590
- this.mobileFacetsVisible = !this.mobileFacetsVisible;
591
- }}
592
- @keyup=${() => {
593
- this.isResizeToMobile = false;
594
- this.mobileFacetsVisible = !this.mobileFacetsVisible;
595
- }}
596
- >
597
- <span class="collapser ${this.mobileFacetsVisible ? 'open' : ''}">
598
- ${chevronIcon}
599
- </span>
600
- Filters
601
- </h1>
602
- </div>
596
+ <details
597
+ id="mobile-filter-collapse"
598
+ @click=${toggleFacetsVisible}
599
+ @keyup=${toggleFacetsVisible}
600
+ >
601
+ <summary>
602
+ <span class="collapser-icon">${chevronIcon}</span>
603
+ <h2>Filters</h2>
604
+ </summary>
605
+ ${this.facetsTemplate}
606
+ </details>
603
607
  `;
604
608
  }
605
609
 
610
+ /**
611
+ * The template for the facets component alone, without any surrounding wrappers.
612
+ */
606
613
  private get facetsTemplate() {
607
614
  return html`
608
615
  <collection-facets
@@ -1733,306 +1740,328 @@ export class CollectionBrowser
1733
1740
  }
1734
1741
  }
1735
1742
 
1736
- static styles = css`
1737
- :host {
1738
- display: block;
1743
+ static get styles() {
1744
+ return [
1745
+ srOnlyStyle,
1746
+ css`
1747
+ :host {
1748
+ display: block;
1739
1749
 
1740
- --leftColumnWidth: 18rem;
1741
- --leftColumnPaddingRight: 2.5rem;
1742
- }
1750
+ --leftColumnWidth: 18rem;
1751
+ --leftColumnPaddingRight: 2.5rem;
1752
+ }
1743
1753
 
1744
- /**
1745
- * When page width resizes from desktop to mobile, use this class to
1746
- * disable expand/collapse transition when loading.
1747
- */
1748
- .preload * {
1749
- transition: none !important;
1750
- -webkit-transition: none !important;
1751
- -moz-transition: none !important;
1752
- -ms-transition: none !important;
1753
- -o-transition: none !important;
1754
- }
1754
+ /**
1755
+ * When page width resizes from desktop to mobile, use this class to
1756
+ * disable expand/collapse transition when loading.
1757
+ */
1758
+ .preload * {
1759
+ transition: none !important;
1760
+ -webkit-transition: none !important;
1761
+ -moz-transition: none !important;
1762
+ -ms-transition: none !important;
1763
+ -o-transition: none !important;
1764
+ }
1755
1765
 
1756
- #content-container {
1757
- display: flex;
1758
- }
1766
+ #content-container {
1767
+ display: flex;
1768
+ }
1759
1769
 
1760
- .collapser {
1761
- display: inline-block;
1762
- }
1770
+ .collapser-icon {
1771
+ display: inline-block;
1772
+ }
1763
1773
 
1764
- .collapser svg {
1765
- width: 10px;
1766
- height: 10px;
1767
- transition: transform 0.2s ease-out;
1768
- }
1774
+ .collapser-icon svg {
1775
+ display: inline-block;
1776
+ width: 12px;
1777
+ height: 12px;
1778
+ transition: transform 0.2s ease-out;
1779
+ }
1769
1780
 
1770
- .collapser.open svg {
1771
- transform: rotate(90deg);
1772
- }
1781
+ #mobile-filter-collapse > summary {
1782
+ cursor: pointer;
1783
+ list-style: none;
1784
+ }
1773
1785
 
1774
- #mobile-filter-collapse h1 {
1775
- cursor: pointer;
1776
- }
1786
+ #mobile-filter-collapse[open] > summary {
1787
+ margin-bottom: 10px;
1788
+ }
1777
1789
 
1778
- #content-container.mobile {
1779
- display: block;
1780
- }
1790
+ #mobile-filter-collapse h2 {
1791
+ display: inline-block;
1792
+ margin: 0;
1793
+ font-size: 2rem;
1794
+ }
1781
1795
 
1782
- .column {
1783
- padding-top: 2rem;
1784
- }
1796
+ #mobile-filter-collapse[open] svg {
1797
+ transform: rotate(90deg);
1798
+ }
1785
1799
 
1786
- #right-column {
1787
- flex: 1;
1788
- position: relative;
1789
- border-left: 1px solid rgb(232, 232, 232);
1790
- border-right: 1px solid rgb(232, 232, 232);
1791
- padding-left: 1rem;
1792
- padding-right: 1rem;
1793
- background: #fff;
1794
- }
1800
+ #content-container.mobile {
1801
+ display: block;
1802
+ }
1795
1803
 
1796
- .mobile #right-column {
1797
- border-left: none;
1798
- padding: 5px 5px 0;
1799
- }
1804
+ .column {
1805
+ padding-top: 2rem;
1806
+ }
1800
1807
 
1801
- #left-column {
1802
- width: var(--leftColumnWidth, 18rem);
1803
- /* Prevents Safari from shrinking col at first draw */
1804
- min-width: var(--leftColumnWidth, 18rem);
1805
- padding-top: 0;
1806
- /* Reduced padding by 0.2rem to add the invisible border in the rule below */
1807
- padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
1808
- border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
1809
- z-index: 1;
1810
- }
1808
+ #right-column {
1809
+ flex: 1;
1810
+ position: relative;
1811
+ border-left: 1px solid rgb(232, 232, 232);
1812
+ border-right: 1px solid rgb(232, 232, 232);
1813
+ padding-left: 1rem;
1814
+ padding-right: 1rem;
1815
+ background: #fff;
1816
+ }
1811
1817
 
1812
- .desktop #left-column {
1813
- top: 0;
1814
- position: sticky;
1815
- height: calc(100vh - 2rem);
1816
- max-height: calc(100vh - 2rem);
1817
- overflow-x: hidden;
1818
- overflow-y: scroll;
1819
-
1820
- /*
1821
- * Firefox doesn't support any of the -webkit-scrollbar stuff below, but
1822
- * does at least give us a tiny bit of control over width & color.
1823
- */
1824
- scrollbar-width: thin;
1825
- scrollbar-color: transparent transparent;
1826
- }
1827
- .desktop #left-column:hover {
1828
- scrollbar-color: auto;
1829
- }
1830
- .desktop #left-column::-webkit-scrollbar {
1831
- appearance: none;
1832
- width: 6px;
1833
- }
1834
- .desktop #left-column::-webkit-scrollbar-button {
1835
- height: 3px;
1836
- background: transparent;
1837
- }
1838
- .desktop #left-column::-webkit-scrollbar-corner {
1839
- background: transparent;
1840
- }
1841
- .desktop #left-column::-webkit-scrollbar-thumb {
1842
- border-radius: 4px;
1843
- }
1844
- .desktop #left-column:hover::-webkit-scrollbar-thumb {
1845
- background: rgba(0, 0, 0, 0.15);
1846
- }
1847
- .desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
1848
- background: rgba(0, 0, 0, 0.2);
1849
- }
1850
- .desktop #left-column:hover::-webkit-scrollbar-thumb:active {
1851
- background: rgba(0, 0, 0, 0.3);
1852
- }
1818
+ .mobile #right-column {
1819
+ border-left: none;
1820
+ padding: 5px 5px 0;
1821
+ }
1853
1822
 
1854
- #facets-bottom-fade {
1855
- background: linear-gradient(
1856
- to bottom,
1857
- #f5f5f700 0%,
1858
- #f5f5f7c0 50%,
1859
- #f5f5f7 80%,
1860
- #f5f5f7 100%
1861
- );
1862
- position: fixed;
1863
- bottom: 0;
1864
- height: 50px;
1865
- /* Wide enough to cover the content, but leave the scrollbar uncovered */
1866
- width: calc(
1867
- var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
1868
- );
1869
- z-index: 2;
1870
- pointer-events: none;
1871
- transition: height 0.1s ease;
1872
- }
1873
- #facets-bottom-fade.hidden {
1874
- height: 0;
1875
- }
1823
+ #left-column {
1824
+ width: var(--leftColumnWidth, 18rem);
1825
+ /* Prevents Safari from shrinking col at first draw */
1826
+ min-width: var(--leftColumnWidth, 18rem);
1827
+ padding-top: 0;
1828
+ /* Reduced padding by 0.2rem to add the invisible border in the rule below */
1829
+ padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
1830
+ border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
1831
+ z-index: 1;
1832
+ }
1876
1833
 
1877
- .desktop #left-column-scroll-sentinel {
1878
- width: 1px;
1879
- height: 100vh;
1880
- background: transparent;
1881
- }
1834
+ .desktop #left-column {
1835
+ top: 0;
1836
+ position: sticky;
1837
+ height: calc(100vh - 2rem);
1838
+ max-height: calc(100vh - 2rem);
1839
+ overflow-x: hidden;
1840
+ overflow-y: scroll;
1841
+
1842
+ /*
1843
+ * Firefox doesn't support any of the -webkit-scrollbar stuff below, but
1844
+ * does at least give us a tiny bit of control over width & color.
1845
+ */
1846
+ scrollbar-width: thin;
1847
+ scrollbar-color: transparent transparent;
1848
+ }
1849
+ .desktop #left-column:hover {
1850
+ scrollbar-color: auto;
1851
+ }
1852
+ .desktop #left-column::-webkit-scrollbar {
1853
+ appearance: none;
1854
+ width: 6px;
1855
+ }
1856
+ .desktop #left-column::-webkit-scrollbar-button {
1857
+ height: 3px;
1858
+ background: transparent;
1859
+ }
1860
+ .desktop #left-column::-webkit-scrollbar-corner {
1861
+ background: transparent;
1862
+ }
1863
+ .desktop #left-column::-webkit-scrollbar-thumb {
1864
+ border-radius: 4px;
1865
+ }
1866
+ .desktop #left-column:hover::-webkit-scrollbar-thumb {
1867
+ background: rgba(0, 0, 0, 0.15);
1868
+ }
1869
+ .desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
1870
+ background: rgba(0, 0, 0, 0.2);
1871
+ }
1872
+ .desktop #left-column:hover::-webkit-scrollbar-thumb:active {
1873
+ background: rgba(0, 0, 0, 0.3);
1874
+ }
1882
1875
 
1883
- .desktop #facets-scroll-sentinel {
1884
- width: 1px;
1885
- height: 1px;
1886
- background: transparent;
1887
- }
1876
+ #facets-bottom-fade {
1877
+ background: linear-gradient(
1878
+ to bottom,
1879
+ #f5f5f700 0%,
1880
+ #f5f5f7c0 50%,
1881
+ #f5f5f7 80%,
1882
+ #f5f5f7 100%
1883
+ );
1884
+ position: fixed;
1885
+ bottom: 0;
1886
+ height: 50px;
1887
+ /* Wide enough to cover the content, but leave the scrollbar uncovered */
1888
+ width: calc(
1889
+ var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
1890
+ );
1891
+ z-index: 2;
1892
+ pointer-events: none;
1893
+ transition: height 0.1s ease;
1894
+ }
1895
+ #facets-bottom-fade.hidden {
1896
+ height: 0;
1897
+ }
1888
1898
 
1889
- .mobile #left-column {
1890
- width: 100%;
1891
- padding: 0;
1892
- }
1899
+ .desktop #left-column-scroll-sentinel {
1900
+ width: 1px;
1901
+ height: 100vh;
1902
+ background: transparent;
1903
+ }
1893
1904
 
1894
- #mobile-header-container {
1895
- display: flex;
1896
- justify-content: space-between;
1897
- align-items: center;
1898
- }
1905
+ .desktop #facets-scroll-sentinel {
1906
+ width: 1px;
1907
+ height: 1px;
1908
+ background: transparent;
1909
+ }
1899
1910
 
1900
- .desktop #mobile-header-container {
1901
- padding-top: 2rem;
1902
- }
1911
+ .mobile #left-column {
1912
+ width: 100%;
1913
+ padding: 0;
1914
+ }
1903
1915
 
1904
- #facets-container {
1905
- position: relative;
1906
- max-height: 0;
1907
- transition: max-height 0.2s ease-in-out;
1908
- z-index: 1;
1909
- padding-bottom: 2rem;
1910
- }
1916
+ #mobile-header-container {
1917
+ display: flex;
1918
+ justify-content: space-between;
1919
+ align-items: flex-start;
1920
+ margin: 10px 0;
1921
+ }
1911
1922
 
1912
- .mobile #facets-container {
1913
- overflow: hidden;
1914
- padding-bottom: 0;
1915
- padding-left: 10px;
1916
- padding-right: 10px;
1917
- }
1923
+ .desktop #mobile-header-container {
1924
+ padding-top: 2rem;
1925
+ }
1918
1926
 
1919
- #facets-container.expanded {
1920
- max-height: 2000px;
1921
- }
1927
+ #facets-container {
1928
+ position: relative;
1929
+ max-height: 0;
1930
+ transition: max-height 0.2s ease-in-out;
1931
+ z-index: 1;
1932
+ padding-bottom: 2rem;
1933
+ }
1922
1934
 
1923
- #results-total {
1924
- display: flex;
1925
- align-items: baseline;
1926
- margin-bottom: 5rem;
1927
- }
1935
+ .mobile #facets-container {
1936
+ overflow: hidden;
1937
+ padding-bottom: 0;
1938
+ padding-left: 10px;
1939
+ padding-right: 10px;
1940
+ }
1928
1941
 
1929
- .mobile #results-total {
1930
- margin-bottom: 0;
1931
- }
1942
+ #facets-container.expanded {
1943
+ max-height: 2000px;
1944
+ }
1932
1945
 
1933
- #big-results-count {
1934
- font-size: 2.4rem;
1935
- font-weight: 500;
1936
- margin-right: 5px;
1937
- }
1946
+ #results-total {
1947
+ display: flex;
1948
+ align-items: baseline;
1949
+ margin-bottom: 5rem;
1950
+ }
1938
1951
 
1939
- #big-results-label {
1940
- font-size: 1.4rem;
1941
- font-weight: 200;
1942
- }
1952
+ .mobile #results-total {
1953
+ margin-bottom: 0;
1954
+ margin-right: 5px;
1955
+ }
1943
1956
 
1944
- #list-header {
1945
- max-height: 4.2rem;
1946
- }
1957
+ #big-results-count {
1958
+ font-size: 2.4rem;
1959
+ font-weight: 500;
1960
+ margin-right: 5px;
1961
+ }
1947
1962
 
1948
- .loading-cover {
1949
- position: absolute;
1950
- top: 0;
1951
- left: 0;
1952
- width: 100%;
1953
- height: 100%;
1954
- display: flex;
1955
- justify-content: center;
1956
- z-index: 1;
1957
- padding-top: 50px;
1958
- }
1963
+ #big-results-label {
1964
+ font-size: 1.4rem;
1965
+ font-weight: 200;
1966
+ }
1959
1967
 
1960
- circular-activity-indicator {
1961
- width: 30px;
1962
- height: 30px;
1963
- }
1968
+ #list-header {
1969
+ max-height: 4.2rem;
1970
+ }
1964
1971
 
1965
- sort-filter-bar {
1966
- display: block;
1967
- margin-bottom: 4rem;
1968
- }
1972
+ .loading-cover {
1973
+ position: absolute;
1974
+ top: 0;
1975
+ left: 0;
1976
+ width: 100%;
1977
+ height: 100%;
1978
+ display: flex;
1979
+ justify-content: center;
1980
+ z-index: 1;
1981
+ padding-top: 50px;
1982
+ }
1969
1983
 
1970
- infinite-scroller {
1971
- display: block;
1972
- --infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
1973
- --infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
1974
- }
1984
+ circular-activity-indicator {
1985
+ width: 30px;
1986
+ height: 30px;
1987
+ }
1975
1988
 
1976
- infinite-scroller.list-compact {
1977
- --infiniteScrollerCellMinWidth: var(
1978
- --collectionBrowserCellMinWidth,
1979
- 100%
1980
- );
1981
- --infiniteScrollerCellMinHeight: 34px; /* override infinite scroller component */
1982
- --infiniteScrollerCellMaxHeight: 56px;
1983
- --infiniteScrollerRowGap: 0px;
1984
- }
1989
+ sort-filter-bar {
1990
+ display: block;
1991
+ margin-bottom: 4rem;
1992
+ }
1985
1993
 
1986
- infinite-scroller.list-detail {
1987
- --infiniteScrollerCellMinWidth: var(
1988
- --collectionBrowserCellMinWidth,
1989
- 100%
1990
- );
1991
- --infiniteScrollerCellMinHeight: var(
1992
- --collectionBrowserCellMinHeight,
1993
- 5rem
1994
- );
1995
- /*
1996
- 30px in spec, compensating for a -4px margin
1997
- to align title with top of item image
1998
- src/tiles/list/tile-list.ts
1999
- */
2000
- --infiniteScrollerRowGap: 34px;
2001
- }
1994
+ infinite-scroller {
1995
+ display: block;
1996
+ --infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
1997
+ --infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
1998
+ }
2002
1999
 
2003
- .mobile infinite-scroller.list-detail {
2004
- --infiniteScrollerRowGap: 24px;
2005
- }
2000
+ infinite-scroller.list-compact {
2001
+ --infiniteScrollerCellMinWidth: var(
2002
+ --collectionBrowserCellMinWidth,
2003
+ 100%
2004
+ );
2005
+ --infiniteScrollerCellMinHeight: 34px; /* override infinite scroller component */
2006
+ --infiniteScrollerCellMaxHeight: 56px;
2007
+ --infiniteScrollerRowGap: 0px;
2008
+ }
2006
2009
 
2007
- infinite-scroller.grid {
2008
- --infiniteScrollerCellMinWidth: var(
2009
- --collectionBrowserCellMinWidth,
2010
- 17rem
2011
- );
2012
- --infiniteScrollerCellMaxWidth: var(--collectionBrowserCellMaxWidth, 1fr);
2013
- }
2010
+ infinite-scroller.list-detail {
2011
+ --infiniteScrollerCellMinWidth: var(
2012
+ --collectionBrowserCellMinWidth,
2013
+ 100%
2014
+ );
2015
+ --infiniteScrollerCellMinHeight: var(
2016
+ --collectionBrowserCellMinHeight,
2017
+ 5rem
2018
+ );
2019
+ /*
2020
+ 30px in spec, compensating for a -4px margin
2021
+ to align title with top of item image
2022
+ src/tiles/list/tile-list.ts
2023
+ */
2024
+ --infiniteScrollerRowGap: 34px;
2025
+ }
2014
2026
 
2015
- /* Allow tiles to shrink a bit further at smaller viewport widths */
2016
- @media screen and (max-width: 880px) {
2017
- infinite-scroller.grid {
2018
- --infiniteScrollerCellMinWidth: var(
2019
- --collectionBrowserCellMinWidth,
2020
- 15rem
2021
- );
2022
- }
2023
- }
2024
- /* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
2025
- @media screen and (max-width: 360px) {
2026
- infinite-scroller.grid {
2027
- --infiniteScrollerCellMinWidth: var(
2028
- --collectionBrowserCellMinWidth,
2029
- 12rem
2030
- );
2031
- }
2032
- }
2027
+ .mobile infinite-scroller.list-detail {
2028
+ --infiniteScrollerRowGap: 24px;
2029
+ }
2033
2030
 
2034
- infinite-scroller.hidden {
2035
- display: none;
2036
- }
2037
- `;
2031
+ infinite-scroller.grid {
2032
+ --infiniteScrollerCellMinWidth: var(
2033
+ --collectionBrowserCellMinWidth,
2034
+ 17rem
2035
+ );
2036
+ --infiniteScrollerCellMaxWidth: var(
2037
+ --collectionBrowserCellMaxWidth,
2038
+ 1fr
2039
+ );
2040
+ }
2041
+
2042
+ /* Allow tiles to shrink a bit further at smaller viewport widths */
2043
+ @media screen and (max-width: 880px) {
2044
+ infinite-scroller.grid {
2045
+ --infiniteScrollerCellMinWidth: var(
2046
+ --collectionBrowserCellMinWidth,
2047
+ 15rem
2048
+ );
2049
+ }
2050
+ }
2051
+ /* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
2052
+ @media screen and (max-width: 360px) {
2053
+ infinite-scroller.grid {
2054
+ --infiniteScrollerCellMinWidth: var(
2055
+ --collectionBrowserCellMinWidth,
2056
+ 12rem
2057
+ );
2058
+ }
2059
+ }
2060
+
2061
+ infinite-scroller.hidden {
2062
+ display: none;
2063
+ }
2064
+ `,
2065
+ ];
2066
+ }
2038
2067
  }