@sofya-ds/react 1.7.0 → 1.9.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.cjs CHANGED
@@ -47,6 +47,8 @@ __export(index_exports, {
47
47
  CardHeader: () => CardHeader,
48
48
  CardTitle: () => CardTitle,
49
49
  Checkbox: () => Checkbox,
50
+ Cluster: () => Cluster,
51
+ Container: () => Container,
50
52
  Dialog: () => Dialog,
51
53
  DialogBody: () => DialogBody,
52
54
  DialogCancel: () => DialogCancel,
@@ -59,6 +61,7 @@ __export(index_exports, {
59
61
  DialogPortal: () => DialogPortal,
60
62
  DialogTitle: () => DialogTitle,
61
63
  DialogTrigger: () => DialogTrigger,
64
+ DocumentCard: () => DocumentCard,
62
65
  Dropdown: () => Dropdown,
63
66
  DropdownSearch: () => DropdownSearch,
64
67
  Empty: () => Empty,
@@ -68,6 +71,7 @@ __export(index_exports, {
68
71
  EmptyMedia: () => EmptyMedia,
69
72
  EmptyTitle: () => EmptyTitle,
70
73
  Icon: () => Icon,
74
+ Inline: () => Inline,
71
75
  Input: () => Input,
72
76
  InputOTP: () => InputOTP,
73
77
  InputOTPGroup: () => InputOTPGroup,
@@ -92,6 +96,11 @@ __export(index_exports, {
92
96
  PopoverTitle: () => PopoverTitle,
93
97
  PopoverTrigger: () => PopoverTrigger,
94
98
  Progress: () => Progress,
99
+ ProseDialogBody: () => ProseDialogBody,
100
+ ProseDialogContent: () => ProseDialogContent,
101
+ ProseDialogDescription: () => ProseDialogDescription,
102
+ ProseDialogHeader: () => ProseDialogHeader,
103
+ ProseDialogTitle: () => ProseDialogTitle,
95
104
  REGEXP_ONLY_DIGITS: () => import_input_otp.REGEXP_ONLY_DIGITS,
96
105
  RadioGroup: () => RadioGroup3,
97
106
  RadioGroupItem: () => RadioGroupItem,
@@ -100,6 +109,7 @@ __export(index_exports, {
100
109
  RadioGroupOptionDescription: () => RadioGroupOptionDescription,
101
110
  RadioGroupOptionIndicator: () => RadioGroupOptionIndicator,
102
111
  RadioGroupOptionLabel: () => RadioGroupOptionLabel,
112
+ RightRailAction: () => RightRailAction,
103
113
  ScrollArea: () => ScrollArea,
104
114
  ScrollAreaCorner: () => ScrollAreaCorner,
105
115
  ScrollAreaScrollbar: () => ScrollAreaScrollbar,
@@ -119,6 +129,7 @@ __export(index_exports, {
119
129
  Slider: () => Slider,
120
130
  SofyaProvider: () => SofyaProvider,
121
131
  Spinner: () => Spinner,
132
+ Stack: () => Stack,
122
133
  Surface: () => Surface,
123
134
  Switch: () => Switch,
124
135
  Table: () => Table,
@@ -127,6 +138,8 @@ __export(index_exports, {
127
138
  TableBody: () => TableBody,
128
139
  TableCaption: () => TableCaption,
129
140
  TableCell: () => TableCell,
141
+ TableCellDescription: () => TableCellDescription,
142
+ TableCellTitle: () => TableCellTitle,
130
143
  TableFooter: () => TableFooter,
131
144
  TableHead: () => TableHead,
132
145
  TableHeader: () => TableHeader,
@@ -152,21 +165,21 @@ __export(index_exports, {
152
165
  badgePillVariants: () => badgePillVariants,
153
166
  badgeVariantOptions: () => badgeVariantOptions,
154
167
  badgeVariants: () => badgeVariants,
155
- brandPaletteToCssVariables: () => import_tokens2.brandPaletteToCssVariables,
168
+ brandPaletteToCssVariables: () => import_tokens4.brandPaletteToCssVariables,
156
169
  buttonLanguageLocaleOptions: () => buttonLanguageLocaleOptions,
157
170
  buttonSizeOptions: () => buttonSizeOptions,
158
171
  buttonVariantOptions: () => buttonVariantOptions,
159
172
  buttonVariants: () => buttonVariants,
160
173
  cardVariants: () => cardVariants,
161
- createWhitelabelTheme: () => import_tokens2.createWhitelabelTheme,
162
- defaultTheme: () => import_tokens2.defaultTheme,
174
+ createWhitelabelTheme: () => import_tokens4.createWhitelabelTheme,
175
+ defaultTheme: () => import_tokens4.defaultTheme,
163
176
  dropdownAppearanceOptions: () => dropdownAppearanceOptions,
164
177
  dropdownLanguageItems: () => dropdownLanguageItems,
165
178
  dropdownTriggerSizeOptions: () => dropdownTriggerSizeOptions,
166
179
  dropdownVariantOptions: () => dropdownVariantOptions,
167
180
  emptyMediaVariantOptions: () => emptyMediaVariantOptions,
168
- gradientToCss: () => import_tokens2.gradientToCss,
169
- hexToHslChannels: () => import_tokens2.hexToHslChannels,
181
+ gradientToCss: () => import_tokens4.gradientToCss,
182
+ hexToHslChannels: () => import_tokens4.hexToHslChannels,
170
183
  iconColorOptions: () => iconColorOptions,
171
184
  iconNames: () => iconNames,
172
185
  iconSizeMap: () => iconSizeMap,
@@ -175,24 +188,29 @@ __export(index_exports, {
175
188
  isTextContent: () => isTextContent,
176
189
  logoSizeOptions: () => logoSizeOptions,
177
190
  logoVariants: () => logoVariants,
178
- mergeTheme: () => import_tokens2.mergeTheme,
191
+ mergeTheme: () => import_tokens4.mergeTheme,
179
192
  notificationVariantOptions: () => notificationVariantOptions,
180
193
  paginationLinkVariants: () => paginationLinkVariants,
181
194
  progressSizeOptions: () => progressSizeOptions,
182
195
  radioGroupOrientationOptions: () => radioGroupOrientationOptions,
183
196
  radioGroupVariantOptions: () => radioGroupVariantOptions,
184
197
  renderTextContent: () => renderTextContent,
185
- resolveSurfaceToken: () => import_tokens2.resolveSurfaceToken,
186
- resolveTextStyle: () => import_tokens2.resolveTextStyle,
187
- resolveTheme: () => import_tokens2.resolveTheme,
198
+ resolveSurfaceToken: () => import_tokens4.resolveSurfaceToken,
199
+ resolveTextStyle: () => import_tokens4.resolveTextStyle,
200
+ resolveTheme: () => import_tokens4.resolveTheme,
188
201
  scrollAreaOrientationOptions: () => scrollAreaOrientationOptions,
189
202
  selectSizeOptions: () => selectSizeOptions,
190
- sofyaBrandPalette: () => import_tokens2.sofyaBrandPalette,
191
- sofyaColorPalette: () => import_tokens2.sofyaColorPalette,
192
- sofyaSemanticColorHex: () => import_tokens2.sofyaSemanticColorHex,
193
- sofyaSurfaceNames: () => import_tokens2.sofyaSurfaceNames,
194
- sofyaTextStyleNames: () => import_tokens2.sofyaTextStyleNames,
203
+ sofyaBrandPalette: () => import_tokens4.sofyaBrandPalette,
204
+ sofyaColorPalette: () => import_tokens4.sofyaColorPalette,
205
+ sofyaGapNames: () => import_tokens4.sofyaGapNames,
206
+ sofyaMeasureNames: () => import_tokens4.sofyaMeasureNames,
207
+ sofyaRhythmNames: () => import_tokens4.sofyaRhythmNames,
208
+ sofyaSemanticColorHex: () => import_tokens4.sofyaSemanticColorHex,
209
+ sofyaSpaceNames: () => import_tokens4.sofyaSpaceNames,
210
+ sofyaSurfaceNames: () => import_tokens4.sofyaSurfaceNames,
211
+ sofyaTextStyleNames: () => import_tokens4.sofyaTextStyleNames,
195
212
  spinnerSizeOptions: () => spinnerSizeOptions,
213
+ surfaceVariantOptions: () => surfaceVariantOptions,
196
214
  switchSizeOptions: () => switchSizeOptions,
197
215
  tableActionToneOptions: () => tableActionToneOptions,
198
216
  tableCellVariantOptions: () => tableCellVariantOptions,
@@ -200,9 +218,9 @@ __export(index_exports, {
200
218
  textSizeOptions: () => textSizeOptions,
201
219
  textSplitTypeOptions: () => textSplitTypeOptions,
202
220
  textVariantOptions: () => textVariantOptions,
203
- themePresetNames: () => import_tokens2.themePresetNames,
204
- themePresets: () => import_tokens2.themePresets,
205
- themeToCssVariables: () => import_tokens2.themeToCssVariables,
221
+ themePresetNames: () => import_tokens4.themePresetNames,
222
+ themePresets: () => import_tokens4.themePresets,
223
+ themeToCssVariables: () => import_tokens4.themeToCssVariables,
206
224
  toast: () => import_sonner.toast,
207
225
  uploadKindOptions: () => uploadKindOptions
208
226
  });
@@ -329,6 +347,7 @@ var tablerIconRegistry = {
329
347
  IconChevronLeft: import_icons_react.IconChevronLeft,
330
348
  IconChevronDown: import_icons_react.IconChevronDown,
331
349
  IconChevronUp: import_icons_react.IconChevronUp,
350
+ IconCopy: import_icons_react.IconCopy,
332
351
  IconEdit: import_icons_react.IconEdit,
333
352
  IconFile: import_icons_react.IconFile,
334
353
  IconFolders: import_icons_react.IconFolders,
@@ -344,6 +363,7 @@ var tablerIconRegistry = {
344
363
  IconSearch: import_icons_react.IconSearch,
345
364
  IconSquareToggle: import_icons_react.IconSquareToggle,
346
365
  IconSparkles: import_icons_react.IconSparkles,
366
+ IconStar: import_icons_react.IconStar,
347
367
  IconUser: import_icons_react.IconUser,
348
368
  IconUserFilled: import_icons_react.IconUserFilled,
349
369
  IconUserCircle: import_icons_react.IconUserCircle,
@@ -400,7 +420,9 @@ var legacyIconToTablerNameMap = {
400
420
  "caret-up": "IconChevronUp",
401
421
  "caret-left": "IconChevronLeft",
402
422
  "caret-right": "IconChevronRight",
423
+ "copy": "IconCopy",
403
424
  "logout": "IconLogout",
425
+ "star": "IconStar",
404
426
  "users-group": "IconUsersGroup",
405
427
  "archive": "IconArchive",
406
428
  "folder": "IconFolder",
@@ -561,19 +583,47 @@ Icon.displayName = "Icon";
561
583
 
562
584
  // src/components/text.tsx
563
585
  var React3 = __toESM(require("react"), 1);
586
+ var import_tokens = require("@sofya-ds/tokens");
564
587
  var import_jsx_runtime3 = require("react/jsx-runtime");
565
- var textSizeOptions = ["h1", "h2", "h3", "h4", "h5", "body", "tiny", "extra-tiny"];
588
+ var textSizeOptions = import_tokens.sofyaTextStyleNames;
566
589
  var textVariantOptions = ["default", "gradient", "shiny", "split"];
567
590
  var textSplitTypeOptions = ["chars", "words", "words, chars"];
568
591
  var defaultElements = {
592
+ "display-xl": "h1",
593
+ "display-lg": "h1",
594
+ "heading-xl": "h1",
595
+ "heading-lg": "h2",
596
+ "heading-md": "h3",
569
597
  h1: "h1",
570
598
  h2: "h2",
571
599
  h3: "h3",
572
600
  h4: "h4",
573
601
  h5: "h5",
602
+ "encounter-title": "h1",
603
+ "title-md": "h3",
604
+ "title-sm": "h4",
605
+ "body-lg": "p",
606
+ "body-md": "p",
607
+ "body-sm": "p",
574
608
  body: "p",
609
+ "label-md": "span",
610
+ "section-label": "span",
611
+ "eyebrow-md": "span",
612
+ "overline-md": "span",
613
+ "sidebar-title": "span",
614
+ "sidebar-title-regular": "span",
615
+ "sidebar-title-strong": "span",
616
+ "sidebar-label": "span",
617
+ "sidebar-label-strong": "span",
618
+ "sidebar-body": "span",
619
+ "sidebar-tag": "span",
620
+ "encounter-chip": "span",
621
+ "encounter-history": "span",
622
+ caption: "span",
623
+ eyebrow: "span",
575
624
  tiny: "span",
576
- "extra-tiny": "span"
625
+ "extra-tiny": "span",
626
+ "code-sm": "code"
577
627
  };
578
628
  var textSizeStyles = Object.fromEntries(
579
629
  textSizeOptions.map((size) => [
@@ -1723,27 +1773,24 @@ Button.displayName = "Button";
1723
1773
  // src/components/surface.tsx
1724
1774
  var React9 = __toESM(require("react"), 1);
1725
1775
  var import_react_slot2 = require("@radix-ui/react-slot");
1776
+ var import_tokens2 = require("@sofya-ds/tokens");
1726
1777
  var import_jsx_runtime9 = require("react/jsx-runtime");
1727
- var surfaceStyles = {
1728
- card: {
1729
- backgroundColor: "hsl(var(--sofya-surface-card-background))",
1730
- borderColor: "hsl(var(--sofya-surface-card-border-color))",
1731
- borderWidth: "var(--sofya-surface-card-border-width)",
1732
- borderStyle: "solid",
1733
- borderRadius: "var(--sofya-surface-card-radius)",
1734
- "--sofya-surface-shadow-base": "var(--sofya-surface-card-shadow)",
1735
- boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
1736
- },
1737
- focus: {
1738
- backgroundColor: "hsl(var(--sofya-surface-focus-background))",
1739
- borderColor: "hsl(var(--sofya-surface-focus-border-color))",
1740
- borderWidth: "var(--sofya-surface-focus-border-width)",
1778
+ var surfaceVariantOptions = import_tokens2.sofyaSurfaceNames;
1779
+ function toCssTokenName(name) {
1780
+ return name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
1781
+ }
1782
+ function getSurfaceStyle(variant) {
1783
+ const cssName = toCssTokenName(variant);
1784
+ return {
1785
+ backgroundColor: `hsl(var(--sofya-surface-${cssName}-background))`,
1786
+ borderColor: `hsl(var(--sofya-surface-${cssName}-border-color))`,
1787
+ borderWidth: `var(--sofya-surface-${cssName}-border-width)`,
1741
1788
  borderStyle: "solid",
1742
- borderRadius: "var(--sofya-surface-card-radius)",
1743
- "--sofya-surface-shadow-base": "var(--sofya-surface-focus-shadow)",
1789
+ borderRadius: `var(--sofya-surface-${cssName}-radius)`,
1790
+ "--sofya-surface-shadow-base": `var(--sofya-surface-${cssName}-shadow)`,
1744
1791
  boxShadow: "var(--sofya-surface-shadow-override, var(--sofya-surface-shadow-base))"
1745
- }
1746
- };
1792
+ };
1793
+ }
1747
1794
  function SurfaceComponent({ as, asChild = false, variant = "card", className, style, ...props }, ref) {
1748
1795
  const Component = asChild ? import_react_slot2.Slot : as ?? "div";
1749
1796
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
@@ -1752,7 +1799,7 @@ function SurfaceComponent({ as, asChild = false, variant = "card", className, st
1752
1799
  ref,
1753
1800
  "data-surface-variant": variant,
1754
1801
  className: cn("relative text-foreground", className),
1755
- style: { ...surfaceStyles[variant], ...style },
1802
+ style: { ...getSurfaceStyle(variant), ...style },
1756
1803
  ...props
1757
1804
  }
1758
1805
  );
@@ -1829,13 +1876,13 @@ var selectionControlLabelTextBaseClasses = "text-[color:var(--sofya-text-default
1829
1876
  var selectionControlDescriptionTextBaseClasses = "text-muted-foreground";
1830
1877
  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";
1831
1878
  function selectionControlContainerClasses({
1832
- alignClassName,
1879
+ alignClassName: alignClassName2,
1833
1880
  className,
1834
1881
  disabled
1835
1882
  }) {
1836
1883
  return cn(
1837
1884
  selectionControlContainerBaseClasses,
1838
- alignClassName,
1885
+ alignClassName2,
1839
1886
  disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
1840
1887
  className
1841
1888
  );
@@ -1859,13 +1906,13 @@ var Checkbox = React10.forwardRef(
1859
1906
  const generatedId = React10.useId();
1860
1907
  const resolvedId = id ?? generatedId;
1861
1908
  const descriptionId = description ? `${resolvedId}-description` : void 0;
1862
- const alignClassName = description ? "items-start" : "items-center";
1909
+ const alignClassName2 = description ? "items-start" : "items-center";
1863
1910
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1864
1911
  "label",
1865
1912
  {
1866
1913
  htmlFor: resolvedId,
1867
1914
  className: selectionControlContainerClasses({
1868
- alignClassName,
1915
+ alignClassName: alignClassName2,
1869
1916
  className,
1870
1917
  disabled
1871
1918
  }),
@@ -3585,13 +3632,16 @@ var DialogContent = React19.forwardRef(
3585
3632
  className,
3586
3633
  children,
3587
3634
  cardClassName,
3635
+ cardStyle,
3588
3636
  overlayClassName,
3589
3637
  showCloseButton = true,
3638
+ surfaceShadow = "var(--sofya-shadow-lg)",
3590
3639
  variant = "card",
3591
3640
  ...props
3592
3641
  }, ref) => {
3593
3642
  const dialogCardStyle = {
3594
- "--sofya-surface-shadow-override": "var(--sofya-shadow-lg)"
3643
+ "--sofya-surface-shadow-override": surfaceShadow,
3644
+ ...cardStyle
3595
3645
  };
3596
3646
  return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DialogInternalContext.Provider, { value: { showCloseButton }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(DialogPortal, { children: [
3597
3647
  /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DialogOverlay, { className: overlayClassName }),
@@ -3697,10 +3747,73 @@ var DialogDescription = React19.forwardRef(({ children, className, ...props }, r
3697
3747
  ));
3698
3748
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
3699
3749
 
3700
- // src/components/empty.tsx
3750
+ // src/components/document-card.tsx
3701
3751
  var React20 = __toESM(require("react"), 1);
3702
- var import_class_variance_authority5 = require("class-variance-authority");
3703
3752
  var import_jsx_runtime21 = require("react/jsx-runtime");
3753
+ var DocumentCard = React20.forwardRef(
3754
+ ({
3755
+ actions,
3756
+ className,
3757
+ description,
3758
+ leading,
3759
+ meta,
3760
+ selected = false,
3761
+ title,
3762
+ ...props
3763
+ }, ref) => {
3764
+ const gridTemplateClassName = cn(
3765
+ leading && actions && "grid-cols-[auto_minmax(0,1fr)_auto]",
3766
+ leading && !actions && "grid-cols-[auto_minmax(0,1fr)]",
3767
+ !leading && actions && "grid-cols-[minmax(0,1fr)_auto]",
3768
+ !leading && !actions && "grid-cols-[minmax(0,1fr)]"
3769
+ );
3770
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
3771
+ Surface,
3772
+ {
3773
+ ref,
3774
+ "aria-selected": selected,
3775
+ "data-slot": "document-card",
3776
+ "data-state": selected ? "selected" : "idle",
3777
+ variant: selected ? "documentCardSelected" : "documentCard",
3778
+ className: cn(
3779
+ "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)]",
3780
+ gridTemplateClassName,
3781
+ className
3782
+ ),
3783
+ ...props,
3784
+ children: [
3785
+ leading ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3786
+ "span",
3787
+ {
3788
+ "data-slot": "document-card-leading",
3789
+ className: "flex size-[var(--sofya-icon-button-size-sm)] shrink-0 items-center justify-center text-primary",
3790
+ children: leading
3791
+ }
3792
+ ) : null,
3793
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { "data-slot": "document-card-content", className: "min-w-0", children: [
3794
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { as: "span", size: "label-md", className: "block truncate text-foreground", children: title }),
3795
+ description ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { as: "span", size: "caption", className: "block truncate text-muted-foreground", children: description }) : null,
3796
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Text, { as: "span", size: "caption", className: "block truncate text-muted-foreground", children: meta }) : null
3797
+ ] }),
3798
+ actions ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3799
+ "span",
3800
+ {
3801
+ "data-slot": "document-card-actions",
3802
+ className: "flex shrink-0 items-center gap-[var(--sofya-gap-compact)]",
3803
+ children: actions
3804
+ }
3805
+ ) : null
3806
+ ]
3807
+ }
3808
+ );
3809
+ }
3810
+ );
3811
+ DocumentCard.displayName = "DocumentCard";
3812
+
3813
+ // src/components/empty.tsx
3814
+ var React21 = __toESM(require("react"), 1);
3815
+ var import_class_variance_authority5 = require("class-variance-authority");
3816
+ var import_jsx_runtime22 = require("react/jsx-runtime");
3704
3817
  var emptyMediaVariantOptions = ["default", "icon"];
3705
3818
  var emptyMediaVariants = (0, import_class_variance_authority5.cva)(
3706
3819
  "inline-flex shrink-0 items-center justify-center transition-[background-color,border-color,color,box-shadow] duration-sofya ease-sofya",
@@ -3716,11 +3829,11 @@ var emptyMediaVariants = (0, import_class_variance_authority5.cva)(
3716
3829
  }
3717
3830
  }
3718
3831
  );
3719
- var EmptyMedia = React20.forwardRef(function EmptyMedia2({ className, variant, ...props }, ref) {
3720
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props });
3832
+ var EmptyMedia = React21.forwardRef(function EmptyMedia2({ className, variant, ...props }, ref) {
3833
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props });
3721
3834
  });
3722
3835
  function EmptyHeader({ className, ...props }) {
3723
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3836
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3724
3837
  "div",
3725
3838
  {
3726
3839
  className: cn("flex max-w-[34rem] flex-col items-center gap-4 text-center", className),
@@ -3729,7 +3842,7 @@ function EmptyHeader({ className, ...props }) {
3729
3842
  );
3730
3843
  }
3731
3844
  function EmptyTitle({ children, className, ...props }) {
3732
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3845
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3733
3846
  "h2",
3734
3847
  {
3735
3848
  className: cn("text-foreground", className),
@@ -3747,7 +3860,7 @@ function EmptyDescription({
3747
3860
  className,
3748
3861
  ...props
3749
3862
  }) {
3750
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3863
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3751
3864
  "p",
3752
3865
  {
3753
3866
  className: cn("max-w-full text-muted-foreground whitespace-nowrap", className),
@@ -3761,7 +3874,7 @@ function EmptyDescription({
3761
3874
  );
3762
3875
  }
3763
3876
  function EmptyContent({ children, className, ...props }) {
3764
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3877
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3765
3878
  "div",
3766
3879
  {
3767
3880
  className: cn("flex flex-wrap items-center justify-center gap-4 text-center", className),
@@ -3772,9 +3885,9 @@ function EmptyContent({ children, className, ...props }) {
3772
3885
  }
3773
3886
  );
3774
3887
  }
3775
- var Empty = React20.forwardRef(function Empty2({ children, className, content, description, media, title, ...props }, ref) {
3776
- const hasCustomChildren = React20.Children.count(children) > 0;
3777
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3888
+ var Empty = React21.forwardRef(function Empty2({ children, className, content, description, media, title, ...props }, ref) {
3889
+ const hasCustomChildren = React21.Children.count(children) > 0;
3890
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3778
3891
  "div",
3779
3892
  {
3780
3893
  ref,
@@ -3783,13 +3896,13 @@ var Empty = React20.forwardRef(function Empty2({ children, className, content, d
3783
3896
  className
3784
3897
  ),
3785
3898
  ...props,
3786
- children: hasCustomChildren ? children : /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
3787
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(EmptyHeader, { children: [
3788
- media ?? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Icon, { name: "folders", size: 28 }) }),
3789
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(EmptyTitle, { children: title ?? "Nada por aqui" }),
3790
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(EmptyDescription, { children: description ?? "Quando houver conte\xFAdo dispon\xEDvel, ele aparecer\xE1 aqui." })
3899
+ children: hasCustomChildren ? children : /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
3900
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(EmptyHeader, { children: [
3901
+ media ?? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Icon, { name: "folders", size: 28 }) }),
3902
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(EmptyTitle, { children: title ?? "Nada por aqui" }),
3903
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(EmptyDescription, { children: description ?? "Quando houver conte\xFAdo dispon\xEDvel, ele aparecer\xE1 aqui." })
3791
3904
  ] }),
3792
- content !== void 0 && content !== null ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(EmptyContent, { children: content }) : null
3905
+ content !== void 0 && content !== null ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(EmptyContent, { children: content }) : null
3793
3906
  ] })
3794
3907
  }
3795
3908
  );
@@ -3802,11 +3915,11 @@ EmptyDescription.displayName = "EmptyDescription";
3802
3915
  EmptyContent.displayName = "EmptyContent";
3803
3916
 
3804
3917
  // src/components/label.tsx
3805
- var React21 = __toESM(require("react"), 1);
3806
- var import_jsx_runtime22 = require("react/jsx-runtime");
3807
- var Label = React21.forwardRef(
3918
+ var React22 = __toESM(require("react"), 1);
3919
+ var import_jsx_runtime23 = require("react/jsx-runtime");
3920
+ var Label = React22.forwardRef(
3808
3921
  ({ children, className, ...props }, ref) => {
3809
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3922
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3810
3923
  "label",
3811
3924
  {
3812
3925
  ref,
@@ -3829,11 +3942,109 @@ var Label = React21.forwardRef(
3829
3942
  );
3830
3943
  Label.displayName = "Label";
3831
3944
 
3945
+ // src/components/layout.tsx
3946
+ var React23 = __toESM(require("react"), 1);
3947
+ var import_jsx_runtime24 = require("react/jsx-runtime");
3948
+ var alignClassName = {
3949
+ start: "items-start",
3950
+ center: "items-center",
3951
+ end: "items-end",
3952
+ stretch: "items-stretch"
3953
+ };
3954
+ var justifyClassName = {
3955
+ start: "justify-start",
3956
+ center: "justify-center",
3957
+ between: "justify-between",
3958
+ end: "justify-end"
3959
+ };
3960
+ function getGapStyle(gap) {
3961
+ return {
3962
+ "--sofya-layout-gap": `var(--sofya-gap-${gap})`
3963
+ };
3964
+ }
3965
+ var Stack = React23.forwardRef(
3966
+ ({ className, gap = "default", style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3967
+ "div",
3968
+ {
3969
+ ref,
3970
+ "data-slot": "stack",
3971
+ className: cn("flex min-w-0 flex-col gap-[var(--sofya-layout-gap)]", className),
3972
+ style: { ...getGapStyle(gap), ...style },
3973
+ ...props
3974
+ }
3975
+ )
3976
+ );
3977
+ Stack.displayName = "Stack";
3978
+ var Cluster = React23.forwardRef(
3979
+ ({
3980
+ align = "center",
3981
+ className,
3982
+ gap = "default",
3983
+ justify = "start",
3984
+ style,
3985
+ ...props
3986
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3987
+ "div",
3988
+ {
3989
+ ref,
3990
+ "data-slot": "cluster",
3991
+ className: cn(
3992
+ "flex min-w-0 flex-wrap gap-[var(--sofya-layout-gap)]",
3993
+ alignClassName[align],
3994
+ justifyClassName[justify],
3995
+ className
3996
+ ),
3997
+ style: { ...getGapStyle(gap), ...style },
3998
+ ...props
3999
+ }
4000
+ )
4001
+ );
4002
+ Cluster.displayName = "Cluster";
4003
+ var Inline = React23.forwardRef(
4004
+ ({ align = "center", className, gap = "compact", style, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4005
+ "div",
4006
+ {
4007
+ ref,
4008
+ "data-slot": "inline",
4009
+ className: cn(
4010
+ "inline-flex min-w-0 gap-[var(--sofya-layout-gap)]",
4011
+ alignClassName[align],
4012
+ className
4013
+ ),
4014
+ style: { ...getGapStyle(gap), ...style },
4015
+ ...props
4016
+ }
4017
+ )
4018
+ );
4019
+ Inline.displayName = "Inline";
4020
+ var Container = React23.forwardRef(
4021
+ ({ className, measure = "reading", style, ...props }, ref) => {
4022
+ const measureStyle = measure === "none" ? void 0 : {
4023
+ "--sofya-layout-measure": `var(--sofya-measure-${measure})`
4024
+ };
4025
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4026
+ "div",
4027
+ {
4028
+ ref,
4029
+ "data-slot": "container",
4030
+ className: cn(
4031
+ "mx-auto w-full min-w-0",
4032
+ measure !== "none" && "max-w-[var(--sofya-layout-measure)]",
4033
+ className
4034
+ ),
4035
+ style: { ...measureStyle, ...style },
4036
+ ...props
4037
+ }
4038
+ );
4039
+ }
4040
+ );
4041
+ Container.displayName = "Container";
4042
+
3832
4043
  // src/components/link.tsx
3833
- var React22 = __toESM(require("react"), 1);
4044
+ var React24 = __toESM(require("react"), 1);
3834
4045
  var import_react_slot3 = require("@radix-ui/react-slot");
3835
4046
  var import_class_variance_authority6 = require("class-variance-authority");
3836
- var import_jsx_runtime23 = require("react/jsx-runtime");
4047
+ var import_jsx_runtime25 = require("react/jsx-runtime");
3837
4048
  var linkVariants = (0, import_class_variance_authority6.cva)(
3838
4049
  "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",
3839
4050
  {
@@ -3848,9 +4059,9 @@ var linkVariants = (0, import_class_variance_authority6.cva)(
3848
4059
  }
3849
4060
  }
3850
4061
  );
3851
- var Link = React22.forwardRef(function Link2({ asChild = false, children, className, variant = "default", ...props }, ref) {
4062
+ var Link = React24.forwardRef(function Link2({ asChild = false, children, className, variant = "default", ...props }, ref) {
3852
4063
  const Component = asChild ? import_react_slot3.Slot : "a";
3853
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
4064
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3854
4065
  Component,
3855
4066
  {
3856
4067
  ref,
@@ -3868,7 +4079,7 @@ var Link = React22.forwardRef(function Link2({ asChild = false, children, classN
3868
4079
  Link.displayName = "Link";
3869
4080
 
3870
4081
  // src/components/logo.tsx
3871
- var React23 = __toESM(require("react"), 1);
4082
+ var React25 = __toESM(require("react"), 1);
3872
4083
 
3873
4084
  // src/components/logo-data.ts
3874
4085
  var logoAssets = {
@@ -3965,7 +4176,7 @@ var logoAssets = {
3965
4176
  };
3966
4177
 
3967
4178
  // src/components/logo.tsx
3968
- var import_jsx_runtime24 = require("react/jsx-runtime");
4179
+ var import_jsx_runtime26 = require("react/jsx-runtime");
3969
4180
  var logoVariants = ["mono", "default", "text", "full"];
3970
4181
  var logoSizeOptions = ["sm", "md", "lg", "xl", "2xl"];
3971
4182
  var logoSizeScale = {
@@ -4001,7 +4212,7 @@ function resolveLogoDimensions(variant, size, width, height) {
4001
4212
  height: resolvedHeight
4002
4213
  };
4003
4214
  }
4004
- var Logo = React23.forwardRef(function Logo2({
4215
+ var Logo = React25.forwardRef(function Logo2({
4005
4216
  variant = "full",
4006
4217
  size = "lg",
4007
4218
  width,
@@ -4012,10 +4223,10 @@ var Logo = React23.forwardRef(function Logo2({
4012
4223
  ...props
4013
4224
  }, ref) {
4014
4225
  const asset = logoAssets[variant];
4015
- const titleId = React23.useId();
4226
+ const titleId = React25.useId();
4016
4227
  const dimensions = resolveLogoDimensions(variant, size, width, height);
4017
4228
  const monoFill = variant === "mono" ? monoColor ?? "currentColor" : void 0;
4018
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
4229
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4019
4230
  "svg",
4020
4231
  {
4021
4232
  ref,
@@ -4030,8 +4241,8 @@ var Logo = React23.forwardRef(function Logo2({
4030
4241
  focusable: "false",
4031
4242
  ...props,
4032
4243
  children: [
4033
- title ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("title", { id: titleId, children: title }) : null,
4034
- asset.paths.map((path, index) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
4244
+ title ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("title", { id: titleId, children: title }) : null,
4245
+ asset.paths.map((path, index) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4035
4246
  "path",
4036
4247
  {
4037
4248
  d: path.d,
@@ -4063,7 +4274,7 @@ var inheritedTypographyStyle = {
4063
4274
  };
4064
4275
 
4065
4276
  // src/components/pagination.tsx
4066
- var import_jsx_runtime25 = require("react/jsx-runtime");
4277
+ var import_jsx_runtime27 = require("react/jsx-runtime");
4067
4278
  var paginationLinkVariants = (0, import_class_variance_authority7.cva)(
4068
4279
  "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",
4069
4280
  {
@@ -4084,7 +4295,7 @@ var paginationLinkVariants = (0, import_class_variance_authority7.cva)(
4084
4295
  }
4085
4296
  );
4086
4297
  function Pagination({ className, ...props }) {
4087
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4298
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4088
4299
  "nav",
4089
4300
  {
4090
4301
  "aria-label": "Pagination",
@@ -4097,7 +4308,7 @@ function PaginationContent({
4097
4308
  className,
4098
4309
  ...props
4099
4310
  }) {
4100
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4311
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4101
4312
  "ul",
4102
4313
  {
4103
4314
  className: cn(
@@ -4109,7 +4320,7 @@ function PaginationContent({
4109
4320
  );
4110
4321
  }
4111
4322
  function PaginationItem({ className, ...props }) {
4112
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("li", { className: cn("list-none", className), ...props });
4323
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("li", { className: cn("list-none", className), ...props });
4113
4324
  }
4114
4325
  function PaginationLink({
4115
4326
  asChild = false,
@@ -4119,7 +4330,7 @@ function PaginationLink({
4119
4330
  ...props
4120
4331
  }) {
4121
4332
  const Component = asChild ? import_react_slot4.Slot : "a";
4122
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
4333
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4123
4334
  Component,
4124
4335
  {
4125
4336
  "aria-current": isActive ? "page" : void 0,
@@ -4129,25 +4340,25 @@ function PaginationLink({
4129
4340
  );
4130
4341
  }
4131
4342
  function PaginationChevronLeft() {
4132
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_icons_react6.IconChevronLeft, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
4343
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_icons_react6.IconChevronLeft, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
4133
4344
  }
4134
4345
  function PaginationChevronRight() {
4135
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_icons_react6.IconChevronRight, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
4346
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_icons_react6.IconChevronRight, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
4136
4347
  }
4137
4348
  function PaginationPrevious({
4138
4349
  className,
4139
4350
  text = "Previous",
4140
4351
  ...props
4141
4352
  }) {
4142
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
4353
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
4143
4354
  PaginationLink,
4144
4355
  {
4145
4356
  "aria-label": "Go to previous page",
4146
4357
  className: cn("gap-2 px-4", className),
4147
4358
  ...props,
4148
4359
  children: [
4149
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(PaginationChevronLeft, {}),
4150
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "hidden sm:block", children: renderTextContent(text, {
4360
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(PaginationChevronLeft, {}),
4361
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "hidden sm:block", children: renderTextContent(text, {
4151
4362
  as: "span",
4152
4363
  className: "block text-inherit",
4153
4364
  size: "body",
@@ -4162,20 +4373,20 @@ function PaginationNext({
4162
4373
  text = "Next",
4163
4374
  ...props
4164
4375
  }) {
4165
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
4376
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
4166
4377
  PaginationLink,
4167
4378
  {
4168
4379
  "aria-label": "Go to next page",
4169
4380
  className: cn("gap-2 px-4", className),
4170
4381
  ...props,
4171
4382
  children: [
4172
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "hidden sm:block", children: renderTextContent(text, {
4383
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "hidden sm:block", children: renderTextContent(text, {
4173
4384
  as: "span",
4174
4385
  className: "block text-inherit",
4175
4386
  size: "body",
4176
4387
  style: inheritedTypographyStyle
4177
4388
  }) }),
4178
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(PaginationChevronRight, {})
4389
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(PaginationChevronRight, {})
4179
4390
  ]
4180
4391
  }
4181
4392
  );
@@ -4184,7 +4395,7 @@ function PaginationEllipsis({
4184
4395
  className,
4185
4396
  ...props
4186
4397
  }) {
4187
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
4398
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
4188
4399
  "span",
4189
4400
  {
4190
4401
  "aria-hidden": "true",
@@ -4194,22 +4405,90 @@ function PaginationEllipsis({
4194
4405
  ),
4195
4406
  ...props,
4196
4407
  children: [
4197
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: renderTextContent("...", {
4408
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { children: renderTextContent("...", {
4198
4409
  as: "span",
4199
4410
  className: "block text-inherit",
4200
4411
  size: "h5",
4201
4412
  style: inheritedTypographyStyle
4202
4413
  }) }),
4203
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "sr-only", children: "More pages" })
4414
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "sr-only", children: "More pages" })
4204
4415
  ]
4205
4416
  }
4206
4417
  );
4207
4418
  }
4208
4419
 
4420
+ // src/components/prose-dialog.tsx
4421
+ var React26 = __toESM(require("react"), 1);
4422
+ var import_jsx_runtime28 = require("react/jsx-runtime");
4423
+ var proseDialogMaxWidth = "min(var(--sofya-layout-prose-dialog-width), calc(100vw - var(--sofya-space-8)))";
4424
+ var ProseDialogContent = React26.forwardRef(
4425
+ ({
4426
+ cardClassName,
4427
+ cardStyle: incomingCardStyle,
4428
+ className,
4429
+ style,
4430
+ surfaceShadow = "none",
4431
+ variant = "proseDialog",
4432
+ ...props
4433
+ }, ref) => {
4434
+ const dialogStyle = {
4435
+ ...style,
4436
+ maxWidth: proseDialogMaxWidth
4437
+ };
4438
+ const cardStyle = {
4439
+ ...incomingCardStyle,
4440
+ maxWidth: proseDialogMaxWidth
4441
+ };
4442
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4443
+ DialogContent,
4444
+ {
4445
+ ref,
4446
+ className,
4447
+ cardClassName: [
4448
+ "gap-[var(--sofya-rhythm-section-content)] p-[var(--sofya-space-6)] sm:p-[var(--sofya-space-12)]",
4449
+ cardClassName
4450
+ ].filter(Boolean).join(" "),
4451
+ cardStyle,
4452
+ "data-slot": "prose-dialog-content",
4453
+ style: dialogStyle,
4454
+ surfaceShadow,
4455
+ variant,
4456
+ ...props
4457
+ }
4458
+ );
4459
+ }
4460
+ );
4461
+ ProseDialogContent.displayName = "ProseDialogContent";
4462
+ function ProseDialogHeader(props) {
4463
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DialogHeader, { "data-slot": "prose-dialog-header", ...props });
4464
+ }
4465
+ ProseDialogHeader.displayName = "ProseDialogHeader";
4466
+ var ProseDialogTitle = React26.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DialogTitle, { ref, "data-slot": "prose-dialog-title", ...props }));
4467
+ ProseDialogTitle.displayName = "ProseDialogTitle";
4468
+ var ProseDialogDescription = React26.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(DialogDescription, { ref, "data-slot": "prose-dialog-description", ...props }));
4469
+ ProseDialogDescription.displayName = "ProseDialogDescription";
4470
+ var ProseDialogBody = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4471
+ "div",
4472
+ {
4473
+ ref,
4474
+ "data-slot": "prose-dialog-body",
4475
+ className: [
4476
+ "flex flex-col",
4477
+ "max-w-[var(--sofya-measure-wide)] gap-[var(--sofya-rhythm-paragraph-flow)]",
4478
+ "[&_p]:m-0 [&_p]:text-[length:var(--sofya-text-body-md-font-size)]",
4479
+ "[&_p]:font-[var(--sofya-text-body-md-font-weight)] [&_p]:leading-[var(--sofya-text-body-md-line-height)]",
4480
+ "[&_section]:flex [&_section]:flex-col [&_section]:gap-[var(--sofya-rhythm-title-to-body)]",
4481
+ className
4482
+ ].filter(Boolean).join(" "),
4483
+ ...props
4484
+ }
4485
+ ));
4486
+ ProseDialogBody.displayName = "ProseDialogBody";
4487
+
4209
4488
  // src/components/progress.tsx
4210
- var React24 = __toESM(require("react"), 1);
4489
+ var React27 = __toESM(require("react"), 1);
4211
4490
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"), 1);
4212
- var import_jsx_runtime26 = require("react/jsx-runtime");
4491
+ var import_jsx_runtime29 = require("react/jsx-runtime");
4213
4492
  var progressSizeOptions = ["sm", "default", "lg"];
4214
4493
  function clampProgressValue(value, max) {
4215
4494
  if (Number.isNaN(value)) {
@@ -4217,7 +4496,7 @@ function clampProgressValue(value, max) {
4217
4496
  }
4218
4497
  return Math.min(Math.max(value, 0), max);
4219
4498
  }
4220
- var Progress = React24.forwardRef(function Progress2({
4499
+ var Progress = React27.forwardRef(function Progress2({
4221
4500
  className,
4222
4501
  indicatorClassName,
4223
4502
  max = 100,
@@ -4228,7 +4507,7 @@ var Progress = React24.forwardRef(function Progress2({
4228
4507
  const safeMax = max > 0 ? max : 100;
4229
4508
  const resolvedValue = typeof value === "number" ? clampProgressValue(value, safeMax) : null;
4230
4509
  const progressScale = resolvedValue === null ? void 0 : Number((resolvedValue / safeMax).toFixed(4));
4231
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4510
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4232
4511
  ProgressPrimitive.Root,
4233
4512
  {
4234
4513
  ref,
@@ -4241,7 +4520,7 @@ var Progress = React24.forwardRef(function Progress2({
4241
4520
  className
4242
4521
  ),
4243
4522
  ...props,
4244
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4523
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4245
4524
  ProgressPrimitive.Indicator,
4246
4525
  {
4247
4526
  "data-slot": "progress-indicator",
@@ -4258,19 +4537,19 @@ var Progress = React24.forwardRef(function Progress2({
4258
4537
  Progress.displayName = ProgressPrimitive.Root.displayName;
4259
4538
 
4260
4539
  // src/components/radio-group.tsx
4261
- var React25 = __toESM(require("react"), 1);
4540
+ var React28 = __toESM(require("react"), 1);
4262
4541
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
4263
- var import_jsx_runtime27 = require("react/jsx-runtime");
4542
+ var import_jsx_runtime30 = require("react/jsx-runtime");
4264
4543
  var radioGroupOrientationOptions = ["horizontal", "vertical"];
4265
4544
  var radioGroupVariantOptions = ["default", "pill", "option"];
4266
- var RadioGroupContext = React25.createContext({
4545
+ var RadioGroupContext = React28.createContext({
4267
4546
  variant: "default"
4268
4547
  });
4269
- var RadioGroupOptionContext = React25.createContext(
4548
+ var RadioGroupOptionContext = React28.createContext(
4270
4549
  {}
4271
4550
  );
4272
- var RadioGroupRoot = React25.forwardRef(function RadioGroup2({ className, variant = "default", ...props }, ref) {
4273
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RadioGroupContext.Provider, { value: { variant }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4551
+ var RadioGroupRoot = React28.forwardRef(function RadioGroup2({ className, variant = "default", ...props }, ref) {
4552
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RadioGroupContext.Provider, { value: { variant }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4274
4553
  RadioGroupPrimitive.Root,
4275
4554
  {
4276
4555
  ref,
@@ -4286,7 +4565,7 @@ var RadioGroupRoot = React25.forwardRef(function RadioGroup2({ className, varian
4286
4565
  ) });
4287
4566
  });
4288
4567
  RadioGroupRoot.displayName = RadioGroupPrimitive.Root.displayName;
4289
- var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4568
+ var RadioGroupItem = React28.forwardRef(function RadioGroupItem2({
4290
4569
  className,
4291
4570
  controlClassName,
4292
4571
  description,
@@ -4298,14 +4577,14 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4298
4577
  labelClassName,
4299
4578
  ...props
4300
4579
  }, ref) {
4301
- const { variant } = React25.useContext(RadioGroupContext);
4302
- const generatedId = React25.useId();
4580
+ const { variant } = React28.useContext(RadioGroupContext);
4581
+ const generatedId = React28.useId();
4303
4582
  const resolvedId = id ?? generatedId;
4304
4583
  const labelId = label ? `${resolvedId}-label` : void 0;
4305
4584
  const descriptionId = description ? `${resolvedId}-description` : void 0;
4306
- const alignClassName = description ? "items-start" : "items-center";
4585
+ const alignClassName2 = description ? "items-start" : "items-center";
4307
4586
  if (variant === "pill") {
4308
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4587
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4309
4588
  RadioGroupPrimitive.Item,
4310
4589
  {
4311
4590
  ref,
@@ -4320,8 +4599,8 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4320
4599
  className
4321
4600
  ),
4322
4601
  ...props,
4323
- children: label || description ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("span", { className: "grid justify-items-center gap-1 text-center", children: [
4324
- label ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4602
+ children: label || description ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("span", { className: "grid justify-items-center gap-1 text-center", children: [
4603
+ label ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4325
4604
  "span",
4326
4605
  {
4327
4606
  id: labelId,
@@ -4336,7 +4615,7 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4336
4615
  })
4337
4616
  }
4338
4617
  ) : null,
4339
- description ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4618
+ description ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4340
4619
  "span",
4341
4620
  {
4342
4621
  id: descriptionId,
@@ -4355,16 +4634,16 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4355
4634
  }
4356
4635
  );
4357
4636
  }
4358
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
4637
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
4359
4638
  "label",
4360
4639
  {
4361
4640
  className: selectionControlContainerClasses({
4362
- alignClassName,
4641
+ alignClassName: alignClassName2,
4363
4642
  className,
4364
4643
  disabled
4365
4644
  }),
4366
4645
  children: [
4367
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4646
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4368
4647
  RadioGroupPrimitive.Item,
4369
4648
  {
4370
4649
  ref,
@@ -4380,7 +4659,7 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4380
4659
  controlClassName
4381
4660
  ),
4382
4661
  ...props,
4383
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RadioGroupPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4662
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RadioGroupPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4384
4663
  "span",
4385
4664
  {
4386
4665
  "data-slot": "radio-group-indicator",
@@ -4392,8 +4671,8 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4392
4671
  ) })
4393
4672
  }
4394
4673
  ),
4395
- label || description ? /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
4396
- label ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4674
+ label || description ? /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
4675
+ label ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4397
4676
  "span",
4398
4677
  {
4399
4678
  id: labelId,
@@ -4408,7 +4687,7 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4408
4687
  })
4409
4688
  }
4410
4689
  ) : null,
4411
- description ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4690
+ description ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4412
4691
  "span",
4413
4692
  {
4414
4693
  id: descriptionId,
@@ -4429,7 +4708,7 @@ var RadioGroupItem = React25.forwardRef(function RadioGroupItem2({
4429
4708
  );
4430
4709
  });
4431
4710
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
4432
- var RadioGroupOptionAvatar = React25.forwardRef(function RadioGroupOptionAvatar2({
4711
+ var RadioGroupOptionAvatar = React28.forwardRef(function RadioGroupOptionAvatar2({
4433
4712
  alt,
4434
4713
  avatarClassName,
4435
4714
  avatarProps,
@@ -4439,7 +4718,7 @@ var RadioGroupOptionAvatar = React25.forwardRef(function RadioGroupOptionAvatar2
4439
4718
  src,
4440
4719
  ...props
4441
4720
  }, ref) {
4442
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4721
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4443
4722
  "span",
4444
4723
  {
4445
4724
  ref,
@@ -4449,7 +4728,7 @@ var RadioGroupOptionAvatar = React25.forwardRef(function RadioGroupOptionAvatar2
4449
4728
  className
4450
4729
  ),
4451
4730
  ...props,
4452
- children: children ?? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4731
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4453
4732
  Avatar,
4454
4733
  {
4455
4734
  ...avatarProps,
@@ -4466,9 +4745,9 @@ var RadioGroupOptionAvatar = React25.forwardRef(function RadioGroupOptionAvatar2
4466
4745
  );
4467
4746
  });
4468
4747
  RadioGroupOptionAvatar.displayName = "RadioGroupOptionAvatar";
4469
- var RadioGroupOptionLabel = React25.forwardRef(function RadioGroupOptionLabel2({ children, className, ...props }, ref) {
4470
- const { labelId } = React25.useContext(RadioGroupOptionContext);
4471
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4748
+ var RadioGroupOptionLabel = React28.forwardRef(function RadioGroupOptionLabel2({ children, className, ...props }, ref) {
4749
+ const { labelId } = React28.useContext(RadioGroupOptionContext);
4750
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4472
4751
  "span",
4473
4752
  {
4474
4753
  ref,
@@ -4488,9 +4767,9 @@ var RadioGroupOptionLabel = React25.forwardRef(function RadioGroupOptionLabel2({
4488
4767
  );
4489
4768
  });
4490
4769
  RadioGroupOptionLabel.displayName = "RadioGroupOptionLabel";
4491
- var RadioGroupOptionDescription = React25.forwardRef(function RadioGroupOptionDescription2({ children, className, ...props }, ref) {
4492
- const { descriptionId } = React25.useContext(RadioGroupOptionContext);
4493
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4770
+ var RadioGroupOptionDescription = React28.forwardRef(function RadioGroupOptionDescription2({ children, className, ...props }, ref) {
4771
+ const { descriptionId } = React28.useContext(RadioGroupOptionContext);
4772
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4494
4773
  "span",
4495
4774
  {
4496
4775
  ref,
@@ -4509,8 +4788,8 @@ var RadioGroupOptionDescription = React25.forwardRef(function RadioGroupOptionDe
4509
4788
  );
4510
4789
  });
4511
4790
  RadioGroupOptionDescription.displayName = "RadioGroupOptionDescription";
4512
- var RadioGroupOptionIndicator = React25.forwardRef(function RadioGroupOptionIndicator2({ children, className, ...props }, ref) {
4513
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4791
+ var RadioGroupOptionIndicator = React28.forwardRef(function RadioGroupOptionIndicator2({ children, className, ...props }, ref) {
4792
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4514
4793
  "span",
4515
4794
  {
4516
4795
  ref,
@@ -4520,7 +4799,7 @@ var RadioGroupOptionIndicator = React25.forwardRef(function RadioGroupOptionIndi
4520
4799
  className
4521
4800
  ),
4522
4801
  ...props,
4523
- children: children ?? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4802
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4524
4803
  "svg",
4525
4804
  {
4526
4805
  "aria-hidden": "true",
@@ -4528,7 +4807,7 @@ var RadioGroupOptionIndicator = React25.forwardRef(function RadioGroupOptionIndi
4528
4807
  className: "h-6 w-6 opacity-0 transition-opacity duration-sofya ease-sofya group-data-[state=checked]/radio-option:opacity-100",
4529
4808
  fill: "none",
4530
4809
  xmlns: "http://www.w3.org/2000/svg",
4531
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4810
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4532
4811
  "path",
4533
4812
  {
4534
4813
  d: "M9.55 17.6537L4.2155 12.3192L5.2845 11.25L9.55 15.5155L18.7155 6.35L19.7845 7.41925L9.55 17.6537Z",
@@ -4542,14 +4821,14 @@ var RadioGroupOptionIndicator = React25.forwardRef(function RadioGroupOptionIndi
4542
4821
  });
4543
4822
  RadioGroupOptionIndicator.displayName = "RadioGroupOptionIndicator";
4544
4823
  function isOptionChild(child, component) {
4545
- return React25.isValidElement(child) && child.type === component;
4824
+ return React28.isValidElement(child) && child.type === component;
4546
4825
  }
4547
- var RadioGroupOption = React25.forwardRef(function RadioGroupOption2({ children, className, disabled, id, ...props }, ref) {
4548
- const generatedId = React25.useId();
4826
+ var RadioGroupOption = React28.forwardRef(function RadioGroupOption2({ children, className, disabled, id, ...props }, ref) {
4827
+ const generatedId = React28.useId();
4549
4828
  const resolvedId = id ?? generatedId;
4550
4829
  const labelId = `${resolvedId}-label`;
4551
4830
  const descriptionId = `${resolvedId}-description`;
4552
- const childArray = React25.Children.toArray(children);
4831
+ const childArray = React28.Children.toArray(children);
4553
4832
  const leadingChildren = [];
4554
4833
  const contentChildren = [];
4555
4834
  let indicatorChild = null;
@@ -4564,7 +4843,7 @@ var RadioGroupOption = React25.forwardRef(function RadioGroupOption2({ children,
4564
4843
  }
4565
4844
  contentChildren.push(child);
4566
4845
  }
4567
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RadioGroupOptionContext.Provider, { value: { descriptionId, labelId }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
4846
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RadioGroupOptionContext.Provider, { value: { descriptionId, labelId }, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
4568
4847
  RadioGroupPrimitive.Item,
4569
4848
  {
4570
4849
  ref,
@@ -4584,7 +4863,7 @@ var RadioGroupOption = React25.forwardRef(function RadioGroupOption2({ children,
4584
4863
  ...props,
4585
4864
  children: [
4586
4865
  leadingChildren,
4587
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4866
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4588
4867
  "span",
4589
4868
  {
4590
4869
  "data-slot": "radio-group-option-content",
@@ -4592,7 +4871,7 @@ var RadioGroupOption = React25.forwardRef(function RadioGroupOption2({ children,
4592
4871
  children: contentChildren
4593
4872
  }
4594
4873
  ),
4595
- indicatorChild ?? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(RadioGroupOptionIndicator, {})
4874
+ indicatorChild ?? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RadioGroupOptionIndicator, {})
4596
4875
  ]
4597
4876
  }
4598
4877
  ) });
@@ -4608,13 +4887,37 @@ var RadioGroup3 = Object.assign(RadioGroupRoot, {
4608
4887
  OptionLabel: RadioGroupOptionLabel
4609
4888
  });
4610
4889
 
4890
+ // src/components/right-rail-action.tsx
4891
+ var React29 = __toESM(require("react"), 1);
4892
+ var import_jsx_runtime31 = require("react/jsx-runtime");
4893
+ var RightRailAction = React29.forwardRef(
4894
+ ({ active = false, className, icon, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4895
+ Button,
4896
+ {
4897
+ ref,
4898
+ active,
4899
+ "data-slot": "right-rail-action",
4900
+ leftIcon: icon,
4901
+ size: "icon",
4902
+ variant: "icon",
4903
+ className: cn(
4904
+ "size-[var(--sofya-icon-button-size-md)] rounded-[var(--sofya-radius-md)] shadow-none",
4905
+ active && "bg-[color:var(--sofya-surface-selected)]",
4906
+ className
4907
+ ),
4908
+ ...props
4909
+ }
4910
+ )
4911
+ );
4912
+ RightRailAction.displayName = "RightRailAction";
4913
+
4611
4914
  // src/components/scroll-area.tsx
4612
- var React26 = __toESM(require("react"), 1);
4915
+ var React30 = __toESM(require("react"), 1);
4613
4916
  var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"), 1);
4614
- var import_jsx_runtime28 = require("react/jsx-runtime");
4917
+ var import_jsx_runtime32 = require("react/jsx-runtime");
4615
4918
  var scrollAreaOrientationOptions = ["horizontal", "vertical"];
4616
- var ScrollArea = React26.forwardRef(function ScrollArea2({ className, ...props }, ref) {
4617
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4919
+ var ScrollArea = React30.forwardRef(function ScrollArea2({ className, ...props }, ref) {
4920
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4618
4921
  ScrollAreaPrimitive.Root,
4619
4922
  {
4620
4923
  ref,
@@ -4625,8 +4928,8 @@ var ScrollArea = React26.forwardRef(function ScrollArea2({ className, ...props }
4625
4928
  );
4626
4929
  });
4627
4930
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
4628
- var ScrollAreaViewport = React26.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
4629
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4931
+ var ScrollAreaViewport = React30.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
4932
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4630
4933
  ScrollAreaPrimitive.Viewport,
4631
4934
  {
4632
4935
  ref,
@@ -4640,8 +4943,8 @@ var ScrollAreaViewport = React26.forwardRef(function ScrollAreaViewport2({ class
4640
4943
  );
4641
4944
  });
4642
4945
  ScrollAreaViewport.displayName = ScrollAreaPrimitive.Viewport.displayName;
4643
- var ScrollAreaScrollbar = React26.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
4644
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4946
+ var ScrollAreaScrollbar = React30.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
4947
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4645
4948
  ScrollAreaPrimitive.Scrollbar,
4646
4949
  {
4647
4950
  ref,
@@ -4652,7 +4955,7 @@ var ScrollAreaScrollbar = React26.forwardRef(function ScrollAreaScrollbar2({ cla
4652
4955
  className
4653
4956
  ),
4654
4957
  ...props,
4655
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4958
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4656
4959
  ScrollAreaPrimitive.Thumb,
4657
4960
  {
4658
4961
  "data-slot": "scroll-area-thumb",
@@ -4666,8 +4969,8 @@ var ScrollAreaScrollbar = React26.forwardRef(function ScrollAreaScrollbar2({ cla
4666
4969
  );
4667
4970
  });
4668
4971
  ScrollAreaScrollbar.displayName = ScrollAreaPrimitive.Scrollbar.displayName;
4669
- var ScrollAreaCorner = React26.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
4670
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4972
+ var ScrollAreaCorner = React30.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
4973
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4671
4974
  ScrollAreaPrimitive.Corner,
4672
4975
  {
4673
4976
  ref,
@@ -4680,19 +4983,19 @@ var ScrollAreaCorner = React26.forwardRef(function ScrollAreaCorner2({ className
4680
4983
  ScrollAreaCorner.displayName = ScrollAreaPrimitive.Corner.displayName;
4681
4984
 
4682
4985
  // src/components/select.tsx
4683
- var React27 = __toESM(require("react"), 1);
4986
+ var React31 = __toESM(require("react"), 1);
4684
4987
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
4685
4988
 
4686
4989
  // src/lib/form-control-classes.ts
4687
4990
  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)]";
4688
4991
 
4689
4992
  // src/components/select.tsx
4690
- var import_jsx_runtime29 = require("react/jsx-runtime");
4993
+ var import_jsx_runtime33 = require("react/jsx-runtime");
4691
4994
  var selectSizeOptions = ["default", "sm"];
4692
4995
  var Select = SelectPrimitive.Root;
4693
4996
  var SelectGroup = SelectPrimitive.Group;
4694
- var SelectValue = React27.forwardRef(function SelectValue2({ className, ...props }, ref) {
4695
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4997
+ var SelectValue = React31.forwardRef(function SelectValue2({ className, ...props }, ref) {
4998
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4696
4999
  Text,
4697
5000
  {
4698
5001
  ref,
@@ -4701,13 +5004,13 @@ var SelectValue = React27.forwardRef(function SelectValue2({ className, ...props
4701
5004
  className: cn("block truncate text-inherit", className),
4702
5005
  size: "tiny",
4703
5006
  style: inheritedTypographyStyle,
4704
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectPrimitive.Value, { className: "block truncate", ...props })
5007
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SelectPrimitive.Value, { className: "block truncate", ...props })
4705
5008
  }
4706
5009
  );
4707
5010
  });
4708
5011
  SelectValue.displayName = SelectPrimitive.Value.displayName;
4709
- var SelectTrigger = React27.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
4710
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
5012
+ var SelectTrigger = React31.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
5013
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
4711
5014
  SelectPrimitive.Trigger,
4712
5015
  {
4713
5016
  ref,
@@ -4721,7 +5024,7 @@ var SelectTrigger = React27.forwardRef(function SelectTrigger2({ className, chil
4721
5024
  ...props,
4722
5025
  children: [
4723
5026
  children,
4724
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
5027
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4725
5028
  Icon,
4726
5029
  {
4727
5030
  name: "caret-down",
@@ -4734,8 +5037,8 @@ var SelectTrigger = React27.forwardRef(function SelectTrigger2({ className, chil
4734
5037
  );
4735
5038
  });
4736
5039
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
4737
- var SelectScrollUpButton = React27.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
4738
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
5040
+ var SelectScrollUpButton = React31.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
5041
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4739
5042
  SelectPrimitive.ScrollUpButton,
4740
5043
  {
4741
5044
  ref,
@@ -4745,13 +5048,13 @@ var SelectScrollUpButton = React27.forwardRef(function SelectScrollUpButton2({ c
4745
5048
  className
4746
5049
  ),
4747
5050
  ...props,
4748
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Icon, { name: "caret-up", size: 12 })
5051
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, { name: "caret-up", size: 12 })
4749
5052
  }
4750
5053
  );
4751
5054
  });
4752
5055
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
4753
- var SelectScrollDownButton = React27.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
4754
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
5056
+ var SelectScrollDownButton = React31.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
5057
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4755
5058
  SelectPrimitive.ScrollDownButton,
4756
5059
  {
4757
5060
  ref,
@@ -4761,13 +5064,13 @@ var SelectScrollDownButton = React27.forwardRef(function SelectScrollDownButton2
4761
5064
  className
4762
5065
  ),
4763
5066
  ...props,
4764
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Icon, { name: "caret-down", size: 12 })
5067
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, { name: "caret-down", size: 12 })
4765
5068
  }
4766
5069
  );
4767
5070
  });
4768
5071
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
4769
- var SelectContent = React27.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
4770
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
5072
+ var SelectContent = React31.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
5073
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
4771
5074
  SelectPrimitive.Content,
4772
5075
  {
4773
5076
  ref,
@@ -4780,8 +5083,8 @@ var SelectContent = React27.forwardRef(function SelectContent2({ className, chil
4780
5083
  ),
4781
5084
  ...props,
4782
5085
  children: [
4783
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectScrollUpButton, {}),
4784
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
5086
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SelectScrollUpButton, {}),
5087
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4785
5088
  SelectPrimitive.Viewport,
4786
5089
  {
4787
5090
  "data-slot": "select-viewport",
@@ -4789,14 +5092,14 @@ var SelectContent = React27.forwardRef(function SelectContent2({ className, chil
4789
5092
  children
4790
5093
  }
4791
5094
  ),
4792
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectScrollDownButton, {})
5095
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SelectScrollDownButton, {})
4793
5096
  ]
4794
5097
  }
4795
5098
  ) });
4796
5099
  });
4797
5100
  SelectContent.displayName = SelectPrimitive.Content.displayName;
4798
- var SelectLabel = React27.forwardRef(function SelectLabel2({ className, ...props }, ref) {
4799
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
5101
+ var SelectLabel = React31.forwardRef(function SelectLabel2({ className, ...props }, ref) {
5102
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4800
5103
  SelectPrimitive.Label,
4801
5104
  {
4802
5105
  ref,
@@ -4818,8 +5121,8 @@ var SelectLabel = React27.forwardRef(function SelectLabel2({ className, ...props
4818
5121
  );
4819
5122
  });
4820
5123
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
4821
- var SelectItem = React27.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
4822
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
5124
+ var SelectItem = React31.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
5125
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
4823
5126
  SelectPrimitive.Item,
4824
5127
  {
4825
5128
  ref,
@@ -4830,20 +5133,20 @@ var SelectItem = React27.forwardRef(function SelectItem2({ className, children,
4830
5133
  ),
4831
5134
  ...props,
4832
5135
  children: [
4833
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
5136
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
4834
5137
  as: "span",
4835
5138
  className: "block truncate text-[color:var(--sofya-text-default)]",
4836
5139
  size: "tiny",
4837
5140
  style: inheritedTypographyStyle
4838
5141
  }) }),
4839
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Icon, { name: "check", size: 14 }) }) })
5142
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, { name: "check", size: 14 }) }) })
4840
5143
  ]
4841
5144
  }
4842
5145
  );
4843
5146
  });
4844
5147
  SelectItem.displayName = SelectPrimitive.Item.displayName;
4845
- var SelectSeparator = React27.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
4846
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
5148
+ var SelectSeparator = React31.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
5149
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4847
5150
  SelectPrimitive.Separator,
4848
5151
  {
4849
5152
  ref,
@@ -4856,11 +5159,11 @@ var SelectSeparator = React27.forwardRef(function SelectSeparator2({ className,
4856
5159
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
4857
5160
 
4858
5161
  // src/components/separator.tsx
4859
- var React28 = __toESM(require("react"), 1);
5162
+ var React32 = __toESM(require("react"), 1);
4860
5163
  var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
4861
- var import_jsx_runtime30 = require("react/jsx-runtime");
4862
- var Separator2 = React28.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
4863
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
5164
+ var import_jsx_runtime34 = require("react/jsx-runtime");
5165
+ var Separator2 = React32.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
5166
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4864
5167
  SeparatorPrimitive.Root,
4865
5168
  {
4866
5169
  ref,
@@ -4879,8 +5182,8 @@ var Separator2 = React28.forwardRef(function Separator3({ className, decorative
4879
5182
  Separator2.displayName = SeparatorPrimitive.Root.displayName;
4880
5183
 
4881
5184
  // src/components/slider.tsx
4882
- var React29 = __toESM(require("react"), 1);
4883
- var import_jsx_runtime31 = require("react/jsx-runtime");
5185
+ var React33 = __toESM(require("react"), 1);
5186
+ var import_jsx_runtime35 = require("react/jsx-runtime");
4884
5187
  function clampSliderValue(value, min, max) {
4885
5188
  if (Number.isNaN(value)) {
4886
5189
  return min;
@@ -4905,7 +5208,7 @@ function resolveSliderMeasurement(value, fallback) {
4905
5208
  function isTextValue(value) {
4906
5209
  return typeof value === "string" || typeof value === "number";
4907
5210
  }
4908
- var Slider = React29.forwardRef(function Slider2({
5211
+ var Slider = React33.forwardRef(function Slider2({
4909
5212
  className,
4910
5213
  defaultValue,
4911
5214
  formatValue,
@@ -4928,7 +5231,7 @@ var Slider = React29.forwardRef(function Slider2({
4928
5231
  valueClassName,
4929
5232
  ...props
4930
5233
  }, ref) {
4931
- const resolvedId = React29.useId();
5234
+ const resolvedId = React33.useId();
4932
5235
  const inputId = id ?? resolvedId;
4933
5236
  const safeMin = min;
4934
5237
  const safeMax = resolveSliderMax(safeMin, max);
@@ -4937,7 +5240,7 @@ var Slider = React29.forwardRef(function Slider2({
4937
5240
  onChange: onValueChange,
4938
5241
  value
4939
5242
  });
4940
- React29.useEffect(() => {
5243
+ React33.useEffect(() => {
4941
5244
  if (value !== void 0) {
4942
5245
  return;
4943
5246
  }
@@ -4984,14 +5287,14 @@ var Slider = React29.forwardRef(function Slider2({
4984
5287
  setControllableValue(nextValue);
4985
5288
  onChange?.(event);
4986
5289
  };
4987
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
5290
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
4988
5291
  "div",
4989
5292
  {
4990
5293
  "data-slot": "slider",
4991
5294
  className: cn("grid w-full gap-2", className),
4992
5295
  children: [
4993
- label || showValue ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
4994
- label ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
5296
+ label || showValue ? /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
5297
+ label ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
4995
5298
  FieldLabel,
4996
5299
  {
4997
5300
  htmlFor: inputId,
@@ -5002,8 +5305,8 @@ var Slider = React29.forwardRef(function Slider2({
5002
5305
  textClassName: "block min-w-0 text-[color:var(--sofya-text-default)]",
5003
5306
  children: label
5004
5307
  }
5005
- ) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", {}),
5006
- showValue ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
5308
+ ) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", {}),
5309
+ showValue ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5007
5310
  "div",
5008
5311
  {
5009
5312
  className: cn(
@@ -5021,7 +5324,7 @@ var Slider = React29.forwardRef(function Slider2({
5021
5324
  }
5022
5325
  ) : null
5023
5326
  ] }) : null,
5024
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
5327
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
5025
5328
  "div",
5026
5329
  {
5027
5330
  "data-slot": "slider-control",
@@ -5031,7 +5334,7 @@ var Slider = React29.forwardRef(function Slider2({
5031
5334
  ),
5032
5335
  style: controlStyle,
5033
5336
  children: [
5034
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
5337
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5035
5338
  "input",
5036
5339
  {
5037
5340
  ...props,
@@ -5048,7 +5351,7 @@ var Slider = React29.forwardRef(function Slider2({
5048
5351
  style: inputBoundsStyle
5049
5352
  }
5050
5353
  ),
5051
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
5354
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5052
5355
  "div",
5053
5356
  {
5054
5357
  "data-slot": "slider-track",
@@ -5059,7 +5362,7 @@ var Slider = React29.forwardRef(function Slider2({
5059
5362
  style: trackBoundsStyle
5060
5363
  }
5061
5364
  ),
5062
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
5365
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5063
5366
  "div",
5064
5367
  {
5065
5368
  "data-slot": "slider-range",
@@ -5070,7 +5373,7 @@ var Slider = React29.forwardRef(function Slider2({
5070
5373
  style: rangeStyle
5071
5374
  }
5072
5375
  ),
5073
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
5376
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5074
5377
  "div",
5075
5378
  {
5076
5379
  "data-slot": "slider-thumb",
@@ -5091,10 +5394,10 @@ var Slider = React29.forwardRef(function Slider2({
5091
5394
  Slider.displayName = "Slider";
5092
5395
 
5093
5396
  // src/components/skeleton.tsx
5094
- var React30 = __toESM(require("react"), 1);
5095
- var import_jsx_runtime32 = require("react/jsx-runtime");
5096
- var Skeleton = React30.forwardRef(function Skeleton2({ className, ...props }, ref) {
5097
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
5397
+ var React34 = __toESM(require("react"), 1);
5398
+ var import_jsx_runtime36 = require("react/jsx-runtime");
5399
+ var Skeleton = React34.forwardRef(function Skeleton2({ className, ...props }, ref) {
5400
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
5098
5401
  "div",
5099
5402
  {
5100
5403
  ref,
@@ -5109,15 +5412,15 @@ var Skeleton = React30.forwardRef(function Skeleton2({ className, ...props }, re
5109
5412
  Skeleton.displayName = "Skeleton";
5110
5413
 
5111
5414
  // src/components/sonner.tsx
5112
- var React31 = __toESM(require("react"), 1);
5415
+ var React35 = __toESM(require("react"), 1);
5113
5416
  var import_sonner = require("sonner");
5114
- var import_jsx_runtime33 = require("react/jsx-runtime");
5417
+ var import_jsx_runtime37 = require("react/jsx-runtime");
5115
5418
  var notificationVariantOptions = ["default", "success", "error", "warning"];
5116
5419
  function ToastStatusIcon({
5117
5420
  iconName,
5118
5421
  className
5119
5422
  }) {
5120
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
5423
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5121
5424
  "span",
5122
5425
  {
5123
5426
  "aria-hidden": "true",
@@ -5125,7 +5428,7 @@ function ToastStatusIcon({
5125
5428
  "inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full border shadow-sofya-sm",
5126
5429
  className
5127
5430
  ),
5128
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, { name: iconName, size: 16 })
5431
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: iconName, size: 16 })
5129
5432
  }
5130
5433
  );
5131
5434
  }
@@ -5146,35 +5449,35 @@ var defaultToastClassNames = {
5146
5449
  loading: "border-border bg-card text-foreground"
5147
5450
  };
5148
5451
  var defaultToastIcons = {
5149
- success: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
5452
+ success: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5150
5453
  ToastStatusIcon,
5151
5454
  {
5152
5455
  iconName: "check",
5153
5456
  className: "border-success/15 bg-success/12 text-success"
5154
5457
  }
5155
5458
  ),
5156
- error: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
5459
+ error: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5157
5460
  ToastStatusIcon,
5158
5461
  {
5159
5462
  iconName: "x",
5160
5463
  className: "border-destructive/15 bg-destructive/12 text-destructive"
5161
5464
  }
5162
5465
  ),
5163
- warning: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
5466
+ warning: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5164
5467
  ToastStatusIcon,
5165
5468
  {
5166
5469
  iconName: "question",
5167
5470
  className: "border-warning/20 bg-warning/15 text-foreground"
5168
5471
  }
5169
5472
  ),
5170
- info: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
5473
+ info: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5171
5474
  ToastStatusIcon,
5172
5475
  {
5173
5476
  iconName: "question",
5174
5477
  className: "border-primary/15 bg-primary/10 text-primary"
5175
5478
  }
5176
5479
  ),
5177
- close: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon, { name: "x", size: 12 })
5480
+ close: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon, { name: "x", size: 12 })
5178
5481
  };
5179
5482
  function mergeToastClassNames(overrides) {
5180
5483
  return {
@@ -5182,7 +5485,7 @@ function mergeToastClassNames(overrides) {
5182
5485
  ...overrides
5183
5486
  };
5184
5487
  }
5185
- var Toaster = React31.forwardRef(
5488
+ var Toaster = React35.forwardRef(
5186
5489
  function Toaster2({
5187
5490
  className,
5188
5491
  closeButton = true,
@@ -5194,7 +5497,7 @@ var Toaster = React31.forwardRef(
5194
5497
  visibleToasts = 5,
5195
5498
  ...props
5196
5499
  }, ref) {
5197
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
5500
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
5198
5501
  import_sonner.Toaster,
5199
5502
  {
5200
5503
  ref,
@@ -5224,9 +5527,9 @@ var Toaster = React31.forwardRef(
5224
5527
  Toaster.displayName = "Toaster";
5225
5528
 
5226
5529
  // src/components/switch.tsx
5227
- var React32 = __toESM(require("react"), 1);
5530
+ var React36 = __toESM(require("react"), 1);
5228
5531
  var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
5229
- var import_jsx_runtime34 = require("react/jsx-runtime");
5532
+ var import_jsx_runtime38 = require("react/jsx-runtime");
5230
5533
  var switchSizeOptions = ["default", "sm"];
5231
5534
  var switchRootSizeClasses = {
5232
5535
  default: "h-6 w-11",
@@ -5236,7 +5539,7 @@ var switchThumbSizeClasses = {
5236
5539
  default: "h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0",
5237
5540
  sm: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
5238
5541
  };
5239
- var Switch = React32.forwardRef(
5542
+ var Switch = React36.forwardRef(
5240
5543
  ({
5241
5544
  "aria-describedby": ariaDescribedBy,
5242
5545
  "aria-labelledby": ariaLabelledBy,
@@ -5251,16 +5554,16 @@ var Switch = React32.forwardRef(
5251
5554
  size,
5252
5555
  ...props
5253
5556
  }, ref) => {
5254
- const generatedId = React32.useId();
5557
+ const generatedId = React36.useId();
5255
5558
  const resolvedId = id ?? generatedId;
5256
5559
  const labelId = label ? `${resolvedId}-label` : void 0;
5257
5560
  const descriptionId = description ? `${resolvedId}-description` : void 0;
5258
5561
  const hasTextContent = label !== void 0 || description !== void 0;
5259
5562
  const resolvedSize = size ?? (hasTextContent ? "sm" : "default");
5260
- const alignClassName = description ? "items-start" : "items-center";
5563
+ const alignClassName2 = description ? "items-start" : "items-center";
5261
5564
  const resolvedAriaDescribedBy = [ariaDescribedBy, descriptionId].filter(Boolean).join(" ") || void 0;
5262
5565
  const resolvedAriaLabelledBy = ariaLabelledBy ?? labelId;
5263
- const switchControl = /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5566
+ const switchControl = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5264
5567
  SwitchPrimitives.Root,
5265
5568
  {
5266
5569
  id: resolvedId,
@@ -5275,7 +5578,7 @@ var Switch = React32.forwardRef(
5275
5578
  "data-size": resolvedSize,
5276
5579
  ...props,
5277
5580
  ref,
5278
- children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5581
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5279
5582
  SwitchPrimitives.Thumb,
5280
5583
  {
5281
5584
  className: cn(
@@ -5289,19 +5592,19 @@ var Switch = React32.forwardRef(
5289
5592
  if (!hasTextContent) {
5290
5593
  return switchControl;
5291
5594
  }
5292
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
5595
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
5293
5596
  "div",
5294
5597
  {
5295
5598
  "data-slot": "switch-container",
5296
5599
  className: selectionControlContainerClasses({
5297
- alignClassName,
5600
+ alignClassName: alignClassName2,
5298
5601
  className: containerClassName,
5299
5602
  disabled
5300
5603
  }),
5301
5604
  children: [
5302
5605
  switchControl,
5303
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
5304
- label ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5606
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
5607
+ label ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5305
5608
  "span",
5306
5609
  {
5307
5610
  id: labelId,
@@ -5316,7 +5619,7 @@ var Switch = React32.forwardRef(
5316
5619
  })
5317
5620
  }
5318
5621
  ) }) : null,
5319
- description ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
5622
+ description ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5320
5623
  "span",
5321
5624
  {
5322
5625
  id: descriptionId,
@@ -5341,17 +5644,18 @@ Switch.displayName = SwitchPrimitives.Root.displayName;
5341
5644
 
5342
5645
  // src/components/table.tsx
5343
5646
  var import_class_variance_authority8 = require("class-variance-authority");
5344
- var React33 = __toESM(require("react"), 1);
5345
- var import_jsx_runtime35 = require("react/jsx-runtime");
5647
+ var React37 = __toESM(require("react"), 1);
5648
+ var import_jsx_runtime39 = require("react/jsx-runtime");
5346
5649
  var tableCellVariantOptions = ["default", "primary", "muted"];
5347
5650
  var tableStatusToneOptions = [
5348
5651
  "active",
5349
5652
  "inactive",
5653
+ "info",
5350
5654
  "warning"
5351
5655
  ];
5352
5656
  var tableActionToneOptions = ["primary", "neutral", "danger"];
5353
5657
  var tableCellVariants = (0, import_class_variance_authority8.cva)(
5354
- "px-2 py-6 align-middle [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] font-normal leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)]",
5658
+ "px-4 py-5 align-middle [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] font-normal leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)]",
5355
5659
  {
5356
5660
  variants: {
5357
5661
  variant: {
@@ -5370,6 +5674,7 @@ var tableStatusBadgeVariants = (0, import_class_variance_authority8.cva)("normal
5370
5674
  tone: {
5371
5675
  active: "border-[color:var(--sofya-tone-success-border)] bg-[color:var(--sofya-tone-success-background)] text-[color:var(--sofya-tone-success-foreground)]",
5372
5676
  inactive: "border-[color:var(--sofya-tone-default-border)] bg-[color:var(--sofya-tone-default-background)] text-[color:var(--sofya-text-subtle)]",
5677
+ info: "border-transparent bg-primary/10 text-primary",
5373
5678
  warning: "border-[color:var(--sofya-tone-warning-border)] bg-[color:var(--sofya-tone-warning-background)] text-[color:var(--sofya-tone-warning-foreground)]"
5374
5679
  }
5375
5680
  },
@@ -5378,7 +5683,7 @@ var tableStatusBadgeVariants = (0, import_class_variance_authority8.cva)("normal
5378
5683
  }
5379
5684
  });
5380
5685
  var tableActionButtonVariants = (0, import_class_variance_authority8.cva)(
5381
- "text-[length:var(--sofya-text-body-font-size)] leading-[var(--sofya-text-body-line-height)] shadow-none motion-safe:active:scale-[0.97] focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0 disabled:opacity-40 [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
5686
+ "h-8 w-8 text-[length:var(--sofya-text-body-font-size)] leading-[var(--sofya-text-body-line-height)] shadow-none motion-safe:active:scale-[0.97] focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0 disabled:opacity-40 [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
5382
5687
  {
5383
5688
  variants: {
5384
5689
  tone: {
@@ -5392,19 +5697,19 @@ var tableActionButtonVariants = (0, import_class_variance_authority8.cva)(
5392
5697
  }
5393
5698
  }
5394
5699
  );
5395
- var Table = React33.forwardRef(function Table2({ className, ...props }, ref) {
5396
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5700
+ var Table = React37.forwardRef(function Table2({ className, ...props }, ref) {
5701
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5397
5702
  "div",
5398
5703
  {
5399
5704
  "data-slot": "table-container",
5400
5705
  className: "relative w-full overflow-x-auto",
5401
- children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5706
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5402
5707
  "table",
5403
5708
  {
5404
5709
  "data-slot": "table",
5405
5710
  ref,
5406
5711
  className: cn(
5407
- "w-full min-w-[1040px] caption-bottom border-collapse bg-card",
5712
+ "w-full min-w-[1040px] caption-bottom border-separate border-spacing-0 bg-card",
5408
5713
  className
5409
5714
  ),
5410
5715
  ...props
@@ -5413,33 +5718,33 @@ var Table = React33.forwardRef(function Table2({ className, ...props }, ref) {
5413
5718
  }
5414
5719
  );
5415
5720
  });
5416
- var TableHeader = React33.forwardRef(function TableHeader2({ className, ...props }, ref) {
5417
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5721
+ var TableHeader = React37.forwardRef(function TableHeader2({ className, ...props }, ref) {
5722
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5418
5723
  "thead",
5419
5724
  {
5420
5725
  "data-slot": "table-header",
5421
5726
  ref,
5422
5727
  className: cn(
5423
- "[&_tr]:border-b [&_tr]:border-[color:var(--sofya-border-strong)] [&_tr:hover]:bg-transparent",
5728
+ "[&_tr]:border-0 [&_tr:hover]:bg-transparent [&_th]:bg-[color:var(--sofya-tone-default-background)] [&_th:first-child]:rounded-tl-[var(--sofya-radius-md)] [&_th:last-child]:rounded-tr-[var(--sofya-radius-md)]",
5424
5729
  className
5425
5730
  ),
5426
5731
  ...props
5427
5732
  }
5428
5733
  );
5429
5734
  });
5430
- var TableBody = React33.forwardRef(function TableBody2({ className, ...props }, ref) {
5431
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5735
+ var TableBody = React37.forwardRef(function TableBody2({ className, ...props }, ref) {
5736
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5432
5737
  "tbody",
5433
5738
  {
5434
5739
  "data-slot": "table-body",
5435
5740
  ref,
5436
- className: cn("[&_tr:last-child]:border-0", className),
5741
+ className: cn("[&_tr:last-child>td]:border-0", className),
5437
5742
  ...props
5438
5743
  }
5439
5744
  );
5440
5745
  });
5441
- var TableFooter = React33.forwardRef(function TableFooter2({ className, ...props }, ref) {
5442
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5746
+ var TableFooter = React37.forwardRef(function TableFooter2({ className, ...props }, ref) {
5747
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5443
5748
  "tfoot",
5444
5749
  {
5445
5750
  "data-slot": "table-footer",
@@ -5452,28 +5757,28 @@ var TableFooter = React33.forwardRef(function TableFooter2({ className, ...props
5452
5757
  }
5453
5758
  );
5454
5759
  });
5455
- var TableRow = React33.forwardRef(function TableRow2({ className, ...props }, ref) {
5456
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5760
+ var TableRow = React37.forwardRef(function TableRow2({ className, ...props }, ref) {
5761
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5457
5762
  "tr",
5458
5763
  {
5459
5764
  "data-slot": "table-row",
5460
5765
  ref,
5461
5766
  className: cn(
5462
- "border-b border-[color:var(--sofya-border-soft)] transition-colors duration-sofya ease-sofya hover:bg-[color:var(--sofya-tone-default-background)] data-[state=selected]:bg-[color:var(--sofya-tone-default-background)]",
5767
+ "border-b border-[color:var(--sofya-border-soft)] transition-colors duration-sofya ease-sofya hover:bg-[color:var(--sofya-tone-default-background)] data-[state=selected]:bg-[color:var(--sofya-tone-default-background)] [&>td]:border-b [&>td]:border-[color:var(--sofya-border-soft)]",
5463
5768
  className
5464
5769
  ),
5465
5770
  ...props
5466
5771
  }
5467
5772
  );
5468
5773
  });
5469
- var TableHead = React33.forwardRef(function TableHead2({ className, children, ...props }, ref) {
5470
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5774
+ var TableHead = React37.forwardRef(function TableHead2({ className, children, ...props }, ref) {
5775
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5471
5776
  "th",
5472
5777
  {
5473
5778
  "data-slot": "table-head",
5474
5779
  ref,
5475
5780
  className: cn(
5476
- "whitespace-nowrap px-2 py-8 text-left align-middle [font-family:var(--sofya-text-tiny-font-family)] text-[length:var(--sofya-text-tiny-font-size)] font-medium uppercase leading-4 tracking-[0.12em] text-[color:var(--sofya-text-default)] [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
5781
+ "whitespace-nowrap px-4 py-4 text-left align-middle [font-family:var(--sofya-text-tiny-font-family)] text-[length:var(--sofya-text-tiny-font-size)] font-medium uppercase leading-4 tracking-[0.08em] text-[color:var(--sofya-text-default)] [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
5477
5782
  className
5478
5783
  ),
5479
5784
  ...props,
@@ -5486,9 +5791,9 @@ var TableHead = React33.forwardRef(function TableHead2({ className, children, ..
5486
5791
  }
5487
5792
  );
5488
5793
  });
5489
- var TableCell = React33.forwardRef(
5794
+ var TableCell = React37.forwardRef(
5490
5795
  function TableCell2({ className, variant, truncate, children, ...props }, ref) {
5491
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5796
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5492
5797
  "td",
5493
5798
  {
5494
5799
  "data-slot": "table-cell",
@@ -5512,8 +5817,8 @@ var TableCell = React33.forwardRef(
5512
5817
  );
5513
5818
  }
5514
5819
  );
5515
- var TableCaption = React33.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
5516
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5820
+ var TableCaption = React37.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
5821
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5517
5822
  "caption",
5518
5823
  {
5519
5824
  "data-slot": "table-caption",
@@ -5532,13 +5837,53 @@ var TableCaption = React33.forwardRef(function TableCaption2({ className, childr
5532
5837
  }
5533
5838
  );
5534
5839
  });
5840
+ var TableCellTitle = React37.forwardRef(function TableCellTitle2({ className, children, ...props }, ref) {
5841
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5842
+ "span",
5843
+ {
5844
+ "data-slot": "table-cell-title",
5845
+ ref,
5846
+ className: cn(
5847
+ "block font-medium text-[color:var(--sofya-text-default)]",
5848
+ className
5849
+ ),
5850
+ ...props,
5851
+ children: renderTextContent(children, {
5852
+ as: "span",
5853
+ className: "block text-inherit",
5854
+ size: "body",
5855
+ style: inheritedTypographyStyle
5856
+ })
5857
+ }
5858
+ );
5859
+ });
5860
+ var TableCellDescription = React37.forwardRef(function TableCellDescription2({ className, children, ...props }, ref) {
5861
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5862
+ "span",
5863
+ {
5864
+ "data-slot": "table-cell-description",
5865
+ ref,
5866
+ className: cn(
5867
+ "mt-1 block text-[color:var(--sofya-text-subtle)]",
5868
+ className
5869
+ ),
5870
+ ...props,
5871
+ children: renderTextContent(children, {
5872
+ as: "span",
5873
+ className: "block text-inherit",
5874
+ size: "tiny",
5875
+ style: inheritedTypographyStyle
5876
+ })
5877
+ }
5878
+ );
5879
+ });
5535
5880
  function TableStatusBadge({
5536
5881
  className,
5537
5882
  tone,
5538
5883
  children,
5539
5884
  ...props
5540
5885
  }) {
5541
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5886
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5542
5887
  Badge,
5543
5888
  {
5544
5889
  variant: "pill",
@@ -5553,8 +5898,8 @@ function TableStatusBadge({
5553
5898
  }
5554
5899
  );
5555
5900
  }
5556
- var TableActionButton = React33.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
5557
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5901
+ var TableActionButton = React37.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
5902
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5558
5903
  Button,
5559
5904
  {
5560
5905
  ref,
@@ -5572,8 +5917,8 @@ var TableActionButton = React33.forwardRef(function TableActionButton2({ classNa
5572
5917
  }
5573
5918
  );
5574
5919
  });
5575
- var TableActions = React33.forwardRef(function TableActions2({ className, ...props }, ref) {
5576
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5920
+ var TableActions = React37.forwardRef(function TableActions2({ className, ...props }, ref) {
5921
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
5577
5922
  "div",
5578
5923
  {
5579
5924
  ref,
@@ -5590,14 +5935,16 @@ TableRow.displayName = "TableRow";
5590
5935
  TableHead.displayName = "TableHead";
5591
5936
  TableCell.displayName = "TableCell";
5592
5937
  TableCaption.displayName = "TableCaption";
5938
+ TableCellTitle.displayName = "TableCellTitle";
5939
+ TableCellDescription.displayName = "TableCellDescription";
5593
5940
  TableActionButton.displayName = "TableActionButton";
5594
5941
  TableActions.displayName = "TableActions";
5595
5942
 
5596
5943
  // src/components/tabs.tsx
5597
- var React34 = __toESM(require("react"), 1);
5944
+ var React38 = __toESM(require("react"), 1);
5598
5945
  var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
5599
5946
  var import_react3 = require("motion/react");
5600
- var import_jsx_runtime36 = require("react/jsx-runtime");
5947
+ var import_jsx_runtime40 = require("react/jsx-runtime");
5601
5948
  function resolveDefaultValue(items, defaultValue) {
5602
5949
  if (defaultValue) {
5603
5950
  return defaultValue;
@@ -5621,13 +5968,13 @@ function Tabs({
5621
5968
  onChange: onValueChange,
5622
5969
  value
5623
5970
  });
5624
- const indicatorLayoutId = React34.useId();
5625
- React34.useEffect(() => {
5971
+ const indicatorLayoutId = React38.useId();
5972
+ React38.useEffect(() => {
5626
5973
  if (value === void 0) {
5627
5974
  setUncontrolledCurrentValue(resolvedDefaultValue);
5628
5975
  }
5629
5976
  }, [resolvedDefaultValue, setUncontrolledCurrentValue, value]);
5630
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
5977
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
5631
5978
  TabsPrimitive.Root,
5632
5979
  {
5633
5980
  className: cn("w-full", className),
@@ -5635,7 +5982,7 @@ function Tabs({
5635
5982
  value: currentValue,
5636
5983
  ...props,
5637
5984
  children: [
5638
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
5985
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5639
5986
  TabsPrimitive.List,
5640
5987
  {
5641
5988
  "aria-label": "Subtelas navegaveis",
@@ -5646,7 +5993,7 @@ function Tabs({
5646
5993
  children: items.map((item) => {
5647
5994
  const isUnavailable = item.disabled || item.loading;
5648
5995
  const isActive = item.value === currentValue;
5649
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
5996
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
5650
5997
  TabsPrimitive.Trigger,
5651
5998
  {
5652
5999
  value: item.value,
@@ -5658,7 +6005,7 @@ function Tabs({
5658
6005
  item.triggerClassName
5659
6006
  ),
5660
6007
  children: [
5661
- isActive ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6008
+ isActive ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5662
6009
  import_react3.motion.span,
5663
6010
  {
5664
6011
  "aria-hidden": "true",
@@ -5668,15 +6015,15 @@ function Tabs({
5668
6015
  transition: { duration: 0.25, ease: "easeInOut" }
5669
6016
  }
5670
6017
  ) : null,
5671
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
5672
- item.loading ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6018
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
6019
+ item.loading ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5673
6020
  "span",
5674
6021
  {
5675
6022
  "aria-hidden": "true",
5676
6023
  className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent"
5677
6024
  }
5678
6025
  ) : null,
5679
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { children: renderTextContent(item.label, {
6026
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: renderTextContent(item.label, {
5680
6027
  as: "span",
5681
6028
  className: "block text-inherit",
5682
6029
  size: "body"
@@ -5690,7 +6037,7 @@ function Tabs({
5690
6037
  }
5691
6038
  ),
5692
6039
  items.map(
5693
- (item) => item.content !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
6040
+ (item) => item.content !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
5694
6041
  TabsPrimitive.Content,
5695
6042
  {
5696
6043
  value: item.value,
@@ -5713,9 +6060,9 @@ function Tabs({
5713
6060
  Tabs.displayName = "Tabs";
5714
6061
 
5715
6062
  // src/components/textarea.tsx
5716
- var React35 = __toESM(require("react"), 1);
5717
- var import_jsx_runtime37 = require("react/jsx-runtime");
5718
- var Textarea = React35.forwardRef(
6063
+ var React39 = __toESM(require("react"), 1);
6064
+ var import_jsx_runtime41 = require("react/jsx-runtime");
6065
+ var Textarea = React39.forwardRef(
5719
6066
  ({
5720
6067
  className,
5721
6068
  containerClassName,
@@ -5725,10 +6072,10 @@ var Textarea = React35.forwardRef(
5725
6072
  rows = 5,
5726
6073
  ...props
5727
6074
  }, ref) => {
5728
- const generatedId = React35.useId();
6075
+ const generatedId = React39.useId();
5729
6076
  const resolvedId = id ?? generatedId;
5730
6077
  const ariaLabel = props["aria-label"] ?? (typeof label === "string" ? label : void 0);
5731
- const control = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
6078
+ const control = /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5732
6079
  "textarea",
5733
6080
  {
5734
6081
  className: cn(
@@ -5742,7 +6089,7 @@ var Textarea = React35.forwardRef(
5742
6089
  "aria-label": ariaLabel
5743
6090
  }
5744
6091
  );
5745
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
6092
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
5746
6093
  FieldShell,
5747
6094
  {
5748
6095
  control,
@@ -5757,10 +6104,10 @@ var Textarea = React35.forwardRef(
5757
6104
  Textarea.displayName = "Textarea";
5758
6105
 
5759
6106
  // src/components/toggle.tsx
5760
- var React36 = __toESM(require("react"), 1);
6107
+ var React40 = __toESM(require("react"), 1);
5761
6108
  var SwitchPrimitives2 = __toESM(require("@radix-ui/react-switch"), 1);
5762
- var import_jsx_runtime38 = require("react/jsx-runtime");
5763
- var Toggle = React36.forwardRef(function Toggle2({
6109
+ var import_jsx_runtime42 = require("react/jsx-runtime");
6110
+ var Toggle = React40.forwardRef(function Toggle2({
5764
6111
  "aria-describedby": ariaDescribedBy,
5765
6112
  "aria-labelledby": ariaLabelledBy,
5766
6113
  className,
@@ -5773,15 +6120,15 @@ var Toggle = React36.forwardRef(function Toggle2({
5773
6120
  labelClassName,
5774
6121
  ...props
5775
6122
  }, ref) {
5776
- const generatedId = React36.useId();
6123
+ const generatedId = React40.useId();
5777
6124
  const resolvedId = id ?? generatedId;
5778
6125
  const labelId = label ? `${resolvedId}-label` : void 0;
5779
6126
  const descriptionId = description ? `${resolvedId}-description` : void 0;
5780
6127
  const hasTextContent = label !== void 0 || description !== void 0;
5781
- const alignClassName = description ? "items-start" : "items-center";
6128
+ const alignClassName2 = description ? "items-start" : "items-center";
5782
6129
  const resolvedAriaDescribedBy = [ariaDescribedBy, descriptionId].filter(Boolean).join(" ") || void 0;
5783
6130
  const resolvedAriaLabelledBy = ariaLabelledBy ?? labelId;
5784
- const toggleControl = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
6131
+ const toggleControl = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5785
6132
  SwitchPrimitives2.Root,
5786
6133
  {
5787
6134
  id: resolvedId,
@@ -5795,7 +6142,7 @@ var Toggle = React36.forwardRef(function Toggle2({
5795
6142
  className
5796
6143
  ),
5797
6144
  ...props,
5798
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
6145
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5799
6146
  SwitchPrimitives2.Thumb,
5800
6147
  {
5801
6148
  "data-slot": "toggle-thumb",
@@ -5807,19 +6154,19 @@ var Toggle = React36.forwardRef(function Toggle2({
5807
6154
  if (!hasTextContent) {
5808
6155
  return toggleControl;
5809
6156
  }
5810
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
6157
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
5811
6158
  "div",
5812
6159
  {
5813
6160
  "data-slot": "toggle-container",
5814
6161
  className: selectionControlContainerClasses({
5815
- alignClassName,
6162
+ alignClassName: alignClassName2,
5816
6163
  className: containerClassName,
5817
6164
  disabled
5818
6165
  }),
5819
6166
  children: [
5820
6167
  toggleControl,
5821
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
5822
- label ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
6168
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
6169
+ label ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("label", { htmlFor: resolvedId, className: selectionControlLabelTextBaseClasses, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5823
6170
  "span",
5824
6171
  {
5825
6172
  id: labelId,
@@ -5831,7 +6178,7 @@ var Toggle = React36.forwardRef(function Toggle2({
5831
6178
  })
5832
6179
  }
5833
6180
  ) }) : null,
5834
- description ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
6181
+ description ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
5835
6182
  "span",
5836
6183
  {
5837
6184
  id: descriptionId,
@@ -5854,14 +6201,14 @@ var Toggle = React36.forwardRef(function Toggle2({
5854
6201
  Toggle.displayName = "Toggle";
5855
6202
 
5856
6203
  // src/components/tooltip.tsx
5857
- var React37 = __toESM(require("react"), 1);
6204
+ var React41 = __toESM(require("react"), 1);
5858
6205
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
5859
- var import_jsx_runtime39 = require("react/jsx-runtime");
6206
+ var import_jsx_runtime43 = require("react/jsx-runtime");
5860
6207
  var TooltipProvider = TooltipPrimitive.Provider;
5861
6208
  var Tooltip = TooltipPrimitive.Root;
5862
6209
  var TooltipTrigger = TooltipPrimitive.Trigger;
5863
- var TooltipContent = React37.forwardRef(function TooltipContent2({ className, sideOffset = 8, ...props }, ref) {
5864
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
6210
+ var TooltipContent = React41.forwardRef(function TooltipContent2({ className, sideOffset = 8, ...props }, ref) {
6211
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
5865
6212
  TooltipPrimitive.Content,
5866
6213
  {
5867
6214
  ref,
@@ -5885,9 +6232,9 @@ var TooltipContent = React37.forwardRef(function TooltipContent2({ className, si
5885
6232
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
5886
6233
 
5887
6234
  // src/theme/provider.tsx
5888
- var React38 = __toESM(require("react"), 1);
5889
- var import_tokens = require("@sofya-ds/tokens");
5890
- var import_jsx_runtime40 = require("react/jsx-runtime");
6235
+ var React42 = __toESM(require("react"), 1);
6236
+ var import_tokens3 = require("@sofya-ds/tokens");
6237
+ var import_jsx_runtime44 = require("react/jsx-runtime");
5891
6238
  var SOFYA_FONT_LINKS = [
5892
6239
  {
5893
6240
  id: "preconnect-googleapis",
@@ -5907,7 +6254,7 @@ var SOFYA_FONT_LINKS = [
5907
6254
  }
5908
6255
  ];
5909
6256
  function useSofyaFontLinks() {
5910
- React38.useEffect(() => {
6257
+ React42.useEffect(() => {
5911
6258
  if (typeof document === "undefined") {
5912
6259
  return;
5913
6260
  }
@@ -5930,7 +6277,7 @@ function useSofyaFontLinks() {
5930
6277
  }, []);
5931
6278
  }
5932
6279
  function SofyaProvider({
5933
- preset = import_tokens.defaultTheme,
6280
+ preset = import_tokens3.defaultTheme,
5934
6281
  overrides,
5935
6282
  className,
5936
6283
  style,
@@ -5938,9 +6285,9 @@ function SofyaProvider({
5938
6285
  ...props
5939
6286
  }) {
5940
6287
  useSofyaFontLinks();
5941
- const theme = (0, import_tokens.createWhitelabelTheme)(overrides ?? {}, preset);
5942
- const cssVariables = (0, import_tokens.themeToCssVariables)(theme);
5943
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
6288
+ const theme = (0, import_tokens3.createWhitelabelTheme)(overrides ?? {}, preset);
6289
+ const cssVariables = (0, import_tokens3.themeToCssVariables)(theme);
6290
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
5944
6291
  "div",
5945
6292
  {
5946
6293
  "data-sofya-theme": theme.name,
@@ -5953,7 +6300,7 @@ function SofyaProvider({
5953
6300
  }
5954
6301
 
5955
6302
  // src/index.ts
5956
- var import_tokens2 = require("@sofya-ds/tokens");
6303
+ var import_tokens4 = require("@sofya-ds/tokens");
5957
6304
  // Annotate the CommonJS export names for ESM import in node:
5958
6305
  0 && (module.exports = {
5959
6306
  Accordion,
@@ -5973,6 +6320,8 @@ var import_tokens2 = require("@sofya-ds/tokens");
5973
6320
  CardHeader,
5974
6321
  CardTitle,
5975
6322
  Checkbox,
6323
+ Cluster,
6324
+ Container,
5976
6325
  Dialog,
5977
6326
  DialogBody,
5978
6327
  DialogCancel,
@@ -5985,6 +6334,7 @@ var import_tokens2 = require("@sofya-ds/tokens");
5985
6334
  DialogPortal,
5986
6335
  DialogTitle,
5987
6336
  DialogTrigger,
6337
+ DocumentCard,
5988
6338
  Dropdown,
5989
6339
  DropdownSearch,
5990
6340
  Empty,
@@ -5994,6 +6344,7 @@ var import_tokens2 = require("@sofya-ds/tokens");
5994
6344
  EmptyMedia,
5995
6345
  EmptyTitle,
5996
6346
  Icon,
6347
+ Inline,
5997
6348
  Input,
5998
6349
  InputOTP,
5999
6350
  InputOTPGroup,
@@ -6018,6 +6369,11 @@ var import_tokens2 = require("@sofya-ds/tokens");
6018
6369
  PopoverTitle,
6019
6370
  PopoverTrigger,
6020
6371
  Progress,
6372
+ ProseDialogBody,
6373
+ ProseDialogContent,
6374
+ ProseDialogDescription,
6375
+ ProseDialogHeader,
6376
+ ProseDialogTitle,
6021
6377
  REGEXP_ONLY_DIGITS,
6022
6378
  RadioGroup,
6023
6379
  RadioGroupItem,
@@ -6026,6 +6382,7 @@ var import_tokens2 = require("@sofya-ds/tokens");
6026
6382
  RadioGroupOptionDescription,
6027
6383
  RadioGroupOptionIndicator,
6028
6384
  RadioGroupOptionLabel,
6385
+ RightRailAction,
6029
6386
  ScrollArea,
6030
6387
  ScrollAreaCorner,
6031
6388
  ScrollAreaScrollbar,
@@ -6045,6 +6402,7 @@ var import_tokens2 = require("@sofya-ds/tokens");
6045
6402
  Slider,
6046
6403
  SofyaProvider,
6047
6404
  Spinner,
6405
+ Stack,
6048
6406
  Surface,
6049
6407
  Switch,
6050
6408
  Table,
@@ -6053,6 +6411,8 @@ var import_tokens2 = require("@sofya-ds/tokens");
6053
6411
  TableBody,
6054
6412
  TableCaption,
6055
6413
  TableCell,
6414
+ TableCellDescription,
6415
+ TableCellTitle,
6056
6416
  TableFooter,
6057
6417
  TableHead,
6058
6418
  TableHeader,
@@ -6115,10 +6475,15 @@ var import_tokens2 = require("@sofya-ds/tokens");
6115
6475
  selectSizeOptions,
6116
6476
  sofyaBrandPalette,
6117
6477
  sofyaColorPalette,
6478
+ sofyaGapNames,
6479
+ sofyaMeasureNames,
6480
+ sofyaRhythmNames,
6118
6481
  sofyaSemanticColorHex,
6482
+ sofyaSpaceNames,
6119
6483
  sofyaSurfaceNames,
6120
6484
  sofyaTextStyleNames,
6121
6485
  spinnerSizeOptions,
6486
+ surfaceVariantOptions,
6122
6487
  switchSizeOptions,
6123
6488
  tableActionToneOptions,
6124
6489
  tableCellVariantOptions,