@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.js CHANGED
@@ -142,6 +142,8 @@ import {
142
142
  IconTrashOff,
143
143
  IconTrashX,
144
144
  IconChevronRight,
145
+ IconLogout,
146
+ IconSettings,
145
147
  IconX
146
148
  } from "@tabler/icons-react";
147
149
  var tablerIconRegistry = {
@@ -181,6 +183,8 @@ var tablerIconRegistry = {
181
183
  IconTrashOff,
182
184
  IconTrashX,
183
185
  IconChevronRight,
186
+ IconLogout,
187
+ IconSettings,
184
188
  IconX
185
189
  };
186
190
  var tablerIconNames = Object.keys(tablerIconRegistry).sort(
@@ -224,6 +228,7 @@ var legacyIconToTablerNameMap = {
224
228
  "caret-up": "IconChevronUp",
225
229
  "caret-left": "IconChevronLeft",
226
230
  "caret-right": "IconChevronRight",
231
+ "logout": "IconLogout",
227
232
  "users-group": "IconUsersGroup",
228
233
  "archive": "IconArchive",
229
234
  "folder": "IconFolder",
@@ -233,7 +238,8 @@ var legacyIconToTablerNameMap = {
233
238
  "trash-x": "IconTrashX",
234
239
  "delete": "IconTrash",
235
240
  "remove": "IconTrashX",
236
- "lixeira": "IconTrash"
241
+ "lixeira": "IconTrash",
242
+ "settings": "IconSettings"
237
243
  };
238
244
  var iconNames = Object.keys(legacyIconToTablerNameMap);
239
245
  var iconRegistry = Object.fromEntries(
@@ -594,67 +600,154 @@ function renderTextContent(children, { as, className, size = "body", style, vari
594
600
 
595
601
  // src/components/accordion.tsx
596
602
  import { jsx as jsx4, jsxs } from "react/jsx-runtime";
597
- var Accordion = AccordionPrimitive.Root;
598
- var AccordionItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
599
- AccordionPrimitive.Item,
603
+ var accordionAppearanceOptions = ["default", "card"];
604
+ var AccordionAppearanceContext = React4.createContext("default");
605
+ var accordionItemClasses = {
606
+ default: "group/accordion-item border-b border-border bg-transparent text-foreground",
607
+ card: "group/accordion-item bg-transparent text-foreground"
608
+ };
609
+ var accordionTriggerClasses = {
610
+ 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",
611
+ 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"
612
+ };
613
+ var accordionContentClasses = {
614
+ default: "sofya-accordion-content overflow-hidden text-sm text-muted-foreground",
615
+ card: "sofya-accordion-content overflow-hidden text-foreground"
616
+ };
617
+ var accordionContentBodyClasses = {
618
+ default: "pb-4 pr-10",
619
+ card: "flex flex-col gap-4 rounded-[8px] border border-border bg-[color:var(--sofya-background)] p-6"
620
+ };
621
+ function useAccordionAppearance() {
622
+ return React4.useContext(AccordionAppearanceContext);
623
+ }
624
+ var Accordion = React4.forwardRef(({ appearance = "default", className, ...props }, ref) => /* @__PURE__ */ jsx4(AccordionAppearanceContext.Provider, { value: appearance, children: /* @__PURE__ */ jsx4(
625
+ AccordionPrimitive.Root,
600
626
  {
601
627
  ref,
602
- className: cn(
603
- "group/accordion-item border-b border-border bg-transparent text-foreground",
604
- className
605
- ),
628
+ "data-appearance": appearance === "card" ? appearance : void 0,
629
+ className: cn(appearance === "card" && "flex flex-col gap-4", className),
606
630
  ...props
607
631
  }
608
- ));
632
+ ) }));
633
+ Accordion.displayName = AccordionPrimitive.Root.displayName;
634
+ var AccordionItem = React4.forwardRef(({ className, ...props }, ref) => {
635
+ const appearance = useAccordionAppearance();
636
+ return /* @__PURE__ */ jsx4(
637
+ AccordionPrimitive.Item,
638
+ {
639
+ ref,
640
+ "data-appearance": appearance === "card" ? appearance : void 0,
641
+ className: cn(accordionItemClasses[appearance], className),
642
+ ...props
643
+ }
644
+ );
645
+ });
609
646
  AccordionItem.displayName = AccordionPrimitive.Item.displayName;
610
- var AccordionTrigger = React4.forwardRef(({ className, children, indicator, ...props }, ref) => /* @__PURE__ */ jsx4(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
611
- AccordionPrimitive.Trigger,
612
- {
613
- ref,
614
- className: cn(
615
- "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",
616
- className
617
- ),
618
- ...props,
619
- children: [
620
- /* @__PURE__ */ jsx4("span", { className: "min-w-0 flex-1", children: renderTextContent(children, {
621
- as: "span",
622
- className: "block text-foreground",
623
- size: "body",
624
- style: {
625
- color: "inherit",
626
- fontFamily: "inherit",
627
- fontSize: "inherit",
628
- fontWeight: "inherit",
629
- letterSpacing: "inherit",
630
- lineHeight: "inherit"
631
- }
632
- }) }),
633
- /* @__PURE__ */ jsx4(
634
- "span",
647
+ var AccordionTrigger = React4.forwardRef(
648
+ ({
649
+ className,
650
+ children,
651
+ description,
652
+ hideIndicator,
653
+ indicator,
654
+ leading,
655
+ ...props
656
+ }, ref) => {
657
+ const appearance = useAccordionAppearance();
658
+ const hasDescription = description !== void 0 && description !== null;
659
+ const resolvedHideIndicator = hideIndicator ?? appearance === "card";
660
+ const indicatorNode = indicator !== void 0 ? indicator : /* @__PURE__ */ jsx4(Icon, { name: "caret-down", size: 12 });
661
+ const shouldRenderIndicator = !resolvedHideIndicator && indicatorNode != null;
662
+ return /* @__PURE__ */ jsx4(
663
+ AccordionPrimitive.Header,
664
+ {
665
+ "data-appearance": appearance === "card" ? appearance : void 0,
666
+ className: cn("flex", appearance === "card" && "w-full"),
667
+ children: /* @__PURE__ */ jsxs(
668
+ AccordionPrimitive.Trigger,
669
+ {
670
+ ref,
671
+ "data-appearance": appearance === "card" ? appearance : void 0,
672
+ className: cn(accordionTriggerClasses[appearance], className),
673
+ ...props,
674
+ children: [
675
+ /* @__PURE__ */ jsxs("span", { className: cn("min-w-0 flex-1", leading && "flex items-center gap-4"), children: [
676
+ leading ? /* @__PURE__ */ jsx4("span", { className: "flex shrink-0 items-center justify-center", children: leading }) : null,
677
+ /* @__PURE__ */ jsxs(
678
+ "span",
679
+ {
680
+ className: cn(
681
+ "min-w-0 flex-1",
682
+ (appearance === "card" || hasDescription) && "flex flex-col gap-2"
683
+ ),
684
+ children: [
685
+ renderTextContent(children, {
686
+ as: "span",
687
+ className: "block min-w-0 text-foreground",
688
+ size: appearance === "card" ? "h5" : "body",
689
+ style: appearance === "card" ? void 0 : {
690
+ color: "inherit",
691
+ fontFamily: "inherit",
692
+ fontSize: "inherit",
693
+ fontWeight: "inherit",
694
+ letterSpacing: "inherit",
695
+ lineHeight: "inherit"
696
+ }
697
+ }),
698
+ hasDescription ? renderTextContent(description, {
699
+ as: "span",
700
+ className: "block min-w-0 text-muted-foreground",
701
+ size: "body"
702
+ }) : null
703
+ ]
704
+ }
705
+ )
706
+ ] }),
707
+ shouldRenderIndicator ? /* @__PURE__ */ jsx4(
708
+ "span",
709
+ {
710
+ "aria-hidden": "true",
711
+ className: cn(
712
+ "sofya-accordion-indicator flex h-5 w-5 shrink-0 items-center justify-center text-muted-foreground transition-transform duration-sofya ease-sofya",
713
+ appearance === "card" && "text-secondary"
714
+ ),
715
+ children: indicatorNode
716
+ }
717
+ ) : null
718
+ ]
719
+ }
720
+ )
721
+ }
722
+ );
723
+ }
724
+ );
725
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
726
+ var AccordionContent = React4.forwardRef(({ className, children, contentClassName, ...props }, ref) => {
727
+ const appearance = useAccordionAppearance();
728
+ return /* @__PURE__ */ jsx4(
729
+ AccordionPrimitive.Content,
730
+ {
731
+ ref,
732
+ "data-appearance": appearance === "card" ? appearance : void 0,
733
+ className: cn(accordionContentClasses[appearance], className),
734
+ ...props,
735
+ children: /* @__PURE__ */ jsx4(
736
+ "div",
635
737
  {
636
- "aria-hidden": "true",
637
738
  className: cn(
638
- "sofya-accordion-indicator flex h-5 w-5 shrink-0 items-center justify-center text-muted-foreground transition-transform duration-sofya ease-sofya"
739
+ "sofya-accordion-content-body",
740
+ accordionContentBodyClasses[appearance],
741
+ contentClassName
639
742
  ),
640
- children: indicator ?? /* @__PURE__ */ jsx4(Icon, { name: "caret-down", size: 12 })
743
+ children: renderTextContent(children, {
744
+ className: appearance === "card" ? "text-foreground" : "text-muted-foreground"
745
+ })
641
746
  }
642
747
  )
643
- ]
644
- }
645
- ) }));
646
- AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
647
- var AccordionContent = React4.forwardRef(({ className, children, contentClassName, ...props }, ref) => /* @__PURE__ */ jsx4(
648
- AccordionPrimitive.Content,
649
- {
650
- ref,
651
- className: cn("sofya-accordion-content overflow-hidden text-sm text-muted-foreground", className),
652
- ...props,
653
- children: /* @__PURE__ */ jsx4("div", { className: cn("pb-4 pr-10", contentClassName), children: renderTextContent(children, {
654
- className: "text-muted-foreground"
655
- }) })
656
- }
657
- ));
748
+ }
749
+ );
750
+ });
658
751
  AccordionContent.displayName = AccordionPrimitive.Content.displayName;
659
752
 
660
753
  // src/components/alert.tsx
@@ -1706,22 +1799,51 @@ var dropdownVariantOptions = [
1706
1799
  "language",
1707
1800
  "selected"
1708
1801
  ];
1802
+ var dropdownAppearanceOptions = ["panel", "card"];
1803
+ var dropdownTriggerSizeOptions = ["default", "sm", "lg"];
1709
1804
  var dropdownLanguageItems = [
1710
1805
  { value: "en-US", label: "English", languageLocale: "en-US" },
1711
1806
  { value: "pt-BR", label: "Portuguese", languageLocale: "pt-BR" },
1712
1807
  { value: "es-ES", label: "Spanish", languageLocale: "es-ES" }
1713
1808
  ];
1714
- var dropdownTriggerClasses = {
1715
- card: "h-12 rounded-[20px] px-6 py-2 text-primary",
1716
- panel: "h-12 rounded-[10px] px-6 py-2 text-foreground",
1809
+ var dropdownTriggerToneClasses = {
1810
+ card: "text-primary",
1811
+ panel: "text-foreground",
1717
1812
  language: "",
1718
- 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)]"
1813
+ 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)]"
1814
+ };
1815
+ var dropdownTriggerSizeClasses = {
1816
+ regular: {
1817
+ default: "h-12 px-6 py-2",
1818
+ sm: "h-10 px-4 py-2",
1819
+ lg: "h-14 px-8 py-4"
1820
+ },
1821
+ selected: {
1822
+ default: "h-10 px-4 py-2",
1823
+ sm: "h-9 px-2 py-2",
1824
+ lg: "h-12 px-6 py-2"
1825
+ },
1826
+ language: {
1827
+ default: "h-[38px] w-[38px] p-0",
1828
+ sm: "h-8 w-8 p-0",
1829
+ lg: "h-11 w-11 p-0"
1830
+ }
1831
+ };
1832
+ var dropdownAppearanceClasses = {
1833
+ panel: {
1834
+ content: "rounded-[10px]",
1835
+ trigger: "rounded-[10px]"
1836
+ },
1837
+ card: {
1838
+ content: "rounded-[20px]",
1839
+ trigger: "rounded-[20px]"
1840
+ }
1719
1841
  };
