@alquimia-ai/ui 1.2.3 → 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.
Files changed (54) hide show
  1. package/dist/components/atoms/index.d.mts +4 -1
  2. package/dist/components/atoms/index.d.ts +4 -1
  3. package/dist/components/atoms/index.js +39 -17
  4. package/dist/components/atoms/index.js.map +1 -1
  5. package/dist/components/atoms/index.mjs +35 -13
  6. package/dist/components/atoms/index.mjs.map +1 -1
  7. package/dist/components/hooks/index.js +41 -32
  8. package/dist/components/hooks/index.js.map +1 -1
  9. package/dist/components/hooks/index.mjs +42 -33
  10. package/dist/components/hooks/index.mjs.map +1 -1
  11. package/dist/components/index.d.mts +2 -1
  12. package/dist/components/index.d.ts +2 -1
  13. package/dist/components/index.js +39 -17
  14. package/dist/components/index.js.map +1 -1
  15. package/dist/components/index.mjs +35 -13
  16. package/dist/components/index.mjs.map +1 -1
  17. package/dist/components/molecules/documents/index.js +82 -52
  18. package/dist/components/molecules/documents/index.js.map +1 -1
  19. package/dist/components/molecules/documents/index.mjs +67 -37
  20. package/dist/components/molecules/documents/index.mjs.map +1 -1
  21. package/dist/components/molecules/index.js +186 -156
  22. package/dist/components/molecules/index.js.map +1 -1
  23. package/dist/components/molecules/index.mjs +179 -149
  24. package/dist/components/molecules/index.mjs.map +1 -1
  25. package/dist/components/molecules/viewers/index.js +31 -10
  26. package/dist/components/molecules/viewers/index.js.map +1 -1
  27. package/dist/components/molecules/viewers/index.mjs +30 -9
  28. package/dist/components/molecules/viewers/index.mjs.map +1 -1
  29. package/dist/components/organisms/index.d.mts +3 -1
  30. package/dist/components/organisms/index.d.ts +3 -1
  31. package/dist/components/organisms/index.js +228 -196
  32. package/dist/components/organisms/index.js.map +1 -1
  33. package/dist/components/organisms/index.mjs +217 -185
  34. package/dist/components/organisms/index.mjs.map +1 -1
  35. package/dist/components/templates/cards/index.js +57 -36
  36. package/dist/components/templates/cards/index.js.map +1 -1
  37. package/dist/components/templates/cards/index.mjs +45 -24
  38. package/dist/components/templates/cards/index.mjs.map +1 -1
  39. package/dist/components/templates/index.js +57 -36
  40. package/dist/components/templates/index.js.map +1 -1
  41. package/dist/components/templates/index.mjs +45 -24
  42. package/dist/components/templates/index.mjs.map +1 -1
  43. package/dist/index.d.mts +3 -2
  44. package/dist/index.d.ts +3 -2
  45. package/dist/index.js +283 -250
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.mjs +262 -229
  48. package/dist/index.mjs.map +1 -1
  49. package/dist/package.json +137 -0
  50. package/dist/types/index.d.mts +12 -1
  51. package/dist/types/index.d.ts +12 -1
  52. package/dist/types/index.js.map +1 -1
  53. package/dist/types/index.mjs.map +1 -1
  54. package/package.json +21 -3
@@ -162,7 +162,7 @@ function SpeechToText({
162
162
  }
163
163
 
164
164
  // src/components/organisms/assistant.tsx
165
- import * as React33 from "react";
165
+ import * as React34 from "react";
166
166
  import { useEffect as useEffect11 } from "react";
167
167
 
168
168
  // src/components/atoms/ui/button.tsx
@@ -1463,8 +1463,29 @@ var Loader = React22.forwardRef(
1463
1463
  );
1464
1464
  Loader.displayName = "Loader";
1465
1465
 
1466
- // src/components/hooks/use-toast.ts
1466
+ // src/components/atoms/ui/separator.tsx
1467
1467
  import * as React23 from "react";
1468
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
1469
+ import { jsx as jsx30 } from "react/jsx-runtime";
1470
+ var Separator2 = React23.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx30(
1471
+ SeparatorPrimitive.Root,
1472
+ {
1473
+ ref,
1474
+ decorative,
1475
+ orientation,
1476
+ className: cn(
1477
+ "shrink-0 bg-border",
1478
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
1479
+ className,
1480
+ "alq--separator"
1481
+ ),
1482
+ ...props
1483
+ }
1484
+ ));
1485
+ Separator2.displayName = SeparatorPrimitive.Root.displayName;
1486
+
1487
+ // src/components/hooks/use-toast.ts
1488
+ import * as React24 from "react";
1468
1489
  var TOAST_LIMIT = 1;
1469
1490
  var TOAST_REMOVE_DELAY = 1e6;
1470
1491
  var count = 0;
@@ -1565,8 +1586,8 @@ function toast({ ...props }) {
1565
1586
  };
1566
1587
  }
