@sofya-ds/react 1.3.2 → 1.3.6
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 +112 -93
- package/dist/index.css +1 -1
- package/dist/index.d.cts +10 -9
- package/dist/index.d.ts +10 -9
- package/dist/index.js +116 -98
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -48,6 +48,7 @@ __export(index_exports, {
|
|
|
48
48
|
CardTitle: () => CardTitle,
|
|
49
49
|
Checkbox: () => Checkbox,
|
|
50
50
|
Dialog: () => Dialog,
|
|
51
|
+
DialogBody: () => DialogBody,
|
|
51
52
|
DialogCancel: () => DialogCancel,
|
|
52
53
|
DialogClose: () => DialogClose,
|
|
53
54
|
DialogContent: () => DialogContent,
|
|
@@ -551,7 +552,7 @@ Icon.displayName = "Icon";
|
|
|
551
552
|
// src/components/text.tsx
|
|
552
553
|
var React3 = __toESM(require("react"), 1);
|
|
553
554
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
554
|
-
var textSizeOptions = ["h1", "h2", "h3", "h4", "h5", "body", "tiny"];
|
|
555
|
+
var textSizeOptions = ["h1", "h2", "h3", "h4", "h5", "body", "tiny", "extra-tiny"];
|
|
555
556
|
var textVariantOptions = ["default", "gradient", "shiny", "split"];
|
|
556
557
|
var textSplitTypeOptions = ["chars", "words", "words, chars"];
|
|
557
558
|
var defaultElements = {
|
|
@@ -561,7 +562,8 @@ var defaultElements = {
|
|
|
561
562
|
h4: "h4",
|
|
562
563
|
h5: "h5",
|
|
563
564
|
body: "p",
|
|
564
|
-
tiny: "span"
|
|
565
|
+
tiny: "span",
|
|
566
|
+
"extra-tiny": "span"
|
|
565
567
|
};
|
|
566
568
|
var textSizeStyles = Object.fromEntries(
|
|
567
569
|
textSizeOptions.map((size) => [
|
|
@@ -1514,7 +1516,7 @@ var buttonVariants = (0, import_class_variance_authority4.cva)(
|
|
|
1514
1516
|
language: "border-0 bg-muted bg-cover bg-center bg-no-repeat text-primary-foreground shadow-none hover:brightness-[1.03]",
|
|
1515
1517
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/85",
|
|
1516
1518
|
outline: "border border-primary/15 bg-background text-foreground hover:border-primary/30 hover:bg-background active:bg-background",
|
|
1517
|
-
ghost: "bg-
|
|
1519
|
+
ghost: "bg-transparent text-foreground hover:bg-muted",
|
|
1518
1520
|
destructive: "bg-destructive text-destructive-foreground hover:brightness-[1.04]"
|
|
1519
1521
|
},
|
|
1520
1522
|
size: {
|
|
@@ -1640,7 +1642,7 @@ var Button = React8.forwardRef(
|
|
|
1640
1642
|
hasChildren ? renderTextContent(children, {
|
|
1641
1643
|
as: "span",
|
|
1642
1644
|
className: "inline-flex items-center text-current",
|
|
1643
|
-
size: "
|
|
1645
|
+
size: "tiny",
|
|
1644
1646
|
style: {
|
|
1645
1647
|
fontWeight: "inherit",
|
|
1646
1648
|
letterSpacing: "inherit"
|
|
@@ -1720,21 +1722,12 @@ var surfaceStyles = {
|
|
|
1720
1722
|
"--sofya-surface-shadow-base": "var(--sofya-surface-card-shadow)",
|
|
1721
1723
|
boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
|
|
1722
1724
|
},
|
|
1723
|
-
panel: {
|
|
1724
|
-
backgroundColor: "hsl(var(--sofya-surface-panel-background))",
|
|
1725
|
-
borderColor: "hsl(var(--sofya-surface-panel-border-color))",
|
|
1726
|
-
borderWidth: "var(--sofya-surface-panel-border-width)",
|
|
1727
|
-
borderStyle: "solid",
|
|
1728
|
-
borderRadius: "var(--sofya-surface-panel-radius)",
|
|
1729
|
-
"--sofya-surface-shadow-base": "var(--sofya-surface-panel-shadow)",
|
|
1730
|
-
boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
|
|
1731
|
-
},
|
|
1732
1725
|
focus: {
|
|
1733
1726
|
backgroundColor: "hsl(var(--sofya-surface-focus-background))",
|
|
1734
1727
|
borderColor: "hsl(var(--sofya-surface-focus-border-color))",
|
|
1735
1728
|
borderWidth: "var(--sofya-surface-focus-border-width)",
|
|
1736
1729
|
borderStyle: "solid",
|
|
1737
|
-
borderRadius: "var(--sofya-surface-
|
|
1730
|
+
borderRadius: "var(--sofya-surface-card-radius)",
|
|
1738
1731
|
"--sofya-surface-shadow-base": "var(--sofya-surface-focus-shadow)",
|
|
1739
1732
|
boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
|
|
1740
1733
|
}
|
|
@@ -1758,9 +1751,9 @@ var Surface = SurfaceBase;
|
|
|
1758
1751
|
|
|
1759
1752
|
// src/components/card.tsx
|
|
1760
1753
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1761
|
-
var cardVariants = ["card", "
|
|
1754
|
+
var cardVariants = ["card", "focus"];
|
|
1762
1755
|
function Card({ className, variant = "card", ...props }) {
|
|
1763
|
-
const hasHoverShadow = variant === "card"
|
|
1756
|
+
const hasHoverShadow = variant === "card";
|
|
1764
1757
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1765
1758
|
Surface,
|
|
1766
1759
|
{
|
|
@@ -1959,11 +1952,10 @@ function useControllableState({
|
|
|
1959
1952
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1960
1953
|
var dropdownVariantOptions = [
|
|
1961
1954
|
"card",
|
|
1962
|
-
"panel",
|
|
1963
1955
|
"language",
|
|
1964
1956
|
"selected"
|
|
1965
1957
|
];
|
|
1966
|
-
var dropdownAppearanceOptions = ["
|
|
1958
|
+
var dropdownAppearanceOptions = ["card"];
|
|
1967
1959
|
var dropdownTriggerSizeOptions = ["default", "sm", "lg"];
|
|
1968
1960
|
var dropdownLanguageItems = [
|
|
1969
1961
|
{ value: "en-US", label: "English", languageLocale: "en-US" },
|
|
@@ -1972,7 +1964,6 @@ var dropdownLanguageItems = [
|
|
|
1972
1964
|
];
|
|
1973
1965
|
var dropdownTriggerToneClasses = {
|
|
1974
1966
|
card: "text-primary",
|
|
1975
|
-
panel: "text-foreground",
|
|
1976
1967
|
language: "",
|
|
1977
1968
|
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)]"
|
|
1978
1969
|
};
|
|
@@ -1988,16 +1979,12 @@ var dropdownTriggerSizeClasses = {
|
|
|
1988
1979
|
lg: "h-12 px-6 py-2"
|
|
1989
1980
|
},
|
|
1990
1981
|
language: {
|
|
1991
|
-
default: "h-
|
|
1992
|
-
sm: "h-
|
|
1993
|
-
lg: "h-
|
|
1982
|
+
default: "h-5 w-5 p-0",
|
|
1983
|
+
sm: "h-[18px] w-[18px] p-0",
|
|
1984
|
+
lg: "h-6 w-6 p-0"
|
|
1994
1985
|
}
|
|
1995
1986
|
};
|
|
1996
1987
|
var dropdownAppearanceClasses = {
|
|
1997
|
-
panel: {
|
|
1998
|
-
content: "rounded-[10px]",
|
|
1999
|
-
trigger: "rounded-[10px]"
|
|
2000
|
-
},
|
|
2001
1988
|
card: {
|
|
2002
1989
|
content: "rounded-[20px]",
|
|
2003
1990
|
trigger: "rounded-[20px]"
|
|
@@ -2005,13 +1992,11 @@ var dropdownAppearanceClasses = {
|
|
|
2005
1992
|
};
|
|
2006
1993
|
var dropdownContentBaseClasses = {
|
|
2007
1994
|
card: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
2008
|
-
panel: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
2009
1995
|
language: "w-[224px] min-w-[224px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
2010
1996
|
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)]"
|
|
2011
1997
|
};
|
|
2012
1998
|
var dropdownItemClasses = {
|
|
2013
1999
|
card: "text-foreground",
|
|
2014
|
-
panel: "text-foreground",
|
|
2015
2000
|
language: "text-foreground",
|
|
2016
2001
|
selected: "text-foreground"
|
|
2017
2002
|
};
|
|
@@ -2028,13 +2013,9 @@ function resolveItemLanguageLocale(item) {
|
|
|
2028
2013
|
return isButtonLanguageLocale(item.value) ? item.value : void 0;
|
|
2029
2014
|
}
|
|
2030
2015
|
function resolveDropdownAppearance({
|
|
2031
|
-
appearance
|
|
2032
|
-
variant
|
|
2016
|
+
appearance
|
|
2033
2017
|
}) {
|
|
2034
|
-
|
|
2035
|
-
return appearance;
|
|
2036
|
-
}
|
|
2037
|
-
return variant === "card" ? "card" : "panel";
|
|
2018
|
+
return appearance ?? "card";
|
|
2038
2019
|
}
|
|
2039
2020
|
function resolveDropdownTriggerSizeFamily(variant) {
|
|
2040
2021
|
if (variant === "language") {
|
|
@@ -2069,8 +2050,8 @@ function LanguageFlagIcon({ locale }) {
|
|
|
2069
2050
|
{
|
|
2070
2051
|
alt: "",
|
|
2071
2052
|
"aria-hidden": "true",
|
|
2072
|
-
src:
|
|
2073
|
-
className: "h-[
|
|
2053
|
+
src: buttonLanguageFlagSrc[locale],
|
|
2054
|
+
className: "h-[18px] w-[18px] shrink-0 rounded-full object-cover"
|
|
2074
2055
|
}
|
|
2075
2056
|
);
|
|
2076
2057
|
}
|
|
@@ -2183,12 +2164,53 @@ function Dropdown({
|
|
|
2183
2164
|
{
|
|
2184
2165
|
value: radioValue,
|
|
2185
2166
|
onValueChange: setSelectedValue,
|
|
2186
|
-
className: "grid gap-
|
|
2167
|
+
className: "grid gap-1",
|
|
2187
2168
|
children: resolvedItems.map((item) => {
|
|
2188
2169
|
const isSelected = item.value === selectedValue;
|
|
2189
2170
|
const itemLanguageLocale = resolveItemLanguageLocale(item);
|
|
2190
2171
|
const indicator = item.indicator ?? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DefaultDropdownItemIndicator, {});
|
|
2191
2172
|
const itemIcon = item.icon ?? (variant === "language" && itemLanguageLocale ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(LanguageFlagIcon, { locale: itemLanguageLocale }) : null);
|
|
2173
|
+
if (!usesDefaultListStyle) {
|
|
2174
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2175
|
+
DropdownMenuPrimitive.RadioItem,
|
|
2176
|
+
{
|
|
2177
|
+
value: item.value,
|
|
2178
|
+
disabled: item.disabled,
|
|
2179
|
+
asChild: true,
|
|
2180
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2181
|
+
Button,
|
|
2182
|
+
{
|
|
2183
|
+
variant: "ghost",
|
|
2184
|
+
className: cn(
|
|
2185
|
+
"h-auto w-full px-1.5 py-1 font-normal data-[highlighted]:bg-muted [&>span.relative]:w-full",
|
|
2186
|
+
dropdownItemClasses[variant],
|
|
2187
|
+
itemClassName
|
|
2188
|
+
),
|
|
2189
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex w-full items-center gap-2.5", children: [
|
|
2190
|
+
itemIcon && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }),
|
|
2191
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children: renderTextContent(item.label, {
|
|
2192
|
+
as: "span",
|
|
2193
|
+
className: "block truncate text-inherit",
|
|
2194
|
+
size: "tiny"
|
|
2195
|
+
}) }),
|
|
2196
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2197
|
+
"span",
|
|
2198
|
+
{
|
|
2199
|
+
"aria-hidden": "true",
|
|
2200
|
+
className: cn(
|
|
2201
|
+
"flex h-4 w-4 shrink-0 items-center justify-center text-primary transition-opacity duration-sofya ease-sofya",
|
|
2202
|
+
isSelected ? "opacity-100" : "opacity-0"
|
|
2203
|
+
),
|
|
2204
|
+
children: indicator
|
|
2205
|
+
}
|
|
2206
|
+
)
|
|
2207
|
+
] })
|
|
2208
|
+
}
|
|
2209
|
+
)
|
|
2210
|
+
},
|
|
2211
|
+
item.value
|
|
2212
|
+
);
|
|
2213
|
+
}
|
|
2192
2214
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2193
2215
|
DropdownMenuPrimitive.RadioItem,
|
|
2194
2216
|
{
|
|
@@ -2196,11 +2218,11 @@ function Dropdown({
|
|
|
2196
2218
|
disabled: item.disabled,
|
|
2197
2219
|
className: cn(
|
|
2198
2220
|
"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",
|
|
2199
|
-
|
|
2221
|
+
"px-0 py-0 data-[highlighted]:bg-transparent [&[data-highlighted]_span[data-dropdown-item-body]]:bg-[color:var(--sofya-surface-selected)]",
|
|
2200
2222
|
dropdownItemClasses[variant],
|
|
2201
2223
|
itemClassName
|
|
2202
2224
|
),
|
|
2203
|
-
children:
|
|
2225
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2204
2226
|
"span",
|
|
2205
2227
|
{
|
|
2206
2228
|
"data-dropdown-item-body": true,
|
|
@@ -2213,7 +2235,7 @@ function Dropdown({
|
|
|
2213
2235
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate", children: renderTextContent(item.label, {
|
|
2214
2236
|
as: "span",
|
|
2215
2237
|
className: "block truncate text-inherit",
|
|
2216
|
-
size: "
|
|
2238
|
+
size: "tiny"
|
|
2217
2239
|
}) }),
|
|
2218
2240
|
isSelected ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2219
2241
|
"span",
|
|
@@ -2225,28 +2247,7 @@ function Dropdown({
|
|
|
2225
2247
|
) : null
|
|
2226
2248
|
]
|
|
2227
2249
|
}
|
|
2228
|
-
)
|
|
2229
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
2230
|
-
itemIcon ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
|
|
2231
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate", children: renderTextContent(item.label, {
|
|
2232
|
-
as: "span",
|
|
2233
|
-
className: "block truncate text-inherit",
|
|
2234
|
-
size: "body"
|
|
2235
|
-
}) })
|
|
2236
|
-
] }),
|
|
2237
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2238
|
-
"span",
|
|
2239
|
-
{
|
|
2240
|
-
"aria-hidden": "true",
|
|
2241
|
-
className: cn(
|
|
2242
|
-
"flex h-4 w-4 shrink-0 items-center justify-center transition-opacity duration-sofya ease-sofya",
|
|
2243
|
-
variant === "language" && "text-primary",
|
|
2244
|
-
isSelected ? "opacity-100" : "opacity-0"
|
|
2245
|
-
),
|
|
2246
|
-
children: indicator
|
|
2247
|
-
}
|
|
2248
|
-
)
|
|
2249
|
-
] })
|
|
2250
|
+
)
|
|
2250
2251
|
},
|
|
2251
2252
|
item.value
|
|
2252
2253
|
);
|
|
@@ -2268,6 +2269,9 @@ var Dialog = DialogPrimitive.Root;
|
|
|
2268
2269
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
2269
2270
|
var DialogPortal = DialogPrimitive.Portal;
|
|
2270
2271
|
var DialogClose = DialogPrimitive.Close;
|
|
2272
|
+
var DialogInternalContext = React13.createContext({
|
|
2273
|
+
showCloseButton: true
|
|
2274
|
+
});
|
|
2271
2275
|
var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2272
2276
|
DialogPrimitive.Overlay,
|
|
2273
2277
|
{
|
|
@@ -2285,15 +2289,15 @@ var DialogContent = React13.forwardRef(
|
|
|
2285
2289
|
className,
|
|
2286
2290
|
children,
|
|
2287
2291
|
cardClassName,
|
|
2288
|
-
cardVariant = "panel",
|
|
2289
2292
|
overlayClassName,
|
|
2290
2293
|
showCloseButton = true,
|
|
2294
|
+
variant = "card",
|
|
2291
2295
|
...props
|
|
2292
2296
|
}, ref) => {
|
|
2293
2297
|
const dialogCardStyle = {
|
|
2294
2298
|
"--sofya-surface-shadow-override": "var(--sofya-shadow-lg)"
|
|
2295
2299
|
};
|
|
2296
|
-
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(DialogPortal, { children: [
|
|
2300
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogInternalContext.Provider, { value: { showCloseButton }, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(DialogPortal, { children: [
|
|
2297
2301
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogOverlay, { className: overlayClassName }),
|
|
2298
2302
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "sofya-dialog-positioner fixed inset-0 z-50 flex items-center justify-center p-4", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2299
2303
|
DialogPrimitive.Content,
|
|
@@ -2304,54 +2308,68 @@ var DialogContent = React13.forwardRef(
|
|
|
2304
2308
|
className
|
|
2305
2309
|
),
|
|
2306
2310
|
...props,
|
|
2307
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.
|
|
2311
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2308
2312
|
Card,
|
|
2309
2313
|
{
|
|
2310
|
-
variant
|
|
2314
|
+
variant,
|
|
2311
2315
|
className: cn(
|
|
2312
|
-
"
|
|
2316
|
+
"flex max-h-[inherit] min-h-0 w-full flex-col gap-6 overflow-y-auto overflow-x-hidden p-6",
|
|
2313
2317
|
cardClassName
|
|
2314
2318
|
),
|
|
2315
2319
|
style: dialogCardStyle,
|
|
2316
|
-
children
|
|
2317
|
-
children,
|
|
2318
|
-
showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2319
|
-
Button,
|
|
2320
|
-
{
|
|
2321
|
-
type: "button",
|
|
2322
|
-
variant: "ghost",
|
|
2323
|
-
size: "icon",
|
|
2324
|
-
"aria-label": "Close",
|
|
2325
|
-
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { name: "x", size: 18 }),
|
|
2326
|
-
className: "absolute right-4 top-4 z-10 text-muted-foreground hover:text-foreground"
|
|
2327
|
-
}
|
|
2328
|
-
) }) : null
|
|
2329
|
-
]
|
|
2320
|
+
children
|
|
2330
2321
|
}
|
|
2331
2322
|
)
|
|
2332
2323
|
}
|
|
2333
2324
|
) })
|
|
2334
|
-
] });
|
|
2325
|
+
] }) });
|
|
2335
2326
|
}
|
|
2336
2327
|
);
|
|
2337
2328
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
2338
|
-
function DialogHeader({ className, ...props }) {
|
|
2339
|
-
|
|
2329
|
+
function DialogHeader({ className, children, ...props }) {
|
|
2330
|
+
const { showCloseButton } = React13.useContext(DialogInternalContext);
|
|
2331
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
|
|
2332
|
+
"div",
|
|
2333
|
+
{
|
|
2334
|
+
className: cn("flex w-full items-start justify-between gap-4", className),
|
|
2335
|
+
...props,
|
|
2336
|
+
children: [
|
|
2337
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "flex min-w-0 flex-1 flex-col gap-2 text-left", children }),
|
|
2338
|
+
showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2339
|
+
Button,
|
|
2340
|
+
{
|
|
2341
|
+
type: "button",
|
|
2342
|
+
variant: "ghost",
|
|
2343
|
+
size: "icon",
|
|
2344
|
+
"aria-label": "Close",
|
|
2345
|
+
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { name: "x", size: 18 }),
|
|
2346
|
+
className: "shrink-0 text-muted-foreground hover:text-foreground"
|
|
2347
|
+
}
|
|
2348
|
+
) }) : null
|
|
2349
|
+
]
|
|
2350
|
+
}
|
|
2351
|
+
);
|
|
2352
|
+
}
|
|
2353
|
+
function DialogBody({ className, ...props }) {
|
|
2354
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2355
|
+
"div",
|
|
2356
|
+
{
|
|
2357
|
+
className: cn("flex flex-col gap-4", className),
|
|
2358
|
+
...props
|
|
2359
|
+
}
|
|
2360
|
+
);
|
|
2340
2361
|
}
|
|
2341
2362
|
function DialogFooter({ className, ...props }) {
|
|
2342
2363
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2343
2364
|
"div",
|
|
2344
2365
|
{
|
|
2345
|
-
className: cn(
|
|
2346
|
-
"flex flex-col-reverse gap-4 px-6 pb-6 pt-4 sm:flex-row sm:justify-end",
|
|
2347
|
-
className
|
|
2348
|
-
),
|
|
2366
|
+
className: cn("flex items-center justify-end gap-2", className),
|
|
2349
2367
|
...props
|
|
2350
2368
|
}
|
|
2351
2369
|
);
|
|
2352
2370
|
}
|
|
2353
2371
|
var DialogCancel = React13.forwardRef(
|
|
2354
|
-
({ type = "button", variant = "
|
|
2372
|
+
({ type = "button", variant = "ghost", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Button, { ref, type, variant, ...props }) })
|
|
2355
2373
|
);
|
|
2356
2374
|
DialogCancel.displayName = "DialogCancel";
|
|
2357
2375
|
var DialogTitle = React13.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
@@ -2363,7 +2381,7 @@ var DialogTitle = React13.forwardRef(({ children, className, ...props }, ref) =>
|
|
|
2363
2381
|
children: renderTextContent(children, {
|
|
2364
2382
|
as: "span",
|
|
2365
2383
|
className: "block text-card-foreground",
|
|
2366
|
-
size: "
|
|
2384
|
+
size: "h3"
|
|
2367
2385
|
})
|
|
2368
2386
|
}
|
|
2369
2387
|
));
|
|
@@ -2871,7 +2889,7 @@ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
|
|
|
2871
2889
|
{
|
|
2872
2890
|
"aria-disabled": disabled || void 0,
|
|
2873
2891
|
className: cn(
|
|
2874
|
-
"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-
|
|
2892
|
+
"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",
|
|
2875
2893
|
!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)]",
|
|
2876
2894
|
isDragActive && "border-[color:var(--sofya-border-hover)] bg-[color:var(--sofya-surface-selected)] shadow-[var(--sofya-shadow-dropzone-focus)]",
|
|
2877
2895
|
disabled && "cursor-not-allowed opacity-60",
|
|
@@ -2898,7 +2916,7 @@ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
|
|
|
2898
2916
|
resolvedDescription ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-[color:var(--sofya-text-subtle)]", children: renderTextContent(resolvedDescription, {
|
|
2899
2917
|
as: "span",
|
|
2900
2918
|
className: "block text-[color:var(--sofya-text-subtle)]",
|
|
2901
|
-
size: "tiny"
|
|
2919
|
+
size: "extra-tiny"
|
|
2902
2920
|
}) }) : null
|
|
2903
2921
|
]
|
|
2904
2922
|
}
|
|
@@ -2914,7 +2932,7 @@ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
|
|
|
2914
2932
|
animate: prefersReducedMotion ? { opacity: 1 } : { opacity: 1, y: 0 },
|
|
2915
2933
|
exit: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: -6 },
|
|
2916
2934
|
transition: uploadListItemTransition,
|
|
2917
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Card, { variant: "
|
|
2935
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Card, { variant: "card", className: "flex items-center gap-4 p-4", children: [
|
|
2918
2936
|
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "flex size-11 shrink-0 items-center justify-center rounded-full bg-[color:var(--sofya-surface-hover)] text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2919
2937
|
UploadFileTypeGlyph,
|
|
2920
2938
|
{
|
|
@@ -5182,6 +5200,7 @@ var import_tokens2 = require("@sofya-ds/tokens");
|
|
|
5182
5200
|
CardTitle,
|
|
5183
5201
|
Checkbox,
|
|
5184
5202
|
Dialog,
|
|
5203
|
+
DialogBody,
|
|
5185
5204
|
DialogCancel,
|
|
5186
5205
|
DialogClose,
|
|
5187
5206
|
DialogContent,
|