1720
- var dropdownContentClasses = {
1721
- card: "rounded-[20px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
1722
- panel: "rounded-[10px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
1723
- language: "w-[224px] min-w-[224px] rounded-[10px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
1724
- 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)]"
1842
+ var dropdownContentBaseClasses = {
1843
+ card: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
1844
+ panel: "border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
1845
+ language: "w-[224px] min-w-[224px] border-[color:var(--sofya-border-strong)] text-foreground shadow-[var(--sofya-shadow-soft)]",
1846
+ 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)]"
1725
1847
  };
1726
1848
  var dropdownItemClasses = {
1727
1849
  card: "text-foreground",
@@ -1741,6 +1863,24 @@ function resolveItemLanguageLocale(item) {
1741
1863
  }
1742
1864
  return isButtonLanguageLocale(item.value) ? item.value : void 0;
1743
1865
  }
1866
+ function resolveDropdownAppearance({
1867
+ appearance,
1868
+ variant
1869
+ }) {
1870
+ if (appearance) {
1871
+ return appearance;
1872
+ }
1873
+ return variant === "card" ? "card" : "panel";
1874
+ }
1875
+ function resolveDropdownTriggerSizeFamily(variant) {
1876
+ if (variant === "language") {
1877
+ return "language";
1878
+ }
1879
+ if (variant === "selected") {
1880
+ return "selected";
1881
+ }
1882
+ return "regular";
1883
+ }
1744
1884
  function DefaultDropdownTriggerIcon({ variant }) {
1745
1885
  if (variant === "selected") {
1746
1886
  return /* @__PURE__ */ jsx12(
@@ -1772,6 +1912,7 @@ function LanguageFlagIcon({ locale }) {
1772
1912
  }
1773
1913
  function Dropdown({
1774
1914
  align = "start",
1915
+ appearance,
1775
1916
  contentClassName,
1776
1917
  defaultOpen,
1777
1918
  defaultValue,
@@ -1786,11 +1927,14 @@ function Dropdown({
1786
1927
  sideOffset = 8,
1787
1928
  triggerClassName,
1788
1929
  triggerIcon,
1930
+ triggerSize = "default",
1789
1931
  value,
1790
1932
  variant = "card"
1791
1933
  }) {
1792
1934
  const isLanguageVariant = variant === "language";
1793
1935
  const isSelectedVariant = variant === "selected";
1936
+ const resolvedAppearance = resolveDropdownAppearance({ appearance, variant });
1937
+ const triggerSizeFamily = resolveDropdownTriggerSizeFamily(variant);
1794
1938
  const usesDefaultListStyle = !isLanguageVariant;
1795
1939
  const resolvedItems = React12.useMemo(
1796
1940
  () => isLanguageVariant ? items && items.length > 0 ? items : dropdownLanguageItems : items ?? [],
@@ -1840,9 +1984,13 @@ function Dropdown({
1840
1984
  type: "button",
1841
1985
  variant: isLanguageVariant ? "language" : "dropdown",
1842
1986
  languageLocale: selectedLanguageLocale,
1987
+ "data-appearance": resolvedAppearance,
1988
+ "data-trigger-size": triggerSize,
1843
1989
  className: cn(
1844
1990
  "min-w-0",
1845
- isLanguageVariant ? "h-[38px] w-[38px] rounded-[10px] p-0" : dropdownTriggerClasses[variant],
1991
+ dropdownTriggerToneClasses[variant],
1992
+ dropdownTriggerSizeClasses[triggerSizeFamily][triggerSize],
1993
+ dropdownAppearanceClasses[resolvedAppearance].trigger,
1846
1994
  selectedTriggerToneClassName,
1847
1995
  triggerClassName
1848
1996
  ),
@@ -1859,9 +2007,11 @@ function Dropdown({
1859
2007
  {
1860
2008
  align,
1861
2009
  sideOffset,
2010
+ "data-appearance": resolvedAppearance,
1862
2011
  className: cn(
1863
2012
  "sofya-dropdown-content z-50 w-auto min-w-[var(--radix-dropdown-menu-trigger-width)] border bg-card p-2 outline-none",
1864
- dropdownContentClasses[variant],
2013
+ dropdownContentBaseClasses[variant],
2014
+ dropdownAppearanceClasses[resolvedAppearance].content,
1865
2015
  contentClassName
1866
2016
  ),
1867
2017
  children: /* @__PURE__ */ jsx12(
@@ -4237,12 +4387,22 @@ Spinner.displayName = "Spinner";
4237
4387
  import * as React31 from "react";
4238
4388
  import * as SwitchPrimitives from "@radix-ui/react-switch";
4239
4389
  import { jsx as jsx33 } from "react/jsx-runtime";
4240
- var Switch = React31.forwardRef(({ className, ...props }, ref) => {
4390
+ var switchSizeOptions = ["default", "sm"];
4391
+ var switchRootSizeClasses = {
4392
+ default: "h-6 w-11",
4393
+ sm: "h-5 w-9"
4394
+ };
4395
+ var switchThumbSizeClasses = {
4396
+ default: "h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0",
4397
+ sm: "h-4 w-4 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"
4398
+ };
4399
+ var Switch = React31.forwardRef(({ className, size = "default", ...props }, ref) => {
4241
4400
  return /* @__PURE__ */ jsx33(
4242
4401
  SwitchPrimitives.Root,
4243
4402
  {
4244
4403
  className: cn(
4245
- "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",
4404
+ "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",
4405
+ switchRootSizeClasses[size],
4246
4406
  className
4247
4407
  ),
4248
4408
  ...props,
@@ -4250,7 +4410,10 @@ var Switch = React31.forwardRef(({ className, ...props }, ref) => {
4250
4410
  children: /* @__PURE__ */ jsx33(
4251
4411
  SwitchPrimitives.Thumb,
4252
4412
  {
4253
- 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"
4413
+ className: cn(
4414
+ "pointer-events-none block rounded-full bg-background shadow-sm ring-0 transition-transform duration-sofya ease-sofya",
4415
+ switchThumbSizeClasses[size]
4416
+ )
4254
4417
  }
4255
4418
  )
4256
4419
  }
@@ -4895,6 +5058,7 @@ export {
4895
5058
  TooltipContent,
4896
5059
  TooltipProvider,
4897
5060
  TooltipTrigger,
5061
+ accordionAppearanceOptions,
4898
5062
  alertSizeOptions,
4899
5063
  alertToneOptions,
4900
5064
  avatarSizeOptions,
@@ -4913,7 +5077,9 @@ export {
4913
5077
  cardVariants,
4914
5078
  createWhitelabelTheme2 as createWhitelabelTheme,
4915
5079
  defaultTheme2 as defaultTheme,
5080
+ dropdownAppearanceOptions,
4916
5081
  dropdownLanguageItems,
5082
+ dropdownTriggerSizeOptions,
4917
5083
  dropdownVariantOptions,
4918
5084
  emptyMediaVariantOptions,
4919
5085
  gradientToCss,
@@ -4943,6 +5109,7 @@ export {
4943
5109
  sofyaSurfaceNames,
4944
5110
  sofyaTextStyleNames,
4945
5111
  spinnerSizeOptions,
5112
+ switchSizeOptions,
4946
5113
  tableActionToneOptions,
4947
5114
  tableCellVariantOptions,
4948
5115
  tableStatusToneOptions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sofya-ds/react",
3
- "version": "1.1.16",
3
+ "version": "1.3.0",
4
4
  "description": "Sofya React design system with official brand tokens, provider and UI components.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -59,7 +59,7 @@
59
59
  "motion": "^12.38.0",
60
60
  "sonner": "^2.0.7",
61
61
  "tailwind-merge": "^3.5.0",
62
- "@sofya-ds/tokens": "1.1.16"
62
+ "@sofya-ds/tokens": "1.3.0"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@testing-library/jest-dom": "^6.9.1",