diff --git a/.gitignore b/.gitignore
index b5d3accf7e5..dd631d5aca8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,4 @@ npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
+.gstack/
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 00000000000..2381d777955
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,7 @@
+# AGENTS.md
+
+## Validation
+
+- Never validate changes in this repo by running the full build.
+- The build is intentionally considered too expensive and inefficient for routine validation.
+- Prefer targeted verification instead, such as reviewing the changed files, running narrow checks relevant to the edit, or using lightweight local validation where available.
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 97a80f0d4e2..0b026a95575 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -155,7 +155,7 @@ const config: Config = {
metadata: [
{
name: "theme-color",
- content: "#242526",
+ content: "#171616",
media: "(prefers-color-scheme: dark)",
}, // matches docusaurus theme rather than unraid specific color
{
diff --git a/i18n/de/docusaurus-theme-classic/footer.json b/i18n/de/docusaurus-theme-classic/footer.json
index 977bf61f20d..cd4c71b21e4 100644
--- a/i18n/de/docusaurus-theme-classic/footer.json
+++ b/i18n/de/docusaurus-theme-classic/footer.json
@@ -52,7 +52,7 @@
"description": "The label of footer link with label=CC BY-SA 4.0 linking to https://creativecommons.org/licenses/by-sa/4.0/"
},
"copyright": {
- "message": "Urheberrecht © 2005-2025 Lime Technology, Inc.
Unraid® ist ein eingetragenes Warenzeichen von Lime Technology, Inc.",
+ "message": "Urheberrecht © 2005-{currentYear} Lime Technology, Inc.
Unraid® ist ein eingetragenes Warenzeichen von Lime Technology, Inc.",
"description": "The footer copyright"
},
"logo.alt": {
diff --git a/i18n/en/docusaurus-theme-classic/footer.json b/i18n/en/docusaurus-theme-classic/footer.json
index b117eb32d1a..7a0b28dcc8c 100644
--- a/i18n/en/docusaurus-theme-classic/footer.json
+++ b/i18n/en/docusaurus-theme-classic/footer.json
@@ -52,7 +52,7 @@
"description": "The label of footer link with label=CC BY-SA 4.0 linking to https://creativecommons.org/licenses/by-sa/4.0/"
},
"copyright": {
- "message": "Copyright © 2005-2025 Lime Technology, Inc.
Unraid® is a registered trademark of Lime Technology, Inc.",
+ "message": "Copyright © 2005-{currentYear} Lime Technology, Inc.
Unraid® is a registered trademark of Lime Technology, Inc.",
"description": "The footer copyright"
},
"logo.alt": {
diff --git a/i18n/es/docusaurus-theme-classic/footer.json b/i18n/es/docusaurus-theme-classic/footer.json
index f62676c3928..c7d0ad49450 100644
--- a/i18n/es/docusaurus-theme-classic/footer.json
+++ b/i18n/es/docusaurus-theme-classic/footer.json
@@ -52,7 +52,7 @@
"description": "The label of footer link with label=CC BY-SA 4.0 linking to https://creativecommons.org/licenses/by-sa/4.0/"
},
"copyright": {
- "message": "Copyright © 2005-2025 Lime Technology, Inc.
Unraid® es una marca registrada de Lime Technology, Inc.",
+ "message": "Copyright © 2005-{currentYear} Lime Technology, Inc.
Unraid® es una marca registrada de Lime Technology, Inc.",
"description": "The footer copyright"
},
"logo.alt": {
diff --git a/i18n/fr/docusaurus-theme-classic/footer.json b/i18n/fr/docusaurus-theme-classic/footer.json
index c6d226111ef..c6fd86a0d8c 100644
--- a/i18n/fr/docusaurus-theme-classic/footer.json
+++ b/i18n/fr/docusaurus-theme-classic/footer.json
@@ -52,7 +52,7 @@
"description": "The label of footer link with label=CC BY-SA 4.0 linking to https://creativecommons.org/licenses/by-sa/4.0/"
},
"copyright": {
- "message": "Droits d'auteur © 2005-2025 Lime Technology, Inc.
Unraid® est une marque déposée de Lime Technology, Inc.",
+ "message": "Droits d'auteur © 2005-{currentYear} Lime Technology, Inc.
Unraid® est une marque déposée de Lime Technology, Inc.",
"description": "The footer copyright"
},
"logo.alt": {
diff --git a/i18n/zh/docusaurus-theme-classic/footer.json b/i18n/zh/docusaurus-theme-classic/footer.json
index 91032e0aa5d..521024fb759 100644
--- a/i18n/zh/docusaurus-theme-classic/footer.json
+++ b/i18n/zh/docusaurus-theme-classic/footer.json
@@ -52,7 +52,7 @@
"description": "The label of footer link with label=CC BY-SA 4.0 linking to https://creativecommons.org/licenses/by-sa/4.0/"
},
"copyright": {
- "message": "版权所有 © 2005-2025 Lime Technology, Inc.
Unraid® 是 Lime Technology, Inc. 的注册商标。",
+ "message": "版权所有 © 2005-{currentYear} Lime Technology, Inc.
Unraid® 是 Lime Technology, Inc. 的注册商标。",
"description": "The footer copyright"
},
"logo.alt": {
diff --git a/package.json b/package.json
index 4e59b5d49a7..f28dc173a84 100644
--- a/package.json
+++ b/package.json
@@ -35,6 +35,7 @@
"@fontsource-variable/atkinson-hyperlegible-next": "^5.2.6",
"@mdx-js/react": "^3.1.1",
"@renatonagliati/remark-auto-glossary": "github:renatonagliati/remark-auto-glossary",
+ "@tabler/icons-react": "^3.40.0",
"clsx": "^2.1.1",
"docusaurus-plugin-image-zoom": "^3.0.1",
"prism-react-renderer": "^2.4.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f8cc7d14e2f..384b854a001 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -35,6 +35,9 @@ importers:
'@renatonagliati/remark-auto-glossary':
specifier: github:renatonagliati/remark-auto-glossary
version: https://codeload.github.com/renatonagliati/remark-auto-glossary/tar.gz/b99c75f38d194dd08285a96942cd69513ac24623(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ '@tabler/icons-react':
+ specifier: ^3.40.0
+ version: 3.40.0(react@19.2.4)
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -2018,6 +2021,14 @@ packages:
resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
engines: {node: '>=14.16'}
+ '@tabler/icons-react@3.40.0':
+ resolution: {integrity: sha512-oO5+6QCnna4a//mYubx4euZfECtzQZFDGsDMIdzZUhbdyBCT+3bRVFBPueGIcemWld4Vb/0UQ39C/cmGfGylAg==}
+ peerDependencies:
+ react: '>= 16'
+
+ '@tabler/icons@3.40.0':
+ resolution: {integrity: sha512-V/Q4VgNPKubRTiLdmWjV/zscYcj5IIk+euicUtaVVqF6luSC9rDngYWgST5/yh3Mrg/mYUwRv1YVTk71Jp0twQ==}
+
'@tsconfig/docusaurus@2.0.9':
resolution: {integrity: sha512-0jVxZCgy2v7TnJrW9kVNikNwJHeiWb68Zhiiw2vHw4tzBFSP5vS2zn3O5EY2oPEVz5dXZRkK7MnWG3Ay5q0mIg==}
@@ -9285,6 +9296,13 @@ snapshots:
dependencies:
defer-to-connect: 2.0.1
+ '@tabler/icons-react@3.40.0(react@19.2.4)':
+ dependencies:
+ '@tabler/icons': 3.40.0
+ react: 19.2.4
+
+ '@tabler/icons@3.40.0': {}
+
'@tsconfig/docusaurus@2.0.9': {}
'@tybys/wasm-util@0.10.1':
diff --git a/src/components/ResponsiveEmbed/index.tsx b/src/components/ResponsiveEmbed/index.tsx
index 393bdd910ad..7d7b8b1148f 100644
--- a/src/components/ResponsiveEmbed/index.tsx
+++ b/src/components/ResponsiveEmbed/index.tsx
@@ -7,6 +7,10 @@ type ResponsiveEmbedProps = {
aspectRatio?: `${number}/${number}` | `${number} / ${number}`;
allow?: string;
referrerPolicy?: HTMLIFrameElement["referrerPolicy"];
+ disableMargin?: boolean;
+ embedClassName?: string;
+ frameClassName?: string;
+ iframeClassName?: string;
};
export default function ResponsiveEmbed({
@@ -15,17 +19,27 @@ export default function ResponsiveEmbed({
aspectRatio = "16 / 9",
allow = "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
referrerPolicy = "strict-origin-when-cross-origin",
+ disableMargin = false,
+ embedClassName,
+ frameClassName,
+ iframeClassName,
}: ResponsiveEmbedProps) {
const frameStyle = {
aspectRatio,
} satisfies CSSProperties;
+ const embedClasses = [disableMargin ? styles.embedNoMargin : styles.embed, embedClassName]
+ .filter(Boolean)
+ .join(" ");
+ const frameClasses = [styles.frame, frameClassName].filter(Boolean).join(" ");
+ const iframeClasses = [styles.iframe, iframeClassName].filter(Boolean).join(" ");
+
return (
-