@sofya-ds/react 1.10.0 → 1.12.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.d.cts CHANGED
@@ -16,11 +16,11 @@ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
16
16
  import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
17
17
  import * as SelectPrimitive from '@radix-ui/react-select';
18
18
  import * as SeparatorPrimitive from '@radix-ui/react-separator';
19
- import { ToasterProps as ToasterProps$1 } from 'sonner';
19
+ import { ExternalToast, ToasterProps as ToasterProps$1, toast } from 'sonner';
20
20
  export { ExternalToast, ToastClassnames, toast } from 'sonner';
21
+ import * as TooltipPrimitive from '@radix-ui/react-tooltip';
21
22
  import * as SwitchPrimitives from '@radix-ui/react-switch';
22
23
  import * as TabsPrimitive from '@radix-ui/react-tabs';
23
- import * as TooltipPrimitive from '@radix-ui/react-tooltip';
24
24
 
25
25
  declare const avatarSizeOptions: readonly ["sm", "default", "lg"];
26
26
  declare const avatarVariants: (props?: ({
@@ -65,6 +65,12 @@ declare const alertVariants: (props?: ({
65
65
  interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
66
66
  icon?: React.ReactNode;
67
67
  showToneIcon?: boolean;
68
+ /**
69
+ * When provided, renders the single canonical close button. Omit for
70
+ * non-dismissible alerts so no close affordance is shown.
71
+ */
72
+ onDismiss?: () => void;
73
+ dismissLabel?: string;
68
74
  }
69
75
  declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
70
76
  declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
@@ -98,7 +104,7 @@ declare const buttonVariantOptions: readonly ["default", "gradient", "dropdown",
98
104
  declare const buttonSizeOptions: readonly ["default", "sm", "lg", "icon"];
99
105
 
100
106
  declare const buttonVariants: (props?: ({
101
- variant?: "default" | "destructive" | "icon" | "secondary" | "gradient" | "outline" | "dropdown" | "language" | "ghost" | null | undefined;
107
+ variant?: "default" | "destructive" | "icon" | "secondary" | "gradient" | "dropdown" | "language" | "outline" | "ghost" | null | undefined;
102
108
  size?: "sm" | "default" | "lg" | "icon" | null | undefined;
103
109
  } & class_variance_authority_types.ClassProp) | undefined) => string;
104
110
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
@@ -138,11 +144,32 @@ declare function CardFooter({ children, className, ...props }: React.HTMLAttribu
138
144
  interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
139
145
  description?: React.ReactNode;
140
146
  descriptionClassName?: string;
147
+ /** Renders the mixed/indeterminate state (sets the native flag). */
148
+ indeterminate?: boolean;
149
+ /** Renders the error state with a destructive border/ring. */
150
+ error?: boolean;
141
151
  label?: React.ReactNode;
142
152
  labelClassName?: string;
143
153
  }
144
154
  declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
145
155
 
156
+ interface CloseButtonProps extends Omit<ButtonProps, "variant" | "leftIcon" | "rightIcon" | "children"> {
157
+ /** Accessible label. Defaults to "Fechar". */
158
+ label?: string;
159
+ /** Icon size in px. */
160
+ iconSize?: number;
161
+ }
162
+ /**
163
+ * The single, canonical close affordance for the design system.
164
+ *
165
+ * It is always a flat ghost icon button on a transparent background — never a
166
+ * solid/black surface — with a required accessible label and the standard
167
+ * hover/active/focus-visible/disabled states inherited from `Button`. Dialogs,
168
+ * popovers and notices should all use this component so there is exactly one
169
+ * close model across the system.
170
+ */
171
+ declare const CloseButton: React.ForwardRefExoticComponent<CloseButtonProps & React.RefAttributes<HTMLButtonElement>>;
172
+
146
173
  declare const dropdownVariantOptions: readonly ["card", "language", "selected", "action"];
147
174
  type DropdownVariant = (typeof dropdownVariantOptions)[number];
148
175
  declare const dropdownAppearanceOptions: readonly ["card"];
@@ -310,6 +337,7 @@ declare const legacyIconToTablerNameMap: {
310
337
  readonly copy: "IconCopy";
311
338
  readonly logout: "IconLogout";
312
339
  readonly star: "IconStar";
340
+ readonly "star-filled": "IconStarFilled";
313
341
  readonly "users-group": "IconUsersGroup";
314
342
  readonly archive: "IconArchive";
315
343
  readonly folder: "IconFolder";
@@ -324,6 +352,19 @@ declare const legacyIconToTablerNameMap: {
324
352
  readonly lixeira: "IconTrash";
325
353
  readonly settings: "IconSettings";
326
354
  readonly edit: "IconEdit";
355
+ readonly bold: "IconBold";
356
+ readonly italic: "IconItalic";
357
+ readonly underline: "IconUnderline";
358
+ readonly strikethrough: "IconStrikethrough";
359
+ readonly "list-bullet": "IconList";
360
+ readonly "list-numbers": "IconListNumbers";
361
+ readonly link: "IconLink";
362
+ readonly quote: "IconQuote";
363
+ readonly code: "IconCode";
364
+ readonly "align-left": "IconAlignLeft";
365
+ readonly "align-center": "IconAlignCenter";
366
+ readonly "align-right": "IconAlignRight";
367
+ readonly "align-justify": "IconAlignJustified";
327
368
  };
328
369
  type IconName = keyof typeof legacyIconToTablerNameMap;
329
370
  declare const iconNames: IconName[];
@@ -359,6 +400,29 @@ declare const Icon: React.ForwardRefExoticComponent<Omit<React.SVGProps<SVGSVGEl
359
400
  name: IconName;
360
401
  } & React.RefAttributes<SVGSVGElement>>;
361
402
 
403
+ declare const iconButtonVariantOptions: readonly ["ghost", "subtle", "solid", "destructive"];
404
+ declare const iconButtonSizeOptions: readonly ["sm", "md", "lg"];
405
+ type IconButtonVariant = (typeof iconButtonVariantOptions)[number];
406
+ type IconButtonSize = (typeof iconButtonSizeOptions)[number];
407
+ interface IconButtonProps extends Omit<ButtonProps, "aria-label" | "children" | "leftIcon" | "rightIcon" | "size" | "variant"> {
408
+ /** Icon-only buttons must have an accessible label. */
409
+ "aria-label": string;
410
+ icon: React.ReactNode;
411
+ variant?: IconButtonVariant;
412
+ size?: IconButtonSize;
413
+ /**
414
+ * Toggle/selected state. When provided, the button exposes `aria-pressed`
415
+ * and the selected surface. Omit for plain (non-toggle) actions.
416
+ */
417
+ selected?: boolean;
418
+ }
419
+ /**
420
+ * Icon-only action button. Flat/ghost by default so it never paints an
421
+ * unwanted background on light surfaces (rails, tabs, settings, table actions),
422
+ * with a fixed square footprint (32x32 by default) for stable layouts.
423
+ */
424
+ declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
425
+
362
426
  declare const uploadKindOptions: readonly ["document", "image", "video"];
363
427
  type UploadKind = (typeof uploadKindOptions)[number];
364
428
  type InputBaseProps$1 = {
@@ -523,6 +587,20 @@ declare const PopoverTrigger: React.ForwardRefExoticComponent<PopoverPrimitive.P
523
587
  declare const PopoverAnchor: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & React.RefAttributes<HTMLDivElement>>;
524
588
  declare const PopoverPortal: React.FC<PopoverPrimitive.PopoverPortalProps>;
525
589
  declare const PopoverClose: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & React.RefAttributes<HTMLButtonElement>>;
590
+ /**
591
+ * Opt-in close button for popovers, aligned to the top-right of the content.
592
+ * Popovers never render a close by default — only mount this when the popover
593
+ * genuinely needs a dismiss affordance, so there is never a duplicated close.
594
+ */
595
+ declare const PopoverCloseButton: React.ForwardRefExoticComponent<CloseButtonProps & React.RefAttributes<HTMLButtonElement>>;
596
+ /**
597
+ * `PopoverContent` is a transient overlay surface. Per the flat visual
598
+ * contract it never uses the heavy brand shadows (`--sofya-shadow-sofya-*`).
599
+ * `--sofya-shadow-soft` is the single, official, minimal elevation used to lift
600
+ * transient surfaces (popover / dropdown / toast) off the page; visual
601
+ * separation is also reinforced by the surface border. Pass `shadow-none` via
602
+ * `className` to opt out entirely.
603
+ */
526
604
  declare const PopoverContent: React.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
527
605
  declare const PopoverTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
528
606
  declare const PopoverDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
@@ -599,11 +677,41 @@ type RadioGroupComponent = typeof RadioGroupRoot & {
599
677
  };
600
678
  declare const RadioGroup: RadioGroupComponent;
601
679
 
602
- interface RightRailActionProps extends Omit<ButtonProps, "aria-label" | "children" | "leftIcon" | "rightIcon" | "size" | "variant"> {
680
+ interface RichTextToolbarProps extends React.HTMLAttributes<HTMLDivElement> {
681
+ /** Accessible name for the toolbar. */
682
+ "aria-label"?: string;
683
+ /** Reflects whether the bound editor currently has focus. */
684
+ editorFocused?: boolean;
685
+ }
686
+ /**
687
+ * Text editor toolbar. A flat, token-based `role="toolbar"` container that
688
+ * holds standardized icon buttons. It highlights when the bound editor is
689
+ * focused (`editorFocused`) and when focus is inside the toolbar itself.
690
+ */
691
+ declare const RichTextToolbar: React.ForwardRefExoticComponent<RichTextToolbarProps & React.RefAttributes<HTMLDivElement>>;
692
+ declare const RichTextToolbarGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
693
+ declare const RichTextToolbarSeparator: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & React.RefAttributes<HTMLSpanElement>>;
694
+ interface RichTextToolbarButtonProps extends Omit<IconButtonProps, "selected" | "variant"> {
695
+ /** Whether the tool is currently applied (active/pressed). */
696
+ active?: boolean;
697
+ }
698
+ /**
699
+ * A single toolbar tool. Built on the standardized `IconButton`, so it shares
700
+ * the same flat ghost treatment, fixed size, and required `aria-label`. The
701
+ * `active` flag exposes the pressed state via `aria-pressed`.
702
+ */
703
+ declare const RichTextToolbarButton: React.ForwardRefExoticComponent<RichTextToolbarButtonProps & React.RefAttributes<HTMLButtonElement>>;
704
+
705
+ interface RightRailActionProps extends Omit<IconButtonProps, "aria-label" | "icon" | "selected" | "size" | "variant"> {
603
706
  "aria-label": string;
604
707
  active?: boolean;
605
708
  icon: React.ReactNode;
606
709
  }
710
+ /**
711
+ * Right-rail action. Flat/ghost by default so the rail never competes with
712
+ * table or content actions on light surfaces; the selected surface only
713
+ * appears when `active`.
714
+ */
607
715
  declare const RightRailAction: React.ForwardRefExoticComponent<RightRailActionProps & React.RefAttributes<HTMLButtonElement>>;
608
716
 
609
717
  declare const scrollAreaOrientationOptions: readonly ["horizontal", "vertical"];
@@ -634,6 +742,28 @@ declare const SelectSeparator: React.ForwardRefExoticComponent<Omit<SelectPrimit
634
742
 
635
743
  declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
636
744
 
745
+ interface SidebarNavItemProps extends React.HTMLAttributes<HTMLElement> {
746
+ /** Render as a different element/component (e.g. a router Link). */
747
+ as?: React.ElementType;
748
+ /** Marks the item as the current/selected destination. */
749
+ active?: boolean;
750
+ disabled?: boolean;
751
+ /** Leading icon, kept vertically aligned with the label. */
752
+ icon?: React.ReactNode;
753
+ href?: string;
754
+ }
755
+ /**
756
+ * Lateral navigation item (settings / left sidebar).
757
+ *
758
+ * The selected state pairs a light surface background with a left indicator bar
759
+ * tinted with the primary token. The indicator is absolutely positioned and is
760
+ * always reserved in the layout (only its opacity toggles), so selecting an
761
+ * item never causes layout shift, and the icon/label stay aligned across every
762
+ * state.
763
+ */
764
+ declare const SidebarNavItem: React.ForwardRefExoticComponent<SidebarNavItemProps & React.RefAttributes<HTMLElement>>;
765
+ declare const SettingsNavItem: React.ForwardRefExoticComponent<SidebarNavItemProps & React.RefAttributes<HTMLElement>>;
766
+
637
767
  interface SliderProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "defaultValue" | "max" | "min" | "onChange" | "size" | "step" | "type" | "value"> {
638
768
  defaultValue?: number;
639
769
  formatValue?: (value: number) => React.ReactNode;
@@ -665,6 +795,33 @@ type NotificationVariant = (typeof notificationVariantOptions)[number];
665
795
  type ToasterProps = ToasterProps$1;
666
796
 
667
797
  declare const Toaster: React.ForwardRefExoticComponent<ToasterProps$1 & React.RefAttributes<HTMLElement>>;
798
+ type NotifyOptions = ExternalToast & {
799
+ /** Stable key used for deduplication when no `id` is provided. */
800
+ key?: string;
801
+ };
802
+ type ToastMessage = React.ReactNode;
803
+ interface NotifyApi {
804
+ (message: ToastMessage, options?: NotifyOptions): ReturnType<typeof toast>;
805
+ success: (message: ToastMessage, options?: NotifyOptions) => ReturnType<typeof toast.success>;
806
+ error: (message: ToastMessage, options?: NotifyOptions) => ReturnType<typeof toast.error>;
807
+ warning: (message: ToastMessage, options?: NotifyOptions) => ReturnType<typeof toast.warning>;
808
+ info: (message: ToastMessage, options?: NotifyOptions) => ReturnType<typeof toast.info>;
809
+ message: (message: ToastMessage, options?: NotifyOptions) => ReturnType<typeof toast.message>;
810
+ loading: (message: ToastMessage, options?: NotifyOptions) => ReturnType<typeof toast.loading>;
811
+ dismiss: typeof toast.dismiss;
812
+ promise: typeof toast.promise;
813
+ }
814
+ /**
815
+ * Official, deduplicated notification API.
816
+ *
817
+ * Prefer `notify` over the raw `toast` export: every method here collapses
818
+ * repeated notifications about the same problem into a single toast (dedup by
819
+ * `id` → `key` → stable message hash), so calling `notify.error("Falha ao
820
+ * salvar")` twice updates the existing toast instead of stacking duplicates.
821
+ * The raw `toast` remains exported for advanced/custom cases that opt out of
822
+ * deduplication on purpose.
823
+ */
824
+ declare const notify: NotifyApi;
668
825
 
669
826
  declare const spinnerSizeOptions: readonly ["sm", "default", "lg"];
670
827
  type SpinnerSize = (typeof spinnerSizeOptions)[number];
@@ -673,6 +830,78 @@ interface SpinnerProps extends Omit<React.ComponentPropsWithoutRef<"svg">, "chil
673
830
  }
674
831
  declare const Spinner: React.ForwardRefExoticComponent<SpinnerProps & React.RefAttributes<SVGSVGElement>>;
675
832
 
833
+ declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
834
+ declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
835
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
836
+ declare const tooltipToneOptions: readonly ["default", "info", "success", "warning", "destructive"];
837
+ type TooltipTone = (typeof tooltipToneOptions)[number];
838
+ interface TooltipContentProps extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> {
839
+ tone?: TooltipTone;
840
+ }
841
+ declare const TooltipContent: React.ForwardRefExoticComponent<TooltipContentProps & React.RefAttributes<HTMLDivElement>>;
842
+ interface StatusTooltipProps {
843
+ /** Trigger element the status tooltip is anchored to. */
844
+ children: React.ReactNode;
845
+ /** Status label shown in its semantic color. */
846
+ label: React.ReactNode;
847
+ /** Semantic status driving the tooltip color. */
848
+ status?: TooltipTone;
849
+ /** Which side of the trigger the tooltip renders on. Defaults to `right`. */
850
+ side?: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>["side"];
851
+ align?: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>["align"];
852
+ sideOffset?: number;
853
+ /** Whether the status tooltip is interactive/disabled. */
854
+ disabled?: boolean;
855
+ open?: boolean;
856
+ defaultOpen?: boolean;
857
+ onOpenChange?: (open: boolean) => void;
858
+ delayDuration?: number;
859
+ className?: string;
860
+ }
861
+ /**
862
+ * StatusTooltip is a composite that anchors a tooltip to the right of its
863
+ * trigger (e.g. the right side of an encounter row in the Home sidebar) and
864
+ * renders the status label using the matching semantic color.
865
+ *
866
+ * It self-contains a `TooltipProvider` so it can be dropped in without extra
867
+ * wiring, and falls back gracefully when `disabled` is set.
868
+ */
869
+ declare const StatusTooltip: React.ForwardRefExoticComponent<StatusTooltipProps & React.RefAttributes<HTMLDivElement>>;
870
+
871
+ declare const workflowStatusOptions: readonly ["draft", "in_progress", "completed", "cancelled", "error", "warning"];
872
+ type WorkflowStatus = (typeof workflowStatusOptions)[number];
873
+ interface WorkflowStatusDescriptor {
874
+ /** Canonical status, or `null` when the input could not be resolved. */
875
+ status: WorkflowStatus | null;
876
+ tone: TooltipTone;
877
+ label: string;
878
+ }
879
+ /**
880
+ * Maps a workflow/document status (canonical key or common alias) to a tone and
881
+ * label. Unknown statuses fall back to the neutral tone with a humanized label
882
+ * (or an explicit `label` override), so consumers never crash on new statuses.
883
+ */
884
+ declare function resolveWorkflowStatus(status: WorkflowStatus | string, options?: {
885
+ label?: string;
886
+ }): WorkflowStatusDescriptor;
887
+ interface StatusIndicatorProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children"> {
888
+ status: WorkflowStatus | string;
889
+ /** Override the resolved label. */
890
+ label?: string;
891
+ /** Render the label text next to the dot. */
892
+ showLabel?: boolean;
893
+ /** Wrap in a status tooltip (anchored to the right by default). */
894
+ tooltip?: boolean;
895
+ side?: "top" | "right" | "bottom" | "left";
896
+ }
897
+ /**
898
+ * Semantic workflow/document status indicator: a tone-colored dot with an
899
+ * accessible label, and an optional status tooltip (anchored right, the default
900
+ * for list/table rows). The status text is always exposed to assistive tech via
901
+ * `aria-label`, independent of the visual tooltip.
902
+ */
903
+ declare const StatusIndicator: React.ForwardRefExoticComponent<StatusIndicatorProps & React.RefAttributes<HTMLSpanElement>>;
904
+
676
905
  declare const switchSizeOptions: readonly ["default", "sm"];
677
906
  type SwitchSize = (typeof switchSizeOptions)[number];
678
907
  interface SwitchProps extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> {
@@ -706,7 +935,10 @@ interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {
706
935
  density?: TableDensity;
707
936
  }
708
937
  declare const Table: React.ForwardRefExoticComponent<TableProps & React.RefAttributes<HTMLTableElement>>;
709
- declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
938
+ interface TableHeaderProps extends React.HTMLAttributes<HTMLTableSectionElement> {
939
+ density?: TableDensity;
940
+ }
941
+ declare const TableHeader: React.ForwardRefExoticComponent<TableHeaderProps & React.RefAttributes<HTMLTableSectionElement>>;
710
942
  declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
711
943
  declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
712
944
  interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {
@@ -738,6 +970,100 @@ interface TableActionButtonProps extends Omit<React.ComponentPropsWithoutRef<typ
738
970
  declare const TableActionButton: React.ForwardRefExoticComponent<TableActionButtonProps & React.RefAttributes<HTMLButtonElement>>;
739
971
  declare const TableActions: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
740
972
 
973
+ declare const tagVariantOptions: readonly ["neutral", "organization", "brand", "privacy", "status"];
974
+ declare const tagStatusToneOptions: readonly ["info", "success", "warning", "destructive"];
975
+ type TagVariant = (typeof tagVariantOptions)[number];
976
+ type TagStatusTone = (typeof tagStatusToneOptions)[number];
977
+ declare const tagVariants: (props?: ({
978
+ variant?: "status" | "organization" | "neutral" | "brand" | "privacy" | null | undefined;
979
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
980
+ interface TagProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof tagVariants> {
981
+ /** Status color when `variant="status"`. */
982
+ tone?: TagStatusTone;
983
+ icon?: React.ReactNode;
984
+ /**
985
+ * Truncate the label. Off by default so short/important labels (e.g.
986
+ * "Minha organização") are never clipped when there is room — only enable
987
+ * this together with a constraining width when the container is tight.
988
+ */
989
+ truncate?: boolean;
990
+ }
991
+ /**
992
+ * Compact semantic label. Variants: `neutral`, `organization`, `brand`,
993
+ * `privacy` and `status` (with a `tone`). `brand` reuses the `organization`
994
+ * primary-tinted look for generic content labels. Text is not truncated by
995
+ * default.
996
+ */
997
+ declare const Tag: React.ForwardRefExoticComponent<TagProps & React.RefAttributes<HTMLSpanElement>>;
998
+ declare const privacyLevelOptions: readonly ["private", "organization", "public"];
999
+ type PrivacyLevel = (typeof privacyLevelOptions)[number];
1000
+ interface PrivacyLabelProps extends React.HTMLAttributes<HTMLSpanElement> {
1001
+ privacy: PrivacyLevel;
1002
+ /**
1003
+ * `text` (default) renders simple inline text — for specs that ask for plain
1004
+ * text rather than a tag. `tag` renders the chip treatment.
1005
+ */
1006
+ appearance?: "text" | "tag";
1007
+ label?: React.ReactNode;
1008
+ icon?: React.ReactNode;
1009
+ }
1010
+ /**
1011
+ * Privacy indicator. Defaults to plain text so it never looks like a tag unless
1012
+ * the spec calls for the chip (`appearance="tag"`).
1013
+ */
1014
+ declare const PrivacyLabel: React.ForwardRefExoticComponent<PrivacyLabelProps & React.RefAttributes<HTMLSpanElement>>;
1015
+
1016
+ declare const templateCardLayoutOptions: readonly ["card", "list"];
1017
+ type TemplateCardLayout = (typeof templateCardLayoutOptions)[number];
1018
+ declare const templateCardFavoriteDisplayOptions: readonly ["action", "inline"];
1019
+ type TemplateCardFavoriteDisplay = (typeof templateCardFavoriteDisplayOptions)[number];
1020
+ declare const templateCardMetaPlacementOptions: readonly ["block", "inline"];
1021
+ type TemplateCardMetaPlacement = (typeof templateCardMetaPlacementOptions)[number];
1022
+ interface TemplateCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
1023
+ title: React.ReactNode;
1024
+ description?: React.ReactNode;
1025
+ /** Secondary metadata row (tags, author, updated-at…). */
1026
+ meta?: React.ReactNode;
1027
+ layout?: TemplateCardLayout;
1028
+ selected?: boolean;
1029
+ favorited?: boolean;
1030
+ onToggleFavorite?: () => void;
1031
+ favoriteLabel?: string;
1032
+ /** Overflow menu trigger (e.g. a Dropdown). Rendered next to favorite. */
1033
+ overflow?: React.ReactNode;
1034
+ /**
1035
+ * Renders a leading selection checkbox and makes the whole card a single
1036
+ * toggle target. Use for multi-select pickers.
1037
+ */
1038
+ selectable?: boolean;
1039
+ /** Fired when the row (or its checkbox) is toggled. Requires `selectable`. */
1040
+ onSelectedChange?: (selected: boolean) => void;
1041
+ /** Accessible name for the leading checkbox. Default: "Selecionar". */
1042
+ selectLabel?: string;
1043
+ /**
1044
+ * Renders the favorite as a static inline star *before the title* instead of
1045
+ * the trailing IconButton toggle. The star is filled when `favorited` and
1046
+ * hidden otherwise. Use when favorite is a read-only indicator, not an action.
1047
+ */
1048
+ favoriteDisplay?: TemplateCardFavoriteDisplay;
1049
+ /**
1050
+ * Renders `meta` inline on the title row (right after the title) instead of
1051
+ * the default block below it. Use for a single short tag.
1052
+ */
1053
+ metaPlacement?: TemplateCardMetaPlacement;
1054
+ }
1055
+ /**
1056
+ * Template card / list item.
1057
+ *
1058
+ * - Title uses a semibold typography treatment.
1059
+ * - In the list layout the description uses a smaller type ramp.
1060
+ * - The favorite and overflow actions sit in a tight, tokenized cluster so they
1061
+ * never drift apart, and the action column is `shrink-0` so long titles wrap
1062
+ * instead of colliding with the actions.
1063
+ */
1064
+ declare const TemplateCard: React.ForwardRefExoticComponent<TemplateCardProps & React.RefAttributes<HTMLDivElement>>;
1065
+ declare const TemplateListItem: React.ForwardRefExoticComponent<Omit<TemplateCardProps, "layout"> & React.RefAttributes<HTMLDivElement>>;
1066
+
741
1067
  interface TabsItem {
742
1068
  value: string;
743
1069
  label: React.ReactNode;
@@ -772,9 +1098,11 @@ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.Re
772
1098
  type TextSize = SofyaTextStyleName;
773
1099
  type TextWeight = React.CSSProperties["fontWeight"];
774
1100
  type TextVariant = "default" | "gradient" | "shiny" | "split";
1101
+ type TextTone = "default" | "soft" | "subtle";
775
1102
  type TextSplitType = "chars" | "words" | "words, chars";
776
1103
  declare const textSizeOptions: readonly ["display-xl", "display-lg", "heading-xl", "heading-lg", "heading-md", "h1", "h2", "h3", "h4", "h5", "encounter-title", "title-md", "title-sm", "body-lg", "body-md", "body-sm", "body", "label-md", "section-label", "eyebrow-md", "overline-md", "sidebar-title", "sidebar-title-regular", "sidebar-title-strong", "sidebar-label", "sidebar-label-strong", "sidebar-body", "sidebar-tag", "encounter-chip", "encounter-history", "caption", "eyebrow", "tiny", "extra-tiny", "code-sm"];
777
1104
  declare const textVariantOptions: readonly ["default", "gradient", "shiny", "split"];
1105
+ declare const textToneOptions: readonly ["default", "soft", "subtle"];
778
1106
  declare const textSplitTypeOptions: readonly ["chars", "words", "words, chars"];
779
1107
  interface TextProps extends React.HTMLAttributes<HTMLElement> {
780
1108
  as?: React.ElementType;
@@ -784,13 +1112,14 @@ interface TextProps extends React.HTMLAttributes<HTMLElement> {
784
1112
  splitRootMargin?: string;
785
1113
  splitThreshold?: number;
786
1114
  splitType?: TextSplitType;
1115
+ tone?: TextTone;
787
1116
  variant?: TextVariant;
788
1117
  weight?: TextWeight;
789
1118
  }
790
1119
  declare function isTextContent(children: React.ReactNode): children is string | number;
791
- type RenderTextContentOptions = Pick<TextProps, "as" | "className" | "size" | "style" | "variant" | "weight">;
1120
+ type RenderTextContentOptions = Pick<TextProps, "as" | "className" | "size" | "style" | "tone" | "variant" | "weight">;
792
1121
  declare const Text: React.ForwardRefExoticComponent<TextProps & React.RefAttributes<HTMLElement>>;
793
- declare function renderTextContent(children: React.ReactNode, { as, className, size, style, variant, weight }?: RenderTextContentOptions): bigint | boolean | react_jsx_runtime.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
1122
+ declare function renderTextContent(children: React.ReactNode, { as, className, size, style, tone, variant, weight }?: RenderTextContentOptions): bigint | boolean | react_jsx_runtime.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
794
1123
 
795
1124
  interface ToggleProps extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> {
796
1125
  containerClassName?: string;
@@ -801,15 +1130,10 @@ interface ToggleProps extends React.ComponentPropsWithoutRef<typeof SwitchPrimit
801
1130
  }
802
1131
  declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<HTMLButtonElement>>;
803
1132
 
804
- declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
805
- declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
806
- declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
807
- declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
808
-
809
1133
  interface SofyaProviderProps extends React.HTMLAttributes<HTMLDivElement> {
810
1134
  preset?: ThemePresetName | SofyaTheme;
811
1135
  overrides?: DeepPartial<SofyaTheme>;
812
1136
  }
813
1137
  declare function SofyaProvider({ preset, overrides, className, style, children, ...props }: SofyaProviderProps): react_jsx_runtime.JSX.Element;
814
1138
 
815
- export { Accordion, type AccordionAppearance, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDescription, type AlertProps, type AlertSize, AlertTitle, type AlertTone, Avatar, type AvatarProps, Badge, type BadgeAlert, type BadgePillTone, type BadgeProps, type BadgeVariant, Button, type ButtonLanguageLocale, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, Cluster, type ClusterProps, Container, type ContainerProps, Dialog, DialogBody, DialogCancel, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DocumentCard, type DocumentCardProps, Dropdown, type DropdownAppearance, type DropdownItem, type DropdownProps, DropdownSearch, type DropdownSearchOption, type DropdownSearchProps, type DropdownSubItem, type DropdownTriggerSize, type DropdownVariant, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyMediaProps, type EmptyProps, EmptyTitle, Icon, type IconColor, type IconName, type IconProps, type IconSize, Inline, type InlineProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, type InputVariant, Label, Link, type LinkProps, Logo, type LogoProps, type LogoSize, type LogoVariant, type NotificationVariant, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverDescription, PopoverPortal, PopoverTitle, PopoverTrigger, Progress, type ProgressProps, type ProgressSize, ProseDialogBody, ProseDialogContent, type ProseDialogContentProps, ProseDialogDescription, ProseDialogHeader, ProseDialogTitle, RadioGroup, RadioGroupItem, type RadioGroupItemProps, RadioGroupOption, RadioGroupOptionAvatar, type RadioGroupOptionAvatarProps, RadioGroupOptionDescription, type RadioGroupOptionDescriptionProps, RadioGroupOptionIndicator, type RadioGroupOptionIndicatorProps, RadioGroupOptionLabel, type RadioGroupOptionLabelProps, type RadioGroupOptionProps, type RadioGroupOrientation, type RadioGroupProps, type RadioGroupVariant, RightRailAction, type RightRailActionProps, ScrollArea, ScrollAreaCorner, type ScrollAreaOrientation, ScrollAreaScrollbar, type ScrollAreaScrollbarProps, ScrollAreaViewport, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, type SelectSize, SelectTrigger, SelectValue, Separator, Skeleton, type SkeletonProps, Slider, type SliderProps, SofyaProvider, type SofyaProviderProps, Spinner, type SpinnerProps, type SpinnerSize, Stack, type StackProps, Surface, type SurfaceVariant, Switch, type SwitchProps, type SwitchSize, Table, TableActionButton, type TableActionButtonProps, TableActions, TableBody, TableCaption, TableCell, TableCellDescription, type TableCellDescriptionProps, type TableCellProps, TableCellTitle, type TableCellTitleProps, type TableDensity, TableFooter, TableHead, TableHeader, type TableProps, TableRow, type TableRowProps, TableStatusBadge, type TableStatusBadgeProps, type TableTextSize, Tabs, type TabsItem, type TabsProps, Text, type TextProps, type TextSize, type TextSplitType, type TextVariant, type TextWeight, Textarea, type TextareaProps, Toaster, type ToasterProps, Toggle, type ToggleProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, type UploadKind, accordionAppearanceOptions, alertSizeOptions, alertToneOptions, avatarSizeOptions, avatarVariants, badgeAlertOptions, badgeAlertVariants, badgePillToneOptions, badgePillVariants, badgeVariantOptions, badgeVariants, buttonLanguageLocaleOptions, buttonSizeOptions, buttonVariantOptions, buttonVariants, cardVariants, dropdownAppearanceOptions, dropdownLanguageItems, dropdownTriggerSizeOptions, dropdownVariantOptions, emptyMediaVariantOptions, iconColorOptions, iconNames, iconSizeMap, iconSizeOptions, inputVariantOptions, isTextContent, logoSizeOptions, logoVariants, notificationVariantOptions, paginationLinkVariants, progressSizeOptions, radioGroupOrientationOptions, radioGroupVariantOptions, renderTextContent, scrollAreaOrientationOptions, selectSizeOptions, spinnerSizeOptions, surfaceVariantOptions, switchSizeOptions, tableActionToneOptions, tableCellVariantOptions, tableDensityOptions, tableStatusToneOptions, textSizeOptions, textSplitTypeOptions, textVariantOptions, uploadKindOptions };
1139
+ export { Accordion, type AccordionAppearance, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Alert, AlertDescription, type AlertProps, type AlertSize, AlertTitle, type AlertTone, Avatar, type AvatarProps, Badge, type BadgeAlert, type BadgePillTone, type BadgeProps, type BadgeVariant, Button, type ButtonLanguageLocale, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, CloseButton, type CloseButtonProps, Cluster, type ClusterProps, Container, type ContainerProps, Dialog, DialogBody, DialogCancel, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DocumentCard, type DocumentCardProps, Dropdown, type DropdownAppearance, type DropdownItem, type DropdownProps, DropdownSearch, type DropdownSearchOption, type DropdownSearchProps, type DropdownSubItem, type DropdownTriggerSize, type DropdownVariant, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyMediaProps, type EmptyProps, EmptyTitle, Icon, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconColor, type IconName, type IconProps, type IconSize, Inline, type InlineProps, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, type InputVariant, Label, Link, type LinkProps, Logo, type LogoProps, type LogoSize, type LogoVariant, type NotificationVariant, type NotifyOptions, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverClose, PopoverCloseButton, PopoverContent, PopoverDescription, PopoverPortal, PopoverTitle, PopoverTrigger, PrivacyLabel, type PrivacyLabelProps, type PrivacyLevel, Progress, type ProgressProps, type ProgressSize, ProseDialogBody, ProseDialogContent, type ProseDialogContentProps, ProseDialogDescription, ProseDialogHeader, ProseDialogTitle, RadioGroup, RadioGroupItem, type RadioGroupItemProps, RadioGroupOption, RadioGroupOptionAvatar, type RadioGroupOptionAvatarProps, RadioGroupOptionDescription, type RadioGroupOptionDescriptionProps, RadioGroupOptionIndicator, type RadioGroupOptionIndicatorProps, RadioGroupOptionLabel, type RadioGroupOptionLabelProps, type RadioGroupOptionProps, type RadioGroupOrientation, type RadioGroupProps, type RadioGroupVariant, RichTextToolbar, RichTextToolbarButton, type RichTextToolbarButtonProps, RichTextToolbarGroup, type RichTextToolbarProps, RichTextToolbarSeparator, RightRailAction, type RightRailActionProps, ScrollArea, ScrollAreaCorner, type ScrollAreaOrientation, ScrollAreaScrollbar, type ScrollAreaScrollbarProps, ScrollAreaViewport, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, type SelectSize, SelectTrigger, SelectValue, Separator, SettingsNavItem, SidebarNavItem, type SidebarNavItemProps, Skeleton, type SkeletonProps, Slider, type SliderProps, SofyaProvider, type SofyaProviderProps, Spinner, type SpinnerProps, type SpinnerSize, Stack, type StackProps, StatusIndicator, type StatusIndicatorProps, StatusTooltip, type StatusTooltipProps, Surface, type SurfaceVariant, Switch, type SwitchProps, type SwitchSize, Table, TableActionButton, type TableActionButtonProps, TableActions, TableBody, TableCaption, TableCell, TableCellDescription, type TableCellDescriptionProps, type TableCellProps, TableCellTitle, type TableCellTitleProps, type TableDensity, TableFooter, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, TableStatusBadge, type TableStatusBadgeProps, type TableTextSize, Tabs, type TabsItem, type TabsProps, Tag, type TagProps, type TagStatusTone, type TagVariant, TemplateCard, type TemplateCardFavoriteDisplay, type TemplateCardLayout, type TemplateCardMetaPlacement, type TemplateCardProps, TemplateListItem, Text, type TextProps, type TextSize, type TextSplitType, type TextTone, type TextVariant, type TextWeight, Textarea, type TextareaProps, Toaster, type ToasterProps, Toggle, type ToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, type TooltipTone, TooltipTrigger, type UploadKind, type WorkflowStatus, type WorkflowStatusDescriptor, accordionAppearanceOptions, alertSizeOptions, alertToneOptions, avatarSizeOptions, avatarVariants, badgeAlertOptions, badgeAlertVariants, badgePillToneOptions, badgePillVariants, badgeVariantOptions, badgeVariants, buttonLanguageLocaleOptions, buttonSizeOptions, buttonVariantOptions, buttonVariants, cardVariants, dropdownAppearanceOptions, dropdownLanguageItems, dropdownTriggerSizeOptions, dropdownVariantOptions, emptyMediaVariantOptions, iconButtonSizeOptions, iconButtonVariantOptions, iconColorOptions, iconNames, iconSizeMap, iconSizeOptions, inputVariantOptions, isTextContent, logoSizeOptions, logoVariants, notificationVariantOptions, notify, paginationLinkVariants, privacyLevelOptions, progressSizeOptions, radioGroupOrientationOptions, radioGroupVariantOptions, renderTextContent, resolveWorkflowStatus, scrollAreaOrientationOptions, selectSizeOptions, spinnerSizeOptions, surfaceVariantOptions, switchSizeOptions, tableActionToneOptions, tableCellVariantOptions, tableDensityOptions, tableStatusToneOptions, tagStatusToneOptions, tagVariantOptions, templateCardFavoriteDisplayOptions, templateCardLayoutOptions, templateCardMetaPlacementOptions, textSizeOptions, textSplitTypeOptions, textToneOptions, textVariantOptions, tooltipToneOptions, uploadKindOptions, workflowStatusOptions };