@servicetitan/anvil2-ext-atlas 2.1.2 → 2.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.
- package/CHANGELOG.md +11 -0
- package/dist/{atlas-header-C-Bw_KyV.js → atlas-header-DtYEZIyx.js} +2 -2
- package/dist/{atlas-header-C-Bw_KyV.js.map → atlas-header-DtYEZIyx.js.map} +1 -1
- package/dist/atlas-header.js +1 -1
- package/dist/index.js +6 -6
- package/dist/loader.js +1 -1
- package/dist/{index-DFEn2XpE.js → markdown-text-BcCCdMfH.js} +10 -3
- package/dist/markdown-text-BcCCdMfH.js.map +1 -0
- package/dist/markdown-text.css +103 -26
- package/dist/markdown-text.js +1 -1
- package/dist/messages.js +1 -1
- package/dist/{notification-card-Bhi2-mQR.js → notification-card-DizmzaUo.js} +2 -2
- package/dist/{notification-card-Bhi2-mQR.js.map → notification-card-DizmzaUo.js.map} +1 -1
- package/dist/notification-card.js +1 -1
- package/dist/{pulse-loader-D0pbsphx.js → pulse-loader-DcrQsZeD.js} +3 -3
- package/dist/{pulse-loader-D0pbsphx.js.map → pulse-loader-DcrQsZeD.js.map} +1 -1
- package/dist/recommendations.js +1 -1
- package/dist/{single-recommendation-card-D_FiwLm1.js → single-recommendation-card-BPbfhvu_.js} +2 -2
- package/dist/{single-recommendation-card-D_FiwLm1.js.map → single-recommendation-card-BPbfhvu_.js.map} +1 -1
- package/dist/src/components/markdown-text/markdown-text.d.ts +17 -0
- package/dist/src/components/messages/markdown-message.d.ts +38 -0
- package/dist/{user-message-Cc5g9JGK.js → user-message-D1KrKgfD.js} +5 -6
- package/dist/user-message-D1KrKgfD.js.map +1 -0
- package/dist/user-message.css +9 -134
- package/package.json +3 -3
- package/dist/index-DFEn2XpE.js.map +0 -1
- package/dist/markdown-text-DWHdZVVX.js +0 -12
- package/dist/markdown-text-DWHdZVVX.js.map +0 -1
- package/dist/user-message-Cc5g9JGK.js.map +0 -1
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { M as Markdown, r as remarkGfm } from './index-DFEn2XpE.js';
|
|
3
|
-
|
|
4
|
-
import './markdown-text.css';const styles = {
|
|
5
|
-
"markdown-content": "_markdown-content_1ogdc_1"};
|
|
6
|
-
|
|
7
|
-
const MarkdownText = ({ text = "" }) => {
|
|
8
|
-
return /* @__PURE__ */ jsx("div", { className: styles["markdown-content"], children: /* @__PURE__ */ jsx(Markdown, { remarkPlugins: [remarkGfm], children: text }) });
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
export { MarkdownText as M };
|
|
12
|
-
//# sourceMappingURL=markdown-text-DWHdZVVX.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-text-DWHdZVVX.js","sources":["../src/components/markdown-text/markdown-text.tsx"],"sourcesContent":["import { FC } from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\n\nimport styles from \"./markdown-text.module.scss\";\n\nexport interface MarkdownTextProps {\n text: string;\n}\n\nexport const MarkdownText: FC<MarkdownTextProps> = ({ text = \"\" }) => {\n return (\n <div className={styles[\"markdown-content\"]}>\n <ReactMarkdown remarkPlugins={[remarkGfm]}>{text}</ReactMarkdown>\n </div>\n );\n};\n"],"names":["ReactMarkdown"],"mappings":";;;;;;AAUO,MAAM,YAAA,GAAsC,CAAC,EAAE,IAAA,GAAO,IAAG,KAAM;AACpE,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,kBAAkB,CAAA,EACvC,QAAA,kBAAA,GAAA,CAACA,QAAA,EAAA,EAAc,aAAA,EAAe,CAAC,SAAS,CAAA,EAAI,gBAAK,CAAA,EACnD,CAAA;AAEJ;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user-message-Cc5g9JGK.js","sources":["../src/components/messages/error-message.tsx","../src/components/messages/assistant-message.tsx","../src/components/messages/markdown-message.tsx","../src/components/messages/small-action.tsx","../src/components/messages/system-message.tsx","../src/components/messages/user-message.tsx"],"sourcesContent":["import { FC } from \"react\";\nimport classNames from \"classnames\";\nimport { Button, Flex, Icon, Text } from \"@servicetitan/anvil2\";\nimport IconRefresh from \"@servicetitan/anvil2/assets/icons/material/round/refresh.svg\";\n\nimport styles from \"./message.module.scss\";\nexport interface ErrorMessageProps {\n error: string | boolean;\n message?: string;\n onRetry?: () => void;\n className?: string;\n}\n\nexport const ErrorMessage: FC<ErrorMessageProps> = ({\n error,\n message,\n onRetry,\n className,\n}) => {\n return (\n <Flex\n className={className}\n style={{ marginInlineStart: \"var(--a2-size-2)\" }}\n justifyContent=\"space-between\"\n gap={2}\n >\n <Text\n size=\"medium\"\n className={classNames({\n [styles[\"error-color\"]]: error,\n })}\n >\n <i>{error || message}</i>\n </Text>\n {onRetry && (\n <Button\n size=\"small\"\n appearance=\"ghost\"\n onClick={onRetry}\n flexShrink={0}\n >\n Retry\n <Icon svg={IconRefresh} size=\"medium\" />\n </Button>\n )}\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { Flex, Svg, Text } from \"@servicetitan/anvil2\";\n\nimport { AtlasHeader } from \"../atlas-header\";\nimport { ErrorMessage } from \"./error-message\";\nimport { MessageProps } from \"./message-interface\";\n\nexport interface AssistantMessageProps extends MessageProps {\n error?: string | boolean;\n svgIcon?: Svg;\n assistant?: string;\n onRetry?: () => void;\n statusMessage?: string;\n loading?: boolean;\n}\n\nexport const AssistantMessage: FC<AssistantMessageProps> = ({\n error,\n onRetry,\n message,\n className,\n assistant,\n svgIcon,\n statusMessage,\n loading = false,\n}) => {\n return (\n <Flex direction=\"column\" className={className}>\n <AtlasHeader\n svgIcon={svgIcon}\n assistant={assistant}\n loading={loading}\n statusMessage={statusMessage}\n />\n {!loading && (\n <Flex direction=\"column\">\n {message && !error && <Text size=\"medium\">{message}</Text>}\n {error && (\n <ErrorMessage error={error} message={message} onRetry={onRetry} />\n )}\n </Flex>\n )}\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport { Flex, Svg } from \"@servicetitan/anvil2\";\n\nimport { AtlasHeader } from \"../atlas-header\";\nimport { ErrorMessage } from \"./error-message\";\nimport { MessageProps } from \"./message-interface\";\nimport { Toolbox, ToolboxProps } from \"../toolbox\";\n\nimport styles from \"./message.module.scss\";\n\nexport interface MarkdownMessageProps extends MessageProps {\n error?: string;\n svgIcon?: Svg;\n assistant?: string;\n onRetry?: () => void;\n toolboxProps?: Omit<ToolboxProps, \"text\">;\n loading?: boolean;\n statusMessage?: string;\n}\n\nexport const MarkdownMessage: FC<MarkdownMessageProps> = ({\n error,\n message,\n className,\n assistant,\n svgIcon,\n onRetry,\n toolboxProps,\n loading = false,\n statusMessage,\n}) => {\n return (\n <Flex gap={2} direction=\"column\" className={className}>\n <AtlasHeader\n svgIcon={svgIcon}\n assistant={assistant}\n loading={loading}\n statusMessage={statusMessage}\n />\n {!loading && (\n <Flex direction=\"column\">\n {message && !error && (\n <div className={styles[\"markdown-content\"]}>\n <ReactMarkdown remarkPlugins={[remarkGfm]}>\n {message}\n </ReactMarkdown>\n </div>\n )}\n <Toolbox text={message} {...toolboxProps} />\n {error && (\n <ErrorMessage error={error} message={message} onRetry={onRetry} />\n )}\n </Flex>\n )}\n </Flex>\n );\n};\n\nexport const Thinking: FC<MarkdownMessageProps> = ({\n error,\n message,\n className,\n assistant,\n svgIcon,\n onRetry,\n toolboxProps: _toolboxProps,\n statusMessage,\n}) => {\n return (\n <Flex direction=\"column\" className={className}>\n <AtlasHeader\n svgIcon={svgIcon}\n assistant={assistant}\n loading={true}\n statusMessage={statusMessage}\n />\n {error && (\n <ErrorMessage error={error} message={message} onRetry={onRetry} />\n )}\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { Button, Flex, Text } from \"@servicetitan/anvil2\";\n\nimport { MessageProps } from \"./message-interface\";\nimport { AtlasHeader } from \"../atlas-header\";\n\nexport interface SmallActionProps extends MessageProps {\n recommendationId: string;\n message: string;\n description?: string;\n buttonText?: string;\n onReject: (recommendationId: string) => void | undefined;\n onAccept: (recommendationId: string) => void | undefined;\n buttonDisabled?: boolean;\n className?: string;\n}\n\nexport const SmallAction: FC<SmallActionProps> = ({\n recommendationId,\n message,\n description,\n onReject,\n onAccept,\n buttonDisabled = false,\n className,\n}) => {\n return (\n <Flex direction=\"column\" className={className}>\n <AtlasHeader />\n <Flex direction=\"column\" gap={2}>\n <Flex direction=\"column\">\n <Text size=\"medium\">{message}</Text>\n {description && <Text size=\"small\">{description}</Text>}\n </Flex>\n <Flex alignItems=\"flex-start\" gap={1}>\n <Button\n appearance=\"ghost\"\n onClick={() => onReject(recommendationId)}\n disabled={buttonDisabled}\n >\n Reject\n </Button>\n <Button\n appearance=\"primary\"\n style={{ width: \"50%\" }}\n onClick={() => onAccept(recommendationId)}\n disabled={buttonDisabled}\n >\n Accept\n </Button>\n </Flex>\n </Flex>\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { Button, Card, Flex, Radio, Text } from \"@servicetitan/anvil2\";\n\nimport { MessageProps } from \"./message-interface\";\nimport { AtlasHeader } from \"../atlas-header\";\ninterface SystemMessageRadioOption {\n label: string;\n description?: string;\n value: string;\n}\n\ninterface SystemMessageProps extends MessageProps {\n message: string;\n radioOptions: SystemMessageRadioOption[];\n selectedValue: string;\n onRadioChange: (value: string) => void;\n buttonText: string;\n onSubmit: () => void;\n buttonDisabled?: boolean;\n}\n\nexport const SystemMessage: FC<SystemMessageProps> = ({\n message,\n radioOptions,\n onRadioChange,\n buttonText,\n onSubmit,\n buttonDisabled = false,\n}) => {\n return (\n <Flex direction=\"column\">\n <AtlasHeader />\n <Text size=\"medium\">{message}</Text>\n <Card>\n <Flex direction=\"column\" gap={2}>\n <Radio.Group legend=\"\">\n {radioOptions.map((option) => (\n <Radio\n key={option.value}\n name=\"action\"\n value={option.value}\n label={option.label}\n description={option.description}\n onChange={(e) =>\n onRadioChange((e?.target as HTMLInputElement)?.value)\n }\n />\n ))}\n </Radio.Group>\n <Button\n appearance=\"primary\"\n style={{ width: \"100%\" }}\n onClick={onSubmit}\n disabled={buttonDisabled}\n >\n {buttonText}\n </Button>\n </Flex>\n </Card>\n </Flex>\n );\n};\n","import { FC } from \"react\";\nimport { Button, Flex, Text } from \"@servicetitan/anvil2\";\nimport IconRefresh from \"@servicetitan/anvil2/assets/icons/material/round/refresh.svg\";\n\nimport styles from \"./message.module.scss\";\n\nexport interface ChatMessage {\n content: string;\n type: \"user\" | \"assistant\" | \"system\";\n}\n\ninterface UserMessageProps {\n message: string;\n className?: string;\n isError?: boolean;\n onRetry?: () => void;\n}\n\nexport const UserMessage: FC<UserMessageProps> = ({\n message,\n className,\n isError,\n onRetry,\n}) => {\n return (\n <Flex\n direction=\"column\"\n alignItems=\"flex-end\"\n className={className}\n gap={2}\n >\n <Text\n size=\"small\"\n subdued={isError}\n alignItems=\"flex-start\"\n style={{\n padding: \"8px 12px 8px 16px\",\n borderRadius: \"24px 24px 0px 24px\",\n boxSizing: \"border-box\",\n fontFamily:\n \"var(--a2-typography-paragraph-font-family, 'Nunito Sans')\",\n fontSize: \"var(--a2-typography-paragraph-size-default, 16px)\",\n fontWeight: \"400\",\n lineHeight:\n \"var(--a2-typography-paragraph-line-height-default, 24px)\",\n backgroundColor: isError\n ? \"var(--a2-background-color-danger)\"\n : \"var(--a2-background-color-stronger)\",\n color: isError\n ? \"var(--a2-foreground-color-on-danger)\"\n : \"var(--a2-foreground-color-default)\",\n }}\n >\n {message}\n </Text>\n {isError && (\n <Flex justifyContent=\"flex-end\" alignItems=\"center\">\n <Text variant=\"body\" size=\"small\" className={styles[\"error-color\"]}>\n Message not delivered\n </Text>\n {onRetry && (\n <Button\n size=\"small\"\n appearance=\"ghost\"\n style={{ marginInlineStart: \"var(--a2-size-2)\" }}\n onClick={onRetry}\n icon={{ after: IconRefresh }}\n >\n Retry\n </Button>\n )}\n </Flex>\n )}\n </Flex>\n );\n};\n"],"names":["IconRefresh","ReactMarkdown"],"mappings":"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"}
|