@smilodon/core 1.3.3 → 1.3.5

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/dist/index.umd.js CHANGED
@@ -1672,19 +1672,19 @@
1672
1672
  display: flex;
1673
1673
  align-items: center;
1674
1674
  flex-wrap: wrap;
1675
- gap: 6px;
1676
- padding: 6px 52px 6px 8px;
1677
- min-height: 44px;
1678
- background: white;
1679
- border: 1px solid #d1d5db;
1680
- border-radius: 6px;
1675
+ gap: var(--select-input-gap, 6px);
1676
+ padding: var(--select-input-padding, 6px 52px 6px 8px);
1677
+ min-height: var(--select-input-min-height, 44px);
1678
+ background: var(--select-input-bg, white);
1679
+ border: var(--select-input-border, 1px solid #d1d5db);
1680
+ border-radius: var(--select-input-border-radius, 6px);
1681
1681
  box-sizing: border-box;
1682
1682
  transition: all 0.2s ease;
1683
1683
  }
1684
1684
 
1685
1685
  .input-container:focus-within {
1686
- border-color: #667eea;
1687
- box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
1686
+ border-color: var(--select-input-focus-border, #667eea);
1687
+ box-shadow: var(--select-input-focus-shadow, 0 0 0 3px rgba(102, 126, 234, 0.1));
1688
1688
  }
1689
1689
 
1690
1690
  /* Gradient separator before arrow */
@@ -1692,17 +1692,17 @@
1692
1692
  content: '';
1693
1693
  position: absolute;
1694
1694
  top: 50%;
1695
- right: 40px;
1695
+ right: var(--select-separator-position, 40px);
1696
1696
  transform: translateY(-50%);
1697
- width: 1px;
1698
- height: 60%;
1699
- background: linear-gradient(
1697
+ width: var(--select-separator-width, 1px);
1698
+ height: var(--select-separator-height, 60%);
1699
+ background: var(--select-separator-gradient, linear-gradient(
1700
1700
  to bottom,
1701
1701
  transparent 0%,
1702
1702
  rgba(0, 0, 0, 0.1) 20%,
1703
1703
  rgba(0, 0, 0, 0.1) 80%,
1704
1704
  transparent 100%
1705
- );
1705
+ ));
1706
1706
  pointer-events: none;
1707
1707
  z-index: 1;
1708
1708
  }
@@ -1712,30 +1712,30 @@
1712
1712
  top: 0;
1713
1713
  right: 0;
1714
1714
  bottom: 0;
1715
- width: 40px;
1715
+ width: var(--select-arrow-width, 40px);
1716
1716
  display: flex;
1717
1717
  align-items: center;
1718
1718
  justify-content: center;
1719
1719
  cursor: pointer;
1720
1720
  transition: background-color 0.2s ease;
1721
- border-radius: 0 4px 4px 0;
1721
+ border-radius: var(--select-arrow-border-radius, 0 4px 4px 0);
1722
1722
  z-index: 2;
1723
1723
  }
1724
1724
 
1725
1725
  .dropdown-arrow-container:hover {
1726
- background-color: rgba(102, 126, 234, 0.08);
1726
+ background-color: var(--select-arrow-hover-bg, rgba(102, 126, 234, 0.08));
1727
1727
  }
1728
1728
 