1567
1588
  function useToast() {
1568
- const [state, setState] = React23.useState(memoryState);
1569
- React23.useEffect(() => {
1589
+ const [state, setState] = React24.useState(memoryState);
1590
+ React24.useEffect(() => {
1570
1591
  listeners.push(setState);
1571
1592
  return () => {
1572
1593
  const index = listeners.indexOf(setState);
@@ -1583,13 +1604,13 @@ function useToast() {
1583
1604
  }
1584
1605
 
1585
1606
  // src/components/atoms/ui/toaster.tsx
1586
- import { jsx as jsx30, jsxs as jsxs10 } from "react/jsx-runtime";
1607
+ import { jsx as jsx31, jsxs as jsxs10 } from "react/jsx-runtime";
1587
1608
 
1588
1609
  // src/components/atoms/ui/think-indicator.tsx
1589
- import * as React24 from "react";
1610
+ import * as React25 from "react";
1590
1611
  import { useState as useState4, useEffect as useEffect4 } from "react";
1591
1612
  import { cva as cva8 } from "class-variance-authority";
1592
- import { jsx as jsx31, jsxs as jsxs11 } from "react/jsx-runtime";
1613
+ import { jsx as jsx32, jsxs as jsxs11 } from "react/jsx-runtime";
1593
1614
  var thinkIndicatorVariants = cva8(
1594
1615
  "flex items-center gap-3",
1595
1616
  {
@@ -1611,7 +1632,7 @@ var thinkIndicatorVariants = cva8(
1611
1632
  }
1612
1633
  }
1613
1634
  );
1614
- var ThinkIndicator = React24.forwardRef(
1635
+ var ThinkIndicator = React25.forwardRef(
1615
1636
  ({
1616
1637
  className,
1617
1638
  variant,
@@ -1649,7 +1670,7 @@ var ThinkIndicator = React24.forwardRef(
1649
1670
  className: cn(thinkIndicatorVariants({ variant, size }), className, "alq--think-indicator"),
1650
1671
  ...props,
1651
1672
  children: [
1652
- loader || /* @__PURE__ */ jsx31(
1673
+ loader || /* @__PURE__ */ jsx32(
1653
1674
  Loader,
1654
1675
  {
1655
1676
  className: cn(
@@ -1657,7 +1678,7 @@ var ThinkIndicator = React24.forwardRef(
1657
1678
  )
1658
1679
  }
1659
1680
  ),
1660
- /* @__PURE__ */ jsx31(
1681
+ /* @__PURE__ */ jsx32(
1661
1682
  "div",
1662
1683
  {
1663
1684
  className: cn(
@@ -1676,11 +1697,11 @@ var ThinkIndicator = React24.forwardRef(
1676
1697
  ThinkIndicator.displayName = "ThinkIndicator";
1677
1698
 
1678
1699
  // src/components/molecules/page-container.tsx
1679
- import { forwardRef as forwardRef26 } from "react";
1680
- import { jsx as jsx32 } from "react/jsx-runtime";
1681
- var PageContainer = forwardRef26(
1700
+ import { forwardRef as forwardRef27 } from "react";
1701
+ import { jsx as jsx33 } from "react/jsx-runtime";
1702
+ var PageContainer = forwardRef27(
1682
1703
  ({ className, ...props }, ref) => {
1683
- return /* @__PURE__ */ jsx32(
1704
+ return /* @__PURE__ */ jsx33(
1684
1705
  "div",
1685
1706
  {
1686
1707
  ref,
@@ -1693,11 +1714,11 @@ var PageContainer = forwardRef26(
1693
1714
  PageContainer.displayName = "PageContainer";
1694
1715
 
1695
1716
  // src/components/molecules/assistant-button.tsx
1696
- import * as React25 from "react";
1717
+ import * as React26 from "react";
1697
1718
  import { useState as useState5 } from "react";
1698
- import { jsx as jsx33, jsxs as jsxs12 } from "react/jsx-runtime";
1699
- var AssistantSuggestions = React25.forwardRef(({ suggestions, showSuggestions, className }, ref) => {
1700
- return /* @__PURE__ */ jsx33(
1719
+ import { jsx as jsx34, jsxs as jsxs12 } from "react/jsx-runtime";
1720
+ var AssistantSuggestions = React26.forwardRef(({ suggestions, showSuggestions, className }, ref) => {
1721
+ return /* @__PURE__ */ jsx34(
1701
1722
  "div",
1702
1723
  {
1703
1724
  ref,
@@ -1707,7 +1728,7 @@ var AssistantSuggestions = React25.forwardRef(({ suggestions, showSuggestions, c
1707
1728
  showSuggestions ? "opacity-100 translate-y-0" : "opacity-0 translate-y-4",
1708
1729
  className
1709
1730
  ),
1710
- children: /* @__PURE__ */ jsx33("div", { className: "rounded-lg p-2 pr-0 w-64", children: suggestions.map((suggestion, index) => /* @__PURE__ */ jsxs12(
1731
+ children: /* @__PURE__ */ jsx34("div", { className: "rounded-lg p-2 pr-0 w-64", children: suggestions.map((suggestion, index) => /* @__PURE__ */ jsxs12(
1711
1732
  "button",
1712
1733
  {
1713
1734
  onClick: () => suggestion.action?.(),
@@ -1723,8 +1744,8 @@ var AssistantSuggestions = React25.forwardRef(({ suggestions, showSuggestions, c
1723
1744
  showSuggestions ? "opacity-100 translate-y-0" : "opacity-0 translate-y-4"
1724
1745
  ),
1725
1746
  children: [
1726
- /* @__PURE__ */ jsx33(suggestion.icon, { className: "w-5 h-5 text-primary" }),
1727
- /* @__PURE__ */ jsx33("span", { className: "text-xs whitespace-nowrap font-normal", children: suggestion.label })
1747
+ /* @__PURE__ */ jsx34(suggestion.icon, { className: "w-5 h-5 text-primary" }),
1748
+ /* @__PURE__ */ jsx34("span", { className: "text-xs whitespace-nowrap font-normal", children: suggestion.label })
1728
1749
  ]
1729
1750
  },
1730
1751
  index
@@ -1733,7 +1754,7 @@ var AssistantSuggestions = React25.forwardRef(({ suggestions, showSuggestions, c
1733
1754
  );
1734
1755
  });
1735
1756
  AssistantSuggestions.displayName = "Suggestions";
1736
- var AssistantButton = React25.forwardRef(
1757
+ var AssistantButton = React26.forwardRef(
1737
1758
  ({
1738
1759
  icon: Icon2,
1739
1760
  clickAction,
@@ -1754,7 +1775,7 @@ var AssistantButton = React25.forwardRef(
1754
1775
  setShowSuggestions(false);
1755
1776
  setTimeout(() => setIsVisible(false), 300);
1756
1777
  };
1757
- return /* @__PURE__ */ jsx33(
1778
+ return /* @__PURE__ */ jsx34(
1758
1779
  "div",
1759
1780
  {
1760
1781
  ref,
@@ -1766,14 +1787,14 @@ var AssistantButton = React25.forwardRef(
1766
1787
  onMouseEnter: handleMouseEnter,
1767
1788
  onMouseLeave: handleMouseLeave,
1768
1789
  children: /* @__PURE__ */ jsxs12("div", { className: "relative group", children: [
1769
- isVisible && suggestions.length > 0 && /* @__PURE__ */ jsx33(
1790
+ isVisible && suggestions.length > 0 && /* @__PURE__ */ jsx34(
1770
1791
  AssistantSuggestions,
1771
1792
  {
1772
1793
  suggestions,
1773
1794
  showSuggestions
1774
1795
  }
1775
1796
  ),
1776
- /* @__PURE__ */ jsx33(
1797
+ /* @__PURE__ */ jsx34(
1777
1798
  Button,
1778
1799
  {
1779
1800
  variant: "outline",
@@ -1787,7 +1808,7 @@ var AssistantButton = React25.forwardRef(
1787
1808
  "alq--assistant-button"
1788
1809
  ),
1789
1810
  onClick: clickAction,
1790
- children: /* @__PURE__ */ jsx33(
1811
+ children: /* @__PURE__ */ jsx34(
1791
1812
  Icon2,
1792
1813
  {
1793
1814
  style: { width: "22px", height: "22px" },
@@ -1804,19 +1825,19 @@ var AssistantButton = React25.forwardRef(
1804
1825
  AssistantButton.displayName = "AssistantButton";
1805
1826
 
1806
1827
  // src/components/molecules/carousel.tsx
1807
- import * as React26 from "react";
1828
+ import * as React27 from "react";
1808
1829
  import useEmblaCarousel from "embla-carousel-react";
1809
1830
  import { ArrowLeft, ArrowRight } from "lucide-react";
1810
- import { jsx as jsx34, jsxs as jsxs13 } from "react/jsx-runtime";
1811
- var CarouselContext = React26.createContext(null);
1831
+ import { jsx as jsx35, jsxs as jsxs13 } from "react/jsx-runtime";
1832
+ var CarouselContext = React27.createContext(null);
1812
1833
  function useCarousel() {
1813
- const context = React26.useContext(CarouselContext);
1834
+ const context = React27.useContext(CarouselContext);
1814
1835
  if (!context) {
1815
1836
  throw new Error("useCarousel must be used within a <Carousel />");
1816
1837
  }
1817
1838
  return context;
1818
1839
  }
1819
- var Carousel = React26.forwardRef(
1840
+ var Carousel = React27.forwardRef(
1820
1841
  ({
1821
1842
  orientation = "horizontal",
1822
1843
  opts,
@@ -1833,22 +1854,22 @@ var Carousel = React26.forwardRef(
1833
1854
  },
1834
1855
  plugins
1835
1856
  );
1836
- const [canScrollPrev, setCanScrollPrev] = React26.useState(false);
1837
- const [canScrollNext, setCanScrollNext] = React26.useState(false);
1838
- const onSelect = React26.useCallback((api2) => {
1857
+ const [canScrollPrev, setCanScrollPrev] = React27.useState(false);
1858
+ const [canScrollNext, setCanScrollNext] = React27.useState(false);
1859
+ const onSelect = React27.useCallback((api2) => {
1839
1860
  if (!api2) {
1840
1861
  return;
1841
1862
  }
1842
1863
  setCanScrollPrev(api2.canScrollPrev());
1843
1864
  setCanScrollNext(api2.canScrollNext());
1844
1865
  }, []);
1845
- const scrollPrev = React26.useCallback(() => {
1866
+ const scrollPrev = React27.useCallback(() => {
1846
1867
  api?.scrollPrev();
1847
1868
  }, [api]);
1848
- const scrollNext = React26.useCallback(() => {
1869
+ const scrollNext = React27.useCallback(() => {
1849
1870
  api?.scrollNext();
1850
1871
  }, [api]);
1851
- const handleKeyDown = React26.useCallback(
1872
+ const handleKeyDown = React27.useCallback(
1852
1873
  (event) => {
1853
1874
  if (event.key === "ArrowLeft") {
1854
1875
  event.preventDefault();
@@ -1860,13 +1881,13 @@ var Carousel = React26.forwardRef(
1860
1881
  },
1861
1882
  [scrollPrev, scrollNext]
1862
1883
  );
1863
- React26.useEffect(() => {
1884
+ React27.useEffect(() => {
1864
1885
  if (!api || !setApi) {
1865
1886
  return;
1866
1887
  }
1867
1888
  setApi(api);
1868
1889
  }, [api, setApi]);
1869
- React26.useEffect(() => {
1890
+ React27.useEffect(() => {
1870
1891
  if (!api) {
1871
1892
  return;
1872
1893
  }
@@ -1877,7 +1898,7 @@ var Carousel = React26.forwardRef(
1877
1898
  api?.off("select", onSelect);
1878
1899
  };
1879
1900
  }, [api, onSelect]);
1880
- return /* @__PURE__ */ jsx34(
1901
+ return /* @__PURE__ */ jsx35(
1881
1902
  CarouselContext.Provider,
1882
1903
  {
1883
1904
  value: {
@@ -1890,7 +1911,7 @@ var Carousel = React26.forwardRef(
1890
1911
  canScrollPrev,
1891
1912
  canScrollNext
1892
1913
  },
1893
- children: /* @__PURE__ */ jsx34(
1914
+ children: /* @__PURE__ */ jsx35(
1894
1915
  "div",
1895
1916
  {
1896
1917
  ref,
@@ -1907,9 +1928,9 @@ var Carousel = React26.forwardRef(
1907
1928
  }
1908
1929
  );
1909
1930
  Carousel.displayName = "Carousel";
1910
- var CarouselContent = React26.forwardRef(({ className, ...props }, ref) => {
1931
+ var CarouselContent = React27.forwardRef(({ className, ...props }, ref) => {
1911
1932
  const { carouselRef, orientation } = useCarousel();
1912
- return /* @__PURE__ */ jsx34("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx34(
1933
+ return /* @__PURE__ */ jsx35("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx35(
1913
1934
  "div",
1914
1935
  {
1915
1936
  ref,
@@ -1923,9 +1944,9 @@ var CarouselContent = React26.forwardRef(({ className, ...props }, ref) => {
1923
1944
  ) });
1924
1945
  });
1925
1946
  CarouselContent.displayName = "CarouselContent";
1926
- var CarouselItem = React26.forwardRef(({ className, ...props }, ref) => {
1947
+ var CarouselItem = React27.forwardRef(({ className, ...props }, ref) => {
1927
1948
  const { orientation } = useCarousel();
1928
- return /* @__PURE__ */ jsx34(
1949
+ return /* @__PURE__ */ jsx35(
1929
1950
  "div",
1930
1951
  {
1931
1952
  ref,
@@ -1941,7 +1962,7 @@ var CarouselItem = React26.forwardRef(({ className, ...props }, ref) => {
1941
1962
  );
1942
1963
  });
1943
1964
  CarouselItem.displayName = "CarouselItem";
1944
- var CarouselPrevious = React26.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
1965
+ var CarouselPrevious = React27.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
1945
1966
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
1946
1967
  return /* @__PURE__ */ jsxs13(
1947
1968
  Button,
@@ -1958,14 +1979,14 @@ var CarouselPrevious = React26.forwardRef(({ className, variant = "outline", siz
1958
1979
  onClick: scrollPrev,
1959
1980
  ...props,
1960
1981
  children: [
1961
- /* @__PURE__ */ jsx34(ArrowLeft, { className: "h-4 w-4" }),
1962
- /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Previous slide" })
1982
+ /* @__PURE__ */ jsx35(ArrowLeft, { className: "h-4 w-4" }),
1983
+ /* @__PURE__ */ jsx35("span", { className: "sr-only", children: "Previous slide" })
1963
1984
  ]
1964
1985
  }
1965
1986
  );
1966
1987
  });
1967
1988
  CarouselPrevious.displayName = "CarouselPrevious";
1968
- var CarouselNext = React26.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
1989
+ var CarouselNext = React27.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
1969
1990
  const { orientation, scrollNext, canScrollNext } = useCarousel();
1970
1991
  return /* @__PURE__ */ jsxs13(
1971
1992
  Button,
@@ -1982,8 +2003,8 @@ var CarouselNext = React26.forwardRef(({ className, variant = "outline", size =
1982
2003
  onClick: scrollNext,
1983
2004
  ...props,
1984
2005
  children: [
1985
- /* @__PURE__ */ jsx34(ArrowRight, { className: "h-4 w-4" }),
1986
- /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Next slide" })
2006
+ /* @__PURE__ */ jsx35(ArrowRight, { className: "h-4 w-4" }),
2007
+ /* @__PURE__ */ jsx35("span", { className: "sr-only", children: "Next slide" })
1987
2008
  ]
1988
2009
  }
1989
2010
  );
@@ -1991,12 +2012,12 @@ var CarouselNext = React26.forwardRef(({ className, variant = "outline", size =
1991
2012
  CarouselNext.displayName = "CarouselNext";
1992
2013
 
1993
2014
  // src/components/molecules/navigation-menu.tsx
1994
- import * as React27 from "react";
2015
+ import * as React28 from "react";
1995
2016
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
1996
2017
  import { cva as cva9 } from "class-variance-authority";
1997
2018
  import { ChevronDown as ChevronDown2 } from "lucide-react";
1998
- import { jsx as jsx35, jsxs as jsxs14 } from "react/jsx-runtime";
1999
- var NavigationMenu = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
2019
+ import { jsx as jsx36, jsxs as jsxs14 } from "react/jsx-runtime";
2020
+ var NavigationMenu = React28.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
2000
2021
  NavigationMenuPrimitive.Root,
2001
2022
  {
2002
2023
  ref,
@@ -2007,12 +2028,12 @@ var NavigationMenu = React27.forwardRef(({ className, children, ...props }, ref)
2007
2028
  ...props,
2008
2029
  children: [
2009
2030
  children,
2010
- /* @__PURE__ */ jsx35(NavigationMenuViewport, {})
2031
+ /* @__PURE__ */ jsx36(NavigationMenuViewport, {})
2011
2032
  ]
2012
2033
  }
2013
2034
  ));
2014
2035
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
2015
- var NavigationMenuList = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
2036
+ var NavigationMenuList = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
2016
2037
  NavigationMenuPrimitive.List,
2017
2038
  {
2018
2039
  ref,
@@ -2027,7 +2048,7 @@ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
2027
2048
  var navigationMenuTriggerStyle = cva9(
2028
2049
  "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
2029
2050
  );
2030
- var NavigationMenuTrigger = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
2051
+ var NavigationMenuTrigger = React28.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs14(
2031
2052
  NavigationMenuPrimitive.Trigger,
2032
2053
  {
2033
2054
  ref,
@@ -2036,7 +2057,7 @@ var NavigationMenuTrigger = React27.forwardRef(({ className, children, ...props
2036
2057
  children: [
2037
2058
  children,
2038
2059
  " ",
2039
- /* @__PURE__ */ jsx35(
2060
+ /* @__PURE__ */ jsx36(
2040
2061
  ChevronDown2,
2041
2062
  {
2042
2063
  className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
@@ -2047,7 +2068,7 @@ var NavigationMenuTrigger = React27.forwardRef(({ className, children, ...props
2047
2068
  }
2048
2069
  ));
2049
2070
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
2050
- var NavigationMenuContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
2071
+ var NavigationMenuContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
2051
2072
  NavigationMenuPrimitive.Content,
2052
2073
  {
2053
2074
  ref,
@@ -2059,7 +2080,7 @@ var NavigationMenuContent = React27.forwardRef(({ className, ...props }, ref) =>
2059
2080
  }
2060
2081
  ));
2061
2082
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
2062
- var NavigationMenuViewport = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx35(
2083
+ var NavigationMenuViewport = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx36(
2063
2084
  NavigationMenuPrimitive.Viewport,
2064
2085
  {
2065
2086
  className: cn(
@@ -2071,7 +2092,7 @@ var NavigationMenuViewport = React27.forwardRef(({ className, ...props }, ref) =
2071
2092
  }
2072
2093
  ) }));
2073
2094
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
2074
- var NavigationMenuIndicator = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx35(
2095
+ var NavigationMenuIndicator = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx36(
2075
2096
  NavigationMenuPrimitive.Indicator,
2076
2097
  {
2077
2098
  ref,
@@ -2080,15 +2101,15 @@ var NavigationMenuIndicator = React27.forwardRef(({ className, ...props }, ref)
2080
2101
  className
2081
2102
  ),
2082
2103
  ...props,
2083
- children: /* @__PURE__ */ jsx35("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
2104
+ children: /* @__PURE__ */ jsx36("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
2084
2105
  }
2085
2106
  ));
2086
2107
  NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
2087
2108
 
2088
2109
  // src/components/molecules/sidebar.tsx
2089
- import * as React28 from "react";
2110
+ import * as React29 from "react";
2090
2111
  import { cva as cva10 } from "class-variance-authority";
2091
- import { jsx as jsx36, jsxs as jsxs15 } from "react/jsx-runtime";
2112
+ import { jsx as jsx37, jsxs as jsxs15 } from "react/jsx-runtime";
2092
2113
  var sidebarVariants = cva10(
2093
2114
  "flex flex-col border-r",
2094
2115
  {
@@ -2104,7 +2125,7 @@ var sidebarVariants = cva10(
2104
2125
  }
2105
2126
  }
2106
2127
  );
2107
- var SidebarFooter = React28.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx36(
2128
+ var SidebarFooter = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx37(
2108
2129
  "div",
2109
2130
  {
2110
2131
  ref,
@@ -2114,7 +2135,7 @@ var SidebarFooter = React28.forwardRef(({ className, children, ...props }, ref)
2114
2135
  }
2115
2136
  ));
2116
2137
  SidebarFooter.displayName = "SidebarFooter";
2117
- var Sidebar = React28.forwardRef(
2138
+ var Sidebar = React29.forwardRef(
2118
2139
  ({
2119
2140
  className,
2120
2141
  items,
@@ -2127,8 +2148,8 @@ var Sidebar = React28.forwardRef(
2127
2148
  buttonClassName,
2128
2149
  ...props
2129
2150
  }, ref) => {
2130
- return /* @__PURE__ */ jsx36("div", { className: cn(className, "alq--navigation-sidebar h-full"), ref, ...props, children: /* @__PURE__ */ jsxs15("aside", { className: cn(sidebarVariants({ size }), "h-full"), children: [
2131
- /* @__PURE__ */ jsx36(ScrollArea, { className: "flex-grow justify-between", children: /* @__PURE__ */ jsx36("div", { className: "flex flex-col gap-2 p-4", children: items.map((item) => /* @__PURE__ */ jsxs15(
2151
+ return /* @__PURE__ */ jsx37("div", { className: cn(className, "alq--navigation-sidebar h-full"), ref, ...props, children: /* @__PURE__ */ jsxs15("aside", { className: cn(sidebarVariants({ size }), "h-full"), children: [
2152
+ /* @__PURE__ */ jsx37(ScrollArea, { className: "flex-grow justify-between", children: /* @__PURE__ */ jsx37("div", { className: "flex flex-col gap-2 p-4", children: items.map((item) => /* @__PURE__ */ jsxs15(
2132
2153
  Button,
2133
2154
  {
2134
2155
  variant: selectedSection?.name === item.name ? selectedVariant : defaultVariant,
@@ -2140,13 +2161,13 @@ var Sidebar = React28.forwardRef(
2140
2161
  }
2141
2162
  },
2142
2163
  children: [
2143
- item.icon && /* @__PURE__ */ jsx36(item.icon, { className: "mr-2 h-4 w-4" }),
2164
+ item.icon && /* @__PURE__ */ jsx37(item.icon, { className: "mr-2 h-4 w-4" }),
2144
2165
  item.name
2145
2166
  ]
2146
2167
  },
2147
2168
  item.name
2148
2169
  )) }) }),
2149
- footerContent && /* @__PURE__ */ jsx36(SidebarFooter, { children: footerContent })
2170
+ footerContent && /* @__PURE__ */ jsx37(SidebarFooter, { children: footerContent })
2150
2171
  ] }) });
2151
2172
  }
2152
2173
  );
@@ -2154,17 +2175,17 @@ var Sidebar = React28.forwardRef(
2154
2175
  // src/components/molecules/sonner.tsx
2155
2176
  import { useTheme } from "next-themes";
2156
2177
  import { Toaster as Sonner } from "sonner";
2157
- import { jsx as jsx37 } from "react/jsx-runtime";
2178
+ import { jsx as jsx38 } from "react/jsx-runtime";
2158
2179
 
2159
2180
  // src/components/molecules/rating-stars.tsx
2160
- import * as React29 from "react";
2181
+ import * as React30 from "react";
2161
2182
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
2162
2183
  import { Star } from "lucide-react";
2163
- import { jsx as jsx38, jsxs as jsxs16 } from "react/jsx-runtime";
2184
+ import { jsx as jsx39, jsxs as jsxs16 } from "react/jsx-runtime";
2164
2185
  var TooltipProvider = TooltipPrimitive.Provider;
2165
2186
  var Tooltip = TooltipPrimitive.Root;
2166
2187
  var TooltipTrigger = TooltipPrimitive.Trigger;
2167
- var TooltipContent = React29.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx38(
2188
+ var TooltipContent = React30.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx39(
2168
2189
  TooltipPrimitive.Content,
2169
2190
  {
2170
2191
  ref,
@@ -2177,14 +2198,14 @@ var TooltipContent = React29.forwardRef(({ className, sideOffset = 4, ...props }
2177
2198
  }
2178
2199
  ));
2179
2200
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
2180
- var StarRating = React29.forwardRef(({ rating, onRate }, ref) => /* @__PURE__ */ jsx38("div", { ref, className: "flex", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsx38(
2201
+ var StarRating = React30.forwardRef(({ rating, onRate }, ref) => /* @__PURE__ */ jsx39("div", { ref, className: "flex", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsx39(
2181
2202
  Button,
2182
2203
  {
2183
2204
  onClick: () => onRate(star),
2184
2205
  variant: "link",
2185
2206
  className: "p-1 transition-colors [&_svg]:size-5 h-5",
2186
2207
  "aria-label": `Rate ${star} star${star !== 1 ? "s" : ""}`,
2187
- children: /* @__PURE__ */ jsx38(
2208
+ children: /* @__PURE__ */ jsx39(
2188
2209
  Star,
2189
2210
  {
2190
2211
  className: cn(
@@ -2197,19 +2218,19 @@ var StarRating = React29.forwardRef(({ rating, onRate }, ref) => /* @__PURE__ */
2197
2218
  star
2198
2219
  )) }));
2199
2220
  StarRating.displayName = "StarRating";
2200
- var RatingStars = React29.forwardRef(({
2221
+ var RatingStars = React30.forwardRef(({
2201
2222
  currentRating = 0,
2202
2223
  onRate,
2203
2224
  className,
2204
2225
  isLoading
2205
2226
  }, ref) => {
2206
- const [open, setOpen] = React29.useState(false);
2207
- const [animate, setAnimate] = React29.useState(false);
2227
+ const [open, setOpen] = React30.useState(false);
2228
+ const [animate, setAnimate] = React30.useState(false);
2208
2229
  const handleRate = (rating) => {
2209
2230
  onRate(rating);
2210
2231
  setOpen(false);
2211
2232
  };
2212
- React29.useEffect(() => {
2233
+ React30.useEffect(() => {
2213
2234
  if (currentRating > 0) {
2214
2235
  setAnimate(true);
2215
2236
  const timer = setTimeout(() => setAnimate(false), 150);
@@ -2217,8 +2238,8 @@ var RatingStars = React29.forwardRef(({
2217
2238
  }
2218
2239
  }, [currentRating]);
2219
2240
  const hasRated = currentRating > 0;
2220
- return /* @__PURE__ */ jsx38(TooltipProvider, { children: /* @__PURE__ */ jsxs16(Tooltip, { open, onOpenChange: setOpen, children: [
2221
- /* @__PURE__ */ jsx38(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx38(
2241
+ return /* @__PURE__ */ jsx39(TooltipProvider, { children: /* @__PURE__ */ jsxs16(Tooltip, { open, onOpenChange: setOpen, children: [
2242
+ /* @__PURE__ */ jsx39(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx39(
2222
2243
  Button,
2223
2244
  {
2224
2245
  ref,
@@ -2229,7 +2250,7 @@ var RatingStars = React29.forwardRef(({
2229
2250
  ),
2230
2251
  disabled: isLoading,
2231
2252
  onClick: () => setOpen(!open),
2232
- children: /* @__PURE__ */ jsx38(
2253
+ children: /* @__PURE__ */ jsx39(
2233
2254
  Star,
2234
2255
  {
2235
2256
  className: cn(
@@ -2242,7 +2263,7 @@ var RatingStars = React29.forwardRef(({
2242
2263
  )
2243
2264
  }
2244
2265
  ) }),
2245
- /* @__PURE__ */ jsx38(TooltipContent, { side: "top", align: "center", className: "p-0", children: /* @__PURE__ */ jsx38("div", { className: "p-2 bg-background", children: /* @__PURE__ */ jsx38(
2266
+ /* @__PURE__ */ jsx39(TooltipContent, { side: "top", align: "center", className: "p-0", children: /* @__PURE__ */ jsx39("div", { className: "p-2 bg-background", children: /* @__PURE__ */ jsx39(
2246
2267
  StarRating,
2247
2268
  {
2248
2269
  rating: currentRating,
@@ -2254,10 +2275,10 @@ var RatingStars = React29.forwardRef(({
2254
2275
  RatingStars.displayName = "RatingStars";
2255
2276
 
2256
2277
  // src/components/molecules/rating-thumbs.tsx
2257
- import * as React30 from "react";
2278
+ import * as React31 from "react";
2258
2279
  import { ThumbsUp, ThumbsDown } from "lucide-react";
2259
- import { jsx as jsx39, jsxs as jsxs17 } from "react/jsx-runtime";
2260
- var RatingThumbs = React30.forwardRef(
2280
+ import { jsx as jsx40, jsxs as jsxs17 } from "react/jsx-runtime";
2281
+ var RatingThumbs = React31.forwardRef(
2261
2282
  ({
2262
2283
  currentRating,
2263
2284
  onRate,
@@ -2265,8 +2286,8 @@ var RatingThumbs = React30.forwardRef(
2265
2286
  className,
2266
2287
  isLoading
2267
2288
  }, ref) => {
2268
- const [animate, setAnimate] = React30.useState(false);
2269
- React30.useEffect(() => {
2289
+ const [animate, setAnimate] = React31.useState(false);
2290
+ React31.useEffect(() => {
2270
2291
  if (currentRating) {
2271
2292
  setAnimate(true);
2272
2293
  const timer = setTimeout(() => setAnimate(false), 150);
@@ -2284,7 +2305,7 @@ var RatingThumbs = React30.forwardRef(
2284
2305
  className
2285
2306
  ),
2286
2307
  children: [
2287
- /* @__PURE__ */ jsx39(
2308
+ /* @__PURE__ */ jsx40(
2288
2309
  Button,
2289
2310
  {
2290
2311
  variant: "link",
@@ -2295,7 +2316,7 @@ var RatingThumbs = React30.forwardRef(
2295
2316
  ),
2296
2317
  "aria-label": "Thumbs up",
2297
2318
  disabled: isLoading,
2298
- children: /* @__PURE__ */ jsx39(
2319
+ children: /* @__PURE__ */ jsx40(
2299
2320
  ThumbsUp,
2300
2321
  {
2301
2322
  className: cn(
@@ -2308,7 +2329,7 @@ var RatingThumbs = React30.forwardRef(
2308
2329
  )
2309
2330
  }
2310
2331
  ),
2311
- /* @__PURE__ */ jsx39(
2332
+ /* @__PURE__ */ jsx40(
2312
2333
  Button,
2313
2334
  {
2314
2335
  variant: "link",
@@ -2319,7 +2340,7 @@ var RatingThumbs = React30.forwardRef(
2319
2340
  ),
2320
2341
  "aria-label": "Thumbs down",
2321
2342
  disabled: isLoading,
2322
- children: /* @__PURE__ */ jsx39(
2343
+ children: /* @__PURE__ */ jsx40(
2323
2344
  ThumbsDown,
2324
2345
  {
2325
2346
  className: cn(
@@ -2340,30 +2361,30 @@ var RatingThumbs = React30.forwardRef(
2340
2361
  RatingThumbs.displayName = "RatingThumbs";
2341
2362
 
2342
2363
  // src/components/molecules/rating-comment.tsx
2343
- import * as React31 from "react";
2364
+ import * as React32 from "react";
2344
2365
  import { Book } from "lucide-react";
2345
- import { jsx as jsx40, jsxs as jsxs18 } from "react/jsx-runtime";
2346
- var RatingComment = React31.forwardRef(
2366
+ import { jsx as jsx41, jsxs as jsxs18 } from "react/jsx-runtime";
2367
+ var RatingComment = React32.forwardRef(
2347
2368
  ({ currentRating, onRate, className, isLoading }, ref) => {
2348
- const [open, setOpen] = React31.useState(false);
2349
- const [comment, setComment] = React31.useState("");
2350
- const [animate, setAnimate] = React31.useState(false);
2369
+ const [open, setOpen] = React32.useState(false);
2370
+ const [comment, setComment] = React32.useState("");
2371
+ const [animate, setAnimate] = React32.useState(false);
2351
2372
  const handleRate = () => {
2352
2373
  onRate(comment);
2353
2374
  setOpen(false);
2354
2375
  };
2355
- React31.useEffect(() => {
2376
+ React32.useEffect(() => {
2356
2377
  if (currentRating) {
2357
2378
  setAnimate(true);
2358
2379
  const timer = setTimeout(() => setAnimate(false), 150);
2359
2380
  return () => clearTimeout(timer);
2360
2381
  }
2361
2382
  }, [currentRating]);
2362
- React31.useEffect(() => {
2383
+ React32.useEffect(() => {
2363
2384
  setComment("");
2364
2385
  }, [open]);
2365
2386
  return /* @__PURE__ */ jsxs18(Dialog, { open, onOpenChange: setOpen, children: [
2366
- /* @__PURE__ */ jsx40(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx40(
2387
+ /* @__PURE__ */ jsx41(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx41(
2367
2388
  Button,
2368
2389
  {
2369
2390
  ref,
@@ -2374,7 +2395,7 @@ var RatingComment = React31.forwardRef(
2374
2395
  className
2375
2396
  ),
2376
2397
  disabled: isLoading,
2377
- children: /* @__PURE__ */ jsx40(
2398
+ children: /* @__PURE__ */ jsx41(
2378
2399
  Book,
2379
2400
  {
2380
2401
  className: cn(
@@ -2387,10 +2408,10 @@ var RatingComment = React31.forwardRef(
2387
2408
  )
2388
2409
  }
2389
2410
  ) }),
2390
- /* @__PURE__ */ jsx40(DialogOverlay, { className: "fixed inset-0 bg-black bg-opacity-50" }),
2411
+ /* @__PURE__ */ jsx41(DialogOverlay, { className: "fixed inset-0 bg-black bg-opacity-50" }),
2391
2412
  /* @__PURE__ */ jsxs18(DialogContent, { "aria-describedby": void 0, children: [
2392
- /* @__PURE__ */ jsx40(DialogTitle, { className: "text-lg font-medium", children: "Deja un comentario" }),
2393
- /* @__PURE__ */ jsx40(
2413
+ /* @__PURE__ */ jsx41(DialogTitle, { className: "text-lg font-medium", children: "Deja un comentario" }),
2414
+ /* @__PURE__ */ jsx41(
2394
2415
  "textarea",
2395
2416
  {
2396
2417
  className: "mt-4 w-full p-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-primary",
@@ -2399,7 +2420,7 @@ var RatingComment = React31.forwardRef(
2399
2420
  onChange: (e) => setComment(e.target.value)
2400
2421
  }
2401
2422
  ),
2402
- /* @__PURE__ */ jsx40("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx40(
2423
+ /* @__PURE__ */ jsx41("div", { className: "mt-4 flex justify-end", children: /* @__PURE__ */ jsx41(
2403
2424
  Button,
2404
2425
  {
2405
2426
  onClick: handleRate,
@@ -2414,59 +2435,68 @@ var RatingComment = React31.forwardRef(
2414
2435
  RatingComment.displayName = "RatingComment";
2415
2436
 
2416
2437
  // src/components/molecules/call-out.tsx
2417
- import * as React32 from "react";
2438
+ import * as React33 from "react";
2418
2439
 
2419
2440
  // src/components/hooks/use-text-streaming.ts
2420
- import { useEffect as useEffect10, useRef, useState as useState10 } from "react";
2441
+ import { useState as useState10, useEffect as useEffect10, useRef, useCallback as useCallback2 } from "react";
2421
2442
  var CHAR_DELAY = 25;
2422
- var PUNCTUATION_DELAY = 200;
2423
- var PUNCTUATION_MARKS = [".", "!", "?", ";", ":"];
2443
+ var PUNCTUATION_DELAY = 400;
2424
2444
  function useTextStreaming(content, shouldStream, handleIsTextStreaming) {
2425
- const [displayedContent, setDisplayedContent] = useState10("");
2426
- const timeoutId = useRef(null);
2445
+ const [displayedText, setDisplayedText] = useState10("");
2446
+ const contentRef = useRef(content);
2447
+ const indexRef = useRef(0);
2448
+ const timerRef = useRef(null);
2427
2449
  const hasStartedStreaming = useRef(false);
2428
- const getDelayForChar = (text, position) => {
2429
- if (position === 0) return CHAR_DELAY;
2430
- const previousChar = text[position - 1] || "";
2431
- const isEllipsis = text.slice(position - 1, position + 2) === "...";
2432
- if (isEllipsis) {
2433
- return CHAR_DELAY;
2434
- }
2435
- return PUNCTUATION_MARKS.includes(previousChar) ? PUNCTUATION_DELAY : CHAR_DELAY;
2436
- };
2437
2450
  useEffect10(() => {
2438
- if (!shouldStream && !hasStartedStreaming.current) {
2439
- setDisplayedContent(content);
2440
- handleIsTextStreaming?.(false);
2441
- return;
2451
+ contentRef.current = content;
2452
+ if (hasStartedStreaming.current && !timerRef.current && indexRef.current < contentRef.current.length) {
2453
+ typeNext();
2442
2454
  }
2443
- handleIsTextStreaming?.(true);
2444
- hasStartedStreaming.current = true;
2445
- if (displayedContent.length < content.length) {
2446
- const delay = getDelayForChar(content, displayedContent.length);
2447
- timeoutId.current = setTimeout(() => {
2448
- setDisplayedContent((prev) => prev + content[prev.length]);
2455
+ }, [content]);
2456
+ const typeNext = useCallback2(() => {
2457
+ if (indexRef.current < contentRef.current.length) {
2458
+ const nextChar = contentRef.current.charAt(indexRef.current);
2459
+ setDisplayedText((prev) => prev + nextChar);
2460
+ indexRef.current++;
2461
+ const delay = /[.!?;:]/.test(nextChar) ? PUNCTUATION_DELAY : CHAR_DELAY;
2462
+ timerRef.current = setTimeout(() => {
2463
+ timerRef.current = null;
2464
+ typeNext();
2449
2465
  }, delay);
2450
2466
  } else {
2451
2467
  handleIsTextStreaming?.(false);
2452
2468
  }
2469
+ }, []);
2470
+ useEffect10(() => {
2471
+ if (!shouldStream && !hasStartedStreaming.current) {
2472
+ setDisplayedText(contentRef.current);
2473
+ indexRef.current = contentRef.current.length;
2474
+ if (timerRef.current) {
2475
+ clearTimeout(timerRef.current);
2476
+ timerRef.current = null;
2477
+ }
2478
+ handleIsTextStreaming?.(false);
2479
+ } else {
2480
+ if (indexRef.current < contentRef.current.length && !timerRef.current) {
2481
+ handleIsTextStreaming?.(true);
2482
+ hasStartedStreaming.current = true;
2483
+ typeNext();
2484
+ }
2485
+ }
2453
2486
  return () => {
2454
- if (timeoutId.current) clearTimeout(timeoutId.current);
2487
+ if (timerRef.current) {
2488
+ clearTimeout(timerRef.current);
2489
+ timerRef.current = null;
2490
+ }
2455
2491
  };
2456
- }, [
2457
- content,
2458
- displayedContent,
2459
- shouldStream,
2460
- getDelayForChar,
2461
- handleIsTextStreaming
2462
- ]);
2463
- return displayedContent;
2492
+ }, [shouldStream, typeNext]);
2493
+ return displayedText;
2464
2494
  }
2465
2495
 
2466
2496
  // src/components/molecules/call-out.tsx
2467
- import { jsx as jsx41, jsxs as jsxs19 } from "react/jsx-runtime";
2468
- var CallOut = React32.forwardRef(({ className, children, role, ...props }, ref) => {
2469
- return /* @__PURE__ */ jsx41(
2497
+ import { jsx as jsx42, jsxs as jsxs19 } from "react/jsx-runtime";
2498
+ var CallOut = React33.forwardRef(({ className, children, role, ...props }, ref) => {
2499
+ return /* @__PURE__ */ jsx42(
2470
2500
  "div",
2471
2501
  {
2472
2502
  ref,
@@ -2477,8 +2507,8 @@ var CallOut = React32.forwardRef(({ className, children, role, ...props }, ref)
2477
2507
  }
2478
2508
  );
2479
2509
  });
2480
- var CallOutDate = React32.forwardRef(({ className, children, ...props }, ref) => {
2481
- return /* @__PURE__ */ jsx41(
2510
+ var CallOutDate = React33.forwardRef(({ className, children, ...props }, ref) => {
2511
+ return /* @__PURE__ */ jsx42(
2482
2512
  "div",
2483
2513
  {
2484
2514
  ref,
@@ -2492,13 +2522,13 @@ var CallOutDate = React32.forwardRef(({ className, children, ...props }, ref) =>
2492
2522
  }
2493
2523
  );
2494
2524
  });
2495
- var CallOutActions = React32.forwardRef(({ className, actions, role, message, ...props }, ref) => {
2496
- const [isLoading, setIsLoading] = React32.useState(false);
2497
- const [isClicked, setIsClicked] = React32.useState(false);
2525
+ var CallOutActions = React33.forwardRef(({ className, actions, role, message, ...props }, ref) => {
2526
+ const [isLoading, setIsLoading] = React33.useState(false);
2527
+ const [isClicked, setIsClicked] = React33.useState(false);
2498
2528
  if (role === "user") {
2499
2529
  return null;
2500
2530
  }
2501
- return /* @__PURE__ */ jsx41("div", { ref, className: cn("alq--callout-actions", className), ...props, children: actions.map((action) => /* @__PURE__ */ jsxs19(
2531
+ return /* @__PURE__ */ jsx42("div", { ref, className: cn("alq--callout-actions", className), ...props, children: actions.map((action) => /* @__PURE__ */ jsxs19(
2502
2532
  "button",
2503
2533
  {
2504
2534
  className: cn(
@@ -2520,7 +2550,7 @@ var CallOutActions = React32.forwardRef(({ className, actions, role, message, ..
2520
2550
  });
2521
2551
  },
2522
2552
  children: [
2523
- /* @__PURE__ */ jsx41(
2553
+ /* @__PURE__ */ jsx42(
2524
2554
  "span",
2525
2555
  {
2526
2556
  className: cn("alq-action-icon-wrapper", {
@@ -2529,13 +2559,13 @@ var CallOutActions = React32.forwardRef(({ className, actions, role, message, ..
2529
2559
  children: action.icon
2530
2560
  }
2531
2561
  ),
2532
- /* @__PURE__ */ jsx41("label", { children: action.label })
2562
+ /* @__PURE__ */ jsx42("label", { children: action.label })
2533
2563
  ]
2534
2564
  },
2535
2565
  action.label
2536
2566
  )) });
2537
2567
  });
2538
- var CallOutResponse = React32.forwardRef(
2568
+ var CallOutResponse = React33.forwardRef(
2539
2569
  ({ className, children, role, additionalInfo, isStreaming, handleIsTextStreaming, ...props }, ref) => {
2540
2570
  const content = String(children || "");
2541
2571
  const shouldStream = role === "assistant" && isStreaming;
@@ -2553,8 +2583,8 @@ var CallOutResponse = React32.forwardRef(
2553
2583
  ),
2554
2584
  ...props,
2555
2585
  children: [
2556
- /* @__PURE__ */ jsx41(RichText, { content: displayedContent }),
2557
- additionalInfo && /* @__PURE__ */ jsx41(
2586
+ /* @__PURE__ */ jsx42(RichText, { content: displayedContent }),
2587
+ additionalInfo && /* @__PURE__ */ jsx42(
2558
2588
  "div",
2559
2589
  {
2560
2590
  className: cn(
@@ -2577,8 +2607,8 @@ CallOutResponse.displayName = "CallOutResponse";
2577
2607
 
2578
2608
  // src/components/organisms/assistant.tsx
2579
2609
  import { Send } from "lucide-react";
2580
- import { jsx as jsx42, jsxs as jsxs20 } from "react/jsx-runtime";
2581
- var Assistant = React33.forwardRef(
2610
+ import { jsx as jsx43, jsxs as jsxs20 } from "react/jsx-runtime";
2611
+ var Assistant = React34.forwardRef(
2582
2612
  ({ className, sdk, title, description, children, ...props }, ref) => {
2583
2613
  return /* @__PURE__ */ jsxs20(
2584
2614
  "div",
@@ -2588,8 +2618,8 @@ var Assistant = React33.forwardRef(
2588
2618
  ...props,
2589
2619
  children: [
2590
2620
  (title || description) && /* @__PURE__ */ jsxs20(AssistantHeader, { children: [
2591
- title && /* @__PURE__ */ jsx42(AssistantTitle, { title }),
2592
- description && /* @__PURE__ */ jsx42(AssistantDescription, { description })
2621
+ title && /* @__PURE__ */ jsx43(AssistantTitle, { title }),
2622
+ description && /* @__PURE__ */ jsx43(AssistantDescription, { description })
2593
2623
  ] }),
2594
2624
  children
2595
2625
  ]
@@ -2598,14 +2628,14 @@ var Assistant = React33.forwardRef(
2598
2628
  }
2599
2629
  );
2600
2630
  Assistant.displayName = "Assistant";
2601
- var AssistantTitle = React33.forwardRef(
2602
- ({ className, title, ...props }, ref) => /* @__PURE__ */ jsx42("div", { ref, className: cn("text-foreground", className), ...props, children: /* @__PURE__ */ jsx42(Typography, { typeStyle: "heading1", as: "h1", children: title }) })
2631
+ var AssistantTitle = React34.forwardRef(
2632
+ ({ className, title, ...props }, ref) => /* @__PURE__ */ jsx43("div", { ref, className: cn("text-foreground", className), ...props, children: /* @__PURE__ */ jsx43(Typography, { typeStyle: "heading1", as: "h1", children: title }) })
2603
2633
  );
2604
2634
  AssistantTitle.displayName = "AssistantTitle";
2605
- var AssistantDescription = React33.forwardRef(({ className, description, ...props }, ref) => /* @__PURE__ */ jsx42("div", { ref, className: cn("text-foreground", className), ...props, children: /* @__PURE__ */ jsx42(Typography, { typeStyle: "display", as: "p", children: description }) }));
2635
+ var AssistantDescription = React34.forwardRef(({ className, description, ...props }, ref) => /* @__PURE__ */ jsx43("div", { ref, className: cn("text-foreground", className), ...props, children: /* @__PURE__ */ jsx43(Typography, { typeStyle: "display", as: "p", children: description }) }));
2606
2636
  AssistantDescription.displayName = "AssistantDescription";
2607
- var AssistantHeader = React33.forwardRef(
2608
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx42(
2637
+ var AssistantHeader = React34.forwardRef(
2638
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx43(
2609
2639
  "div",
2610
2640
  {
2611
2641
  ref,
@@ -2616,7 +2646,7 @@ var AssistantHeader = React33.forwardRef(
2616
2646
  )
2617
2647
  );
2618
2648
  AssistantHeader.displayName = "AssistantHeader";
2619
- var AssistantMessageArea = React33.forwardRef(
2649
+ var AssistantMessageArea = React34.forwardRef(
2620
2650
  ({
2621
2651
  className,
2622
2652
  messages,
@@ -2625,6 +2655,7 @@ var AssistantMessageArea = React33.forwardRef(
2625
2655
  streamingMessageId,
2626
2656
  thinkIndicator,
2627
2657
  handleIsTextStreaming,
2658
+ toolFactory,
2628
2659
  ...props
2629
2660
  }, ref) => {
2630
2661
  useEffect11(() => {
@@ -2637,13 +2668,13 @@ var AssistantMessageArea = React33.forwardRef(
2637
2668
  className: cn("p-6 overflow-y-auto flex-grow bg-background", className),
2638
2669
  ...props,
2639
2670
  children: [
2640
- messages.map((message) => /* @__PURE__ */ jsx42("div", { children: /* @__PURE__ */ jsxs20(
2671
+ messages.map((message) => /* @__PURE__ */ jsx43("div", { children: /* @__PURE__ */ jsxs20(
2641
2672
  CallOut,
2642
2673
  {
2643
2674
  role: message.role,
2644
2675
  message,
2645
2676
  children: [
2646
- message.created_at && /* @__PURE__ */ jsx42("div", { className: "text-xs text-muted-foreground/80 pb-1", children: new Date(Number(message.created_at)).toLocaleString("es-ES", {
2677
+ message.created_at && /* @__PURE__ */ jsx43("div", { className: "text-xs text-muted-foreground/80 pb-1", children: new Date(Number(message.created_at)).toLocaleString("es-ES", {
2647
2678
  day: "2-digit",
2648
2679
  month: "2-digit",
2649
2680
  year: "numeric",
@@ -2652,8 +2683,8 @@ var AssistantMessageArea = React33.forwardRef(
2652
2683
  second: "2-digit",
2653
2684
  hour12: false
2654
2685
  }) }),
2655
- message.loading && /* @__PURE__ */ jsx42("div", { children: thinkIndicator ?? /* @__PURE__ */ jsx42(ThinkIndicator, {}) }),
2656
- message.error_code && /* @__PURE__ */ jsx42(
2686
+ message.loading && /* @__PURE__ */ jsx43("div", { children: thinkIndicator ?? /* @__PURE__ */ jsx43(ThinkIndicator, {}) }),
2687
+ message.error_code && /* @__PURE__ */ jsx43(
2657
2688
  CallOutResponse,
2658
2689
  {
2659
2690
  role: "assistant",
@@ -2661,7 +2692,8 @@ var AssistantMessageArea = React33.forwardRef(
2661
2692
  children: "We have an internal error, please try again later."
2662
2693
  }
2663
2694
  ),
2664
- message.content && /* @__PURE__ */ jsx42(
2695
+ message.tooler && message.tooler?.tool_output && !message.error_code && toolFactory?.createTool(message.tooler?.tool_summary?.name, message.tooler?.tool_output?.result),
2696
+ message.content && /* @__PURE__ */ jsx43(
2665
2697
  CallOutResponse,
2666
2698
  {
2667
2699
  role: message.role,
@@ -2671,7 +2703,7 @@ var AssistantMessageArea = React33.forwardRef(
2671
2703
  children: message.content
2672
2704
  }
2673
2705
  ),
2674
- actions && streamingMessageId !== message.id && /* @__PURE__ */ jsx42(
2706
+ actions && streamingMessageId !== message.id && /* @__PURE__ */ jsx43(
2675
2707
  CallOutActions,
2676
2708
  {
2677
2709
  actions,
@@ -2684,14 +2716,14 @@ var AssistantMessageArea = React33.forwardRef(
2684
2716
  },
2685
2717
  message.id
2686
2718
  ) }, message.id)),
2687
- /* @__PURE__ */ jsx42("div", { ref: messagesEndRef })
2719
+ /* @__PURE__ */ jsx43("div", { ref: messagesEndRef })
2688
2720
  ]
2689
2721
  }
2690
2722
  );
2691
2723
  }
2692
2724
  );
2693
2725
  AssistantMessageArea.displayName = "AssistantMessageArea";
2694
- var AssistantInput = React33.forwardRef(
2726
+ var AssistantInput = React34.forwardRef(
2695
2727
  ({
2696
2728
  className,
2697
2729
  sendMessageFunc,
@@ -2709,7 +2741,7 @@ var AssistantInput = React33.forwardRef(
2709
2741
  ref,
2710
2742
  ...props,
2711
2743
  children: [
2712
- /* @__PURE__ */ jsx42(
2744
+ /* @__PURE__ */ jsx43(
2713
2745
  "input",
2714
2746
  {
2715
2747
  type: "text",
@@ -2726,7 +2758,7 @@ var AssistantInput = React33.forwardRef(
2726
2758
  )
2727
2759
  }
2728
2760
  ),
2729
- /* @__PURE__ */ jsx42(
2761
+ /* @__PURE__ */ jsx43(
2730
2762
  "button",
2731
2763
  {
2732
2764
  type: "submit",
@@ -2735,7 +2767,7 @@ var AssistantInput = React33.forwardRef(
2735
2767
  "w-10 h-10 rounded-full flex items-center justify-center alq--assistant-button-send",
2736
2768
  isButtonDisabled ? "bg-muted text-muted-foreground" : "bg-primary text-primary-foreground hover:bg-primary/90"
2737
2769
  ),
2738
- children: /* @__PURE__ */ jsx42(Send, { className: "w-5 h-5" })
2770
+ children: /* @__PURE__ */ jsx43(Send, { className: "w-5 h-5" })
2739
2771
  }
2740
2772
  )
2741
2773
  ]
@@ -2755,7 +2787,7 @@ import { useState as useState12 } from "react";
2755
2787
  import { useEffect as useEffect12, useRef as useRef2 } from "react";
2756
2788
 
2757
2789
  // src/components/organisms/rating-dialog.tsx
2758
- import { jsx as jsx43, jsxs as jsxs21 } from "react/jsx-runtime";
2790
+ import { jsx as jsx44, jsxs as jsxs21 } from "react/jsx-runtime";
2759
2791
  function RatingDialog({
2760
2792
  sendRating,
2761
2793
  topicId,
@@ -2771,20 +2803,20 @@ function RatingDialog({
2771
2803
  success ? setHasRatedTopic(true) : toast2({
2772
2804
  title: "Error",
2773
2805
  description: `Hubo un error al enviar la calificaci\xF3n`,
2774
- action: /* @__PURE__ */ jsx43(ToastAction, { altText: "Goto schedule to undo", children: "Cerrar" })
2806
+ action: /* @__PURE__ */ jsx44(ToastAction, { altText: "Goto schedule to undo", children: "Cerrar" })
2775
2807
  });
2776
2808
  };
2777
2809
  const handleCancelRate = () => {
2778
2810
  setHasRatedTopic(true);
2779
2811
  onOpenChange(false);
2780
2812
  };
2781
- return /* @__PURE__ */ jsx43(Dialog, { open: isOpen, onOpenChange, children: /* @__PURE__ */ jsxs21(DialogContent, { className: "sm:max-w-md", children: [
2813
+ return /* @__PURE__ */ jsx44(Dialog, { open: isOpen, onOpenChange, children: /* @__PURE__ */ jsxs21(DialogContent, { className: "sm:max-w-md", children: [
2782
2814
  /* @__PURE__ */ jsxs21(DialogHeader, { children: [
2783
- /* @__PURE__ */ jsx43(DialogTitle, { children: "Calific\xE1 esta conversaci\xF3n" }),
2784
- /* @__PURE__ */ jsx43(DialogDescription, { children: "Por favor, compart\xED tu opini\xF3n sobre el asistente." })
2815
+ /* @__PURE__ */ jsx44(DialogTitle, { children: "Calific\xE1 esta conversaci\xF3n" }),
2816
+ /* @__PURE__ */ jsx44(DialogDescription, { children: "Por favor, compart\xED tu opini\xF3n sobre el asistente." })
2785
2817
  ] }),
2786
2818
  /* @__PURE__ */ jsxs21("div", { className: "flex flex-row justify-center gap-4 py-4", children: [
2787
- /* @__PURE__ */ jsx43(
2819
+ /* @__PURE__ */ jsx44(
2788
2820
  RatingStars,
2789
2821
  {
2790
2822
  currentRating: ratingStars,
@@ -2793,7 +2825,7 @@ function RatingDialog({
2793
2825
  className: "p-2 rounded"
2794
2826
  }
2795
2827
  ),
2796
- /* @__PURE__ */ jsx43(
2828
+ /* @__PURE__ */ jsx44(
2797
2829
  RatingThumbs,
2798
2830
  {
2799
2831
  currentRating: ratingComment,
@@ -2802,7 +2834,7 @@ function RatingDialog({
2802
2834
  isLoading
2803
2835
  }
2804
2836
  ),
2805
- /* @__PURE__ */ jsx43(
2837
+ /* @__PURE__ */ jsx44(
2806
2838
  RatingComment,
2807
2839
  {
2808
2840
  currentRating: ratingComment,
@@ -2811,7 +2843,7 @@ function RatingDialog({
2811
2843
  }
2812
2844
  )
2813
2845
  ] }),
2814
- /* @__PURE__ */ jsx43("div", { className: "flex flex-row justify-center gap-4", children: /* @__PURE__ */ jsx43(Button, { onClick: handleCancelRate, variant: "secondary", children: /* @__PURE__ */ jsx43(Typography, { as: "p", typeStyle: "tiny", children: "No, gracias." }) }) })
2846
+ /* @__PURE__ */ jsx44("div", { className: "flex flex-row justify-center gap-4", children: /* @__PURE__ */ jsx44(Button, { onClick: handleCancelRate, variant: "secondary", children: /* @__PURE__ */ jsx44(Typography, { as: "p", typeStyle: "tiny", children: "No, gracias." }) }) })
2815
2847
  ] }) });
2816
2848
  }
2817
2849
  export {