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 ( -
-
+
+