Skip to content

Packages aktualisiert#568

Merged
dspangenberg merged 1 commit into
mainfrom
develop
Jul 4, 2026
Merged

Packages aktualisiert#568
dspangenberg merged 1 commit into
mainfrom
develop

Conversation

@dspangenberg

@dspangenberg dspangenberg commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Neue Schalter-Komponente für bessere Bedienung von Ein/Aus-Einstellungen.
    • ZUGFeRD-Einstellungen wurden um einen Aktivierungs-Schalter erweitert und das Formularlayout angepasst.
  • Verbesserungen

    • Formularbereiche können jetzt zusätzliche Beschreibungen direkt anzeigen.
    • Hinweise und Beschriftungen in den ZUGFeRD-Formularen wurden verständlicher gestaltet.
  • Bug Fixes

    • Die App bietet nun passendere Autovervollständigung für zusätzliche Konfigurations- und Routennamen.

@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Diese PR umfasst mehrere unabhängige Änderungen: Aktualisierung der PhpStorm-Meta- und IDE-Helper-Dateien, reine Whitespace-Neuformatierung diverser Sprachdateien (de/en), Anhebung von npm-Paketversionen sowie UI-Änderungen mit einer neuen Switch-Komponente, erweitertem FormGrid und angepasstem ZUGFeRD-Einstellungsformular.

Changes

IDE-Meta und Helper Updates

Layer / File(s) Summary
PhpStorm-Meta: Debugbar-Config-Keys und Routen
.phpstorm.meta.php
Neue Debugbar-Config-Keys (capture_streamed, streamed_content_types) werden in mehrere Mapping-Blöcke sowie in die configs-Argumentliste aufgenommen; zusätzliche App-Setting- und Buchhaltungs-Routen werden der routes-Argumentliste hinzugefügt.
IDE Helper: Laravel-Version und PHPDoc-Typen
_ide_helper.php
Der Versionskommentar wird von 13.17.0 auf 13.18.1 aktualisiert und mehrere PHPDoc-Rückgabetypen (all(), getRawListeners(), delayedJobs(), allDelayedJobs()) erhalten präzisere generische Typangaben.

Sprachdatei-Formatierung

Layer / File(s) Summary
Deutsche und englische Übersetzungen reformatiert
lang/de/auth.php, lang/de/http-statuses.php, lang/de/pagination.php, lang/de/passwords.php, lang/de/validation.php, lang/en/auth.php, lang/en/http-statuses.php, lang/en/pagination.php, lang/en/passwords.php, lang/en/validation.php
Whitespace/Ausrichtung der Array-Einträge wird vereinheitlicht; Schlüssel und Textinhalte bleiben unverändert.

Dependency-Updates

Layer / File(s) Summary
Paketversionen angehoben
package.json
devDependencies (biome, inertiajs/react, types/node, tailwindcss, vite) und dependencies (inertiajs/core, radix-ui, react-hooks-library, sentry/react, tailwindcss/vite, framer-motion, lucide-react, motion, nuqs) werden auf neuere Versionen aktualisiert.

UI-Komponenten: FormGrid, Switch und ZugferdSettingEdit

Layer / File(s) Summary
FormGrid: description-Prop und Styling
resources/js/Components/twc-ui/form-grid.tsx
Neue description-Property, angepasste Default-Werte und geänderte Titel-/Container-Klassen im JSX.
Neue Switch-Komponente
resources/js/Components/twc-ui/switch.tsx
Eine Switch-Komponente auf Basis von react-aria-components mit SwitchProps-Interface, tailwind-variants-Styling für Track/Handle und Render-Logik wird eingeführt.
ZugferdSettingEdit: Aktivierungs-Switch und ICD-Layout
resources/js/Pages/App/Setting/ZugferdSetting/ZugferdSettingEdit.tsx
Ein neuer Aktivierungs-Switch wird im Footer ergänzt, und der ICD-Abschnitt wird mit einer description-Property und angepasstem Grid-Layout umgebaut.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

Poem

Ein Hase hüpft durch Code und Zeilen,
formatiert Sprachen, lässt sie fein sein,
ein Switch erwacht, ein Schalter klein,
ZUGFeRD blinkt im neuen Schein.
🐇✨ Alles fein aufgereiht!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive Der Titel ist zwar thematisch passend, aber zu allgemein und nennt nicht die wesentlichen Änderungen wie UI-Anpassungen und neue Komponenten. Präzisiere den Titel auf den Hauptumfang, z. B. neue UI-Komponente und ZUGFeRD-Formularanpassungen sowie Dependency-Updates.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 PHPStan (2.2.2)

