@sofya-ds/react 1.2.0 → 1.3.0
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.cjs +72 -11
- package/dist/index.css +1 -1
- package/dist/index.d.cts +8 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.js +70 -11
- package/package.json +2 -2
- package/dist/index.d 2.cts +0 -621
- package/dist/index.d 2.ts +0 -621
package/dist/index.js
CHANGED
|
@@ -1799,22 +1799,51 @@ var dropdownVariantOptions = [
|
|
|
1799
1799
|
"language",
|
|
1800
1800
|
"selected"
|
|
1801
1801
|
];
|
|
1802
|
+
var dropdownAppearanceOptions = ["panel", "card"];
|
|
1803
|
+
var dropdownTriggerSizeOptions = ["default", "sm", "lg"];
|
|
1802
1804
|
var dropdownLanguageItems = [
|
|
1803
1805
|
{ value: "en-US", label: "English", languageLocale: "en-US" },
|
|
1804
1806
|
{ value: "pt-BR", label: "Portuguese", languageLocale: "pt-BR" },
|
|
1805
1807
|
{ value: "es-ES", label: "Spanish", languageLocale: "es-ES" }
|
|
1806
1808
|
];
|
|
1807
|
-
var
|
|
1808
|
-
card: "
|
|
1809
|
-
panel: "
|
|
1809
|
+
var dropdownTriggerToneClasses = {
|
|
1810
|
+
card: "text-primary",
|
|
1811
|
+
panel: "text-foreground",
|
|
1810
1812
|
language: "",
|
|
1811
|
-
selected: "
|
|
1813
|
+
selected: "w-full border-[color:var(--sofya-border-strong)] [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] [font-weight:var(--sofya-text-body-font-weight)] leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)]"
|
|
1814
|
+
};
|
|
1815
|
+
var dropdownTriggerSizeClasses = {
|
|
1816
|
+
regular: {
|
|
1817
|
+
default: "h-12 px-6 py-2",
|
|
1818
|
+
sm: "h-10 px-4 py-2",
|
|
1819
|
+
lg: "h-14 px-8 py-4"
|
|
1820
|
+
},
|
|
1821
|
+
selected: {
|
|
1822
|
+
default: "h-10 px-4 py-2",
|
|
1823
|
+
sm: "h-9 px-2 py-2",
|
|
1824
|
+
lg: "h-12 px-6 py-2"
|
|
1825
|
+
},
|
|
1826
|
+
language: {
|
|
1827
|
+
default: "h-[38px] w-[38px] p-0",
|
|
1828
|
+
sm: "h-8 w-8 p-0",
|
|
1829
|
+
lg: "h-11 w-11 p-0"
|
|
1830
|
+
}
|
|
1831
|
+
};
|
|
1832
|
+
var dropdownAppearanceClasses = {
|
|
1833
|
+
panel: {
|
|
1834
|
+
content: "rounded-[10px]",
|
|
1835
|
+
trigger: "rounded-[10px]"
|
|
1836
|
+
},
|
|
1837
|
+
card: {
|
|
1838
|
+
content: "rounded-[20px]",
|
|
1839
|
+
trigger: "rounded-[20px]"
|
|
1840
|
+
}
|
|
1812
1841
|
};
|
|
1813
|
-
var
|
|
1814
|
-
card: "
|
|
1815
|
-
panel: "
|
|
1816
|
-
language: "w-[224px] min-w-[224px]
|
|
1817
|
-
selected: "w-[var(--radix-dropdown-menu-trigger-width)] min-w-[var(--radix-dropdown-menu-trigger-width)]
|
|
1842
|
+
var dropdownContentBaseClasses = {
|
|
1843
|
+
card: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
1844
|
+
panel: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
1845
|
+
language: "w-[224px] min-w-[224px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
1846
|
+
selected: "w-[var(--radix-dropdown-menu-trigger-width)] min-w-[var(--radix-dropdown-menu-trigger-width)] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]"
|
|
1818
1847
|
};
|
|
1819
1848
|
var dropdownItemClasses = {
|
|
1820
1849
|
card: "text-foreground",
|
|
@@ -1834,6 +1863,24 @@ function resolveItemLanguageLocale(item) {
|
|
|
1834
1863
|
}
|
|
1835
1864
|
return isButtonLanguageLocale(item.value) ? item.value : void 0;
|
|
1836
1865
|
}
|
|
1866
|
+
function resolveDropdownAppearance({
|
|
1867
|
+
appearance,
|
|
1868
|
+
variant
|
|
1869
|
+
}) {
|
|
1870
|
+
if (appearance) {
|
|
1871
|
+
return appearance;
|
|
1872
|
+
}
|
|
1873
|
+
return variant === "card" ? "card" : "panel";
|
|
1874
|
+
}
|
|
1875
|
+
function resolveDropdownTriggerSizeFamily(variant) {
|
|
1876
|
+
if (variant === "language") {
|
|
1877
|
+
return "language";
|
|
1878
|
+
}
|
|
1879
|
+
if (variant === "selected") {
|
|
1880
|
+
return "selected";
|
|
1881
|
+
}
|
|
1882
|
+
return "regular";
|
|
1883
|
+
}
|
|
1837
1884
|
function DefaultDropdownTriggerIcon({ variant }) {
|
|
1838
1885
|
if (variant === "selected") {
|
|
1839
1886
|
return /* @__PURE__ */ jsx12(
|
|
@@ -1865,6 +1912,7 @@ function LanguageFlagIcon({ locale }) {
|
|
|
1865
1912
|
}
|
|
1866
1913
|
function Dropdown({
|
|
1867
1914
|
align = "start",
|
|
1915
|
+
appearance,
|
|
1868
1916
|
contentClassName,
|
|
1869
1917
|
defaultOpen,
|
|
1870
1918
|
defaultValue,
|
|
@@ -1879,11 +1927,14 @@ function Dropdown({
|
|
|
1879
1927
|
sideOffset = 8,
|
|
1880
1928
|
triggerClassName,
|
|
1881
1929
|
triggerIcon,
|
|
1930
|
+
triggerSize = "default",
|
|
1882
1931
|
value,
|
|
1883
1932
|
variant = "card"
|
|
1884
1933
|
}) {
|
|
1885
1934
|
const isLanguageVariant = variant === "language";
|
|
1886
1935
|
const isSelectedVariant = variant === "selected";
|
|
1936
|
+
const resolvedAppearance = resolveDropdownAppearance({ appearance, variant });
|
|
1937
|
+
const triggerSizeFamily = resolveDropdownTriggerSizeFamily(variant);
|
|
1887
1938
|
const usesDefaultListStyle = !isLanguageVariant;
|
|
1888
1939
|
const resolvedItems = React12.useMemo(
|
|
1889
1940
|
() => isLanguageVariant ? items && items.length > 0 ? items : dropdownLanguageItems : items ?? [],
|
|
@@ -1933,9 +1984,13 @@ function Dropdown({
|
|
|
1933
1984
|
type: "button",
|
|
1934
1985
|
variant: isLanguageVariant ? "language" : "dropdown",
|
|
1935
1986
|
languageLocale: selectedLanguageLocale,
|
|
1987
|
+
"data-appearance": resolvedAppearance,
|
|
1988
|
+
"data-trigger-size": triggerSize,
|
|
1936
1989
|
className: cn(
|
|
1937
1990
|
"min-w-0",
|
|
1938
|
-
|
|
1991
|
+
dropdownTriggerToneClasses[variant],
|
|
1992
|
+
dropdownTriggerSizeClasses[triggerSizeFamily][triggerSize],
|
|
1993
|
+
dropdownAppearanceClasses[resolvedAppearance].trigger,
|
|
1939
1994
|
selectedTriggerToneClassName,
|
|
1940
1995
|
triggerClassName
|
|
1941
1996
|
),
|
|
@@ -1952,9 +2007,11 @@ function Dropdown({
|
|
|
1952
2007
|
{
|
|
1953
2008
|
align,
|
|
1954
2009
|
sideOffset,
|
|
2010
|
+
"data-appearance": resolvedAppearance,
|
|
1955
2011
|
className: cn(
|
|
1956
2012
|
"sofya-dropdown-content z-50 w-auto min-w-[var(--radix-dropdown-menu-trigger-width)] border bg-card p-2 outline-none",
|
|
1957
|
-
|
|
2013
|
+
dropdownContentBaseClasses[variant],
|
|
2014
|
+
dropdownAppearanceClasses[resolvedAppearance].content,
|
|
1958
2015
|
contentClassName
|
|
1959
2016
|
),
|
|
1960
2017
|
children: /* @__PURE__ */ jsx12(
|
|
@@ -5020,7 +5077,9 @@ export {
|
|
|
5020
5077
|
cardVariants,
|
|
5021
5078
|
createWhitelabelTheme2 as createWhitelabelTheme,
|
|
5022
5079
|
defaultTheme2 as defaultTheme,
|
|
5080
|
+
dropdownAppearanceOptions,
|
|
5023
5081
|
dropdownLanguageItems,
|
|
5082
|
+
dropdownTriggerSizeOptions,
|
|
5024
5083
|
dropdownVariantOptions,
|
|
5025
5084
|
emptyMediaVariantOptions,
|
|
5026
5085
|
gradientToCss,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sofya-ds/react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Sofya React design system with official brand tokens, provider and UI components.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"motion": "^12.38.0",
|
|
60
60
|
"sonner": "^2.0.7",
|
|
61
61
|
"tailwind-merge": "^3.5.0",
|
|
62
|
-
"@sofya-ds/tokens": "1.
|
|
62
|
+
"@sofya-ds/tokens": "1.3.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@testing-library/jest-dom": "^6.9.1",
|