@servicetitan/anvil2-ext-atlas 1.3.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/{chat-composer-rich-Bj1gmhec.js → chat-composer-rich-BXkSuUJL.js} +8 -8
- package/dist/{chat-composer-rich-Bj1gmhec.js.map → chat-composer-rich-BXkSuUJL.js.map} +1 -1
- package/dist/chat-composer-rich.css +38 -43
- package/dist/chat-composer-rich.js +1 -1
- package/dist/{chat-window-4hy-1xfj.js → chat-window-DBUlbdg8.js} +7 -7
- package/dist/{chat-window-4hy-1xfj.js.map → chat-window-DBUlbdg8.js.map} +1 -1
- package/dist/chat-window.css +9 -11
- package/dist/chat.js +1 -1
- package/dist/{content-DAPOfSv5.js → content-DGEN1Tcq.js} +3 -3
- package/dist/{content-DAPOfSv5.js.map → content-DGEN1Tcq.js.map} +1 -1
- package/dist/content.css +8 -11
- package/dist/content.js +1 -1
- package/dist/{footer-Cv4yRBA1.js → footer-B5u9oSlP.js} +6 -6
- package/dist/footer-B5u9oSlP.js.map +1 -0
- package/dist/footer.css +6 -8
- package/dist/footer.js +1 -1
- package/dist/{header-ku2JmzDC.js → header-DFb1Mw8C.js} +4 -4
- package/dist/header-DFb1Mw8C.js.map +1 -0
- package/dist/header.css +19 -22
- package/dist/header.js +1 -1
- package/dist/index.js +13 -13
- package/dist/{infinite-content-BnStGJfq.js → infinite-content-CUXfEs3y.js} +5 -5
- package/dist/{infinite-content-BnStGJfq.js.map → infinite-content-CUXfEs3y.js.map} +1 -1
- package/dist/infinite-content.css +12 -14
- package/dist/infinite-content.js +1 -1
- package/dist/{loader-BF1xpasR.js → loader-CFGGtqVo.js} +4 -4
- package/dist/loader-CFGGtqVo.js.map +1 -0
- package/dist/loader.js +1 -1
- package/dist/{markdown-text-CgCSN9q6.js → markdown-text-DWHdZVVX.js} +2 -2
- package/dist/{markdown-text-CgCSN9q6.js.map → markdown-text-DWHdZVVX.js.map} +1 -1
- package/dist/markdown-text.css +22 -23
- package/dist/markdown-text.js +1 -1
- package/dist/messages.js +1 -1
- package/dist/{notification-card-DMnEZI0Q.js → notification-card-Bhi2-mQR.js} +13 -6
- package/dist/notification-card-Bhi2-mQR.js.map +1 -0
- package/dist/notification-card.js +1 -1
- package/dist/screens.js +1 -1
- package/dist/{spinner-QnlThoJs.js → spinner-DV6XzVPx.js} +2 -2
- package/dist/{spinner-QnlThoJs.js.map → spinner-DV6XzVPx.js.map} +1 -1
- package/dist/spinner.css +5 -7
- package/dist/spinner.js +1 -1
- package/dist/{suggestion-pJLJZyjg.js → suggestion-BQxfnBot.js} +3 -3
- package/dist/suggestion-BQxfnBot.js.map +1 -0
- package/dist/suggestion.js +1 -1
- package/dist/{user-message-BqWF67vX.js → user-message-CNRLUNb-.js} +10 -10
- package/dist/user-message-CNRLUNb-.js.map +1 -0
- package/dist/user-message.css +102 -117
- package/dist/{welcome-CLNfeZDg.js → welcome-aZxbV1rc.js} +8 -8
- package/dist/welcome-aZxbV1rc.js.map +1 -0
- package/dist/welcome.css +10 -12
- package/package.json +11 -11
- package/dist/footer-Cv4yRBA1.js.map +0 -1
- package/dist/header-ku2JmzDC.js.map +0 -1
- package/dist/loader-BF1xpasR.js.map +0 -1
- package/dist/notification-card-DMnEZI0Q.js.map +0 -1
- package/dist/suggestion-pJLJZyjg.js.map +0 -1
- package/dist/user-message-BqWF67vX.js.map +0 -1
- package/dist/welcome-CLNfeZDg.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @servicetitan/anvil2-ext-atlas
|
|
2
2
|
|
|
3
|
+
## 2.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`e7f4ecc`](https://github.com/servicetitan/hammer/commit/e7f4ecc3d4d32a3ae61e66bb24725249963191c1), [`4c802ea`](https://github.com/servicetitan/hammer/commit/4c802eaefd30149c227d8c48d45305c28965e91d), [`04d03fe`](https://github.com/servicetitan/hammer/commit/04d03fe882417710f07f8d4da8a44efeb8dae6e9), [`3b48e37`](https://github.com/servicetitan/hammer/commit/3b48e3774fb814283e1f1f278d18d6f9035e4e54)]:
|
|
8
|
+
- @servicetitan/anvil2@3.0.1
|
|
9
|
+
|
|
10
|
+
## 2.0.0
|
|
11
|
+
|
|
12
|
+
### Major Changes
|
|
13
|
+
|
|
14
|
+
- [#1899](https://github.com/servicetitan/hammer/pull/1899) [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5) Thanks [@tounsoo](https://github.com/tounsoo)! - 3.0 Pre-release.
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies [[`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5)]:
|
|
19
|
+
- @servicetitan/anvil2@3.0.0
|
|
20
|
+
|
|
3
21
|
## 1.3.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
|
@@ -12,16 +12,16 @@ const SvgSend = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "
|
|
|
12
12
|
|
|
13
13
|
const SvgAttachFile = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M17.5 15.438q0 2.382-1.673 4.056t-4.056 1.673q-2.384 0-4.056-1.673-1.674-1.674-1.673-4.056v-8.48q0-1.718 1.203-2.922 1.203-1.203 2.922-1.203t2.922 1.203q1.203 1.205 1.203 2.922v8.021q0 1.055-.734 1.788a2.43 2.43 0 0 1-1.787.733 2.43 2.43 0 0 1-1.788-.733 2.43 2.43 0 0 1-.733-1.788V7.417q0-.39.264-.653a.9.9 0 0 1 .653-.264q.39 0 .653.264a.9.9 0 0 1 .263.653v7.562a.67.67 0 0 0 .688.688.67.67 0 0 0 .687-.688V6.96a2.32 2.32 0 0 0-.676-1.628q-.653-.664-1.615-.664-.963 0-1.627.664a2.2 2.2 0 0 0-.665 1.627v8.48q-.023 1.627 1.123 2.761t2.773 1.134q1.604 0 2.727-1.134t1.169-2.762v-8.02q0-.39.263-.653a.9.9 0 0 1 .653-.264q.39 0 .653.264a.9.9 0 0 1 .264.653z" }));
|
|
14
14
|
|
|
15
|
-
const placeholder = "
|
|
16
|
-
const input = "
|
|
15
|
+
const placeholder = "_placeholder_1czf4_43";
|
|
16
|
+
const input = "_input_1czf4_36";
|
|
17
17
|
const styles = {
|
|
18
|
-
"composer-wrapper": "_composer-
|
|
19
|
-
"composer-form": "_composer-
|
|
20
|
-
"icon-button": "_icon-
|
|
21
|
-
"input-wrapper": "_input-
|
|
18
|
+
"composer-wrapper": "_composer-wrapper_1czf4_1",
|
|
19
|
+
"composer-form": "_composer-form_1czf4_9",
|
|
20
|
+
"icon-button": "_icon-button_1czf4_21",
|
|
21
|
+
"input-wrapper": "_input-wrapper_1czf4_36",
|
|
22
22
|
placeholder: placeholder,
|
|
23
23
|
input: input,
|
|
24
|
-
"send-button": "_send-
|
|
24
|
+
"send-button": "_send-button_1czf4_99"};
|
|
25
25
|
|
|
26
26
|
const ChatComposerRich = ({
|
|
27
27
|
message,
|
|
@@ -153,4 +153,4 @@ const ChatComposerRich = ({
|
|
|
153
153
|
};
|
|
154
154
|
|
|
155
155
|
export { ChatComposerRich as C };
|
|
156
|
-
//# sourceMappingURL=chat-composer-rich-
|
|
156
|
+
//# sourceMappingURL=chat-composer-rich-BXkSuUJL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-composer-rich-Bj1gmhec.js","sources":["../../anvil2/dist/assets/icons/material/round/add.svg","../../anvil2/dist/assets/icons/material/round/mic.svg","../../anvil2/dist/assets/icons/material/round/send.svg","../../anvil2/dist/assets/icons/st/attach_file.svg","../src/components/chat-composer-rich/chat-composer-rich.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgAdd = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 13h-5v5c0 .55-.45 1-1 1s-1-.45-1-1v-5H6c-.55 0-1-.45-1-1s.45-1 1-1h5V6c0-.55.45-1 1-1s1 .45 1 1v5h5c.55 0 1 .45 1 1s-.45 1-1 1z\" }));\nexport default SvgAdd;\n","import * as React from \"react\";\nconst SvgMic = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 14c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.91-3c-.49 0-.9.36-.98.85C16.52 14.2 14.47 16 12 16s-4.52-1.8-4.93-4.15a.998.998 0 0 0-.98-.85c-.61 0-1.09.54-1 1.14.49 3 2.89 5.35 5.91 5.78V20c0 .55.45 1 1 1s1-.45 1-1v-2.08a6.993 6.993 0 0 0 5.91-5.78c.1-.6-.39-1.14-1-1.14z\" }));\nexport default SvgMic;\n","import * as React from \"react\";\nconst SvgSend = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m3.4 20.4 17.45-7.48a1 1 0 0 0 0-1.84L3.4 3.6a.993.993 0 0 0-1.39.91L2 9.12c0 .5.37.93.87.99L17 12 2.87 13.88c-.5.07-.87.5-.87 1l.01 4.61c0 .71.73 1.2 1.39.91z\" }));\nexport default SvgSend;\n","import * as React from \"react\";\nconst SvgAttachFile = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.5 15.438q0 2.382-1.673 4.056t-4.056 1.673q-2.384 0-4.056-1.673-1.674-1.674-1.673-4.056v-8.48q0-1.718 1.203-2.922 1.203-1.203 2.922-1.203t2.922 1.203q1.203 1.205 1.203 2.922v8.021q0 1.055-.734 1.788a2.43 2.43 0 0 1-1.787.733 2.43 2.43 0 0 1-1.788-.733 2.43 2.43 0 0 1-.733-1.788V7.417q0-.39.264-.653a.9.9 0 0 1 .653-.264q.39 0 .653.264a.9.9 0 0 1 .263.653v7.562a.67.67 0 0 0 .688.688.67.67 0 0 0 .687-.688V6.96a2.32 2.32 0 0 0-.676-1.628q-.653-.664-1.615-.664-.963 0-1.627.664a2.2 2.2 0 0 0-.665 1.627v8.48q-.023 1.627 1.123 2.761t2.773 1.134q1.604 0 2.727-1.134t1.169-2.762v-8.02q0-.39.263-.653a.9.9 0 0 1 .653-.264q.39 0 .653.264a.9.9 0 0 1 .264.653z\" }));\nexport default SvgAttachFile;\n","import { KeyboardEvent, useEffect, useRef, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { Button, Menu } from \"@servicetitan/anvil2\";\nimport IconPlus from \"@servicetitan/anvil2/assets/icons/material/round/add.svg\";\nimport IconMic from \"@servicetitan/anvil2/assets/icons/material/round/mic.svg\";\nimport IconSend from \"@servicetitan/anvil2/assets/icons/material/round/send.svg\";\nimport IconAttachFile from \"@servicetitan/anvil2/assets/icons/st/attach_file.svg\";\n\nimport styles from \"./chat-composer-rich.module.scss\";\n\nexport interface ChatComposerRichProps {\n message?: string;\n /** Callback when user submits a message */\n onSend?: (text: string) => void;\n /** Placeholder text for the input */\n placeholder?: string;\n /** Whether the composer is disabled */\n disabled?: boolean;\n /** Additional CSS class name */\n className?: string;\n onChange: (text: string) => void;\n /** Callback when upload file is selected from menu */\n onUploadFile?: () => void;\n /** Callback when dictate message is selected from menu */\n onDictateMessage?: () => void;\n /** ID for the menu button */\n menuButtonId?: string;\n /** ID for the send icon button */\n sendIconId?: string;\n /** ID for the message input area */\n messageInputId?: string;\n}\n\nexport const ChatComposerRich = ({\n message,\n onSend,\n onChange,\n placeholder = \"Ask anything...\",\n disabled = false,\n className,\n onUploadFile,\n onDictateMessage,\n messageInputId,\n sendIconId,\n}: ChatComposerRichProps) => {\n const [isEmpty, setIsEmpty] = useState(true);\n const editorRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (editorRef.current && message) {\n editorRef.current.innerText = message;\n }\n }, [message]);\n\n const handleInput = () => {\n const text = editorRef.current?.innerText.trim() ?? \"\";\n setIsEmpty(text.length === 0);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n handleSubmit();\n }\n };\n\n const handleSubmit = () => {\n if (disabled) {\n return;\n }\n\n const text = editorRef.current?.innerText.trim() ?? \"\";\n onChange(text);\n if (!text) {\n return;\n }\n\n onSend?.(text);\n\n if (editorRef.current) {\n // Clear content while preserving the element structure\n editorRef.current.innerText = \"\";\n // Keep focus in the input for smooth conversation flow\n editorRef.current.focus();\n }\n setIsEmpty(true);\n };\n\n useEffect(() => {\n // Ensure empty placeholder is visible on mount\n setIsEmpty(!editorRef.current?.innerText.trim());\n }, []);\n\n return (\n <div className={classNames(styles[\"composer-wrapper\"], className)}>\n <form\n onSubmit={(e) => e.preventDefault()}\n className={styles[\"composer-form\"]}\n >\n {onDictateMessage || onUploadFile ? (\n <Menu\n id=\"\"\n trigger={(props) => (\n <Button\n {...props}\n type=\"button\"\n aria-label=\"Open menu\"\n disabled={disabled}\n className={styles[\"icon-button\"]}\n icon={IconPlus}\n size=\"small\"\n />\n )}\n disabled={disabled}\n >\n <Menu.Item\n label=\"Upload file\"\n icon={IconAttachFile}\n onClick={onUploadFile}\n />\n <Menu.Item\n label=\"Dictate message\"\n icon={IconMic}\n onClick={onDictateMessage}\n />\n </Menu>\n ) : (\n <div />\n )}\n\n <div className={styles[\"input-wrapper\"]}>\n <div\n id={messageInputId}\n ref={editorRef}\n contentEditable=\"plaintext-only\"\n role=\"textbox\"\n aria-multiline=\"true\"\n aria-label={placeholder}\n data-placeholder={placeholder}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n className={styles[\"input\"]}\n tabIndex={0}\n />\n {isEmpty && (\n <span className={styles[\"placeholder\"]}>{placeholder}</span>\n )}\n </div>\n\n <Button\n id={sendIconId}\n size=\"small\"\n type=\"button\"\n onClick={handleSubmit}\n disabled={disabled || isEmpty}\n className={styles[\"send-button\"]}\n aria-label=\"Send message\"\n appearance=\"ghost\"\n icon={IconSend}\n />\n </form>\n </div>\n );\n};\n"],"names":["IconPlus","IconAttachFile","IconMic","IconSend"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat-composer-rich-BXkSuUJL.js","sources":["../../anvil2/dist/assets/icons/material/round/add.svg","../../anvil2/dist/assets/icons/material/round/mic.svg","../../anvil2/dist/assets/icons/material/round/send.svg","../../anvil2/dist/assets/icons/st/attach_file.svg","../src/components/chat-composer-rich/chat-composer-rich.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgAdd = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 13h-5v5c0 .55-.45 1-1 1s-1-.45-1-1v-5H6c-.55 0-1-.45-1-1s.45-1 1-1h5V6c0-.55.45-1 1-1s1 .45 1 1v5h5c.55 0 1 .45 1 1s-.45 1-1 1z\" }));\nexport default SvgAdd;\n","import * as React from \"react\";\nconst SvgMic = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 14c1.66 0 3-1.34 3-3V5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.91-3c-.49 0-.9.36-.98.85C16.52 14.2 14.47 16 12 16s-4.52-1.8-4.93-4.15a.998.998 0 0 0-.98-.85c-.61 0-1.09.54-1 1.14.49 3 2.89 5.35 5.91 5.78V20c0 .55.45 1 1 1s1-.45 1-1v-2.08a6.993 6.993 0 0 0 5.91-5.78c.1-.6-.39-1.14-1-1.14z\" }));\nexport default SvgMic;\n","import * as React from \"react\";\nconst SvgSend = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m3.4 20.4 17.45-7.48a1 1 0 0 0 0-1.84L3.4 3.6a.993.993 0 0 0-1.39.91L2 9.12c0 .5.37.93.87.99L17 12 2.87 13.88c-.5.07-.87.5-.87 1l.01 4.61c0 .71.73 1.2 1.39.91z\" }));\nexport default SvgSend;\n","import * as React from \"react\";\nconst SvgAttachFile = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.5 15.438q0 2.382-1.673 4.056t-4.056 1.673q-2.384 0-4.056-1.673-1.674-1.674-1.673-4.056v-8.48q0-1.718 1.203-2.922 1.203-1.203 2.922-1.203t2.922 1.203q1.203 1.205 1.203 2.922v8.021q0 1.055-.734 1.788a2.43 2.43 0 0 1-1.787.733 2.43 2.43 0 0 1-1.788-.733 2.43 2.43 0 0 1-.733-1.788V7.417q0-.39.264-.653a.9.9 0 0 1 .653-.264q.39 0 .653.264a.9.9 0 0 1 .263.653v7.562a.67.67 0 0 0 .688.688.67.67 0 0 0 .687-.688V6.96a2.32 2.32 0 0 0-.676-1.628q-.653-.664-1.615-.664-.963 0-1.627.664a2.2 2.2 0 0 0-.665 1.627v8.48q-.023 1.627 1.123 2.761t2.773 1.134q1.604 0 2.727-1.134t1.169-2.762v-8.02q0-.39.263-.653a.9.9 0 0 1 .653-.264q.39 0 .653.264a.9.9 0 0 1 .264.653z\" }));\nexport default SvgAttachFile;\n","import { KeyboardEvent, useEffect, useRef, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { Button, Menu } from \"@servicetitan/anvil2\";\nimport IconPlus from \"@servicetitan/anvil2/assets/icons/material/round/add.svg\";\nimport IconMic from \"@servicetitan/anvil2/assets/icons/material/round/mic.svg\";\nimport IconSend from \"@servicetitan/anvil2/assets/icons/material/round/send.svg\";\nimport IconAttachFile from \"@servicetitan/anvil2/assets/icons/st/attach_file.svg\";\n\nimport styles from \"./chat-composer-rich.module.scss\";\n\nexport interface ChatComposerRichProps {\n message?: string;\n /** Callback when user submits a message */\n onSend?: (text: string) => void;\n /** Placeholder text for the input */\n placeholder?: string;\n /** Whether the composer is disabled */\n disabled?: boolean;\n /** Additional CSS class name */\n className?: string;\n onChange: (text: string) => void;\n /** Callback when upload file is selected from menu */\n onUploadFile?: () => void;\n /** Callback when dictate message is selected from menu */\n onDictateMessage?: () => void;\n /** ID for the menu button */\n menuButtonId?: string;\n /** ID for the send icon button */\n sendIconId?: string;\n /** ID for the message input area */\n messageInputId?: string;\n}\n\nexport const ChatComposerRich = ({\n message,\n onSend,\n onChange,\n placeholder = \"Ask anything...\",\n disabled = false,\n className,\n onUploadFile,\n onDictateMessage,\n messageInputId,\n sendIconId,\n}: ChatComposerRichProps) => {\n const [isEmpty, setIsEmpty] = useState(true);\n const editorRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (editorRef.current && message) {\n editorRef.current.innerText = message;\n }\n }, [message]);\n\n const handleInput = () => {\n const text = editorRef.current?.innerText.trim() ?? \"\";\n setIsEmpty(text.length === 0);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n handleSubmit();\n }\n };\n\n const handleSubmit = () => {\n if (disabled) {\n return;\n }\n\n const text = editorRef.current?.innerText.trim() ?? \"\";\n onChange(text);\n if (!text) {\n return;\n }\n\n onSend?.(text);\n\n if (editorRef.current) {\n // Clear content while preserving the element structure\n editorRef.current.innerText = \"\";\n // Keep focus in the input for smooth conversation flow\n editorRef.current.focus();\n }\n setIsEmpty(true);\n };\n\n useEffect(() => {\n // Ensure empty placeholder is visible on mount\n setIsEmpty(!editorRef.current?.innerText.trim());\n }, []);\n\n return (\n <div className={classNames(styles[\"composer-wrapper\"], className)}>\n <form\n onSubmit={(e) => e.preventDefault()}\n className={styles[\"composer-form\"]}\n >\n {onDictateMessage || onUploadFile ? (\n <Menu\n id=\"\"\n trigger={(props) => (\n <Button\n {...props}\n type=\"button\"\n aria-label=\"Open menu\"\n disabled={disabled}\n className={styles[\"icon-button\"]}\n icon={IconPlus}\n size=\"small\"\n />\n )}\n disabled={disabled}\n >\n <Menu.Item\n label=\"Upload file\"\n icon={IconAttachFile}\n onClick={onUploadFile}\n />\n <Menu.Item\n label=\"Dictate message\"\n icon={IconMic}\n onClick={onDictateMessage}\n />\n </Menu>\n ) : (\n <div />\n )}\n\n <div className={styles[\"input-wrapper\"]}>\n <div\n id={messageInputId}\n ref={editorRef}\n contentEditable=\"plaintext-only\"\n role=\"textbox\"\n aria-multiline=\"true\"\n aria-label={placeholder}\n data-placeholder={placeholder}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n className={styles[\"input\"]}\n tabIndex={0}\n />\n {isEmpty && (\n <span className={styles[\"placeholder\"]}>{placeholder}</span>\n )}\n </div>\n\n <Button\n id={sendIconId}\n size=\"small\"\n type=\"button\"\n onClick={handleSubmit}\n disabled={disabled || isEmpty}\n className={styles[\"send-button\"]}\n aria-label=\"Send message\"\n appearance=\"ghost\"\n icon={IconSend}\n />\n </form>\n </div>\n );\n};\n"],"names":["IconPlus","IconAttachFile","IconMic","IconSend"],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
._composer-wrapper_l82dk_1 {
|
|
1
|
+
._composer-wrapper_1czf4_1 {
|
|
4
2
|
width: 100%;
|
|
5
3
|
margin-inline: auto;
|
|
6
4
|
display: flex;
|
|
@@ -8,9 +6,9 @@
|
|
|
8
6
|
flex: 1;
|
|
9
7
|
}
|
|
10
8
|
|
|
11
|
-
._composer-
|
|
12
|
-
background-color: var(--background-color, #ffffff);
|
|
13
|
-
border: 0.0625rem solid var(--border-color, #949596);
|
|
9
|
+
._composer-form_1czf4_9 {
|
|
10
|
+
background-color: var(--a2-background-color-default, #ffffff);
|
|
11
|
+
border: 0.0625rem solid var(--a2-border-color-default, #949596);
|
|
14
12
|
border-radius: 0.375rem;
|
|
15
13
|
padding: 0 0.5rem;
|
|
16
14
|
display: grid;
|
|
@@ -20,35 +18,34 @@
|
|
|
20
18
|
transition: border-color 0.2s ease;
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
opacity: 0.5;
|
|
34
|
-
}
|
|
35
|
-
._icon-button_l82dk_22:hover:not(:disabled) {
|
|
36
|
-
background-color: var(--background-color-strong, #f7f7f7);
|
|
37
|
-
}
|
|
21
|
+
.anvil2 ._icon-button_1czf4_21 {
|
|
22
|
+
padding: 0.5rem;
|
|
23
|
+
border-radius: var(--a2-border-radius-circular);
|
|
24
|
+
background: transparent;
|
|
25
|
+
border: none;
|
|
26
|
+
margin-bottom: 6px;
|
|
27
|
+
}
|
|
28
|
+
.anvil2 ._icon-button_1czf4_21:disabled {
|
|
29
|
+
cursor: not-allowed;
|
|
30
|
+
opacity: 0.5;
|
|
38
31
|
}
|
|
39
|
-
.
|
|
32
|
+
.anvil2 ._icon-button_1czf4_21:hover:not(:disabled) {
|
|
33
|
+
background-color: var(--a2-background-color-strong, #f7f7f7);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
._input-wrapper_1czf4_36 {
|
|
40
37
|
flex: 1;
|
|
41
38
|
display: flex;
|
|
42
39
|
align-items: center;
|
|
43
40
|
position: relative;
|
|
44
41
|
}
|
|
45
42
|
|
|
46
|
-
.
|
|
43
|
+
._placeholder_1czf4_43 {
|
|
47
44
|
position: absolute;
|
|
48
45
|
left: 0.4rem;
|
|
49
46
|
top: 50%;
|
|
50
47
|
transform: translateY(-50%);
|
|
51
|
-
color: var(--foreground-color-subdued, #737475);
|
|
48
|
+
color: var(--a2-foreground-color-subdued, #737475);
|
|
52
49
|
pointer-events: none;
|
|
53
50
|
-webkit-user-select: none;
|
|
54
51
|
-moz-user-select: none;
|
|
@@ -56,16 +53,16 @@
|
|
|
56
53
|
font-size: 1rem;
|
|
57
54
|
}
|
|
58
55
|
|
|
59
|
-
.
|
|
56
|
+
._input_1czf4_36 {
|
|
60
57
|
flex: 1;
|
|
61
58
|
width: 100%;
|
|
62
59
|
max-width: 100%;
|
|
63
60
|
outline: none;
|
|
64
61
|
background: transparent;
|
|
65
|
-
color: var(--foreground-color, #141414);
|
|
66
|
-
font-family: var(--font-family-base, "Nunito Sans", sans-serif);
|
|
62
|
+
color: var(--a2-foreground-color-default, #141414);
|
|
63
|
+
font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
|
|
67
64
|
font-size: 1rem;
|
|
68
|
-
line-height: var(--
|
|
65
|
+
line-height: var(--a2-font-line-height-base, 1.5);
|
|
69
66
|
max-height: 6.25rem;
|
|
70
67
|
overflow-y: auto;
|
|
71
68
|
overflow-x: hidden;
|
|
@@ -78,33 +75,31 @@
|
|
|
78
75
|
padding-left: 7px;
|
|
79
76
|
padding-right: 0.75rem;
|
|
80
77
|
}
|
|
81
|
-
.
|
|
78
|
+
._input_1czf4_36:empty::before {
|
|
82
79
|
content: "";
|
|
83
80
|
}
|
|
84
|
-
.
|
|
81
|
+
._input_1czf4_36::-webkit-scrollbar {
|
|
85
82
|
width: 6px;
|
|
86
83
|
}
|
|
87
|
-
.
|
|
84
|
+
._input_1czf4_36::-webkit-scrollbar-track {
|
|
88
85
|
background: transparent;
|
|
89
86
|
}
|
|
90
|
-
.
|
|
91
|
-
background: var(--border-color-subdued, #dfe0e1);
|
|
92
|
-
border-radius: var(--border-radius-medium);
|
|
87
|
+
._input_1czf4_36::-webkit-scrollbar-thumb {
|
|
88
|
+
background: var(--a2-border-color-subdued, #dfe0e1);
|
|
89
|
+
border-radius: var(--a2-border-radius-medium);
|
|
93
90
|
}
|
|
94
|
-
.
|
|
95
|
-
background: var(--border-color, #949596);
|
|
91
|
+
._input_1czf4_36::-webkit-scrollbar-thumb:hover {
|
|
92
|
+
background: var(--a2-border-color-default, #949596);
|
|
96
93
|
}
|
|
97
94
|
|
|
98
|
-
._actions-
|
|
95
|
+
._actions-wrapper_1czf4_93 {
|
|
99
96
|
display: flex;
|
|
100
97
|
align-items: center;
|
|
101
98
|
gap: 0.5rem;
|
|
102
99
|
}
|
|
103
100
|
|
|
104
|
-
|
|
105
|
-
.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
margin-bottom: 6px;
|
|
109
|
-
}
|
|
101
|
+
.anvil2 ._send-button_1czf4_99 {
|
|
102
|
+
padding: 0.5rem;
|
|
103
|
+
border-radius: var(--a2-border-radius-circular);
|
|
104
|
+
margin-bottom: 6px;
|
|
110
105
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { C as ChatComposerRich } from './chat-composer-rich-
|
|
1
|
+
export { C as ChatComposerRich } from './chat-composer-rich-BXkSuUJL.js';
|
|
2
2
|
//# sourceMappingURL=chat-composer-rich.js.map
|
|
@@ -2,17 +2,17 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { c as classNames } from './index-DDXI3m_u.js';
|
|
3
3
|
import { m as motion } from './proxy-BJr91CAa.js';
|
|
4
4
|
|
|
5
|
-
import './chat-window.css';const open = "
|
|
6
|
-
const closed = "
|
|
7
|
-
const positioned = "
|
|
8
|
-
const relative = "
|
|
5
|
+
import './chat-window.css';const open = "_open_14vhm_19";
|
|
6
|
+
const closed = "_closed_14vhm_23";
|
|
7
|
+
const positioned = "_positioned_14vhm_27";
|
|
8
|
+
const relative = "_relative_14vhm_31";
|
|
9
9
|
const styles = {
|
|
10
|
-
"chat-window": "_chat-
|
|
10
|
+
"chat-window": "_chat-window_14vhm_1",
|
|
11
11
|
open: open,
|
|
12
12
|
closed: closed,
|
|
13
13
|
positioned: positioned,
|
|
14
14
|
relative: relative,
|
|
15
|
-
"chat-window-expanded": "_chat-window-
|
|
15
|
+
"chat-window-expanded": "_chat-window-expanded_14vhm_35"};
|
|
16
16
|
|
|
17
17
|
const ChatWindow = ({
|
|
18
18
|
open,
|
|
@@ -72,4 +72,4 @@ const ChatWindow = ({
|
|
|
72
72
|
};
|
|
73
73
|
|
|
74
74
|
export { ChatWindow as C };
|
|
75
|
-
//# sourceMappingURL=chat-window-
|
|
75
|
+
//# sourceMappingURL=chat-window-DBUlbdg8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-window-
|
|
1
|
+
{"version":3,"file":"chat-window-DBUlbdg8.js","sources":["../src/components/chat/chat-window.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport classNames from \"classnames\";\nimport { motion } from \"framer-motion\";\n\nimport styles from \"./styles.module.scss\";\n\ninterface ChatWindowProps {\n open: boolean;\n position?: { x: number; y: number };\n isDragging?: boolean;\n fullscreen?: boolean;\n children: ReactNode;\n}\n\nexport const ChatWindow = ({\n open,\n position,\n isDragging,\n fullscreen = false,\n children,\n}: ChatWindowProps) => {\n const isFullscreenOpen = fullscreen && open;\n\n const className = classNames({\n [styles[\"chat-window-expanded\"]]: isFullscreenOpen,\n [styles[\"chat-window\"]]: !isFullscreenOpen,\n [styles[\"open\"]]: !isFullscreenOpen && open,\n [styles[\"closed\"]]: !isFullscreenOpen && !open,\n [styles[\"positioned\"]]: !isFullscreenOpen && position,\n [styles[\"relative\"]]: !isFullscreenOpen && !position,\n });\n\n const getPositionStyles = () => {\n if (isFullscreenOpen) {\n return {};\n }\n\n return position\n ? {\n left: position.x,\n top: position.y,\n }\n : {};\n };\n\n return (\n <motion.div\n layout={!isDragging}\n initial={{\n opacity: isFullscreenOpen ? 0 : 1,\n x: !isFullscreenOpen && !open ? 0 : -25,\n }}\n animate={{\n x: isFullscreenOpen ? 0 : open ? -25 : 0,\n }}\n transition={{\n type: isFullscreenOpen ? \"tween\" : \"spring\",\n ease: isFullscreenOpen ? \"easeInOut\" : undefined,\n stiffness: 300,\n damping: 35,\n duration: 0.3,\n }}\n className={className}\n style={getPositionStyles()}\n >\n <motion.div\n layout={!isDragging ? \"position\" : undefined}\n style={{ width: \"100%\", height: \"100%\" }}\n >\n {children}\n </motion.div>\n </motion.div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAcO,MAAM,aAAa,CAAC;AAAA,EACzB,IAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb;AACF,CAAA,KAAuB;AACrB,EAAA,MAAM,mBAAmB,UAAA,IAAc,IAAA;AAEvC,EAAA,MAAM,YAAY,UAAA,CAAW;AAAA,IAC3B,CAAC,MAAA,CAAO,sBAAsB,CAAC,GAAG,gBAAA;AAAA,IAClC,CAAC,MAAA,CAAO,aAAa,CAAC,GAAG,CAAC,gBAAA;AAAA,IAC1B,CAAC,MAAA,CAAO,MAAM,CAAC,GAAG,CAAC,gBAAA,IAAoB,IAAA;AAAA,IACvC,CAAC,MAAA,CAAO,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAA;AAAA,IAC1C,CAAC,MAAA,CAAO,YAAY,CAAC,GAAG,CAAC,gBAAA,IAAoB,QAAA;AAAA,IAC7C,CAAC,MAAA,CAAO,UAAU,CAAC,GAAG,CAAC,oBAAoB,CAAC;AAAA,GAC7C,CAAA;AAED,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,OAAO,QAAA,GACH;AAAA,MACE,MAAM,QAAA,CAAS,CAAA;AAAA,MACf,KAAK,QAAA,CAAS;AAAA,QAEhB,EAAC;AAAA,EACP,CAAA;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA,CAAO,GAAA;AAAA,IAAP;AAAA,MACC,QAAQ,CAAC,UAAA;AAAA,MACT,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,mBAAmB,CAAA,GAAI,CAAA;AAAA,QAChC,CAAA,EAAG,CAAC,gBAAA,IAAoB,CAAC,OAAO,CAAA,GAAI;AAAA,OACtC;AAAA,MACA,OAAA,EAAS;AAAA,QACP,CAAA,EAAG,gBAAA,GAAmB,CAAA,GAAI,IAAA,GAAO,GAAA,GAAM;AAAA,OACzC;AAAA,MACA,UAAA,EAAY;AAAA,QACV,IAAA,EAAM,mBAAmB,OAAA,GAAU,QAAA;AAAA,QACnC,IAAA,EAAM,mBAAmB,WAAA,GAAc,MAAA;AAAA,QACvC,SAAA,EAAW,GAAA;AAAA,QACX,OAAA,EAAS,EAAA;AAAA,QACT,QAAA,EAAU;AAAA,OACZ;AAAA,MACA,SAAA;AAAA,MACA,OAAO,iBAAA,EAAkB;AAAA,MAEzB,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA,CAAO,GAAA;AAAA,QAAP;AAAA,UACC,MAAA,EAAQ,CAAC,UAAA,GAAa,UAAA,GAAa,MAAA;AAAA,UACnC,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,QAAQ,MAAA,EAAO;AAAA,UAEtC;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;;;;"}
|
package/dist/chat-window.css
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
._chat-window_1qo7q_1 {
|
|
1
|
+
._chat-window_14vhm_1 {
|
|
4
2
|
position: fixed;
|
|
5
3
|
top: 5%;
|
|
6
4
|
right: 0;
|
|
@@ -11,30 +9,30 @@
|
|
|
11
9
|
box-sizing: border-box;
|
|
12
10
|
display: flex;
|
|
13
11
|
flex-direction: column;
|
|
14
|
-
border: 1px solid var(--border-color-subdued);
|
|
12
|
+
border: 1px solid var(--a2-border-color-subdued);
|
|
15
13
|
box-shadow: 0 8px 24px 0 rgba(20, 20, 20, 0.08);
|
|
16
14
|
overflow: hidden;
|
|
17
15
|
z-index: 9999;
|
|
18
|
-
background: light-dark(var(--background-color-strong), var(--background-color));
|
|
16
|
+
background: light-dark(var(--a2-background-color-strong), var(--a2-background-color-default));
|
|
19
17
|
}
|
|
20
18
|
|
|
21
|
-
._chat-
|
|
19
|
+
._chat-window_14vhm_1._open_14vhm_19 {
|
|
22
20
|
visibility: visible;
|
|
23
21
|
}
|
|
24
22
|
|
|
25
|
-
._chat-
|
|
23
|
+
._chat-window_14vhm_1._closed_14vhm_23 {
|
|
26
24
|
visibility: hidden;
|
|
27
25
|
}
|
|
28
26
|
|
|
29
|
-
._chat-
|
|
27
|
+
._chat-window_14vhm_1._positioned_14vhm_27 {
|
|
30
28
|
position: fixed;
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
._chat-
|
|
31
|
+
._chat-window_14vhm_1._relative_14vhm_31 {
|
|
34
32
|
position: relative;
|
|
35
33
|
}
|
|
36
34
|
|
|
37
|
-
._chat-window-
|
|
35
|
+
._chat-window-expanded_14vhm_35 {
|
|
38
36
|
position: fixed;
|
|
39
37
|
top: 0;
|
|
40
38
|
left: 0;
|
|
@@ -44,6 +42,6 @@
|
|
|
44
42
|
height: 100%;
|
|
45
43
|
z-index: 10001;
|
|
46
44
|
display: flex;
|
|
47
|
-
background: var(--background-color);
|
|
45
|
+
background: var(--a2-background-color-default);
|
|
48
46
|
visibility: visible;
|
|
49
47
|
}
|
package/dist/chat.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { C as ChatWindow } from './chat-window-
|
|
1
|
+
export { C as ChatWindow } from './chat-window-DBUlbdg8.js';
|
|
2
2
|
//# sourceMappingURL=chat.js.map
|
|
@@ -2,10 +2,10 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { useRef, useState, useEffect } from 'react';
|
|
3
3
|
import { c as classNames } from './index-DDXI3m_u.js';
|
|
4
4
|
import { Grid } from '@servicetitan/anvil2';
|
|
5
|
-
import { S as Spinner } from './spinner-
|
|
5
|
+
import { S as Spinner } from './spinner-DV6XzVPx.js';
|
|
6
6
|
|
|
7
7
|
import './content.css';const styles = {
|
|
8
|
-
"chat-content": "_chat-
|
|
8
|
+
"chat-content": "_chat-content_1q7qq_1"};
|
|
9
9
|
|
|
10
10
|
const Content = ({
|
|
11
11
|
children,
|
|
@@ -51,4 +51,4 @@ const Content = ({
|
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export { Content as C };
|
|
54
|
-
//# sourceMappingURL=content-
|
|
54
|
+
//# sourceMappingURL=content-DGEN1Tcq.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-
|
|
1
|
+
{"version":3,"file":"content-DGEN1Tcq.js","sources":["../src/components/content/content.tsx"],"sourcesContent":["import { FC, PropsWithChildren, useEffect, useRef, useState } from \"react\";\nimport classNames from \"classnames\";\nimport { Grid } from \"@servicetitan/anvil2\";\n\nimport { Spinner } from \"../spinner\";\n\nimport styles from \"./content.module.scss\";\n\nexport interface ContentProps {\n itemsLength: number;\n loading?: boolean;\n className?: string;\n}\n\nexport const Content: FC<PropsWithChildren<ContentProps>> = ({\n children,\n itemsLength,\n loading = false,\n className,\n}) => {\n const chatEndRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const [isInitialLoad, setIsInitialLoad] = useState(true);\n const [previousMessageCount, setPreviousMessageCount] = useState(0);\n\n const scrollToBottom = (smooth = true) => {\n if (smooth) {\n chatEndRef.current?.scrollIntoView({ behavior: \"smooth\", block: \"end\" });\n } else {\n chatEndRef.current?.scrollIntoView({ behavior: \"auto\", block: \"end\" });\n }\n };\n\n useEffect(() => {\n if (isInitialLoad && itemsLength > 0) {\n // Initial load: scroll to bottom without smooth animation\n scrollToBottom(false);\n setIsInitialLoad(false);\n setPreviousMessageCount(itemsLength);\n } else if (!isInitialLoad && itemsLength > previousMessageCount) {\n // New messages added: scroll to bottom with smooth animation\n scrollToBottom(true);\n setPreviousMessageCount(itemsLength);\n } else if (!isInitialLoad && itemsLength !== previousMessageCount) {\n // Message count changed but not increased (e.g., conversation switched)\n // Just update the count without scrolling\n setPreviousMessageCount(itemsLength);\n }\n }, [itemsLength, isInitialLoad, previousMessageCount]);\n\n return (\n <Grid\n className={classNames(styles[\"chat-content\"], className)}\n ref={containerRef}\n gridColumn=\"1 / 13\"\n >\n {loading ? <Spinner /> : children}\n <div ref={chatEndRef} />\n </Grid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAcO,MAAM,UAA+C,CAAC;AAAA,EAC3D,QAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,UAAA,GAAa,OAAuB,IAAI,CAAA;AAC9C,EAAA,MAAM,YAAA,GAAe,OAAuB,IAAI,CAAA;AAChD,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,IAAI,CAAA;AACvD,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAI,SAAS,CAAC,CAAA;AAElE,EAAA,MAAM,cAAA,GAAiB,CAAC,MAAA,GAAS,IAAA,KAAS;AACxC,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,UAAA,CAAW,SAAS,cAAA,CAAe,EAAE,UAAU,QAAA,EAAU,KAAA,EAAO,OAAO,CAAA;AAAA,IACzE,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,SAAS,cAAA,CAAe,EAAE,UAAU,MAAA,EAAQ,KAAA,EAAO,OAAO,CAAA;AAAA,IACvE;AAAA,EACF,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,aAAA,IAAiB,cAAc,CAAA,EAAG;AAEpC,MAAA,cAAA,CAAe,KAAK,CAAA;AACpB,MAAA,gBAAA,CAAiB,KAAK,CAAA;AACtB,MAAA,uBAAA,CAAwB,WAAW,CAAA;AAAA,IACrC,CAAA,MAAA,IAAW,CAAC,aAAA,IAAiB,WAAA,GAAc,oBAAA,EAAsB;AAE/D,MAAA,cAAA,CAAe,IAAI,CAAA;AACnB,MAAA,uBAAA,CAAwB,WAAW,CAAA;AAAA,IACrC,CAAA,MAAA,IAAW,CAAC,aAAA,IAAiB,WAAA,KAAgB,oBAAA,EAAsB;AAGjE,MAAA,uBAAA,CAAwB,WAAW,CAAA;AAAA,IACrC;AAAA,EACF,CAAA,EAAG,CAAC,WAAA,EAAa,aAAA,EAAe,oBAAoB,CAAC,CAAA;AAErD,EAAA,uBACE,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,UAAA,CAAW,MAAA,CAAO,cAAc,GAAG,SAAS,CAAA;AAAA,MACvD,GAAA,EAAK,YAAA;AAAA,MACL,UAAA,EAAW,QAAA;AAAA,MAEV,QAAA,EAAA;AAAA,QAAA,OAAA,mBAAU,GAAA,CAAC,WAAQ,CAAA,GAAK,QAAA;AAAA,wBACzB,GAAA,CAAC,KAAA,EAAA,EAAI,GAAA,EAAK,UAAA,EAAY;AAAA;AAAA;AAAA,GACxB;AAEJ;;;;"}
|
package/dist/content.css
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
flex-direction: column;
|
|
10
|
-
gap: var(--size-2);
|
|
11
|
-
}
|
|
1
|
+
.anvil2 ._chat-content_1q7qq_1 {
|
|
2
|
+
flex-grow: 1;
|
|
3
|
+
padding: var(--a2-size-4);
|
|
4
|
+
box-sizing: border-box;
|
|
5
|
+
overflow-y: auto;
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
gap: var(--a2-size-2);
|
|
12
9
|
}
|
package/dist/content.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { C as Content } from './content-
|
|
1
|
+
export { C as Content } from './content-DGEN1Tcq.js';
|
|
2
2
|
//# sourceMappingURL=content.js.map
|
|
@@ -2,10 +2,10 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { c as classNames } from './index-DDXI3m_u.js';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
import { Text, Link } from '@servicetitan/anvil2';
|
|
5
|
-
import { C as ChatComposerRich } from './chat-composer-rich-
|
|
5
|
+
import { C as ChatComposerRich } from './chat-composer-rich-BXkSuUJL.js';
|
|
6
6
|
|
|
7
7
|
import './footer.css';const styles = {
|
|
8
|
-
"chat-footer": "_chat-
|
|
8
|
+
"chat-footer": "_chat-footer_14xwy_1"};
|
|
9
9
|
|
|
10
10
|
const Footer = observer(
|
|
11
11
|
({
|
|
@@ -48,8 +48,8 @@ const Footer = observer(
|
|
|
48
48
|
variant: "body",
|
|
49
49
|
size: "small",
|
|
50
50
|
style: {
|
|
51
|
-
fontSize: "var(--typography-label-size-small)",
|
|
52
|
-
marginBlockStart: "var(--size-1)"
|
|
51
|
+
fontSize: "var(--a2-typography-label-size-small)",
|
|
52
|
+
marginBlockStart: "var(--a2-size-1)"
|
|
53
53
|
},
|
|
54
54
|
children: [
|
|
55
55
|
"Atlas is TI-powered, subject to our privacy policy.",
|
|
@@ -68,7 +68,7 @@ const Footer = observer(
|
|
|
68
68
|
size: "small",
|
|
69
69
|
subdued: true,
|
|
70
70
|
style: {
|
|
71
|
-
fontSize: "var(--typography-label-size-small)"
|
|
71
|
+
fontSize: "var(--a2-typography-label-size-small)"
|
|
72
72
|
},
|
|
73
73
|
children: "Learn more"
|
|
74
74
|
}
|
|
@@ -83,4 +83,4 @@ const Footer = observer(
|
|
|
83
83
|
);
|
|
84
84
|
|
|
85
85
|
export { Footer as F };
|
|
86
|
-
//# sourceMappingURL=footer-
|
|
86
|
+
//# sourceMappingURL=footer-B5u9oSlP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer-B5u9oSlP.js","sources":["../src/components/footer/footer.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { observer } from \"mobx-react\";\nimport { Link, Text } from \"@servicetitan/anvil2\";\n\nimport { ChatComposerRich } from \"../chat-composer-rich\";\n\nimport styles from \"./footer.module.scss\";\n\nexport interface FooterProps {\n isLoading?: boolean;\n message: string;\n placeholder?: string;\n onMessageChange: (value: string) => void;\n onSubmit: () => void;\n className?: string;\n messageInputId?: string;\n sendIconId?: string;\n learnMoreLinkId?: string;\n /** Callback when upload file is selected from menu */\n onUploadFile?: () => void;\n /** Callback when dictate message is selected from menu */\n onDictateMessage?: () => void;\n}\n\nexport const Footer = observer(\n ({\n isLoading = false,\n placeholder = \"Ask Atlas\",\n message,\n onMessageChange,\n onSubmit,\n className,\n messageInputId,\n sendIconId,\n learnMoreLinkId,\n onUploadFile,\n onDictateMessage,\n }: FooterProps) => {\n const handleSubmit = () => {\n if (!isLoading) {\n onSubmit();\n }\n };\n\n return (\n <div className={classNames(styles[\"chat-footer\"], className)}>\n <ChatComposerRich\n messageInputId={messageInputId}\n sendIconId={sendIconId}\n placeholder={placeholder}\n onSend={handleSubmit}\n onChange={onMessageChange}\n message={message}\n disabled={isLoading}\n onUploadFile={onUploadFile}\n onDictateMessage={onDictateMessage}\n />\n <Text\n subdued\n variant=\"body\"\n size=\"small\"\n style={{\n fontSize: \"var(--a2-typography-label-size-small)\",\n marginBlockStart: \"var(--a2-size-1)\",\n }}\n >\n Atlas is TI-powered, subject to our privacy policy.{\" \"}\n <Link\n id={learnMoreLinkId}\n target=\"_blank\"\n href=\"#\"\n appearance=\"secondary\"\n >\n <Text\n inline\n size=\"small\"\n subdued\n style={{\n fontSize: \"var(--a2-typography-label-size-small)\",\n }}\n >\n Learn more\n </Text>\n </Link>\n </Text>\n </div>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;AAwBO,MAAM,MAAA,GAAS,QAAA;AAAA,EACpB,CAAC;AAAA,IACC,SAAA,GAAY,KAAA;AAAA,IACZ,WAAA,GAAc,WAAA;AAAA,IACd,OAAA;AAAA,IACA,eAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,cAAA;AAAA,IACA,UAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF,KAAmB;AACjB,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,QAAA,EAAS;AAAA,MACX;AAAA,IACF,CAAA;AAEA,IAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EAAW,UAAA,CAAW,OAAO,aAAa,CAAA,EAAG,SAAS,CAAA,EACzD,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,cAAA;AAAA,UACA,UAAA;AAAA,UACA,WAAA;AAAA,UACA,MAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAU,eAAA;AAAA,UACV,OAAA;AAAA,UACA,QAAA,EAAU,SAAA;AAAA,UACV,YAAA;AAAA,UACA;AAAA;AAAA,OACF;AAAA,sBACA,IAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAO,IAAA;AAAA,UACP,OAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAK,OAAA;AAAA,UACL,KAAA,EAAO;AAAA,YACL,QAAA,EAAU,uCAAA;AAAA,YACV,gBAAA,EAAkB;AAAA,WACpB;AAAA,UACD,QAAA,EAAA;AAAA,YAAA,qDAAA;AAAA,YACqD,GAAA;AAAA,4BACpD,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAI,eAAA;AAAA,gBACJ,MAAA,EAAO,QAAA;AAAA,gBACP,IAAA,EAAK,GAAA;AAAA,gBACL,UAAA,EAAW,WAAA;AAAA,gBAEX,QAAA,kBAAA,GAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBACC,MAAA,EAAM,IAAA;AAAA,oBACN,IAAA,EAAK,OAAA;AAAA,oBACL,OAAA,EAAO,IAAA;AAAA,oBACP,KAAA,EAAO;AAAA,sBACL,QAAA,EAAU;AAAA,qBACZ;AAAA,oBACD,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AACF;AAAA;AAAA;AACF,KAAA,EACF,CAAA;AAAA,EAEJ;AACF;;;;"}
|
package/dist/footer.css
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
background-color: var(--color-background);
|
|
6
|
-
border-top: 1px solid var(--color-border);
|
|
1
|
+
._chat-footer_14xwy_1 {
|
|
2
|
+
padding: var(--a2-size-4);
|
|
3
|
+
background-color: var(--a2-background-color-default);
|
|
4
|
+
border-top: 1px solid var(--a2-border-color-subdued);
|
|
7
5
|
}
|
|
8
6
|
|
|
9
|
-
._chat-footer-
|
|
10
|
-
margin-top: var(--size-1);
|
|
7
|
+
._chat-footer-description_14xwy_7 {
|
|
8
|
+
margin-top: var(--a2-size-1);
|
|
11
9
|
font-size: 0.8rem;
|
|
12
10
|
}
|
package/dist/footer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { F as Footer } from './footer-
|
|
1
|
+
export { F as Footer } from './footer-B5u9oSlP.js';
|
|
2
2
|
//# sourceMappingURL=footer.js.map
|
|
@@ -18,8 +18,8 @@ const SvgModeEdit = (props) => /* @__PURE__ */ React.createElement("svg", { xmln
|
|
|
18
18
|
const SvgOpenInFull = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M21 8.59V4c0-.55-.45-1-1-1h-4.59c-.89 0-1.34 1.08-.71 1.71l1.59 1.59-10 10-1.59-1.59c-.62-.63-1.7-.19-1.7.7V20c0 .55.45 1 1 1h4.59c.89 0 1.34-1.08.71-1.71L7.71 17.7l10-10 1.59 1.59c.62.63 1.7.19 1.7-.7z" }));
|
|
19
19
|
|
|
20
20
|
const styles = {
|
|
21
|
-
"chat-header": "_chat-
|
|
22
|
-
"chat-header-title": "_chat-header-
|
|
21
|
+
"chat-header": "_chat-header_p7tfi_1",
|
|
22
|
+
"chat-header-title": "_chat-header-title_p7tfi_14"};
|
|
23
23
|
|
|
24
24
|
const Header = observer(
|
|
25
25
|
({
|
|
@@ -44,7 +44,7 @@ const Header = observer(
|
|
|
44
44
|
closeButtonId
|
|
45
45
|
}) => {
|
|
46
46
|
return /* @__PURE__ */ jsxs(Flex, { className: classNames(styles["chat-header"], className), children: [
|
|
47
|
-
/* @__PURE__ */ jsxs(Flex, { gap: 1, style: { marginInlineEnd: "var(--size-1)" }, children: [
|
|
47
|
+
/* @__PURE__ */ jsxs(Flex, { gap: 1, style: { marginInlineEnd: "var(--a2-size-1)" }, children: [
|
|
48
48
|
isDraggable && !isExpanded && /* @__PURE__ */ jsxs(Tooltip, { placement: "bottom", children: [
|
|
49
49
|
/* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(
|
|
50
50
|
Button,
|
|
@@ -167,4 +167,4 @@ const Header = observer(
|
|
|
167
167
|
);
|
|
168
168
|
|
|
169
169
|
export { Header as H };
|
|
170
|
-
//# sourceMappingURL=header-
|
|
170
|
+
//# sourceMappingURL=header-DFb1Mw8C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-DFb1Mw8C.js","sources":["../../anvil2/dist/assets/icons/material/round/arrow_back_ios.svg","../../anvil2/dist/assets/icons/material/round/close.svg","../../anvil2/dist/assets/icons/material/round/drag_indicator.svg","../../anvil2/dist/assets/icons/material/round/inbox.svg","../../anvil2/dist/assets/icons/material/round/mode_edit.svg","../../anvil2/dist/assets/icons/material/round/open_in_full.svg","../src/components/header/header.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgArrowBackIos = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.62 2.99a1.25 1.25 0 0 0-1.77 0L6.54 11.3a.996.996 0 0 0 0 1.41l8.31 8.31c.49.49 1.28.49 1.77 0s.49-1.28 0-1.77L9.38 12l7.25-7.25c.48-.48.48-1.28-.01-1.76z\" }));\nexport default SvgArrowBackIos;\n","import * as React from \"react\";\nconst SvgClose = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.3 5.71a.996.996 0 0 0-1.41 0L12 10.59 7.11 5.7A.996.996 0 1 0 5.7 7.11L10.59 12 5.7 16.89a.996.996 0 1 0 1.41 1.41L12 13.41l4.89 4.89a.996.996 0 1 0 1.41-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\" }));\nexport default SvgClose;\n","import * as React from \"react\";\nconst SvgDragIndicator = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" }));\nexport default SvgDragIndicator;\n","import * as React from \"react\";\nconst SvgInbox = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 2v9h-3.56c-.36 0-.68.19-.86.5-.52.9-1.47 1.5-2.58 1.5s-2.06-.6-2.58-1.5a1 1 0 0 0-.86-.5H5V5h14z\" }));\nexport default SvgInbox;\n","import * as React from \"react\";\nconst SvgModeEdit = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M3 17.46v3.04c0 .28.22.5.5.5h3.04c.13 0 .26-.05.35-.15L17.81 9.94l-3.75-3.75L3.15 17.1c-.1.1-.15.22-.15.36zM20.71 5.63l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83a.996.996 0 0 0 0-1.41z\" }));\nexport default SvgModeEdit;\n","import * as React from \"react\";\nconst SvgOpenInFull = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M21 8.59V4c0-.55-.45-1-1-1h-4.59c-.89 0-1.34 1.08-.71 1.71l1.59 1.59-10 10-1.59-1.59c-.62-.63-1.7-.19-1.7.7V20c0 .55.45 1 1 1h4.59c.89 0 1.34-1.08.71-1.71L7.71 17.7l10-10 1.59 1.59c.62.63 1.7.19 1.7-.7z\" }));\nexport default SvgOpenInFull;\n","import { Fragment, MouseEvent } from \"react\";\nimport classNames from \"classnames\";\nimport { observer } from \"mobx-react\";\nimport {\n Badge,\n Button,\n Flex,\n OverflowText,\n Text,\n Tooltip,\n} from \"@servicetitan/anvil2\";\nimport IconArrowBackIos from \"@servicetitan/anvil2/assets/icons/material/round/arrow_back_ios.svg\";\nimport IconClose from \"@servicetitan/anvil2/assets/icons/material/round/close.svg\";\nimport IconDragIndicator from \"@servicetitan/anvil2/assets/icons/material/round/drag_indicator.svg\";\nimport IconInbox from \"@servicetitan/anvil2/assets/icons/material/round/inbox.svg\";\nimport IconModeEdit from \"@servicetitan/anvil2/assets/icons/material/round/mode_edit.svg\";\nimport IconOpenInFull from \"@servicetitan/anvil2/assets/icons/material/round/open_in_full.svg\";\n\nimport styles from \"./header.module.scss\";\n\nexport interface HeaderProps {\n title?: string;\n onMouseDown?: (e: MouseEvent) => void;\n isDragging?: boolean;\n isDraggable?: boolean;\n isExpanded?: boolean;\n disabledChatsIcon?: boolean;\n historyCount?: number;\n titleBadge?: string | number;\n className?: string;\n onBack?: () => void;\n onClose?: () => void;\n onViewHistory?: () => void;\n onFullscreen?: () => void;\n onCreateNewChat?: () => void;\n backButtonId?: string;\n viewHistoryButtonId?: string;\n fullscreenButtonId?: string;\n newChatButtonId?: string;\n closeButtonId?: string;\n}\n\nexport const Header = observer(\n ({\n title = \"Atlas\",\n onMouseDown,\n isDraggable,\n isDragging,\n onFullscreen,\n onViewHistory,\n isExpanded,\n historyCount,\n titleBadge,\n disabledChatsIcon,\n onClose,\n onBack,\n className = \"\",\n onCreateNewChat,\n backButtonId,\n viewHistoryButtonId,\n fullscreenButtonId,\n newChatButtonId,\n closeButtonId,\n }: HeaderProps) => {\n return (\n <Flex className={classNames(styles[\"chat-header\"], className)}>\n <Flex gap={1} style={{ marginInlineEnd: \"var(--a2-size-1)\" }}>\n {isDraggable && !isExpanded && (\n <Tooltip placement=\"bottom\">\n <Tooltip.Trigger>\n <Button\n className=\"cursor-grab\"\n onMouseDown={onMouseDown ?? undefined}\n style={{\n position: \"relative\",\n cursor: isDragging ? \"grabbing\" : \"grab\",\n }}\n appearance=\"ghost\"\n size=\"small\"\n icon={IconDragIndicator}\n aria-label=\"drag\"\n />\n </Tooltip.Trigger>\n {isDragging ? null : (\n <Tooltip.Content>Drag to Adjust</Tooltip.Content>\n )}\n </Tooltip>\n )}\n {onBack && (\n <Button\n id={backButtonId}\n appearance=\"ghost\"\n size=\"small\"\n icon={IconArrowBackIos}\n onClick={onBack}\n />\n )}\n </Flex>\n <Flex grow={1}>\n <Tooltip placement=\"bottom\">\n <Tooltip.Trigger>\n <OverflowText rows={1} className={styles[\"chat-header-title\"]}>\n <Text\n el=\"h4\"\n size=\"small\"\n variant=\"headline\"\n style={{ marginBlockEnd: \"0\", paddingBlockEnd: \"0\" }}\n >\n {title}\n </Text>\n {!!titleBadge && (\n <Badge\n offset={{\n x: \"12px\",\n y: \"0.5rem\",\n }}\n >\n {titleBadge}\n </Badge>\n )}\n </OverflowText>\n </Tooltip.Trigger>\n <Tooltip.Content>{title}</Tooltip.Content>\n </Tooltip>\n </Flex>\n <Flex gap={1}>\n {onViewHistory && (\n <Tooltip placement=\"bottom\">\n <Tooltip.Trigger style={{ position: \"relative\" }}>\n <Fragment>\n <Button\n id={viewHistoryButtonId}\n style={{ position: \"relative\" }}\n disabled={disabledChatsIcon}\n appearance=\"ghost\"\n size=\"small\"\n icon={IconInbox}\n aria-label=\"chats\"\n onClick={onViewHistory}\n />\n {!!historyCount && <Badge>{historyCount}</Badge>}\n </Fragment>\n </Tooltip.Trigger>\n <Tooltip.Content>View All Chats</Tooltip.Content>\n </Tooltip>\n )}\n {onFullscreen && (\n <Tooltip placement=\"bottom\">\n <Tooltip.Trigger>\n <Button\n id={fullscreenButtonId}\n appearance=\"ghost\"\n size=\"small\"\n icon={IconOpenInFull}\n aria-label=\"fullscreen\"\n onClick={onFullscreen}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {isExpanded ? \"Minimize Window\" : \"Expand Window\"}\n </Tooltip.Content>\n </Tooltip>\n )}\n {onCreateNewChat && (\n <Tooltip placement=\"bottom\">\n <Tooltip.Trigger>\n <Button\n id={newChatButtonId}\n size=\"small\"\n icon={IconModeEdit}\n aria-label=\"new chat\"\n onClick={onCreateNewChat}\n >\n New Chat\n </Button>\n </Tooltip.Trigger>\n <Tooltip.Content>New Chat</Tooltip.Content>\n </Tooltip>\n )}\n {onClose && (\n <Tooltip placement=\"bottom\">\n <Tooltip.Trigger>\n <Button\n id={closeButtonId}\n appearance=\"ghost\"\n size=\"small\"\n icon={IconClose}\n aria-label=\"close\"\n onClick={onClose}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>Hide Window</Tooltip.Content>\n </Tooltip>\n )}\n </Flex>\n </Flex>\n );\n },\n);\n"],"names":["IconDragIndicator","IconArrowBackIos","IconInbox","IconOpenInFull","IconModeEdit","IconClose"],"mappings":"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"}
|