@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 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-background text-foreground hover:bg-muted",
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: "body",
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-focus-radius)",
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", "panel", "focus"];
1754
+ var cardVariants = ["card", "focus"];
1759
1755
  function Card({ className, variant = "card", ...props }) {
1760
- const hasHoverShadow = variant === "card" || variant === "panel";
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 = ["panel", "card"];
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-[38px] w-[38px] p-0",
1989
- sm: "h-8 w-8 p-0",
1990
- lg: "h-11 w-11 p-0"
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
- if (appearance) {
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: dropdownLanguageFlagSrc[locale],
2070
- className: "h-[12px] w-[16px] shrink-0 object-cover"
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
- usesDefaultListStyle ? "px-0 py-0 data-[highlighted]:bg-transparent [&[data-highlighted]_span[data-dropdown-item-body]]:bg-[color:var(--sofya-surface-selected)]" : "px-2 py-2 data-[highlighted]:bg-[color:var(--sofya-surface-hover)]",
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: usesDefaultListStyle ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
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: "body"
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
- ) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
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.jsxs)(
2311
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2305
2312
  Card,
2306
2313
  {
2307
- variant: cardVariant,
2314
+ variant,
2308
2315
  className: cn(
2309
- "relative flex max-h-[inherit] min-h-0 w-full flex-col overflow-y-auto overflow-x-hidden border-border bg-card",
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
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: cn("grid gap-2 px-6 pt-6 pr-16 text-left", className), ...props });
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 = "outline", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Button, { ref, type, variant, ...props }) })
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: "h4"
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-[color:var(--sofya-tone-default-background)] px-4 py-4 text-center transition-[border-color,background-color,box-shadow,color] duration-sofya ease-sofya",
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: "panel", className: "flex items-center gap-4 p-4", children: [
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,