@flowtomic/ui 0.1.15 → 0.2.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 (152) hide show
  1. package/dist/components/_reference/shadcn-ai/prompt-input.d.ts +48 -0
  2. package/dist/components/_reference/shadcn-ai/prompt-input.d.ts.map +1 -0
  3. package/dist/components/_reference/shadcn-ai/prompt-input.js +67 -0
  4. package/dist/components/atoms/actions/badge/badge.d.ts +97 -1
  5. package/dist/components/atoms/actions/badge/badge.d.ts.map +1 -1
  6. package/dist/components/atoms/actions/badge/badge.js +83 -0
  7. package/dist/components/atoms/actions/button/button.d.ts +134 -1
  8. package/dist/components/atoms/actions/button/button.d.ts.map +1 -1
  9. package/dist/components/atoms/actions/button/button.js +106 -0
  10. package/dist/components/atoms/actions/context-menu/context-menu.d.ts +79 -0
  11. package/dist/components/atoms/actions/context-menu/context-menu.d.ts.map +1 -1
  12. package/dist/components/atoms/actions/context-menu/context-menu.js +55 -0
  13. package/dist/components/atoms/actions/dropdown-menu/dropdown-menu.d.ts +51 -3
  14. package/dist/components/atoms/actions/dropdown-menu/dropdown-menu.d.ts.map +1 -1
  15. package/dist/components/atoms/actions/dropdown-menu/dropdown-menu.js +51 -3
  16. package/dist/components/atoms/animation/encrypted-text/encrypted-text.d.ts.map +1 -1
  17. package/dist/components/atoms/animation/encrypted-text/encrypted-text.js +3 -1
  18. package/dist/components/atoms/feedback/alert/alert.d.ts +77 -12
  19. package/dist/components/atoms/feedback/alert/alert.d.ts.map +1 -1
  20. package/dist/components/atoms/feedback/alert/alert.js +64 -12
  21. package/dist/components/atoms/feedback/alert-dialog/alert-dialog.d.ts +2 -2
  22. package/dist/components/atoms/feedback/dialog/dialog.d.ts +66 -8
  23. package/dist/components/atoms/feedback/dialog/dialog.d.ts.map +1 -1
  24. package/dist/components/atoms/feedback/dialog/dialog.js +66 -8
  25. package/dist/components/atoms/feedback/hover-card/hover-card.d.ts +45 -5
  26. package/dist/components/atoms/feedback/hover-card/hover-card.d.ts.map +1 -1
  27. package/dist/components/atoms/feedback/hover-card/hover-card.js +45 -5
  28. package/dist/components/atoms/feedback/inline-citation/inline-citation.d.ts +53 -2
  29. package/dist/components/atoms/feedback/inline-citation/inline-citation.d.ts.map +1 -1
  30. package/dist/components/atoms/feedback/inline-citation/inline-citation.js +53 -2
  31. package/dist/components/atoms/feedback/popover/popover.d.ts +78 -0
  32. package/dist/components/atoms/feedback/popover/popover.d.ts.map +1 -1
  33. package/dist/components/atoms/feedback/popover/popover.js +64 -0
  34. package/dist/components/atoms/feedback/sheet/sheet.d.ts +90 -0
  35. package/dist/components/atoms/feedback/sheet/sheet.d.ts.map +1 -1
  36. package/dist/components/atoms/feedback/sheet/sheet.js +78 -0
  37. package/dist/components/atoms/feedback/sonner/sonner.d.ts +66 -6
  38. package/dist/components/atoms/feedback/sonner/sonner.d.ts.map +1 -1
  39. package/dist/components/atoms/feedback/sonner/sonner.js +66 -6
  40. package/dist/components/atoms/feedback/tooltip/tooltip.d.ts +54 -4
  41. package/dist/components/atoms/feedback/tooltip/tooltip.d.ts.map +1 -1
  42. package/dist/components/atoms/feedback/tooltip/tooltip.js +63 -5
  43. package/dist/components/atoms/forms/checkbox/checkbox.d.ts +62 -4
  44. package/dist/components/atoms/forms/checkbox/checkbox.d.ts.map +1 -1
  45. package/dist/components/atoms/forms/checkbox/checkbox.js +58 -4
  46. package/dist/components/atoms/forms/field/field.d.ts +67 -0
  47. package/dist/components/atoms/forms/field/field.d.ts.map +1 -1
  48. package/dist/components/atoms/forms/field/field.js +47 -0
  49. package/dist/components/atoms/forms/form/form.d.ts +60 -0
  50. package/dist/components/atoms/forms/form/form.d.ts.map +1 -1
  51. package/dist/components/atoms/forms/form/form.js +3 -0
  52. package/dist/components/atoms/forms/input/input.d.ts +100 -1
  53. package/dist/components/atoms/forms/input/input.d.ts.map +1 -1
  54. package/dist/components/atoms/forms/input/input.js +82 -0
  55. package/dist/components/atoms/forms/input-otp/input-otp.d.ts +62 -0
  56. package/dist/components/atoms/forms/input-otp/input-otp.d.ts.map +1 -1
  57. package/dist/components/atoms/forms/input-otp/input-otp.js +50 -0
  58. package/dist/components/atoms/forms/label/label.d.ts +54 -0
  59. package/dist/components/atoms/forms/label/label.d.ts.map +1 -1
  60. package/dist/components/atoms/forms/label/label.js +50 -0
  61. package/dist/components/atoms/forms/radio-group/radio-group.d.ts +47 -0
  62. package/dist/components/atoms/forms/radio-group/radio-group.d.ts.map +1 -1
  63. package/dist/components/atoms/forms/radio-group/radio-group.js +43 -0
  64. package/dist/components/atoms/forms/select/select.d.ts +62 -0
  65. package/dist/components/atoms/forms/select/select.d.ts.map +1 -1
  66. package/dist/components/atoms/forms/select/select.js +62 -0
  67. package/dist/components/atoms/forms/slider/slider.d.ts +60 -0
  68. package/dist/components/atoms/forms/slider/slider.d.ts.map +1 -1
  69. package/dist/components/atoms/forms/slider/slider.js +53 -1
  70. package/dist/components/atoms/forms/switch/switch.d.ts +67 -0
  71. package/dist/components/atoms/forms/switch/switch.d.ts.map +1 -1
  72. package/dist/components/atoms/forms/switch/switch.js +63 -0
  73. package/dist/components/atoms/forms/textarea/textarea.d.ts +66 -0
  74. package/dist/components/atoms/forms/textarea/textarea.d.ts.map +1 -1
  75. package/dist/components/atoms/forms/textarea/textarea.js +13 -0
  76. package/dist/components/atoms/forms/toggle/toggle.d.ts +65 -1
  77. package/dist/components/atoms/forms/toggle/toggle.d.ts.map +1 -1
  78. package/dist/components/atoms/forms/toggle/toggle.js +58 -0
  79. package/dist/components/atoms/index.d.ts +0 -2
  80. package/dist/components/atoms/index.d.ts.map +1 -1
  81. package/dist/components/atoms/index.js +0 -1
  82. package/dist/components/atoms/layout/accordion/accordion.d.ts +84 -0
  83. package/dist/components/atoms/layout/accordion/accordion.d.ts.map +1 -1
  84. package/dist/components/atoms/layout/accordion/accordion.js +72 -0
  85. package/dist/components/atoms/layout/aspect-ratio/aspect-ratio.d.ts +54 -0
  86. package/dist/components/atoms/layout/aspect-ratio/aspect-ratio.d.ts.map +1 -1
  87. package/dist/components/atoms/layout/aspect-ratio/aspect-ratio.js +49 -0
  88. package/dist/components/atoms/layout/collapsible/collapsible.d.ts +47 -5
  89. package/dist/components/atoms/layout/collapsible/collapsible.d.ts.map +1 -1
  90. package/dist/components/atoms/layout/collapsible/collapsible.js +47 -5
  91. package/dist/components/atoms/layout/drawer/drawer.d.ts +55 -0
  92. package/dist/components/atoms/layout/drawer/drawer.d.ts.map +1 -1
  93. package/dist/components/atoms/layout/index.d.ts +2 -0
  94. package/dist/components/atoms/layout/index.d.ts.map +1 -1
  95. package/dist/components/atoms/layout/index.js +1 -0
  96. package/dist/components/atoms/layout/resizable/resizable.d.ts +77 -2
  97. package/dist/components/atoms/layout/resizable/resizable.d.ts.map +1 -1
  98. package/dist/components/atoms/layout/resizable/resizable.js +68 -0
  99. package/dist/components/atoms/layout/scroll-area/scroll-area.d.ts +34 -2
  100. package/dist/components/atoms/layout/scroll-area/scroll-area.d.ts.map +1 -1
  101. package/dist/components/atoms/layout/scroll-area/scroll-area.js +35 -3
  102. package/dist/components/atoms/layout/sidebar/sidebar.d.ts +66 -1
  103. package/dist/components/atoms/layout/sidebar/sidebar.d.ts.map +1 -1
  104. package/dist/components/atoms/layout/sidebar/sidebar.js +66 -0
  105. package/dist/components/atoms/layout/toggle-group/toggle-group.d.ts +73 -0
  106. package/dist/components/atoms/layout/toggle-group/toggle-group.d.ts.map +1 -1
  107. package/dist/components/atoms/layout/toggle-group/toggle-group.js +57 -0
  108. package/dist/components/atoms/layout/widget-resize-handle/index.d.ts +3 -0
  109. package/dist/components/atoms/layout/widget-resize-handle/index.d.ts.map +1 -0
  110. package/dist/components/atoms/layout/widget-resize-handle/index.js +1 -0
  111. package/dist/components/atoms/layout/widget-resize-handle/widget-resize-handle.d.ts +98 -0
  112. package/dist/components/atoms/layout/widget-resize-handle/widget-resize-handle.d.ts.map +1 -0
  113. package/dist/components/atoms/layout/widget-resize-handle/widget-resize-handle.js +117 -0
  114. package/dist/components/atoms/navigation/command/command.d.ts +7 -7
  115. package/dist/components/molecules/data-display/message/message.d.ts +22 -6
  116. package/dist/components/molecules/data-display/message/message.d.ts.map +1 -1
  117. package/dist/components/molecules/data-display/message/message.js +192 -8
  118. package/dist/components/molecules/draggable-widget/draggable-widget.d.ts.map +1 -1
  119. package/dist/components/molecules/draggable-widget/draggable-widget.js +6 -2
  120. package/dist/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.d.ts.map +1 -1
  121. package/dist/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.js +1 -1
  122. package/dist/components/molecules/forms/autocomplete/autocomplete-section.d.ts.map +1 -1
  123. package/dist/components/molecules/forms/autocomplete/autocomplete-section.js +3 -1
  124. package/dist/components/molecules/forms/chat-input/chat-input.d.ts.map +1 -1
  125. package/dist/components/molecules/forms/chat-input/chat-input.js +1 -1
  126. package/dist/components/molecules/forms/item/item.d.ts +1 -1
  127. package/dist/components/molecules/forms/text-editor/text-editor.d.ts.map +1 -1
  128. package/dist/components/molecules/navigation/menu-dock/menu-dock.js +1 -1
  129. package/dist/components/organisms/chat-log/chat-log.d.ts +1 -1
  130. package/dist/components/organisms/chat-log/chat-log.d.ts.map +1 -1
  131. package/dist/components/organisms/chat-log/chat-log.js +5 -5
  132. package/dist/components/organisms/document-editor/document-editor.d.ts.map +1 -1
  133. package/dist/components/organisms/document-editor/document-editor.js +2 -2
  134. package/dist/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.d.ts.map +1 -1
  135. package/dist/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.js +1 -1
  136. package/dist/components/organisms/form-layout/form-layout.d.ts.map +1 -1
  137. package/dist/components/organisms/form-layout/form-layout.js +3 -1
  138. package/dist/components/organisms/genealogy-canvas/genealogy-canvas.d.ts +0 -5
  139. package/dist/components/organisms/genealogy-canvas/genealogy-canvas.d.ts.map +1 -1
  140. package/dist/components/organisms/genealogy-canvas/genealogy-canvas.js +50 -55
  141. package/dist/components/organisms/model-selector/model-selector.d.ts +1 -1
  142. package/dist/components/organisms/prompt-input/index.d.ts +1 -1
  143. package/dist/components/organisms/prompt-input/index.d.ts.map +1 -1
  144. package/dist/components/organisms/prompt-input/index.js +1 -1
  145. package/dist/components/organisms/prompt-input/prompt-input.d.ts +22 -7
  146. package/dist/components/organisms/prompt-input/prompt-input.d.ts.map +1 -1
  147. package/dist/components/organisms/prompt-input/prompt-input.js +26 -17
  148. package/dist/index.js +480 -480
  149. package/dist/test/setup.d.ts +2 -0
  150. package/dist/test/setup.d.ts.map +1 -0
  151. package/dist/test/setup.js +43 -0
  152. package/package.json +18 -2
