@alquimia-ai/ui 1.2.1 → 1.2.4

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 (101) hide show
  1. package/dist/components/hooks/index.js +41 -32
  2. package/dist/components/hooks/index.js.map +1 -1
  3. package/dist/components/hooks/index.mjs +42 -33
  4. package/dist/components/hooks/index.mjs.map +1 -1
  5. package/dist/components/molecules/index.js +41 -32
  6. package/dist/components/molecules/index.js.map +1 -1
  7. package/dist/components/molecules/index.mjs +42 -33
  8. package/dist/components/molecules/index.mjs.map +1 -1
  9. package/dist/components/organisms/index.js +41 -32
  10. package/dist/components/organisms/index.js.map +1 -1
  11. package/dist/components/organisms/index.mjs +42 -33
  12. package/dist/components/organisms/index.mjs.map +1 -1
  13. package/dist/index.js +41 -32
  14. package/dist/index.js.map +1 -1
  15. package/dist/index.mjs +42 -33
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/package.json +136 -0
  18. package/package.json +50 -53
  19. package/src/components/atoms/index.ts +0 -32
  20. package/src/components/atoms/ui/alert.tsx +0 -59
  21. package/src/components/atoms/ui/aspect-ratio.tsx +0 -7
  22. package/src/components/atoms/ui/avatar.tsx +0 -50
  23. package/src/components/atoms/ui/badge.tsx +0 -36
  24. package/src/components/atoms/ui/breadcrumb.tsx +0 -120
  25. package/src/components/atoms/ui/button.tsx +0 -56
  26. package/src/components/atoms/ui/card.tsx +0 -87
  27. package/src/components/atoms/ui/checkbox.tsx +0 -31
  28. package/src/components/atoms/ui/command.tsx +0 -155
  29. package/src/components/atoms/ui/dialog.tsx +0 -125
  30. package/src/components/atoms/ui/drawer.tsx +0 -119
  31. package/src/components/atoms/ui/input.tsx +0 -26
  32. package/src/components/atoms/ui/label.tsx +0 -26
  33. package/src/components/atoms/ui/loader.tsx +0 -52
  34. package/src/components/atoms/ui/popover.tsx +0 -31
  35. package/src/components/atoms/ui/rich-text.tsx +0 -19
  36. package/src/components/atoms/ui/scroll-area.tsx +0 -48
  37. package/src/components/atoms/ui/select.tsx +0 -160
  38. package/src/components/atoms/ui/skeleton.tsx +0 -15
  39. package/src/components/atoms/ui/slider.tsx +0 -29
  40. package/src/components/atoms/ui/switch.tsx +0 -30
  41. package/src/components/atoms/ui/table.tsx +0 -118
  42. package/src/components/atoms/ui/tabs.tsx +0 -56
  43. package/src/components/atoms/ui/text-area/index.tsx +0 -24
  44. package/src/components/atoms/ui/textarea.tsx +0 -25
  45. package/src/components/atoms/ui/think-indicator.tsx +0 -103
  46. package/src/components/atoms/ui/toast.tsx +0 -129
  47. package/src/components/atoms/ui/toaster.tsx +0 -38
  48. package/src/components/atoms/ui/toggle.tsx +0 -45
  49. package/src/components/atoms/ui/typography/index.tsx +0 -30
  50. package/src/components/hooks/index.ts +0 -4
  51. package/src/components/hooks/use-document.tsx +0 -44
  52. package/src/components/hooks/use-resize-observer.ts +0 -28
  53. package/src/components/hooks/use-text-streaming.ts +0 -63
  54. package/src/components/hooks/use-toast.ts +0 -194
  55. package/src/components/index.ts +0 -1
  56. package/src/components/molecules/alert-dialog.tsx +0 -141
  57. package/src/components/molecules/assistant-button.tsx +0 -148
  58. package/src/components/molecules/call-out.tsx +0 -163
  59. package/src/components/molecules/carousel.tsx +0 -262
  60. package/src/components/molecules/documents/document-selector.tsx +0 -79
  61. package/src/components/molecules/documents/document-viewer.tsx +0 -85
  62. package/src/components/molecules/documents/index.ts +0 -2
  63. package/src/components/molecules/index.ts +0 -11
  64. package/src/components/molecules/navigation-menu.tsx +0 -128
  65. package/src/components/molecules/page-container.tsx +0 -17
  66. package/src/components/molecules/rating-comment.tsx +0 -93
  67. package/src/components/molecules/rating-stars.tsx +0 -136
  68. package/src/components/molecules/rating-thumbs.tsx +0 -90
  69. package/src/components/molecules/sidebar.tsx +0 -107
  70. package/src/components/molecules/sonner.tsx +0 -30
  71. package/src/components/molecules/viewers/index.ts +0 -2
  72. package/src/components/molecules/viewers/pdf-viewer.tsx +0 -138
  73. package/src/components/molecules/viewers/plain-text-viewer.tsx +0 -40
  74. package/src/components/organisms/assistant.tsx +0 -271
  75. package/src/components/organisms/index.ts +0 -6
  76. package/src/components/organisms/rating-dialog.tsx +0 -104
  77. package/src/components/organisms/speechToText.tsx +0 -92
  78. package/src/components/organisms/whisper.tsx +0 -106
  79. package/src/components/templates/cards/index.ts +0 -2
  80. package/src/components/templates/cards/with-image-heading-description-avatar.tsx +0 -94
  81. package/src/components/templates/cards/with-image-heading-description.tsx +0 -63
  82. package/src/components/templates/hero/index.tsx +0 -39
  83. package/src/components/templates/index.ts +0 -4
  84. package/src/components/templates/messages-window.tsx +0 -15
  85. package/src/components/templates/query-box.tsx +0 -13
  86. package/src/components/ui/input.tsx +0 -25
  87. package/src/components/ui/select.tsx +0 -163
  88. package/src/index.ts +0 -7
  89. package/src/lib/index.ts +0 -1
  90. package/src/lib/utils.ts +0 -34
  91. package/src/styles/call-out.css +0 -153
  92. package/src/styles/drawer.css +0 -28
  93. package/src/styles/globals.css +0 -69
  94. package/src/styles/prose.css +0 -51
  95. package/src/styles/ratings.css +0 -27
  96. package/src/styles/themes/base-alquimia.css +0 -95
  97. package/src/styles/themes/base-nordic.css +0 -83
  98. package/src/styles/themes/base-primary.css +0 -85
  99. package/src/styles/themes/base.css +0 -8
  100. package/src/types/index.ts +0 -1
  101. package/src/types/type.ts +0 -76
