@assistant-ui/react 0.7.7 → 0.7.8
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/dist/primitives/threadList/ThreadListItems.d.ts +2 -2
- package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -1
- package/dist/primitives/threadList/ThreadListItems.js.map +1 -1
- package/dist/primitives/threadList/ThreadListItems.mjs.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.js +23 -6
- package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.mjs +24 -9
- package/dist/primitives/threadList/ThreadListNew.mjs.map +1 -1
- package/dist/styles/index.css +66 -0
- package/dist/styles/index.css.map +1 -1
- package/dist/styles/tailwindcss/thread.css +30 -0
- package/dist/styles/tailwindcss/thread.css.json +21 -0
- package/dist/ui/assistant-action-bar.d.ts +7 -7
- package/dist/ui/assistant-action-bar.d.ts.map +1 -1
- package/dist/ui/assistant-action-bar.js.map +1 -1
- package/dist/ui/assistant-action-bar.mjs +1 -3
- package/dist/ui/assistant-action-bar.mjs.map +1 -1
- package/dist/ui/assistant-modal.d.ts +3 -3
- package/dist/ui/assistant-modal.d.ts.map +1 -1
- package/dist/ui/assistant-modal.js.map +1 -1
- package/dist/ui/assistant-modal.mjs +1 -3
- package/dist/ui/assistant-modal.mjs.map +1 -1
- package/dist/ui/attachment-ui.d.ts +2 -2
- package/dist/ui/attachment-ui.d.ts.map +1 -1
- package/dist/ui/attachment-ui.js.map +1 -1
- package/dist/ui/attachment-ui.mjs +1 -3
- package/dist/ui/attachment-ui.mjs.map +1 -1
- package/dist/ui/base/index.d.ts +1 -1
- package/dist/ui/base/index.d.ts.map +1 -1
- package/dist/ui/base/index.js.map +1 -1
- package/dist/ui/base/index.mjs +1 -3
- package/dist/ui/base/index.mjs.map +1 -1
- package/dist/ui/base/tooltip-icon-button.d.ts +6 -4
- package/dist/ui/base/tooltip-icon-button.d.ts.map +1 -1
- package/dist/ui/base/tooltip-icon-button.js.map +1 -1
- package/dist/ui/base/tooltip-icon-button.mjs.map +1 -1
- package/dist/ui/branch-picker.d.ts +3 -3
- package/dist/ui/branch-picker.d.ts.map +1 -1
- package/dist/ui/branch-picker.js.map +1 -1
- package/dist/ui/branch-picker.mjs +1 -3
- package/dist/ui/branch-picker.mjs.map +1 -1
- package/dist/ui/composer.d.ts +4 -4
- package/dist/ui/composer.d.ts.map +1 -1
- package/dist/ui/composer.js.map +1 -1
- package/dist/ui/composer.mjs +1 -3
- package/dist/ui/composer.mjs.map +1 -1
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +6 -0
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/index.mjs +4 -0
- package/dist/ui/index.mjs.map +1 -1
- package/dist/ui/thread-config.d.ts +13 -0
- package/dist/ui/thread-config.d.ts.map +1 -1
- package/dist/ui/thread-config.js.map +1 -1
- package/dist/ui/thread-config.mjs.map +1 -1
- package/dist/ui/thread-list-item.d.ts +24 -0
- package/dist/ui/thread-list-item.d.ts.map +1 -0
- package/dist/ui/thread-list-item.js +107 -0
- package/dist/ui/thread-list-item.js.map +1 -0
- package/dist/ui/thread-list-item.mjs +77 -0
- package/dist/ui/thread-list-item.mjs.map +1 -0
- package/dist/ui/thread-list.d.ts +20 -0
- package/dist/ui/thread-list.d.ts.map +1 -0
- package/dist/ui/thread-list.js +92 -0
- package/dist/ui/thread-list.js.map +1 -0
- package/dist/ui/thread-list.mjs +62 -0
- package/dist/ui/thread-list.mjs.map +1 -0
- package/dist/ui/thread.d.ts +2 -2
- package/dist/ui/thread.d.ts.map +1 -1
- package/dist/ui/thread.js.map +1 -1
- package/dist/ui/thread.mjs +1 -3
- package/dist/ui/thread.mjs.map +1 -1
- package/dist/ui/user-action-bar.d.ts +2 -2
- package/dist/ui/user-action-bar.d.ts.map +1 -1
- package/dist/ui/user-action-bar.js.map +1 -1
- package/dist/ui/user-action-bar.mjs +1 -3
- package/dist/ui/user-action-bar.mjs.map +1 -1
- package/package.json +5 -5
- package/src/primitives/threadList/ThreadListItems.tsx +3 -3
- package/src/primitives/threadList/ThreadListNew.tsx +45 -0
- package/src/styles/tailwindcss/thread.css +30 -0
- package/src/ui/assistant-action-bar.tsx +7 -10
- package/src/ui/assistant-modal.tsx +3 -6
- package/src/ui/attachment-ui.tsx +2 -5
- package/src/ui/base/index.ts +1 -4
- package/src/ui/base/tooltip-icon-button.tsx +7 -5
- package/src/ui/branch-picker.tsx +3 -6
- package/src/ui/composer.tsx +4 -7
- package/src/ui/index.ts +4 -0
- package/src/ui/thread-config.tsx +13 -0
- package/src/ui/thread-list-item.tsx +99 -0
- package/src/ui/thread-list.tsx +72 -0
- package/src/ui/thread.tsx +2 -5
- package/src/ui/user-action-bar.tsx +2 -5
- package/src/primitives/threadList/ThreadListNew.ts +0 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant-action-bar.d.ts","sourceRoot":"","sources":["../../src/ui/assistant-action-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAW5C,OAAO,
|
|
1
|
+
{"version":3,"file":"assistant-action-bar.d.ts","sourceRoot":"","sources":["../../src/ui/assistant-action-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAW5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAqC/D,QAAA,MAAM,kBAAkB,EAAE,EA4BzB,CAAC;AAgNF,QAAA,MAAM,OAAO;;;;;;;;yBAnMQ,MAAM,GAAG,SAAS;;;;;;;CA4MtC,CAAC;wBAKG,OAAO,kBAAkB,GAAG,OAAO,OAAO;AAH/C,wBAGgD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/assistant-action-bar.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, type FC } from \"react\";\nimport {\n AudioLinesIcon,\n CheckIcon,\n CopyIcon,\n RefreshCwIcon,\n StopCircleIcon,\n ThumbsDownIcon,\n ThumbsUpIcon,\n} from \"lucide-react\";\nimport { ActionBarPrimitive, MessagePrimitive } from \"../primitives\";\nimport {\n TooltipIconButton,\n TooltipIconButtonProps,\n} from \"./base/tooltip-icon-button\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport { useThread } from \"../context\";\n\nconst useAllowCopy = (ensureCapability = false) => {\n const { assistantMessage: { allowCopy = true } = {} } = useThreadConfig();\n const copySupported = useThread((t) => t.capabilities.unstable_copy);\n return allowCopy && (!ensureCapability || copySupported);\n};\n\nconst useAllowSpeak = (ensureCapability = false) => {\n const { assistantMessage: { allowSpeak = true } = {} } = useThreadConfig();\n const speechSupported = useThread((t) => t.capabilities.speech);\n return allowSpeak && (!ensureCapability || speechSupported);\n};\n\nconst useAllowReload = (ensureCapability = false) => {\n const { assistantMessage: { allowReload = true } = {} } = useThreadConfig();\n const reloadSupported = useThread((t) => t.capabilities.reload);\n return allowReload && (!ensureCapability || reloadSupported);\n};\n\nconst useAllowFeedbackPositive = (ensureCapability = false) => {\n const { assistantMessage: { allowFeedbackPositive = true } = {} } =\n useThreadConfig();\n const feedbackSupported = useThread((t) => t.capabilities.feedback);\n return allowFeedbackPositive && (!ensureCapability || feedbackSupported);\n};\n\nconst useAllowFeedbackNegative = (ensureCapability = false) => {\n const { assistantMessage: { allowFeedbackNegative = true } = {} } =\n useThreadConfig();\n const feedbackSupported = useThread((t) => t.capabilities.feedback);\n return allowFeedbackNegative && (!ensureCapability || feedbackSupported);\n};\n\nconst AssistantActionBar: FC = () => {\n const allowCopy = useAllowCopy(true);\n const allowReload = useAllowReload(true);\n const allowSpeak = useAllowSpeak(true);\n const allowFeedbackPositive = useAllowFeedbackPositive(true);\n const allowFeedbackNegative = useAllowFeedbackNegative(true);\n if (\n !allowCopy &&\n !allowReload &&\n !allowSpeak &&\n !allowFeedbackPositive &&\n !allowFeedbackNegative\n )\n return null;\n\n return (\n <AssistantActionBarRoot\n hideWhenRunning\n autohide=\"not-last\"\n autohideFloat=\"single-branch\"\n >\n {allowSpeak && <AssistantActionBarSpeechControl />}\n {allowCopy && <AssistantActionBarCopy />}\n {allowReload && <AssistantActionBarReload />}\n {allowFeedbackPositive && <AssistantActionBarFeedbackPositive />}\n {allowFeedbackNegative && <AssistantActionBarFeedbackNegative />}\n </AssistantActionBarRoot>\n );\n};\n\nAssistantActionBar.displayName = \"AssistantActionBar\";\n\nconst AssistantActionBarRoot = withDefaults(ActionBarPrimitive.Root, {\n className: \"aui-assistant-action-bar-root\",\n});\n\nAssistantActionBarRoot.displayName = \"AssistantActionBarRoot\";\n\nnamespace AssistantActionBarCopy {\n export type Element = ActionBarPrimitive.Copy.Element;\n export type Props = Partial<TooltipIconButtonProps> & {\n copiedDuration?: number | undefined;\n };\n}\n\nconst AssistantActionBarCopy = forwardRef<\n AssistantActionBarCopy.Element,\n AssistantActionBarCopy.Props\n>(({ copiedDuration, ...props }, ref) => {\n const {\n strings: {\n assistantMessage: { copy: { tooltip = \"Copy\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n\n return (\n <ActionBarPrimitive.Copy copiedDuration={copiedDuration} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? (\n <>\n <MessagePrimitive.If copied>\n <CheckIcon />\n </MessagePrimitive.If>\n <MessagePrimitive.If copied={false}>\n <CopyIcon />\n </MessagePrimitive.If>\n </>\n )}\n </TooltipIconButton>\n </ActionBarPrimitive.Copy>\n );\n});\n\nAssistantActionBarCopy.displayName = \"AssistantActionBarCopy\";\n\nconst AssistantActionBarSpeechControl: FC = () => {\n return (\n <>\n <MessagePrimitive.If speaking={false}>\n <AssistantActionBarSpeak />\n </MessagePrimitive.If>\n <MessagePrimitive.If speaking>\n <AssistantActionBarStopSpeaking />\n </MessagePrimitive.If>\n </>\n );\n};\n\nnamespace AssistantActionBarSpeak {\n export type Element = ActionBarPrimitive.Speak.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarSpeak = forwardRef<\n AssistantActionBarSpeak.Element,\n AssistantActionBarSpeak.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: { speak: { tooltip = \"Read aloud\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowSpeak = useAllowSpeak();\n\n return (\n <ActionBarPrimitive.Speak disabled={!allowSpeak} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <AudioLinesIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.Speak>\n );\n});\n\nAssistantActionBarSpeak.displayName = \"AssistantActionBarSpeak\";\n\nnamespace AssistantActionBarStopSpeaking {\n export type Element = ActionBarPrimitive.StopSpeaking.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarStopSpeaking = forwardRef<\n AssistantActionBarStopSpeaking.Element,\n AssistantActionBarStopSpeaking.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n speak: { stop: { tooltip: stopTooltip = \"Stop\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowSpeak = useAllowSpeak();\n\n return (\n <ActionBarPrimitive.StopSpeaking disabled={!allowSpeak} asChild>\n <TooltipIconButton tooltip={stopTooltip} {...props} ref={ref}>\n {props.children ?? <StopCircleIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.StopSpeaking>\n );\n});\n\nAssistantActionBarStopSpeaking.displayName = \"AssistantActionBarStopSpeaking\";\n\nnamespace AssistantActionBarReload {\n export type Element = ActionBarPrimitive.Reload.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarReload = forwardRef<\n AssistantActionBarReload.Element,\n AssistantActionBarReload.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: { reload: { tooltip = \"Refresh\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowReload = useAllowReload();\n return (\n <ActionBarPrimitive.Reload disabled={!allowReload} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <RefreshCwIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.Reload>\n );\n});\n\nAssistantActionBarReload.displayName = \"AssistantActionBarReload\";\n\nnamespace AssistantActionBarFeedbackPositive {\n export type Element = ActionBarPrimitive.FeedbackPositive.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarFeedbackPositive = forwardRef<\n AssistantActionBarFeedbackPositive.Element,\n AssistantActionBarFeedbackPositive.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n feedback: { positive: { tooltip = \"Good response\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowFeedbackPositive = useAllowFeedbackPositive();\n return (\n <ActionBarPrimitive.FeedbackPositive\n disabled={!allowFeedbackPositive}\n className=\"aui-assistant-action-bar-feedback-positive\"\n asChild\n >\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ThumbsUpIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.FeedbackPositive>\n );\n});\n\nAssistantActionBarFeedbackPositive.displayName =\n \"AssistantActionBarFeedbackPositive\";\n\nnamespace AssistantActionBarFeedbackNegative {\n export type Element = ActionBarPrimitive.FeedbackNegative.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarFeedbackNegative = forwardRef<\n AssistantActionBarFeedbackNegative.Element,\n AssistantActionBarFeedbackNegative.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n feedback: { negative: { tooltip = \"Bad response\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowFeedbackNegative = useAllowFeedbackNegative();\n return (\n <ActionBarPrimitive.FeedbackNegative\n disabled={!allowFeedbackNegative}\n className=\"aui-assistant-action-bar-feedback-negative\"\n asChild\n >\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ThumbsDownIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.FeedbackNegative>\n );\n});\n\nAssistantActionBarFeedbackNegative.displayName =\n \"AssistantActionBarFeedbackNegative\";\n\nconst exports = {\n Root: AssistantActionBarRoot,\n Reload: AssistantActionBarReload,\n Copy: AssistantActionBarCopy,\n Speak: AssistantActionBarSpeak,\n StopSpeaking: AssistantActionBarStopSpeaking,\n SpeechControl: AssistantActionBarSpeechControl,\n FeedbackPositive: AssistantActionBarFeedbackPositive,\n FeedbackNegative: AssistantActionBarFeedbackNegative,\n};\n\nexport default Object.assign(\n AssistantActionBar,\n exports,\n) as typeof AssistantActionBar & typeof exports;\n"],"mappings":"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","names":["exports"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ui/assistant-action-bar.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, type FC } from \"react\";\nimport {\n AudioLinesIcon,\n CheckIcon,\n CopyIcon,\n RefreshCwIcon,\n StopCircleIcon,\n ThumbsDownIcon,\n ThumbsUpIcon,\n} from \"lucide-react\";\nimport { ActionBarPrimitive, MessagePrimitive } from \"../primitives\";\nimport { TooltipIconButton } from \"./base/tooltip-icon-button\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport { useThread } from \"../context\";\n\nconst useAllowCopy = (ensureCapability = false) => {\n const { assistantMessage: { allowCopy = true } = {} } = useThreadConfig();\n const copySupported = useThread((t) => t.capabilities.unstable_copy);\n return allowCopy && (!ensureCapability || copySupported);\n};\n\nconst useAllowSpeak = (ensureCapability = false) => {\n const { assistantMessage: { allowSpeak = true } = {} } = useThreadConfig();\n const speechSupported = useThread((t) => t.capabilities.speech);\n return allowSpeak && (!ensureCapability || speechSupported);\n};\n\nconst useAllowReload = (ensureCapability = false) => {\n const { assistantMessage: { allowReload = true } = {} } = useThreadConfig();\n const reloadSupported = useThread((t) => t.capabilities.reload);\n return allowReload && (!ensureCapability || reloadSupported);\n};\n\nconst useAllowFeedbackPositive = (ensureCapability = false) => {\n const { assistantMessage: { allowFeedbackPositive = true } = {} } =\n useThreadConfig();\n const feedbackSupported = useThread((t) => t.capabilities.feedback);\n return allowFeedbackPositive && (!ensureCapability || feedbackSupported);\n};\n\nconst useAllowFeedbackNegative = (ensureCapability = false) => {\n const { assistantMessage: { allowFeedbackNegative = true } = {} } =\n useThreadConfig();\n const feedbackSupported = useThread((t) => t.capabilities.feedback);\n return allowFeedbackNegative && (!ensureCapability || feedbackSupported);\n};\n\nconst AssistantActionBar: FC = () => {\n const allowCopy = useAllowCopy(true);\n const allowReload = useAllowReload(true);\n const allowSpeak = useAllowSpeak(true);\n const allowFeedbackPositive = useAllowFeedbackPositive(true);\n const allowFeedbackNegative = useAllowFeedbackNegative(true);\n if (\n !allowCopy &&\n !allowReload &&\n !allowSpeak &&\n !allowFeedbackPositive &&\n !allowFeedbackNegative\n )\n return null;\n\n return (\n <AssistantActionBarRoot\n hideWhenRunning\n autohide=\"not-last\"\n autohideFloat=\"single-branch\"\n >\n {allowSpeak && <AssistantActionBarSpeechControl />}\n {allowCopy && <AssistantActionBarCopy />}\n {allowReload && <AssistantActionBarReload />}\n {allowFeedbackPositive && <AssistantActionBarFeedbackPositive />}\n {allowFeedbackNegative && <AssistantActionBarFeedbackNegative />}\n </AssistantActionBarRoot>\n );\n};\n\nAssistantActionBar.displayName = \"AssistantActionBar\";\n\nconst AssistantActionBarRoot = withDefaults(ActionBarPrimitive.Root, {\n className: \"aui-assistant-action-bar-root\",\n});\n\nAssistantActionBarRoot.displayName = \"AssistantActionBarRoot\";\n\nnamespace AssistantActionBarCopy {\n export type Element = ActionBarPrimitive.Copy.Element;\n export type Props = Partial<TooltipIconButton.Props> & {\n copiedDuration?: number | undefined;\n };\n}\n\nconst AssistantActionBarCopy = forwardRef<\n AssistantActionBarCopy.Element,\n AssistantActionBarCopy.Props\n>(({ copiedDuration, ...props }, ref) => {\n const {\n strings: {\n assistantMessage: { copy: { tooltip = \"Copy\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n\n return (\n <ActionBarPrimitive.Copy copiedDuration={copiedDuration} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? (\n <>\n <MessagePrimitive.If copied>\n <CheckIcon />\n </MessagePrimitive.If>\n <MessagePrimitive.If copied={false}>\n <CopyIcon />\n </MessagePrimitive.If>\n </>\n )}\n </TooltipIconButton>\n </ActionBarPrimitive.Copy>\n );\n});\n\nAssistantActionBarCopy.displayName = \"AssistantActionBarCopy\";\n\nconst AssistantActionBarSpeechControl: FC = () => {\n return (\n <>\n <MessagePrimitive.If speaking={false}>\n <AssistantActionBarSpeak />\n </MessagePrimitive.If>\n <MessagePrimitive.If speaking>\n <AssistantActionBarStopSpeaking />\n </MessagePrimitive.If>\n </>\n );\n};\n\nnamespace AssistantActionBarSpeak {\n export type Element = ActionBarPrimitive.Speak.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarSpeak = forwardRef<\n AssistantActionBarSpeak.Element,\n AssistantActionBarSpeak.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: { speak: { tooltip = \"Read aloud\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowSpeak = useAllowSpeak();\n\n return (\n <ActionBarPrimitive.Speak disabled={!allowSpeak} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <AudioLinesIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.Speak>\n );\n});\n\nAssistantActionBarSpeak.displayName = \"AssistantActionBarSpeak\";\n\nnamespace AssistantActionBarStopSpeaking {\n export type Element = ActionBarPrimitive.StopSpeaking.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarStopSpeaking = forwardRef<\n AssistantActionBarStopSpeaking.Element,\n AssistantActionBarStopSpeaking.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n speak: { stop: { tooltip: stopTooltip = \"Stop\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowSpeak = useAllowSpeak();\n\n return (\n <ActionBarPrimitive.StopSpeaking disabled={!allowSpeak} asChild>\n <TooltipIconButton tooltip={stopTooltip} {...props} ref={ref}>\n {props.children ?? <StopCircleIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.StopSpeaking>\n );\n});\n\nAssistantActionBarStopSpeaking.displayName = \"AssistantActionBarStopSpeaking\";\n\nnamespace AssistantActionBarReload {\n export type Element = ActionBarPrimitive.Reload.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarReload = forwardRef<\n AssistantActionBarReload.Element,\n AssistantActionBarReload.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: { reload: { tooltip = \"Refresh\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowReload = useAllowReload();\n return (\n <ActionBarPrimitive.Reload disabled={!allowReload} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <RefreshCwIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.Reload>\n );\n});\n\nAssistantActionBarReload.displayName = \"AssistantActionBarReload\";\n\nnamespace AssistantActionBarFeedbackPositive {\n export type Element = ActionBarPrimitive.FeedbackPositive.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarFeedbackPositive = forwardRef<\n AssistantActionBarFeedbackPositive.Element,\n AssistantActionBarFeedbackPositive.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n feedback: { positive: { tooltip = \"Good response\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowFeedbackPositive = useAllowFeedbackPositive();\n return (\n <ActionBarPrimitive.FeedbackPositive\n disabled={!allowFeedbackPositive}\n className=\"aui-assistant-action-bar-feedback-positive\"\n asChild\n >\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ThumbsUpIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.FeedbackPositive>\n );\n});\n\nAssistantActionBarFeedbackPositive.displayName =\n \"AssistantActionBarFeedbackPositive\";\n\nnamespace AssistantActionBarFeedbackNegative {\n export type Element = ActionBarPrimitive.FeedbackNegative.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarFeedbackNegative = forwardRef<\n AssistantActionBarFeedbackNegative.Element,\n AssistantActionBarFeedbackNegative.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n feedback: { negative: { tooltip = \"Bad response\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowFeedbackNegative = useAllowFeedbackNegative();\n return (\n <ActionBarPrimitive.FeedbackNegative\n disabled={!allowFeedbackNegative}\n className=\"aui-assistant-action-bar-feedback-negative\"\n asChild\n >\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ThumbsDownIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.FeedbackNegative>\n );\n});\n\nAssistantActionBarFeedbackNegative.displayName =\n \"AssistantActionBarFeedbackNegative\";\n\nconst exports = {\n Root: AssistantActionBarRoot,\n Reload: AssistantActionBarReload,\n Copy: AssistantActionBarCopy,\n Speak: AssistantActionBarSpeak,\n StopSpeaking: AssistantActionBarStopSpeaking,\n SpeechControl: AssistantActionBarSpeechControl,\n FeedbackPositive: AssistantActionBarFeedbackPositive,\n FeedbackNegative: AssistantActionBarFeedbackNegative,\n};\n\nexport default Object.assign(\n AssistantActionBar,\n exports,\n) as typeof AssistantActionBar & typeof exports;\n"],"mappings":"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","names":["exports"]}
|
|
@@ -12,9 +12,7 @@ import {
|
|
|
12
12
|
ThumbsUpIcon
|
|
13
13
|
} from "lucide-react";
|
|
14
14
|
import { ActionBarPrimitive, MessagePrimitive } from "../primitives/index.mjs";
|
|
15
|
-
import {
|
|
16
|
-
TooltipIconButton
|
|
17
|
-
} from "./base/tooltip-icon-button.mjs";
|
|
15
|
+
import { TooltipIconButton } from "./base/tooltip-icon-button.mjs";
|
|
18
16
|
import { withDefaults } from "./utils/withDefaults.mjs";
|
|
19
17
|
import { useThreadConfig } from "./thread-config.mjs";
|
|
20
18
|
import { useThread } from "../context/index.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/assistant-action-bar.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, type FC } from \"react\";\nimport {\n AudioLinesIcon,\n CheckIcon,\n CopyIcon,\n RefreshCwIcon,\n StopCircleIcon,\n ThumbsDownIcon,\n ThumbsUpIcon,\n} from \"lucide-react\";\nimport { ActionBarPrimitive, MessagePrimitive } from \"../primitives\";\nimport {\n TooltipIconButton,\n TooltipIconButtonProps,\n} from \"./base/tooltip-icon-button\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport { useThread } from \"../context\";\n\nconst useAllowCopy = (ensureCapability = false) => {\n const { assistantMessage: { allowCopy = true } = {} } = useThreadConfig();\n const copySupported = useThread((t) => t.capabilities.unstable_copy);\n return allowCopy && (!ensureCapability || copySupported);\n};\n\nconst useAllowSpeak = (ensureCapability = false) => {\n const { assistantMessage: { allowSpeak = true } = {} } = useThreadConfig();\n const speechSupported = useThread((t) => t.capabilities.speech);\n return allowSpeak && (!ensureCapability || speechSupported);\n};\n\nconst useAllowReload = (ensureCapability = false) => {\n const { assistantMessage: { allowReload = true } = {} } = useThreadConfig();\n const reloadSupported = useThread((t) => t.capabilities.reload);\n return allowReload && (!ensureCapability || reloadSupported);\n};\n\nconst useAllowFeedbackPositive = (ensureCapability = false) => {\n const { assistantMessage: { allowFeedbackPositive = true } = {} } =\n useThreadConfig();\n const feedbackSupported = useThread((t) => t.capabilities.feedback);\n return allowFeedbackPositive && (!ensureCapability || feedbackSupported);\n};\n\nconst useAllowFeedbackNegative = (ensureCapability = false) => {\n const { assistantMessage: { allowFeedbackNegative = true } = {} } =\n useThreadConfig();\n const feedbackSupported = useThread((t) => t.capabilities.feedback);\n return allowFeedbackNegative && (!ensureCapability || feedbackSupported);\n};\n\nconst AssistantActionBar: FC = () => {\n const allowCopy = useAllowCopy(true);\n const allowReload = useAllowReload(true);\n const allowSpeak = useAllowSpeak(true);\n const allowFeedbackPositive = useAllowFeedbackPositive(true);\n const allowFeedbackNegative = useAllowFeedbackNegative(true);\n if (\n !allowCopy &&\n !allowReload &&\n !allowSpeak &&\n !allowFeedbackPositive &&\n !allowFeedbackNegative\n )\n return null;\n\n return (\n <AssistantActionBarRoot\n hideWhenRunning\n autohide=\"not-last\"\n autohideFloat=\"single-branch\"\n >\n {allowSpeak && <AssistantActionBarSpeechControl />}\n {allowCopy && <AssistantActionBarCopy />}\n {allowReload && <AssistantActionBarReload />}\n {allowFeedbackPositive && <AssistantActionBarFeedbackPositive />}\n {allowFeedbackNegative && <AssistantActionBarFeedbackNegative />}\n </AssistantActionBarRoot>\n );\n};\n\nAssistantActionBar.displayName = \"AssistantActionBar\";\n\nconst AssistantActionBarRoot = withDefaults(ActionBarPrimitive.Root, {\n className: \"aui-assistant-action-bar-root\",\n});\n\nAssistantActionBarRoot.displayName = \"AssistantActionBarRoot\";\n\nnamespace AssistantActionBarCopy {\n export type Element = ActionBarPrimitive.Copy.Element;\n export type Props = Partial<TooltipIconButtonProps> & {\n copiedDuration?: number | undefined;\n };\n}\n\nconst AssistantActionBarCopy = forwardRef<\n AssistantActionBarCopy.Element,\n AssistantActionBarCopy.Props\n>(({ copiedDuration, ...props }, ref) => {\n const {\n strings: {\n assistantMessage: { copy: { tooltip = \"Copy\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n\n return (\n <ActionBarPrimitive.Copy copiedDuration={copiedDuration} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? (\n <>\n <MessagePrimitive.If copied>\n <CheckIcon />\n </MessagePrimitive.If>\n <MessagePrimitive.If copied={false}>\n <CopyIcon />\n </MessagePrimitive.If>\n </>\n )}\n </TooltipIconButton>\n </ActionBarPrimitive.Copy>\n );\n});\n\nAssistantActionBarCopy.displayName = \"AssistantActionBarCopy\";\n\nconst AssistantActionBarSpeechControl: FC = () => {\n return (\n <>\n <MessagePrimitive.If speaking={false}>\n <AssistantActionBarSpeak />\n </MessagePrimitive.If>\n <MessagePrimitive.If speaking>\n <AssistantActionBarStopSpeaking />\n </MessagePrimitive.If>\n </>\n );\n};\n\nnamespace AssistantActionBarSpeak {\n export type Element = ActionBarPrimitive.Speak.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarSpeak = forwardRef<\n AssistantActionBarSpeak.Element,\n AssistantActionBarSpeak.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: { speak: { tooltip = \"Read aloud\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowSpeak = useAllowSpeak();\n\n return (\n <ActionBarPrimitive.Speak disabled={!allowSpeak} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <AudioLinesIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.Speak>\n );\n});\n\nAssistantActionBarSpeak.displayName = \"AssistantActionBarSpeak\";\n\nnamespace AssistantActionBarStopSpeaking {\n export type Element = ActionBarPrimitive.StopSpeaking.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarStopSpeaking = forwardRef<\n AssistantActionBarStopSpeaking.Element,\n AssistantActionBarStopSpeaking.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n speak: { stop: { tooltip: stopTooltip = \"Stop\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowSpeak = useAllowSpeak();\n\n return (\n <ActionBarPrimitive.StopSpeaking disabled={!allowSpeak} asChild>\n <TooltipIconButton tooltip={stopTooltip} {...props} ref={ref}>\n {props.children ?? <StopCircleIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.StopSpeaking>\n );\n});\n\nAssistantActionBarStopSpeaking.displayName = \"AssistantActionBarStopSpeaking\";\n\nnamespace AssistantActionBarReload {\n export type Element = ActionBarPrimitive.Reload.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarReload = forwardRef<\n AssistantActionBarReload.Element,\n AssistantActionBarReload.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: { reload: { tooltip = \"Refresh\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowReload = useAllowReload();\n return (\n <ActionBarPrimitive.Reload disabled={!allowReload} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <RefreshCwIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.Reload>\n );\n});\n\nAssistantActionBarReload.displayName = \"AssistantActionBarReload\";\n\nnamespace AssistantActionBarFeedbackPositive {\n export type Element = ActionBarPrimitive.FeedbackPositive.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarFeedbackPositive = forwardRef<\n AssistantActionBarFeedbackPositive.Element,\n AssistantActionBarFeedbackPositive.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n feedback: { positive: { tooltip = \"Good response\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowFeedbackPositive = useAllowFeedbackPositive();\n return (\n <ActionBarPrimitive.FeedbackPositive\n disabled={!allowFeedbackPositive}\n className=\"aui-assistant-action-bar-feedback-positive\"\n asChild\n >\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ThumbsUpIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.FeedbackPositive>\n );\n});\n\nAssistantActionBarFeedbackPositive.displayName =\n \"AssistantActionBarFeedbackPositive\";\n\nnamespace AssistantActionBarFeedbackNegative {\n export type Element = ActionBarPrimitive.FeedbackNegative.Element;\n export type Props = Partial<TooltipIconButtonProps>;\n}\n\nconst AssistantActionBarFeedbackNegative = forwardRef<\n AssistantActionBarFeedbackNegative.Element,\n AssistantActionBarFeedbackNegative.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n feedback: { negative: { tooltip = \"Bad response\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowFeedbackNegative = useAllowFeedbackNegative();\n return (\n <ActionBarPrimitive.FeedbackNegative\n disabled={!allowFeedbackNegative}\n className=\"aui-assistant-action-bar-feedback-negative\"\n asChild\n >\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ThumbsDownIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.FeedbackNegative>\n );\n});\n\nAssistantActionBarFeedbackNegative.displayName =\n \"AssistantActionBarFeedbackNegative\";\n\nconst exports = {\n Root: AssistantActionBarRoot,\n Reload: AssistantActionBarReload,\n Copy: AssistantActionBarCopy,\n Speak: AssistantActionBarSpeak,\n StopSpeaking: AssistantActionBarStopSpeaking,\n SpeechControl: AssistantActionBarSpeechControl,\n FeedbackPositive: AssistantActionBarFeedbackPositive,\n FeedbackNegative: AssistantActionBarFeedbackNegative,\n};\n\nexport default Object.assign(\n AssistantActionBar,\n exports,\n) as typeof AssistantActionBar & typeof exports;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/ui/assistant-action-bar.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, type FC } from \"react\";\nimport {\n AudioLinesIcon,\n CheckIcon,\n CopyIcon,\n RefreshCwIcon,\n StopCircleIcon,\n ThumbsDownIcon,\n ThumbsUpIcon,\n} from \"lucide-react\";\nimport { ActionBarPrimitive, MessagePrimitive } from \"../primitives\";\nimport { TooltipIconButton } from \"./base/tooltip-icon-button\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport { useThread } from \"../context\";\n\nconst useAllowCopy = (ensureCapability = false) => {\n const { assistantMessage: { allowCopy = true } = {} } = useThreadConfig();\n const copySupported = useThread((t) => t.capabilities.unstable_copy);\n return allowCopy && (!ensureCapability || copySupported);\n};\n\nconst useAllowSpeak = (ensureCapability = false) => {\n const { assistantMessage: { allowSpeak = true } = {} } = useThreadConfig();\n const speechSupported = useThread((t) => t.capabilities.speech);\n return allowSpeak && (!ensureCapability || speechSupported);\n};\n\nconst useAllowReload = (ensureCapability = false) => {\n const { assistantMessage: { allowReload = true } = {} } = useThreadConfig();\n const reloadSupported = useThread((t) => t.capabilities.reload);\n return allowReload && (!ensureCapability || reloadSupported);\n};\n\nconst useAllowFeedbackPositive = (ensureCapability = false) => {\n const { assistantMessage: { allowFeedbackPositive = true } = {} } =\n useThreadConfig();\n const feedbackSupported = useThread((t) => t.capabilities.feedback);\n return allowFeedbackPositive && (!ensureCapability || feedbackSupported);\n};\n\nconst useAllowFeedbackNegative = (ensureCapability = false) => {\n const { assistantMessage: { allowFeedbackNegative = true } = {} } =\n useThreadConfig();\n const feedbackSupported = useThread((t) => t.capabilities.feedback);\n return allowFeedbackNegative && (!ensureCapability || feedbackSupported);\n};\n\nconst AssistantActionBar: FC = () => {\n const allowCopy = useAllowCopy(true);\n const allowReload = useAllowReload(true);\n const allowSpeak = useAllowSpeak(true);\n const allowFeedbackPositive = useAllowFeedbackPositive(true);\n const allowFeedbackNegative = useAllowFeedbackNegative(true);\n if (\n !allowCopy &&\n !allowReload &&\n !allowSpeak &&\n !allowFeedbackPositive &&\n !allowFeedbackNegative\n )\n return null;\n\n return (\n <AssistantActionBarRoot\n hideWhenRunning\n autohide=\"not-last\"\n autohideFloat=\"single-branch\"\n >\n {allowSpeak && <AssistantActionBarSpeechControl />}\n {allowCopy && <AssistantActionBarCopy />}\n {allowReload && <AssistantActionBarReload />}\n {allowFeedbackPositive && <AssistantActionBarFeedbackPositive />}\n {allowFeedbackNegative && <AssistantActionBarFeedbackNegative />}\n </AssistantActionBarRoot>\n );\n};\n\nAssistantActionBar.displayName = \"AssistantActionBar\";\n\nconst AssistantActionBarRoot = withDefaults(ActionBarPrimitive.Root, {\n className: \"aui-assistant-action-bar-root\",\n});\n\nAssistantActionBarRoot.displayName = \"AssistantActionBarRoot\";\n\nnamespace AssistantActionBarCopy {\n export type Element = ActionBarPrimitive.Copy.Element;\n export type Props = Partial<TooltipIconButton.Props> & {\n copiedDuration?: number | undefined;\n };\n}\n\nconst AssistantActionBarCopy = forwardRef<\n AssistantActionBarCopy.Element,\n AssistantActionBarCopy.Props\n>(({ copiedDuration, ...props }, ref) => {\n const {\n strings: {\n assistantMessage: { copy: { tooltip = \"Copy\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n\n return (\n <ActionBarPrimitive.Copy copiedDuration={copiedDuration} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? (\n <>\n <MessagePrimitive.If copied>\n <CheckIcon />\n </MessagePrimitive.If>\n <MessagePrimitive.If copied={false}>\n <CopyIcon />\n </MessagePrimitive.If>\n </>\n )}\n </TooltipIconButton>\n </ActionBarPrimitive.Copy>\n );\n});\n\nAssistantActionBarCopy.displayName = \"AssistantActionBarCopy\";\n\nconst AssistantActionBarSpeechControl: FC = () => {\n return (\n <>\n <MessagePrimitive.If speaking={false}>\n <AssistantActionBarSpeak />\n </MessagePrimitive.If>\n <MessagePrimitive.If speaking>\n <AssistantActionBarStopSpeaking />\n </MessagePrimitive.If>\n </>\n );\n};\n\nnamespace AssistantActionBarSpeak {\n export type Element = ActionBarPrimitive.Speak.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarSpeak = forwardRef<\n AssistantActionBarSpeak.Element,\n AssistantActionBarSpeak.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: { speak: { tooltip = \"Read aloud\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowSpeak = useAllowSpeak();\n\n return (\n <ActionBarPrimitive.Speak disabled={!allowSpeak} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <AudioLinesIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.Speak>\n );\n});\n\nAssistantActionBarSpeak.displayName = \"AssistantActionBarSpeak\";\n\nnamespace AssistantActionBarStopSpeaking {\n export type Element = ActionBarPrimitive.StopSpeaking.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarStopSpeaking = forwardRef<\n AssistantActionBarStopSpeaking.Element,\n AssistantActionBarStopSpeaking.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n speak: { stop: { tooltip: stopTooltip = \"Stop\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowSpeak = useAllowSpeak();\n\n return (\n <ActionBarPrimitive.StopSpeaking disabled={!allowSpeak} asChild>\n <TooltipIconButton tooltip={stopTooltip} {...props} ref={ref}>\n {props.children ?? <StopCircleIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.StopSpeaking>\n );\n});\n\nAssistantActionBarStopSpeaking.displayName = \"AssistantActionBarStopSpeaking\";\n\nnamespace AssistantActionBarReload {\n export type Element = ActionBarPrimitive.Reload.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarReload = forwardRef<\n AssistantActionBarReload.Element,\n AssistantActionBarReload.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: { reload: { tooltip = \"Refresh\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowReload = useAllowReload();\n return (\n <ActionBarPrimitive.Reload disabled={!allowReload} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <RefreshCwIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.Reload>\n );\n});\n\nAssistantActionBarReload.displayName = \"AssistantActionBarReload\";\n\nnamespace AssistantActionBarFeedbackPositive {\n export type Element = ActionBarPrimitive.FeedbackPositive.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarFeedbackPositive = forwardRef<\n AssistantActionBarFeedbackPositive.Element,\n AssistantActionBarFeedbackPositive.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n feedback: { positive: { tooltip = \"Good response\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowFeedbackPositive = useAllowFeedbackPositive();\n return (\n <ActionBarPrimitive.FeedbackPositive\n disabled={!allowFeedbackPositive}\n className=\"aui-assistant-action-bar-feedback-positive\"\n asChild\n >\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ThumbsUpIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.FeedbackPositive>\n );\n});\n\nAssistantActionBarFeedbackPositive.displayName =\n \"AssistantActionBarFeedbackPositive\";\n\nnamespace AssistantActionBarFeedbackNegative {\n export type Element = ActionBarPrimitive.FeedbackNegative.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantActionBarFeedbackNegative = forwardRef<\n AssistantActionBarFeedbackNegative.Element,\n AssistantActionBarFeedbackNegative.Props\n>((props, ref) => {\n const {\n strings: {\n assistantMessage: {\n feedback: { negative: { tooltip = \"Bad response\" } = {} } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const allowFeedbackNegative = useAllowFeedbackNegative();\n return (\n <ActionBarPrimitive.FeedbackNegative\n disabled={!allowFeedbackNegative}\n className=\"aui-assistant-action-bar-feedback-negative\"\n asChild\n >\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ThumbsDownIcon />}\n </TooltipIconButton>\n </ActionBarPrimitive.FeedbackNegative>\n );\n});\n\nAssistantActionBarFeedbackNegative.displayName =\n \"AssistantActionBarFeedbackNegative\";\n\nconst exports = {\n Root: AssistantActionBarRoot,\n Reload: AssistantActionBarReload,\n Copy: AssistantActionBarCopy,\n Speak: AssistantActionBarSpeak,\n StopSpeaking: AssistantActionBarStopSpeaking,\n SpeechControl: AssistantActionBarSpeechControl,\n FeedbackPositive: AssistantActionBarFeedbackPositive,\n FeedbackNegative: AssistantActionBarFeedbackNegative,\n};\n\nexport default Object.assign(\n AssistantActionBar,\n exports,\n) as typeof AssistantActionBar & typeof exports;\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type FC } from "react";
|
|
2
2
|
import { AssistantModalPrimitive } from "../primitives";
|
|
3
|
-
import {
|
|
3
|
+
import { TooltipIconButton } from "./base/tooltip-icon-button";
|
|
4
4
|
import { ThreadConfig, ThreadConfigProviderProps } from "./thread-config";
|
|
5
5
|
declare const AssistantModal: FC<ThreadConfig>;
|
|
6
6
|
declare namespace AssistantModalRoot {
|
|
@@ -9,11 +9,11 @@ declare namespace AssistantModalRoot {
|
|
|
9
9
|
declare const AssistantModalRoot: FC<AssistantModalRoot.Props>;
|
|
10
10
|
declare const exports: {
|
|
11
11
|
Root: FC<AssistantModalRoot.Props>;
|
|
12
|
-
Trigger: import("react").ForwardRefExoticComponent<Partial<
|
|
12
|
+
Trigger: import("react").ForwardRefExoticComponent<Partial<TooltipIconButton.Props> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
13
13
|
Content: import("react").ForwardRefExoticComponent<Partial<Omit<Omit<import("@radix-ui/react-popover").PopoverContentProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
14
14
|
dissmissOnInteractOutside?: boolean | undefined;
|
|
15
15
|
} & import("react").RefAttributes<HTMLDivElement>, "ref">> & import("react").RefAttributes<HTMLDivElement>>;
|
|
16
|
-
Button: import("react").ForwardRefExoticComponent<Partial<
|
|
16
|
+
Button: import("react").ForwardRefExoticComponent<Partial<TooltipIconButton.Props> & {
|
|
17
17
|
"data-state"?: "open" | "closed";
|
|
18
18
|
} & import("react").RefAttributes<HTMLButtonElement>>;
|
|
19
19
|
Anchor: import("react").ForwardRefExoticComponent<Partial<Omit<Omit<import("@radix-ui/react-popover").PopoverAnchorProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref">> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant-modal.d.ts","sourceRoot":"","sources":["../../src/ui/assistant-modal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAc,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,
|
|
1
|
+
{"version":3,"file":"assistant-modal.d.ts","sourceRoot":"","sources":["../../src/ui/assistant-modal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAc,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EACL,YAAY,EAEZ,yBAAyB,EAE1B,MAAM,iBAAiB,CAAC;AAEzB,QAAA,MAAM,cAAc,EAAE,EAAE,CAAC,YAAY,CASpC,CAAC;AAIF,kBAAU,kBAAkB,CAAC;IAC3B,KAAY,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,GACpD,yBAAyB,CAAC;CAC7B;AAED,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,CASpD,CAAC;AA6FF,QAAA,MAAM,OAAO;;;;;;;uBAvDM,MAAM,GAAG,QAAQ;;;CA6DnC,CAAC;wBAEuD,OAAO,cAAc,GAC5E,OAAO,OAAO;AADhB,wBACiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/assistant-modal.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, forwardRef } from \"react\";\nimport { BotIcon, ChevronDownIcon } from \"lucide-react\";\n\nimport { AssistantModalPrimitive } from \"../primitives\";\nimport Thread from \"./thread\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/ui/assistant-modal.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, forwardRef } from \"react\";\nimport { BotIcon, ChevronDownIcon } from \"lucide-react\";\n\nimport { AssistantModalPrimitive } from \"../primitives\";\nimport Thread from \"./thread\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { TooltipIconButton } from \"./base/tooltip-icon-button\";\nimport {\n ThreadConfig,\n ThreadConfigProvider,\n ThreadConfigProviderProps,\n useThreadConfig,\n} from \"./thread-config\";\n\nconst AssistantModal: FC<ThreadConfig> = (config) => {\n return (\n <AssistantModalRoot config={config}>\n <AssistantModalTrigger />\n <AssistantModalContent>\n <Thread />\n </AssistantModalContent>\n </AssistantModalRoot>\n );\n};\n\nAssistantModal.displayName = \"AssistantModal\";\n\nnamespace AssistantModalRoot {\n export type Props = AssistantModalPrimitive.Root.Props &\n ThreadConfigProviderProps;\n}\n\nconst AssistantModalRoot: FC<AssistantModalRoot.Props> = ({\n config,\n ...props\n}) => {\n return (\n <ThreadConfigProvider config={config}>\n <AssistantModalPrimitive.Root {...props} />\n </ThreadConfigProvider>\n );\n};\n\nAssistantModalRoot.displayName = \"AssistantModalRoot\";\n\nnamespace AssistantModalTrigger {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantModalTrigger = forwardRef<\n AssistantModalTrigger.Element,\n AssistantModalTrigger.Props\n>((props, ref) => {\n return (\n <AssistantModalAnchor>\n <AssistantModalPrimitive.Trigger asChild>\n <AssistantModalButton {...props} ref={ref} />\n </AssistantModalPrimitive.Trigger>\n </AssistantModalAnchor>\n );\n});\n\nAssistantModalTrigger.displayName = \"AssistantModalTrigger\";\n\nconst AssistantModalAnchor = withDefaults(AssistantModalPrimitive.Anchor, {\n className: \"aui-root aui-modal-anchor\",\n});\n\nAssistantModalAnchor.displayName = \"AssistantModalAnchor\";\n\nconst ModalButtonStyled = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-modal-button\",\n});\n\nnamespace AssistantModalButton {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButton.Props> & {\n \"data-state\"?: \"open\" | \"closed\";\n };\n}\n\nconst AssistantModalButton = forwardRef<\n AssistantModalButton.Element,\n AssistantModalButton.Props\n>(({ \"data-state\": state, ...rest }, ref) => {\n const {\n strings: {\n assistantModal: {\n open: {\n button: { tooltip: openTooltip = \"Close Assistant\" } = {},\n } = {},\n closed: {\n button: { tooltip: closedTooltip = \"Open Assistant\" } = {},\n } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const tooltip = state === \"open\" ? openTooltip : closedTooltip;\n\n return (\n <ModalButtonStyled\n side=\"left\"\n tooltip={tooltip}\n data-state={state}\n {...rest}\n ref={ref}\n >\n {rest.children ?? (\n <>\n <BotIcon\n data-state={state}\n className=\"aui-modal-button-closed-icon\"\n />\n <ChevronDownIcon\n data-state={state}\n className=\"aui-modal-button-open-icon\"\n />\n </>\n )}\n </ModalButtonStyled>\n );\n});\n\nAssistantModalButton.displayName = \"AssistantModalButton\";\n\nconst AssistantModalContent = withDefaults(AssistantModalPrimitive.Content, {\n className: \"aui-root aui-modal-content\",\n sideOffset: 16,\n});\n\nAssistantModalContent.displayName = \"AssistantModalContent\";\n\nconst exports = {\n Root: AssistantModalRoot,\n Trigger: AssistantModalTrigger,\n Content: AssistantModalContent,\n Button: AssistantModalButton,\n Anchor: AssistantModalAnchor,\n};\n\nexport default Object.assign(AssistantModal, exports) as typeof AssistantModal &\n typeof exports;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAoC;AACpC,0BAAyC;AAEzC,wBAAwC;AACxC,oBAAmB;AACnB,0BAA6B;AAC7B,iCAAkC;AAClC,2BAKO;AAIH;AAFJ,IAAM,iBAAmC,CAAC,WAAW;AACnD,SACE,6CAAC,sBAAmB,QAClB;AAAA,gDAAC,yBAAsB;AAAA,IACvB,4CAAC,yBACC,sDAAC,cAAAA,SAAA,EAAO,GACV;AAAA,KACF;AAEJ;AAEA,eAAe,cAAc;AAO7B,IAAM,qBAAmD,CAAC;AAAA,EACxD;AAAA,EACA,GAAG;AACL,MAAM;AACJ,SACE,4CAAC,6CAAqB,QACpB,sDAAC,0CAAwB,MAAxB,EAA8B,GAAG,OAAO,GAC3C;AAEJ;AAEA,mBAAmB,cAAc;AAOjC,IAAM,4BAAwB,yBAG5B,CAAC,OAAO,QAAQ;AAChB,SACE,4CAAC,wBACC,sDAAC,0CAAwB,SAAxB,EAAgC,SAAO,MACtC,sDAAC,wBAAsB,GAAG,OAAO,KAAU,GAC7C,GACF;AAEJ,CAAC;AAED,sBAAsB,cAAc;AAEpC,IAAM,2BAAuB,kCAAa,0CAAwB,QAAQ;AAAA,EACxE,WAAW;AACb,CAAC;AAED,qBAAqB,cAAc;AAEnC,IAAM,wBAAoB,kCAAa,8CAAmB;AAAA,EACxD,SAAS;AAAA,EACT,WAAW;AACb,CAAC;AASD,IAAM,2BAAuB,yBAG3B,CAAC,EAAE,cAAc,OAAO,GAAG,KAAK,GAAG,QAAQ;AAC3C,QAAM;AAAA,IACJ,SAAS;AAAA,MACP,gBAAgB;AAAA,QACd,MAAM;AAAA,UACJ,QAAQ,EAAE,SAAS,cAAc,kBAAkB,IAAI,CAAC;AAAA,QAC1D,IAAI,CAAC;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ,EAAE,SAAS,gBAAgB,iBAAiB,IAAI,CAAC;AAAA,QAC3D,IAAI,CAAC;AAAA,MACP,IAAI,CAAC;AAAA,IACP,IAAI,CAAC;AAAA,EACP,QAAI,sCAAgB;AACpB,QAAM,UAAU,UAAU,SAAS,cAAc;AAEjD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL;AAAA,MACA,cAAY;AAAA,MACX,GAAG;AAAA,MACJ;AAAA,MAEC,eAAK,YACJ,4EACE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAY;AAAA,YACZ,WAAU;AAAA;AAAA,QACZ;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,cAAY;AAAA,YACZ,WAAU;AAAA;AAAA,QACZ;AAAA,SACF;AAAA;AAAA,EAEJ;AAEJ,CAAC;AAED,qBAAqB,cAAc;AAEnC,IAAM,4BAAwB,kCAAa,0CAAwB,SAAS;AAAA,EAC1E,WAAW;AAAA,EACX,YAAY;AACd,CAAC;AAED,sBAAsB,cAAc;AAEpC,IAAMC,WAAU;AAAA,EACd,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACV;AAEA,IAAO,0BAAQ,OAAO,OAAO,gBAAgBA,QAAO;","names":["Thread","exports"]}
|
|
@@ -6,9 +6,7 @@ import { BotIcon, ChevronDownIcon } from "lucide-react";
|
|
|
6
6
|
import { AssistantModalPrimitive } from "../primitives/index.mjs";
|
|
7
7
|
import Thread from "./thread.mjs";
|
|
8
8
|
import { withDefaults } from "./utils/withDefaults.mjs";
|
|
9
|
-
import {
|
|
10
|
-
TooltipIconButton
|
|
11
|
-
} from "./base/tooltip-icon-button.mjs";
|
|
9
|
+
import { TooltipIconButton } from "./base/tooltip-icon-button.mjs";
|
|
12
10
|
import {
|
|
13
11
|
ThreadConfigProvider,
|
|
14
12
|
useThreadConfig
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/assistant-modal.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, forwardRef } from \"react\";\nimport { BotIcon, ChevronDownIcon } from \"lucide-react\";\n\nimport { AssistantModalPrimitive } from \"../primitives\";\nimport Thread from \"./thread\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/ui/assistant-modal.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, forwardRef } from \"react\";\nimport { BotIcon, ChevronDownIcon } from \"lucide-react\";\n\nimport { AssistantModalPrimitive } from \"../primitives\";\nimport Thread from \"./thread\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { TooltipIconButton } from \"./base/tooltip-icon-button\";\nimport {\n ThreadConfig,\n ThreadConfigProvider,\n ThreadConfigProviderProps,\n useThreadConfig,\n} from \"./thread-config\";\n\nconst AssistantModal: FC<ThreadConfig> = (config) => {\n return (\n <AssistantModalRoot config={config}>\n <AssistantModalTrigger />\n <AssistantModalContent>\n <Thread />\n </AssistantModalContent>\n </AssistantModalRoot>\n );\n};\n\nAssistantModal.displayName = \"AssistantModal\";\n\nnamespace AssistantModalRoot {\n export type Props = AssistantModalPrimitive.Root.Props &\n ThreadConfigProviderProps;\n}\n\nconst AssistantModalRoot: FC<AssistantModalRoot.Props> = ({\n config,\n ...props\n}) => {\n return (\n <ThreadConfigProvider config={config}>\n <AssistantModalPrimitive.Root {...props} />\n </ThreadConfigProvider>\n );\n};\n\nAssistantModalRoot.displayName = \"AssistantModalRoot\";\n\nnamespace AssistantModalTrigger {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AssistantModalTrigger = forwardRef<\n AssistantModalTrigger.Element,\n AssistantModalTrigger.Props\n>((props, ref) => {\n return (\n <AssistantModalAnchor>\n <AssistantModalPrimitive.Trigger asChild>\n <AssistantModalButton {...props} ref={ref} />\n </AssistantModalPrimitive.Trigger>\n </AssistantModalAnchor>\n );\n});\n\nAssistantModalTrigger.displayName = \"AssistantModalTrigger\";\n\nconst AssistantModalAnchor = withDefaults(AssistantModalPrimitive.Anchor, {\n className: \"aui-root aui-modal-anchor\",\n});\n\nAssistantModalAnchor.displayName = \"AssistantModalAnchor\";\n\nconst ModalButtonStyled = withDefaults(TooltipIconButton, {\n variant: \"default\",\n className: \"aui-modal-button\",\n});\n\nnamespace AssistantModalButton {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButton.Props> & {\n \"data-state\"?: \"open\" | \"closed\";\n };\n}\n\nconst AssistantModalButton = forwardRef<\n AssistantModalButton.Element,\n AssistantModalButton.Props\n>(({ \"data-state\": state, ...rest }, ref) => {\n const {\n strings: {\n assistantModal: {\n open: {\n button: { tooltip: openTooltip = \"Close Assistant\" } = {},\n } = {},\n closed: {\n button: { tooltip: closedTooltip = \"Open Assistant\" } = {},\n } = {},\n } = {},\n } = {},\n } = useThreadConfig();\n const tooltip = state === \"open\" ? openTooltip : closedTooltip;\n\n return (\n <ModalButtonStyled\n side=\"left\"\n tooltip={tooltip}\n data-state={state}\n {...rest}\n ref={ref}\n >\n {rest.children ?? (\n <>\n <BotIcon\n data-state={state}\n className=\"aui-modal-button-closed-icon\"\n />\n <ChevronDownIcon\n data-state={state}\n className=\"aui-modal-button-open-icon\"\n />\n </>\n )}\n </ModalButtonStyled>\n );\n});\n\nAssistantModalButton.displayName = \"AssistantModalButton\";\n\nconst AssistantModalContent = withDefaults(AssistantModalPrimitive.Content, {\n className: \"aui-root aui-modal-content\",\n sideOffset: 16,\n});\n\nAssistantModalContent.displayName = \"AssistantModalContent\";\n\nconst exports = {\n Root: AssistantModalRoot,\n Trigger: AssistantModalTrigger,\n Content: AssistantModalContent,\n Button: AssistantModalButton,\n Anchor: AssistantModalAnchor,\n};\n\nexport default Object.assign(AssistantModal, exports) as typeof AssistantModal &\n typeof exports;\n"],"mappings":";;;AAEA,SAAkB,kBAAkB;AACpC,SAAS,SAAS,uBAAuB;AAEzC,SAAS,+BAA+B;AACxC,OAAO,YAAY;AACnB,SAAS,oBAAoB;AAC7B,SAAS,yBAAyB;AAClC;AAAA,EAEE;AAAA,EAEA;AAAA,OACK;AAIH,SA8FI,UA7FF,KADF;AAFJ,IAAM,iBAAmC,CAAC,WAAW;AACnD,SACE,qBAAC,sBAAmB,QAClB;AAAA,wBAAC,yBAAsB;AAAA,IACvB,oBAAC,yBACC,8BAAC,UAAO,GACV;AAAA,KACF;AAEJ;AAEA,eAAe,cAAc;AAO7B,IAAM,qBAAmD,CAAC;AAAA,EACxD;AAAA,EACA,GAAG;AACL,MAAM;AACJ,SACE,oBAAC,wBAAqB,QACpB,8BAAC,wBAAwB,MAAxB,EAA8B,GAAG,OAAO,GAC3C;AAEJ;AAEA,mBAAmB,cAAc;AAOjC,IAAM,wBAAwB,WAG5B,CAAC,OAAO,QAAQ;AAChB,SACE,oBAAC,wBACC,8BAAC,wBAAwB,SAAxB,EAAgC,SAAO,MACtC,8BAAC,wBAAsB,GAAG,OAAO,KAAU,GAC7C,GACF;AAEJ,CAAC;AAED,sBAAsB,cAAc;AAEpC,IAAM,uBAAuB,aAAa,wBAAwB,QAAQ;AAAA,EACxE,WAAW;AACb,CAAC;AAED,qBAAqB,cAAc;AAEnC,IAAM,oBAAoB,aAAa,mBAAmB;AAAA,EACxD,SAAS;AAAA,EACT,WAAW;AACb,CAAC;AASD,IAAM,uBAAuB,WAG3B,CAAC,EAAE,cAAc,OAAO,GAAG,KAAK,GAAG,QAAQ;AAC3C,QAAM;AAAA,IACJ,SAAS;AAAA,MACP,gBAAgB;AAAA,QACd,MAAM;AAAA,UACJ,QAAQ,EAAE,SAAS,cAAc,kBAAkB,IAAI,CAAC;AAAA,QAC1D,IAAI,CAAC;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ,EAAE,SAAS,gBAAgB,iBAAiB,IAAI,CAAC;AAAA,QAC3D,IAAI,CAAC;AAAA,MACP,IAAI,CAAC;AAAA,IACP,IAAI,CAAC;AAAA,EACP,IAAI,gBAAgB;AACpB,QAAM,UAAU,UAAU,SAAS,cAAc;AAEjD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL;AAAA,MACA,cAAY;AAAA,MACX,GAAG;AAAA,MACJ;AAAA,MAEC,eAAK,YACJ,iCACE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,cAAY;AAAA,YACZ,WAAU;AAAA;AAAA,QACZ;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,cAAY;AAAA,YACZ,WAAU;AAAA;AAAA,QACZ;AAAA,SACF;AAAA;AAAA,EAEJ;AAEJ,CAAC;AAED,qBAAqB,cAAc;AAEnC,IAAM,wBAAwB,aAAa,wBAAwB,SAAS;AAAA,EAC1E,WAAW;AAAA,EACX,YAAY;AACd,CAAC;AAED,sBAAsB,cAAc;AAEpC,IAAM,UAAU;AAAA,EACd,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACV;AAEA,IAAO,0BAAQ,OAAO,OAAO,gBAAgB,OAAO;","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FC } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { TooltipIconButton } from "./base/tooltip-icon-button";
|
|
3
3
|
declare const AttachmentUI: FC;
|
|
4
4
|
declare const exports: {
|
|
5
5
|
Root: import("react").ForwardRefExoticComponent<Partial<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
@@ -7,7 +7,7 @@ declare const exports: {
|
|
|
7
7
|
} & {
|
|
8
8
|
asChild?: boolean;
|
|
9
9
|
}, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref">> & import("react").RefAttributes<HTMLDivElement>>;
|
|
10
|
-
Remove: import("react").ForwardRefExoticComponent<Partial<
|
|
10
|
+
Remove: import("react").ForwardRefExoticComponent<Partial<TooltipIconButton.Props> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
11
11
|
};
|
|
12
12
|
declare const _default: typeof AttachmentUI & typeof exports;
|
|
13
13
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-ui.d.ts","sourceRoot":"","sources":["../../src/ui/attachment-ui.tsx"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAIf,OAAO,
|
|
1
|
+
{"version":3,"file":"attachment-ui.d.ts","sourceRoot":"","sources":["../../src/ui/attachment-ui.tsx"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAiH/D,QAAA,MAAM,YAAY,EAAE,EAqCnB,CAAC;AAoCF,QAAA,MAAM,OAAO;;;;;;;CAGZ,CAAC;wBAEqD,OAAO,YAAY,GACxE,OAAO,OAAO;AADhB,wBACiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/attachment-ui.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n forwardRef,\n PropsWithChildren,\n useEffect,\n useState,\n type FC,\n} from \"react\";\nimport { CircleXIcon, FileIcon } from \"lucide-react\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/ui/attachment-ui.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n forwardRef,\n PropsWithChildren,\n useEffect,\n useState,\n type FC,\n} from \"react\";\nimport { CircleXIcon, FileIcon } from \"lucide-react\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport { TooltipIconButton } from \"./base/tooltip-icon-button\";\nimport { AttachmentPrimitive } from \"../primitives\";\nimport { useAttachment } from \"../context/react/AttachmentContext\";\nimport {\n AvatarImage,\n AvatarRoot,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"./base\";\nimport { Dialog, DialogTrigger, DialogContent } from \"./base/dialog\";\nimport { AvatarFallback } from \"@radix-ui/react-avatar\";\nimport { useShallow } from \"zustand/shallow\";\nimport { DialogTitle } from \"@radix-ui/react-dialog\";\n\nconst AttachmentRoot = withDefaults(AttachmentPrimitive.Root, {\n className: \"aui-attachment-root\",\n});\n\nAttachmentRoot.displayName = \"AttachmentRoot\";\n\nconst useFileSrc = (file: File | undefined) => {\n const [src, setSrc] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n if (!file) {\n setSrc(undefined);\n return;\n }\n\n const objectUrl = URL.createObjectURL(file);\n setSrc(objectUrl);\n\n return () => {\n URL.revokeObjectURL(objectUrl);\n };\n }, [file]);\n\n return src;\n};\n\nconst useAttachmentSrc = () => {\n const { file, src } = useAttachment(\n useShallow((a): { file?: File; src?: string } => {\n if (a.type !== \"image\") return {};\n if (a.file) return { file: a.file };\n const src = a.content?.filter((c) => c.type === \"image\")[0]?.image;\n if (!src) return {};\n return { src };\n }),\n );\n\n return useFileSrc(file) ?? src;\n};\n\ntype AttachmentPreviewProps = {\n src: string;\n};\n\nconst AttachmentPreview: FC<AttachmentPreviewProps> = ({ src }) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n return (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n src={src}\n style={{\n width: \"auto\",\n height: \"auto\",\n maxWidth: \"75dvh\",\n maxHeight: \"75dvh\",\n display: isLoaded ? \"block\" : \"none\",\n overflow: \"clip\",\n }}\n onLoad={() => setIsLoaded(true)}\n alt=\"Image Preview\"\n />\n );\n};\n\nconst AttachmentPreviewDialog: FC<PropsWithChildren> = ({ children }) => {\n const src = useAttachmentSrc();\n\n if (!src) return children;\n\n return (\n <Dialog>\n <DialogTrigger className=\"aui-attachment-preview-trigger\" asChild>\n {children}\n </DialogTrigger>\n <DialogContent>\n <DialogTitle className=\"aui-sr-only\">\n Image Attachment Preview\n </DialogTitle>\n <AttachmentPreview src={src} />\n </DialogContent>\n </Dialog>\n );\n};\n\nconst AttachmentThumb: FC = () => {\n const isImage = useAttachment((a) => a.type === \"image\");\n const src = useAttachmentSrc();\n return (\n <AvatarRoot className=\"aui-attachment-thumb\">\n <AvatarFallback delayMs={isImage ? 200 : 0}>\n <FileIcon />\n </AvatarFallback>\n <AvatarImage src={src}></AvatarImage>\n </AvatarRoot>\n );\n};\n\nconst AttachmentUI: FC = () => {\n const canRemove = useAttachment((a) => a.source !== \"message\");\n const typeLabel = useAttachment((a) => {\n const type = a.type;\n switch (type) {\n case \"image\":\n return \"Image\";\n case \"document\":\n return \"Document\";\n case \"file\":\n return \"File\";\n default:\n const _exhaustiveCheck: never = type;\n throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);\n }\n });\n return (\n <Tooltip>\n <AttachmentPreviewDialog>\n <TooltipTrigger asChild>\n <AttachmentRoot>\n <AttachmentThumb />\n <div className=\"aui-attachment-text\">\n <p className=\"aui-attachment-name\">\n <AttachmentPrimitive.Name />\n </p>\n <p className=\"aui-attachment-type\">{typeLabel}</p>\n </div>\n {canRemove && <AttachmentRemove />}\n </AttachmentRoot>\n </TooltipTrigger>\n </AttachmentPreviewDialog>\n <TooltipContent side=\"top\">\n <AttachmentPrimitive.Name />\n </TooltipContent>\n </Tooltip>\n );\n};\n\nAttachmentUI.displayName = \"Attachment\";\n\nnamespace AttachmentRemove {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AttachmentRemove = forwardRef<\n AttachmentRemove.Element,\n AttachmentRemove.Props\n>((props, ref) => {\n const {\n strings: {\n composer: { removeAttachment: { tooltip = \"Remove file\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n\n return (\n <AttachmentPrimitive.Remove asChild>\n <TooltipIconButton\n tooltip={tooltip}\n className=\"aui-attachment-remove\"\n side=\"top\"\n {...props}\n ref={ref}\n >\n {props.children ?? <CircleXIcon />}\n </TooltipIconButton>\n </AttachmentPrimitive.Remove>\n );\n});\n\nAttachmentRemove.displayName = \"AttachmentRemove\";\n\nconst exports = {\n Root: AttachmentRoot,\n Remove: AttachmentRemove,\n};\n\nexport default Object.assign(AttachmentUI, exports) as typeof AttachmentUI &\n typeof exports;\n"],"mappings":"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","names":["src","exports"]}
|
|
@@ -9,9 +9,7 @@ import {
|
|
|
9
9
|
import { CircleXIcon, FileIcon } from "lucide-react";
|
|
10
10
|
import { withDefaults } from "./utils/withDefaults.mjs";
|
|
11
11
|
import { useThreadConfig } from "./thread-config.mjs";
|
|
12
|
-
import {
|
|
13
|
-
TooltipIconButton
|
|
14
|
-
} from "./base/tooltip-icon-button.mjs";
|
|
12
|
+
import { TooltipIconButton } from "./base/tooltip-icon-button.mjs";
|
|
15
13
|
import { AttachmentPrimitive } from "../primitives/index.mjs";
|
|
16
14
|
import { useAttachment } from "../context/react/AttachmentContext.mjs";
|
|
17
15
|
import {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/attachment-ui.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n forwardRef,\n PropsWithChildren,\n useEffect,\n useState,\n type FC,\n} from \"react\";\nimport { CircleXIcon, FileIcon } from \"lucide-react\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/ui/attachment-ui.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n forwardRef,\n PropsWithChildren,\n useEffect,\n useState,\n type FC,\n} from \"react\";\nimport { CircleXIcon, FileIcon } from \"lucide-react\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport { TooltipIconButton } from \"./base/tooltip-icon-button\";\nimport { AttachmentPrimitive } from \"../primitives\";\nimport { useAttachment } from \"../context/react/AttachmentContext\";\nimport {\n AvatarImage,\n AvatarRoot,\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"./base\";\nimport { Dialog, DialogTrigger, DialogContent } from \"./base/dialog\";\nimport { AvatarFallback } from \"@radix-ui/react-avatar\";\nimport { useShallow } from \"zustand/shallow\";\nimport { DialogTitle } from \"@radix-ui/react-dialog\";\n\nconst AttachmentRoot = withDefaults(AttachmentPrimitive.Root, {\n className: \"aui-attachment-root\",\n});\n\nAttachmentRoot.displayName = \"AttachmentRoot\";\n\nconst useFileSrc = (file: File | undefined) => {\n const [src, setSrc] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n if (!file) {\n setSrc(undefined);\n return;\n }\n\n const objectUrl = URL.createObjectURL(file);\n setSrc(objectUrl);\n\n return () => {\n URL.revokeObjectURL(objectUrl);\n };\n }, [file]);\n\n return src;\n};\n\nconst useAttachmentSrc = () => {\n const { file, src } = useAttachment(\n useShallow((a): { file?: File; src?: string } => {\n if (a.type !== \"image\") return {};\n if (a.file) return { file: a.file };\n const src = a.content?.filter((c) => c.type === \"image\")[0]?.image;\n if (!src) return {};\n return { src };\n }),\n );\n\n return useFileSrc(file) ?? src;\n};\n\ntype AttachmentPreviewProps = {\n src: string;\n};\n\nconst AttachmentPreview: FC<AttachmentPreviewProps> = ({ src }) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n return (\n // eslint-disable-next-line @next/next/no-img-element\n <img\n src={src}\n style={{\n width: \"auto\",\n height: \"auto\",\n maxWidth: \"75dvh\",\n maxHeight: \"75dvh\",\n display: isLoaded ? \"block\" : \"none\",\n overflow: \"clip\",\n }}\n onLoad={() => setIsLoaded(true)}\n alt=\"Image Preview\"\n />\n );\n};\n\nconst AttachmentPreviewDialog: FC<PropsWithChildren> = ({ children }) => {\n const src = useAttachmentSrc();\n\n if (!src) return children;\n\n return (\n <Dialog>\n <DialogTrigger className=\"aui-attachment-preview-trigger\" asChild>\n {children}\n </DialogTrigger>\n <DialogContent>\n <DialogTitle className=\"aui-sr-only\">\n Image Attachment Preview\n </DialogTitle>\n <AttachmentPreview src={src} />\n </DialogContent>\n </Dialog>\n );\n};\n\nconst AttachmentThumb: FC = () => {\n const isImage = useAttachment((a) => a.type === \"image\");\n const src = useAttachmentSrc();\n return (\n <AvatarRoot className=\"aui-attachment-thumb\">\n <AvatarFallback delayMs={isImage ? 200 : 0}>\n <FileIcon />\n </AvatarFallback>\n <AvatarImage src={src}></AvatarImage>\n </AvatarRoot>\n );\n};\n\nconst AttachmentUI: FC = () => {\n const canRemove = useAttachment((a) => a.source !== \"message\");\n const typeLabel = useAttachment((a) => {\n const type = a.type;\n switch (type) {\n case \"image\":\n return \"Image\";\n case \"document\":\n return \"Document\";\n case \"file\":\n return \"File\";\n default:\n const _exhaustiveCheck: never = type;\n throw new Error(`Unknown attachment type: ${_exhaustiveCheck}`);\n }\n });\n return (\n <Tooltip>\n <AttachmentPreviewDialog>\n <TooltipTrigger asChild>\n <AttachmentRoot>\n <AttachmentThumb />\n <div className=\"aui-attachment-text\">\n <p className=\"aui-attachment-name\">\n <AttachmentPrimitive.Name />\n </p>\n <p className=\"aui-attachment-type\">{typeLabel}</p>\n </div>\n {canRemove && <AttachmentRemove />}\n </AttachmentRoot>\n </TooltipTrigger>\n </AttachmentPreviewDialog>\n <TooltipContent side=\"top\">\n <AttachmentPrimitive.Name />\n </TooltipContent>\n </Tooltip>\n );\n};\n\nAttachmentUI.displayName = \"Attachment\";\n\nnamespace AttachmentRemove {\n export type Element = HTMLButtonElement;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst AttachmentRemove = forwardRef<\n AttachmentRemove.Element,\n AttachmentRemove.Props\n>((props, ref) => {\n const {\n strings: {\n composer: { removeAttachment: { tooltip = \"Remove file\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n\n return (\n <AttachmentPrimitive.Remove asChild>\n <TooltipIconButton\n tooltip={tooltip}\n className=\"aui-attachment-remove\"\n side=\"top\"\n {...props}\n ref={ref}\n >\n {props.children ?? <CircleXIcon />}\n </TooltipIconButton>\n </AttachmentPrimitive.Remove>\n );\n});\n\nAttachmentRemove.displayName = \"AttachmentRemove\";\n\nconst exports = {\n Root: AttachmentRoot,\n Remove: AttachmentRemove,\n};\n\nexport default Object.assign(AttachmentUI, exports) as typeof AttachmentUI &\n typeof exports;\n"],"mappings":"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","names":["src"]}
|
package/dist/ui/base/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { Avatar, AvatarRoot, AvatarImage, AvatarFallback, type AvatarProps, } from "./avatar";
|
|
2
2
|
export { Button, buttonVariants, type ButtonProps } from "./button";
|
|
3
3
|
export { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip";
|
|
4
|
-
export { TooltipIconButton
|
|
4
|
+
export { TooltipIconButton } from "./tooltip-icon-button";
|
|
5
5
|
export { CircleStopIcon } from "./CircleStopIcon";
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/base/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,UAAU,EACV,WAAW,EACX,cAAc,EACd,KAAK,WAAW,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEpE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/base/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,UAAU,EACV,WAAW,EACX,cAAc,EACd,KAAK,WAAW,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ui/base/index.ts"],"sourcesContent":["export {\n Avatar,\n AvatarRoot,\n AvatarImage,\n AvatarFallback,\n type AvatarProps,\n} from \"./avatar\";\n\nexport { Button, buttonVariants, type ButtonProps } from \"./button\";\n\nexport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\";\n\nexport {
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/base/index.ts"],"sourcesContent":["export {\n Avatar,\n AvatarRoot,\n AvatarImage,\n AvatarFallback,\n type AvatarProps,\n} from \"./avatar\";\n\nexport { Button, buttonVariants, type ButtonProps } from \"./button\";\n\nexport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\";\n\nexport { TooltipIconButton } from \"./tooltip-icon-button\";\n\nexport { CircleStopIcon } from \"./CircleStopIcon\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMO;AAEP,oBAAyD;AAEzD,qBAAwD;AAExD,iCAAkC;AAElC,4BAA+B;","names":[]}
|
package/dist/ui/base/index.mjs
CHANGED
|
@@ -7,9 +7,7 @@ import {
|
|
|
7
7
|
} from "./avatar.mjs";
|
|
8
8
|
import { Button, buttonVariants } from "./button.mjs";
|
|
9
9
|
import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.mjs";
|
|
10
|
-
import {
|
|
11
|
-
TooltipIconButton
|
|
12
|
-
} from "./tooltip-icon-button.mjs";
|
|
10
|
+
import { TooltipIconButton } from "./tooltip-icon-button.mjs";
|
|
13
11
|
import { CircleStopIcon } from "./CircleStopIcon.mjs";
|
|
14
12
|
export {
|
|
15
13
|
Avatar,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ui/base/index.ts"],"sourcesContent":["export {\n Avatar,\n AvatarRoot,\n AvatarImage,\n AvatarFallback,\n type AvatarProps,\n} from \"./avatar\";\n\nexport { Button, buttonVariants, type ButtonProps } from \"./button\";\n\nexport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\";\n\nexport {
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/base/index.ts"],"sourcesContent":["export {\n Avatar,\n AvatarRoot,\n AvatarImage,\n AvatarFallback,\n type AvatarProps,\n} from \"./avatar\";\n\nexport { Button, buttonVariants, type ButtonProps } from \"./button\";\n\nexport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\";\n\nexport { TooltipIconButton } from \"./tooltip-icon-button\";\n\nexport { CircleStopIcon } from \"./CircleStopIcon\";\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,QAAQ,sBAAwC;AAEzD,SAAS,SAAS,gBAAgB,sBAAsB;AAExD,SAAS,yBAAyB;AAElC,SAAS,sBAAsB;","names":[]}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ButtonProps } from "./button";
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export declare namespace TooltipIconButton {
|
|
3
|
+
type Props = ButtonProps & {
|
|
4
|
+
tooltip: string;
|
|
5
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
6
|
+
};
|
|
7
|
+
}
|
|
6
8
|
export declare const TooltipIconButton: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
|
7
9
|
ref?: ((instance: HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLButtonElement> | null | undefined;
|
|
8
10
|
} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip-icon-button.d.ts","sourceRoot":"","sources":["../../../src/ui/base/tooltip-icon-button.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAU,WAAW,EAAE,MAAM,UAAU,CAAC;AAE/C,
|
|
1
|
+
{"version":3,"file":"tooltip-icon-button.d.ts","sourceRoot":"","sources":["../../../src/ui/base/tooltip-icon-button.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAU,WAAW,EAAE,MAAM,UAAU,CAAC;AAE/C,yBAAiB,iBAAiB,CAAC;IACjC,KAAY,KAAK,GAAG,WAAW,GAAG;QAChC,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;KAC5C,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB;;;;;;;;aALjB,MAAM;WACR,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO;qDAmB5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ui/base/tooltip-icon-button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef } from \"react\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\";\nimport { Button, ButtonProps } from \"./button\";\n\nexport type
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/base/tooltip-icon-button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef } from \"react\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\";\nimport { Button, ButtonProps } from \"./button\";\n\nexport namespace TooltipIconButton {\n export type Props = ButtonProps & {\n tooltip: string;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n };\n}\n\nexport const TooltipIconButton = forwardRef<\n HTMLButtonElement,\n TooltipIconButton.Props\n>(({ children, tooltip, side = \"bottom\", ...rest }, ref) => {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" {...rest} ref={ref}>\n {children}\n <span className=\"aui-sr-only\">{tooltip}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent side={side}>{tooltip}</TooltipContent>\n </Tooltip>\n );\n});\n\nTooltipIconButton.displayName = \"TooltipIconButton\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA2B;AAC3B,qBAAwD;AACxD,oBAAoC;AAgB5B;AAPD,IAAM,wBAAoB,yBAG/B,CAAC,EAAE,UAAU,SAAS,OAAO,UAAU,GAAG,KAAK,GAAG,QAAQ;AAC1D,SACE,6CAAC,0BACC;AAAA,gDAAC,iCAAe,SAAO,MACrB,uDAAC,wBAAO,SAAQ,SAAQ,MAAK,QAAQ,GAAG,MAAM,KAC3C;AAAA;AAAA,MACD,4CAAC,UAAK,WAAU,eAAe,mBAAQ;AAAA,OACzC,GACF;AAAA,IACA,4CAAC,iCAAe,MAAa,mBAAQ;AAAA,KACvC;AAEJ,CAAC;AAED,kBAAkB,cAAc;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ui/base/tooltip-icon-button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef } from \"react\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\";\nimport { Button, ButtonProps } from \"./button\";\n\nexport type
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/base/tooltip-icon-button.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef } from \"react\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"./tooltip\";\nimport { Button, ButtonProps } from \"./button\";\n\nexport namespace TooltipIconButton {\n export type Props = ButtonProps & {\n tooltip: string;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n };\n}\n\nexport const TooltipIconButton = forwardRef<\n HTMLButtonElement,\n TooltipIconButton.Props\n>(({ children, tooltip, side = \"bottom\", ...rest }, ref) => {\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" {...rest} ref={ref}>\n {children}\n <span className=\"aui-sr-only\">{tooltip}</span>\n </Button>\n </TooltipTrigger>\n <TooltipContent side={side}>{tooltip}</TooltipContent>\n </Tooltip>\n );\n});\n\nTooltipIconButton.displayName = \"TooltipIconButton\";\n"],"mappings":";;;AAEA,SAAS,kBAAkB;AAC3B,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,SAAS,cAA2B;AAgB5B,SAEE,KAFF;AAPD,IAAM,oBAAoB,WAG/B,CAAC,EAAE,UAAU,SAAS,OAAO,UAAU,GAAG,KAAK,GAAG,QAAQ;AAC1D,SACE,qBAAC,WACC;AAAA,wBAAC,kBAAe,SAAO,MACrB,+BAAC,UAAO,SAAQ,SAAQ,MAAK,QAAQ,GAAG,MAAM,KAC3C;AAAA;AAAA,MACD,oBAAC,UAAK,WAAU,eAAe,mBAAQ;AAAA,OACzC,GACF;AAAA,IACA,oBAAC,kBAAe,MAAa,mBAAQ;AAAA,KACvC;AAEJ,CAAC;AAED,kBAAkB,cAAc;","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FC } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { TooltipIconButton } from "./base/tooltip-icon-button";
|
|
3
3
|
declare const BranchPicker: FC;
|
|
4
4
|
declare const exports: {
|
|
5
5
|
Root: import("react").ForwardRefExoticComponent<Partial<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
@@ -9,8 +9,8 @@ declare const exports: {
|
|
|
9
9
|
}, "ref"> & {
|
|
10
10
|
hideWhenSingleBranch?: boolean | undefined;
|
|
11
11
|
} & import("react").RefAttributes<HTMLDivElement>, "ref">> & import("react").RefAttributes<HTMLDivElement>>;
|
|
12
|
-
Previous: import("react").ForwardRefExoticComponent<Partial<
|
|
13
|
-
Next: import("react").ForwardRefExoticComponent<Partial<
|
|
12
|
+
Previous: import("react").ForwardRefExoticComponent<Partial<TooltipIconButton.Props> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
13
|
+
Next: import("react").ForwardRefExoticComponent<Partial<TooltipIconButton.Props> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
14
14
|
};
|
|
15
15
|
declare const _default: typeof BranchPicker & typeof exports;
|
|
16
16
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-picker.d.ts","sourceRoot":"","sources":["../../src/ui/branch-picker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAwC,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,
|
|
1
|
+
{"version":3,"file":"branch-picker.d.ts","sourceRoot":"","sources":["../../src/ui/branch-picker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAwC,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAY/D,QAAA,MAAM,YAAY,EAAE,EAUnB,CAAC;AAkFF,QAAA,MAAM,OAAO;;;;;;;;;;CAIZ,CAAC;wBAEqD,OAAO,YAAY,GACxE,OAAO,OAAO;AADhB,wBACiB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/branch-picker.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/ui/branch-picker.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentPropsWithoutRef, forwardRef, type FC } from \"react\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport { TooltipIconButton } from \"./base/tooltip-icon-button\";\nimport { withDefaults } from \"./utils/withDefaults\";\nimport { useThreadConfig } from \"./thread-config\";\nimport { BranchPickerPrimitive } from \"../primitives\";\nimport { useThread } from \"../context\";\n\nconst useAllowBranchPicker = (ensureCapability = false) => {\n const { branchPicker: { allowBranchPicker = true } = {} } = useThreadConfig();\n const branchPickerSupported = useThread((t) => t.capabilities.edit);\n return allowBranchPicker && (!ensureCapability || branchPickerSupported);\n};\n\nconst BranchPicker: FC = () => {\n const allowBranchPicker = useAllowBranchPicker(true);\n if (!allowBranchPicker) return null;\n return (\n <BranchPickerRoot hideWhenSingleBranch>\n <BranchPickerPrevious />\n <BranchPickerState />\n <BranchPickerNext />\n </BranchPickerRoot>\n );\n};\n\nBranchPicker.displayName = \"BranchPicker\";\n\nconst BranchPickerRoot = withDefaults(BranchPickerPrimitive.Root, {\n className: \"aui-branch-picker-root\",\n});\n\nBranchPickerRoot.displayName = \"BranchPickerRoot\";\n\nnamespace BranchPickerPrevious {\n export type Element = BranchPickerPrimitive.Previous.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst BranchPickerPrevious = forwardRef<\n BranchPickerPrevious.Element,\n BranchPickerPrevious.Props\n>((props, ref) => {\n const {\n strings: {\n branchPicker: { previous: { tooltip = \"Previous\" } = {} } = {},\n } = {},\n } = useThreadConfig();\n const allowBranchPicker = useAllowBranchPicker();\n return (\n <BranchPickerPrimitive.Previous disabled={!allowBranchPicker} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ChevronLeftIcon />}\n </TooltipIconButton>\n </BranchPickerPrimitive.Previous>\n );\n});\n\nBranchPickerPrevious.displayName = \"BranchPickerPrevious\";\n\nconst BranchPickerStateWrapper = withDefaults(\"span\", {\n className: \"aui-branch-picker-state\",\n});\n\nnamespace BranchPickerState {\n export type Element = HTMLSpanElement;\n export type Props = ComponentPropsWithoutRef<\"span\">;\n}\n\nconst BranchPickerState = forwardRef<\n BranchPickerState.Element,\n BranchPickerState.Props\n>((props, ref) => {\n return (\n <BranchPickerStateWrapper {...props} ref={ref}>\n <BranchPickerPrimitive.Number /> / <BranchPickerPrimitive.Count />\n </BranchPickerStateWrapper>\n );\n});\n\nBranchPickerState.displayName = \"BranchPickerState\";\n\nnamespace BranchPickerNext {\n export type Element = BranchPickerPrimitive.Next.Element;\n export type Props = Partial<TooltipIconButton.Props>;\n}\n\nconst BranchPickerNext = forwardRef<\n BranchPickerNext.Element,\n BranchPickerNext.Props\n>((props, ref) => {\n const {\n strings: { branchPicker: { next: { tooltip = \"Next\" } = {} } = {} } = {},\n } = useThreadConfig();\n const allowBranchPicker = useAllowBranchPicker();\n return (\n <BranchPickerPrimitive.Next disabled={!allowBranchPicker} asChild>\n <TooltipIconButton tooltip={tooltip} {...props} ref={ref}>\n {props.children ?? <ChevronRightIcon />}\n </TooltipIconButton>\n </BranchPickerPrimitive.Next>\n );\n});\n\nBranchPickerNext.displayName = \"BranchPickerNext\";\n\nconst exports = {\n Root: BranchPickerRoot,\n Previous: BranchPickerPrevious,\n Next: BranchPickerNext,\n};\n\nexport default Object.assign(BranchPicker, exports) as typeof BranchPicker &\n typeof exports;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA8D;AAC9D,0BAAkD;AAElD,iCAAkC;AAClC,0BAA6B;AAC7B,2BAAgC;AAChC,wBAAsC;AACtC,qBAA0B;AAYtB;AAVJ,IAAM,uBAAuB,CAAC,mBAAmB,UAAU;AACzD,QAAM,EAAE,cAAc,EAAE,oBAAoB,KAAK,IAAI,CAAC,EAAE,QAAI,sCAAgB;AAC5E,QAAM,4BAAwB,0BAAU,CAAC,MAAM,EAAE,aAAa,IAAI;AAClE,SAAO,sBAAsB,CAAC,oBAAoB;AACpD;AAEA,IAAM,eAAmB,MAAM;AAC7B,QAAM,oBAAoB,qBAAqB,IAAI;AACnD,MAAI,CAAC,kBAAmB,QAAO;AAC/B,SACE,6CAAC,oBAAiB,sBAAoB,MACpC;AAAA,gDAAC,wBAAqB;AAAA,IACtB,4CAAC,qBAAkB;AAAA,IACnB,4CAAC,oBAAiB;AAAA,KACpB;AAEJ;AAEA,aAAa,cAAc;AAE3B,IAAM,uBAAmB,kCAAa,wCAAsB,MAAM;AAAA,EAChE,WAAW;AACb,CAAC;AAED,iBAAiB,cAAc;AAO/B,IAAM,2BAAuB,yBAG3B,CAAC,OAAO,QAAQ;AAChB,QAAM;AAAA,IACJ,SAAS;AAAA,MACP,cAAc,EAAE,UAAU,EAAE,UAAU,WAAW,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,IAC/D,IAAI,CAAC;AAAA,EACP,QAAI,sCAAgB;AACpB,QAAM,oBAAoB,qBAAqB;AAC/C,SACE,4CAAC,wCAAsB,UAAtB,EAA+B,UAAU,CAAC,mBAAmB,SAAO,MACnE,sDAAC,gDAAkB,SAAmB,GAAG,OAAO,KAC7C,gBAAM,YAAY,4CAAC,uCAAgB,GACtC,GACF;AAEJ,CAAC;AAED,qBAAqB,cAAc;AAEnC,IAAM,+BAA2B,kCAAa,QAAQ;AAAA,EACpD,WAAW;AACb,CAAC;AAOD,IAAM,wBAAoB,yBAGxB,CAAC,OAAO,QAAQ;AAChB,SACE,6CAAC,4BAA0B,GAAG,OAAO,KACnC;AAAA,gDAAC,wCAAsB,QAAtB,EAA6B;AAAA,IAAE;AAAA,IAAG,4CAAC,wCAAsB,OAAtB,EAA4B;AAAA,KAClE;AAEJ,CAAC;AAED,kBAAkB,cAAc;AAOhC,IAAM,uBAAmB,yBAGvB,CAAC,OAAO,QAAQ;AAChB,QAAM;AAAA,IACJ,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,OAAO,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,EACzE,QAAI,sCAAgB;AACpB,QAAM,oBAAoB,qBAAqB;AAC/C,SACE,4CAAC,wCAAsB,MAAtB,EAA2B,UAAU,CAAC,mBAAmB,SAAO,MAC/D,sDAAC,gDAAkB,SAAmB,GAAG,OAAO,KAC7C,gBAAM,YAAY,4CAAC,wCAAiB,GACvC,GACF;AAEJ,CAAC;AAED,iBAAiB,cAAc;AAE/B,IAAMA,WAAU;AAAA,EACd,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AACR;AAEA,IAAO,wBAAQ,OAAO,OAAO,cAAcA,QAAO;","names":["exports"]}
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
// src/ui/branch-picker.tsx
|
|
4
4
|
import { forwardRef } from "react";
|
|
5
5
|
import { ChevronLeftIcon, ChevronRightIcon } from "lucide-react";
|
|
6
|
-
import {
|
|
7
|
-
TooltipIconButton
|
|
8
|
-
} from "./base/tooltip-icon-button.mjs";
|
|
6
|
+
import { TooltipIconButton } from "./base/tooltip-icon-button.mjs";
|
|
9
7
|
import { withDefaults } from "./utils/withDefaults.mjs";
|
|
10
8
|
import { useThreadConfig } from "./thread-config.mjs";
|
|
11
9
|
import { BranchPickerPrimitive } from "../primitives/index.mjs";
|