@@ -4,10 +4,12 @@
4
4
  * Componente de mensagem com branches e attachments
5
5
  */
6
6
  import type { FileUIPart, UIMessage } from "ai";
7
+ import hardenReactMarkdown from "harden-react-markdown";
7
8
  import type { ComponentProps, HTMLAttributes } from "react";
8
9
  import * as React from "react";
9
- import { Streamdown } from "streamdown";
10
- import { Button } from "../../../atoms";
10
+ import { type Options } from "react-markdown";
11
+ import { Button } from "@/components/atoms";
12
+ import "katex/dist/katex.min.css";
11
13
  export type MessageProps = HTMLAttributes<HTMLDivElement> & {
12
14
  from: UIMessage["role"];
13
15
  };
@@ -40,13 +42,27 @@ export declare const MessageBranchSelector: React.ForwardRefExoticComponent<HTML
40
42
  from: UIMessage["role"];
41
43
  } & React.RefAttributes<HTMLDivElement>>;
42
44
  export type MessageBranchPreviousProps = ComponentProps<typeof Button>;
43
- export declare const MessageBranchPrevious: React.ForwardRefExoticComponent<Omit<import("../../../atoms").ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
45
+ export declare const MessageBranchPrevious: React.ForwardRefExoticComponent<Omit<import("@/components/atoms").ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
44
46
  export type MessageBranchNextProps = ComponentProps<typeof Button>;
45
- export declare const MessageBranchNext: React.ForwardRefExoticComponent<Omit<import("../../../atoms").ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
47
+ export declare const MessageBranchNext: React.ForwardRefExoticComponent<Omit<import("@/components/atoms").ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
46
48
  export type MessageBranchPageProps = HTMLAttributes<HTMLSpanElement>;