@@ -2171,50 +2171,59 @@ RatingComment.displayName = "RatingComment";
2171
2171
  import * as React32 from "react";
2172
2172
 
2173
2173
  // src/components/hooks/use-text-streaming.ts
2174
- import { useEffect as useEffect8, useRef, useState as useState8 } from "react";
2174
+ import { useState as useState8, useEffect as useEffect8, useRef, useCallback as useCallback2 } from "react";
2175
2175
  var CHAR_DELAY = 25;
2176
- var PUNCTUATION_DELAY = 200;
2177
- var PUNCTUATION_MARKS = [".", "!", "?", ";", ":"];
2176
+ var PUNCTUATION_DELAY = 400;
2178
2177
  function useTextStreaming(content, shouldStream, handleIsTextStreaming) {
2179
- const [displayedContent, setDisplayedContent] = useState8("");
2180
- const timeoutId = useRef(null);
2178
+ const [displayedText, setDisplayedText] = useState8("");
2179
+ const contentRef = useRef(content);
2180
+ const indexRef = useRef(0);
2181
+ const timerRef = useRef(null);
2181
2182
  const hasStartedStreaming = useRef(false);
2182
- const getDelayForChar = (text, position) => {
2183
- if (position === 0) return CHAR_DELAY;
2184
- const previousChar = text[position - 1] || "";
2185
- const isEllipsis = text.slice(position - 1, position + 2) === "...";
2186
- if (isEllipsis) {
2187
- return CHAR_DELAY;
2188
- }
2189
- return PUNCTUATION_MARKS.includes(previousChar) ? PUNCTUATION_DELAY : CHAR_DELAY;
2190
- };
2191
2183
  useEffect8(() => {
2192
- if (!shouldStream && !hasStartedStreaming.current) {
2193
- setDisplayedContent(content);
2194
- handleIsTextStreaming?.(false);
2195
- return;
2184
+ contentRef.current = content;
2185
+ if (hasStartedStreaming.current && !timerRef.current && indexRef.current < contentRef.current.length) {
2186
+ typeNext();
2196
2187
  }
2197
- handleIsTextStreaming?.(true);
2198
- hasStartedStreaming.current = true;
2199
- if (displayedContent.length < content.length) {
2200
- const delay = getDelayForChar(content, displayedContent.length);
2201
- timeoutId.current = setTimeout(() => {
2202
- setDisplayedContent((prev) => prev + content[prev.length]);
2188
+ }, [content]);
2189
+ const typeNext = useCallback2(() => {
2190
+ if (indexRef.current < contentRef.current.length) {
2191
+ const nextChar = contentRef.current.charAt(indexRef.current);
2192
+ setDisplayedText((prev) => prev + nextChar);
2193
+ indexRef.current++;
2194
+ const delay = /[.!?;:]/.test(nextChar) ? PUNCTUATION_DELAY : CHAR_DELAY;
2195
+ timerRef.current = setTimeout(() => {
2196
+ timerRef.current = null;
2197
+ typeNext();
2203
2198
  }, delay);
2204
2199
  } else {
2205
2200
  handleIsTextStreaming?.(false);
2206
2201
  }
2202
+ }, []);
2203
+ useEffect8(() => {
2204
+ if (!shouldStream && !hasStartedStreaming.current) {
2205
+ setDisplayedText(contentRef.current);
2206
+ indexRef.current = contentRef.current.length;
2207
+ if (timerRef.current) {
2208
+ clearTimeout(timerRef.current);
2209
+ timerRef.current = null;
2210
+ }
2211
+ handleIsTextStreaming?.(false);
2212
+ } else {
2213
+ if (indexRef.current < contentRef.current.length && !timerRef.current) {
2214
+ handleIsTextStreaming?.(true);
2215
+ hasStartedStreaming.current = true;
2216
+ typeNext();
2217
+ }
2218
+ }
2207
2219
  return () => {
2208
- if (timeoutId.current) clearTimeout(timeoutId.current);
2220
+ if (timerRef.current) {
2221
+ clearTimeout(timerRef.current);
2222
+ timerRef.current = null;
2223
+ }
2209
2224
  };
2210
- }, [
2211
- content,
2212
- displayedContent,
2213
- shouldStream,
2214
- getDelayForChar,
2215
- handleIsTextStreaming
2216
- ]);
2217
- return displayedContent;
2225
+ }, [shouldStream, typeNext]);
2226
+ return displayedText;
2218
2227
  }
2219
2228
 
2220
2229
  // src/components/molecules/call-out.tsx