@sofya-ds/react 1.3.2 → 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.cjs +111 -92
- package/dist/index.css +1 -1
- package/dist/index.d.cts +10 -9
- package/dist/index.d.ts +10 -9
- package/dist/index.js +115 -97
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -391,7 +391,7 @@ Icon.displayName = "Icon";
|
|
|
391
391
|
// src/components/text.tsx
|
|
392
392
|
import * as React3 from "react";
|
|
393
393
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
394
|
-
var textSizeOptions = ["h1", "h2", "h3", "h4", "h5", "body", "tiny"];
|
|
394
|
+
var textSizeOptions = ["h1", "h2", "h3", "h4", "h5", "body", "tiny", "extra-tiny"];
|
|
395
395
|
var textVariantOptions = ["default", "gradient", "shiny", "split"];
|
|
396
396
|
var textSplitTypeOptions = ["chars", "words", "words, chars"];
|
|
397
397
|
var defaultElements = {
|
|
@@ -401,7 +401,8 @@ var defaultElements = {
|
|
|
401
401
|
h4: "h4",
|
|
402
402
|
h5: "h5",
|
|
403
403
|
body: "p",
|
|
404
|
-
tiny: "span"
|
|
404
|
+
tiny: "span",
|
|
405
|
+
"extra-tiny": "span"
|
|
405
406
|
};
|
|
406
407
|
var textSizeStyles = Object.fromEntries(
|
|
407
408
|
textSizeOptions.map((size) => [
|
|
@@ -1354,7 +1355,7 @@ var buttonVariants = cva4(
|
|
|
1354
1355
|
language: "border-0 bg-muted bg-cover bg-center bg-no-repeat text-primary-foreground shadow-none hover:brightness-[1.03]",
|
|
1355
1356
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/85",
|
|
1356
1357
|
outline: "border border-primary/15 bg-background text-foreground hover:border-primary/30 hover:bg-background active:bg-background",
|
|
1357
|
-
ghost: "bg-
|
|
1358
|
+
ghost: "bg-transparent text-foreground hover:bg-muted",
|
|
1358
1359
|
destructive: "bg-destructive text-destructive-foreground hover:brightness-[1.04]"
|
|
1359
1360
|
},
|
|
1360
1361
|
size: {
|
|
@@ -1480,7 +1481,7 @@ var Button = React8.forwardRef(
|
|
|
1480
1481
|
hasChildren ? renderTextContent(children, {
|
|
1481
1482
|
as: "span",
|
|
1482
1483
|
className: "inline-flex items-center text-current",
|
|
1483
|
-
size: "
|
|
1484
|
+
size: "tiny",
|
|
1484
1485
|
style: {
|
|
1485
1486
|
fontWeight: "inherit",
|
|
1486
1487
|
letterSpacing: "inherit"
|
|
@@ -1560,21 +1561,12 @@ var surfaceStyles = {
|
|
|
1560
1561
|
"--sofya-surface-shadow-base": "var(--sofya-surface-card-shadow)",
|
|
1561
1562
|
boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
|
|
1562
1563
|
},
|
|
1563
|
-
panel: {
|
|
1564
|
-
backgroundColor: "hsl(var(--sofya-surface-panel-background))",
|
|
1565
|
-
borderColor: "hsl(var(--sofya-surface-panel-border-color))",
|
|
1566
|
-
borderWidth: "var(--sofya-surface-panel-border-width)",
|
|
1567
|
-
borderStyle: "solid",
|
|
1568
|
-
borderRadius: "var(--sofya-surface-panel-radius)",
|
|
1569
|
-
"--sofya-surface-shadow-base": "var(--sofya-surface-panel-shadow)",
|
|
1570
|
-
boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
|
|
1571
|
-
},
|
|
1572
1564
|
focus: {
|
|
1573
1565
|
backgroundColor: "hsl(var(--sofya-surface-focus-background))",
|
|
1574
1566
|
borderColor: "hsl(var(--sofya-surface-focus-border-color))",
|
|
1575
1567
|
borderWidth: "var(--sofya-surface-focus-border-width)",
|
|
1576
1568
|
borderStyle: "solid",
|
|
1577
|
-
borderRadius: "var(--sofya-surface-
|
|
1569
|
+
borderRadius: "var(--sofya-surface-card-radius)",
|
|
1578
1570
|
"--sofya-surface-shadow-base": "var(--sofya-surface-focus-shadow)",
|
|
1579
1571
|
boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
|
|
1580
1572
|
}
|
|
@@ -1598,9 +1590,9 @@ var Surface = SurfaceBase;
|
|
|
1598
1590
|
|
|
1599
1591
|
// src/components/card.tsx
|
|
1600
1592
|
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
1601
|
-
var cardVariants = ["card", "
|
|
1593
|
+
var cardVariants = ["card", "focus"];
|
|
1602
1594
|
function Card({ className, variant = "card", ...props }) {
|
|
1603
|
-
const hasHoverShadow = variant === "card"
|
|
1595
|
+
const hasHoverShadow = variant === "card";
|
|
1604
1596
|
return /* @__PURE__ */ jsx10(
|
|
1605
1597
|
Surface,
|
|
1606
1598
|
{
|
|
@@ -1796,14 +1788,13 @@ function useControllableState({
|
|
|
1796
1788
|
}
|
|
1797
1789
|
|
|
1798
1790
|
// src/components/dropdown.tsx
|
|
1799
|
-
import {
|
|
1791
|
+
import { jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1800
1792
|
var dropdownVariantOptions = [
|
|
1801
1793
|
"card",
|
|
1802
|
-
"panel",
|
|
1803
1794
|
"language",
|
|
1804
1795
|
"selected"
|
|
1805
1796
|
];
|
|
1806
|
-
var dropdownAppearanceOptions = ["
|
|
1797
|
+
var dropdownAppearanceOptions = ["card"];
|
|
1807
1798
|
var dropdownTriggerSizeOptions = ["default", "sm", "lg"];
|
|
1808
1799
|
var dropdownLanguageItems = [
|
|
1809
1800
|
{ value: "en-US", label: "English", languageLocale: "en-US" },
|
|
@@ -1812,7 +1803,6 @@ var dropdownLanguageItems = [
|
|
|
1812
1803
|
];
|
|
1813
1804
|
var dropdownTriggerToneClasses = {
|
|
1814
1805
|
card: "text-primary",
|
|
1815
|
-
panel: "text-foreground",
|
|
1816
1806
|
language: "",
|
|
1817
1807
|
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)]"
|
|
1818
1808
|
};
|
|
@@ -1828,16 +1818,12 @@ var dropdownTriggerSizeClasses = {
|
|
|
1828
1818
|
lg: "h-12 px-6 py-2"
|
|
1829
1819
|
},
|
|
1830
1820
|
language: {
|
|
1831
|
-
default: "h-
|
|
1832
|
-
sm: "h-
|
|
1833
|
-
lg: "h-
|
|
1821
|
+
default: "h-5 w-5 p-0",
|
|
1822
|
+
sm: "h-[18px] w-[18px] p-0",
|
|
1823
|
+
lg: "h-6 w-6 p-0"
|
|
1834
1824
|
}
|
|
1835
1825
|
};
|
|
1836
1826
|
var dropdownAppearanceClasses = {
|
|
1837
|
-
panel: {
|
|
1838
|
-
content: "rounded-[10px]",
|
|
1839
|
-
trigger: "rounded-[10px]"
|
|
1840
|
-
},
|
|
1841
1827
|
card: {
|
|
1842
1828
|
content: "rounded-[20px]",
|
|
1843
1829
|
trigger: "rounded-[20px]"
|
|
@@ -1845,13 +1831,11 @@ var dropdownAppearanceClasses = {
|
|
|
1845
1831
|
};
|
|
1846
1832
|
var dropdownContentBaseClasses = {
|
|
1847
1833
|
card: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
1848
|
-
panel: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
1849
1834
|
language: "w-[224px] min-w-[224px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
1850
1835
|
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)]"
|
|
1851
1836
|
};
|
|
1852
1837
|
var dropdownItemClasses = {
|
|
1853
1838
|
card: "text-foreground",
|
|
1854
|
-
panel: "text-foreground",
|
|
1855
1839
|
language: "text-foreground",
|
|
1856
1840
|
selected: "text-foreground"
|
|
1857
1841
|
};
|
|
@@ -1868,13 +1852,9 @@ function resolveItemLanguageLocale(item) {
|
|
|
1868
1852
|
return isButtonLanguageLocale(item.value) ? item.value : void 0;
|
|
1869
1853
|
}
|
|
1870
1854
|
function resolveDropdownAppearance({
|
|
1871
|
-
appearance
|
|
1872
|
-
variant
|
|
1855
|
+
appearance
|
|
1873
1856
|
}) {
|
|
1874
|
-
|
|
1875
|
-
return appearance;
|
|
1876
|
-
}
|
|
1877
|
-
return variant === "card" ? "card" : "panel";
|
|
1857
|
+
return appearance ?? "card";
|
|
1878
1858
|
}
|
|
1879
1859
|
function resolveDropdownTriggerSizeFamily(variant) {
|
|
1880
1860
|
if (variant === "language") {
|
|
@@ -1909,8 +1889,8 @@ function LanguageFlagIcon({ locale }) {
|
|
|
1909
1889
|
{
|
|
1910
1890
|
alt: "",
|
|
1911
1891
|
"aria-hidden": "true",
|
|
1912
|
-
src:
|
|
1913
|
-
className: "h-[
|
|
1892
|
+
src: buttonLanguageFlagSrc[locale],
|
|
1893
|
+
className: "h-[18px] w-[18px] shrink-0 rounded-full object-cover"
|
|
1914
1894
|
}
|
|
1915
1895
|
);
|
|
1916
1896
|
}
|
|
@@ -2029,6 +2009,47 @@ function Dropdown({
|
|
|
2029
2009
|
const itemLanguageLocale = resolveItemLanguageLocale(item);
|
|
2030
2010
|
const indicator = item.indicator ?? /* @__PURE__ */ jsx12(DefaultDropdownItemIndicator, {});
|
|
2031
2011
|
const itemIcon = item.icon ?? (variant === "language" && itemLanguageLocale ? /* @__PURE__ */ jsx12(LanguageFlagIcon, { locale: itemLanguageLocale }) : null);
|
|
2012
|
+
if (!usesDefaultListStyle) {
|
|
2013
|
+
return /* @__PURE__ */ jsx12(
|
|
2014
|
+
DropdownMenuPrimitive.RadioItem,
|
|
2015
|
+
{
|
|
2016
|
+
value: item.value,
|
|
2017
|
+
disabled: item.disabled,
|
|
2018
|
+
asChild: true,
|
|
2019
|
+
children: /* @__PURE__ */ jsx12(
|
|
2020
|
+
Button,
|
|
2021
|
+
{
|
|
2022
|
+
variant: "ghost",
|
|
2023
|
+
className: cn(
|
|
2024
|
+
"h-auto w-full px-2 py-0 font-normal data-[highlighted]:bg-muted [&>span.relative]:w-full",
|
|
2025
|
+
dropdownItemClasses[variant],
|
|
2026
|
+
itemClassName
|
|
2027
|
+
),
|
|
2028
|
+
children: /* @__PURE__ */ jsxs5("span", { className: "flex w-full items-center gap-2", children: [
|
|
2029
|
+
itemIcon && /* @__PURE__ */ jsx12("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }),
|
|
2030
|
+
/* @__PURE__ */ jsx12("span", { className: "min-w-0 flex-1 truncate text-left", children: renderTextContent(item.label, {
|
|
2031
|
+
as: "span",
|
|
2032
|
+
className: "block truncate text-inherit",
|
|
2033
|
+
size: "tiny"
|
|
2034
|
+
}) }),
|
|
2035
|
+
/* @__PURE__ */ jsx12(
|
|
2036
|
+
"span",
|
|
2037
|
+
{
|
|
2038
|
+
"aria-hidden": "true",
|
|
2039
|
+
className: cn(
|
|
2040
|
+
"flex h-4 w-4 shrink-0 items-center justify-center text-primary transition-opacity duration-sofya ease-sofya",
|
|
2041
|
+
isSelected ? "opacity-100" : "opacity-0"
|
|
2042
|
+
),
|
|
2043
|
+
children: indicator
|
|
2044
|
+
}
|
|
2045
|
+
)
|
|
2046
|
+
] })
|
|
2047
|
+
}
|
|
2048
|
+
)
|
|
2049
|
+
},
|
|
2050
|
+
item.value
|
|
2051
|
+
);
|
|
2052
|
+
}
|
|
2032
2053
|
return /* @__PURE__ */ jsx12(
|
|
2033
2054
|
DropdownMenuPrimitive.RadioItem,
|
|
2034
2055
|
{
|
|
@@ -2036,11 +2057,11 @@ function Dropdown({
|
|
|
2036
2057
|
disabled: item.disabled,
|
|
2037
2058
|
className: cn(
|
|
2038
2059
|
"flex w-full cursor-pointer items-center rounded-[4px] [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-[22px] tracking-[var(--sofya-text-body-letter-spacing)] outline-none transition-colors duration-sofya ease-sofya data-[disabled]:pointer-events-none data-[disabled]:opacity-40",
|
|
2039
|
-
|
|
2060
|
+
"px-0 py-0 data-[highlighted]:bg-transparent [&[data-highlighted]_span[data-dropdown-item-body]]:bg-[color:var(--sofya-surface-selected)]",
|
|
2040
2061
|
dropdownItemClasses[variant],
|
|
2041
2062
|
itemClassName
|
|
2042
2063
|
),
|
|
2043
|
-
children:
|
|
2064
|
+
children: /* @__PURE__ */ jsxs5(
|
|
2044
2065
|
"span",
|
|
2045
2066
|
{
|
|
2046
2067
|
"data-dropdown-item-body": true,
|
|
@@ -2053,7 +2074,7 @@ function Dropdown({
|
|
|
2053
2074
|
/* @__PURE__ */ jsx12("span", { className: "truncate", children: renderTextContent(item.label, {
|
|
2054
2075
|
as: "span",
|
|
2055
2076
|
className: "block truncate text-inherit",
|
|
2056
|
-
size: "
|
|
2077
|
+
size: "tiny"
|
|
2057
2078
|
}) }),
|
|
2058
2079
|
isSelected ? /* @__PURE__ */ jsx12(
|
|
2059
2080
|
"span",
|
|
@@ -2065,28 +2086,7 @@ function Dropdown({
|
|
|
2065
2086
|
) : null
|
|
2066
2087
|
]
|
|
2067
2088
|
}
|
|
2068
|
-
)
|
|
2069
|
-
/* @__PURE__ */ jsxs5("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
2070
|
-
itemIcon ? /* @__PURE__ */ jsx12("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
|
|
2071
|
-
/* @__PURE__ */ jsx12("span", { className: "truncate", children: renderTextContent(item.label, {
|
|
2072
|
-
as: "span",
|
|
2073
|
-
className: "block truncate text-inherit",
|
|
2074
|
-
size: "body"
|
|
2075
|
-
}) })
|
|
2076
|
-
] }),
|
|
2077
|
-
/* @__PURE__ */ jsx12(
|
|
2078
|
-
"span",
|
|
2079
|
-
{
|
|
2080
|
-
"aria-hidden": "true",
|
|
2081
|
-
className: cn(
|
|
2082
|
-
"flex h-4 w-4 shrink-0 items-center justify-center transition-opacity duration-sofya ease-sofya",
|
|
2083
|
-
variant === "language" && "text-primary",
|
|
2084
|
-
isSelected ? "opacity-100" : "opacity-0"
|
|
2085
|
-
),
|
|
2086
|
-
children: indicator
|
|
2087
|
-
}
|
|
2088
|
-
)
|
|
2089
|
-
] })
|
|
2089
|
+
)
|
|
2090
2090
|
},
|
|
2091
2091
|
item.value
|
|
2092
2092
|
);
|
|
@@ -2108,6 +2108,9 @@ var Dialog = DialogPrimitive.Root;
|
|
|
2108
2108
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
2109
2109
|
var DialogPortal = DialogPrimitive.Portal;
|
|
2110
2110
|
var DialogClose = DialogPrimitive.Close;
|
|
2111
|
+
var DialogInternalContext = React13.createContext({
|
|
2112
|
+
showCloseButton: true
|
|
2113
|
+
});
|
|
2111
2114
|
var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
2112
2115
|
DialogPrimitive.Overlay,
|
|
2113
2116
|
{
|
|
@@ -2125,15 +2128,15 @@ var DialogContent = React13.forwardRef(
|
|
|
2125
2128
|
className,
|
|
2126
2129
|
children,
|
|
2127
2130
|
cardClassName,
|
|
2128
|
-
cardVariant = "panel",
|
|
2129
2131
|
overlayClassName,
|
|
2130
2132
|
showCloseButton = true,
|
|
2133
|
+
variant = "card",
|
|
2131
2134
|
...props
|
|
2132
2135
|
}, ref) => {
|
|
2133
2136
|
const dialogCardStyle = {
|
|
2134
2137
|
"--sofya-surface-shadow-override": "var(--sofya-shadow-lg)"
|
|
2135
2138
|
};
|
|
2136
|
-
return /* @__PURE__ */ jsxs6(DialogPortal, { children: [
|
|
2139
|
+
return /* @__PURE__ */ jsx13(DialogInternalContext.Provider, { value: { showCloseButton }, children: /* @__PURE__ */ jsxs6(DialogPortal, { children: [
|
|
2137
2140
|
/* @__PURE__ */ jsx13(DialogOverlay, { className: overlayClassName }),
|
|
2138
2141
|
/* @__PURE__ */ jsx13("div", { className: "sofya-dialog-positioner fixed inset-0 z-50 flex items-center justify-center p-4", children: /* @__PURE__ */ jsx13(
|
|
2139
2142
|
DialogPrimitive.Content,
|
|
@@ -2144,54 +2147,68 @@ var DialogContent = React13.forwardRef(
|
|
|
2144
2147
|
className
|
|
2145
2148
|
),
|
|
2146
2149
|
...props,
|
|
2147
|
-
children: /* @__PURE__ */
|
|
2150
|
+
children: /* @__PURE__ */ jsx13(
|
|
2148
2151
|
Card,
|
|
2149
2152
|
{
|
|
2150
|
-
variant
|
|
2153
|
+
variant,
|
|
2151
2154
|
className: cn(
|
|
2152
|
-
"
|
|
2155
|
+
"flex max-h-[inherit] min-h-0 w-full flex-col gap-6 overflow-y-auto overflow-x-hidden p-6",
|
|
2153
2156
|
cardClassName
|
|
2154
2157
|
),
|
|
2155
2158
|
style: dialogCardStyle,
|
|
2156
|
-
children
|
|
2157
|
-
children,
|
|
2158
|
-
showCloseButton ? /* @__PURE__ */ jsx13(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx13(
|
|
2159
|
-
Button,
|
|
2160
|
-
{
|
|
2161
|
-
type: "button",
|
|
2162
|
-
variant: "ghost",
|
|
2163
|
-
size: "icon",
|
|
2164
|
-
"aria-label": "Close",
|
|
2165
|
-
leftIcon: /* @__PURE__ */ jsx13(Icon, { name: "x", size: 18 }),
|
|
2166
|
-
className: "absolute right-4 top-4 z-10 text-muted-foreground hover:text-foreground"
|
|
2167
|
-
}
|
|
2168
|
-
) }) : null
|
|
2169
|
-
]
|
|
2159
|
+
children
|
|
2170
2160
|
}
|
|
2171
2161
|
)
|
|
2172
2162
|
}
|
|
2173
2163
|
) })
|
|
2174
|
-
] });
|
|
2164
|
+
] }) });
|
|
2175
2165
|
}
|
|
2176
2166
|
);
|
|
2177
2167
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
2178
|
-
function DialogHeader({ className, ...props }) {
|
|
2179
|
-
|
|
2168
|
+
function DialogHeader({ className, children, ...props }) {
|
|
2169
|
+
const { showCloseButton } = React13.useContext(DialogInternalContext);
|
|
2170
|
+
return /* @__PURE__ */ jsxs6(
|
|
2171
|
+
"div",
|
|
2172
|
+
{
|
|
2173
|
+
className: cn("flex w-full items-start justify-between gap-4", className),
|
|
2174
|
+
...props,
|
|
2175
|
+
children: [
|
|
2176
|
+
/* @__PURE__ */ jsx13("div", { className: "flex min-w-0 flex-1 flex-col gap-2 text-left", children }),
|
|
2177
|
+
showCloseButton ? /* @__PURE__ */ jsx13(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx13(
|
|
2178
|
+
Button,
|
|
2179
|
+
{
|
|
2180
|
+
type: "button",
|
|
2181
|
+
variant: "ghost",
|
|
2182
|
+
size: "icon",
|
|
2183
|
+
"aria-label": "Close",
|
|
2184
|
+
leftIcon: /* @__PURE__ */ jsx13(Icon, { name: "x", size: 18 }),
|
|
2185
|
+
className: "shrink-0 text-muted-foreground hover:text-foreground"
|
|
2186
|
+
}
|
|
2187
|
+
) }) : null
|
|
2188
|
+
]
|
|
2189
|
+
}
|
|
2190
|
+
);
|
|
2191
|
+
}
|
|
2192
|
+
function DialogBody({ className, ...props }) {
|
|
2193
|
+
return /* @__PURE__ */ jsx13(
|
|
2194
|
+
"div",
|
|
2195
|
+
{
|
|
2196
|
+
className: cn("flex flex-col gap-4", className),
|
|
2197
|
+
...props
|
|
2198
|
+
}
|
|
2199
|
+
);
|
|
2180
2200
|
}
|
|
2181
2201
|
function DialogFooter({ className, ...props }) {
|
|
2182
2202
|
return /* @__PURE__ */ jsx13(
|
|
2183
2203
|
"div",
|
|
2184
2204
|
{
|
|
2185
|
-
className: cn(
|
|
2186
|
-
"flex flex-col-reverse gap-4 px-6 pb-6 pt-4 sm:flex-row sm:justify-end",
|
|
2187
|
-
className
|
|
2188
|
-
),
|
|
2205
|
+
className: cn("flex items-center justify-end gap-2", className),
|
|
2189
2206
|
...props
|
|
2190
2207
|
}
|
|
2191
2208
|
);
|
|
2192
2209
|
}
|
|
2193
2210
|
var DialogCancel = React13.forwardRef(
|
|
2194
|
-
({ type = "button", variant = "
|
|
2211
|
+
({ type = "button", variant = "ghost", ...props }, ref) => /* @__PURE__ */ jsx13(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx13(Button, { ref, type, variant, ...props }) })
|
|
2195
2212
|
);
|
|
2196
2213
|
DialogCancel.displayName = "DialogCancel";
|
|
2197
2214
|
var DialogTitle = React13.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx13(
|
|
@@ -2203,7 +2220,7 @@ var DialogTitle = React13.forwardRef(({ children, className, ...props }, ref) =>
|
|
|
2203
2220
|
children: renderTextContent(children, {
|
|
2204
2221
|
as: "span",
|
|
2205
2222
|
className: "block text-card-foreground",
|
|
2206
|
-
size: "
|
|
2223
|
+
size: "h3"
|
|
2207
2224
|
})
|
|
2208
2225
|
}
|
|
2209
2226
|
));
|
|
@@ -2226,7 +2243,7 @@ DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
|
2226
2243
|
// src/components/empty.tsx
|
|
2227
2244
|
import * as React14 from "react";
|
|
2228
2245
|
import { cva as cva5 } from "class-variance-authority";
|
|
2229
|
-
import { Fragment as
|
|
2246
|
+
import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2230
2247
|
var emptyMediaVariantOptions = ["default", "icon"];
|
|
2231
2248
|
var emptyMediaVariants = cva5(
|
|
2232
2249
|
"inline-flex shrink-0 items-center justify-center transition-[background-color,border-color,color,box-shadow] duration-sofya ease-sofya",
|
|
@@ -2309,7 +2326,7 @@ var Empty = React14.forwardRef(function Empty2({ children, className, content, d
|
|
|
2309
2326
|
className
|
|
2310
2327
|
),
|
|
2311
2328
|
...props,
|
|
2312
|
-
children: hasCustomChildren ? children : /* @__PURE__ */ jsxs7(
|
|
2329
|
+
children: hasCustomChildren ? children : /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
2313
2330
|
/* @__PURE__ */ jsxs7(EmptyHeader, { children: [
|
|
2314
2331
|
media ?? /* @__PURE__ */ jsx14(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx14(Icon, { name: "folders", size: 28 }) }),
|
|
2315
2332
|
/* @__PURE__ */ jsx14(EmptyTitle, { children: title ?? "Nada por aqui" }),
|
|
@@ -2716,7 +2733,7 @@ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
|
|
|
2716
2733
|
{
|
|
2717
2734
|
"aria-disabled": disabled || void 0,
|
|
2718
2735
|
className: cn(
|
|
2719
|
-
"flex w-full flex-col items-center justify-center gap-2 overflow-clip rounded-[20px] border-2 border-dashed border-[color:var(--sofya-border-soft)] bg-
|
|
2736
|
+
"flex w-full flex-col items-center justify-center gap-2 overflow-clip rounded-[20px] border-2 border-dashed border-[color:var(--sofya-border-soft)] bg-transparent px-2 pt-2 pb-4 text-center transition-[border-color,background-color,box-shadow,color] duration-sofya ease-sofya",
|
|
2720
2737
|
!disabled && "cursor-pointer hover:border-[color:var(--sofya-border-hover)] hover:bg-[color:var(--sofya-surface-hover)] focus-visible:border-transparent focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-within:border-transparent focus-within:ring-2 focus-within:ring-[color:var(--sofya-focus-ring-soft)] active:border-transparent active:ring-2 active:ring-[color:var(--sofya-focus-ring-soft)]",
|
|
2721
2738
|
isDragActive && "border-[color:var(--sofya-border-hover)] bg-[color:var(--sofya-surface-selected)] shadow-[var(--sofya-shadow-dropzone-focus)]",
|
|
2722
2739
|
disabled && "cursor-not-allowed opacity-60",
|
|
@@ -2743,7 +2760,7 @@ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
|
|
|
2743
2760
|
resolvedDescription ? /* @__PURE__ */ jsx16("span", { className: "text-[color:var(--sofya-text-subtle)]", children: renderTextContent(resolvedDescription, {
|
|
2744
2761
|
as: "span",
|
|
2745
2762
|
className: "block text-[color:var(--sofya-text-subtle)]",
|
|
2746
|
-
size: "tiny"
|
|
2763
|
+
size: "extra-tiny"
|
|
2747
2764
|
}) }) : null
|
|
2748
2765
|
]
|
|
2749
2766
|
}
|
|
@@ -2759,7 +2776,7 @@ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
|
|
|
2759
2776
|
animate: prefersReducedMotion ? { opacity: 1 } : { opacity: 1, y: 0 },
|
|
2760
2777
|
exit: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: -6 },
|
|
2761
2778
|
transition: uploadListItemTransition,
|
|
2762
|
-
children: /* @__PURE__ */ jsxs9(Card, { variant: "
|
|
2779
|
+
children: /* @__PURE__ */ jsxs9(Card, { variant: "card", className: "flex items-center gap-4 p-4", children: [
|
|
2763
2780
|
/* @__PURE__ */ jsx16("span", { className: "flex size-11 shrink-0 items-center justify-center rounded-full bg-[color:var(--sofya-surface-hover)] text-primary", children: /* @__PURE__ */ jsx16(
|
|
2764
2781
|
UploadFileTypeGlyph,
|
|
2765
2782
|
{
|
|
@@ -2910,7 +2927,7 @@ var InputOTPSeparator = React16.forwardRef(({ className, ...props }, ref) => {
|
|
|
2910
2927
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
2911
2928
|
|
|
2912
2929
|
// src/components/input.tsx
|
|
2913
|
-
import { Fragment as
|
|
2930
|
+
import { Fragment as Fragment3, jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2914
2931
|
var inputVariantOptions = [
|
|
2915
2932
|
"default",
|
|
2916
2933
|
"search",
|
|
@@ -3009,7 +3026,7 @@ var Input = React17.forwardRef((props, ref) => {
|
|
|
3009
3026
|
resolvedId
|
|
3010
3027
|
}
|
|
3011
3028
|
);
|
|
3012
|
-
const uploadLabel = label2 || uploadOptionalLabel ? /* @__PURE__ */ jsxs11(
|
|
3029
|
+
const uploadLabel = label2 || uploadOptionalLabel ? /* @__PURE__ */ jsxs11(Fragment3, { children: [
|
|
3013
3030
|
renderTextContent(label2, {
|
|
3014
3031
|
as: "span",
|
|
3015
3032
|
className: "text-[color:var(--sofya-text-default)]",
|
|
@@ -5055,6 +5072,7 @@ export {
|
|
|
5055
5072
|
CardTitle,
|
|
5056
5073
|
Checkbox,
|
|
5057
5074
|
Dialog,
|
|
5075
|
+
DialogBody,
|
|
5058
5076
|
DialogCancel,
|
|
5059
5077
|
DialogClose,
|
|
5060
5078
|
DialogContent,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sofya-ds/react",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.5",
|
|
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.3.
|
|
62
|
+
"@sofya-ds/tokens": "1.3.5"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@testing-library/jest-dom": "^6.9.1",
|