@sofya-ds/react 1.1.16 → 1.3.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
@@ -133,6 +133,7 @@ __export(index_exports, {
133
133
  TooltipContent: () => TooltipContent,
134
134
  TooltipProvider: () => TooltipProvider,
135
135
  TooltipTrigger: () => TooltipTrigger,
136
+ accordionAppearanceOptions: () => accordionAppearanceOptions,
136
137
  alertSizeOptions: () => alertSizeOptions,
137
138
  alertToneOptions: () => alertToneOptions,
138
139
  avatarSizeOptions: () => avatarSizeOptions,
@@ -151,7 +152,9 @@ __export(index_exports, {
151
152
  cardVariants: () => cardVariants,
152
153
  createWhitelabelTheme: () => import_tokens2.createWhitelabelTheme,
153
154
  defaultTheme: () => import_tokens2.defaultTheme,
155
+ dropdownAppearanceOptions: () => dropdownAppearanceOptions,
154
156
  dropdownLanguageItems: () => dropdownLanguageItems,
157
+ dropdownTriggerSizeOptions: () => dropdownTriggerSizeOptions,
155
158
  dropdownVariantOptions: () => dropdownVariantOptions,
156
159
  emptyMediaVariantOptions: () => emptyMediaVariantOptions,
157
160
  gradientToCss: () => import_tokens2.gradientToCss,
@@ -181,6 +184,7 @@ __export(index_exports, {
181
184
  sofyaSurfaceNames: () => import_tokens2.sofyaSurfaceNames,
182
185
  sofyaTextStyleNames: () => import_tokens2.sofyaTextStyleNames,
183
186
  spinnerSizeOptions: () => spinnerSizeOptions,
187
+ switchSizeOptions: () => switchSizeOptions,
184
188
  tableActionToneOptions: () => tableActionToneOptions,
185
189
  tableCellVariantOptions: () => tableCellVariantOptions,
186
190
  tableStatusToneOptions: () => tableStatusToneOptions,
@@ -340,6 +344,8 @@ var tablerIconRegistry = {
340
344
  IconTrashOff: import_icons_react.IconTrashOff,
341
345
  IconTrashX: import_icons_react.IconTrashX,
342
346
  IconChevronRight: import_icons_react.IconChevronRight,
347
+ IconLogout: import_icons_react.IconLogout,
348
+ IconSettings: import_icons_react.IconSettings,
343
349
  IconX: import_icons_react.IconX
344
350
  };
345
351
  var tablerIconNames = Object.keys(tablerIconRegistry).sort(
@@ -383,6 +389,7 @@ var legacyIconToTablerNameMap = {
383
389
  "caret-up": "IconChevronUp",
384
390
  "caret-left": "IconChevronLeft",
385
391
  "caret-right": "IconChevronRight",
392
+ "logout": "IconLogout",
386
393
  "users-group": "IconUsersGroup",
387
394
  "archive": "IconArchive",
388
395
  "folder": "IconFolder",
@@ -392,7 +399,8 @@ var legacyIconToTablerNameMap = {
392
399
  "trash-x": "IconTrashX",
393
400
  "delete": "IconTrash",
394
401
  "remove": "IconTrashX",
395
- "lixeira": "IconTrash"
402
+ "lixeira": "IconTrash",
403
+ "settings": "IconSettings"
396
404
  };
397
405
  var iconNames = Object.keys(legacyIconToTablerNameMap);
398
406
  var iconRegistry = Object.fromEntries(
@@ -753,67 +761,154 @@ function renderTextContent(children, { as, className, size = "body", style, vari
753
761
 
754
762
  // src/components/accordion.tsx
755
763
  var import_jsx_runtime4 = require("react/jsx-runtime");
756
- var Accordion = AccordionPrimitive.Root;
757
- var AccordionItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
758
- AccordionPrimitive.Item,
764
+ var accordionAppearanceOptions = ["default", "card"];
765
+ var AccordionAppearanceContext = React4.createContext("default");
766
+ var accordionItemClasses = {
767
+ default: "group/accordion-item border-b border-border bg-transparent text-foreground",
768
+ card: "group/accordion-item bg-transparent text-foreground"
769
+ };
770
+ var accordionTriggerClasses = {
771
+ default: "sofya-accordion-trigger flex flex-1 items-center justify-between gap-4 py-4 text-left [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-foreground transition-colors duration-sofya ease-sofya focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",
772
+ card: "sofya-accordion-trigger flex w-full items-center justify-between gap-4 rounded-[16px] border border-secondary bg-[color:var(--sofya-background)] px-6 py-4 text-left text-foreground transition-[background-color,border-color,box-shadow,color] duration-sofya ease-sofya hover:border-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0 disabled:pointer-events-none disabled:opacity-50"
773
+ };
774
+ var accordionContentClasses = {
775
+ default: "sofya-accordion-content overflow-hidden text-sm text-muted-foreground",
776
+ card: "sofya-accordion-content overflow-hidden text-foreground"
777
+ };
778
+ var accordionContentBodyClasses = {
779
+ default: "pb-4 pr-10",
780
+ card: "flex flex-col gap-4 rounded-[8px] border border-border bg-[color:var(--sofya-background)] p-6"
781
+ };
782
+ function useAccordionAppearance() {
783
+ return React4.useContext(AccordionAppearanceContext);
784
+ }
785
+ var Accordion = React4.forwardRef(({ appearance = "default", className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AccordionAppearanceContext.Provider, { value: appearance, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
786
+ AccordionPrimitive.Root,
759
787
  {
760
788
  ref,
761
- className: cn(
762
- "group/accordion-item border-b border-border bg-transparent text-foreground",
763
- className
764
- ),
789
+ "data-appearance": appearance === "card" ? appearance : void 0,
790
+ className: cn(appearance === "card" && "flex flex-col gap-4", className),
765
791
  ...props
766
792
  }
767
- ));
793
+ ) }));
794
+ Accordion.displayName = AccordionPrimitive.Root.displayName;
795
+ var AccordionItem = React4.forwardRef(({ className, ...props }, ref) => {
796
+ const appearance = useAccordionAppearance();
797
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
798
+ AccordionPrimitive.Item,
799
+ {
800
+ ref,
801
+ "data-appearance": appearance === "card" ? appearance : void 0,
802
+ className: cn(accordionItemClasses[appearance], className),
803
+ ...props
804
+ }
805
+ );
806
+ });
768
807
  AccordionItem.displayName = AccordionPrimitive.Item.displayName;
769
- var AccordionTrigger = React4.forwardRef(({ className, children, indicator, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
770
- AccordionPrimitive.Trigger,
771
- {
772
- ref,
773
- className: cn(
774
- "sofya-accordion-trigger flex flex-1 items-center justify-between gap-4 py-4 text-left [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-foreground transition-colors duration-sofya ease-sofya focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",
775
- className
776
- ),
777
- ...props,
778
- children: [
779
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "min-w-0 flex-1", children: renderTextContent(children, {
780
- as: "span",
781
- className: "block text-foreground",
782
- size: "body",
783
- style: {
784
- color: "inherit",
785
- fontFamily: "inherit",
786
- fontSize: "inherit",
787
- fontWeight: "inherit",
788
- letterSpacing: "inherit",
789
- lineHeight: "inherit"
790
- }
791
- }) }),
792
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
793
- "span",
808
+ var AccordionTrigger = React4.forwardRef(
809
+ ({
810
+ className,
811
+ children,
812
+ description,
813
+ hideIndicator,
814
+ indicator,
815
+ leading,
816
+ ...props
817
+ }, ref) => {
818
+ const appearance = useAccordionAppearance();
819
+ const hasDescription = description !== void 0 && description !== null;
820
+ const resolvedHideIndicator = hideIndicator ?? appearance === "card";
821
+ const indicatorNode = indicator !== void 0 ? indicator : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icon, { name: "caret-down", size: 12 });
822
+ const shouldRenderIndicator = !resolvedHideIndicator && indicatorNode != null;
823
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
824
+ AccordionPrimitive.Header,
825
+ {
826
+ "data-appearance": appearance === "card" ? appearance : void 0,
827
+ className: cn("flex", appearance === "card" && "w-full"),
828
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
829
+ AccordionPrimitive.Trigger,
830
+ {
831
+ ref,
832
+ "data-appearance": appearance === "card" ? appearance : void 0,
833
+ className: cn(accordionTriggerClasses[appearance], className),
834
+ ...props,
835
+ children: [
836
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { className: cn("min-w-0 flex-1", leading && "flex items-center gap-4"), children: [
837
+ leading ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "flex shrink-0 items-center justify-center", children: leading }) : null,
838
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
839
+ "span",
840
+ {
841
+ className: cn(
842
+ "min-w-0 flex-1",
843
+ (appearance === "card" || hasDescription) && "flex flex-col gap-2"
844
+ ),
845
+ children: [
846
+ renderTextContent(children, {
847
+ as: "span",
848
+ className: "block min-w-0 text-foreground",
849
+ size: appearance === "card" ? "h5" : "body",
850
+ style: appearance === "card" ? void 0 : {
851
+ color: "inherit",
852
+ fontFamily: "inherit",
853
+ fontSize: "inherit",
854
+ fontWeight: "inherit",
855
+ letterSpacing: "inherit",
856
+ lineHeight: "inherit"
857
+ }
858
+ }),
859
+ hasDescription ? renderTextContent(description, {
860
+ as: "span",
861
+ className: "block min-w-0 text-muted-foreground",
862
+ size: "body"
863
+ }) : null
864
+ ]
865
+ }
866
+ )
867
+ ] }),
868
+ shouldRenderIndicator ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
869
+ "span",
870
+ {
871
+ "aria-hidden": "true",
872
+ className: cn(
873
+ "sofya-accordion-indicator flex h-5 w-5 shrink-0 items-center justify-center text-muted-foreground transition-transform duration-sofya ease-sofya",
874
+ appearance === "card" && "text-secondary"
875
+ ),
876
+ children: indicatorNode
877
+ }
878
+ ) : null
879
+ ]
880
+ }
881
+ )
882
+ }
883
+ );
884
+ }
885
+ );
886
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
887
+ var AccordionContent = React4.forwardRef(({ className, children, contentClassName, ...props }, ref) => {
888
+ const appearance = useAccordionAppearance();
889
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
890
+ AccordionPrimitive.Content,
891
+ {
892
+ ref,
893
+ "data-appearance": appearance === "card" ? appearance : void 0,
894
+ className: cn(accordionContentClasses[appearance], className),
895
+ ...props,
896
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
897
+ "div",
794
898
  {
795
- "aria-hidden": "true",
796
899
  className: cn(
797
- "sofya-accordion-indicator flex h-5 w-5 shrink-0 items-center justify-center text-muted-foreground transition-transform duration-sofya ease-sofya"
900
+ "sofya-accordion-content-body",
901
+ accordionContentBodyClasses[appearance],
902
+ contentClassName
798
903
  ),
799
- children: indicator ?? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icon, { name: "caret-down", size: 12 })
904
+ children: renderTextContent(children, {
905
+ className: appearance === "card" ? "text-foreground" : "text-muted-foreground"
906
+ })
800
907
  }
801
908
  )
802
- ]
803
- }
804
- ) }));
805
- AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
806
- var AccordionContent = React4.forwardRef(({ className, children, contentClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
807
- AccordionPrimitive.Content,
808
- {
809
- ref,
810
- className: cn("sofya-accordion-content overflow-hidden text-sm text-muted-foreground", className),
811
- ...props,
812
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: cn("pb-4 pr-10", contentClassName), children: renderTextContent(children, {
813
- className: "text-muted-foreground"
814
- }) })
815
- }
816
- ));
909
+ }
910
+ );
911
+ });
817
912
  AccordionContent.displayName = AccordionPrimitive.Content.displayName;
