mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-16 19:33:11 +02:00
UI ux/add ai warning and change style (#6633)
<img width="394" height="426" alt="Screenshot 2026-06-11 at 11 39 50 PM" src="https://github.com/user-attachments/assets/15805931-73fd-416b-841b-99a556468433" /> bottom text input is sticky even when shrunk down
This commit is contained in:
@@ -2730,8 +2730,6 @@ mergeMany = "Merge these {{count}} documents into 1"
|
|||||||
moreFiles = "+{{count}} more"
|
moreFiles = "+{{count}} more"
|
||||||
openFromComputer = "Open from computer"
|
openFromComputer = "Open from computer"
|
||||||
removeFile = "Remove {{name}}"
|
removeFile = "Remove {{name}}"
|
||||||
rotateMany = "Rotate these documents"
|
|
||||||
rotateOne = "Rotate this document"
|
|
||||||
splitOne = "Split this document"
|
splitOne = "Split this document"
|
||||||
|
|
||||||
[chat.responses]
|
[chat.responses]
|
||||||
@@ -5861,10 +5859,6 @@ subscribeToPro = "Subscribe to Pro"
|
|||||||
deleteConfirmBody = "This removes the policy and its workflow. Documents already processed are not affected."
|
deleteConfirmBody = "This removes the policy and its workflow. Documents already processed are not affected."
|
||||||
deleteConfirmTitle = "Delete {{label}} policy?"
|
deleteConfirmTitle = "Delete {{label}} policy?"
|
||||||
|
|
||||||
[policies]
|
|
||||||
deleteConfirmBody = "This removes the policy and its workflow. Documents already processed are not affected."
|
|
||||||
deleteConfirmTitle = "Delete {{label}} policy?"
|
|
||||||
|
|
||||||
[policies.catalog]
|
[policies.catalog]
|
||||||
compliance = "Compliance"
|
compliance = "Compliance"
|
||||||
ingestion = "Ingestion"
|
ingestion = "Ingestion"
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
.chat-panel {
|
.chat-panel {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
/* Clip + allow shrink so tall welcome content squeezes the scrollable
|
||||||
|
quick-actions block instead of pushing the composer off-screen. */
|
||||||
|
overflow: hidden;
|
||||||
|
min-height: 0;
|
||||||
/* Match the right-rail toolbar background so dark-mode doesn't show a
|
/* Match the right-rail toolbar background so dark-mode doesn't show a
|
||||||
lighter card behind the chat, and so the agent-card → pill morph
|
lighter card behind the chat, and so the agent-card → pill morph
|
||||||
doesn't flash a different colour mid-transition. */
|
doesn't flash a different colour mid-transition. */
|
||||||
@@ -183,7 +187,12 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 0.5rem;
|
gap: 0.5rem;
|
||||||
padding: 0.75rem 0.75rem 0.25rem;
|
padding: 0.75rem 0.75rem 0.25rem;
|
||||||
flex-shrink: 0;
|
/* When the panel is short, this block (file pills + actions) shrinks and
|
||||||
|
scrolls internally instead of pushing the composer off-screen — the input
|
||||||
|
must always stay pinned and visible at the bottom. */
|
||||||
|
flex-shrink: 1;
|
||||||
|
min-height: 0;
|
||||||
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat-panel__quick-actions-label {
|
.chat-panel__quick-actions-label {
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import InsertDriveFileIcon from "@mui/icons-material/InsertDriveFileOutlined";
|
|||||||
import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown";
|
import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown";
|
||||||
import LayersIcon from "@mui/icons-material/Layers";
|
import LayersIcon from "@mui/icons-material/Layers";
|
||||||
import PictureAsPdfIcon from "@mui/icons-material/PictureAsPdf";
|
import PictureAsPdfIcon from "@mui/icons-material/PictureAsPdf";
|
||||||
import RotateRightIcon from "@mui/icons-material/RotateRight";
|
|
||||||
import UploadFileIcon from "@mui/icons-material/UploadFile";
|
import UploadFileIcon from "@mui/icons-material/UploadFile";
|
||||||
import { useAllFiles, useFileActions } from "@app/contexts/FileContext";
|
import { useAllFiles, useFileActions } from "@app/contexts/FileContext";
|
||||||
import { useFilesModalContext } from "@app/contexts/FilesModalContext";
|
import { useFilesModalContext } from "@app/contexts/FilesModalContext";
|
||||||
@@ -205,22 +204,12 @@ export function ChatQuickActions({ heading, onAction }: ChatQuickActionsProps) {
|
|||||||
"chat.quickActions.compressOne",
|
"chat.quickActions.compressOne",
|
||||||
"Compress this document",
|
"Compress this document",
|
||||||
);
|
);
|
||||||
const rotateText = t(
|
|
||||||
"chat.quickActions.rotateOne",
|
|
||||||
"Rotate this document",
|
|
||||||
);
|
|
||||||
result.push({
|
result.push({
|
||||||
key: "compress",
|
key: "compress",
|
||||||
icon: <CompressIcon sx={{ fontSize: 18 }} />,
|
icon: <CompressIcon sx={{ fontSize: 18 }} />,
|
||||||
title: compressText,
|
title: compressText,
|
||||||
onClick: send(compressText),
|
onClick: send(compressText),
|
||||||
});
|
});
|
||||||
result.push({
|
|
||||||
key: "rotate",
|
|
||||||
icon: <RotateRightIcon sx={{ fontSize: 18 }} />,
|
|
||||||
title: rotateText,
|
|
||||||
onClick: send(rotateText),
|
|
||||||
});
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -246,10 +235,6 @@ export function ChatQuickActions({ heading, onAction }: ChatQuickActionsProps) {
|
|||||||
"chat.quickActions.compressMany",
|
"chat.quickActions.compressMany",
|
||||||
"Compress these documents",
|
"Compress these documents",
|
||||||
);
|
);
|
||||||
const rotateText = t(
|
|
||||||
"chat.quickActions.rotateMany",
|
|
||||||
"Rotate these documents",
|
|
||||||
);
|
|
||||||
result.push({
|
result.push({
|
||||||
key: "merge",
|
key: "merge",
|
||||||
icon: <LayersIcon sx={{ fontSize: 18 }} />,
|
icon: <LayersIcon sx={{ fontSize: 18 }} />,
|
||||||
@@ -262,12 +247,6 @@ export function ChatQuickActions({ heading, onAction }: ChatQuickActionsProps) {
|
|||||||
title: compressText,
|
title: compressText,
|
||||||
onClick: send(compressText),
|
onClick: send(compressText),
|
||||||
});
|
});
|
||||||
result.push({
|
|
||||||
key: "rotate",
|
|
||||||
icon: <RotateRightIcon sx={{ fontSize: 18 }} />,
|
|
||||||
title: rotateText,
|
|
||||||
onClick: send(rotateText),
|
|
||||||
});
|
|
||||||
return result;
|
return result;
|
||||||
}, [summary, t, onAction, openFilesModal]);
|
}, [summary, t, onAction, openFilesModal]);
|
||||||
|
|
||||||
|
|||||||
@@ -130,7 +130,10 @@ export function PoliciesSection({
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
className="pol-info-btn"
|
className="pol-info-btn"
|
||||||
aria-label={t("policies.sidebar.infoAriaLabel", "What is a policy?")}
|
aria-label={t(
|
||||||
|
"policies.sidebar.infoAriaLabel",
|
||||||
|
"What is a policy?",
|
||||||
|
)}
|
||||||
>
|
>
|
||||||
<LocalIcon
|
<LocalIcon
|
||||||
icon="info-outline-rounded"
|
icon="info-outline-rounded"
|
||||||
|
|||||||
@@ -694,9 +694,7 @@ export function PolicySetupWizard({
|
|||||||
|
|
||||||
<div className="pol-footer">
|
<div className="pol-footer">
|
||||||
<Button variant="ghost" size="sm" onClick={back}>
|
<Button variant="ghost" size="sm" onClick={back}>
|
||||||
{step > 1
|
{step > 1 ? t("policies.wizard.back", "Back") : t("cancel", "Cancel")}
|
||||||
? t("policies.wizard.back", "Back")
|
|
||||||
: t("cancel", "Cancel")}
|
|
||||||
</Button>
|
</Button>
|
||||||
{step < TOTAL_STEPS ? (
|
{step < TOTAL_STEPS ? (
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@@ -108,9 +108,13 @@ export function PolicyToolConfig({
|
|||||||
checked={tool.enabled}
|
checked={tool.enabled}
|
||||||
disabled={!editable}
|
disabled={!editable}
|
||||||
onChange={(checked) => patchTool(index, { enabled: checked })}
|
onChange={(checked) => patchTool(index, { enabled: checked })}
|
||||||
aria-label={t("policies.toolConfig.enableAriaLabel", "Enable {{tool}}", {
|
aria-label={t(
|
||||||
|
"policies.toolConfig.enableAriaLabel",
|
||||||
|
"Enable {{tool}}",
|
||||||
|
{
|
||||||
tool: toolName,
|
tool: toolName,
|
||||||
})}
|
},
|
||||||
|
)}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{tool.enabled &&
|
{tool.enabled &&
|
||||||
|
|||||||
Reference in New Issue
Block a user