47
49
  export declare const MessageBranchPage: React.ForwardRefExoticComponent<MessageBranchPageProps & React.RefAttributes<HTMLSpanElement>>;
48
- export type MessageResponseProps = ComponentProps<typeof Streamdown>;
49
- export declare const MessageResponse: any;
50
+ export type MessageResponseProps = HTMLAttributes<HTMLDivElement> & {
51
+ options?: Options;
52
+ children: Options["children"];
53
+ allowedImagePrefixes?: ComponentProps<ReturnType<typeof hardenReactMarkdown>>["allowedImagePrefixes"];
54
+ allowedLinkPrefixes?: ComponentProps<ReturnType<typeof hardenReactMarkdown>>["allowedLinkPrefixes"];
55
+ defaultOrigin?: ComponentProps<ReturnType<typeof hardenReactMarkdown>>["defaultOrigin"];
56
+ parseIncompleteMarkdown?: boolean;
57
+ };
58
+ export declare const MessageResponse: React.NamedExoticComponent<HTMLAttributes<HTMLDivElement> & {
59
+ options?: Options;
60
+ children: Options["children"];
61
+ allowedImagePrefixes?: ComponentProps<ReturnType<typeof hardenReactMarkdown>>["allowedImagePrefixes"];
62
+ allowedLinkPrefixes?: ComponentProps<ReturnType<typeof hardenReactMarkdown>>["allowedLinkPrefixes"];
63
+ defaultOrigin?: ComponentProps<ReturnType<typeof hardenReactMarkdown>>["defaultOrigin"];
64
+ parseIncompleteMarkdown?: boolean;
65
+ } & React.RefAttributes<HTMLDivElement>>;
50
66
  export type MessageAttachmentProps = HTMLAttributes<HTMLDivElement> & {
51
67
  data: FileUIPart;
52
68
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/message/message.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAgB,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,MAAM,EAA4D,MAAM,gBAAgB,CAAC;AAGlG,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAC1D,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,OAAO;UAHZ,SAAS,CAAC,MAAM,CAAC;wCAexB,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEjE,eAAO,MAAM,cAAc,4FAe1B,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc,6JAM1B,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,aAAa,2GAwBzB,CAAC;AAwBF,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,aAAa;oBAJR,MAAM;qBACL,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI;wCAsC/C,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAEvE,eAAO,MAAM,oBAAoB,kGA8BhC,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACxE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,qBAAqB;UAH1B,SAAS,CAAC,MAAM,CAAC;wCAwBxB,CAAC;AAGF,MAAM,MAAM,0BAA0B,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAEvE,eAAO,MAAM,qBAAqB,sKAoBhC,CAAC;AAGH,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,iBAAiB,sKAmB7B,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAErE,eAAO,MAAM,iBAAiB,gGAc7B,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,OAAO,UAAU,CAAC,CAAC;AAgBrE,eAAO,MAAM,eAAe,EAAE,GAG7B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IACpE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,iBAAiB;UALtB,UAAU;gBACJ,MAAM;eACP,MAAM,IAAI;wCAyEtB,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB,6JAgB9B,CAAC;AAGF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAExD,eAAO,MAAM,cAAc,6JAU1B,CAAC"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/data-display/message/message.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,17 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import hardenReactMarkdown from "harden-react-markdown";
2
3
  import { ChevronLeftIcon, ChevronRightIcon, PaperclipIcon, XIcon } from "lucide-react";
3
4
  import * as React from "react";
4
- import { createContext, memo, useContext, useEffect, useState } from "react";
5
- import { Streamdown } from "streamdown";
5
+ import { createContext, isValidElement, memo, useContext, useEffect, useState } from "react";
6
+ import ReactMarkdown from "react-markdown";
7
+ import rehypeKatex from "rehype-katex";
8
+ import remarkGfm from "remark-gfm";
9
+ import remarkMath from "remark-math";
10
+ import { Button, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/atoms";
11
+ import { CodeBlock, CodeBlockCopyButton } from "@/components/atoms/code/code-block";
12
+ import { ButtonGroup, ButtonGroupText } from "@/components/molecules/forms/button-group";
6
13
  import { cn } from "@/lib/utils";
7
- import { Button, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../../../atoms";
8
- import { ButtonGroup, ButtonGroupText } from "../../forms/button-group";
14
+ import "katex/dist/katex.min.css";
9
15
  export const Message = React.forwardRef(({ className, from, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("group flex w-full max-w-[80%] gap-2", from === "user" ? "is-user ml-auto justify-end" : "is-assistant", className), ...props })));
10
16
  Message.displayName = "Message";
11
17
  export const MessageContent = React.forwardRef(({ children, className, ...props }, ref) => (_jsx("div", { ref: ref, className: cn("is-user:dark flex w-fit flex-col gap-2 overflow-hidden text-sm", "group-[.is-user]:ml-auto group-[.is-user]:rounded-lg group-[.is-user]:bg-secondary group-[.is-user]:px-4 group-[.is-user]:py-3 group-[.is-user]:text-foreground", "group-[.is-assistant]:text-foreground", className), ...props, children: children })));
@@ -90,12 +96,190 @@ export const MessageBranchPage = React.forwardRef(({ className, ...props }, ref)
90
96
  return (_jsxs(ButtonGroupText, { ref: ref, className: cn("border-none bg-transparent text-muted-foreground shadow-none", className), ...props, children: [currentBranch + 1, " of ", totalBranches] }));
91
97
  });
92
98
  MessageBranchPage.displayName = "MessageBranchPage";
93
- const MessageResponseComponent = React.forwardRef(({ className, ...props }, _ref) => {
94
- const { ref: _, ...streamdownProps } = props;
95
- return (_jsx(Streamdown, { className: cn("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0", className), ...streamdownProps }));
99
+ /**
100
+ * Parses markdown text and removes incomplete tokens to prevent partial rendering
101
+ * of links, images, bold, and italic formatting during streaming.
102
+ */
103
+ function parseIncompleteMarkdown(text) {
104
+ if (!text || typeof text !== "string") {
105
+ return text;
106
+ }
107
+ let result = text;
108
+ // Handle incomplete links and images
109
+ // Pattern: [...] or ![...] where the closing ] is missing
110
+ const linkImagePattern = /(!?\[)([^\]]*?)$/;
111
+ const linkMatch = result.match(linkImagePattern);
112
+ if (linkMatch) {
113
+ // If we have an unterminated [ or ![, remove it and everything after
114
+ const startIndex = result.lastIndexOf(linkMatch[1]);
115
+ result = result.substring(0, startIndex);
116
+ }
117
+ // Handle incomplete bold formatting (**)
118
+ const boldPattern = /(\*\*)([^*]*?)$/;
119
+ const boldMatch = result.match(boldPattern);
120
+ if (boldMatch) {
121
+ // Count the number of ** in the entire string
122
+ const asteriskPairs = (result.match(/\*\*/g) || []).length;
123
+ // If odd number of **, we have an incomplete bold - complete it
124
+ if (asteriskPairs % 2 === 1) {
125
+ result = `${result}**`;
126
+ }
127
+ }
128
+ // Handle incomplete italic formatting (__)
129
+ const italicPattern = /(__)([^_]*?)$/;
130
+ const italicMatch = result.match(italicPattern);
131
+ if (italicMatch) {
132
+ // Count the number of __ in the entire string
133
+ const underscorePairs = (result.match(/__/g) || []).length;
134
+ // If odd number of __, we have an incomplete italic - complete it
135
+ if (underscorePairs % 2 === 1) {
136
+ result = `${result}__`;
137
+ }
138
+ }
139
+ // Handle incomplete single asterisk italic (*)
140
+ const singleAsteriskPattern = /(\*)([^*]*?)$/;
141
+ const singleAsteriskMatch = result.match(singleAsteriskPattern);
142
+ if (singleAsteriskMatch) {
143
+ // Count single asterisks that aren't part of **
144
+ const singleAsterisks = result.split("").reduce((acc, char, index) => {
145
+ if (char === "*") {
146
+ // Check if it's part of a ** pair
147
+ const prevChar = result[index - 1];
148
+ const nextChar = result[index + 1];
149
+ if (prevChar !== "*" && nextChar !== "*") {
150
+ return acc + 1;
151
+ }
152
+ }
153
+ return acc;
154
+ }, 0);
155
+ // If odd number of single *, we have an incomplete italic - complete it
156
+ if (singleAsterisks % 2 === 1) {
157
+ result = `${result}*`;
158
+ }
159
+ }
160
+ // Handle incomplete single underscore italic (_)
161
+ const singleUnderscorePattern = /(_)([^_]*?)$/;
162
+ const singleUnderscoreMatch = result.match(singleUnderscorePattern);
163
+ if (singleUnderscoreMatch) {
164
+ // Count single underscores that aren't part of __
165
+ const singleUnderscores = result.split("").reduce((acc, char, index) => {
166
+ if (char === "_") {
167
+ // Check if it's part of a __ pair
168
+ const prevChar = result[index - 1];
169
+ const nextChar = result[index + 1];
170
+ if (prevChar !== "_" && nextChar !== "_") {
171
+ return acc + 1;
172
+ }
173
+ }
174
+ return acc;
175
+ }, 0);
176
+ // If odd number of single _, we have an incomplete italic - complete it
177
+ if (singleUnderscores % 2 === 1) {
178
+ result = `${result}_`;
179
+ }
180
+ }
181
+ // Handle incomplete inline code blocks (`) - but avoid code blocks (```)
182
+ const inlineCodePattern = /(`)([^`]*?)$/;
183
+ const inlineCodeMatch = result.match(inlineCodePattern);
184
+ if (inlineCodeMatch) {
185
+ // Check if we're dealing with a code block (triple backticks)
186
+ const _hasCodeBlockStart = result.includes("```");
187
+ const codeBlockPattern = /```[\s\S]*?```/g;
188
+ const _completeCodeBlocks = (result.match(codeBlockPattern) || []).length;
189
+ const allTripleBackticks = (result.match(/```/g) || []).length;
190
+ // If we have an odd number of ``` sequences, we're inside an incomplete code block
191
+ // In this case, don't complete inline code
192
+ const insideIncompleteCodeBlock = allTripleBackticks % 2 === 1;
193
+ if (!insideIncompleteCodeBlock) {
194
+ // Count the number of single backticks that are NOT part of triple backticks
195
+ let singleBacktickCount = 0;
196
+ for (let i = 0; i < result.length; i++) {
197
+ if (result[i] === "`") {
198
+ // Check if this backtick is part of a triple backtick sequence
199
+ const isTripleStart = result.substring(i, i + 3) === "```";
200
+ const isTripleMiddle = i > 0 && result.substring(i - 1, i + 2) === "```";
201
+ const isTripleEnd = i > 1 && result.substring(i - 2, i + 1) === "```";
202
+ if (!(isTripleStart || isTripleMiddle || isTripleEnd)) {
203
+ singleBacktickCount++;
204
+ }
205
+ }
206
+ }
207
+ // If odd number of single backticks, we have an incomplete inline code - complete it
208
+ if (singleBacktickCount % 2 === 1) {
209
+ result = `${result}\``;
210
+ }
211
+ }
212
+ }
213
+ // Handle incomplete strikethrough formatting (~~)
214
+ const strikethroughPattern = /(~~)([^~]*?)$/;
215
+ const strikethroughMatch = result.match(strikethroughPattern);
216
+ if (strikethroughMatch) {
217
+ // Count the number of ~~ in the entire string
218
+ const tildePairs = (result.match(/~~/g) || []).length;
219
+ // If odd number of ~~, we have an incomplete strikethrough - complete it
220
+ if (tildePairs % 2 === 1) {
221
+ result = `${result}~~`;
222
+ }
223
+ }
224
+ return result;
225
+ }
226
+ // Create a hardened version of ReactMarkdown
227
+ const HardenedMarkdown = hardenReactMarkdown(ReactMarkdown);
228
+ const components = {
229
+ ol: ({ node, children, className, ...props }) => (_jsx("ol", { className: cn("ml-4 list-outside list-decimal", className), ...props, children: children })),
230
+ li: ({ node, children, className, ...props }) => (_jsx("li", { className: cn("py-1", className), ...props, children: children })),
231
+ ul: ({ node, children, className, ...props }) => (_jsx("ul", { className: cn("ml-4 list-outside list-disc", className), ...props, children: children })),
232
+ hr: ({ node, className, ...props }) => (_jsx("hr", { className: cn("my-6 border-border", className), ...props })),
233
+ strong: ({ node, children, className, ...props }) => (_jsx("span", { className: cn("font-semibold", className), ...props, children: children })),
234
+ a: ({ node, children, className, ...props }) => (_jsx("a", { className: cn("font-medium text-primary underline", className), rel: "noreferrer", target: "_blank", ...props, children: children })),
235
+ h1: ({ node, children, className, ...props }) => (_jsx("h1", { className: cn("mt-6 mb-2 font-semibold text-3xl", className), ...props, children: children })),
236
+ h2: ({ node, children, className, ...props }) => (_jsx("h2", { className: cn("mt-6 mb-2 font-semibold text-2xl", className), ...props, children: children })),
237
+ h3: ({ node, children, className, ...props }) => (_jsx("h3", { className: cn("mt-6 mb-2 font-semibold text-xl", className), ...props, children: children })),
238
+ h4: ({ node, children, className, ...props }) => (_jsx("h4", { className: cn("mt-6 mb-2 font-semibold text-lg", className), ...props, children: children })),
239
+ h5: ({ node, children, className, ...props }) => (_jsx("h5", { className: cn("mt-6 mb-2 font-semibold text-base", className), ...props, children: children })),
240
+ h6: ({ node, children, className, ...props }) => (_jsx("h6", { className: cn("mt-6 mb-2 font-semibold text-sm", className), ...props, children: children })),
241
+ table: ({ node, children, className, ...props }) => (_jsx("div", { className: "my-4 overflow-x-auto", children: _jsx("table", { className: cn("w-full border-collapse border border-border", className), ...props, children: children }) })),
242
+ thead: ({ node, children, className, ...props }) => (_jsx("thead", { className: cn("bg-muted/50", className), ...props, children: children })),
243
+ tbody: ({ node, children, className, ...props }) => (_jsx("tbody", { className: cn("divide-y divide-border", className), ...props, children: children })),
244
+ tr: ({ node, children, className, ...props }) => (_jsx("tr", { className: cn("border-border border-b", className), ...props, children: children })),
245
+ th: ({ node, children, className, ...props }) => (_jsx("th", { className: cn("px-4 py-2 text-left font-semibold text-sm", className), ...props, children: children })),
246
+ td: ({ node, children, className, ...props }) => (_jsx("td", { className: cn("px-4 py-2 text-sm", className), ...props, children: children })),
247
+ blockquote: ({ node, children, className, ...props }) => (_jsx("blockquote", { className: cn("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic", className), ...props, children: children })),
248
+ code: ({ node, className, ...props }) => {
249
+ const inline = node?.position?.start.line === node?.position?.end.line;
250
+ if (!inline) {
251
+ return _jsx("code", { className: className, ...props });
252
+ }
253
+ return (_jsx("code", { className: cn("rounded bg-muted px-1.5 py-0.5 font-mono text-sm", className), ...props }));
254
+ },
255
+ pre: ({ node, className, children }) => {
256
+ let language = "javascript";
257
+ if (typeof node?.properties?.className === "string") {
258
+ const lang = node.properties.className.replace("language-", "");
259
+ // Validate that it's a valid BundledLanguage, fallback to javascript
260
+ language = lang || "javascript";
261
+ }
262
+ // Extract code content from children safely
263
+ let code = "";
264
+ if (isValidElement(children) &&
265
+ children.props &&
266
+ typeof children.props.children === "string") {
267
+ code = children.props.children;
268
+ }
269
+ else if (typeof children === "string") {
270
+ code = children;
271
+ }
272
+ return (_jsx(CodeBlock, { className: cn("my-4 h-auto", className), code: code, language: language, children: _jsx(CodeBlockCopyButton, { onCopy: () => console.log("Copied code to clipboard"), onError: () => console.error("Failed to copy code to clipboard") }) }));
273
+ },
274
+ };
275
+ const MessageResponseComponent = React.forwardRef(({ className, options, children, allowedImagePrefixes, allowedLinkPrefixes, defaultOrigin, parseIncompleteMarkdown: shouldParseIncompleteMarkdown = true, ...props }, ref) => {
276
+ // Parse the children to remove incomplete markdown tokens if enabled
277
+ const parsedChildren = typeof children === "string" && shouldParseIncompleteMarkdown
278
+ ? parseIncompleteMarkdown(children)
279
+ : children;
280
+ return (_jsx("div", { ref: ref, className: cn("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0", className), ...props, children: _jsx(HardenedMarkdown, { allowedImagePrefixes: allowedImagePrefixes ?? ["*"], allowedLinkPrefixes: allowedLinkPrefixes ?? ["*"], components: components, defaultOrigin: defaultOrigin, rehypePlugins: [rehypeKatex], remarkPlugins: [remarkGfm, remarkMath], ...options, children: parsedChildren }) }));
96
281
  });
97
282
  MessageResponseComponent.displayName = "MessageResponse";
98
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
99
283
  export const MessageResponse = memo(MessageResponseComponent, (prevProps, nextProps) => prevProps.children === nextProps.children);
100
284
  export const MessageAttachment = React.forwardRef(({ data, className, onRemove, ...props }, ref) => {
101
285
  const filename = data.filename || "";
@@ -1 +1 @@
1
- {"version":3,"file":"draggable-widget.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/draggable-widget/draggable-widget.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE;QACZ,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,4DAiI3B,CAAC"}
1
+ {"version":3,"file":"draggable-widget.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/draggable-widget/draggable-widget.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE;QACZ,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5D;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,4DA0I3B,CAAC"}
@@ -9,7 +9,7 @@ import { useDraggable } from "@dnd-kit/core";
9
9
  import { CSS } from "@dnd-kit/utilities";
10
10
  import { GripVertical, Settings2, X } from "lucide-react";
11
11
  import { memo } from "react";
12
- import { WidgetResizeHandle } from "@/components/atoms/widget-resize-handle";
12
+ import { WidgetResizeHandle } from "@/components/atoms/layout/widget-resize-handle";
13
13
  import { cn } from "@/lib/utils";
14
14
  /**
15
15
  * Componente de widget arrastável
@@ -39,6 +39,10 @@ export const DraggableWidget = memo(({ widgetId, widgetType, children, isEditMod
39
39
  e.stopPropagation();
40
40
  onConfigure?.(widgetId);
41
41
  };
42
- return (_jsxs("div", { ref: setNodeRef, style: style, className: cn("relative group", isDragging && "opacity-50 z-50", isEditMode && "ring-2 ring-primary/20", className), children: [_jsx("div", { className: cn("h-full w-full bg-card rounded-lg border border-border shadow-sm overflow-hidden", isEditMode && "hover:shadow-md transition-shadow"), children: children }), isEditMode && (_jsxs(_Fragment, { children: [_jsx("div", { ...attributes, ...listeners, className: cn("absolute top-2 left-2 p-1.5 rounded-md", "bg-background/80 backdrop-blur-sm border border-border", "cursor-grab active:cursor-grabbing", "opacity-0 group-hover:opacity-100 transition-opacity", "hover:bg-background"), "aria-label": "Arrastar widget", children: _jsx(GripVertical, { className: "w-4 h-4 text-muted-foreground" }) }), _jsxs("div", { className: "absolute top-2 right-2 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity", children: [onConfigure && (_jsx("button", { onClick: handleConfigure, className: cn("p-1.5 rounded-md", "bg-background/80 backdrop-blur-sm border border-border", "hover:bg-background text-muted-foreground hover:text-foreground", "transition-colors"), "aria-label": "Configurar widget", children: _jsx(Settings2, { className: "w-4 h-4" }) })), onRemove && (_jsx("button", { onClick: handleRemove, className: cn("p-1.5 rounded-md", "bg-background/80 backdrop-blur-sm border border-border", "hover:bg-destructive hover:text-destructive-foreground", "text-muted-foreground transition-colors"), "aria-label": "Remover widget", children: _jsx(X, { className: "w-4 h-4" }) }))] }), onResize && (_jsx(WidgetResizeHandle, { widgetId: widgetId, currentWidth: currentWidth, currentHeight: currentHeight, onResize: onResize, cellSize: cellSize, gap: gap }))] }))] }));
42
+ return (_jsxs("div", { ref: setNodeRef, style: style, className: cn("relative group", isDragging && "opacity-50 z-50", isEditMode && "ring-2 ring-primary/20", className), children: [_jsx("div", { className: cn("h-full w-full bg-card rounded-lg border border-border shadow-sm overflow-hidden", isEditMode && "hover:shadow-md transition-shadow"), children: children }), isEditMode && (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", ...attributes, ...listeners, className: cn("absolute top-2 left-2 p-1.5 rounded-md", "bg-background/80 backdrop-blur-sm border border-border", "cursor-grab active:cursor-grabbing", "opacity-0 group-hover:opacity-100 transition-opacity", "hover:bg-background"), tabIndex: 0, "aria-label": "Arrastar widget", onKeyDown: (e) => {
43
+ if (e.key === "Enter" || e.key === " ") {
44
+ e.preventDefault();
45
+ }
46
+ }, children: _jsx(GripVertical, { className: "w-4 h-4 text-muted-foreground" }) }), _jsxs("div", { className: "absolute top-2 right-2 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity", children: [onConfigure && (_jsx("button", { type: "button", onClick: handleConfigure, className: cn("p-1.5 rounded-md", "bg-background/80 backdrop-blur-sm border border-border", "hover:bg-background text-muted-foreground hover:text-foreground", "transition-colors"), "aria-label": "Configurar widget", children: _jsx(Settings2, { className: "w-4 h-4" }) })), onRemove && (_jsx("button", { type: "button", onClick: handleRemove, className: cn("p-1.5 rounded-md", "bg-background/80 backdrop-blur-sm border border-border", "hover:bg-destructive hover:text-destructive-foreground", "text-muted-foreground transition-colors"), "aria-label": "Remover widget", children: _jsx(X, { className: "w-4 h-4" }) }))] }), onResize && (_jsx(WidgetResizeHandle, { widgetId: widgetId, currentWidth: currentWidth, currentHeight: currentHeight, onResize: onResize, cellSize: cellSize, gap: gap }))] }))] }));
43
47
  });
44
48
  DraggableWidget.displayName = "DraggableWidget";
@@ -1 +1 @@
1
- {"version":3,"file":"edit-chat-message-modal.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAYpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,MAAM,CAAC;IACvD,4BAA4B,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAwHpE,CAAC"}
1
+ {"version":3,"file":"edit-chat-message-modal.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/feedback/edit-chat-message-modal/edit-chat-message-modal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAYpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,MAAM,CAAC;IACvD,4BAA4B,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA4HpE,CAAC"}
@@ -60,6 +60,6 @@ export const EditChatMessageModal = ({ isOpen, onClose, message, onSave, isLoadi
60
60
  };
61
61
  if (!message)
62
62
  return null;
63
- return (_jsx(Dialog, { open: isOpen, onOpenChange: handleClose, children: _jsxs(DialogContent, { className: cn("max-w-2xl max-h-[80vh] overflow-hidden", className), children: [_jsx(DialogHeader, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Edit, { className: "w-5 h-5 text-blue-600 dark:text-blue-400" }), _jsx(DialogTitle, { className: "text-lg", children: "Editar Mensagem" })] }) }), _jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "bg-gray-50 dark:bg-gray-800/50 rounded-lg p-3 border", children: _jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx("span", { className: "font-medium text-gray-900 dark:text-gray-100", children: message.sender }), message.messageType && (_jsx(Badge, { className: getMessageTypeBadgeClassName(message.messageType), children: message.messageType })), _jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400 ml-auto", children: formatTimestamp(message.timestamp) })] }) }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Conte\u00FAdo da Mensagem" }), _jsx(Textarea, { value: editedContent, onChange: (e) => setEditedContent(e.target.value), className: "min-h-[200px] resize-none", placeholder: "Digite o conte\u00FAdo da mensagem...", disabled: isLoading }), _jsxs("div", { className: "flex items-center justify-between text-xs text-gray-500 dark:text-gray-400", children: [_jsxs("span", { children: [editedContent.length, " caracteres"] }), hasChanges && (_jsx("div", { className: "flex items-center gap-1 text-amber-600 dark:text-amber-400", children: _jsx("span", { children: "\u26A0\uFE0F Altera\u00E7\u00F5es n\u00E3o salvas" }) }))] })] }), _jsxs("div", { className: "flex items-center justify-end gap-2 pt-4 border-t", children: [_jsx(Button, { variant: "outline", onClick: handleClose, disabled: isLoading, children: "Cancelar" }), _jsxs(Button, { onClick: handleSave, disabled: !hasChanges || isLoading || !editedContent.trim(), className: "flex items-center gap-2", children: [isLoading ? (_jsx("div", { className: "animate-spin rounded-full h-4 w-4 border-b-2 border-white" })) : (_jsx(Save, { className: "w-4 h-4" })), "Salvar Altera\u00E7\u00F5es"] })] })] })] }) }));
63
+ return (_jsx(Dialog, { open: isOpen, onOpenChange: handleClose, children: _jsxs(DialogContent, { className: cn("max-w-2xl max-h-[80vh] overflow-hidden", className), children: [_jsx(DialogHeader, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Edit, { className: "w-5 h-5 text-blue-600 dark:text-blue-400" }), _jsx(DialogTitle, { className: "text-lg", children: "Editar Mensagem" })] }) }), _jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "bg-gray-50 dark:bg-gray-800/50 rounded-lg p-3 border", children: _jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx("span", { className: "font-medium text-gray-900 dark:text-gray-100", children: message.sender }), message.messageType && (_jsx(Badge, { className: getMessageTypeBadgeClassName(message.messageType), children: message.messageType })), _jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400 ml-auto", children: formatTimestamp(message.timestamp) })] }) }), _jsxs("div", { className: "space-y-2", children: [_jsx("label", { htmlFor: "message-content", className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: "Conte\u00FAdo da Mensagem" }), _jsx(Textarea, { id: "message-content", value: editedContent, onChange: (e) => setEditedContent(e.target.value), className: "min-h-[200px] resize-none", placeholder: "Digite o conte\u00FAdo da mensagem...", disabled: isLoading }), _jsxs("div", { className: "flex items-center justify-between text-xs text-gray-500 dark:text-gray-400", children: [_jsxs("span", { children: [editedContent.length, " caracteres"] }), hasChanges && (_jsx("div", { className: "flex items-center gap-1 text-amber-600 dark:text-amber-400", children: _jsx("span", { children: "\u26A0\uFE0F Altera\u00E7\u00F5es n\u00E3o salvas" }) }))] })] }), _jsxs("div", { className: "flex items-center justify-end gap-2 pt-4 border-t", children: [_jsx(Button, { variant: "outline", onClick: handleClose, disabled: isLoading, children: "Cancelar" }), _jsxs(Button, { onClick: handleSave, disabled: !hasChanges || isLoading || !editedContent.trim(), className: "flex items-center gap-2", children: [isLoading ? (_jsx("div", { className: "animate-spin rounded-full h-4 w-4 border-b-2 border-white" })) : (_jsx(Save, { className: "w-4 h-4" })), "Salvar Altera\u00E7\u00F5es"] })] })] })] }) }));
64
64
  };
65
65
  EditChatMessageModal.displayName = "EditChatMessageModal";
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete-section.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-section.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACpF;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,mBAAmB,iGAmBxB,CAAC;AAIF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"autocomplete-section.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/autocomplete/autocomplete-section.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,wBAAyB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACpF;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,mBAAmB,iGAkBxB,CAAC;AAIF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -7,7 +7,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
7
  import * as React from "react";
8
8
  import { cn } from "@/lib/utils";
9
9
  const AutocompleteSection = React.forwardRef(({ className, title, children, ...props }, ref) => {
10
- return (_jsxs("div", { ref: ref, ...props, className: cn("space-y-1", className), role: "group", "aria-label": title, children: [title && (_jsx("div", { className: "px-2 py-1.5 text-xs font-semibold text-muted-foreground", children: title })), _jsx("ul", { role: "group", className: "space-y-0.5", children: children })] }));
10
+ return (
11
+ // biome-ignore lint/a11y/useSemanticElements: Agrupamento em menu de autocomplete
12
+ _jsxs("div", { ref: ref, ...props, className: cn("space-y-1", className), role: "group", "aria-label": title, children: [title && (_jsx("div", { className: "px-2 py-1.5 text-xs font-semibold text-muted-foreground", children: title })), _jsx("ul", { className: "space-y-0.5", children: children })] }));
11
13
  });
12
14
  AutocompleteSection.displayName = "AutocompleteSection";
13
15
  export { AutocompleteSection };
@@ -1 +1 @@
1
- {"version":3,"file":"chat-input.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/chat-input/chat-input.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACnG,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,uFAiNrB,CAAC"}
1
+ {"version":3,"file":"chat-input.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/chat-input/chat-input.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,uFAiNrB,CAAC"}
@@ -19,7 +19,7 @@ export const ChatInput = React.forwardRef(({ value, onChange, onSubmit, maxLengt
19
19
  textareaRef.current.style.height = "auto";
20
20
  textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`;
21
21
  }
22
- }, [value]);
22
+ }, []);
23
23
  const handleSubmit = () => {
24
24
  if (!value.trim() || remaining < 0 || disabled || isLoading)
25
25
  return;
@@ -13,7 +13,7 @@ declare namespace ItemSeparator {
13
13
  var displayName: string;
14
14
  }
15
15
  declare const itemVariants: (props?: ({
16
- variant?: "default" | "outline" | "muted" | null | undefined;
16
+ variant?: "outline" | "default" | "muted" | null | undefined;
17
17
  size?: "default" | "sm" | null | undefined;
18
18
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
19
19
  export interface ItemProps extends React.ComponentProps<"div">, VariantProps<typeof itemVariants> {
@@ -1 +1 @@
1
- {"version":3,"file":"text-editor.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/text-editor/text-editor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4BH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7D,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,OAAO,CAAC;AAEZ,QAAA,MAAM,eAAe,EAAE,uBAAuB,EAgB7C,CAAC;AA2DF,KAAK,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAE3E,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACzD,YAAY,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACnC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC;CAC1C;AAED,eAAO,MAAM,UAAU,wFA4XtB,CAAC;AA8BF,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"text-editor.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/forms/text-editor/text-editor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4BH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7D,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,OAAO,CAAC;AAEZ,QAAA,MAAM,eAAe,EAAE,uBAAuB,EAgB7C,CAAC;AA2DF,KAAK,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC;AAE3E,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IACzD,YAAY,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACnC,4EAA4E;IAC5E,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC;CAC1C;AAED,eAAO,MAAM,UAAU,wFA+XtB,CAAC;AA8BF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -146,7 +146,7 @@ const FloatingDockMobile = ({ items, className }) => {
146
146
  transition: {
147
147
  delay: idx * 0.05,
148
148
  },
149
- }, transition: { delay: (items.length - 1 - idx) * 0.05 }, children: _jsx("a", { href: item.href, onClick: item.onClick, className: "flex h-10 w-10 items-center justify-center rounded-full bg-gray-50 dark:bg-neutral-900", children: _jsx("div", { className: "h-4 w-4", children: item.icon }) }) }, item.title))) })) }), _jsx("button", { onClick: () => setOpen(!open), className: "flex h-10 w-10 items-center justify-center rounded-full bg-gray-50 dark:bg-neutral-800", "aria-label": "Toggle menu", children: _jsx(Menu, { className: "h-5 w-5 text-neutral-500 dark:text-neutral-400" }) })] }));
149
+ }, transition: { delay: (items.length - 1 - idx) * 0.05 }, children: _jsx("a", { href: item.href, onClick: item.onClick, className: "flex h-10 w-10 items-center justify-center rounded-full bg-gray-50 dark:bg-neutral-900", children: _jsx("div", { className: "h-4 w-4", children: item.icon }) }) }, item.title))) })) }), _jsx("button", { type: "button", onClick: () => setOpen(!open), className: "flex h-10 w-10 items-center justify-center rounded-full bg-gray-50 dark:bg-neutral-800", "aria-label": "Toggle menu", children: _jsx(Menu, { className: "h-5 w-5 text-neutral-500 dark:text-neutral-400" }) })] }));
150
150
  };
151
151
  const FloatingDockDesktop = ({ items, className }) => {
152
152
  const mouseX = useMotionValue(Infinity);
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { HTMLAttributes, ReactNode } from "react";
8
8
  import * as React from "react";
9
- import { type ChatMessageData, type ChatMessageProps } from "../../molecules/data-display/chat-message";
9
+ import { type ChatMessageData, type ChatMessageProps } from "@/components/molecules/data-display/chat-message";
10
10
  export interface ChatLogProps extends HTMLAttributes<HTMLDivElement> {
11
11
  messages: ChatMessageData[];
12
12
  onMessageEdit?: (id: string | number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-log.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/chat-log/chat-log.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,2CAA2C,CAAC;AAGnD,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,cAAc,CAAC;IAClE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAChD,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACrD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,OAAO,qFA+EnB,CAAC"}
1
+ {"version":3,"file":"chat-log.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/chat-log/chat-log.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,kDAAkD,CAAC;AAQ1D,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,cAAc,CAAC;IAClE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9C,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAChD,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACrD,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IAC1D,YAAY,CAAC,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,OAAO,qFA+EnB,CAAC"}
@@ -1,19 +1,19 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { useEffect, useRef } from "react";
4
+ import { ChatMessage, } from "@/components/molecules/data-display/chat-message";
5
+ import { Conversation, ConversationContent, ConversationEmptyState, } from "@/components/organisms/conversation";
4
6
  import { cn } from "@/lib/utils";
5
- import { ChatMessage, } from "../../molecules/data-display/chat-message";
6
- import { Conversation, ConversationContent, ConversationEmptyState } from "../conversation";
7
7
  export const ChatLog = React.forwardRef(({ messages, onMessageEdit, onMessageDelete, onMessageViewContext, emptyState, emptyStateTitle = "Nenhuma mensagem ainda", emptyStateDescription = "Comece a conversar para ver mensagens aqui", headerActions, filters, className, messageTypeConfig, senderConfig, formatTimestamp, renderMarkdown = true, showActions = true, showTimestamp = true, autoScroll = true, ...props }, ref) => {
8
8
  const messagesEndRef = useRef(null);
9
- const scrollToBottom = () => {
9
+ const scrollToBottom = React.useCallback(() => {
10
10
  messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
11
- };
11
+ }, []);
12
12
  useEffect(() => {
13
13
  if (autoScroll && messages.length > 0) {
14
14
  scrollToBottom();
15
15
  }
16
- }, [messages, autoScroll]);
16
+ }, [messages, autoScroll, scrollToBottom]);
17
17
  return (_jsxs("div", { ref: ref, className: cn("h-full flex flex-col", className), ...props, children: [headerActions && (_jsx("div", { className: "flex items-center justify-between p-3 bg-gray-100 dark:bg-gray-800/50 border-b border-gray-200 dark:border-gray-700", children: headerActions })), filters && _jsx("div", { className: "border-b border-gray-200 dark:border-gray-700", children: filters }), _jsxs(Conversation, { className: "flex-1 overflow-y-auto px-1 sm:px-2 bg-gray-50 dark:bg-gray-900/50 rounded-lg border border-gray-200 dark:border-gray-700", children: [_jsx(ConversationContent, { className: "p-4 text-gray-900 dark:text-gray-200 leading-relaxed space-y-3 sm:space-y-4", children: messages.length === 0
18
18
  ? emptyState || (_jsx(ConversationEmptyState, { title: emptyStateTitle, description: emptyStateDescription }))
19
19
  : messages.map((message) => (_jsx(ChatMessage, { message: message, onEdit: onMessageEdit, onDelete: onMessageDelete, onViewContext: onMessageViewContext, renderMarkdown: renderMarkdown, messageTypeConfig: messageTypeConfig, senderConfig: senderConfig, formatTimestamp: formatTimestamp, showActions: showActions, showTimestamp: showTimestamp }, message.id))) }), _jsx("div", { ref: messagesEndRef })] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"document-editor.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/document-editor/document-editor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAChD,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACnC,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,KAAK,IAAI,CAAC;IAC3D,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD,eAAO,MAAM,cAAc,4FAyS1B,CAAC"}
1
+ {"version":3,"file":"document-editor.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/document-editor/document-editor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,uCAAuC;IACvC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAChD,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IACnC,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,KAAK,IAAI,CAAC;IAC3D,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAcD,eAAO,MAAM,cAAc,4FA4S1B,CAAC"}
@@ -49,10 +49,10 @@ export const DocumentEditor = React.forwardRef(({ title: controlledTitle, onTitl
49
49
  // Estado interno para página ativa
50
50
  const [internalActivePage, setInternalActivePage] = React.useState(0);
51
51
  const activePage = controlledActivePage ?? internalActivePage;
52
- const handleActivePageChange = (index) => {
52
+ const handleActivePageChange = React.useCallback((index) => {
53
53
  setInternalActivePage(index);
54
54
  onActivePageChange?.(index);
55
- };
55
+ }, [onActivePageChange]);
56
56
  // Última edição (timestamp)
57
57
  const [lastEdit, setLastEdit] = React.useState(new Date());
58
58
  // Estado interno para modo de visualização
@@ -1 +1 @@
1
- {"version":3,"file":"draggable-dashboard-grid.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB;;OAEG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC;IAExD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAElE;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAElF;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhE;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,GACV,EAAE,2BAA2B,2CAiN7B"}
1
+ {"version":3,"file":"draggable-dashboard-grid.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/draggable-dashboard-grid/draggable-dashboard-grid.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB;;OAEG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC;IAExD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAElE;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAElF;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhE;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,YAAY,EACZ,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,GACV,EAAE,2BAA2B,2CAoN7B"}
@@ -111,7 +111,7 @@ export function DraggableDashboardGrid({ widgets, renderWidget, isEditMode, grid
111
111
  if (emptyState) {
112
112
  return _jsx(_Fragment, { children: emptyState });
113
113
  }
114
- return (_jsxs("div", { className: "flex flex-col items-center justify-center min-h-[400px] p-8 text-center", children: [_jsx("div", { className: "mb-4", children: _jsx("svg", { className: "w-24 h-24 text-muted-foreground mx-auto", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" }) }) }), _jsx("h3", { className: "text-xl font-semibold text-foreground mb-2", children: "Nenhum widget configurado" }), _jsx("p", { className: "text-muted-foreground mb-6 max-w-md", children: "Arraste widgets da paleta para come\u00E7ar a personalizar seu dashboard." })] }));
114
+ return (_jsxs("div", { className: "flex flex-col items-center justify-center min-h-[400px] p-8 text-center", children: [_jsx("div", { className: "mb-4", children: _jsxs("svg", { className: "w-24 h-24 text-muted-foreground mx-auto", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", role: "img", "aria-labelledby": "empty-dashboard-icon-title", children: [_jsx("title", { id: "empty-dashboard-icon-title", children: "\u00CDcone de Dashboard Vazio" }), _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" })] }) }), _jsx("h3", { className: "text-xl font-semibold text-foreground mb-2", children: "Nenhum widget configurado" }), _jsx("p", { className: "text-muted-foreground mb-6 max-w-md", children: "Arraste widgets da paleta para come\u00E7ar a personalizar seu dashboard." })] }));
115
115
  }
116
116
  return (_jsxs(DndContext, { sensors: sensors, collisionDetection: closestCenter, onDragStart: handleDragStart, onDragMove: handleDragMove, onDragEnd: handleDragEnd, onDragCancel: handleDragCancel, children: [_jsx("div", { ref: setDroppableRef, className: cn(className), style: {
117
117
  display: "grid",
@@ -1 +1 @@
1
- {"version":3,"file":"form-layout.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/form-layout/form-layout.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-layout.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/form-layout/form-layout.tsx"],"names":[],"mappings":"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"}
@@ -57,7 +57,9 @@ export function BaseFormField({ config, control }) {
57
57
  case "slider":
58
58
  return (_jsxs("div", { className: "space-y-2", children: [_jsx(Slider, { value: [Number(field.value ?? sliderRange?.min ?? 0)], onValueChange: (vals) => field.onChange(vals[0]), min: sliderRange?.min ?? 0, max: sliderRange?.max ?? 100, step: sliderRange?.step ?? 1, disabled: disabled }), typeof field.value === "number" && (_jsxs("p", { className: "text-xs text-muted-foreground", children: ["Valor: ", field.value] }))] }));
59
59
  case "otp":
60
- return (_jsx(InputOTP, { maxLength: otpLength ?? 6, value: String(field.value ?? ""), onChange: field.onChange, disabled: disabled, children: _jsx(InputOTPGroup, { children: Array.from({ length: otpLength ?? 6 }).map((_, i) => (_jsx(InputOTPSlot, { index: i }, i))) }) }));
60
+ return (_jsx(InputOTP, { maxLength: otpLength ?? 6, value: String(field.value ?? ""), onChange: field.onChange, disabled: disabled, children: _jsx(InputOTPGroup, { children: Array.from({ length: otpLength ?? 6 }).map((_, i) => (
61
+ // biome-ignore lint/suspicious/noArrayIndexKey: O índice é estável para o OTP
62
+ _jsx(InputOTPSlot, { index: i }, i))) }) }));
61
63
  case "toggle":
62
64
  return (_jsx("div", { className: "flex items-center gap-2", children: _jsx(Toggle, { pressed: !!field.value, onPressedChange: (pressed) => field.onChange(pressed), disabled: disabled, children: label }) }));
63
65
  default:
@@ -86,11 +86,6 @@ export interface GenealogyCanvasProps extends Omit<ComponentProps<typeof Canvas>
86
86
  */
87
87
  className?: string;
88
88
  }
89
- /**
90
- * Componente GenealogyCanvas
91
- *
92
- * Renderiza uma árvore genealógica interativa usando ReactFlow
93
- */
94
89
  export declare const GenealogyCanvas: ({ data, initialExpanded, nodeWidth, nodeHeight, horizontalSpacing, verticalSpacing, onNodeSelect, onNodeExpand, onAddRelation, renderNode, className, ...canvasProps }: GenealogyCanvasProps) => import("react/jsx-runtime").JSX.Element;
95
90
  export {};
96
91
  //# sourceMappingURL=genealogy-canvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"genealogy-canvas.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/genealogy-canvas/genealogy-canvas.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAc7F,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAK5D;;GAEG;AACH,UAAU,iBAAiB;IACzB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7C,QAAQ,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9C,QAAQ,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/C,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAiDD;;GAEG;AACH,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;IAC1F;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAE7E;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE/E;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,SAAS,CAAC;IAEpD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,wKAa7B,oBAAoB,4CAkJtB,CAAC"}
1
+ {"version":3,"file":"genealogy-canvas.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/genealogy-canvas/genealogy-canvas.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAc7F,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAK5D;;GAEG;AACH,UAAU,iBAAiB;IACzB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7C,QAAQ,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9C,QAAQ,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/C,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAiDD;;GAEG;AACH,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;IAC1F;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAE7E;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3D;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE/E;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,SAAS,CAAC;IAEpD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwED,eAAO,MAAM,eAAe,GAAI,wKAa7B,oBAAoB,4CAyEtB,CAAC"}