PHPStan was skipped because the config uses disallowed bootstrapFiles, bootstrapFile, or includes directives.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@resources/js/Components/twc-ui/form-grid.tsx`:
- Around line 50-53: The divider styling in the `twc-ui/form-grid` component
uses `border/50`, which is not a valid Tailwind border color opacity usage for
this case. Update the conditional class logic in the `cn(...)` call inside the
form grid component so the top border uses a real border color utility with
opacity, such as a `border-t` variant paired with `border-border/50` or
`border-t-border/50`, while keeping the existing layout classes intact.

In `@resources/js/Pages/App/Setting/ZugferdSetting/ZugferdSettingEdit.tsx`:
- Around line 63-77: The ZUGFeRD Switch is only using an initial default state,
so changes are not bound to the form data and won’t be saved; update the Switch
in ZugferdSettingEdit to use the form’s boolean field for is_enabled instead of
defaultSelected. Wire it the same way as the other inputs in this component,
either through the form binding helpers such as
form.registerCheckbox('is_enabled') or by controlling it with
isSelected/onChange, so the switch stays in sync with the submitted form state.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 1af3f2e4-ce3e-4290-bc16-0b938a5c4b2f

📥 Commits

Reviewing files that changed from the base of the PR and between c130acf and a2ea596.

⛔ Files ignored due to path filters (2)
  • composer.lock is excluded by !**/*.lock
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (16)
  • .phpstorm.meta.php
  • _ide_helper.php
  • lang/de/auth.php
  • lang/de/http-statuses.php
  • lang/de/pagination.php
  • lang/de/passwords.php
  • lang/de/validation.php
  • lang/en/auth.php
  • lang/en/http-statuses.php
  • lang/en/pagination.php
  • lang/en/passwords.php
  • lang/en/validation.php
  • package.json
  • resources/js/Components/twc-ui/form-grid.tsx
  • resources/js/Components/twc-ui/switch.tsx
  • resources/js/Pages/App/Setting/ZugferdSetting/ZugferdSettingEdit.tsx

Comment on lines 50 to +53
<div
className={cn(
'mb-1 flex-1 px-4 last:mb-3',
border ? 'mx-0 border-accent border-t pt-4' : '',
'flex-1 px-4 pt-4 last:mb-3',
border ? 'border/50 mx-0 mt-4 mb-4 border-t' : '',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

Does Tailwind CSS v4 support an opacity modifier like border/50 on the bare border width utility, or only on color utilities?

💡 Result:

In Tailwind CSS v4, the opacity modifier syntax (e.g., /50) is designed specifically for color utilities, not width utilities [1][2]. Consequently, you cannot use an opacity modifier on the bare border width utility (e.g., border/50 is not a valid utility) [3]. The opacity modifier works by adjusting the alpha channel of a color using the CSS color-mix function [2][4]. Because border width utilities define the thickness of a border rather than its color, they do not support this modifier [3][5]. To control border opacity in Tailwind CSS v4, you apply the modifier to the border color utility instead [6][2]. For example, if you want a border with 50% opacity, you would use both a width utility and a color utility with the modifier:

...
In this example: - border sets the default border width [3]. - border-black/50 sets the border color to black with 50% opacity [1][2]. Standalone opacity utilities (like border-opacity-50 from v3) have been removed in v4 in favor of this integrated slash syntax [6][7][8].

Citations:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== File snippet =="
sed -n '1,120p' resources/js/Components/twc-ui/form-grid.tsx

echo
echo "== Tailwind/config files =="
git ls-files | rg '(^|/)(tailwind|postcss|vite|resources/js|resources/css).*(config|css|ts|js)$' || true

echo
echo "== Search for border/50 and related border color patterns =="
rg -n --hidden --glob '!node_modules' --glob '!dist' --glob '!build' 'border/50|border-t/50|border-[a-z0-9-]+/50|border-t\b|border\b' resources/js resources/css . --glob '!*.map' || true

echo
echo "== Search for Tailwind customizations mentioning border opacity =="
rg -n --hidden --glob '!node_modules' --glob '!dist' --glob '!build' 'borderOpacity|opacity.*border|border.*opacity|theme\(|tailwindcss' . --glob '!*.map' || true

Repository: dspangenberg/opsc

Length of output: 50374


border/50 durch eine echte Border-Farbklasse ersetzen.
Tailwind wertet border/50 hier nicht als sinnvollen Opacity-Modifier aus. Wenn nur der obere Trenner halbtransparent sein soll, passt z. B. border-t border-border/50 (oder border-t-border/50).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@resources/js/Components/twc-ui/form-grid.tsx` around lines 50 - 53, The
divider styling in the `twc-ui/form-grid` component uses `border/50`, which is
not a valid Tailwind border color opacity usage for this case. Update the
conditional class logic in the `cn(...)` call inside the form grid component so
the top border uses a real border color utility with opacity, such as a
`border-t` variant paired with `border-border/50` or `border-t-border/50`, while
keeping the existing layout classes intact.