1729
1729
  .dropdown-arrow {
1730
- width: 16px;
1731
- height: 16px;
1732
- color: #667eea;
1730
+ width: var(--select-arrow-size, 16px);
1731
+ height: var(--select-arrow-size, 16px);
1732
+ color: var(--select-arrow-color, #667eea);
1733
1733
  transition: transform 0.2s ease, color 0.2s ease;
1734
1734
  transform: translateY(0);
1735
1735
  }
1736
1736
 
1737
1737
  .dropdown-arrow-container:hover .dropdown-arrow {
1738
- color: #667eea;
1738
+ color: var(--select-arrow-hover-color, #667eea);
1739
1739
  }
1740
1740
 
1741
1741
  .dropdown-arrow.open {
@@ -1744,31 +1744,32 @@
1744
1744
 
1745
1745
  .select-input {
1746
1746
  flex: 1;
1747
- min-width: 120px;
1748
- padding: 4px;
1747
+ min-width: var(--select-input-min-width, 120px);
1748
+ padding: var(--select-input-field-padding, 4px);
1749
1749
  border: none;
1750
- font-size: 14px;
1751
- line-height: 1.5;
1752
- color: #1f2937;
1750
+ font-size: var(--select-input-font-size, 14px);
1751
+ line-height: var(--select-input-line-height, 1.5);
1752
+ color: var(--select-input-color, #1f2937);
1753
1753
  background: transparent;
1754
1754
  box-sizing: border-box;
1755
1755
  outline: none;
1756
+ font-family: var(--select-font-family, inherit);
1756
1757
  }
1757
1758
 
1758
1759
  .select-input::placeholder {
1759
- color: #9ca3af;
1760
+ color: var(--select-input-placeholder-color, #9ca3af);
1760
1761
  }
1761
1762
 
1762
1763
  .selection-badge {
1763
1764
  display: inline-flex;
1764
1765
  align-items: center;
1765
- gap: 4px;
1766
- padding: 4px 8px;
1767
- margin: 2px;
1768
- background: #667eea;
1769
- color: white;
1770
- border-radius: 4px;
1771
- font-size: 13px;
1766
+ gap: var(--select-badge-gap, 4px);
1767
+ padding: var(--select-badge-padding, 4px 8px);
1768
+ margin: var(--select-badge-margin, 2px);
1769
+ background: var(--select-badge-bg, #667eea);
1770
+ color: var(--select-badge-color, white);
1771
+ border-radius: var(--select-badge-border-radius, 4px);
1772
+ font-size: var(--select-badge-font-size, 13px);
1772
1773
  line-height: 1;
1773
1774
  }
1774
1775
 
@@ -1776,22 +1777,22 @@
1776
1777
  display: inline-flex;
1777
1778
  align-items: center;
1778
1779
  justify-content: center;
1779
- width: 16px;
1780
- height: 16px;
1780
+ width: var(--select-badge-remove-size, 16px);
1781
+ height: var(--select-badge-remove-size, 16px);
1781
1782
  padding: 0;
1782
1783
  margin-left: 4px;
1783
- background: rgba(255, 255, 255, 0.3);
1784
+ background: var(--select-badge-remove-bg, rgba(255, 255, 255, 0.3));
1784
1785
  border: none;
1785
1786
  border-radius: 50%;
1786
- color: white;
1787
- font-size: 16px;
1787
+ color: var(--select-badge-remove-color, white);
1788
+ font-size: var(--select-badge-remove-font-size, 16px);
1788
1789
  line-height: 1;
1789
1790
  cursor: pointer;
1790
1791
  transition: background 0.2s;
1791
1792
  }
1792
1793
 
1793
1794
  .badge-remove:hover {
1794
- background: rgba(255, 255, 255, 0.5);
1795
+ background: var(--select-badge-remove-hover-bg, rgba(255, 255, 255, 0.5));
1795
1796
  }
1796
1797
 
1797
1798
  .select-input:disabled {
@@ -1805,59 +1806,68 @@
1805
1806
  top: 100%;
1806
1807
  left: 0;
1807
1808
  right: 0;
1808
- margin-top: 4px;
1809
- max-height: 300px;
1809
+ margin-top: var(--select-dropdown-margin-top, 4px);
1810
+ max-height: var(--select-dropdown-max-height, 300px);
1810
1811
  overflow: hidden;
1811
1812
  background: var(--select-dropdown-bg, white);
1812
- border: 1px solid var(--select-dropdown-border, #ccc);
1813
- border-radius: var(--select-border-radius, 4px);
1813
+ border: var(--select-dropdown-border, 1px solid #ccc);
1814
+ border-radius: var(--select-dropdown-border-radius, 4px);
1814
1815
  box-shadow: var(--select-dropdown-shadow, 0 4px 6px rgba(0,0,0,0.1));
1815
1816
  z-index: var(--select-dropdown-z-index, 1000);
1816
1817
  }
1817
1818
 
1818
1819
  .options-container {
1819
1820
  position: relative;
1820
- max-height: 300px;
1821
+ max-height: var(--select-options-max-height, 300px);
1821
1822
  overflow: auto;
1822
1823
  transition: opacity 0.2s ease-in-out;
1824
+ background: var(--select-options-bg, white);
1823
1825
  }
1824
1826
 
1825
1827
  .option {
1826
- padding: 8px 12px;
1828
+ padding: var(--select-option-padding, 8px 12px);
1827
1829
  cursor: pointer;
1828
- color: inherit;
1829
- transition: background-color 0.15s ease;
1830
+ color: var(--select-option-color, #1f2937);
1831
+ background: var(--select-option-bg, white);
1832
+ transition: var(--select-option-transition, background-color 0.15s ease);
1830
1833
  user-select: none;
1834
+ font-size: var(--select-option-font-size, 14px);
1835
+ line-height: var(--select-option-line-height, 1.5);
1836
+ border-bottom: var(--select-option-border-bottom, none);
1831
1837
  }
1832
1838
 
1833
1839
  .option:hover {
1834
- background-color: #f3f4f6;
1840
+ background-color: var(--select-option-hover-bg, #f3f4f6);
1841
+ color: var(--select-option-hover-color, #1f2937);
1835
1842
  }
1836
1843
 
1837
1844
  .option.selected {
1838
- background-color: #e0e7ff;
1839
- color: #4338ca;
1840
- font-weight: 500;
1845
+ background-color: var(--select-option-selected-bg, #e0e7ff);
1846
+ color: var(--select-option-selected-color, #4338ca);
1847
+ font-weight: var(--select-option-selected-weight, 500);
1841
1848
  }
1842
1849
 
1843
1850
  .option.active {
1844
- background-color: #f3f4f6;
1851
+ background-color: var(--select-option-active-bg, #f3f4f6);
1852
+ color: var(--select-option-active-color, #1f2937);
1845
1853
  }
1846
1854
 
1847
1855
  .load-more-container {
1848
- padding: 12px;
1856
+ padding: var(--select-load-more-padding, 12px);
1849
1857
  text-align: center;
1850
- border-top: 1px solid var(--select-divider-color, #e0e0e0);
1858
+ border-top: var(--select-divider-border, 1px solid #e0e0e0);
1859
+ background: var(--select-load-more-bg, white);
1851
1860
  }
1852
1861
 
1853
1862
  .load-more-button {
1854
- padding: 8px 16px;
1855
- border: 1px solid var(--select-button-border, #1976d2);
1863
+ padding: var(--select-button-padding, 8px 16px);
1864
+ border: var(--select-button-border, 1px solid #1976d2);
1856
1865
  background: var(--select-button-bg, white);
1857
1866
  color: var(--select-button-color, #1976d2);
1858
- border-radius: 4px;
1867
+ border-radius: var(--select-button-border-radius, 4px);
1859
1868
  cursor: pointer;
1860
- font-size: 14px;
1869
+ font-size: var(--select-button-font-size, 14px);
1870
+ font-family: var(--select-font-family, inherit);
1861
1871
  transition: all 0.2s ease;
1862
1872
  }
1863
1873
 
@@ -1867,21 +1877,23 @@
1867
1877
  }
1868
1878
 
1869
1879
  .load-more-button:disabled {
1870
- opacity: 0.5;
1880
+ opacity: var(--select-button-disabled-opacity, 0.5);
1871
1881
  cursor: not-allowed;
1872
1882
  }
1873
1883
 
1874
1884
  .busy-bucket {
1875
- padding: 16px;
1885
+ padding: var(--select-busy-padding, 16px);
1876
1886
  text-align: center;
1877
1887
  color: var(--select-busy-color, #666);
1888
+ background: var(--select-busy-bg, white);
1889
+ font-size: var(--select-busy-font-size, 14px);
1878
1890
  }
1879
1891
 
1880
1892
  .spinner {
1881
1893
  display: inline-block;
1882
- width: 20px;
1883
- height: 20px;
1884
- border: 2px solid var(--select-spinner-color, #ccc);
1894
+ width: var(--select-spinner-size, 20px);
1895
+ height: var(--select-spinner-size, 20px);
1896
+ border: var(--select-spinner-border, 2px solid #ccc);
1885
1897
  border-top-color: var(--select-spinner-active-color, #1976d2);
1886
1898
  border-radius: 50%;
1887
1899
  animation: spin 0.6s linear infinite;
@@ -1892,16 +1904,20 @@
1892
1904
  }
1893
1905
 
1894
1906
  .empty-state {
1895
- padding: 24px;
1907
+ padding: var(--select-empty-padding, 24px);
1896
1908
  text-align: center;
1897
1909
  color: var(--select-empty-color, #999);
1910
+ font-size: var(--select-empty-font-size, 14px);
1911
+ background: var(--select-empty-bg, white);
1898
1912
  }
1899
1913
 
1900
1914
  .searching-state {
1901
- padding: 24px;
1915
+ padding: var(--select-searching-padding, 24px);
1902
1916
  text-align: center;
1903
- color: #667eea;
1917
+ color: var(--select-searching-color, #667eea);
1918
+ font-size: var(--select-searching-font-size, 14px);
1904
1919
  font-style: italic;
1920
+ background: var(--select-searching-bg, white);
1905
1921
  animation: pulse 1.5s ease-in-out infinite;
1906
1922
  }
1907
1923
 
@@ -1930,22 +1946,39 @@
1930
1946
  }
1931
1947
  }
1932
1948
 
1933
- /* Accessibility: Dark mode */
1934
- @media (prefers-color-scheme: dark) {
1935
- .select-input {
1949
+ /* Dark mode - Opt-in via class or data attribute */
1950
+ :host(.dark-mode),
1951
+ :host([data-theme="dark"]) {
1952
+ .input-container {
1936
1953
  background: var(--select-dark-bg, #1f2937);
1937
- color: var(--select-dark-text, #f9fafb);
1938
1954
  border-color: var(--select-dark-border, #4b5563);
1939
1955
  }
1940
1956
 
1957
+ .select-input {
1958
+ color: var(--select-dark-text, #f9fafb);
1959
+ }
1960
+
1961
+ .select-input::placeholder {
1962
+ color: var(--select-dark-placeholder, #6b7280);
1963
+ }
1964
+
1941
1965
  .select-dropdown {
1942
1966
  background: var(--select-dark-dropdown-bg, #1f2937);
1943
1967
  border-color: var(--select-dark-dropdown-border, #4b5563);
1944
- color: var(--select-dark-text, #f9fafb);
1968
+ }
1969
+
1970
+ .options-container {
1971
+ background: var(--select-dark-options-bg, #1f2937);
1972
+ }
1973
+
1974
+ .option {
1975
+ color: var(--select-dark-option-color, #f9fafb);
1976
+ background: var(--select-dark-option-bg, #1f2937);
1945
1977
  }
1946
1978
 
1947
1979
  .option:hover {
1948
1980
  background-color: var(--select-dark-option-hover-bg, #374151);
1981
+ color: var(--select-dark-option-hover-color, #f9fafb);
1949
1982
  }
1950
1983
 
1951
1984
  .option.selected {
@@ -1955,11 +1988,23 @@
1955
1988
 
1956
1989
  .option.active {
1957
1990
  background-color: var(--select-dark-option-active-bg, #374151);
1991
+ color: var(--select-dark-option-active-color, #f9fafb);
1958
1992
  }
1959
1993
 
1960
- .busy-bucket {
1994
+ .busy-bucket,
1995
+ .empty-state {
1961
1996
  color: var(--select-dark-busy-color, #9ca3af);
1962
1997
  }
1998
+
1999
+ .input-container::after {
2000
+ background: linear-gradient(
2001
+ to bottom,
2002
+ transparent 0%,
2003
+ rgba(255, 255, 255, 0.1) 20%,
2004
+ rgba(255, 255, 255, 0.1) 80%,
2005
+ transparent 100%
2006
+ );
2007
+ }
1963
2008
  }
1964
2009
 
1965
2010
  /* Accessibility: High contrast mode */