Restructured the docs into categories and reskinned every example to a produce theme.#59
Conversation
📝 WalkthroughWalkthroughThe PR establishes canonical fruit-and-vegetable demo content, updates documentation and navigation, rewrites playground examples and fixtures, and synchronizes SVG rendering and recorded interaction scripts. ChangesDocumentation and demo-content guidance
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 11
🤖 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 @.claude/demo_content_reference.md:
- Around line 24-25: Keep the canonical demo vocabulary consistent by either
adding Melon to the Fruits list in demo_content_reference.md or changing the
password default at the referenced value to an existing fruit. Ensure the chosen
value remains consistent across the documentation, scripts, and screenshots.
In `@docs/content/panels.mdx`:
- Line 49: Update the calendar example using the harvest_on field to set its
default value to the canonical date 2026-07-15, while preserving the existing
standalone configuration and label.
In `@docs/content/widgets/text.mdx`:
- Around line 25-27: Update the text widget example around the complete callback
to avoid unguarded access to $answers['fruit']: either include the preceding
fruit field in the documented snippet or return an empty candidate list when
fruit is absent, while preserving the existing Gala candidate when it is
available.
In `@docs/util/render-widget-svgs.php`:
- Line 98: Update the default string in the textarea configuration within
Form::create to use a single-quoted multiline literal, preserving the existing
text and newline while following the project’s quoting convention.
In `@playground/0-minimal/run.php`:
- Line 11: Complete the fruit-and-vegetable reskin across all listed sites: in
playground/0-minimal/run.php:11-11, replace the Ada name with canonical
produce-themed demo data; in playground/1-scaffolder/run.php:45-45, rename the
build panel id to a produce-oriented identifier such as contents; in
playground/4-nested-panels/run.php:40-40, replace stack with a delivery-oriented
id; in playground/4-nested-panels/run.php:57-57, rename tuning to packaging; and
in playground/5-discovery/run.php:38-38, rename project to box. Remove any
remaining software or technology references from these PHP demo examples.
- Around line 28-31: Replace the closed string-literal option sets with backed
enums, preserving their existing string values and labels. Apply this to fruit
choices in playground/0-minimal/run.php lines 28-31 and
playground/0-quickstart/run.php lines 32-42; derive transforms and size,
contents, and delivery choices in playground/1-scaffolder/run.php lines 37-43
and 48-72; grade and extras in playground/10-builtin-themes/run.php lines 48-58;
ripeness states and select/search/toggle choices in
playground/3-widgets/widget-toggle.php lines 32-34 and
playground/3-widgets/widgets.php lines 39-76; delivery, add-ons, packaging, and
condition values in playground/4-nested-panels/run.php lines 34-61; and season
and basket choices in playground/5-discovery/run.php lines 42-46. Pass each
enum’s value only at builder configuration boundaries.
In `@playground/1-scaffolder/run.php`:
- Line 32: Replace the double-quoted description string in the scaffolder chain
around $p with a single-quoted string, preserving the embedded double quotes. In
playground/3-widgets/widgets.php lines 37-37, convert the affected multiline
string to a nowdoc or concatenate single-quoted lines with an interpreted
newline, as appropriate.
- Around line 73-74: Update the comment above the confirm field created by
confirm() to describe it as a confirmation rather than a yes/no toggle, keeping
the implementation unchanged.
In `@playground/10-builtin-themes/run.php`:
- Line 53: Update the builder call in the extras field from multiselect() to the
declared camelCase method multiSelect(), preserving its existing arguments and
configuration.
In `@playground/3-widgets/filepicker-tree/README.md`:
- Around line 3-5: Remove technology references from the demo prose: in
playground/3-widgets/filepicker-tree/README.md lines 3-5, describe produce price
lists and pantry stock without mentioning file-picker, *.csv, or pantry.yaml; in
playground/3-widgets/widget-filepicker.php line 9, replace “CSV” with
produce-focused wording while keeping the executable extension filter unchanged.
In `@playground/3-widgets/widget-textarea.php`:
- Line 34: Update the default string expression in the textarea call to use
single-quote syntax while preserving the embedded newline behavior, and leave
the externalEditor configuration unchanged.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: d95ec14d-40f4-47b7-872d-ef136efcdbc5
⛔ Files ignored due to path filters (291)
docs/assets/bordered-panels-dark-animated.svgis excluded by!**/*.svgdocs/assets/bordered-panels-light-animated.svgis excluded by!**/*.svgdocs/assets/borderless-panels-dark-animated.svgis excluded by!**/*.svgdocs/assets/borderless-panels-light-animated.svgis excluded by!**/*.svgdocs/assets/discovery-dark-static.svgis excluded by!**/*.svgdocs/assets/discovery-light-static.svgis excluded by!**/*.svgdocs/assets/nested-panels-dark-animated.svgis excluded by!**/*.svgdocs/assets/nested-panels-light-animated.svgis excluded by!**/*.svgdocs/assets/quickstart-dark-static.svgis excluded by!**/*.svgdocs/assets/quickstart-light-static.svgis excluded by!**/*.svgdocs/assets/scaffolder-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/scaffolder-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/scaffolder-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/scaffolder-dark-animated.svgis excluded by!**/*.svgdocs/assets/scaffolder-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/scaffolder-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/scaffolder-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/scaffolder-light-animated.svgis excluded by!**/*.svgdocs/assets/theme-dos.svgis excluded by!**/*.svgdocs/assets/theme-ember-light.svgis excluded by!**/*.svgdocs/assets/theme-ember.svgis excluded by!**/*.svgdocs/assets/theme-frost-light.svgis excluded by!**/*.svgdocs/assets/theme-frost.svgis excluded by!**/*.svgdocs/assets/theme-midnight-light.svgis excluded by!**/*.svgdocs/assets/theme-midnight.svgis excluded by!**/*.svgdocs/assets/theme-mono-light.svgis excluded by!**/*.svgdocs/assets/theme-mono.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-static.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-static.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-static.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-static.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-static.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-light-static.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-static.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-number-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-number-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-number-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-number-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-light-static.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-password-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-password-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-password-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-password-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-light-static.svgis excluded by!**/*.svgdocs/assets/widget-password-reveal-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-password-reveal-light-static.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-static.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-search-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-search-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-search-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-search-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-light-static.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-light-static.svgis excluded by!**/*.svgdocs/assets/widget-select-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-select-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-light-static.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-static.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-text-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-text-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-text-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-text-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-light-static.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-static.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-static.svgis excluded by!**/*.svgdocs/static/img/logo.svgis excluded by!**/*.svgplayground/3-widgets/filepicker-tree/baskets/apples.csvis excluded by!**/*.csvplayground/3-widgets/filepicker-tree/baskets/pears.csvis excluded by!**/*.csvplayground/3-widgets/filepicker-tree/deliveries/monday.logis excluded by!**/*.logplayground/3-widgets/filepicker-tree/harvest.csvis excluded by!**/*.csvplayground/5-discovery/sample/harvest.csvis excluded by!**/*.csv
📒 Files selected for processing (73)
.claude/demo_content_reference.mdAGENTS.mdREADME.mddocs/content/architecture.mdxdocs/content/configuration.mdxdocs/content/discovery.mdxdocs/content/field-behaviour.mdxdocs/content/index.mdxdocs/content/installation.mdxdocs/content/panels.mdxdocs/content/widgets/_category_.jsondocs/content/widgets/calendar.mdxdocs/content/widgets/confirm.mdxdocs/content/widgets/filepicker.mdxdocs/content/widgets/multifilepicker.mdxdocs/content/widgets/multisearch.mdxdocs/content/widgets/multiselect.mdxdocs/content/widgets/number.mdxdocs/content/widgets/option-groups.mdxdocs/content/widgets/password.mdxdocs/content/widgets/pause.mdxdocs/content/widgets/reorder.mdxdocs/content/widgets/search.mdxdocs/content/widgets/select.mdxdocs/content/widgets/suggest.mdxdocs/content/widgets/text.mdxdocs/content/widgets/textarea.mdxdocs/content/widgets/toggle.mdxdocs/docusaurus.config.jsdocs/sidebars.jsdocs/util/make-light-svgs.phpdocs/util/render-widget-svgs.phpdocs/util/update-assets.phpplayground/0-minimal/run.phpplayground/0-quickstart/run.phpplayground/1-scaffolder/run.phpplayground/10-builtin-themes/run.phpplayground/10-field-styles/run.phpplayground/3-widgets/filepicker-tree/README.mdplayground/3-widgets/filepicker-tree/composer.jsonplayground/3-widgets/filepicker-tree/config/app.ymlplayground/3-widgets/filepicker-tree/config/services.ymlplayground/3-widgets/filepicker-tree/pantry.yamlplayground/3-widgets/filepicker-tree/src/Kernel.phpplayground/3-widgets/show.phpplayground/3-widgets/widget-filepicker.phpplayground/3-widgets/widget-multisearch.phpplayground/3-widgets/widget-multiselect-groups.phpplayground/3-widgets/widget-multiselect.phpplayground/3-widgets/widget-number.phpplayground/3-widgets/widget-password-reveal.phpplayground/3-widgets/widget-password.phpplayground/3-widgets/widget-reorder.phpplayground/3-widgets/widget-search.phpplayground/3-widgets/widget-select-groups.phpplayground/3-widgets/widget-select.phpplayground/3-widgets/widget-suggest.phpplayground/3-widgets/widget-text.phpplayground/3-widgets/widget-textarea.phpplayground/3-widgets/widget-toggle.phpplayground/3-widgets/widgets.phpplayground/4-nested-panels/run.phpplayground/5-discovery/run.phpplayground/5-discovery/sample/.envplayground/5-discovery/sample/baskets/apples/.gitkeepplayground/5-discovery/sample/baskets/pears/.gitkeepplayground/5-discovery/sample/box.jsonplayground/5-discovery/sample/composer.jsonplayground/5-discovery/sample/docker-compose.ymlplayground/5-discovery/sample/modules/alpha/.gitkeepplayground/5-discovery/sample/modules/beta/.gitkeepplayground/7-theme-options/run.phpplayground/9-bordered-panels/run.php
💤 Files with no reviewable changes (9)
- playground/5-discovery/sample/modules/beta/.gitkeep
- playground/5-discovery/sample/modules/alpha/.gitkeep
- playground/3-widgets/filepicker-tree/config/services.yml
- playground/5-discovery/sample/composer.json
- docs/content/widgets/category.json
- playground/3-widgets/filepicker-tree/composer.json
- playground/3-widgets/filepicker-tree/src/Kernel.php
- playground/3-widgets/filepicker-tree/config/app.yml
- playground/5-discovery/sample/docker-compose.yml
…a produce theme. Grouped the top-level pages into sidebar categories; rebuilt every widget page with an options table, keyboard and display-mode sections; added a multi-widget quick start (playground/0-quickstart) with a generated screenshot; linked the dev-docs preview from the README; switched the docs navbar and favicon to the SVG logo. Reskinned every demo example - widget pages, quick start, option-groups, all playground scripts, the scaffolder/nested/bordered panel demos, discovery and its sample fixture, and the built-in-theme and field-style demos - from software references to a fruit-and-vegetable theme catalogued in .claude/demo_content_reference.md and enforced by an AGENTS.md convention, regenerating the affected screenshots.
60a2e38 to
b988360
Compare
This comment has been minimized.
This comment has been minimized.
|
🚀 Deployed on https://6a5868467cc94eaa79ec1e47--tui-docs.netlify.app |
There was a problem hiding this comment.
Actionable comments posted: 6
♻️ Duplicate comments (2)
playground/0-minimal/run.php (2)
11-11: 📐 Maintainability & Code Quality | 🟡 MinorReplace the stale non-produce usage value.
Line 11 still uses
{"name":"Ada"}. Use the canonical produce-themed example, such as{"name":"Weekly Box","fruit":"apple"}, so the copy-paste command matches the reskinned form.As per PR objectives, playground examples are being standardized on fruit-and-vegetable demo content.
🤖 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 `@playground/0-minimal/run.php` at line 11, Update the usage example in the run.php documentation comment to use the canonical produce-themed prompts value, including both “name” set to “Weekly Box” and “fruit” set to “apple”.
28-31: 📐 Maintainability & Code Quality | 🟠 MajorRepresent these closed option sets with enums.
The changed examples model finite values with duplicated raw strings. Define backed or pure enums for each set, type values carrying those sets with the enum, and use scalar values only at the rendering/serialization boundary.
playground/0-minimal/run.php#L28-L31: use a fruit enum for the default and options.playground/0-quickstart/run.php#L32-L42: use fruit and vegetable enums.playground/10-builtin-themes/run.php#L47-L57: use grade and extras enums.playground/3-widgets/widget-select-groups.php#L32-L35: use an enum for selectable fruit values.playground/3-widgets/widget-select-groups.php#L37-L37: use the same enum for the disabled rhubarb value.playground/3-widgets/widget-select.php#L30-L33: use a fruit enum for the default and options.playground/3-widgets/widget-suggest.php#L30-L35: use a fruit enum for suggestion values.playground/7-theme-options/run.php#L38-L46: use box-size and extras enums.As per coding guidelines, closed sets must use backed or pure enums instead of string literals.
🤖 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 `@playground/0-minimal/run.php` around lines 28 - 31, Replace duplicated string literals for closed option sets with enums and use enum cases throughout the examples, converting to scalar values only at rendering or serialization boundaries. Apply this to playground/0-minimal/run.php lines 28-31 for fruit; playground/0-quickstart/run.php lines 32-42 for fruit and vegetables; playground/10-builtin-themes/run.php lines 47-57 for grades and extras; playground/3-widgets/widget-select-groups.php lines 32-35 and 37-37 using the same fruit enum, including disabled rhubarb; playground/3-widgets/widget-select.php lines 30-33 for fruit; playground/3-widgets/widget-suggest.php lines 30-35 for fruit; and playground/7-theme-options/run.php lines 38-46 for box sizes and extras.Source: Coding guidelines
🤖 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 `@docs/content/configuration.mdx`:
- Around line 74-75: Update the conditional example using the heat_level and
warning_label fields so every field referenced by its Condition instances is
declared in the form; either introduce the missing tags field before these
checks or replace tags with an existing declared field while preserving the
intended spicy and vegetable conditions.
In `@docs/content/widgets/multisearch.mdx`:
- Around line 19-29: Replace the PHP/API snippets with non-technical examples
using only the canonical fruit-and-vegetable demo theme. Update the examples in
docs/content/widgets/multisearch.mdx lines 19-29,
docs/content/widgets/multiselect.mdx lines 18-27,
docs/content/widgets/number.mdx lines 17-23, and
docs/content/widgets/option-groups.mdx lines 17-26; remove all references to
software, technologies, services, tools, products, or brands while preserving
each example’s demonstrated widget behavior.
In `@docs/content/widgets/number.mdx`:
- Around line 34-36: Update the number widget documentation near the description
of `min()` and `max()` so it also states that declaring `step()` enables Up/Down
adjustment. Clarify that `step()` alone does not impose clamping, which applies
only when a range is configured.
In `@docs/content/widgets/password.mdx`:
- Around line 19-22: Update the password example around the $p->password call to
use the canonical fruit-and-vegetable field name and label from
.claude/demo_content_reference.md instead of `code` and `Order code`, while
preserving the revealable and confirmation modifiers.
In `@playground/3-widgets/show.php`:
- Around line 53-91: Replace repeated produce-related string literals with the
shared backed enum cases and values across playground/3-widgets/show.php lines
53-91, playground/10-field-styles/run.php lines 44-47,
playground/9-bordered-panels/run.php lines 38-55, and
docs/util/render-widget-svgs.php lines 108-144. Use enum cases for selection,
toggle, delivery-method, and bag-size options and defaults; in
render-widget-svgs.php, pass enum values while retaining the raw widget stem
keys.
- Line 51: Update the TextareaWidget argument in the widget configuration to use
a single-quoted multiline string literal, preserving the existing text and
newline while avoiding double quotes.
---
Duplicate comments:
In `@playground/0-minimal/run.php`:
- Line 11: Update the usage example in the run.php documentation comment to use
the canonical produce-themed prompts value, including both “name” set to “Weekly
Box” and “fruit” set to “apple”.
- Around line 28-31: Replace duplicated string literals for closed option sets
with enums and use enum cases throughout the examples, converting to scalar
values only at rendering or serialization boundaries. Apply this to
playground/0-minimal/run.php lines 28-31 for fruit;
playground/0-quickstart/run.php lines 32-42 for fruit and vegetables;
playground/10-builtin-themes/run.php lines 47-57 for grades and extras;
playground/3-widgets/widget-select-groups.php lines 32-35 and 37-37 using the
same fruit enum, including disabled rhubarb;
playground/3-widgets/widget-select.php lines 30-33 for fruit;
playground/3-widgets/widget-suggest.php lines 30-35 for fruit; and
playground/7-theme-options/run.php lines 38-46 for box sizes and extras.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 565cab46-6e70-477f-a388-36c88e01f062
⛔ Files ignored due to path filters (291)
docs/assets/bordered-panels-dark-animated.svgis excluded by!**/*.svgdocs/assets/bordered-panels-light-animated.svgis excluded by!**/*.svgdocs/assets/borderless-panels-dark-animated.svgis excluded by!**/*.svgdocs/assets/borderless-panels-light-animated.svgis excluded by!**/*.svgdocs/assets/discovery-dark-static.svgis excluded by!**/*.svgdocs/assets/discovery-light-static.svgis excluded by!**/*.svgdocs/assets/nested-panels-dark-animated.svgis excluded by!**/*.svgdocs/assets/nested-panels-light-animated.svgis excluded by!**/*.svgdocs/assets/quickstart-dark-static.svgis excluded by!**/*.svgdocs/assets/quickstart-light-static.svgis excluded by!**/*.svgdocs/assets/scaffolder-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/scaffolder-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/scaffolder-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/scaffolder-dark-animated.svgis excluded by!**/*.svgdocs/assets/scaffolder-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/scaffolder-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/scaffolder-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/scaffolder-light-animated.svgis excluded by!**/*.svgdocs/assets/theme-dos.svgis excluded by!**/*.svgdocs/assets/theme-ember-light.svgis excluded by!**/*.svgdocs/assets/theme-ember.svgis excluded by!**/*.svgdocs/assets/theme-frost-light.svgis excluded by!**/*.svgdocs/assets/theme-frost.svgis excluded by!**/*.svgdocs/assets/theme-midnight-light.svgis excluded by!**/*.svgdocs/assets/theme-midnight.svgis excluded by!**/*.svgdocs/assets/theme-mono-light.svgis excluded by!**/*.svgdocs/assets/theme-mono.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-calendar-light-static.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-confirm-light-static.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-filepicker-light-static.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multifilepicker-light-static.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multisearch-light-static.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-groups-light-static.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-multiselect-light-static.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-number-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-number-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-number-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-number-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-number-light-static.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-password-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-password-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-password-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-password-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-password-light-static.svgis excluded by!**/*.svgdocs/assets/widget-password-reveal-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-password-reveal-light-static.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-reorder-light-static.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-search-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-search-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-search-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-search-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-search-light-static.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-groups-light-static.svgis excluded by!**/*.svgdocs/assets/widget-select-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-select-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-select-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-select-light-static.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-suggest-light-static.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-text-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-text-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-text-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-text-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-text-light-static.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-textarea-light-static.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-animated.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-dark-static.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-animated-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-animated-ascii.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-animated-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-animated.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-static-ascii-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-static-ascii.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-static-no-ansi.svgis excluded by!**/*.svgdocs/assets/widget-toggle-light-static.svgis excluded by!**/*.svgdocs/static/img/logo.svgis excluded by!**/*.svgplayground/3-widgets/filepicker-tree/baskets/apples.csvis excluded by!**/*.csvplayground/3-widgets/filepicker-tree/baskets/pears.csvis excluded by!**/*.csvplayground/3-widgets/filepicker-tree/deliveries/monday.logis excluded by!**/*.logplayground/3-widgets/filepicker-tree/harvest.csvis excluded by!**/*.csvplayground/5-discovery/sample/harvest.csvis excluded by!**/*.csv
📒 Files selected for processing (73)
.claude/demo_content_reference.mdAGENTS.mdREADME.mddocs/content/architecture.mdxdocs/content/configuration.mdxdocs/content/discovery.mdxdocs/content/field-behaviour.mdxdocs/content/index.mdxdocs/content/installation.mdxdocs/content/panels.mdxdocs/content/widgets/_category_.jsondocs/content/widgets/calendar.mdxdocs/content/widgets/confirm.mdxdocs/content/widgets/filepicker.mdxdocs/content/widgets/multifilepicker.mdxdocs/content/widgets/multisearch.mdxdocs/content/widgets/multiselect.mdxdocs/content/widgets/number.mdxdocs/content/widgets/option-groups.mdxdocs/content/widgets/password.mdxdocs/content/widgets/pause.mdxdocs/content/widgets/reorder.mdxdocs/content/widgets/search.mdxdocs/content/widgets/select.mdxdocs/content/widgets/suggest.mdxdocs/content/widgets/text.mdxdocs/content/widgets/textarea.mdxdocs/content/widgets/toggle.mdxdocs/docusaurus.config.jsdocs/sidebars.jsdocs/util/make-light-svgs.phpdocs/util/render-widget-svgs.phpdocs/util/update-assets.phpplayground/0-minimal/run.phpplayground/0-quickstart/run.phpplayground/1-scaffolder/run.phpplayground/10-builtin-themes/run.phpplayground/10-field-styles/run.phpplayground/3-widgets/filepicker-tree/README.mdplayground/3-widgets/filepicker-tree/composer.jsonplayground/3-widgets/filepicker-tree/config/app.ymlplayground/3-widgets/filepicker-tree/config/services.ymlplayground/3-widgets/filepicker-tree/pantry.yamlplayground/3-widgets/filepicker-tree/src/Kernel.phpplayground/3-widgets/show.phpplayground/3-widgets/widget-filepicker.phpplayground/3-widgets/widget-multisearch.phpplayground/3-widgets/widget-multiselect-groups.phpplayground/3-widgets/widget-multiselect.phpplayground/3-widgets/widget-number.phpplayground/3-widgets/widget-password-reveal.phpplayground/3-widgets/widget-password.phpplayground/3-widgets/widget-reorder.phpplayground/3-widgets/widget-search.phpplayground/3-widgets/widget-select-groups.phpplayground/3-widgets/widget-select.phpplayground/3-widgets/widget-suggest.phpplayground/3-widgets/widget-text.phpplayground/3-widgets/widget-textarea.phpplayground/3-widgets/widget-toggle.phpplayground/3-widgets/widgets.phpplayground/4-nested-panels/run.phpplayground/5-discovery/run.phpplayground/5-discovery/sample/.envplayground/5-discovery/sample/baskets/apples/.gitkeepplayground/5-discovery/sample/baskets/pears/.gitkeepplayground/5-discovery/sample/box.jsonplayground/5-discovery/sample/composer.jsonplayground/5-discovery/sample/docker-compose.ymlplayground/5-discovery/sample/modules/alpha/.gitkeepplayground/5-discovery/sample/modules/beta/.gitkeepplayground/7-theme-options/run.phpplayground/9-bordered-panels/run.php
💤 Files with no reviewable changes (9)
- docs/content/widgets/category.json
- playground/3-widgets/filepicker-tree/config/services.yml
- playground/5-discovery/sample/modules/alpha/.gitkeep
- playground/5-discovery/sample/modules/beta/.gitkeep
- playground/3-widgets/filepicker-tree/src/Kernel.php
- playground/3-widgets/filepicker-tree/config/app.yml
- playground/5-discovery/sample/composer.json
- playground/5-discovery/sample/docker-compose.yml
- playground/3-widgets/filepicker-tree/composer.json
…ess. Renamed leftover panel ids to produce identifiers, replaced non-produce prompt data, guarded a completion example against an unanswered field, pointed the conditional-fields example at declared fields, set the canonical calendar default, added 'Melon' to the vocabulary to match the password default, noted that 'step()' also enables Up/Down adjustment, corrected 'multiSelect()' casing, and unified the textarea default to a single-quoted expression.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #59 +/- ##
=======================================
Coverage 97.48% 97.48%
=======================================
Files 97 97
Lines 2858 2858
=======================================
Hits 2786 2786
Misses 72 72 ☔ View full report in Codecov by Harness. |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/content/widgets/text.mdx (1)
18-23: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winDo not declare
itemtwice in the same example.The code block creates two fields with the same identifier. Combine the default and completion configuration into one builder call, or clearly separate the snippets as alternatives.
Proposed fix
$p->text('item', 'Item') - ->default('Pear'); // Initial value. - -// Inline ghost-text autocomplete over a static candidate list: -$p->text('item', 'Item') + ->default('Pear') ->complete(['Pear', 'Peach', 'Plum']);🤖 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 `@docs/content/widgets/text.mdx` around lines 18 - 23, Update the example containing the text builder so the identifier item is declared only once: combine the default('Pear') and complete(['Pear', 'Peach', 'Plum']) configuration in a single $p->text('item', 'Item') chain, or clearly mark the two declarations as separate alternatives.
🤖 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.
Outside diff comments:
In `@docs/content/widgets/text.mdx`:
- Around line 18-23: Update the example containing the text builder so the
identifier item is declared only once: combine the default('Pear') and
complete(['Pear', 'Peach', 'Plum']) configuration in a single $p->text('item',
'Item') chain, or clearly mark the two declarations as separate alternatives.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: e2fa78f4-c720-41c8-a876-08d2e0296716
📒 Files selected for processing (14)
.claude/demo_content_reference.mddocs/content/configuration.mdxdocs/content/panels.mdxdocs/content/widgets/number.mdxdocs/content/widgets/text.mdxdocs/util/render-widget-svgs.phpplayground/0-minimal/run.phpplayground/1-scaffolder/run.phpplayground/10-builtin-themes/run.phpplayground/3-widgets/show.phpplayground/3-widgets/widget-textarea.phpplayground/3-widgets/widgets.phpplayground/4-nested-panels/run.phpplayground/5-discovery/run.php
Summary
Restructured the Docusaurus docs: grouped the flat top-level pages into five sidebar categories (Getting started, Guides, Widgets, Appearance & input, About) with every URL unchanged, and rebuilt all 17 widget reference pages with a consistent Options table, Keyboard table, a Headless-behaviour section where the widget enforces bounds or schema fields headlessly, and a four-mode Display-modes grid. Added a multi-widget quick start backed by a new
playground/0-quickstart/run.phpexample, mirrored inindex.mdxandinstallation.mdx, with a generated light/dark screenshot. Linked the dev-docs preview build from the root README and switched the docs navbar and favicon to the SVG logo. Reskinned every demo example - the widget reference pages, the quick start, option-groups, every playground script (scaffolder, nested panels, bordered panels, discovery, theme demos, field styles), and the widget file-picker fixture tree - from software references (Redis, Docker, PHP, MySQL, timezones) to a fruit-and-vegetable theme, cataloged in.claude/demo_content_reference.mdand enforced by a newAGENTS.mdconvention, regenerating every affected SVG screenshot to match.Changes
docs/sidebars.jsreplaces the autogenerated flat list with 5 explicit categories (Getting started, Guides, Widgets, Appearance & input, About); no page moved, so every URL is unchanged; removed the now-redundantdocs/content/widgets/_category_.json.docs/content/widgets/rebuilt with a uniform Options table (Name/Description/Required/Default, methods shown with()), a Keyboard table, a Headless behaviour section, and the existing four-mode Display-modes grid;option-groups.mdxgained a Builder methods table and a Behaviour section.playground/0-quickstart/run.php(text, select, multi-select, number, confirm on one panel), a matchingquickstartjob indocs/util/update-assets.php, and a generated light/dark screenshot embedded inindex.mdxandinstallation.mdx.tui-docs.netlify.app, rebuilt frommainahead of each release) beside the productionphptui.devlink;docs/docusaurus.config.jsnow points the navbar logo and favicon atdocs/static/img/logo.svginstead oflogo.png..claude/demo_content_reference.mddefines the canonical produce demo content (fruit/vegetable vocabulary, canonical widget values, the quick-start order form, a derived-value chain, and the file-picker fixture layout);AGENTS.mdrecords the no-software-references convention; every doc code example, playground script, thefilepicker-treefixture, and the corresponding generated SVGs are reskinned to produce.Screenshots
N/A - this is a documentation and playground-scripts change with no runtime application feature; the docs rendering is validated by the Docusaurus production build rather than a browser screenshot.
Known limitation
The widgets montage SVG (
docs/assets/widgets-*-animated.svg) is left as its previously committed content: its asciinema recording pipeline anchors on per-widget titles (expect "Text widget",expect "Password widget", ...) that the montage form (playground/3-widgets/widgets.php, form titleWidgets) does not render - it shows every widget as a field on one panel, not as separate per-widget screens - a pre-existing break that is independent of this reskin. The montage form's source is reskinned to produce like every other example; only its generated animation could not be regenerated.Before / After
Summary by CodeRabbit