Add cstudioTheme back (monorepo) - #8832
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughRestores the CStudio theme asset set across console, forms, overlays, dashboards, icons, YUI, and RTE stylesheets, adds an ellipsis XML binding, narrows ChangesCStudio theme assets
Estimated code review effort: 4 (Complex) | ~45 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (13)
studio-ui/static-assets/themes/cstudioTheme/css/forms-default.css (5)
966-971: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueDuplicate
float: leftdeclaration.Stylelint error (
declaration-block-no-duplicate-properties).♻️ Proposed cleanup
.rte-image-prop-size-container { float: left; padding: 10px; width: 184px; - float: left; }🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/forms-default.css` around lines 966 - 971, Remove the duplicate float declaration from the .rte-image-prop-size-container rule, retaining a single float: left property while preserving the existing padding and width.Source: Linters/SAST tools
285-285: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueRemaining Stylelint errors will fail lint if enforced.
Empty line before declaration at Line 285, and comment whitespace at Line 1298. Worth clearing since the whole file is being (re)added.
Also applies to: 1298-1298
🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/forms-default.css` at line 285, Clean up the Stylelint violations in forms-default.css by removing the empty line immediately before the display declaration around line 285 and correcting the whitespace on the comment around line 1298. Preserve the surrounding CSS declarations and comment content.Source: Linters/SAST tools
113-115: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueDrop the commented-out placeholder block.
Dead artifact, and Stylelint flags it (
comment-whitespace-inside).♻️ Proposed cleanup
-/*.cstudio-form-control-asset-picker-body { - hello world -}*/ -🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/forms-default.css` around lines 113 - 115, Remove the commented-out placeholder block containing the .cstudio-form-control-asset-picker-body selector from the stylesheet, including its placeholder content, so no dead CSS or invalid comment whitespace remains.Source: Linters/SAST tools
1396-1400: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win
floathere is dead — overridden at Line 1754.
.image-picker-control .cstudio-form-field-titleis redeclared later withfloat: left, same specificity, sofloat: nonenever applies. Pick one and remove the other to avoid confusion about the intended layout.🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/forms-default.css` around lines 1396 - 1400, Remove the redundant float declaration for .image-picker-control .cstudio-form-field-title, preserving the later same-specificity float: left rule as the single source of truth while retaining the other layout properties.
1430-1443: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueOverlapping
.cstudio-form-control-input-containerrules across three places (Lines 760, 1430, 1473).The "Material Styles" section re-declares flex/width for the same selector already styled at Lines 760 and 1430 (which uses
!important). Consider consolidating so the effective cascade is obvious.Also applies to: 1473-1477
🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/forms-default.css` around lines 1430 - 1443, Consolidate the overlapping .cstudio-form-control-input-container declarations across the existing rules, especially the duplicate Material Styles block near the referenced selectors. Keep one authoritative rule for the shared flex and width properties, preserve the required !important behavior, and retain only styles unique to each context.studio-ui/static-assets/themes/cstudioTheme/css/console.css (1)
862-929: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove dead commented-out background declarations.
Stylelint reports
comment-whitespace-insideat lines 869, 880, 891, 903, 916, and 918/928 — all inside leftover commented-outbackground: url(...)declarations for.options .edit/.pick/.upload/.deleteand.control/.datasource. Rather than reformatting the comments to satisfy the linter, remove this dead code outright since it's unused legacy image-based styling.🧹 Proposed cleanup
.property-wrapper .options .edit { - /*background:url('../../../themes/cstudioTheme/images/edit.png') no-repeat left;*/ float: right; height: 18px; position: relative; top: -15px; width: 20px; cursor: pointer; background-color: white; } .property-wrapper .options .pick { - /*background:url('../../../themes/cstudioTheme/images/icons/icon_strip_vertical.gif') repeat scroll 0 -618px white;*/ float: right; height: 20px; position: relative; top: -16px; width: 20px; cursor: pointer; background-color: white; } .property-wrapper .options .upload { - /*background:url(../../../themes/cstudioTheme/images/icons/upload_icon.png) no-repeat left;*/ float: right; height: 20px; position: relative; top: -15px; width: 20px; cursor: pointer; background-size: 90%; background-color: `#fff`; } .property-wrapper .options .delete { - /*background:url(../../../themes/cstudioTheme/images/fail.png) no-repeat left;*/ float: right; height: 20px; position: relative; top: -15px; width: 20px; cursor: pointer; background-size: 90%; background-color: `#fff`; } .control, .datasource { - /*background: url("../../../themes/cstudioTheme/images/database.png") no-repeat scroll 0 0 transparent;*/ font-size: 13px; - /*padding-left: 25px;*/ text-align: left; height: 25px; cursor: pointer; line-height: 24px; white-space: nowrap; text-overflow: ellipsis; } -.control { - /*background-image: url("../../../themes/cstudioTheme/images/cube.png");*/ -}🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/console.css` around lines 862 - 929, Remove the obsolete commented-out background declarations from the .property-wrapper .options .edit, .pick, .upload, and .delete rules, plus the .control and .datasource rules. Leave all active CSS declarations and layout behavior unchanged.Source: Linters/SAST tools
studio-ui/static-assets/themes/cstudioTheme/yui/assets/rte.css (1)
23-29: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueOnly the legacy
-moz-border-radiusis declared, so no browser rounds this placeholder.Add the standard property (keep the prefixed one if you want, though it's obsolete).
♻️ Proposed change
border: 2px solid `#333`; - -moz-border-radius: 6px; + border-radius: 6px; width: 300px;🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/yui/assets/rte.css` around lines 23 - 29, Update the .crafterEmbed CSS rule to add the standard border-radius property with the same 6px value as -moz-border-radius, preserving the existing prefixed declaration if desired.studio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.css (3)
3396-3402: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueRemaining stylelint failures worth clearing: deprecated
word-wraphere, and unquoted multi-word font families at Lines 1900-1932 / 4432-4464.The IE star/underscore hacks that trip
declaration-block-no-duplicate-propertiesare original YUI 2.6 code and can stay (or be lint-ignored for this vendor path); these two are easy real fixes.🧹 Proposed fix
white-space: -o-pre-wrap; - word-wrap: break-word; + overflow-wrap: break-word; }.yui-toolbar-fontname-arial-black { - font-family: Arial Black; + font-family: 'Arial Black'; }If the whole
yui/assetstree is vendored, adding a stylelint ignore for it may be cleaner than editing each rule.🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.css` around lines 3396 - 3402, Replace the deprecated word-wrap declaration in the .yui-log-verbose rule with the supported overflow-wrap property while preserving break-word behavior. Also address the stylelint failures for unquoted multi-word font families in the referenced font declarations, or add an appropriate stylelint ignore for the vendored yui/assets tree if that is the project’s established approach; leave the legacy IE duplicate-property hacks unchanged.Source: Linters/SAST tools
4066-4074: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win
background-color: redon the bottom resize handle looks like a leftover debug artifact.It is currently masked only because
.yui-resize .yui-resize-handle-bis re-declared with#cdcdcdat Line 41 and again at Line 6158 (same specificity, later wins). Remove the red so the handle color doesn't depend on rule ordering — and consider collapsing the three competing declarations of this same selector into one.♻️ Proposed change
.yui-resize .yui-resize-handle-b { width: 100%; height: 20px; bottom: 0; right: 0; cursor: s-resize; zoom: 1; - background-color: red; }🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.css` around lines 4066 - 4074, Remove the debug `background-color: red` declaration from `.yui-resize .yui-resize-handle-b` and consolidate its competing declarations into a single selector definition using the intended `#cdcdcd` color, so the appearance does not depend on rule ordering.
4281-4298: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚖️ Poor tradeoffConsolidate the repeated toolbar/editor/panel rules
Large portions of this block are duplicated earlier in the file, but the later copy also has a few intentional overrides and missing rules, so split the shared styles from the differences instead of keeping two near-identical copies.🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.css` around lines 4281 - 4298, Consolidate the duplicated toolbar/editor/panel CSS around .yui-toolbar-container by retaining one shared rule set and moving only intentional overrides or missing rules into a separate, clearly scoped block. Compare this block with the earlier definitions, remove redundant declarations, and preserve all effective styling behavior, including the .yui-busy, fieldset, legend, and .yui-toolbar-subcont rules.studio-ui/static-assets/themes/cstudioTheme/css/contextNav.css (3)
841-841: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueMalformed comments flagged by lint.
Line 841 is an empty
/* */comment (scss/comment-no-empty), and line 1081's/*Crop Dialog*/is missing inner whitespace (comment-whitespace-inside).♻️ Suggested fix
-/* */ - /* Modal */-/*Crop Dialog*/ +/* Crop Dialog */Also applies to: 1081-1081
🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/contextNav.css` at line 841, Remove the empty /* */ comment at line 841 and update the /*Crop Dialog*/ comment at line 1081 to include whitespace inside the delimiters, preserving the surrounding CSS unchanged.Source: Linters/SAST tools
328-328: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueDeprecated
word-wrapproperty flagged by static analysis.
word-wrapis a legacy alias;overflow-wrapis the standard replacement recommended by theproperty-no-deprecatedstylelint rule. Occurs at lines 328, 349, 535, 562, and 871.♻️ Suggested fix (repeat for each occurrence)
- word-wrap: normal; + overflow-wrap: normal;Also applies to: 349-349, 535-535, 562-562, 871-871
🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/contextNav.css` at line 328, Replace every deprecated word-wrap declaration in contextNav.css with the standard overflow-wrap property, preserving the existing normal value at all five occurrences.Source: Linters/SAST tools
17-53: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winDuplicate selector blocks, including a conflicting
.contentTypeOuterrule.Lines 55-119 largely re-declare selectors already defined at lines 17-53 (
.floatLeft,#wcm-popup-container,#contentTypePreviewImg,.contentTypePopupContent,.contentType). Most duplicates are byte-identical dead weight, but.contentTypeOuteris declared twice with different values:
- Line 39-41:
margin: 30px 0 20px 0;- Line 110-113:
margin: 20px 0; overflow: hidden;Since both have equal specificity, the second silently wins and the first block is unreachable — likely leftover from a merge/copy-paste rather than intentional.
♻️ Suggested cleanup
-.floatLeft { - float: left; -} - -#wcm-popup-container { - border: 3px solid `#000000`; -} - -#contentTypePreviewImg { - margin: 5px 0 0 0; -} - .contentTypePopupContent { margin: 15px 25px 15px 25px; } - -.contentTypeOuter { - margin: 30px 0 20px 0; -} - -.contentTypeOuter .alert { - padding: 9px 15px; - color: `#a94442` !important; - margin-bottom: 0; -} - -.contentType { - padding: 0 10px 0 0; - height: 260px; - width: 250px; -}Keep the second occurrence (lines 55-119) and its
.contentTypeOuter .alertrule, and remove the first, redundant block (lines 17-53).Also applies to: 55-119
🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/contextNav.css` around lines 17 - 53, Remove the first redundant selector block containing .floatLeft, `#wcm-popup-container`, `#contentTypePreviewImg`, .contentTypePopupInner, .contentTypePopupContent, .contentTypeOuter, .contentTypeOuter .alert, and .contentType. Preserve the later declarations, including the effective .contentTypeOuter margin and overflow values, without changing their styling.
🤖 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 `@studio-ui/static-assets/themes/cstudioTheme/css/console.css`:
- Line 37: Update the background-color declaration in console.css to use the
lowercase transparent CSS keyword instead of Transparent, preserving the
existing styling behavior.
In `@studio-ui/static-assets/themes/cstudioTheme/css/global.css`:
- Line 29: Replace the invalid word-wrapord-wrap declaration in the search-table
styling with overflow-wrap: break-word, preserving the existing selector and
other declarations.
In `@studio-ui/static-assets/themes/cstudioTheme/presentation.css`:
- Line 17: Fix the malformed site-wide stylesheet comment at the beginning of
the CSS by changing its spaced terminator to a valid `*/`, so the
body-through-textarea rules are parsed as active styles.
In `@studio-ui/static-assets/themes/cstudioTheme/yui/assets/rte.css`:
- Around line 90-95: Update the table cell selectors in the border-reset rule to
use `.crComponent` consistently for `table`, `tr`, `th`, and `td`; replace the
`.cstudioComponent` prefixes so the emitted `crComponent` markup receives the
same border override.
- Line 45: Update the CSS comments around the RTE property-box styles to include
required whitespace inside comment delimiters: add a space before each closing
*/ on the affected comments and after /* where required, including the comment
beginning “Right-Click property box for RTE”.
In `@studio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.css`:
- Around line 4221-4228: Update the background declaration in the
.yui-resize-handle-inner-t and .yui-resize-handle-inner-b rule to use the valid
background shorthand, matching the parallel inner-r/inner-l rule, so the resize
knob sprite image and positioning render correctly.
---
Nitpick comments:
In `@studio-ui/static-assets/themes/cstudioTheme/css/console.css`:
- Around line 862-929: Remove the obsolete commented-out background declarations
from the .property-wrapper .options .edit, .pick, .upload, and .delete rules,
plus the .control and .datasource rules. Leave all active CSS declarations and
layout behavior unchanged.
In `@studio-ui/static-assets/themes/cstudioTheme/css/contextNav.css`:
- Line 841: Remove the empty /* */ comment at line 841 and update the /*Crop
Dialog*/ comment at line 1081 to include whitespace inside the delimiters,
preserving the surrounding CSS unchanged.
- Line 328: Replace every deprecated word-wrap declaration in contextNav.css
with the standard overflow-wrap property, preserving the existing normal value
at all five occurrences.
- Around line 17-53: Remove the first redundant selector block containing
.floatLeft, `#wcm-popup-container`, `#contentTypePreviewImg`,
.contentTypePopupInner, .contentTypePopupContent, .contentTypeOuter,
.contentTypeOuter .alert, and .contentType. Preserve the later declarations,
including the effective .contentTypeOuter margin and overflow values, without
changing their styling.
In `@studio-ui/static-assets/themes/cstudioTheme/css/forms-default.css`:
- Around line 966-971: Remove the duplicate float declaration from the
.rte-image-prop-size-container rule, retaining a single float: left property
while preserving the existing padding and width.
- Line 285: Clean up the Stylelint violations in forms-default.css by removing
the empty line immediately before the display declaration around line 285 and
correcting the whitespace on the comment around line 1298. Preserve the
surrounding CSS declarations and comment content.
- Around line 113-115: Remove the commented-out placeholder block containing the
.cstudio-form-control-asset-picker-body selector from the stylesheet, including
its placeholder content, so no dead CSS or invalid comment whitespace remains.
- Around line 1396-1400: Remove the redundant float declaration for
.image-picker-control .cstudio-form-field-title, preserving the later
same-specificity float: left rule as the single source of truth while retaining
the other layout properties.
- Around line 1430-1443: Consolidate the overlapping
.cstudio-form-control-input-container declarations across the existing rules,
especially the duplicate Material Styles block near the referenced selectors.
Keep one authoritative rule for the shared flex and width properties, preserve
the required !important behavior, and retain only styles unique to each context.
In `@studio-ui/static-assets/themes/cstudioTheme/yui/assets/rte.css`:
- Around line 23-29: Update the .crafterEmbed CSS rule to add the standard
border-radius property with the same 6px value as -moz-border-radius, preserving
the existing prefixed declaration if desired.
In `@studio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.css`:
- Around line 3396-3402: Replace the deprecated word-wrap declaration in the
.yui-log-verbose rule with the supported overflow-wrap property while preserving
break-word behavior. Also address the stylelint failures for unquoted multi-word
font families in the referenced font declarations, or add an appropriate
stylelint ignore for the vendored yui/assets tree if that is the project’s
established approach; leave the legacy IE duplicate-property hacks unchanged.
- Around line 4066-4074: Remove the debug `background-color: red` declaration
from `.yui-resize .yui-resize-handle-b` and consolidate its competing
declarations into a single selector definition using the intended `#cdcdcd`
color, so the appearance does not depend on rule ordering.
- Around line 4281-4298: Consolidate the duplicated toolbar/editor/panel CSS
around .yui-toolbar-container by retaining one shared rule set and moving only
intentional overrides or missing rules into a separate, clearly scoped block.
Compare this block with the earlier definitions, remove redundant declarations,
and preserve all effective styling behavior, including the .yui-busy, fieldset,
legend, and .yui-toolbar-subcont rules.
🪄 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: 6c25a7de-e875-4220-b6ff-fa3f3798c8d8
⛔ Files ignored due to path filters (124)
studio-ui/static-assets/themes/cstudioTheme/css/font-awesome.min.cssis excluded by!**/*.min.cssstudio-ui/static-assets/themes/cstudioTheme/fonts/FontAwesome.otfis excluded by!**/*.otfstudio-ui/static-assets/themes/cstudioTheme/fonts/fontawesome-webfont.eotis excluded by!**/*.eotstudio-ui/static-assets/themes/cstudioTheme/fonts/fontawesome-webfont.svgis excluded by!**/*.svgstudio-ui/static-assets/themes/cstudioTheme/fonts/fontawesome-webfont.ttfis excluded by!**/*.ttfstudio-ui/static-assets/themes/cstudioTheme/fonts/fontawesome-webfont.woffis excluded by!**/*.woffstudio-ui/static-assets/themes/cstudioTheme/fonts/fontawesome-webfont.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJB9cme_xc.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJB9cme_xc.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDJB9cme.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJB9cme_xc.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJB9cme_xc.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJB9cme_xc.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJB9cme_xc.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lujVj9_mf.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lujVj9_mf.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lujVj9_mf.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lujVj9_mf.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lujVj9_mf.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7lujVj9w.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lujVj9_mf.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdg18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdh18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdi18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdj18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdo18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18S0xR41.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdv18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidg18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidh18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidi18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidj18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkido18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18S0xR41.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidv18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdg18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdh18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdi18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdj18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdo18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSds18S0xR41.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdv18S0xR41YDw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu3cOWxw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu3cOWxw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu3cOWxw.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/fonts/source-sans/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxdu3cOWxy40.woff2is excluded by!**/*.woff2studio-ui/static-assets/themes/cstudioTheme/images/ajax-loader.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/bg/bar_bg.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/bg/bar_shadow.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/bg/bar_vertical_divider.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/bg/down.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/bg/gradient_workflow.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/bg/submit_bg.jpgis excluded by!**/*.jpgstudio-ui/static-assets/themes/cstudioTheme/images/bg/up.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/bg/version_bg.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/bg/widget_vertical_divider.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/bulk_upload.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/cstudio-accordion-section-alert-active.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/cstudio-accordion-section-alert-inactive.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/cstudio-alert-active.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/cstudio-alert-group-active.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/cstudio-alert-group-inactive.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/cstudio-alert-inactive.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/cstudio-xforms-constraint-error.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/dashlet-title-bg.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/default-contentType.jpgis excluded by!**/*.jpgstudio-ui/static-assets/themes/cstudioTheme/images/drag-drop-icon.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/edit-component.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/edit.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/edit_block.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/editor-sprite.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/fail.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/feed-icon-16.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/help-icons.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/help.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/arrows_up_down.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/category_small.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/icons/code-edit.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/icons/delete.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/icon_calendar.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/icons/icon_sm_gears.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/icon_strip.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/icons/icon_strip_vertical.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/icons/layout_sprite.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/magnify-icon.jpgis excluded by!**/*.jpgstudio-ui/static-assets/themes/cstudioTheme/images/icons/predefined-table.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/success-icon.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/taxonomy_small.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/icons/ui-icons_888888_256x240.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/white-refresh-16.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/white-zoom-in-16.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/icons/white-zoom-out-16.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/insert_image.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/link-menu-button-arrow.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/magnify.jpgis excluded by!**/*.jpgstudio-ui/static-assets/themes/cstudioTheme/images/navigation-bg.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/overlay-green-button.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/spacer.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/sprite.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/switch-icon.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/title-button-bg.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/images/treeview-loading.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/treeview-sprite.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/images/wait.gifis excluded by!**/*.gifstudio-ui/static-assets/themes/cstudioTheme/yui/assets/error-icon.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/yui/assets/sprite.pngis excluded by!**/*.pngstudio-ui/static-assets/themes/cstudioTheme/yui/assets/treeview-sprite.gifis excluded by!**/*.gif
📒 Files selected for processing (14)
.gitignorestudio-ui/static-assets/themes/cstudioTheme/base.cssstudio-ui/static-assets/themes/cstudioTheme/css/console.cssstudio-ui/static-assets/themes/cstudioTheme/css/contextNav.cssstudio-ui/static-assets/themes/cstudioTheme/css/forms-default.cssstudio-ui/static-assets/themes/cstudioTheme/css/global.cssstudio-ui/static-assets/themes/cstudioTheme/css/icons.cssstudio-ui/static-assets/themes/cstudioTheme/css/styleicon.cssstudio-ui/static-assets/themes/cstudioTheme/dashboard-presentation.cssstudio-ui/static-assets/themes/cstudioTheme/dashboard.cssstudio-ui/static-assets/themes/cstudioTheme/images/xml/ellipsis.xmlstudio-ui/static-assets/themes/cstudioTheme/presentation.cssstudio-ui/static-assets/themes/cstudioTheme/yui/assets/rte.cssstudio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.css
💤 Files with no reviewable changes (1)
- .gitignore
|
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 `@studio-ui/ui/scss/src/global.scss`:
- Line 587: Replace the deprecated word-wrap declaration with overflow-wrap:
break-word in the affected global stylesheet rule, preserving the existing
wrapping behavior and satisfying Stylelint.
🪄 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: 1e5af72a-a67a-4459-97b7-3f1fd4a0d7f5
📒 Files selected for processing (4)
studio-ui/static-assets/themes/cstudioTheme/css/console.cssstudio-ui/static-assets/themes/cstudioTheme/yui/assets/rte.cssstudio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.cssstudio-ui/ui/scss/src/global.scss
🚧 Files skipped from review as they are similar to previous changes (3)
- studio-ui/static-assets/themes/cstudioTheme/css/console.css
- studio-ui/static-assets/themes/cstudioTheme/yui/assets/rte.css
- studio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.css
|
@coderabbitai can you check if everything looks good? Please give it a final review before I hand over for human review |
|
✅ Action performedFull review finished. |
|
@coderabbitai how does this work look to be merged? Any issues you can point out? |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '== PR metadata and review state =='
gh pr view 8832 --repo craftersoftware/craftercms \
--json number,state,isDraft,mergeable,reviewDecision,statusCheckRollup,reviews,comments \
--jq '{number,state,isDraft,mergeable,reviewDecision,statusCheckRollup:[.statusCheckRollup[]? | {name,conclusion,status}],reviews:[.reviews[]? | {author:.author.login,state,body}],comments:[.comments[]? | {author:.author.login,body}]}'
echo
echo '== Changed files =='
git diff --name-status "origin/develop...HEAD"
echo
echo '== Ignore rules and tracked theme asset summary =='
git diff "origin/develop...HEAD" -- .gitignore
printf '\nTracked files by extension under cstudioTheme:\n'
git ls-files 'studio-ui/static-assets/themes/cstudioTheme/**' \
| awk -F. 'NF > 1 {print "." $NF} NF == 1 {print "[no extension]"}' \
| sort | uniq -c | sort -nr
echo
echo '== CSS URL references whose normalized local targets are not tracked =='
python3 - <<'PY'
import re
from pathlib import Path
root = Path.cwd()
theme = root / "studio-ui/static-assets/themes/cstudioTheme"
css_files = list(theme.rglob("*.css"))
missing = []
for css in css_files:
text = css.read_text(encoding="utf-8", errors="replace")
for ref in re.findall(r"url\(\s*(['\"]?)(.*?)\1\s*\)", text, flags=re.I):
url = ref[1].strip()
if not url or url.startswith(("#", "data:", "http:", "https:", "//", "/")):
continue
url = url.split("?", 1)[0].split("#", 1)[0]
if not url:
continue
target = (css.parent / url).resolve()
try:
target.relative_to(root.resolve())
except ValueError:
continue
if not target.exists():
missing.append((css.relative_to(root), url, target.relative_to(root)))
for css, url, target in missing:
print(f"{css}: url({url}) -> MISSING {target}")
print(f"Missing local CSS asset references: {len(missing)}")
PY
echo
echo '== Theme files ignored despite being referenced or present =='
git check-ignore -v --no-index $(git ls-files --others --exclude-standard 'studio-ui/static-assets/themes/cstudioTheme/**') 2>/dev/null || trueLength of output: 78747 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '== Missing-reference rules (with source lines) =='
rg -n -C 2 --glob '*.css' \
'url\((menu-button-arrow|split-button-arrow|hue_bg|picker_mask|dt-arrow|editor-sprite|editor-knob|blankimage|menubaritem|menuitem|header_background|table_header|table_subhead|upload_icon|database\.png|cube\.png|navbar-bg)' \
studio-ui/static-assets/themes/cstudioTheme
echo
echo '== Equivalent assets elsewhere in the current checkout =='
for name in \
menu-button-arrow.png split-button-arrow.png split-button-arrow-focus.png \
hue_bg.png picker_mask.png dt-arrow-up.png dt-arrow-dn.png editor-sprite.gif \
editor-sprite-active.gif editor-knob.gif blankimage.png \
menubaritem_submenuindicator.png menuitem_submenuindicator.png \
header_background.png table_header_background.gif table_subhead_background.gif \
upload_icon.png database.png cube.png navbar-bg.png navbar-bg-2.png
do
echo "-- ${name}"
fd -HI -a -t f -g "$name" . | sed 's#^\./##' || true
done
echo
echo '== Theme loading/serving references =='
rg -n -C 3 --glob '!**/*.min.css' \
'(cstudioTheme|yui/assets/skin\.css|yui/assets/rte\.css|presentation\.css)' \
. \
-g '!studio-ui/static-assets/themes/cstudioTheme/**' \
-g '!**/.git/**' \
| head -n 240
echo
echo '== Missing asset names in reachable git history (path-only) =='
git log --all --name-only --format='' -- \
'studio-ui/static-assets/themes/cstudioTheme/**' \
| grep -E '/(menu-button-arrow|split-button-arrow|hue_bg|picker_mask|dt-arrow|editor-sprite|editor-knob|blankimage|menubaritem|menuitem|header_background|table_header|table_subhead|upload_icon|database|cube|navbar-bg)' \
| sort -u || trueLength of output: 40717 🏁 Script executed: #!/bin/bash
set -euo pipefail
echo '== Runtime references to the restored theme stylesheets =='
rg -n -i -C 3 \
'(themes/cstudioTheme/(yui/assets/(skin|rte)\.css|presentation\.css|dashboard(-presentation)?\.css|css/[^"'\'' )]+\.css)|yui-skin-cstudioTheme)' \
. \
-g '!studio-ui/static-assets/themes/cstudioTheme/**' \
-g '!**/.git/**' \
| head -n 400
echo
echo '== Nearest historical revision containing the theme =='
theme_commit="$(git rev-list --all --max-count=1 -- 'studio-ui/static-assets/themes/cstudioTheme/yui/assets/skin.css')"
printf 'commit=%s\n' "$theme_commit"
git show -s --format='%H%n%ad%n%s' --date=iso-strict "$theme_commit"
echo
echo '== Historical theme files absent from this PR (relevant image assets) =='
comm -23 \
<(git ls-tree -r --name-only "$theme_commit" -- studio-ui/static-assets/themes/cstudioTheme | sort) \
<(git ls-files studio-ui/static-assets/themes/cstudioTheme | sort) \
| grep -E '\.(png|gif|jpg|jpeg|svg)$' \
| sed -n '1,240p' || true
echo
echo '== Current and historical references to known missing theme image paths =='
for path in \
studio-ui/static-assets/themes/cstudioTheme/images/cube.png \
studio-ui/static-assets/themes/cstudioTheme/images/database.png \
studio-ui/static-assets/themes/cstudioTheme/images/icons/upload_icon.png \
studio-ui/static-assets/themes/cstudioTheme/images/bg/table_header_background.gif \
studio-ui/static-assets/themes/cstudioTheme/images/bg/table_subhead_background.gif
do
printf '\n-- %s\n' "$path"
git cat-file -e "${theme_commit}:${path}" 2>/dev/null \
&& git show "${theme_commit}:${path}" >/dev/null \
&& echo 'present in historical theme' \
|| echo 'not present in historical theme'
doneLength of output: 31503
Other notes:
Once the missing skin assets are addressed and CI passes, this should be in good shape for human review. |
|
@coderabbitai how does this work look to be merged? Any issues you can point out? |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
repo="craftersoftware/craftercms"
pr="8832"
theme="studio-ui/static-assets/themes/cstudioTheme"
echo '== PR status =='
gh pr view "$pr" --repo "$repo" \
--json state,isDraft,mergeable,reviewDecision,statusCheckRollup \
--jq '{
state,
isDraft,
mergeable,
reviewDecision,
checks: [.statusCheckRollup[]? | {name, status, conclusion}]
}'
echo
echo '== Changed files =='
git diff --name-status "origin/develop...HEAD"
echo
echo '== Missing local assets referenced by theme CSS =='
python3 - <<'PY'
import re
from pathlib import Path
root = Path.cwd().resolve()
theme = root / "studio-ui/static-assets/themes/cstudioTheme"
missing = []
for css in theme.rglob("*.css"):
text = css.read_text(encoding="utf-8", errors="replace")
for match in re.finditer(r"url\(\s*(['\"]?)(.*?)\1\s*\)", text, flags=re.I):
url = match.group(2).strip()
if not url or url.startswith(("#", "data:", "http:", "https:", "//", "/")):
continue
url = url.split("?", 1)[0].split("#", 1)[0]
if not url:
continue
target = (css.parent / url).resolve()
try:
target.relative_to(root)
except ValueError:
continue
if not target.is_file():
line = text.count("\n", 0, match.start()) + 1
missing.append((css.relative_to(root), line, url, target.relative_to(root)))
for css, line, url, target in missing:
print(f"{css}:{line}: url({url}) -> missing {target}")
print(f"Total missing local CSS asset references: {len(missing)}")
PY
echo
echo '== Files present under the restored theme =='
git ls-files "$theme/**" | sed -n '1,240p'Length of output: 27801 🏁 Script executed: #!/bin/bash
set -euo pipefail
theme="studio-ui/static-assets/themes/cstudioTheme"
echo '== Relevant CSS rules =='
for spec in \
"$theme/presentation.css:204,204p" \
"$theme/presentation.css:446,450p" \
"$theme/css/console.css:891,891p" \
"$theme/css/console.css:916,916p" \
"$theme/css/console.css:928,928p" \
"$theme/yui/assets/rte.css:24,24p"
do
file="${spec%%:*}"
range="${spec#*:}"
echo "-- $file ($range)"
sed -n "$range" "$file"
done
echo
echo '== Matching files anywhere in the checkout =='
for name in \
navigation-bg.png navbar-bg.png navbar-bg-2.png upload_icon.png \
database.png cube.png placeholder.png
do
echo "-- $name"
fd -HI -a -t f -g "$name" . | sed 's#^\./##' || true
done
echo
echo '== Historical cstudioTheme presence =='
historical_commit="$(git rev-list --all --max-count=1 -- "$theme/yui/assets/skin.css")"
printf 'historical_commit=%s\n' "$historical_commit"
if [ -n "$historical_commit" ]; then
git ls-tree -r --name-only "$historical_commit" -- "$theme" \
| grep -E '/(navigation-bg|navbar-bg|upload_icon|database|cube|placeholder)\.png$' \
|| true
fi
echo
echo '== Ignore rules affecting the unresolved targets =='
git check-ignore -v --no-index \
"$theme/images/navbar-bg.png" \
"$theme/images/navbar-bg-2.png" \
"$theme/images/icons/upload_icon.png" \
"$theme/images/database.png" \
"$theme/images/cube.png" \
"studio-ui/static-assets/components/images/navigation-bg.png" \
"studio-ui/static-assets/components/cstudio-form/images/placeholder.png" \
|| true
echo
echo '== Relevant .gitignore change =='
git diff "origin/develop...HEAD" -- .gitignoreLength of output: 4378
The other five missing-reference scan results are in commented-out CSS and do not affect runtime behavior. Also, the earlier broad concern about missing Finally, GitHub still shows Travis CI in progress and review required. Once the two active URLs are resolved, CI passes, and the required human review is obtained, this looks ready for handoff. |
…me presentation.css
|
@coderabbitai how does this work look to be merged? Any issues you can point out? |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
repo="craftersoftware/craftercms"
pr="8832"
theme="studio-ui/static-assets/themes/cstudioTheme"
echo "== Pull request state =="
gh pr view "$pr" --repo "$repo" \
--json number,state,isDraft,mergeable,reviewDecision,statusCheckRollup,headRefOid,updatedAt \
--jq '{
number, state, isDraft, mergeable, reviewDecision, headRefOid, updatedAt,
checks: [.statusCheckRollup[]? | {name, status, conclusion}]
}'
echo
echo "== Current changed files =="
git diff --name-status "origin/develop...HEAD"
echo
echo "== Relevant current CSS rules =="
for file in \
"$theme/presentation.css" \
"$theme/yui/assets/rte.css"
do
echo "-- $file"
rg -n -C 2 'url\(' "$file" || true
done
echo
echo "== Missing local URLs in active CSS (comments stripped) =="
python3 - <<'PY'
import re
from pathlib import Path
root = Path.cwd().resolve()
theme = root / "studio-ui/static-assets/themes/cstudioTheme"
missing = []
for css in theme.rglob("*.css"):
text = css.read_text(encoding="utf-8", errors="replace")
active = re.sub(r"/\*.*?\*/", "", text, flags=re.S)
for m in re.finditer(r"url\(\s*(['\"]?)(.*?)\1\s*\)", active, flags=re.I):
url = m.group(2).strip()
if not url or url.startswith(("#", "data:", "http:", "https:", "//", "/")):
continue
url = url.split("?", 1)[0].split("#", 1)[0]
target = (css.parent / url).resolve()
try:
target.relative_to(root)
except ValueError:
continue
if not target.is_file():
line = text.count("\n", 0, m.start()) + 1
missing.append((css.relative_to(root), line, url, target.relative_to(root)))
for css, line, url, target in missing:
print(f"{css}: Line {line}: url({url}) -> missing {target}")
print(f"Total active missing local CSS asset references: {len(missing)}")
PY
echo
echo "== Recent commits affecting prior finding files =="
git log --oneline -6 -- \
"$theme/presentation.css" \
"$theme/yui/assets/rte.css"Length of output: 16727
Two remaining blockers:
GitHub also still requires human review. Structurally, the PR is mergeable, and the earlier |
|
@coderabbitai how does this work look to be merged? Any issues you can point out? |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
repo="craftersoftware/craftercms"
pr="8832"
theme="studio-ui/static-assets/themes/cstudioTheme"
echo "== PR state, reviews, and checks =="
gh pr view "$pr" --repo "$repo" \
--json number,state,isDraft,mergeable,reviewDecision,updatedAt,headRefOid,statusCheckRollup,reviews \
--jq '{
number, state, isDraft, mergeable, reviewDecision, updatedAt, headRefOid,
checks: [.statusCheckRollup[]? | {name, status, conclusion, detailsUrl}],
reviews: [.reviews[]? | {author: .author.login, state, submittedAt}]
}'
echo
echo "== Current diff file list =="
git diff --name-status "origin/develop...HEAD"
echo
echo "== Active missing local asset references in cstudioTheme CSS =="
python3 - <<'PY'
import re
from pathlib import Path
root = Path.cwd().resolve()
theme = root / "studio-ui/static-assets/themes/cstudioTheme"
missing = []
for css in theme.rglob("*.css"):
text = css.read_text(encoding="utf-8", errors="replace")
active = re.sub(r"/\*.*?\*/", "", text, flags=re.S)
for match in re.finditer(r"url\(\s*(['\"]?)(.*?)\1\s*\)", active, flags=re.I):
raw_url = match.group(2).strip()
if not raw_url or raw_url.startswith(("#", "data:", "http:", "https:", "//", "/")):
continue
url = raw_url.split("?", 1)[0].split("#", 1)[0]
if not url:
continue
target = (css.parent / url).resolve()
try:
rel_target = target.relative_to(root)
except ValueError:
continue
if not target.is_file():
line = text.count("\n", 0, match.start()) + 1
missing.append((css.relative_to(root), line, raw_url, rel_target))
for css, line, url, target in missing:
print(f"{css}: Line {line}: url({url}) -> missing {target}")
print(f"Total active missing local CSS asset references: {len(missing)}")
PY
echo
echo "== RTE placeholder rule and possible matching assets =="
if [ -f "$theme/yui/assets/rte.css" ]; then
rg -n -C 3 'crafterEmbed|placeholder|url\(' "$theme/yui/assets/rte.css" || true
fi
fd -HI -a -t f -i 'placeholder.*' . | sed 's#^\./##' | head -n 100
echo
echo "== Recent commits affecting previously flagged files =="
git log --oneline -8 -- \
"$theme/presentation.css" \
"$theme/yui/assets/rte.css"Length of output: 17005
I would still hold off on merging because GitHub currently shows:
The branch itself is non-draft and mergeable. Once Travis is green (or formally handled) and human review is approved, this is ready for handoff. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
repo="craftersoftware/craftercms"
pr="8832"
theme="studio-ui/static-assets/themes/cstudioTheme"
echo "== Pull request status =="
gh pr view "$pr" --repo "$repo" \
--json state,isDraft,mergeable,reviewDecision,statusCheckRollup,updatedAt,headRefOid \
--jq '{
state, isDraft, mergeable, reviewDecision, updatedAt, headRefOid,
checks: [.statusCheckRollup[]? | {name, status, conclusion, detailsUrl}]
}'
echo
echo "== Changed files =="
git diff --name-status "origin/develop...HEAD"
echo
echo "== Active missing local CSS asset references in restored theme =="
python3 - <<'PY'
import re
from pathlib import Path
root = Path.cwd().resolve()
theme = root / "studio-ui/static-assets/themes/cstudioTheme"
missing = []
for css in theme.rglob("*.css"):
text = css.read_text(encoding="utf-8", errors="replace")
# Preserve newlines while excluding comments, so reported line numbers match source.
active = re.sub(r"/\*.*?\*/", lambda m: "\n" * m.group(0).count("\n"), text, flags=re.S)
for match in re.finditer(r"url\(\s*(['\"]?)(.*?)\1\s*\)", active, flags=re.I):
url = match.group(2).strip()
if not url or url.startswith(("#", "data:", "http:", "https:", "//", "/")):
continue
url = url.split("?", 1)[0].split("#", 1)[0]
target = (css.parent / url).resolve()
try:
target.relative_to(root)
except ValueError:
continue
if not target.is_file():
line = active.count("\n", 0, match.start()) + 1
missing.append((str(css.relative_to(root)), line, url, str(target.relative_to(root))))
for item in missing:
print("{}: Line {}: url({}) -> missing {}".format(*item))
print(f"Total active missing local CSS asset references: {len(missing)}")
PY
echo
echo "== RTE placeholder rule and target candidates =="
rg -n -C 3 'crafterEmbed|placeholder\.png|url\(' "$theme/yui/assets/rte.css" || true
fd -HI -a -t f -g 'placeholder.png' . | sed 's#^\./##' || true
echo
echo "== Recent commits touching prior finding files =="
git log --oneline -8 -- "$theme/presentation.css" "$theme/yui/assets/rte.css"Length of output: 15911 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
repo="craftersoftware/craftercms"
sha="43ec962649825c629a4b309b32d16b109008b730"
echo "== Commit status details =="
gh api "repos/${repo}/commits/${sha}/status" \
--jq '.statuses[] | select(.context == "Travis CI - Pull Request") | {state, context, description, target_url, created_at, updated_at}'
echo
echo "== Check-run details associated with the head commit =="
gh api "repos/${repo}/commits/${sha}/check-runs" \
-H "Accept: application/vnd.github+json" \
--jq '.check_runs[] | {name, status, conclusion, details_url, output: {title: .output.title, summary: .output.summary}}'Length of output: 1330
I did not find another code-level blocker in this final pass. However, I would not merge yet because GitHub still reports:
The PR is structurally mergeable. Once Travis is green and the required human approval is in place, it looks ready to merge. |
rart
left a comment
There was a problem hiding this comment.
We need a followup cleanse ticket.
I doubt all these are used. Once FE1 is gone most of this should go.
The .gitignore also needs to be verified upon building there's no untracked files that could undesirably make it into the repo.
|
This will pollute our new repo and codebase if not used. Many of these are binaries that we should think twice about including in a git repo. |
Ticket reference or the full description of what's in the PR
Summary by CodeRabbit