Comment on lines +63 to +77
<div className="flex-none">
<Switch
id="enabled"
defaultSelected={settings.is_enabled as boolean}
isDisabled={
!(
form.data.seller_contact_id ||
form.data.seller_contact_person_id ||
form.data.seller_contact_address_id
) as boolean
}
>
ZUGFeRD aktivieren
</Switch>
</div>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Suche nach der useForm-Implementierung, um register/setData API für boolesche Felder zu prüfen
fd -e ts -e tsx 'form' resources/js/Components/twc-ui --exec grep -l 'useForm' {} \;

Repository: dspangenberg/opsc

Length of output: 921


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== form.tsx outline =="
ast-grep outline resources/js/Components/twc-ui/form.tsx --view expanded || true

echo
echo "== target file outline =="
ast-grep outline resources/js/Pages/App/Setting/ZugferdSetting/ZugferdSettingEdit.tsx --view expanded || true

echo
echo "== relevant excerpts from form.tsx =="
grep -nE 'useForm|register|setData|defaultSelected|isSelected|onChange|Switch|checkbox|boolean' -n resources/js/Components/twc-ui/form.tsx || true

echo
echo "== relevant excerpts from target file =="
grep -nE 'Switch|register\(|setData\(|is_enabled|seller_contact' resources/js/Pages/App/Setting/ZugferdSetting/ZugferdSettingEdit.tsx || true

echo
echo "== nearby target lines =="
sed -n '50,90p' resources/js/Pages/App/Setting/ZugferdSetting/ZugferdSettingEdit.tsx

Repository: dspangenberg/opsc

Length of output: 4841


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== switch component outline =="
ast-grep outline resources/js/Components/twc-ui/switch.tsx --view expanded || true

echo
echo "== use-twc-ui-form references =="
ast-grep outline resources/js/Hooks/use-twc-ui-form.ts --view expanded || true

echo
echo "== switch.tsx excerpt =="
cat -n resources/js/Components/twc-ui/switch.tsx | sed -n '1,220p'

echo
echo "== use-twc-ui-form.ts excerpt =="
cat -n resources/js/Hooks/use-twc-ui-form.ts | sed -n '1,260p'

Repository: dspangenberg/opsc

Length of output: 13414


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== target file: initialization and submit =="
grep -nE 'useForm\(|form\.post|form\.put|form\.patch|form\.submit|is_enabled|setData|registerCheckbox|onSubmit|<Form ' resources/js/Pages/App/Setting/ZugferdSetting/ZugferdSettingEdit.tsx || true

echo
echo "== broader context around initialization =="
sed -n '1,70p' resources/js/Pages/App/Setting/ZugferdSetting/ZugferdSettingEdit.tsx

echo
echo "== form component submission behavior =="
grep -nE 'onSubmit|form\.data|request|transform|submit|handleSubmit|setData' resources/js/Components/twc-ui/form.tsx || true
sed -n '70,160p' resources/js/Components/twc-ui/form.tsx

Repository: dspangenberg/opsc

Length of output: 5881


Switch an form.data.is_enabled binden
defaultSelected macht den Schalter nur initial sichtbar; ohne isSelected/onChange oder form.registerCheckbox('is_enabled') bleibt die Änderung außerhalb des Formularzustands und wird nicht mitgespeichert. Hier sollte die boolesche Feldbindung wie bei den anderen Eingaben verwendet werden.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@resources/js/Pages/App/Setting/ZugferdSetting/ZugferdSettingEdit.tsx` around
lines 63 - 77, The ZUGFeRD Switch is only using an initial default state, so
changes are not bound to the form data and won’t be saved; update the Switch in
ZugferdSettingEdit to use the form’s boolean field for is_enabled instead of
defaultSelected. Wire it the same way as the other inputs in this component,
either through the form binding helpers such as
form.registerCheckbox('is_enabled') or by controlling it with
isSelected/onChange, so the switch stays in sync with the submitted form state.

@dspangenberg dspangenberg merged commit f955c9a into main Jul 4, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant