@sofya-ds/react 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -393,19 +393,49 @@ Icon.displayName = "Icon";
393
393
 
394
394
  // src/components/text.tsx
395
395
  import * as React3 from "react";
396
+ import {
397
+ sofyaTextStyleNames
398
+ } from "@sofya-ds/tokens";
396
399
  import { jsx as jsx3 } from "react/jsx-runtime";
397
- var textSizeOptions = ["h1", "h2", "h3", "h4", "h5", "body", "tiny", "extra-tiny"];
400
+ var textSizeOptions = sofyaTextStyleNames;
398
401
  var textVariantOptions = ["default", "gradient", "shiny", "split"];
399
402
  var textSplitTypeOptions = ["chars", "words", "words, chars"];
400
403
  var defaultElements = {
404
+ "display-xl": "h1",
405
+ "display-lg": "h1",
406
+ "heading-xl": "h1",
407
+ "heading-lg": "h2",
408
+ "heading-md": "h3",
401
409
  h1: "h1",
402
410
  h2: "h2",
403
411
  h3: "h3",
404
412
  h4: "h4",
405
413
  h5: "h5",
414
+ "encounter-title": "h1",
415
+ "title-md": "h3",
416
+ "title-sm": "h4",
417
+ "body-lg": "p",
418
+ "body-md": "p",
419
+ "body-sm": "p",
406
420
  body: "p",
421
+ "label-md": "span",
422
+ "section-label": "span",
423
+ "eyebrow-md": "span",
424
+ "overline-md": "span",
425
+ "sidebar-title": "span",
426
+ "sidebar-title-regular": "span",
427
+ "sidebar-title-strong": "span",
428
+ "sidebar-label": "span",
429
+ "sidebar-label-strong": "span",
430
+ "sidebar-body": "span",
431
+ "sidebar-tag": "span",
432
+ "encounter-chip": "span",
433
+ "encounter-history": "span",
434
+ caption: "span",
435
+ eyebrow: "span",
407
436
  tiny: "span",
408
- "extra-tiny": "span"
437
+ "extra-tiny": "span",
438
+ "code-sm": "code"
409
439
  };
410
440
  var textSizeStyles = Object.fromEntries(
411
441
  textSizeOptions.map((size) => [
@@ -1555,27 +1585,26 @@ Button.displayName = "Button";
1555
1585
  // src/components/surface.tsx
1556
1586
  import * as React9 from "react";
1557
1587
  import { Slot as Slot2 } from "@radix-ui/react-slot";
1588
+ import {
1589
+ sofyaSurfaceNames
1590
+ } from "@sofya-ds/tokens";
1558
1591
  import { jsx as jsx9 } from "react/jsx-runtime";
1559
- var surfaceStyles = {
1560
- card: {
1561
- backgroundColor: "hsl(var(--sofya-surface-card-background))",
1562
- borderColor: "hsl(var(--sofya-surface-card-border-color))",
1563
- borderWidth: "var(--sofya-surface-card-border-width)",
1564
- borderStyle: "solid",
1565
- borderRadius: "var(--sofya-surface-card-radius)",
1566
- "--sofya-surface-shadow-base": "var(--sofya-surface-card-shadow)",
1567
- boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
1568
- },
1569
- focus: {
1570
- backgroundColor: "hsl(var(--sofya-surface-focus-background))",
1571
- borderColor: "hsl(var(--sofya-surface-focus-border-color))",
1572
- borderWidth: "var(--sofya-surface-focus-border-width)",
1592
+ var surfaceVariantOptions = sofyaSurfaceNames;
1593
+ function toCssTokenName(name) {
1594
+ return name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
1595
+ }
1596
+ function getSurfaceStyle(variant) {
1597
+ const cssName = toCssTokenName(variant);
1598
+ return {
1599
+ backgroundColor: `hsl(var(--sofya-surface-${cssName}-background))`,
1600
+ borderColor: `hsl(var(--sofya-surface-${cssName}-border-color))`,
1601
+ borderWidth: `var(--sofya-surface-${cssName}-border-width)`,
1573
1602
  borderStyle: "solid",
1574
- borderRadius: "var(--sofya-surface-card-radius)",
1575
- "--sofya-surface-shadow-base": "var(--sofya-surface-focus-shadow)",
1603
+ borderRadius: `var(--sofya-surface-${cssName}-radius)`,
1604
+ "--sofya-surface-shadow-base": `var(--sofya-surface-${cssName}-shadow)`,
1576
1605
  boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
1577
- }
1578
- };
1606
+ };
1607
+ }
1579
1608
  function SurfaceComponent({ as, asChild = false, variant = "card", className, style, ...props }, ref) {
1580
1609
  const Component = asChild ? Slot2 : as ?? "div";
1581
1610
  return /* @__PURE__ */ jsx9(
@@ -1584,7 +1613,7 @@ function SurfaceComponent({ as, asChild = false, variant = "card", className, st
1584
1613
  ref,
1585
1614
  "data-surface-variant": variant,
1586
1615
  className: cn("relative text-foreground", className),
1587
- style: { ...surfaceStyles[variant], ...style },
1616
+ style: { ...getSurfaceStyle(variant), ...style },
1588
1617
  ...props
1589
1618
  }
1590
1619
  );
@@ -1661,13 +1690,13 @@ var selectionControlLabelTextBaseClasses = "text-[color:var(--sofya-text-default
1661
1690
  var selectionControlDescriptionTextBaseClasses = "text-muted-foreground";
1662
1691
  var selectionControlControlBaseClasses = "border border-[color:var(--sofya-border-strong)] bg-card transition-[background-color,border-color,box-shadow,color] duration-sofya ease-sofya disabled:cursor-not-allowed disabled:opacity-50";
1663
1692
  function selectionControlContainerClasses({
1664
- alignClassName,
1693
+ alignClassName: alignClassName2,
1665
1694
  className,
1666
1695
  disabled
1667
1696
  }) {
1668
1697
  return cn(
1669
1698
  selectionControlContainerBaseClasses,
1670
- alignClassName,
1699
+ alignClassName2,
1671
1700
  disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
1672
1701
  className
1673
1702
  );
@@ -1691,13 +1720,13 @@ var Checkbox = React10.forwardRef(
1691
1720
  const generatedId = React10.useId();
1692
1721
  const resolvedId = id ?? generatedId;
1693
1722
  const descriptionId = description ? `${resolvedId}-description` : void 0;
1694
- const alignClassName = description ? "items-start" : "items-center";
1723
+ const alignClassName2 = description ? "items-start" : "items-center";
1695
1724
  return /* @__PURE__ */ jsxs4(
1696
1725
  "label",
1697
1726
  {
1698
1727
  htmlFor: resolvedId,
1699
1728
  className: selectionControlContainerClasses({
1700
- alignClassName,
1729
+ alignClassName: alignClassName2,
1701
1730
  className,
1702
1731
  disabled
1703
1732
  }),
@@ -3426,13 +3455,16 @@ var DialogContent = React19.forwardRef(
3426
3455
  className,
3427
3456
  children,
3428
3457
  cardClassName,
3458
+ cardStyle,
3429
3459
  overlayClassName,
3430
3460
  showCloseButton = true,
3461
+ surfaceShadow = "var(--sofya-shadow-lg)",
3431
3462
  variant = "card",
3432
3463
  ...props
3433
3464
  }, ref) => {
3434
3465
  const dialogCardStyle = {
3435
- "--sofya-surface-shadow-override": "var(--sofya-shadow-lg)"
3466
+ "--sofya-surface-shadow-override": surfaceShadow,
3467
+ ...cardStyle
3436
3468
  };
3437
3469
  return /* @__PURE__ */ jsx20(DialogInternalContext.Provider, { value: { showCloseButton }, children: /* @__PURE__ */ jsxs11(DialogPortal, { children: [
3438
3470
  /* @__PURE__ */ jsx20(DialogOverlay, { className: overlayClassName }),
@@ -3538,10 +3570,73 @@ var DialogDescription = React19.forwardRef(({ children, className, ...props }, r
3538
3570
  ));
3539
3571
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
3540
3572
 
3541
- // src/components/empty.tsx
3573
+ // src/components/document-card.tsx
3542
3574
  import * as React20 from "react";
3575
+ import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
3576
+ var DocumentCard = React20.forwardRef(
3577
+ ({
3578
+ actions,
3579
+ className,
3580
+ description,
3581
+ leading,
3582
+ meta,
3583
+ selected = false,
3584
+ title,
3585
+ ...props
3586
+ }, ref) => {
3587
+ const gridTemplateClassName = cn(
3588
+ leading && actions && "grid-cols-[auto_minmax(0,1fr)_auto]",
3589
+ leading && !actions && "grid-cols-[auto_minmax(0,1fr)]",
3590
+ !leading && actions && "grid-cols-[minmax(0,1fr)_auto]",
3591
+ !leading && !actions && "grid-cols-[minmax(0,1fr)]"
3592
+ );
3593
+ return /* @__PURE__ */ jsxs12(
3594
+ Surface,
3595
+ {
3596
+ ref,
3597
+ "aria-selected": selected,
3598
+ "data-slot": "document-card",
3599
+ "data-state": selected ? "selected" : "idle",
3600
+ variant: selected ? "documentCardSelected" : "documentCard",
3601
+ className: cn(
3602
+ "grid min-h-[var(--sofya-control-height-lg)] items-center gap-[var(--sofya-gap-default)] px-[var(--sofya-space-4)] py-[var(--sofya-space-3)]",
3603
+ gridTemplateClassName,
3604
+ className
3605
+ ),
3606
+ ...props,
3607
+ children: [
3608
+ leading ? /* @__PURE__ */ jsx21(
3609
+ "span",
3610
+ {
3611
+ "data-slot": "document-card-leading",
3612
+ className: "flex size-[var(--sofya-icon-button-size-sm)] shrink-0 items-center justify-center text-primary",
3613
+ children: leading
3614
+ }
3615
+ ) : null,
3616
+ /* @__PURE__ */ jsxs12("span", { "data-slot": "document-card-content", className: "min-w-0", children: [
3617
+ /* @__PURE__ */ jsx21(Text, { as: "span", size: "label-md", className: "block truncate text-foreground", children: title }),
3618
+ description ? /* @__PURE__ */ jsx21(Text, { as: "span", size: "caption", className: "block truncate text-muted-foreground", children: description }) : null,
3619
+ meta ? /* @__PURE__ */ jsx21(Text, { as: "span", size: "caption", className: "block truncate text-muted-foreground", children: meta }) : null
3620
+ ] }),
3621
+ actions ? /* @__PURE__ */ jsx21(
3622
+ "span",
3623
+ {
3624
+ "data-slot": "document-card-actions",
3625
+ className: "flex shrink-0 items-center gap-[var(--sofya-gap-compact)]",
3626
+ children: actions
3627
+ }
3628
+ ) : null
3629
+ ]
3630
+ }
3631
+ );
3632
+ }
3633
+ );
3634
+ DocumentCard.displayName = "DocumentCard";
3635
+
3636
+ // src/components/empty.tsx
3637
+ import * as React21 from "react";
3543
3638
  import { cva as cva5 } from "class-variance-authority";
3544
- import { Fragment as Fragment3, jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
3639
+ import { Fragment as Fragment3, jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
3545
3640
  var emptyMediaVariantOptions = ["default", "icon"];
3546
3641
  var emptyMediaVariants = cva5(
3547
3642
  "inline-flex shrink-0 items-center justify-center transition-[background-color,border-color,color,box-shadow] duration-sofya ease-sofya",
@@ -3557,11 +3652,11 @@ var emptyMediaVariants = cva5(
3557
3652
  }
3558
3653
  }
3559
3654
  );
3560
- var EmptyMedia = React20.forwardRef(function EmptyMedia2({ className, variant, ...props }, ref) {
3561
- return /* @__PURE__ */ jsx21("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props });
3655
+ var EmptyMedia = React21.forwardRef(function EmptyMedia2({ className, variant, ...props }, ref) {
3656
+ return /* @__PURE__ */ jsx22("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props });
3562
3657
  });
3563
3658
  function EmptyHeader({ className, ...props }) {
3564
- return /* @__PURE__ */ jsx21(
3659
+ return /* @__PURE__ */ jsx22(
3565
3660
  "div",
3566
3661
  {
3567
3662
  className: cn("flex max-w-[34rem] flex-col items-center gap-4 text-center", className),
@@ -3570,7 +3665,7 @@ function EmptyHeader({ className, ...props }) {
3570
3665
  );
3571
3666
  }
3572
3667
  function EmptyTitle({ children, className, ...props }) {
3573
- return /* @__PURE__ */ jsx21(
3668
+ return /* @__PURE__ */ jsx22(
3574
3669
  "h2",
3575
3670
  {
3576
3671
  className: cn("text-foreground", className),
@@ -3588,7 +3683,7 @@ function EmptyDescription({
3588
3683
  className,
3589
3684
  ...props
3590
3685
  }) {
3591
- return /* @__PURE__ */ jsx21(
3686
+ return /* @__PURE__ */ jsx22(
3592
3687
  "p",
3593
3688
  {
3594
3689
  className: cn("max-w-full text-muted-foreground whitespace-nowrap", className),
@@ -3602,7 +3697,7 @@ function EmptyDescription({
3602
3697
  );
3603
3698
  }
3604
3699
  function EmptyContent({ children, className, ...props }) {
3605
- return /* @__PURE__ */ jsx21(
3700
+ return /* @__PURE__ */ jsx22(
3606
3701
  "div",
3607
3702
  {
3608
3703
  className: cn("flex flex-wrap items-center justify-center gap-4 text-center", className),
@@ -3613,9 +3708,9 @@ function EmptyContent({ children, className, ...props }) {
3613
3708
  }
3614
3709
  );
3615
3710
  }
3616
- var Empty = React20.forwardRef(function Empty2({ children, className, content, description, media, title, ...props }, ref) {
3617
- const hasCustomChildren = React20.Children.count(children) > 0;
3618
- return /* @__PURE__ */ jsx21(
3711
+ var Empty = React21.forwardRef(function Empty2({ children, className, content, description, media, title, ...props }, ref) {
3712
+ const hasCustomChildren = React21.Children.count(children) > 0;
3713
+ return /* @__PURE__ */ jsx22(
3619
3714
  "div",
3620
3715
  {
3621
3716
  ref,
@@ -3624,13 +3719,13 @@ var Empty = React20.forwardRef(function Empty2({ children, className, content, d
3624
3719
  className
3625
3720
  ),
3626
3721
  ...props,
3627
- children: hasCustomChildren ? children : /* @__PURE__ */ jsxs12(Fragment3, { children: [
3628
- /* @__PURE__ */ jsxs12(EmptyHeader, { children: [
3629
- media ?? /* @__PURE__ */ jsx21(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx21(Icon, { name: "folders", size: 28 }) }),
3630
- /* @__PURE__ */ jsx21(EmptyTitle, { children: title ?? "Nada por aqui" }),
3631
- /* @__PURE__ */ jsx21(EmptyDescription, { children: description ?? "Quando houver conte\xFAdo dispon\xEDvel, ele aparecer\xE1 aqui." })
3722
+ children: hasCustomChildren ? children : /* @__PURE__ */ jsxs13(Fragment3, { children: [
3723
+ /* @__PURE__ */ jsxs13(EmptyHeader, { children: [
3724
+ media ?? /* @__PURE__ */ jsx22(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx22(Icon, { name: "folders", size: 28 }) }),
3725
+ /* @__PURE__ */ jsx22(EmptyTitle, { children: title ?? "Nada por aqui" }),
3726
+ /* @__PURE__ */ jsx22(EmptyDescription, { children: description ?? "Quando houver conte\xFAdo dispon\xEDvel, ele aparecer\xE1 aqui." })
3632
3727
  ] }),
3633
- content !== void 0 && content !== null ? /* @__PURE__ */ jsx21(EmptyContent, { children: content }) : null
3728
+ content !== void 0 && content !== null ? /* @__PURE__ */ jsx22(EmptyContent, { children: content }) : null
3634
3729
  ] })
3635
3730
  }
3636
3731
  );
@@ -3643,11 +3738,11 @@ EmptyDescription.displayName = "EmptyDescription";
3643
3738
  EmptyContent.displayName = "EmptyContent";
3644
3739
 
3645
3740
  // src/components/label.tsx
3646
- import * as React21 from "react";
3647
- import { jsx as jsx22 } from "react/jsx-runtime";
3648
- var Label = React21.forwardRef(
3741
+ import * as React22 from "react";
3742
+ import { jsx as jsx23 } from "react/jsx-runtime";
3743
+ var Label = React22.forwardRef(
3649
3744
  ({ children, className, ...props }, ref) => {
3650
- return /* @__PURE__ */ jsx22(
3745
+ return /* @__PURE__ */ jsx23(
3651
3746
  "label",
3652
3747
  {
3653
3748
  ref,
@@ -3670,11 +3765,109 @@ var Label = React21.forwardRef(
3670
3765
  );
3671
3766
  Label.displayName = "Label";
3672
3767
 
3768
+ // src/components/layout.tsx
3769
+ import * as React23 from "react";
3770
+ import { jsx as jsx24 } from "react/jsx-runtime";
3771
+ var alignClassName = {
3772
+ start: "items-start",
3773
+ center: "items-center",
3774
+ end: "items-end",
3775
+ stretch: "items-stretch"
3776
+ };
3777
+ var justifyClassName = {
3778
+ start: "justify-start",
3779
+ center: "justify-center",
3780
+ between: "justify-between",
3781
+ end: "justify-end"
3782
+ };
3783
+ function getGapStyle(gap) {
3784
+ return {
3785
+ "--sofya-layout-gap": `var(--sofya-gap-${gap})`
3786
+ };
3787
+ }
3788
+ var Stack = React23.forwardRef(
3789
+ ({ className, gap = "default", style, ...props }, ref) => /* @__PURE__ */ jsx24(
3790
+ "div",
3791
+ {
3792
+ ref,
3793
+ "data-slot": "stack",
3794
+ className: cn("flex min-w-0 flex-col gap-[var(--sofya-layout-gap)]", className),
3795
+ style: { ...getGapStyle(gap), ...style },
3796
+ ...props
3797
+ }
3798
+ )
3799
+ );
3800
+ Stack.displayName = "Stack";
3801
+ var Cluster = React23.forwardRef(
3802
+ ({
3803
+ align = "center",
3804
+ className,
3805
+ gap = "default",
3806
+ justify = "start",
3807
+ style,
3808
+ ...props
3809
+ }, ref) => /* @__PURE__ */ jsx24(
3810
+ "div",
3811
+ {
3812
+ ref,
3813
+ "data-slot": "cluster",
3814
+ className: cn(
3815
+ "flex min-w-0 flex-wrap gap-[var(--sofya-layout-gap)]",
3816
+ alignClassName[align],
3817
+ justifyClassName[justify],
3818
+ className
3819
+ ),
3820
+ style: { ...getGapStyle(gap), ...style },
3821
+ ...props
3822
+ }
3823
+ )
3824
+ );
3825
+ Cluster.displayName = "Cluster";
3826
+ var Inline = React23.forwardRef(
3827
+ ({ align = "center", className, gap = "compact", style, ...props }, ref) => /* @__PURE__ */ jsx24(
3828
+ "div",
3829
+ {
3830
+ ref,
3831
+ "data-slot": "inline",
3832
+ className: cn(
3833
+ "inline-flex min-w-0 gap-[var(--sofya-layout-gap)]",
3834
+ alignClassName[align],
3835
+ className
3836
+ ),
3837
+ style: { ...getGapStyle(gap), ...style },
3838
+ ...props
3839
+ }
3840
+ )
3841
+ );
3842
+ Inline.displayName = "Inline";
3843
+ var Container = React23.forwardRef(
3844
+ ({ className, measure = "reading", style, ...props }, ref) => {
3845
+ const measureStyle = measure === "none" ? void 0 : {
3846
+ "--sofya-layout-measure": `var(--sofya-measure-${measure})`
3847
+ };
3848
+ return /* @__PURE__ */ jsx24(
3849
+ "div",
3850
+ {
3851
+ ref,
3852
+ "data-slot": "container",
3853
+ className: cn(
3854
+ "mx-auto w-full min-w-0",
3855
+ measure !== "none" && "max-w-[var(--sofya-layout-measure)]",
3856
+ className
3857
+ ),
3858
+ style: { ...measureStyle, ...style },
3859
+ ...props
3860
+ }
3861
+ );
3862
+ }
3863
+ );
3864
+ Container.displayName = "Container";
3865
+
3673
3866
  // src/components/link.tsx
3674
- import * as React22 from "react";
3867
+ import * as React24 from "react";
3675
3868
  import { Slot as Slot3 } from "@radix-ui/react-slot";
3676
3869
  import { cva as cva6 } from "class-variance-authority";
3677
- import { jsx as jsx23 } from "react/jsx-runtime";
3870
+ import { jsx as jsx25 } from "react/jsx-runtime";
3678
3871
  var linkVariants = cva6(
3679
3872
  "inline bg-[linear-gradient(currentColor,currentColor)] bg-[position:0_100%] bg-no-repeat pb-0 text-primary no-underline transition-[color,background-size,box-shadow] duration-sofya ease-sofya hover:text-[color:var(--sofya-link-hover)] focus-visible:rounded-[4px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0",
3680
3873
  {
@@ -3689,9 +3882,9 @@ var linkVariants = cva6(
3689
3882
  }
3690
3883
  }
3691
3884
  );
3692
- var Link = React22.forwardRef(function Link2({ asChild = false, children, className, variant = "default", ...props }, ref) {
3885
+ var Link = React24.forwardRef(function Link2({ asChild = false, children, className, variant = "default", ...props }, ref) {
3693
3886
  const Component = asChild ? Slot3 : "a";
3694
- return /* @__PURE__ */ jsx23(
3887
+ return /* @__PURE__ */ jsx25(
3695
3888
  Component,
3696
3889
  {
3697
3890
  ref,
@@ -3709,7 +3902,7 @@ var Link = React22.forwardRef(function Link2({ asChild = false, children, classN
3709
3902
  Link.displayName = "Link";
3710
3903
 
3711
3904
  // src/components/logo.tsx
3712
- import * as React23 from "react";
3905
+ import * as React25 from "react";
3713
3906
 
3714
3907
  // src/components/logo-data.ts
3715
3908
  var logoAssets = {
@@ -3806,7 +3999,7 @@ var logoAssets = {
3806
3999
  };
3807
4000
 
3808
4001
  // src/components/logo.tsx
3809
- import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
4002
+ import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
3810
4003
  var logoVariants = ["mono", "default", "text", "full"];
3811
4004
  var logoSizeOptions = ["sm", "md", "lg", "xl", "2xl"];
3812
4005
  var logoSizeScale = {
@@ -3842,7 +4035,7 @@ function resolveLogoDimensions(variant, size, width, height) {
3842
4035
  height: resolvedHeight
3843
4036
  };
3844
4037
  }
3845
- var Logo = React23.forwardRef(function Logo2({
4038
+ var Logo = React25.forwardRef(function Logo2({
3846
4039
  variant = "full",
3847
4040
  size = "lg",
3848
4041
  width,
@@ -3853,10 +4046,10 @@ var Logo = React23.forwardRef(function Logo2({
3853
4046
  ...props
3854
4047
  }, ref) {
3855
4048
  const asset = logoAssets[variant];
3856
- const titleId = React23.useId();
4049
+ const titleId = React25.useId();
3857
4050
  const dimensions = resolveLogoDimensions(variant, size, width, height);
3858
4051
  const monoFill = variant === "mono" ? monoColor ?? "currentColor" : void 0;
3859
- return /* @__PURE__ */ jsxs13(
4052
+ return /* @__PURE__ */ jsxs14(
3860
4053
  "svg",
3861
4054
  {
3862
4055
  ref,
@@ -3871,8 +4064,8 @@ var Logo = React23.forwardRef(function Logo2({
3871
4064
  focusable: "false",
3872
4065
  ...props,
3873
4066
  children: [
3874
- title ? /* @__PURE__ */ jsx24("title", { id: titleId, children: title }) : null,
3875
- asset.paths.map((path, index) => /* @__PURE__ */ jsx24(
4067
+ title ? /* @__PURE__ */ jsx26("title", { id: titleId, children: title }) : null,
4068
+ asset.paths.map((path, index) => /* @__PURE__ */ jsx26(
3876
4069
  "path",
3877
4070
  {
3878
4071
  d: path.d,
@@ -3904,7 +4097,7 @@ var inheritedTypographyStyle = {
3904
4097
  };
3905
4098
 
3906
4099
  // src/components/pagination.tsx
3907
- import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
4100
+ import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
3908
4101
  var paginationLinkVariants = cva7(
3909
4102
  "inline-flex h-10 min-w-10 items-center justify-center rounded-full border border-transparent px-4 [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] font-medium leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)] text-[color:var(--sofya-text-soft)] no-underline transition-[transform,background-color,border-color,color,box-shadow] duration-sofya ease-sofya motion-safe:active:scale-[0.985] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0",
3910
4103
  {
@@ -3925,7 +4118,7 @@ var paginationLinkVariants = cva7(
3925
4118
  }
3926
4119
  );
3927
4120
  function Pagination({ className, ...props }) {
3928
- return /* @__PURE__ */ jsx25(
4121
+ return /* @__PURE__ */ jsx27(
3929
4122
  "nav",
3930
4123
  {
3931
4124
  "aria-label": "Pagination",
@@ -3938,7 +4131,7 @@ function PaginationContent({
3938
4131
  className,
3939
4132
  ...props
3940
4133
  }) {
3941
- return /* @__PURE__ */ jsx25(
4134
+ return /* @__PURE__ */ jsx27(
3942
4135
  "ul",
3943
4136
  {
3944
4137
  className: cn(
@@ -3950,7 +4143,7 @@ function PaginationContent({
3950
4143
  );
3951
4144
  }
3952
4145
  function PaginationItem({ className, ...props }) {
3953
- return /* @__PURE__ */ jsx25("li", { className: cn("list-none", className), ...props });
4146
+ return /* @__PURE__ */ jsx27("li", { className: cn("list-none", className), ...props });
3954
4147
  }
3955
4148
  function PaginationLink({
3956
4149
  asChild = false,
@@ -3960,7 +4153,7 @@ function PaginationLink({
3960
4153
  ...props
3961
4154
  }) {
3962
4155
  const Component = asChild ? Slot4 : "a";
3963
- return /* @__PURE__ */ jsx25(
4156
+ return /* @__PURE__ */ jsx27(
3964
4157
  Component,
3965
4158
  {
3966
4159
  "aria-current": isActive ? "page" : void 0,
@@ -3970,25 +4163,25 @@ function PaginationLink({
3970
4163
  );
3971
4164
  }
3972
4165
  function PaginationChevronLeft() {
3973
- return /* @__PURE__ */ jsx25(IconChevronLeft2, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
4166
+ return /* @__PURE__ */ jsx27(IconChevronLeft2, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
3974
4167
  }
3975
4168
  function PaginationChevronRight() {
3976
- return /* @__PURE__ */ jsx25(IconChevronRight2, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
4169
+ return /* @__PURE__ */ jsx27(IconChevronRight2, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
3977
4170
  }
3978
4171
  function PaginationPrevious({
3979
4172
  className,
3980
4173
  text = "Previous",
3981
4174
  ...props
3982
4175
  }) {
3983
- return /* @__PURE__ */ jsxs14(
4176
+ return /* @__PURE__ */ jsxs15(
3984
4177
  PaginationLink,
3985
4178
  {
3986
4179
  "aria-label": "Go to previous page",
3987
4180
  className: cn("gap-2 px-4", className),
3988
4181
  ...props,
3989
4182
  children: [
3990
- /* @__PURE__ */ jsx25(PaginationChevronLeft, {}),
3991
- /* @__PURE__ */ jsx25("span", { className: "hidden sm:block", children: renderTextContent(text, {
4183
+ /* @__PURE__ */ jsx27(PaginationChevronLeft, {}),
4184
+ /* @__PURE__ */ jsx27("span", { className: "hidden sm:block", children: renderTextContent(text, {
3992
4185
  as: "span",
3993
4186
  className: "block text-inherit",
3994
4187
  size: "body",
@@ -4003,20 +4196,20 @@ function PaginationNext({
4003
4196
  text = "Next",
4004
4197
  ...props
4005
4198
  }) {
4006
- return /* @__PURE__ */ jsxs14(
4199
+ return /* @__PURE__ */ jsxs15(
4007
4200
  PaginationLink,
4008
4201
  {
4009
4202
  "aria-label": "Go to next page",
4010
4203
  className: cn("gap-2 px-4", className),
4011
4204
  ...props,
4012
4205
  children: [
4013
- /* @__PURE__ */ jsx25("span", { className: "hidden sm:block", children: renderTextContent(text, {
4206
+ /* @__PURE__ */ jsx27("span", { className: "hidden sm:block", children: renderTextContent(text, {
4014
4207
  as: "span",
4015
4208
  className: "block text-inherit",
4016
4209
  size: "body",
4017
4210
  style: inheritedTypographyStyle
4018
4211
  }) }),
4019
- /* @__PURE__ */ jsx25(PaginationChevronRight, {})
4212
+ /* @__PURE__ */ jsx27(PaginationChevronRight, {})
4020
4213
  ]
4021
4214
  }
4022
4215
  );
@@ -4025,7 +4218,7 @@ function PaginationEllipsis({
4025
4218
  className,
4026
4219
  ...props
4027
4220
  }) {
4028
- return /* @__PURE__ */ jsxs14(
4221
+ return /* @__PURE__ */ jsxs15(
4029
4222
  "span",
4030
4223
  {
4031
4224
  "aria-hidden": "true",
@@ -4035,22 +4228,90 @@ function PaginationEllipsis({
4035
4228
  ),
4036
4229
  ...props,
4037
4230
  children: [
4038
- /* @__PURE__ */ jsx25("span", { children: renderTextContent("...", {
4231
+ /* @__PURE__ */ jsx27("span", { children: renderTextContent("...", {
4039
4232
  as: "span",
4040
4233
  className: "block text-inherit",
4041
4234
  size: "h5",
4042
4235
  style: inheritedTypographyStyle
4043
4236
  }) }),
4044
- /* @__PURE__ */ jsx25("span", { className: "sr-only", children: "More pages" })
4237
+ /* @__PURE__ */ jsx27("span", { className: "sr-only", children: "More pages" })
4045
4238
  ]
4046
4239
  }
4047
4240
  );
4048
4241
  }
4049
4242
 
4243
+ // src/components/prose-dialog.tsx
4244
+ import * as React26 from "react";
4245
+ import { jsx as jsx28 } from "react/jsx-runtime";
4246
+ var proseDialogMaxWidth = "min(var(--sofya-layout-prose-dialog-width), calc(100vw - var(--sofya-space-8)))";
4247
+ var ProseDialogContent = React26.forwardRef(
4248
+ ({
4249
+ cardClassName,
4250
+ cardStyle: incomingCardStyle,
4251
+ className,
4252
+ style,
4253
+ surfaceShadow = "none",
4254
+ variant = "proseDialog",
4255
+ ...props
4256
+ }, ref) => {
4257
+ const dialogStyle = {
4258
+ ...style,
4259
+ maxWidth: proseDialogMaxWidth
4260
+ };
4261
+ const cardStyle = {
4262
+ ...incomingCardStyle,
4263
+ maxWidth: proseDialogMaxWidth
4264
+ };
4265
+ return /* @__PURE__ */ jsx28(
4266
+ DialogContent,
4267
+ {
4268
+ ref,
4269
+ className,
4270
+ cardClassName: [
4271
+ "gap-[var(--sofya-rhythm-section-content)] p-[var(--sofya-space-6)] sm:p-[var(--sofya-space-12)]",
4272
+ cardClassName
4273
+ ].filter(Boolean).join(" "),
4274
+ cardStyle,
4275
+ "data-slot": "prose-dialog-content",
4276
+ style: dialogStyle,
4277
+ surfaceShadow,
4278
+ variant,
4279
+ ...props
4280
+ }
4281
+ );
4282
+ }
4283
+ );
4284
+ ProseDialogContent.displayName = "ProseDialogContent";
4285
+ function ProseDialogHeader(props) {
4286
+ return /* @__PURE__ */ jsx28(DialogHeader, { "data-slot": "prose-dialog-header", ...props });
4287
+ }
4288
+ ProseDialogHeader.displayName = "ProseDialogHeader";
4289
+ var ProseDialogTitle = React26.forwardRef((props, ref) => /* @__PURE__ */ jsx28(DialogTitle, { ref, "data-slot": "prose-dialog-title", ...props }));
4290
+ ProseDialogTitle.displayName = "ProseDialogTitle";
4291
+ var ProseDialogDescription = React26.forwardRef((props, ref) => /* @__PURE__ */ jsx28(DialogDescription, { ref, "data-slot": "prose-dialog-description", ...props }));
4292
+ ProseDialogDescription.displayName = "ProseDialogDescription";
4293
+ var ProseDialogBody = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
4294
+ "div",
4295
+ {
4296
+ ref,
4297
+ "data-slot": "prose-dialog-body",
4298
+ className: [
4299
+ "flex flex-col",
4300
+ "max-w-[var(--sofya-measure-wide)] gap-[var(--sofya-rhythm-paragraph-flow)]",
4301
+ "[&_p]:m-0 [&_p]:text-[length:var(--sofya-text-body-md-font-size)]",
4302
+ "[&_p]:font-[var(--sofya-text-body-md-font-weight)] [&_p]:leading-[var(--sofya-text-body-md-line-height)]",
4303
+ "[&_section]:flex [&_section]:flex-col [&_section]:gap-[var(--sofya-rhythm-title-to-body)]",
4304
+ className
4305
+ ].filter(Boolean).join(" "),
4306
+ ...props
4307
+ }
4308
+ ));
4309
+ ProseDialogBody.displayName = "ProseDialogBody";
4310
+
4050
4311
  // src/components/progress.tsx
4051
- import * as React24 from "react";
4312
+ import * as React27 from "react";
4052
4313
  import * as ProgressPrimitive from "@radix-ui/react-progress";
4053
- import { jsx as jsx26 } from "react/jsx-runtime";
4314
+ import { jsx as jsx29 } from "react/jsx-runtime";
4054
4315
  var progressSizeOptions = ["sm", "default", "lg"];
4055
4316
  function clampProgressValue(value, max) {
4056
4317
  if (Number.isNaN(value)) {
@@ -4058,7 +4319,7 @@ function clampProgressValue(value, max) {
4058
4319
  }
4059
4320
  return Math.min(Math.max(value, 0), max);
4060
4321
  }
4061
- var Progress = React24.forwardRef(function Progress2({
4322
+ var Progress = React27.forwardRef(function Progress2({
4062
4323
  className,
4063
4324
  indicatorClassName,
4064
4325
  max = 100,
@@ -4069,7 +4330,7 @@ var Progress = React24.forwardRef(function Progress2({
4069
4330
  const safeMax = max > 0 ? max : 100;
4070
4331
  const resolvedValue = typeof value === "number" ? clampProgressValue(value, safeMax) : null;
4071
4332
  const progressScale = resolvedValue === null ? void 0 : Number((resolvedValue / safeMax).toFixed(4));
4072
- return /* @__PURE__ */ jsx26(
4333
+ return /* @__PURE__ */ jsx29(
4073
4334
  ProgressPrimitive.Root,
4074
4335
  {
4075
4336
  ref,
@@ -4082,7 +4343,7 @@ var Progress = React24.forwardRef(function Progress2({
4082
4343
  className
4083
4344
  ),
4084
4345
  ...props,
4085
- children: /* @__PURE__ */ jsx26(
4346
+ children: /* @__PURE__ */ jsx29(
4086
4347
  ProgressPrimitive.Indicator,
4087
4348
  {
4088
4349
  "data-slot": "progress-indicator",
@@ -4099,16 +4360,19 @@ var Progress = React24.forwardRef(function Progress2({
4099
4360
  Progress.displayName = ProgressPrimitive.Root.displayName;
4100
4361
 
4101
4362
  // src/components/radio-group.tsx
4102
- import * as React25 from "react";
4363
+ import * as React28 from "react";
4103
4364
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
4104
- import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
4365
+ import { jsx as jsx30, jsxs as jsxs16 } from "react/jsx-runtime";
4105
4366
  var radioGroupOrientationOptions = ["horizontal", "vertical"];
4106
- var radioGroupVariantOptions = ["default", "pill"];
4107
- var RadioGroupContext = React25.createContext({
4367
+ var radioGroupVariantOptions = ["default", "pill", "option"];
4368
+ var RadioGroupContext = React28.createContext({
4108
4369
  variant: "default"
4109
4370
  });
4110
- var RadioGroup2 = React25.forwardRef(function RadioGroup3({ className, variant = "default", ...props }, ref) {
4111
- return /* @__PURE__ */ jsx27(RadioGroupContext.Provider, { value: { variant }, children: /* @__PURE__ */ jsx27(
4371
+ var RadioGroupOptionContext = React28.createContext(
4372
+ {}
4373
+ );
4374
+ var RadioGroupRoot = React28.forwardRef(function RadioGroup2({ className, variant = "default", ...props }, ref) {
4375
+ return /* @__PURE__ */ jsx30(RadioGroupContext.Provider, { value: { variant }, children: /* @__PURE__ */ jsx30(
4112
4376
  RadioGroupPrimitive.Root,
4113
4377
  {
4114
4378
  ref,
@@ -4123,8 +4387,8 @@ var RadioGroup2 = React25.forwardRef(function RadioGroup3({ className, variant =
4123
4387
  }
4124
4388
  ) });
4125
4389
  });
4126
- RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
4127
- var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4390
+ RadioGroupRoot.displayName = RadioGroupPrimitive.Root.displayName;
4391
+ var RadioGroupItem = React28.forwardRef(function RadioGroupItem2({
4128
4392
  className,
4129
4393
  controlClassName,
4130
4394
  description,
@@ -4136,14 +4400,14 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4136
4400
  labelClassName,
4137
4401
  ...props
4138
4402
  }, ref) {
4139
- const { variant } = React25.useContext(RadioGroupContext);
4140
- const generatedId = React25.useId();
4403
+ const { variant } = React28.useContext(RadioGroupContext);
4404
+ const generatedId = React28.useId();
4141
4405
  const resolvedId = id ?? generatedId;
4142
4406
  const labelId = label ? `${resolvedId}-label` : void 0;
4143
4407
  const descriptionId = description ? `${resolvedId}-description` : void 0;
4144
- const alignClassName = description ? "items-start" : "items-center";
4408
+ const alignClassName2 = description ? "items-start" : "items-center";
4145
4409
  if (variant === "pill") {
4146
- return /* @__PURE__ */ jsx27(
4410
+ return /* @__PURE__ */ jsx30(
4147
4411
  RadioGroupPrimitive.Item,
4148
4412
  {
4149
4413
  ref,
@@ -4158,8 +4422,8 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4158
4422
  className
4159
4423
  ),
4160
4424
  ...props,
4161
- children: label || description ? /* @__PURE__ */ jsxs15("span", { className: "grid justify-items-center gap-1 text-center", children: [
4162
- label ? /* @__PURE__ */ jsx27(
4425
+ children: label || description ? /* @__PURE__ */ jsxs16("span", { className: "grid justify-items-center gap-1 text-center", children: [
4426
+ label ? /* @__PURE__ */ jsx30(
4163
4427
  "span",
4164
4428
  {
4165
4429
  id: labelId,
@@ -4174,7 +4438,7 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4174
4438
  })
4175
4439
  }
4176
4440
  ) : null,
4177
- description ? /* @__PURE__ */ jsx27(
4441
+ description ? /* @__PURE__ */ jsx30(
4178
4442
  "span",
4179
4443
  {
4180
4444
  id: descriptionId,
@@ -4193,16 +4457,16 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4193
4457
  }
4194
4458
  );
4195
4459
  }
4196
- return /* @__PURE__ */ jsxs15(
4460
+ return /* @__PURE__ */ jsxs16(
4197
4461
  "label",
4198
4462
  {
4199
4463
  className: selectionControlContainerClasses({
4200
- alignClassName,
4464
+ alignClassName: alignClassName2,
4201
4465
  className,
4202
4466
  disabled
4203
4467
  }),
4204
4468
  children: [
4205
- /* @__PURE__ */ jsx27(
4469
+ /* @__PURE__ */ jsx30(
4206
4470
  RadioGroupPrimitive.Item,
4207
4471
  {
4208
4472
  ref,
@@ -4218,7 +4482,7 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4218
4482
  controlClassName
4219
4483
  ),
4220
4484
  ...props,
4221
- children: /* @__PURE__ */ jsx27(RadioGroupPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ jsx27(
4485
+ children: /* @__PURE__ */ jsx30(RadioGroupPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ jsx30(
4222
4486
  "span",
4223
4487
  {
4224
4488
  "data-slot": "radio-group-indicator",
@@ -4230,8 +4494,8 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4230
4494
  ) })
4231
4495
  }
4232
4496
  ),
4233
- label || description ? /* @__PURE__ */ jsxs15("span", { className: selectionControlContentBaseClasses, children: [
4234
- label ? /* @__PURE__ */ jsx27(
4497
+ label || description ? /* @__PURE__ */ jsxs16("span", { className: selectionControlContentBaseClasses, children: [
4498
+ label ? /* @__PURE__ */ jsx30(
4235
4499
  "span",
4236
4500
  {
4237
4501
  id: labelId,
@@ -4246,7 +4510,7 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4246
4510
  })
4247
4511
  }
4248
4512
  ) : null,
4249
- description ? /* @__PURE__ */ jsx27(
4513
+ description ? /* @__PURE__ */ jsx30(
4250
4514
  "span",
4251
4515
  {
4252
4516
  id: descriptionId,
@@ -4267,14 +4531,216 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4267
4531
  );
4268
4532
  });
4269
4533
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
4534
+ var RadioGroupOptionAvatar = React28.forwardRef(function RadioGroupOptionAvatar2({
4535
+ alt,
4536
+ avatarClassName,
4537
+ avatarProps,
4538
+ children,
4539
+ className,
4540
+ name,
4541
+ src,
4542
+ ...props
4543
+ }, ref) {
4544
+ return /* @__PURE__ */ jsx30(
4545
+ "span",
4546
+ {
4547
+ ref,
4548
+ "data-slot": "radio-group-option-avatar",
4549
+ className: cn(
4550
+ "flex h-[38px] w-[38px] shrink-0 items-center justify-center rounded-full bg-card",
4551
+ className
4552
+ ),
4553
+ ...props,
4554
+ children: children ?? /* @__PURE__ */ jsx30(
4555
+ Avatar,
4556
+ {
4557
+ ...avatarProps,
4558
+ alt,
4559
+ name: name ?? "",
4560
+ src,
4561
+ className: cn(
4562
+ "h-[38px] w-[38px] border border-transparent bg-card text-[13px] font-medium leading-[22px] text-[color:var(--sofya-text-default)] transition-[border-color,background-color] duration-sofya ease-sofya group-hover/radio-option:border-[color:hsl(var(--sofya-background)/0.8)] group-data-[state=checked]/radio-option:border-[color:hsl(var(--sofya-background)/0.8)]",
4563
+ avatarClassName
4564
+ )
4565
+ }
4566
+ )
4567
+ }
4568
+ );
4569
+ });
4570
+ RadioGroupOptionAvatar.displayName = "RadioGroupOptionAvatar";
4571
+ var RadioGroupOptionLabel = React28.forwardRef(function RadioGroupOptionLabel2({ children, className, ...props }, ref) {
4572
+ const { labelId } = React28.useContext(RadioGroupOptionContext);
4573
+ return /* @__PURE__ */ jsx30(
4574
+ "span",
4575
+ {
4576
+ ref,
4577
+ id: labelId,
4578
+ "data-slot": "radio-group-option-label",
4579
+ className: cn(
4580
+ "min-w-0 text-[16px] font-semibold leading-[22px] text-[color:var(--sofya-text-default)]",
4581
+ className
4582
+ ),
4583
+ ...props,
4584
+ children: renderTextContent(children, {
4585
+ as: "span",
4586
+ className: "block truncate text-[inherit] font-semibold",
4587
+ weight: 600
4588
+ })
4589
+ }
4590
+ );
4591
+ });
4592
+ RadioGroupOptionLabel.displayName = "RadioGroupOptionLabel";
4593
+ var RadioGroupOptionDescription = React28.forwardRef(function RadioGroupOptionDescription2({ children, className, ...props }, ref) {
4594
+ const { descriptionId } = React28.useContext(RadioGroupOptionContext);
4595
+ return /* @__PURE__ */ jsx30(
4596
+ "span",
4597
+ {
4598
+ ref,
4599
+ id: descriptionId,
4600
+ "data-slot": "radio-group-option-description",
4601
+ className: cn(
4602
+ "min-w-0 text-[12px] leading-[18px] text-muted-foreground",
4603
+ className
4604
+ ),
4605
+ ...props,
4606
+ children: renderTextContent(children, {
4607
+ as: "span",
4608
+ className: "block truncate text-[inherit]"
4609
+ })
4610
+ }
4611
+ );
4612
+ });
4613
+ RadioGroupOptionDescription.displayName = "RadioGroupOptionDescription";
4614
+ var RadioGroupOptionIndicator = React28.forwardRef(function RadioGroupOptionIndicator2({ children, className, ...props }, ref) {
4615
+ return /* @__PURE__ */ jsx30(
4616
+ "span",
4617
+ {
4618
+ ref,
4619
+ "data-slot": "radio-group-option-indicator",
4620
+ className: cn(
4621
+ "ml-auto inline-flex shrink-0 items-center justify-end text-[color:var(--sofya-text-default)]",
4622
+ className
4623
+ ),
4624
+ ...props,
4625
+ children: children ?? /* @__PURE__ */ jsx30(
4626
+ "svg",
4627
+ {
4628
+ "aria-hidden": "true",
4629
+ viewBox: "0 0 24 24",
4630
+ className: "h-6 w-6 opacity-0 transition-opacity duration-sofya ease-sofya group-data-[state=checked]/radio-option:opacity-100",
4631
+ fill: "none",
4632
+ xmlns: "http://www.w3.org/2000/svg",
4633
+ children: /* @__PURE__ */ jsx30(
4634
+ "path",
4635
+ {
4636
+ d: "M9.55 17.6537L4.2155 12.3192L5.2845 11.25L9.55 15.5155L18.7155 6.35L19.7845 7.41925L9.55 17.6537Z",
4637
+ fill: "var(--sofya-radio-option-indicator)"
4638
+ }
4639
+ )
4640
+ }
4641
+ )
4642
+ }
4643
+ );
4644
+ });
4645
+ RadioGroupOptionIndicator.displayName = "RadioGroupOptionIndicator";
4646
+ function isOptionChild(child, component) {
4647
+ return React28.isValidElement(child) && child.type === component;
4648
+ }
4649
+ var RadioGroupOption = React28.forwardRef(function RadioGroupOption2({ children, className, disabled, id, ...props }, ref) {
4650
+ const generatedId = React28.useId();
4651
+ const resolvedId = id ?? generatedId;
4652
+ const labelId = `${resolvedId}-label`;
4653
+ const descriptionId = `${resolvedId}-description`;
4654
+ const childArray = React28.Children.toArray(children);
4655
+ const leadingChildren = [];
4656
+ const contentChildren = [];
4657
+ let indicatorChild = null;
4658
+ for (const child of childArray) {
4659
+ if (isOptionChild(child, RadioGroupOptionAvatar)) {
4660
+ leadingChildren.push(child);
4661
+ continue;
4662
+ }
4663
+ if (isOptionChild(child, RadioGroupOptionIndicator)) {
4664
+ indicatorChild = child;
4665
+ continue;
4666
+ }
4667
+ contentChildren.push(child);
4668
+ }
4669
+ return /* @__PURE__ */ jsx30(RadioGroupOptionContext.Provider, { value: { descriptionId, labelId }, children: /* @__PURE__ */ jsxs16(
4670
+ RadioGroupPrimitive.Item,
4671
+ {
4672
+ ref,
4673
+ id: resolvedId,
4674
+ disabled,
4675
+ "aria-describedby": contentChildren.some(
4676
+ (child) => isOptionChild(child, RadioGroupOptionDescription)
4677
+ ) ? descriptionId : void 0,
4678
+ "aria-labelledby": contentChildren.some(
4679
+ (child) => isOptionChild(child, RadioGroupOptionLabel)
4680
+ ) ? labelId : void 0,
4681
+ "data-slot": "radio-group-option",
4682
+ className: cn(
4683
+ "group/radio-option flex min-h-[50px] w-full items-center gap-4 rounded-full border border-transparent bg-card pl-2 pr-5 text-left outline-none transition-[background-color,border-color,box-shadow,color,opacity] duration-sofya ease-sofya hover:bg-[color:var(--sofya-surface-selected)] focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-[color:var(--sofya-surface-selected)] data-[state=checked]:hover:bg-[color:var(--sofya-surface-selected)]",
4684
+ className
4685
+ ),
4686
+ ...props,
4687
+ children: [
4688
+ leadingChildren,
4689
+ /* @__PURE__ */ jsx30(
4690
+ "span",
4691
+ {
4692
+ "data-slot": "radio-group-option-content",
4693
+ className: "flex min-w-0 flex-1 flex-col justify-center gap-0.5",
4694
+ children: contentChildren
4695
+ }
4696
+ ),
4697
+ indicatorChild ?? /* @__PURE__ */ jsx30(RadioGroupOptionIndicator, {})
4698
+ ]
4699
+ }
4700
+ ) });
4701
+ });
4702
+ RadioGroupOption.displayName = "RadioGroupOption";
4703
+ var RadioGroup3 = Object.assign(RadioGroupRoot, {
4704
+ Root: RadioGroupRoot,
4705
+ Item: RadioGroupItem,
4706
+ Option: RadioGroupOption,
4707
+ OptionAvatar: RadioGroupOptionAvatar,
4708
+ OptionDescription: RadioGroupOptionDescription,
4709
+ OptionIndicator: RadioGroupOptionIndicator,
4710
+ OptionLabel: RadioGroupOptionLabel
4711
+ });
4712
+
4713
+ // src/components/right-rail-action.tsx
4714
+ import * as React29 from "react";
4715
+ import { jsx as jsx31 } from "react/jsx-runtime";
4716
+ var RightRailAction = React29.forwardRef(
4717
+ ({ active = false, className, icon, ...props }, ref) => /* @__PURE__ */ jsx31(
4718
+ Button,
4719
+ {
4720
+ ref,
4721
+ active,
4722
+ "data-slot": "right-rail-action",
4723
+ leftIcon: icon,
4724
+ size: "icon",
4725
+ variant: "icon",
4726
+ className: cn(
4727
+ "size-[var(--sofya-icon-button-size-md)] rounded-[var(--sofya-radius-md)] shadow-none",
4728
+ active && "bg-[color:var(--sofya-surface-selected)]",
4729
+ className
4730
+ ),
4731
+ ...props
4732
+ }
4733
+ )
4734
+ );
4735
+ RightRailAction.displayName = "RightRailAction";
4270
4736
 
4271
4737
  // src/components/scroll-area.tsx
4272
- import * as React26 from "react";
4738
+ import * as React30 from "react";
4273
4739
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
4274
- import { jsx as jsx28 } from "react/jsx-runtime";
4740
+ import { jsx as jsx32 } from "react/jsx-runtime";
4275
4741
  var scrollAreaOrientationOptions = ["horizontal", "vertical"];
4276
- var ScrollArea = React26.forwardRef(function ScrollArea2({ className, ...props }, ref) {
4277
- return /* @__PURE__ */ jsx28(
4742
+ var ScrollArea = React30.forwardRef(function ScrollArea2({ className, ...props }, ref) {
4743
+ return /* @__PURE__ */ jsx32(
4278
4744
  ScrollAreaPrimitive.Root,
4279
4745
  {
4280
4746
  ref,
@@ -4285,8 +4751,8 @@ var ScrollArea = React26.forwardRef(function ScrollArea2({ className, ...props }
4285
4751
  );
4286
4752
  });
4287
4753
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
4288
- var ScrollAreaViewport = React26.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
4289
- return /* @__PURE__ */ jsx28(
4754
+ var ScrollAreaViewport = React30.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
4755
+ return /* @__PURE__ */ jsx32(
4290
4756
  ScrollAreaPrimitive.Viewport,
4291
4757
  {
4292
4758
  ref,
@@ -4300,8 +4766,8 @@ var ScrollAreaViewport = React26.forwardRef(function ScrollAreaViewport2({ class
4300
4766
  );
4301
4767
  });
4302
4768
  ScrollAreaViewport.displayName = ScrollAreaPrimitive.Viewport.displayName;
4303
- var ScrollAreaScrollbar = React26.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
4304
- return /* @__PURE__ */ jsx28(
4769
+ var ScrollAreaScrollbar = React30.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
4770
+ return /* @__PURE__ */ jsx32(
4305
4771
  ScrollAreaPrimitive.Scrollbar,
4306
4772
  {
4307
4773
  ref,
@@ -4312,7 +4778,7 @@ var ScrollAreaScrollbar = React26.forwardRef(function ScrollAreaScrollbar2({ cla
4312
4778
  className
4313
4779
  ),
4314
4780
  ...props,
4315
- children: /* @__PURE__ */ jsx28(
4781
+ children: /* @__PURE__ */ jsx32(
4316
4782
  ScrollAreaPrimitive.Thumb,
4317
4783
  {
4318
4784
  "data-slot": "scroll-area-thumb",
@@ -4326,8 +4792,8 @@ var ScrollAreaScrollbar = React26.forwardRef(function ScrollAreaScrollbar2({ cla
4326
4792
  );
4327
4793
  });
4328
4794
  ScrollAreaScrollbar.displayName = ScrollAreaPrimitive.Scrollbar.displayName;
4329
- var ScrollAreaCorner = React26.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
4330
- return /* @__PURE__ */ jsx28(
4795
+ var ScrollAreaCorner = React30.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
4796
+ return /* @__PURE__ */ jsx32(
4331
4797
  ScrollAreaPrimitive.Corner,
4332
4798
  {
4333
4799
  ref,
@@ -4340,19 +4806,19 @@ var ScrollAreaCorner = React26.forwardRef(function ScrollAreaCorner2({ className
4340
4806
  ScrollAreaCorner.displayName = ScrollAreaPrimitive.Corner.displayName;
4341
4807
 
4342
4808
  // src/components/select.tsx
4343
- import * as React27 from "react";
4809
+ import * as React31 from "react";
4344
4810
  import * as SelectPrimitive from "@radix-ui/react-select";
4345
4811
 
4346
4812
  // src/lib/form-control-classes.ts
4347
4813
  var formControlBaseClasses = "flex w-full items-center justify-between gap-4 rounded-[10px] border border-[color:var(--sofya-border-strong)] bg-card px-4 text-left [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)] text-[color:var(--sofya-text-default)] shadow-none transition-[border-color,box-shadow,background-color,color] duration-sofya ease-sofya hover:border-[color:var(--sofya-border-hover)] focus:outline-none focus:ring-2 focus:ring-[color:var(--sofya-focus-ring-soft)] focus:ring-offset-0 active:border-transparent active:ring-2 active:ring-[color:var(--sofya-focus-ring-soft)] disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus:ring-destructive/20 data-[placeholder]:text-[color:var(--sofya-text-placeholder)]";
4348
4814
 
4349
4815
  // src/components/select.tsx
4350
- import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
4816
+ import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
4351
4817
  var selectSizeOptions = ["default", "sm"];
4352
4818
  var Select = SelectPrimitive.Root;
4353
4819
  var SelectGroup = SelectPrimitive.Group;
4354
- var SelectValue = React27.forwardRef(function SelectValue2({ className, ...props }, ref) {
4355
- return /* @__PURE__ */ jsx29(
4820
+ var SelectValue = React31.forwardRef(function SelectValue2({ className, ...props }, ref) {
4821
+ return /* @__PURE__ */ jsx33(
4356
4822
  Text,
4357
4823
  {
4358
4824
  ref,
@@ -4361,13 +4827,13 @@ var SelectValue = React27.forwardRef(function SelectValue2({ className, ...props
4361
4827
  className: cn("block truncate text-inherit", className),
4362
4828
  size: "tiny",
4363
4829
  style: inheritedTypographyStyle,
4364
- children: /* @__PURE__ */ jsx29(SelectPrimitive.Value, { className: "block truncate", ...props })
4830
+ children: /* @__PURE__ */ jsx33(SelectPrimitive.Value, { className: "block truncate", ...props })
4365
4831
  }
4366
4832
  );
4367
4833
  });
4368
4834
  SelectValue.displayName = SelectPrimitive.Value.displayName;
4369
- var SelectTrigger = React27.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
4370
- return /* @__PURE__ */ jsxs16(
4835
+ var SelectTrigger = React31.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
4836
+ return /* @__PURE__ */ jsxs17(
4371
4837
  SelectPrimitive.Trigger,
4372
4838
  {
4373
4839
  ref,
@@ -4381,7 +4847,7 @@ var SelectTrigger = React27.forwardRef(function SelectTrigger2({ className, chil
4381
4847
  ...props,
4382
4848
  children: [
4383
4849
  children,
4384
- /* @__PURE__ */ jsx29(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx29(
4850
+ /* @__PURE__ */ jsx33(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx33(
4385
4851
  Icon,
4386
4852
  {
4387
4853
  name: "caret-down",
@@ -4394,8 +4860,8 @@ var SelectTrigger = React27.forwardRef(function SelectTrigger2({ className, chil
4394
4860
  );
4395
4861
  });
4396
4862
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
4397
- var SelectScrollUpButton = React27.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
4398
- return /* @__PURE__ */ jsx29(
4863
+ var SelectScrollUpButton = React31.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
4864
+ return /* @__PURE__ */ jsx33(
4399
4865
  SelectPrimitive.ScrollUpButton,
4400
4866
  {
4401
4867
  ref,
@@ -4405,13 +4871,13 @@ var SelectScrollUpButton = React27.forwardRef(function SelectScrollUpButton2({ c
4405
4871
  className
4406
4872
  ),
4407
4873
  ...props,
4408
- children: /* @__PURE__ */ jsx29(Icon, { name: "caret-up", size: 12 })
4874
+ children: /* @__PURE__ */ jsx33(Icon, { name: "caret-up", size: 12 })
4409
4875
  }
4410
4876
  );
4411
4877
  });
4412
4878
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
4413
- var SelectScrollDownButton = React27.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
4414
- return /* @__PURE__ */ jsx29(
4879
+ var SelectScrollDownButton = React31.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
4880
+ return /* @__PURE__ */ jsx33(
4415
4881
  SelectPrimitive.ScrollDownButton,
4416
4882
  {
4417
4883
  ref,
@@ -4421,13 +4887,13 @@ var SelectScrollDownButton = React27.forwardRef(function SelectScrollDownButton2
4421
4887
  className
4422
4888
  ),
4423
4889
  ...props,
4424
- children: /* @__PURE__ */ jsx29(Icon, { name: "caret-down", size: 12 })
4890
+ children: /* @__PURE__ */ jsx33(Icon, { name: "caret-down", size: 12 })
4425
4891
  }
4426
4892
  );
4427
4893
  });
4428
4894
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
4429
- var SelectContent = React27.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
4430
- return /* @__PURE__ */ jsx29(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs16(
4895
+ var SelectContent = React31.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
4896
+ return /* @__PURE__ */ jsx33(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs17(
4431
4897
  SelectPrimitive.Content,
4432
4898
  {
4433
4899
  ref,
@@ -4440,8 +4906,8 @@ var SelectContent = React27.forwardRef(function SelectContent2({ className, chil
4440
4906
  ),
4441
4907
  ...props,
4442
4908
  children: [
4443
- /* @__PURE__ */ jsx29(SelectScrollUpButton, {}),
4444
- /* @__PURE__ */ jsx29(
4909
+ /* @__PURE__ */ jsx33(SelectScrollUpButton, {}),
4910
+ /* @__PURE__ */ jsx33(
4445
4911
  SelectPrimitive.Viewport,
4446
4912
  {
4447
4913
  "data-slot": "select-viewport",
@@ -4449,14 +4915,14 @@ var SelectContent = React27.forwardRef(function SelectContent2({ className, chil
4449
4915
  children
4450
4916
  }
4451
4917
  ),
4452
- /* @__PURE__ */ jsx29(SelectScrollDownButton, {})
4918
+ /* @__PURE__ */ jsx33(SelectScrollDownButton, {})
4453
4919
  ]
4454
4920
  }
4455
4921
  ) });
4456
4922
  });
4457
4923
  SelectContent.displayName = SelectPrimitive.Content.displayName;
4458
- var SelectLabel = React27.forwardRef(function SelectLabel2({ className, ...props }, ref) {
4459
- return /* @__PURE__ */ jsx29(
4924
+ var SelectLabel = React31.forwardRef(function SelectLabel2({ className, ...props }, ref) {
4925
+ return /* @__PURE__ */ jsx33(
4460
4926
  SelectPrimitive.Label,
4461
4927
  {
4462
4928
  ref,
@@ -4478,8 +4944,8 @@ var SelectLabel = React27.forwardRef(function SelectLabel2({ className, ...props
4478
4944
  );
4479
4945
  });
4480
4946
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
4481
- var SelectItem = React27.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
4482
- return /* @__PURE__ */ jsxs16(
4947
+ var SelectItem = React31.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
4948
+ return /* @__PURE__ */ jsxs17(
4483
4949
  SelectPrimitive.Item,
4484
4950
  {
4485
4951
  ref,
@@ -4490,20 +4956,20 @@ var SelectItem = React27.forwardRef(function SelectItem2({ className, children,
4490
4956
  ),
4491
4957
  ...props,
4492
4958
  children: [
4493
- /* @__PURE__ */ jsx29(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
4959
+ /* @__PURE__ */ jsx33(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
4494
4960
  as: "span",
4495
4961
  className: "block truncate text-[color:var(--sofya-text-default)]",
4496
4962
  size: "tiny",
4497
4963
  style: inheritedTypographyStyle
4498
4964
  }) }),
4499
- /* @__PURE__ */ jsx29(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ jsx29("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ jsx29(Icon, { name: "check", size: 14 }) }) })
4965
+ /* @__PURE__ */ jsx33(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ jsx33("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ jsx33(Icon, { name: "check", size: 14 }) }) })
4500
4966
  ]
4501
4967
  }
4502
4968
  );
4503
4969
  });
4504
4970
  SelectItem.displayName = SelectPrimitive.Item.displayName;
4505
- var SelectSeparator = React27.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
4506
- return /* @__PURE__ */ jsx29(
4971
+ var SelectSeparator = React31.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
4972
+ return /* @__PURE__ */ jsx33(
4507
4973
  SelectPrimitive.Separator,
4508
4974
  {
4509
4975
  ref,
@@ -4516,11 +4982,11 @@ var SelectSeparator = React27.forwardRef(function SelectSeparator2({ className,
4516
4982
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
4517
4983
 
4518
4984
  // src/components/separator.tsx
4519
- import * as React28 from "react";
4985
+ import * as React32 from "react";
4520
4986
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
4521
- import { jsx as jsx30 } from "react/jsx-runtime";
4522
- var Separator2 = React28.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
4523
- return /* @__PURE__ */ jsx30(
4987
+ import { jsx as jsx34 } from "react/jsx-runtime";
4988
+ var Separator2 = React32.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
4989
+ return /* @__PURE__ */ jsx34(
4524
4990
  SeparatorPrimitive.Root,
4525
4991
  {
4526
4992
  ref,
@@ -4539,8 +5005,8 @@ var Separator2 = React28.forwardRef(function Separator3({ className, decorative
4539
5005
  Separator2.displayName = SeparatorPrimitive.Root.displayName;
4540
5006
 
4541
5007
  // src/components/slider.tsx
4542
- import * as React29 from "react";
4543
- import { jsx as jsx31, jsxs as jsxs17 } from "react/jsx-runtime";
5008
+ import * as React33 from "react";
5009
+ import { jsx as jsx35, jsxs as jsxs18 } from "react/jsx-runtime";
4544
5010
  function clampSliderValue(value, min, max) {
4545
5011
  if (Number.isNaN(value)) {
4546
5012
  return min;
@@ -4565,7 +5031,7 @@ function resolveSliderMeasurement(value, fallback) {
4565
5031
  function isTextValue(value) {
4566
5032
  return typeof value === "string" || typeof value === "number";
4567
5033
  }
4568
- var Slider = React29.forwardRef(function Slider2({
5034
+ var Slider = React33.forwardRef(function Slider2({
4569
5035
  className,
4570
5036
  defaultValue,
4571
5037
  formatValue,
@@ -4588,7 +5054,7 @@ var Slider = React29.forwardRef(function Slider2({
4588
5054
  valueClassName,
4589
5055
  ...props
4590
5056
  }, ref) {
4591
- const resolvedId = React29.useId();
5057
+ const resolvedId = React33.useId();
4592
5058
  const inputId = id ?? resolvedId;
4593
5059
  const safeMin = min;
4594
5060
  const safeMax = resolveSliderMax(safeMin, max);
@@ -4597,7 +5063,7 @@ var Slider = React29.forwardRef(function Slider2({
4597
5063
  onChange: onValueChange,
4598
5064
  value
4599
5065
  });
4600
- React29.useEffect(() => {
5066
+ React33.useEffect(() => {
4601
5067
  if (value !== void 0) {
4602
5068
  return;
4603
5069
  }
@@ -4644,14 +5110,14 @@ var Slider = React29.forwardRef(function Slider2({
4644
5110
  setControllableValue(nextValue);
4645
5111
  onChange?.(event);
4646
5112
  };
4647
- return /* @__PURE__ */ jsxs17(
5113
+ return /* @__PURE__ */ jsxs18(
4648
5114
  "div",
4649
5115
  {
4650
5116
  "data-slot": "slider",
4651
5117
  className: cn("grid w-full gap-2", className),
4652
5118
  children: [
4653
- label || showValue ? /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between gap-4", children: [
4654
- label ? /* @__PURE__ */ jsx31(
5119
+ label || showValue ? /* @__PURE__ */ jsxs18("div", { className: "flex items-center justify-between gap-4", children: [
5120
+ label ? /* @__PURE__ */ jsx35(
4655
5121
  FieldLabel,
4656
5122
  {
4657
5123
  htmlFor: inputId,
@@ -4662,8 +5128,8 @@ var Slider = React29.forwardRef(function Slider2({
4662
5128
  textClassName: "block min-w-0 text-[color:var(--sofya-text-default)]",
4663
5129
  children: label
4664
5130
  }
4665
- ) : /* @__PURE__ */ jsx31("span", {}),
4666
- showValue ? /* @__PURE__ */ jsx31(
5131
+ ) : /* @__PURE__ */ jsx35("span", {}),
5132
+ showValue ? /* @__PURE__ */ jsx35(
4667
5133
  "div",
4668
5134
  {
4669
5135
  className: cn(
@@ -4681,7 +5147,7 @@ var Slider = React29.forwardRef(function Slider2({
4681
5147
  }
4682
5148
  ) : null
4683
5149
  ] }) : null,
4684
- /* @__PURE__ */ jsxs17(
5150
+ /* @__PURE__ */ jsxs18(
4685
5151
  "div",
4686
5152
  {
4687
5153
  "data-slot": "slider-control",
@@ -4691,7 +5157,7 @@ var Slider = React29.forwardRef(function Slider2({
4691
5157
  ),
4692
5158
  style: controlStyle,
4693
5159
  children: [
4694
- /* @__PURE__ */ jsx31(
5160
+ /* @__PURE__ */ jsx35(
4695
5161
  "input",
4696
5162
  {
4697
5163
  ...props,
@@ -4708,7 +5174,7 @@ var Slider = React29.forwardRef(function Slider2({
4708
5174
  style: inputBoundsStyle
4709
5175
  }
4710
5176
  ),
4711
- /* @__PURE__ */ jsx31(
5177
+ /* @__PURE__ */ jsx35(
4712
5178
  "div",
4713
5179
  {
4714
5180
  "data-slot": "slider-track",
@@ -4719,7 +5185,7 @@ var Slider = React29.forwardRef(function Slider2({
4719
5185
  style: trackBoundsStyle
4720
5186
  }
4721
5187
  ),
4722
- /* @__PURE__ */ jsx31(
5188
+ /* @__PURE__ */ jsx35(
4723
5189
  "div",
4724
5190
  {
4725
5191
  "data-slot": "slider-range",
@@ -4730,7 +5196,7 @@ var Slider = React29.forwardRef(function Slider2({
4730
5196
  style: rangeStyle
4731
5197
  }
4732
5198
  ),
4733
- /* @__PURE__ */ jsx31(
5199
+ /* @__PURE__ */ jsx35(
4734
5200
  "div",
4735
5201
  {
4736
5202
  "data-slot": "slider-thumb",
@@ -4751,10 +5217,10 @@ var Slider = React29.forwardRef(function Slider2({
4751
5217
  Slider.displayName = "Slider";
4752
5218
 
4753
5219
  // src/components/skeleton.tsx
4754
- import * as React30 from "react";
4755
- import { jsx as jsx32 } from "react/jsx-runtime";
4756
- var Skeleton = React30.forwardRef(function Skeleton2({ className, ...props }, ref) {
4757
- return /* @__PURE__ */ jsx32(
5220
+ import * as React34 from "react";
5221
+ import { jsx as jsx36 } from "react/jsx-runtime";
5222
+ var Skeleton = React34.forwardRef(function Skeleton2({ className, ...props }, ref) {
5223
+ return /* @__PURE__ */ jsx36(
4758
5224
  "div",
4759
5225
  {
4760
5226
  ref,
@@ -4769,18 +5235,18 @@ var Skeleton = React30.forwardRef(function Skeleton2({ className, ...props }, re
4769
5235
  Skeleton.displayName = "Skeleton";
4770
5236
 
4771
5237
  // src/components/sonner.tsx
4772
- import * as React31 from "react";
5238
+ import * as React35 from "react";
4773
5239
  import {
4774
5240
  Toaster as SonnerToaster,
4775
5241
  toast
4776
5242
  } from "sonner";
4777
- import { jsx as jsx33 } from "react/jsx-runtime";
5243
+ import { jsx as jsx37 } from "react/jsx-runtime";
4778
5244
  var notificationVariantOptions = ["default", "success", "error", "warning"];
4779
5245
  function ToastStatusIcon({
4780
5246
  iconName,
4781
5247
  className
4782
5248
  }) {
4783
- return /* @__PURE__ */ jsx33(
5249
+ return /* @__PURE__ */ jsx37(
4784
5250
  "span",
4785
5251
  {
4786
5252
  "aria-hidden": "true",
@@ -4788,7 +5254,7 @@ function ToastStatusIcon({
4788
5254
  "inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full border shadow-sofya-sm",
4789
5255
  className
4790
5256
  ),
4791
- children: /* @__PURE__ */ jsx33(Icon, { name: iconName, size: 16 })
5257
+ children: /* @__PURE__ */ jsx37(Icon, { name: iconName, size: 16 })
4792
5258
  }
4793
5259
  );
4794
5260
  }
@@ -4809,35 +5275,35 @@ var defaultToastClassNames = {
4809
5275
  loading: "border-border bg-card text-foreground"
4810
5276
  };
4811
5277
  var defaultToastIcons = {
4812
- success: /* @__PURE__ */ jsx33(
5278
+ success: /* @__PURE__ */ jsx37(
4813
5279
  ToastStatusIcon,
4814
5280
  {
4815
5281
  iconName: "check",
4816
5282
  className: "border-success/15 bg-success/12 text-success"
4817
5283
  }
4818
5284
  ),
4819
- error: /* @__PURE__ */ jsx33(
5285
+ error: /* @__PURE__ */ jsx37(
4820
5286
  ToastStatusIcon,
4821
5287
  {
4822
5288
  iconName: "x",
4823
5289
  className: "border-destructive/15 bg-destructive/12 text-destructive"
4824
5290
  }
4825
5291
  ),
4826
- warning: /* @__PURE__ */ jsx33(
5292
+ warning: /* @__PURE__ */ jsx37(
4827
5293
  ToastStatusIcon,
4828
5294
  {
4829
5295
  iconName: "question",
4830
5296
  className: "border-warning/20 bg-warning/15 text-foreground"
4831
5297
  }
4832
5298
  ),
4833
- info: /* @__PURE__ */ jsx33(
5299
+ info: /* @__PURE__ */ jsx37(
4834
5300
  ToastStatusIcon,
4835
5301
  {
4836
5302
  iconName: "question",
4837
5303
  className: "border-primary/15 bg-primary/10 text-primary"
4838
5304
  }
4839
5305
  ),
4840
- close: /* @__PURE__ */ jsx33(Icon, { name: "x", size: 12 })
5306
+ close: /* @__PURE__ */ jsx37(Icon, { name: "x", size: 12 })
4841
5307
  };
4842
5308
  function mergeToastClassNames(overrides) {
4843
5309
  return {
@@ -4845,7 +5311,7 @@ function mergeToastClassNames(overrides) {
4845
5311
  ...overrides
4846
5312
  };
4847
5313
  }
4848
- var Toaster = React31.forwardRef(
5314
+ var Toaster = React35.forwardRef(
4849
5315
  function Toaster2({
4850
5316
  className,
4851
5317
  closeButton = true,
@@ -4857,7 +5323,7 @@ var Toaster = React31.forwardRef(
4857
5323
  visibleToasts = 5,
4858
5324
  ...props
4859
5325
  }, ref) {
4860
- return /* @__PURE__ */ jsx33(
5326
+ return /* @__PURE__ */ jsx37(
4861
5327
  SonnerToaster,
4862
5328
  {
4863
5329
  ref,
@@ -4887,9 +5353,9 @@ var Toaster = React31.forwardRef(
4887
5353
  Toaster.displayName = "Toaster";
4888
5354
 
4889
5355
  // src/components/switch.tsx
4890
- import * as React32 from "react";
5356
+ import * as React36 from "react";
4891
5357
  import * as SwitchPrimitives from "@radix-ui/react-switch";
4892
- import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
5358
+ import { jsx as jsx38, jsxs as jsxs19 } from "react/jsx-runtime";
4893
5359
  var switchSizeOptions = ["default", "sm"];
4894
5360
  var switchRootSizeClasses = {
4895
5361
  default: "h-6 w-11",
@@ -4899,7 +5365,7 @@ var switchThumbSizeClasses = {
4899
5365
  default: "h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0",
4900
5366
  sm: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
4901
5367
  };
4902
- var Switch = React32.forwardRef(
5368
+ var Switch = React36.forwardRef(
4903
5369
  ({
4904
5370
  "aria-describedby": ariaDescribedBy,
4905
5371
  "aria-labelledby": ariaLabelledBy,
@@ -4914,16 +5380,16 @@ var Switch = React32.forwardRef(
4914
5380
  size,
4915
5381
  ...props
4916
5382
  }, ref) => {
4917
- const generatedId = React32.useId();
5383
+ const generatedId = React36.useId();
4918
5384
  const resolvedId = id ?? generatedId;
4919
5385
  const labelId = label ? `${resolvedId}-label` : void 0;
4920
5386
  const descriptionId = description ? `${resolvedId}-description` : void 0;
4921
5387
  const hasTextContent = label !== void 0 || description !== void 0;
4922
5388
  const resolvedSize = size ?? (hasTextContent ? "sm" : "default");
4923
- const alignClassName = description ? "items-start" : "items-center";
5389
+ const alignClassName2 = description ? "items-start" : "items-center";
4924
5390
  const resolvedAriaDescribedBy = [ariaDescribedBy, descriptionId].filter(Boolean).join(" ") || void 0;
4925
5391
  const resolvedAriaLabelledBy = ariaLabelledBy ?? labelId;
4926
- const switchControl = /* @__PURE__ */ jsx34(
5392
+ const switchControl = /* @__PURE__ */ jsx38(
4927
5393
  SwitchPrimitives.Root,
4928
5394
  {
4929
5395
  id: resolvedId,
@@ -4938,7 +5404,7 @@ var Switch = React32.forwardRef(
4938
5404
  "data-size": resolvedSize,
4939
5405
  ...props,
4940
5406
  ref,
4941
- children: /* @__PURE__ */ jsx34(
5407
+ children: /* @__PURE__ */ jsx38(
4942
5408
  SwitchPrimitives.Thumb,
4943
5409
  {
4944
5410
  className: cn(
@@ -4952,19 +5418,19 @@ var Switch = React32.forwardRef(
4952
5418
  if (!hasTextContent) {
4953
5419
  return switchControl;
4954
5420
  }
4955
- return /* @__PURE__ */ jsxs18(
5421
+ return /* @__PURE__ */ jsxs19(
4956
5422
  "div",
4957
5423
  {
4958
5424
  "data-slot": "switch-container",
4959
5425
  className: selectionControlContainerClasses({
4960
- alignClassName,
5426
+ alignClassName: alignClassName2,
4961
5427
  className: containerClassName,
4962
5428
  disabled
4963
5429
  }),
4964
5430
  children: [
4965
5431
  switchControl,
4966
- /* @__PURE__ */ jsxs18("span", { className: selectionControlContentBaseClasses, children: [
4967
- label ? /* @__PURE__ */ jsx34("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ jsx34(
5432
+ /* @__PURE__ */ jsxs19("span", { className: selectionControlContentBaseClasses, children: [
5433
+ label ? /* @__PURE__ */ jsx38("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ jsx38(
4968
5434
  "span",
4969
5435
  {
4970
5436
  id: labelId,
@@ -4979,7 +5445,7 @@ var Switch = React32.forwardRef(
4979
5445
  })
4980
5446
  }
4981
5447
  ) }) : null,
4982
- description ? /* @__PURE__ */ jsx34(
5448
+ description ? /* @__PURE__ */ jsx38(
4983
5449
  "span",
4984
5450
  {
4985
5451
  id: descriptionId,
@@ -5004,8 +5470,8 @@ Switch.displayName = SwitchPrimitives.Root.displayName;
5004
5470
 
5005
5471
  // src/components/table.tsx
5006
5472
  import { cva as cva8 } from "class-variance-authority";
5007
- import * as React33 from "react";
5008
- import { jsx as jsx35 } from "react/jsx-runtime";
5473
+ import * as React37 from "react";
5474
+ import { jsx as jsx39 } from "react/jsx-runtime";
5009
5475
  var tableCellVariantOptions = ["default", "primary", "muted"];
5010
5476
  var tableStatusToneOptions = [
5011
5477
  "active",
@@ -5055,13 +5521,13 @@ var tableActionButtonVariants = cva8(
5055
5521
  }
5056
5522
  }
5057
5523
  );
5058
- var Table = React33.forwardRef(function Table2({ className, ...props }, ref) {
5059
- return /* @__PURE__ */ jsx35(
5524
+ var Table = React37.forwardRef(function Table2({ className, ...props }, ref) {
5525
+ return /* @__PURE__ */ jsx39(
5060
5526
  "div",
5061
5527
  {
5062
5528
  "data-slot": "table-container",
5063
5529
  className: "relative w-full overflow-x-auto",
5064
- children: /* @__PURE__ */ jsx35(
5530
+ children: /* @__PURE__ */ jsx39(
5065
5531
  "table",
5066
5532
  {
5067
5533
  "data-slot": "table",
@@ -5076,8 +5542,8 @@ var Table = React33.forwardRef(function Table2({ className, ...props }, ref) {
5076
5542
  }
5077
5543
  );
5078
5544
  });
5079
- var TableHeader = React33.forwardRef(function TableHeader2({ className, ...props }, ref) {
5080
- return /* @__PURE__ */ jsx35(
5545
+ var TableHeader = React37.forwardRef(function TableHeader2({ className, ...props }, ref) {
5546
+ return /* @__PURE__ */ jsx39(
5081
5547
  "thead",
5082
5548
  {
5083
5549
  "data-slot": "table-header",
@@ -5090,8 +5556,8 @@ var TableHeader = React33.forwardRef(function TableHeader2({ className, ...props
5090
5556
  }
5091
5557
  );
5092
5558
  });
5093
- var TableBody = React33.forwardRef(function TableBody2({ className, ...props }, ref) {
5094
- return /* @__PURE__ */ jsx35(
5559
+ var TableBody = React37.forwardRef(function TableBody2({ className, ...props }, ref) {
5560
+ return /* @__PURE__ */ jsx39(
5095
5561
  "tbody",
5096
5562
  {
5097
5563
  "data-slot": "table-body",
@@ -5101,8 +5567,8 @@ var TableBody = React33.forwardRef(function TableBody2({ className, ...props },
5101
5567
  }
5102
5568
  );
5103
5569
  });
5104
- var TableFooter = React33.forwardRef(function TableFooter2({ className, ...props }, ref) {
5105
- return /* @__PURE__ */ jsx35(
5570
+ var TableFooter = React37.forwardRef(function TableFooter2({ className, ...props }, ref) {
5571
+ return /* @__PURE__ */ jsx39(
5106
5572
  "tfoot",
5107
5573
  {
5108
5574
  "data-slot": "table-footer",
@@ -5115,8 +5581,8 @@ var TableFooter = React33.forwardRef(function TableFooter2({ className, ...props
5115
5581
  }
5116
5582
  );
5117
5583
  });
5118
- var TableRow = React33.forwardRef(function TableRow2({ className, ...props }, ref) {
5119
- return /* @__PURE__ */ jsx35(
5584
+ var TableRow = React37.forwardRef(function TableRow2({ className, ...props }, ref) {
5585
+ return /* @__PURE__ */ jsx39(
5120
5586
  "tr",
5121
5587
  {
5122
5588
  "data-slot": "table-row",
@@ -5129,8 +5595,8 @@ var TableRow = React33.forwardRef(function TableRow2({ className, ...props }, re
5129
5595
  }
5130
5596
  );
5131
5597
  });
5132
- var TableHead = React33.forwardRef(function TableHead2({ className, children, ...props }, ref) {
5133
- return /* @__PURE__ */ jsx35(
5598
+ var TableHead = React37.forwardRef(function TableHead2({ className, children, ...props }, ref) {
5599
+ return /* @__PURE__ */ jsx39(
5134
5600
  "th",
5135
5601
  {
5136
5602
  "data-slot": "table-head",
@@ -5149,9 +5615,9 @@ var TableHead = React33.forwardRef(function TableHead2({ className, children, ..
5149
5615
  }
5150
5616
  );
5151
5617
  });
5152
- var TableCell = React33.forwardRef(
5618
+ var TableCell = React37.forwardRef(
5153
5619
  function TableCell2({ className, variant, truncate, children, ...props }, ref) {
5154
- return /* @__PURE__ */ jsx35(
5620
+ return /* @__PURE__ */ jsx39(
5155
5621
  "td",
5156
5622
  {
5157
5623
  "data-slot": "table-cell",
@@ -5175,8 +5641,8 @@ var TableCell = React33.forwardRef(
5175
5641
  );
5176
5642
  }
5177
5643
  );
5178
- var TableCaption = React33.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
5179
- return /* @__PURE__ */ jsx35(
5644
+ var TableCaption = React37.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
5645
+ return /* @__PURE__ */ jsx39(
5180
5646
  "caption",
5181
5647
  {
5182
5648
  "data-slot": "table-caption",
@@ -5201,7 +5667,7 @@ function TableStatusBadge({
5201
5667
  children,
5202
5668
  ...props
5203
5669
  }) {
5204
- return /* @__PURE__ */ jsx35(
5670
+ return /* @__PURE__ */ jsx39(
5205
5671
  Badge,
5206
5672
  {
5207
5673
  variant: "pill",
@@ -5216,8 +5682,8 @@ function TableStatusBadge({
5216
5682
  }
5217
5683
  );
5218
5684
  }
5219
- var TableActionButton = React33.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
5220
- return /* @__PURE__ */ jsx35(
5685
+ var TableActionButton = React37.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
5686
+ return /* @__PURE__ */ jsx39(
5221
5687
  Button,
5222
5688
  {
5223
5689
  ref,
@@ -5235,8 +5701,8 @@ var TableActionButton = React33.forwardRef(function TableActionButton2({ classNa
5235
5701
  }
5236
5702
  );
5237
5703
  });
5238
- var TableActions = React33.forwardRef(function TableActions2({ className, ...props }, ref) {
5239
- return /* @__PURE__ */ jsx35(
5704
+ var TableActions = React37.forwardRef(function TableActions2({ className, ...props }, ref) {
5705
+ return /* @__PURE__ */ jsx39(
5240
5706
  "div",
5241
5707
  {
5242
5708
  ref,
@@ -5257,10 +5723,10 @@ TableActionButton.displayName = "TableActionButton";
5257
5723
  TableActions.displayName = "TableActions";
5258
5724
 
5259
5725
  // src/components/tabs.tsx
5260
- import * as React34 from "react";
5726
+ import * as React38 from "react";
5261
5727
  import * as TabsPrimitive from "@radix-ui/react-tabs";
5262
5728
  import { motion as motion3 } from "motion/react";
5263
- import { jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
5729
+ import { jsx as jsx40, jsxs as jsxs20 } from "react/jsx-runtime";
5264
5730
  function resolveDefaultValue(items, defaultValue) {
5265
5731
  if (defaultValue) {
5266
5732
  return defaultValue;
@@ -5284,13 +5750,13 @@ function Tabs({
5284
5750
  onChange: onValueChange,
5285
5751
  value
5286
5752
  });
5287
- const indicatorLayoutId = React34.useId();
5288
- React34.useEffect(() => {
5753
+ const indicatorLayoutId = React38.useId();
5754
+ React38.useEffect(() => {
5289
5755
  if (value === void 0) {
5290
5756
  setUncontrolledCurrentValue(resolvedDefaultValue);
5291
5757
  }
5292
5758
  }, [resolvedDefaultValue, setUncontrolledCurrentValue, value]);
5293
- return /* @__PURE__ */ jsxs19(
5759
+ return /* @__PURE__ */ jsxs20(
5294
5760
  TabsPrimitive.Root,
5295
5761
  {
5296
5762
  className: cn("w-full", className),
@@ -5298,7 +5764,7 @@ function Tabs({
5298
5764
  value: currentValue,
5299
5765
  ...props,
5300
5766
  children: [
5301
- /* @__PURE__ */ jsx36(
5767
+ /* @__PURE__ */ jsx40(
5302
5768
  TabsPrimitive.List,
5303
5769
  {
5304
5770
  "aria-label": "Subtelas navegaveis",
@@ -5309,7 +5775,7 @@ function Tabs({
5309
5775
  children: items.map((item) => {
5310
5776
  const isUnavailable = item.disabled || item.loading;
5311
5777
  const isActive = item.value === currentValue;
5312
- return /* @__PURE__ */ jsxs19(
5778
+ return /* @__PURE__ */ jsxs20(
5313
5779
  TabsPrimitive.Trigger,
5314
5780
  {
5315
5781
  value: item.value,
@@ -5321,7 +5787,7 @@ function Tabs({
5321
5787
  item.triggerClassName
5322
5788
  ),
5323
5789
  children: [
5324
- isActive ? /* @__PURE__ */ jsx36(
5790
+ isActive ? /* @__PURE__ */ jsx40(
5325
5791
  motion3.span,
5326
5792
  {
5327
5793
  "aria-hidden": "true",
@@ -5331,15 +5797,15 @@ function Tabs({
5331
5797
  transition: { duration: 0.25, ease: "easeInOut" }
5332
5798
  }
5333
5799
  ) : null,
5334
- /* @__PURE__ */ jsxs19("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
5335
- item.loading ? /* @__PURE__ */ jsx36(
5800
+ /* @__PURE__ */ jsxs20("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
5801
+ item.loading ? /* @__PURE__ */ jsx40(
5336
5802
  "span",
5337
5803
  {
5338
5804
  "aria-hidden": "true",
5339
5805
  className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent"
5340
5806
  }
5341
5807
  ) : null,
5342
- /* @__PURE__ */ jsx36("span", { children: renderTextContent(item.label, {
5808
+ /* @__PURE__ */ jsx40("span", { children: renderTextContent(item.label, {
5343
5809
  as: "span",
5344
5810
  className: "block text-inherit",
5345
5811
  size: "body"
@@ -5353,7 +5819,7 @@ function Tabs({
5353
5819
  }
5354
5820
  ),
5355
5821
  items.map(
5356
- (item) => item.content !== void 0 ? /* @__PURE__ */ jsx36(
5822
+ (item) => item.content !== void 0 ? /* @__PURE__ */ jsx40(
5357
5823
  TabsPrimitive.Content,
5358
5824
  {
5359
5825
  value: item.value,
@@ -5376,9 +5842,9 @@ function Tabs({
5376
5842
  Tabs.displayName = "Tabs";
5377
5843
 
5378
5844
  // src/components/textarea.tsx
5379
- import * as React35 from "react";
5380
- import { jsx as jsx37 } from "react/jsx-runtime";
5381
- var Textarea = React35.forwardRef(
5845
+ import * as React39 from "react";
5846
+ import { jsx as jsx41 } from "react/jsx-runtime";
5847
+ var Textarea = React39.forwardRef(
5382
5848
  ({
5383
5849
  className,
5384
5850
  containerClassName,
@@ -5388,10 +5854,10 @@ var Textarea = React35.forwardRef(
5388
5854
  rows = 5,
5389
5855
  ...props
5390
5856
  }, ref) => {
5391
- const generatedId = React35.useId();
5857
+ const generatedId = React39.useId();
5392
5858
  const resolvedId = id ?? generatedId;
5393
5859
  const ariaLabel = props["aria-label"] ?? (typeof label === "string" ? label : void 0);
5394
- const control = /* @__PURE__ */ jsx37(
5860
+ const control = /* @__PURE__ */ jsx41(
5395
5861
  "textarea",
5396
5862
  {
5397
5863
  className: cn(
@@ -5405,7 +5871,7 @@ var Textarea = React35.forwardRef(
5405
5871
  "aria-label": ariaLabel
5406
5872
  }
5407
5873
  );
5408
- return /* @__PURE__ */ jsx37(
5874
+ return /* @__PURE__ */ jsx41(
5409
5875
  FieldShell,
5410
5876
  {
5411
5877
  control,
@@ -5420,10 +5886,10 @@ var Textarea = React35.forwardRef(
5420
5886
  Textarea.displayName = "Textarea";
5421
5887
 
5422
5888
  // src/components/toggle.tsx
5423
- import * as React36 from "react";
5889
+ import * as React40 from "react";
5424
5890
  import * as SwitchPrimitives2 from "@radix-ui/react-switch";
5425
- import { jsx as jsx38, jsxs as jsxs20 } from "react/jsx-runtime";
5426
- var Toggle = React36.forwardRef(function Toggle2({
5891
+ import { jsx as jsx42, jsxs as jsxs21 } from "react/jsx-runtime";
5892
+ var Toggle = React40.forwardRef(function Toggle2({
5427
5893
  "aria-describedby": ariaDescribedBy,
5428
5894
  "aria-labelledby": ariaLabelledBy,
5429
5895
  className,
@@ -5436,15 +5902,15 @@ var Toggle = React36.forwardRef(function Toggle2({
5436
5902
  labelClassName,
5437
5903
  ...props
5438
5904
  }, ref) {
5439
- const generatedId = React36.useId();
5905
+ const generatedId = React40.useId();
5440
5906
  const resolvedId = id ?? generatedId;
5441
5907
  const labelId = label ? `${resolvedId}-label` : void 0;
5442
5908
  const descriptionId = description ? `${resolvedId}-description` : void 0;
5443
5909
  const hasTextContent = label !== void 0 || description !== void 0;
5444
- const alignClassName = description ? "items-start" : "items-center";
5910
+ const alignClassName2 = description ? "items-start" : "items-center";
5445
5911
  const resolvedAriaDescribedBy = [ariaDescribedBy, descriptionId].filter(Boolean).join(" ") || void 0;
5446
5912
  const resolvedAriaLabelledBy = ariaLabelledBy ?? labelId;
5447
- const toggleControl = /* @__PURE__ */ jsx38(
5913
+ const toggleControl = /* @__PURE__ */ jsx42(
5448
5914
  SwitchPrimitives2.Root,
5449
5915
  {
5450
5916
  id: resolvedId,
@@ -5458,7 +5924,7 @@ var Toggle = React36.forwardRef(function Toggle2({
5458
5924
  className
5459
5925
  ),
5460
5926
  ...props,
5461
- children: /* @__PURE__ */ jsx38(
5927
+ children: /* @__PURE__ */ jsx42(
5462
5928
  SwitchPrimitives2.Thumb,
5463
5929
  {
5464
5930
  "data-slot": "toggle-thumb",
@@ -5470,19 +5936,19 @@ var Toggle = React36.forwardRef(function Toggle2({
5470
5936
  if (!hasTextContent) {
5471
5937
  return toggleControl;
5472
5938
  }
5473
- return /* @__PURE__ */ jsxs20(
5939
+ return /* @__PURE__ */ jsxs21(
5474
5940
  "div",
5475
5941
  {
5476
5942
  "data-slot": "toggle-container",
5477
5943
  className: selectionControlContainerClasses({
5478
- alignClassName,
5944
+ alignClassName: alignClassName2,
5479
5945
  className: containerClassName,
5480
5946
  disabled
5481
5947
  }),
5482
5948
  children: [
5483
5949
  toggleControl,
5484
- /* @__PURE__ */ jsxs20("span", { className: selectionControlContentBaseClasses, children: [
5485
- label ? /* @__PURE__ */ jsx38("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ jsx38(
5950
+ /* @__PURE__ */ jsxs21("span", { className: selectionControlContentBaseClasses, children: [
5951
+ label ? /* @__PURE__ */ jsx42("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ jsx42(
5486
5952
  "span",
5487
5953
  {
5488
5954
  id: labelId,
@@ -5494,7 +5960,7 @@ var Toggle = React36.forwardRef(function Toggle2({
5494
5960
  })
5495
5961
  }
5496
5962
  ) }) : null,
5497
- description ? /* @__PURE__ */ jsx38(
5963
+ description ? /* @__PURE__ */ jsx42(
5498
5964
  "span",
5499
5965
  {
5500
5966
  id: descriptionId,
@@ -5517,14 +5983,14 @@ var Toggle = React36.forwardRef(function Toggle2({
5517
5983
  Toggle.displayName = "Toggle";
5518
5984
 
5519
5985
  // src/components/tooltip.tsx
5520
- import * as React37 from "react";
5986
+ import * as React41 from "react";
5521
5987
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
5522
- import { jsx as jsx39 } from "react/jsx-runtime";
5988
+ import { jsx as jsx43 } from "react/jsx-runtime";
5523
5989
  var TooltipProvider = TooltipPrimitive.Provider;
5524
5990
  var Tooltip = TooltipPrimitive.Root;
5525
5991
  var TooltipTrigger = TooltipPrimitive.Trigger;
5526
- var TooltipContent = React37.forwardRef(function TooltipContent2({ className, sideOffset = 8, ...props }, ref) {
5527
- return /* @__PURE__ */ jsx39(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx39(
5992
+ var TooltipContent = React41.forwardRef(function TooltipContent2({ className, sideOffset = 8, ...props }, ref) {
5993
+ return /* @__PURE__ */ jsx43(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx43(
5528
5994
  TooltipPrimitive.Content,
5529
5995
  {
5530
5996
  ref,
@@ -5548,13 +6014,13 @@ var TooltipContent = React37.forwardRef(function TooltipContent2({ className, si
5548
6014
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
5549
6015
 
5550
6016
  // src/theme/provider.tsx
5551
- import * as React38 from "react";
6017
+ import * as React42 from "react";
5552
6018
  import {
5553
6019
  createWhitelabelTheme,
5554
6020
  defaultTheme,
5555
6021
  themeToCssVariables
5556
6022
  } from "@sofya-ds/tokens";
5557
- import { jsx as jsx40 } from "react/jsx-runtime";
6023
+ import { jsx as jsx44 } from "react/jsx-runtime";
5558
6024
  var SOFYA_FONT_LINKS = [
5559
6025
  {
5560
6026
  id: "preconnect-googleapis",
@@ -5574,7 +6040,7 @@ var SOFYA_FONT_LINKS = [
5574
6040
  }
5575
6041
  ];
5576
6042
  function useSofyaFontLinks() {
5577
- React38.useEffect(() => {
6043
+ React42.useEffect(() => {
5578
6044
  if (typeof document === "undefined") {
5579
6045
  return;
5580
6046
  }
@@ -5607,7 +6073,7 @@ function SofyaProvider({
5607
6073
  useSofyaFontLinks();
5608
6074
  const theme = createWhitelabelTheme(overrides ?? {}, preset);
5609
6075
  const cssVariables = themeToCssVariables(theme);
5610
- return /* @__PURE__ */ jsx40(
6076
+ return /* @__PURE__ */ jsx44(
5611
6077
  "div",
5612
6078
  {
5613
6079
  "data-sofya-theme": theme.name,
@@ -5632,9 +6098,13 @@ import {
5632
6098
  resolveTheme,
5633
6099
  sofyaBrandPalette,
5634
6100
  sofyaColorPalette,
6101
+ sofyaGapNames,
6102
+ sofyaMeasureNames,
6103
+ sofyaRhythmNames,
5635
6104
  sofyaSemanticColorHex,
5636
- sofyaSurfaceNames,
5637
- sofyaTextStyleNames,
6105
+ sofyaSpaceNames,
6106
+ sofyaSurfaceNames as sofyaSurfaceNames2,
6107
+ sofyaTextStyleNames as sofyaTextStyleNames2,
5638
6108
  themePresetNames,
5639
6109
  themePresets,
5640
6110
  themeToCssVariables as themeToCssVariables2
@@ -5657,6 +6127,8 @@ export {
5657
6127
  CardHeader,
5658
6128
  CardTitle,
5659
6129
  Checkbox,
6130
+ Cluster,
6131
+ Container,
5660
6132
  Dialog,
5661
6133
  DialogBody,
5662
6134
  DialogCancel,
@@ -5669,6 +6141,7 @@ export {
5669
6141
  DialogPortal,
5670
6142
  DialogTitle,
5671
6143
  DialogTrigger,
6144
+ DocumentCard,
5672
6145
  Dropdown,
5673
6146
  DropdownSearch,
5674
6147
  Empty,
@@ -5678,6 +6151,7 @@ export {
5678
6151
  EmptyMedia,
5679
6152
  EmptyTitle,
5680
6153
  Icon,
6154
+ Inline,
5681
6155
  Input,
5682
6156
  InputOTP,
5683
6157
  InputOTPGroup,
@@ -5702,9 +6176,20 @@ export {
5702
6176
  PopoverTitle,
5703
6177
  PopoverTrigger,
5704
6178
  Progress,
6179
+ ProseDialogBody,
6180
+ ProseDialogContent,
6181
+ ProseDialogDescription,
6182
+ ProseDialogHeader,
6183
+ ProseDialogTitle,
5705
6184
  REGEXP_ONLY_DIGITS,
5706
- RadioGroup2 as RadioGroup,
6185
+ RadioGroup3 as RadioGroup,
5707
6186
  RadioGroupItem,
6187
+ RadioGroupOption,
6188
+ RadioGroupOptionAvatar,
6189
+ RadioGroupOptionDescription,
6190
+ RadioGroupOptionIndicator,
6191
+ RadioGroupOptionLabel,
6192
+ RightRailAction,
5708
6193
  ScrollArea,
5709
6194
  ScrollAreaCorner,
5710
6195
  ScrollAreaScrollbar,
@@ -5724,6 +6209,7 @@ export {
5724
6209
  Slider,
5725
6210
  SofyaProvider,
5726
6211
  Spinner,
6212
+ Stack,
5727
6213
  Surface,
5728
6214
  Switch,
5729
6215
  Table,
@@ -5794,10 +6280,15 @@ export {
5794
6280
  selectSizeOptions,
5795
6281
  sofyaBrandPalette,
5796
6282
  sofyaColorPalette,
6283
+ sofyaGapNames,
6284
+ sofyaMeasureNames,
6285
+ sofyaRhythmNames,
5797
6286
  sofyaSemanticColorHex,
5798
- sofyaSurfaceNames,
5799
- sofyaTextStyleNames,
6287
+ sofyaSpaceNames,
6288
+ sofyaSurfaceNames2 as sofyaSurfaceNames,
6289
+ sofyaTextStyleNames2 as sofyaTextStyleNames,
5800
6290
  spinnerSizeOptions,
6291
+ surfaceVariantOptions,
5801
6292
  switchSizeOptions,
5802
6293
  tableActionToneOptions,
5803
6294
  tableCellVariantOptions,