@sofya-ds/react 1.3.1 → 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 +114 -92
- package/dist/index.css +1 -1
- package/dist/index.d.cts +12 -9
- package/dist/index.d.ts +12 -9
- package/dist/index.js +119 -97
- 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,
|
|
@@ -332,6 +333,7 @@ var tablerIconRegistry = {
|
|
|
332
333
|
IconPlus: import_icons_react.IconPlus,
|
|
333
334
|
IconSchool: import_icons_react.IconSchool,
|
|
334
335
|
IconSearch: import_icons_react.IconSearch,
|
|
336
|
+
IconSquareToggle: import_icons_react.IconSquareToggle,
|
|
335
337
|
IconSparkles: import_icons_react.IconSparkles,
|
|
336
338
|
IconUser: import_icons_react.IconUser,
|
|
337
339
|
IconUserFilled: import_icons_react.IconUserFilled,
|
|
@@ -397,6 +399,8 @@ var legacyIconToTablerNameMap = {
|
|
|
397
399
|
"trash-filled": "IconTrashFilled",
|
|
398
400
|
"trash-off": "IconTrashOff",
|
|
399
401
|
"trash-x": "IconTrashX",
|
|
402
|
+
"square-toggle": "IconSquareToggle",
|
|
403
|
+
iconSquareToggle: "IconSquareToggle",
|
|
400
404
|
"delete": "IconTrash",
|
|
401
405
|
"remove": "IconTrashX",
|
|
402
406
|
"lixeira": "IconTrash",
|
|
@@ -548,7 +552,7 @@ Icon.displayName = "Icon";
|
|
|
548
552
|
// src/components/text.tsx
|
|
549
553
|
var React3 = __toESM(require("react"), 1);
|
|
550
554
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
551
|
-
var textSizeOptions = ["h1", "h2", "h3", "h4", "h5", "body", "tiny"];
|
|
555
|
+
var textSizeOptions = ["h1", "h2", "h3", "h4", "h5", "body", "tiny", "extra-tiny"];
|
|
552
556
|
var textVariantOptions = ["default", "gradient", "shiny", "split"];
|
|
553
557
|
var textSplitTypeOptions = ["chars", "words", "words, chars"];
|
|
554
558
|
var defaultElements = {
|
|
@@ -558,7 +562,8 @@ var defaultElements = {
|
|
|
558
562
|
h4: "h4",
|
|
559
563
|
h5: "h5",
|
|
560
564
|
body: "p",
|
|
561
|
-
tiny: "span"
|
|
565
|
+
tiny: "span",
|
|
566
|
+
"extra-tiny": "span"
|
|
562
567
|
};
|
|
563
568
|
var textSizeStyles = Object.fromEntries(
|
|
564
569
|
textSizeOptions.map((size) => [
|
|
@@ -1511,7 +1516,7 @@ var buttonVariants = (0, import_class_variance_authority4.cva)(
|
|
|
1511
1516
|
language: "border-0 bg-muted bg-cover bg-center bg-no-repeat text-primary-foreground shadow-none hover:brightness-[1.03]",
|
|
1512
1517
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/85",
|
|
1513
1518
|
outline: "border border-primary/15 bg-background text-foreground hover:border-primary/30 hover:bg-background active:bg-background",
|
|
1514
|
-
ghost: "bg-
|
|
1519
|
+
ghost: "bg-transparent text-foreground hover:bg-muted",
|
|
1515
1520
|
destructive: "bg-destructive text-destructive-foreground hover:brightness-[1.04]"
|
|
1516
1521
|
},
|
|
1517
1522
|
size: {
|
|
@@ -1637,7 +1642,7 @@ var Button = React8.forwardRef(
|
|
|
1637
1642
|
hasChildren ? renderTextContent(children, {
|
|
1638
1643
|
as: "span",
|
|
1639
1644
|
className: "inline-flex items-center text-current",
|
|
1640
|
-
size: "
|
|
1645
|
+
size: "tiny",
|
|
1641
1646
|
style: {
|
|
1642
1647
|
fontWeight: "inherit",
|
|
1643
1648
|
letterSpacing: "inherit"
|
|
@@ -1717,21 +1722,12 @@ var surfaceStyles = {
|
|
|
1717
1722
|
"--sofya-surface-shadow-base": "var(--sofya-surface-card-shadow)",
|
|
1718
1723
|
boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
|
|
1719
1724
|
},
|
|
1720
|
-
panel: {
|
|
1721
|
-
backgroundColor: "hsl(var(--sofya-surface-panel-background))",
|
|
1722
|
-
borderColor: "hsl(var(--sofya-surface-panel-border-color))",
|
|
1723
|
-
borderWidth: "var(--sofya-surface-panel-border-width)",
|
|
1724
|
-
borderStyle: "solid",
|
|
1725
|
-
borderRadius: "var(--sofya-surface-panel-radius)",
|
|
1726
|
-
"--sofya-surface-shadow-base": "var(--sofya-surface-panel-shadow)",
|
|
1727
|
-
boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
|
|
1728
|
-
},
|
|
1729
1725
|
focus: {
|
|
1730
1726
|
backgroundColor: "hsl(var(--sofya-surface-focus-background))",
|
|
1731
1727
|
borderColor: "hsl(var(--sofya-surface-focus-border-color))",
|
|
1732
1728
|
borderWidth: "var(--sofya-surface-focus-border-width)",
|
|
1733
1729
|
borderStyle: "solid",
|
|
1734
|
-
borderRadius: "var(--sofya-surface-
|
|
1730
|
+
borderRadius: "var(--sofya-surface-card-radius)",
|
|
1735
1731
|
"--sofya-surface-shadow-base": "var(--sofya-surface-focus-shadow)",
|
|
1736
1732
|
boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
|
|
1737
1733
|
}
|
|
@@ -1755,9 +1751,9 @@ var Surface = SurfaceBase;
|
|
|
1755
1751
|
|
|
1756
1752
|
// src/components/card.tsx
|
|
1757
1753
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1758
|
-
var cardVariants = ["card", "
|
|
1754
|
+
var cardVariants = ["card", "focus"];
|
|
1759
1755
|
function Card({ className, variant = "card", ...props }) {
|
|
1760
|
-
const hasHoverShadow = variant === "card"
|
|
1756
|
+
const hasHoverShadow = variant === "card";
|
|
1761
1757
|
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1762
1758
|
Surface,
|
|
1763
1759
|
{
|
|
@@ -1956,11 +1952,10 @@ function useControllableState({
|
|
|
1956
1952
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1957
1953
|
var dropdownVariantOptions = [
|
|
1958
1954
|
"card",
|
|
1959
|
-
"panel",
|
|
1960
1955
|
"language",
|
|
1961
1956
|
"selected"
|
|
1962
1957
|
];
|
|
1963
|
-
var dropdownAppearanceOptions = ["
|
|
1958
|
+
var dropdownAppearanceOptions = ["card"];
|
|
1964
1959
|
var dropdownTriggerSizeOptions = ["default", "sm", "lg"];
|
|
1965
1960
|
var dropdownLanguageItems = [
|
|
1966
1961
|
{ value: "en-US", label: "English", languageLocale: "en-US" },
|
|
@@ -1969,7 +1964,6 @@ var dropdownLanguageItems = [
|
|
|
1969
1964
|
];
|
|
1970
1965
|
var dropdownTriggerToneClasses = {
|
|
1971
1966
|
card: "text-primary",
|
|
1972
|
-
panel: "text-foreground",
|
|
1973
1967
|
language: "",
|
|
1974
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)]"
|
|
1975
1969
|
};
|
|
@@ -1985,16 +1979,12 @@ var dropdownTriggerSizeClasses = {
|
|
|
1985
1979
|
lg: "h-12 px-6 py-2"
|
|
1986
1980
|
},
|
|
1987
1981
|
language: {
|
|
1988
|
-
default: "h-
|
|
1989
|
-
sm: "h-
|
|
1990
|
-
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"
|
|
1991
1985
|
}
|
|
1992
1986
|
};
|
|
1993
1987
|
var dropdownAppearanceClasses = {
|
|
1994
|
-
panel: {
|
|
1995
|
-
content: "rounded-[10px]",
|
|
1996
|
-
trigger: "rounded-[10px]"
|
|
1997
|
-
},
|
|
1998
1988
|
card: {
|
|
1999
1989
|
content: "rounded-[20px]",
|
|
2000
1990
|
trigger: "rounded-[20px]"
|
|
@@ -2002,13 +1992,11 @@ var dropdownAppearanceClasses = {
|
|
|
2002
1992
|
};
|
|
2003
1993
|
var dropdownContentBaseClasses = {
|
|
2004
1994
|
card: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
2005
|
-
panel: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
2006
1995
|
language: "w-[224px] min-w-[224px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
|
|
2007
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)]"
|
|
2008
1997
|
};
|
|
2009
1998
|
var dropdownItemClasses = {
|
|
2010
1999
|
card: "text-foreground",
|
|
2011
|
-
panel: "text-foreground",
|
|
2012
2000
|
language: "text-foreground",
|
|
2013
2001
|
selected: "text-foreground"
|
|
2014
2002
|
};
|
|
@@ -2025,13 +2013,9 @@ function resolveItemLanguageLocale(item) {
|
|
|
2025
2013
|
return isButtonLanguageLocale(item.value) ? item.value : void 0;
|
|
2026
2014
|
}
|
|
2027
2015
|
function resolveDropdownAppearance({
|
|
2028
|
-
appearance
|
|
2029
|
-
variant
|
|
2016
|
+
appearance
|
|
2030
2017
|
}) {
|
|
2031
|
-
|
|
2032
|
-
return appearance;
|
|
2033
|
-
}
|
|
2034
|
-
return variant === "card" ? "card" : "panel";
|
|
2018
|
+
return appearance ?? "card";
|
|
2035
2019
|
}
|
|
2036
2020
|
function resolveDropdownTriggerSizeFamily(variant) {
|
|
2037
2021
|
if (variant === "language") {
|
|
@@ -2066,8 +2050,8 @@ function LanguageFlagIcon({ locale }) {
|
|
|
2066
2050
|
{
|
|
2067
2051
|
alt: "",
|
|
2068
2052
|
"aria-hidden": "true",
|
|
2069
|
-
src:
|
|
2070
|
-
className: "h-[
|
|
2053
|
+
src: buttonLanguageFlagSrc[locale],
|
|
2054
|
+
className: "h-[18px] w-[18px] shrink-0 rounded-full object-cover"
|
|
2071
2055
|
}
|
|
2072
2056
|
);
|
|
2073
2057
|
}
|
|
@@ -2186,6 +2170,47 @@ function Dropdown({
|
|
|
2186
2170
|
const itemLanguageLocale = resolveItemLanguageLocale(item);
|
|
2187
2171
|
const indicator = item.indicator ?? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DefaultDropdownItemIndicator, {});
|
|
2188
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-2 py-0 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", 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
|
+
}
|
|
2189
2214
|
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2190
2215
|
DropdownMenuPrimitive.RadioItem,
|
|
2191
2216
|
{
|
|
@@ -2193,11 +2218,11 @@ function Dropdown({
|
|
|
2193
2218
|
disabled: item.disabled,
|
|
2194
2219
|
className: cn(
|
|
2195
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",
|
|
2196
|
-
|
|
2221
|
+
"px-0 py-0 data-[highlighted]:bg-transparent [&[data-highlighted]_span[data-dropdown-item-body]]:bg-[color:var(--sofya-surface-selected)]",
|
|
2197
2222
|
dropdownItemClasses[variant],
|
|
2198
2223
|
itemClassName
|
|
2199
2224
|
),
|
|
2200
|
-
children:
|
|
2225
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
2201
2226
|
"span",
|
|
2202
2227
|
{
|
|
2203
2228
|
"data-dropdown-item-body": true,
|
|
@@ -2210,7 +2235,7 @@ function Dropdown({
|
|
|
2210
2235
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate", children: renderTextContent(item.label, {
|
|
2211
2236
|
as: "span",
|
|
2212
2237
|
className: "block truncate text-inherit",
|
|
2213
|
-
size: "
|
|
2238
|
+
size: "tiny"
|
|
2214
2239
|
}) }),
|
|
2215
2240
|
isSelected ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2216
2241
|
"span",
|
|
@@ -2222,28 +2247,7 @@ function Dropdown({
|
|
|
2222
2247
|
) : null
|
|
2223
2248
|
]
|
|
2224
2249
|
}
|
|
2225
|
-
)
|
|
2226
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
2227
|
-
itemIcon ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
|
|
2228
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate", children: renderTextContent(item.label, {
|
|
2229
|
-
as: "span",
|
|
2230
|
-
className: "block truncate text-inherit",
|
|
2231
|
-
size: "body"
|
|
2232
|
-
}) })
|
|
2233
|
-
] }),
|
|
2234
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2235
|
-
"span",
|
|
2236
|
-
{
|
|
2237
|
-
"aria-hidden": "true",
|
|
2238
|
-
className: cn(
|
|
2239
|
-
"flex h-4 w-4 shrink-0 items-center justify-center transition-opacity duration-sofya ease-sofya",
|
|
2240
|
-
variant === "language" && "text-primary",
|
|
2241
|
-
isSelected ? "opacity-100" : "opacity-0"
|
|
2242
|
-
),
|
|
2243
|
-
children: indicator
|
|
2244
|
-
}
|
|
2245
|
-
)
|
|
2246
|
-
] })
|
|
2250
|
+
)
|
|
2247
2251
|
},
|
|
2248
2252
|
item.value
|
|
2249
2253
|
);
|
|
@@ -2265,6 +2269,9 @@ var Dialog = DialogPrimitive.Root;
|
|
|
2265
2269
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
2266
2270
|
var DialogPortal = DialogPrimitive.Portal;
|
|
2267
2271
|
var DialogClose = DialogPrimitive.Close;
|
|
2272
|
+
var DialogInternalContext = React13.createContext({
|
|
2273
|
+
showCloseButton: true
|
|
2274
|
+
});
|
|
2268
2275
|
var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2269
2276
|
DialogPrimitive.Overlay,
|
|
2270
2277
|
{
|
|
@@ -2282,15 +2289,15 @@ var DialogContent = React13.forwardRef(
|
|
|
2282
2289
|
className,
|
|
2283
2290
|
children,
|
|
2284
2291
|
cardClassName,
|
|
2285
|
-
cardVariant = "panel",
|
|
2286
2292
|
overlayClassName,
|
|
2287
2293
|
showCloseButton = true,
|
|
2294
|
+
variant = "card",
|
|
2288
2295
|
...props
|
|
2289
2296
|
}, ref) => {
|
|
2290
2297
|
const dialogCardStyle = {
|
|
2291
2298
|
"--sofya-surface-shadow-override": "var(--sofya-shadow-lg)"
|
|
2292
2299
|
};
|
|
2293
|
-
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: [
|
|
2294
2301
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogOverlay, { className: overlayClassName }),
|
|
2295
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)(
|
|
2296
2303
|
DialogPrimitive.Content,
|
|
@@ -2301,54 +2308,68 @@ var DialogContent = React13.forwardRef(
|
|
|
2301
2308
|
className
|
|
2302
2309
|
),
|
|
2303
2310
|
...props,
|
|
2304
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime13.
|
|
2311
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2305
2312
|
Card,
|
|
2306
2313
|
{
|
|
2307
|
-
variant
|
|
2314
|
+
variant,
|
|
2308
2315
|
className: cn(
|
|
2309
|
-
"
|
|
2316
|
+
"flex max-h-[inherit] min-h-0 w-full flex-col gap-6 overflow-y-auto overflow-x-hidden p-6",
|
|
2310
2317
|
cardClassName
|
|
2311
2318
|
),
|
|
2312
2319
|
style: dialogCardStyle,
|
|
2313
|
-
children
|
|
2314
|
-
children,
|
|
2315
|
-
showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2316
|
-
Button,
|
|
2317
|
-
{
|
|
2318
|
-
type: "button",
|
|
2319
|
-
variant: "ghost",
|
|
2320
|
-
size: "icon",
|
|
2321
|
-
"aria-label": "Close",
|
|
2322
|
-
leftIcon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { name: "x", size: 18 }),
|
|
2323
|
-
className: "absolute right-4 top-4 z-10 text-muted-foreground hover:text-foreground"
|
|
2324
|
-
}
|
|
2325
|
-
) }) : null
|
|
2326
|
-
]
|
|
2320
|
+
children
|
|
2327
2321
|
}
|
|
2328
2322
|
)
|
|
2329
2323
|
}
|
|
2330
2324
|
) })
|
|
2331
|
-
] });
|
|
2325
|
+
] }) });
|
|
2332
2326
|
}
|
|
2333
2327
|
);
|
|
2334
2328
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
2335
|
-
function DialogHeader({ className, ...props }) {
|
|
2336
|
-
|
|
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
|
+
);
|
|
2337
2361
|
}
|
|
2338
2362
|
function DialogFooter({ className, ...props }) {
|
|
2339
2363
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2340
2364
|
"div",
|
|
2341
2365
|
{
|
|
2342
|
-
className: cn(
|
|
2343
|
-
"flex flex-col-reverse gap-4 px-6 pb-6 pt-4 sm:flex-row sm:justify-end",
|
|
2344
|
-
className
|
|
2345
|
-
),
|
|
2366
|
+
className: cn("flex items-center justify-end gap-2", className),
|
|
2346
2367
|
...props
|
|
2347
2368
|
}
|
|
2348
2369
|
);
|
|
2349
2370
|
}
|
|
2350
2371
|
var DialogCancel = React13.forwardRef(
|
|
2351
|
-
({ 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 }) })
|
|
2352
2373
|
);
|
|
2353
2374
|
DialogCancel.displayName = "DialogCancel";
|
|
2354
2375
|
var DialogTitle = React13.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
@@ -2360,7 +2381,7 @@ var DialogTitle = React13.forwardRef(({ children, className, ...props }, ref) =>
|
|
|
2360
2381
|
children: renderTextContent(children, {
|
|
2361
2382
|
as: "span",
|
|
2362
2383
|
className: "block text-card-foreground",
|
|
2363
|
-
size: "
|
|
2384
|
+
size: "h3"
|
|
2364
2385
|
})
|
|
2365
2386
|
}
|
|
2366
2387
|
));
|
|
@@ -2868,7 +2889,7 @@ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
|
|
|
2868
2889
|
{
|
|
2869
2890
|
"aria-disabled": disabled || void 0,
|
|
2870
2891
|
className: cn(
|
|
2871
|
-
"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",
|
|
2872
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)]",
|
|
2873
2894
|
isDragActive && "border-[color:var(--sofya-border-hover)] bg-[color:var(--sofya-surface-selected)] shadow-[var(--sofya-shadow-dropzone-focus)]",
|
|
2874
2895
|
disabled && "cursor-not-allowed opacity-60",
|
|
@@ -2895,7 +2916,7 @@ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
|
|
|
2895
2916
|
resolvedDescription ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-[color:var(--sofya-text-subtle)]", children: renderTextContent(resolvedDescription, {
|
|
2896
2917
|
as: "span",
|
|
2897
2918
|
className: "block text-[color:var(--sofya-text-subtle)]",
|
|
2898
|
-
size: "tiny"
|
|
2919
|
+
size: "extra-tiny"
|
|
2899
2920
|
}) }) : null
|
|
2900
2921
|
]
|
|
2901
2922
|
}
|
|
@@ -2911,7 +2932,7 @@ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
|
|
|
2911
2932
|
animate: prefersReducedMotion ? { opacity: 1 } : { opacity: 1, y: 0 },
|
|
2912
2933
|
exit: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: -6 },
|
|
2913
2934
|
transition: uploadListItemTransition,
|
|
2914
|
-
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: [
|
|
2915
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)(
|
|
2916
2937
|
UploadFileTypeGlyph,
|
|
2917
2938
|
{
|
|
@@ -5179,6 +5200,7 @@ var import_tokens2 = require("@sofya-ds/tokens");
|
|
|
5179
5200
|
CardTitle,
|
|
5180
5201
|
Checkbox,
|
|
5181
5202
|
Dialog,
|
|
5203
|
+
DialogBody,
|
|
5182
5204
|
DialogCancel,
|
|
5183
5205
|
DialogClose,
|
|
5184
5206
|
DialogContent,
|