818
913
 
819
914
  // src/components/alert.tsx
@@ -1865,22 +1960,51 @@ var dropdownVariantOptions = [
1865
1960
  "language",
1866
1961
  "selected"
1867
1962
  ];
1963
+ var dropdownAppearanceOptions = ["panel", "card"];
1964
+ var dropdownTriggerSizeOptions = ["default", "sm", "lg"];
1868
1965
  var dropdownLanguageItems = [
1869
1966
  { value: "en-US", label: "English", languageLocale: "en-US" },
1870
1967
  { value: "pt-BR", label: "Portuguese", languageLocale: "pt-BR" },
1871
1968
  { value: "es-ES", label: "Spanish", languageLocale: "es-ES" }
1872
1969
  ];
1873
- var dropdownTriggerClasses = {
1874
- card: "h-12 rounded-[20px] px-6 py-2 text-primary",
1875
- panel: "h-12 rounded-[10px] px-6 py-2 text-foreground",
1970
+ var dropdownTriggerToneClasses = {
1971
+ card: "text-primary",
1972
+ panel: "text-foreground",
1876
1973
  language: "",
1877
- selected: "h-10 w-full rounded-[10px] border-[color:var(--sofya-border-strong)] px-4 py-2 [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)]"
1974
+ selected: "w-full border-[color:var(--sofya-border-strong)] [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] [font-weight:var(--sofya-text-body-font-weight)] leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)]"
1975
+ };
1976
+ var dropdownTriggerSizeClasses = {
1977
+ regular: {
1978
+ default: "h-12 px-6 py-2",
1979
+ sm: "h-10 px-4 py-2",
1980
+ lg: "h-14 px-8 py-4"
1981
+ },
1982
+ selected: {
1983
+ default: "h-10 px-4 py-2",
1984
+ sm: "h-9 px-2 py-2",
1985
+ lg: "h-12 px-6 py-2"
1986
+ },
1987
+ language: {
1988
+ default: "h-[38px] w-[38px] p-0",
1989
+ sm: "h-8 w-8 p-0",
1990
+ lg: "h-11 w-11 p-0"
1991
+ }
1992
+ };
1993
+ var dropdownAppearanceClasses = {
1994
+ panel: {
1995
+ content: "rounded-[10px]",
1996
+ trigger: "rounded-[10px]"
1997
+ },
1998
+ card: {
1999
+ content: "rounded-[20px]",
2000
+ trigger: "rounded-[20px]"
2001
+ }
1878
2002
  };
1879
- var dropdownContentClasses = {
1880
- card: "rounded-[20px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
1881
- panel: "rounded-[10px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
1882
- language: "w-[224px] min-w-[224px] rounded-[10px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
1883
- selected: "w-[var(--radix-dropdown-menu-trigger-width)] min-w-[var(--radix-dropdown-menu-trigger-width)] rounded-[10px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]"
2003
+ var dropdownContentBaseClasses = {
2004
+ card: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
2005
+ panel: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
2006
+ language: "w-[224px] min-w-[224px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
2007
+ selected: "w-[var(--radix-dropdown-menu-trigger-width)] min-w-[var(--radix-dropdown-menu-trigger-width)] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]"
1884
2008
  };
1885
2009
  var dropdownItemClasses = {
1886
2010
  card: "text-foreground",
@@ -1900,6 +2024,24 @@ function resolveItemLanguageLocale(item) {
1900
2024
  }
1901
2025
  return isButtonLanguageLocale(item.value) ? item.value : void 0;
1902
2026
  }
2027
+ function resolveDropdownAppearance({
2028
+ appearance,
2029
+ variant
2030
+ }) {
2031
+ if (appearance) {
2032
+ return appearance;
2033
+ }
2034
+ return variant === "card" ? "card" : "panel";
2035
+ }
2036
+ function resolveDropdownTriggerSizeFamily(variant) {
2037
+ if (variant === "language") {
2038
+ return "language";
2039
+ }
2040
+ if (variant === "selected") {
2041
+ return "selected";
2042
+ }
2043
+ return "regular";
2044
+ }
1903
2045
  function DefaultDropdownTriggerIcon({ variant }) {
1904
2046
  if (variant === "selected") {
1905
2047
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
@@ -1931,6 +2073,7 @@ function LanguageFlagIcon({ locale }) {
1931
2073
  }
1932
2074
  function Dropdown({
1933
2075
  align = "start",
2076
+ appearance,
1934
2077
  contentClassName,
1935
2078
  defaultOpen,
1936
2079
  defaultValue,
@@ -1945,11 +2088,14 @@ function Dropdown({
1945
2088
  sideOffset = 8,
1946
2089
  triggerClassName,
1947
2090
  triggerIcon,
2091
+ triggerSize = "default",
1948
2092
  value,
1949
2093
  variant = "card"
1950
2094
  }) {
1951
2095
  const isLanguageVariant = variant === "language";
1952
2096
  const isSelectedVariant = variant === "selected";
2097
+ const resolvedAppearance = resolveDropdownAppearance({ appearance, variant });
2098
+ const triggerSizeFamily = resolveDropdownTriggerSizeFamily(variant);
1953
2099
  const usesDefaultListStyle = !isLanguageVariant;
1954
2100
  const resolvedItems = React12.useMemo(
1955
2101
  () => isLanguageVariant ? items && items.length > 0 ? items : dropdownLanguageItems : items ?? [],
@@ -1999,9 +2145,13 @@ function Dropdown({
1999
2145
  type: "button",
2000
2146
  variant: isLanguageVariant ? "language" : "dropdown",
2001
2147
  languageLocale: selectedLanguageLocale,
2148
+ "data-appearance": resolvedAppearance,
2149
+ "data-trigger-size": triggerSize,
2002
2150
  className: cn(
2003
2151
  "min-w-0",
2004
- isLanguageVariant ? "h-[38px] w-[38px] rounded-[10px] p-0" : dropdownTriggerClasses[variant],
2152
+ dropdownTriggerToneClasses[variant],
2153
+ dropdownTriggerSizeClasses[triggerSizeFamily][triggerSize],
2154
+ dropdownAppearanceClasses[resolvedAppearance].trigger,
2005
2155
  selectedTriggerToneClassName,
2006
2156
  triggerClassName
2007
2157
  ),
@@ -2018,9 +2168,11 @@ function Dropdown({
2018
2168
  {
2019
2169
  align,
2020
2170
  sideOffset,
2171
+ "data-appearance": resolvedAppearance,
2021
2172
  className: cn(
2022
2173
  "sofya-dropdown-content z-50 w-auto min-w-[var(--radix-dropdown-menu-trigger-width)] border bg-card p-2 outline-none",
2023
- dropdownContentClasses[variant],
2174
+ dropdownContentBaseClasses[variant],
2175
+ dropdownAppearanceClasses[resolvedAppearance].content,
2024
2176
  contentClassName
2025
2177
  ),
2026
2178
  children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
@@ -4384,12 +4536,22 @@ Spinner.displayName = "Spinner";
4384
4536
  var React31 = __toESM(require("react"), 1);
4385
4537
  var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
4386
4538
  var import_jsx_runtime33 = require("react/jsx-runtime");
4387
- var Switch = React31.forwardRef(({ className, ...props }, ref) => {
4539
+ var switchSizeOptions = ["default", "sm"];
4540
+ var switchRootSizeClasses = {
4541
+ default: "h-6 w-11",
4542
+ sm: "h-5 w-9"
4543
+ };
4544
+ var switchThumbSizeClasses = {
4545
+ default: "h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0",
4546
+ sm: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
4547
+ };
4548
+ var Switch = React31.forwardRef(({ className, size = "default", ...props }, ref) => {
4388
4549
  return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4389
4550
  SwitchPrimitives.Root,
4390
4551
  {
4391
4552
  className: cn(
4392
- "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors duration-sofya ease-sofya focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted",
4553
+ "peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors duration-sofya ease-sofya focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted",
4554
+ switchRootSizeClasses[size],
4393
4555
  className
4394
4556
  ),
4395
4557
  ...props,
@@ -4397,7 +4559,10 @@ var Switch = React31.forwardRef(({ className, ...props }, ref) => {
4397
4559
  children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4398
4560
  SwitchPrimitives.Thumb,
4399
4561
  {
4400
- className: "pointer-events-none block h-5 w-5 rounded-full bg-background shadow-sm ring-0 transition-transform duration-sofya ease-sofya data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
4562
+ className: cn(
4563
+ "pointer-events-none block rounded-full bg-background shadow-sm ring-0 transition-transform duration-sofya ease-sofya",
4564
+ switchThumbSizeClasses[size]
4565
+ )
4401
4566
  }
4402
4567
  )
4403
4568
  }
@@ -5021,6 +5186,7 @@ var import_tokens2 = require("@sofya-ds/tokens");
5021
5186
  TooltipContent,
5022
5187
  TooltipProvider,
5023
5188
  TooltipTrigger,
5189
+ accordionAppearanceOptions,
5024
5190
  alertSizeOptions,
5025
5191
  alertToneOptions,
5026
5192
  avatarSizeOptions,
@@ -5039,7 +5205,9 @@ var import_tokens2 = require("@sofya-ds/tokens");
5039
5205
  cardVariants,
5040
5206
  createWhitelabelTheme,
5041
5207
  defaultTheme,
5208
+ dropdownAppearanceOptions,
5042
5209
  dropdownLanguageItems,
5210
+ dropdownTriggerSizeOptions,
5043
5211
  dropdownVariantOptions,
5044
5212
  emptyMediaVariantOptions,
5045
5213
  gradientToCss,
@@ -5069,6 +5237,7 @@ var import_tokens2 = require("@sofya-ds/tokens");
5069
5237
  sofyaSurfaceNames,
5070
5238
  sofyaTextStyleNames,
5071
5239
  spinnerSizeOptions,
5240
+ switchSizeOptions,
5072
5241
  tableActionToneOptions,
5073
5242
  tableCellVariantOptions,
5074
5243
  tableStatusToneOptions,