feat(a2ui): refactor ui and support theme#2607
Conversation
🦋 Changeset detectedLatest commit: 5ee4f3a The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
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:
📝 WalkthroughWalkthroughAdds light/dark theme support and a new a2ui token theme; threads ChangesTheme + playground wiring
Catalog components and typings
Catalog styles: import switch and token migration
Estimated code review effort 🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/genui/a2ui/styles/catalog/Text.css (1)
110-121:⚠️ Potential issue | 🔴 Critical | ⚡ Quick winDuplicate CSS rule conflict with
Button.css.This rule block is duplicated in
packages/genui/a2ui/styles/catalog/Button.cssat lines 39-50 with a conflictingcolorvalue:
- Text.css (here):
color: var(--a2ui-color-on-primary);- Button.css:
color: inherit;Both files define identical selectors (
.button .text-body,.button .text-caption, etc.) with the same specificity, making the effective style dependent on CSS load order. This creates unpredictable behavior.Resolution: Keep only one rule. Since
Button.cssalready sets.button { color: var(--a2ui-color-on-primary); }, thecolor: inherit;inButton.cssis the correct approach. Remove this block fromText.css.🔧 Proposed fix
Remove the duplicate rule block:
-.button .text-body, -.button .text-caption, -.button .text-h1, -.button .text-h2, -.button .text-h3, -.button .text-h4, -.button .text-h5, -.button .text-price, -.button .text-link, -.button .text-label { - color: var(--a2ui-color-on-primary); -}🤖 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 `@packages/genui/a2ui/styles/catalog/Text.css` around lines 110 - 121, Remove the duplicate selector block from Text.css that defines ".button .text-body, .button .text-caption, .button .text-h1, .button .text-h2, .button .text-h3, .button .text-h4, .button .text-h5, .button .text-price, .button .text-link, .button .text-label { color: var(--a2ui-color-on-primary); }" so Button.css's approach is authoritative; rely on Button.css's ".button { color: var(--a2ui-color-on-primary); }" + its ".button .text-*" rules using "color: inherit" to ensure consistent styling and remove the conflicting rule from Text.css.
🧹 Nitpick comments (3)
packages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.ts (1)
5-9: ⚡ Quick winStrengthen theme type for consistency.
The
themefield is typed asstring, while throughout the rest of the codebase it's strictly typed as'light' | 'dark'(e.g.,packages/genui/a2ui-playground/src/utils/renderUrl.ts:13,packages/genui/a2ui-playground/src/render.tsx:24). This type inconsistency weakens type safety—code consumingglobalProps.themein the Lynx context won't benefit from the literal type constraint.🔧 Proposed fix
declare module '@lynx-js/types' { interface GlobalProps { - theme?: string; + theme?: 'light' | 'dark'; } }🤖 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 `@packages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.ts` around lines 5 - 9, The GlobalProps.theme is currently typed as string in the declared module '@lynx-js/types'; change the type of the theme property on interface GlobalProps to the literal union 'light' | 'dark' so it matches the rest of the codebase (e.g., renderUrl.ts and render.tsx) and restores strict type safety when consuming globalProps.theme.packages/genui/a2ui-playground/package.json (1)
17-17: 💤 Low valueConsider using a version range for consistency.
The dependency
@lynx-js/luna-stylesis pinned to an exact version (0.1.0), while other external dependencies in this file use caret ranges (e.g.,^6.0.2,^4.25.9). Exact pinning prevents automatic patch and minor updates that might include bug fixes.Unless exact version pinning is required for theme compatibility, consider using
"^0.1.0"for consistency with the project's dependency management pattern.🤖 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 `@packages/genui/a2ui-playground/package.json` at line 17, The dependency entry for `@lynx-js/luna-styles` in package.json is pinned to an exact version "0.1.0"; update it to a caret range "^0.1.0" to match the project's other dependencies and allow minor/patch upgrades, i.e., modify the dependency string for "@lynx-js/luna-styles" in package.json to use "^0.1.0" unless there is a specific compatibility reason to keep the exact pin—if so, add a comment in the package.json or PR explanation documenting why it must remain exact.packages/genui/a2ui/styles/catalog/Button.css (1)
24-26: 💤 Low value
.button-primaryis redundant.The
.buttonbase class already setsbackground-color: var(--a2ui-color-primary);at line 12, making this variant modifier redundant:.button { background-color: var(--a2ui-color-primary); /* line 12 */ } .button-primary { background-color: var(--a2ui-color-primary); /* duplicate */ }Consider removing
.button-primaryunless it's intended for future extension or explicit override scenarios.🤖 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 `@packages/genui/a2ui/styles/catalog/Button.css` around lines 24 - 26, Remove the redundant .button-primary rule that duplicates the background-color already set by .button; locate the .button-primary selector and either delete it or consolidate any unique styles into the base .button (or rename/extend it only if you plan a distinct modifier), ensuring no behavioral change and keeping .button as the single source for background-color.
🤖 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 `@packages/genui/a2ui-playground/src/pages/ComponentsPage.tsx`:
- Around line 40-46: ComponentsPage currently ignores the incoming theme prop
when rendering the JSON editors and always forces the dark CodeMirror theme;
update the CodeMirror instances inside ComponentsPage (the CodeMirror component
usages around the initial snippet and at the block referenced 134-140) to use
the passed-in theme prop instead of a hardcoded 'dark' (e.g., derive the editor
theme from the theme prop or map 'light'/'dark' to the appropriate CodeMirror
theme names) so the JSON editors follow the selected theme.
In `@packages/genui/a2ui/src/catalog/CheckBox/index.tsx`:
- Around line 27-31: The resolved label from resolveA2UIValue (assigned to
label) is typed unknown and is being cast to string unsafely; update the
CheckBox component to validate the resolved value before rendering (and apply
the same pattern for Text usage): check if label is null/undefined and use an
empty string or props.fallback, if typeof label === 'string' use it directly, if
it's a primitive (number/boolean) convert with String(label), and if it's an
object/array serialize safely (e.g., JSON.stringify or a safe inspector) or
fallback rather than blindly casting—refer to the label variable and
resolveA2UIValue call and the Text rendering sites to locate where to add these
guards and fallback logic.
In `@packages/genui/a2ui/src/catalog/Image/index.tsx`:
- Line 53: The JSX currently passes style={weight ? { flex: `${weight} ${weight}
0` } : undefined}, which violates exactOptionalPropertyTypes because it
explicitly passes undefined to an optional prop; instead, stop passing the style
prop when weight is falsy by conditionally spreading the prop object into the
element: build an object like ...(weight ? { style: { flex: `${weight} ${weight}
0` } } : {}) and spread it into the component props so style is only present
when weight is set (refer to the weight identifier and the style prop usage in
packages/genui/a2ui/src/catalog/Image/index.tsx).
In `@packages/genui/a2ui/src/catalog/Text/index.tsx`:
- Around line 31-39: The weight threshold logic in the Text component sets
'text-weight-1' for any numeric weight < 1.5 (including 0 or negatives); update
the conditional in the block that computes weightClass so a weight class is only
applied for valid positive weights (e.g., require weight >= 1 or another chosen
lower bound) and skip assigning weightClass (leave undefined/null) for values
below that bound; adjust the branches around the existing checks (the if (typeof
weight === 'number') { ... } block that assigns 'text-weight-2',
'text-weight-1-5', or 'text-weight-1') to include the lower-bound check and
ensure negative/zero weights don’t map to 'text-weight-1'.
In `@packages/genui/a2ui/src/utils/resolveValue.ts`:
- Around line 300-305: The top-level string branch in resolveA2UIValue returns
plain strings without handling binding or call-expression strings; update the
string handling in resolveValue.ts so that after checking for template
interpolation (resolveTemplate) you also detect and resolve top-level
call-expression and binding strings by invoking the existing
resolveCallExpression and resolveBinding helpers (use the same surface and
dataContextPath/context arguments) before returning the value, ensuring
resolveTemplate, resolveCallExpression and resolveBinding are tried in the
correct order.
---
Outside diff comments:
In `@packages/genui/a2ui/styles/catalog/Text.css`:
- Around line 110-121: Remove the duplicate selector block from Text.css that
defines ".button .text-body, .button .text-caption, .button .text-h1, .button
.text-h2, .button .text-h3, .button .text-h4, .button .text-h5, .button
.text-price, .button .text-link, .button .text-label { color:
var(--a2ui-color-on-primary); }" so Button.css's approach is authoritative; rely
on Button.css's ".button { color: var(--a2ui-color-on-primary); }" + its
".button .text-*" rules using "color: inherit" to ensure consistent styling and
remove the conflicting rule from Text.css.
---
Nitpick comments:
In `@packages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.ts`:
- Around line 5-9: The GlobalProps.theme is currently typed as string in the
declared module '@lynx-js/types'; change the type of the theme property on
interface GlobalProps to the literal union 'light' | 'dark' so it matches the
rest of the codebase (e.g., renderUrl.ts and render.tsx) and restores strict
type safety when consuming globalProps.theme.
In `@packages/genui/a2ui-playground/package.json`:
- Line 17: The dependency entry for `@lynx-js/luna-styles` in package.json is
pinned to an exact version "0.1.0"; update it to a caret range "^0.1.0" to match
the project's other dependencies and allow minor/patch upgrades, i.e., modify
the dependency string for "@lynx-js/luna-styles" in package.json to use "^0.1.0"
unless there is a specific compatibility reason to keep the exact pin—if so, add
a comment in the package.json or PR explanation documenting why it must remain
exact.
In `@packages/genui/a2ui/styles/catalog/Button.css`:
- Around line 24-26: Remove the redundant .button-primary rule that duplicates
the background-color already set by .button; locate the .button-primary selector
and either delete it or consolidate any unique styles into the base .button (or
rename/extend it only if you plan a distinct modifier), ensuring no behavioral
change and keeping .button as the single source for background-color.
🪄 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: d06e7252-5826-4a62-a480-c63e4e7a033b
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (41)
.changeset/soft-tomatoes-wave.mdpackages/genui/a2ui-playground/lynx-src/a2ui/App.tsxpackages/genui/a2ui-playground/lynx-src/a2ui/index.csspackages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.tspackages/genui/a2ui-playground/package.jsonpackages/genui/a2ui-playground/src/App.tsxpackages/genui/a2ui-playground/src/pages/ComponentsPage.tsxpackages/genui/a2ui-playground/src/pages/DemosListPage.tsxpackages/genui/a2ui-playground/src/pages/DemosPage.tsxpackages/genui/a2ui-playground/src/render.tsxpackages/genui/a2ui-playground/src/utils/renderUrl.tspackages/genui/a2ui/src/catalog/Button/index.tsxpackages/genui/a2ui/src/catalog/Card/index.tsxpackages/genui/a2ui/src/catalog/CheckBox/index.tsxpackages/genui/a2ui/src/catalog/Column/index.tsxpackages/genui/a2ui/src/catalog/Image/index.tsxpackages/genui/a2ui/src/catalog/List/index.tsxpackages/genui/a2ui/src/catalog/RadioGroup/index.tsxpackages/genui/a2ui/src/catalog/Row/index.tsxpackages/genui/a2ui/src/catalog/Text/index.tsxpackages/genui/a2ui/src/core/A2UIRender.tsxpackages/genui/a2ui/src/core/useDataBinding.tspackages/genui/a2ui/src/css.d.tspackages/genui/a2ui/src/utils/binding.tspackages/genui/a2ui/src/utils/resolveValue.tspackages/genui/a2ui/styles/catalog/Button.csspackages/genui/a2ui/styles/catalog/Card.csspackages/genui/a2ui/styles/catalog/CheckBox.csspackages/genui/a2ui/styles/catalog/Column.csspackages/genui/a2ui/styles/catalog/Divider.csspackages/genui/a2ui/styles/catalog/Image.csspackages/genui/a2ui/styles/catalog/List.csspackages/genui/a2ui/styles/catalog/RadioGroup.csspackages/genui/a2ui/styles/catalog/Row.csspackages/genui/a2ui/styles/catalog/Text.csspackages/genui/a2ui/styles/catalog/luna-dark.csspackages/genui/a2ui/styles/catalog/luna-light.csspackages/genui/a2ui/styles/catalog/luna.csspackages/genui/a2ui/styles/catalog/lunaris-dark.csspackages/genui/a2ui/styles/catalog/lunaris-light.csspackages/genui/a2ui/styles/theme.css
💤 Files with no reviewable changes (5)
- packages/genui/a2ui/styles/catalog/luna-light.css
- packages/genui/a2ui/styles/catalog/luna.css
- packages/genui/a2ui/styles/catalog/luna-dark.css
- packages/genui/a2ui/styles/catalog/lunaris-light.css
- packages/genui/a2ui/styles/catalog/lunaris-dark.css
c703a0e to
8fbe5df
Compare
There was a problem hiding this comment.
Actionable comments posted: 7
🧹 Nitpick comments (1)
packages/genui/a2ui/src/catalog/Button/index.tsx (1)
51-53: 💤 Low valueMinor: className construction adds trailing space when enabled.
The template literal
button button-${variant} ${isButtonEnabled(props) ? '' : 'button-disabled'}results in a trailing space when the button is enabled (e.g.,"button button-primary "). While this typically doesn't cause rendering issues, it's cleaner to avoid it.♻️ Proposed fix to remove trailing space
- className={`button button-${variant} ${ - isButtonEnabled(props) ? '' : 'button-disabled' - }`} + className={`button button-${variant}${ + isButtonEnabled(props) ? '' : ' button-disabled' + }`}Or use an array-based approach:
- className={`button button-${variant} ${ - isButtonEnabled(props) ? '' : 'button-disabled' - }`} + className={[ + 'button', + `button-${variant}`, + !isButtonEnabled(props) && 'button-disabled', + ] + .filter(Boolean) + .join(' ')}🤖 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 `@packages/genui/a2ui/src/catalog/Button/index.tsx` around lines 51 - 53, The className template in the Button component produces a trailing space when enabled; update the className build in packages/genui/a2ui/src/catalog/Button/index.tsx (the Button component) to conditionally include 'button-disabled' without leaving an extra space—e.g., construct className from an array like ['button', `button-${variant}`, isButtonEnabled(props) ? null : 'button-disabled'].filter(Boolean).join(' ') or otherwise conditionally concatenate so no trailing space remains; ensure references to variant and isButtonEnabled(props) are used as in the current code.
🤖 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 `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css`:
- Line 74: The CSS uses an unknown type selector "page" which triggers
selector-type-no-unknown; either convert the selector to a class (rename "page"
to ".page" and update all usages in HTML/JSX/JSX-like components) or, if "page"
is a valid Lynx intrinsic element, locally suppress the lint rule by adding a
one-line stylelint disable comment immediately above the "page" rule (e.g., /*
stylelint-disable-next-line selector-type-no-unknown */) so the selector remains
unchanged; update any references accordingly (look for the "page" selector in
the stylesheet and related templates/components).
In `@packages/genui/a2ui-playground/src/styles.css`:
- Around line 974-978: The radial-gradient call uses the CSS custom property
--a2ui-color-overlay without a fallback, so if that token is undefined the
background may vanish; update the radial-gradient(...) expression to use a
fallback value (e.g. var(--a2ui-color-overlay, rgba(0,0,0,0.5)) or another
theme-safe color) so the gradient always renders, and ensure the change is
applied where radial-gradient(circle at top right, var(--a2ui-color-overlay),
transparent 18%) is defined.
In `@packages/genui/a2ui/src/catalog/Button/index.tsx`:
- Around line 15-18: The checks[].message property is declared but never used;
remove it from the checks prop type (change checks?: Array<{ condition?: unknown
}>) and from any related prop definitions/usages (e.g., Button props/interface
and any prop-types or TS interfaces referring to checks) to keep the API clean,
then update any tests, Storybook stories, or docs that mention checks.message;
alternatively, if you intended to surface messages to the UI, implement
rendering (e.g., show checks messages as tooltip/validation text in the Button
component) and ensure the checks prop is consumed where the Button is rendered.
- Line 54: The button currently always binds bindtap to handleClick so disabled
buttons still respond; update the component to only bind the handler when
isButtonEnabled(props) is true (i.e., conditionally set bindtap={handleClick} or
undefined), or add an early-return guard inside handleClick that checks
isButtonEnabled(props) and returns without dispatching if false; ensure
references to isButtonEnabled, handleClick, and the dispatch call are updated so
no action is dispatched for disabled buttons.
In `@packages/genui/a2ui/src/catalog/Image/index.tsx`:
- Around line 52-55: The code currently converts props.weight to a boolean and
only toggles image-weighted, losing numeric values and dropping 0; update the
Image component (the local weight constant and weightClass) so weight is
preserved as a number (e.g. const weight = typeof props.weight === 'number' ?
props.weight : undefined) and compute weightClass only based on existence
(weight !== undefined) while applying the numeric value to layout via inline
style or a data-attribute (for example style={{ flex: weight }} or style={{
flexGrow: weight }}), ensuring weight=0 results in flex:0 rather than being
ignored; adjust any analogous logic at the later block (lines ~61-67) the same
way.
In `@packages/genui/a2ui/styles/catalog/Image.css`:
- Around line 15-19: The .image-variant-smallFeature CSS sets width: 120px but
uses max-width: var(--a2ui-image-small-feature-size, 100px) which undercuts the
intended baseline; fix by aligning the default sizes: update max-width to use
the same baseline (e.g. max-width: var(--a2ui-image-small-feature-size, 120px))
or remove the max-width if you want a hard 120px width, ensuring the CSS
variable --a2ui-image-small-feature-size is the single source of truth for the
default size.
In `@packages/genui/a2ui/styles/catalog/List.css`:
- Around line 13-16: The .list.list-horizontal rule sets align-items with higher
specificity than the utility selectors (.list-align-*) so those utilities are
overridden; change the CSS so the horizontal default center alignment uses the
same specificity as the utilities (e.g., replace the generic
.list.list-horizontal { align-items: center } with a selector that combines the
horizontal class and the center utility, e.g.
.list.list-horizontal.list-align-center { align-items: center }) and apply the
same pattern to the other horizontal-related rules referenced (lines ~24-37) so
.list-align-start/.list-align-end/.list-align-stretch can override when present.
---
Nitpick comments:
In `@packages/genui/a2ui/src/catalog/Button/index.tsx`:
- Around line 51-53: The className template in the Button component produces a
trailing space when enabled; update the className build in
packages/genui/a2ui/src/catalog/Button/index.tsx (the Button component) to
conditionally include 'button-disabled' without leaving an extra space—e.g.,
construct className from an array like ['button', `button-${variant}`,
isButtonEnabled(props) ? null : 'button-disabled'].filter(Boolean).join(' ') or
otherwise conditionally concatenate so no trailing space remains; ensure
references to variant and isButtonEnabled(props) are used as in the current
code.
🪄 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: 16f092a3-e3da-4449-bcad-d9e66243746a
📒 Files selected for processing (37)
.changeset/soft-tomatoes-wave.mdpackages/genui/a2ui-playground/lynx-src/a2ui/App.tsxpackages/genui/a2ui-playground/lynx-src/a2ui/index.csspackages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.tspackages/genui/a2ui-playground/package.jsonpackages/genui/a2ui-playground/src/App.tsxpackages/genui/a2ui-playground/src/pages/ComponentsPage.tsxpackages/genui/a2ui-playground/src/pages/DemosListPage.tsxpackages/genui/a2ui-playground/src/pages/DemosPage.tsxpackages/genui/a2ui-playground/src/render.tsxpackages/genui/a2ui-playground/src/styles.csspackages/genui/a2ui-playground/src/utils/renderUrl.tspackages/genui/a2ui/src/catalog/Button/index.tsxpackages/genui/a2ui/src/catalog/Card/index.tsxpackages/genui/a2ui/src/catalog/CheckBox/index.tsxpackages/genui/a2ui/src/catalog/Column/index.tsxpackages/genui/a2ui/src/catalog/Image/index.tsxpackages/genui/a2ui/src/catalog/List/index.tsxpackages/genui/a2ui/src/catalog/Row/index.tsxpackages/genui/a2ui/src/catalog/Text/index.tsxpackages/genui/a2ui/src/css.d.tspackages/genui/a2ui/styles/catalog/Button.csspackages/genui/a2ui/styles/catalog/Card.csspackages/genui/a2ui/styles/catalog/CheckBox.csspackages/genui/a2ui/styles/catalog/Column.csspackages/genui/a2ui/styles/catalog/Divider.csspackages/genui/a2ui/styles/catalog/Image.csspackages/genui/a2ui/styles/catalog/List.csspackages/genui/a2ui/styles/catalog/RadioGroup.csspackages/genui/a2ui/styles/catalog/Row.csspackages/genui/a2ui/styles/catalog/Text.csspackages/genui/a2ui/styles/catalog/luna-dark.csspackages/genui/a2ui/styles/catalog/luna-light.csspackages/genui/a2ui/styles/catalog/luna.csspackages/genui/a2ui/styles/catalog/lunaris-dark.csspackages/genui/a2ui/styles/catalog/lunaris-light.csspackages/genui/a2ui/styles/theme.css
💤 Files with no reviewable changes (5)
- packages/genui/a2ui/styles/catalog/luna-dark.css
- packages/genui/a2ui/styles/catalog/lunaris-dark.css
- packages/genui/a2ui/styles/catalog/luna-light.css
- packages/genui/a2ui/styles/catalog/luna.css
- packages/genui/a2ui/styles/catalog/lunaris-light.css
✅ Files skipped from review due to trivial changes (5)
- packages/genui/a2ui-playground/package.json
- .changeset/soft-tomatoes-wave.md
- packages/genui/a2ui/src/css.d.ts
- packages/genui/a2ui/src/catalog/CheckBox/index.tsx
- packages/genui/a2ui/styles/catalog/Column.css
🚧 Files skipped from review as they are similar to previous changes (19)
- packages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.ts
- packages/genui/a2ui/styles/catalog/Divider.css
- packages/genui/a2ui-playground/src/utils/renderUrl.ts
- packages/genui/a2ui/src/catalog/Column/index.tsx
- packages/genui/a2ui/src/catalog/Card/index.tsx
- packages/genui/a2ui/src/catalog/List/index.tsx
- packages/genui/a2ui/styles/catalog/Text.css
- packages/genui/a2ui/src/catalog/Row/index.tsx
- packages/genui/a2ui-playground/src/pages/ComponentsPage.tsx
- packages/genui/a2ui-playground/src/pages/DemosPage.tsx
- packages/genui/a2ui/styles/theme.css
- packages/genui/a2ui/styles/catalog/CheckBox.css
- packages/genui/a2ui/styles/catalog/Button.css
- packages/genui/a2ui/styles/catalog/RadioGroup.css
- packages/genui/a2ui/styles/catalog/Card.css
- packages/genui/a2ui-playground/src/render.tsx
- packages/genui/a2ui-playground/src/pages/DemosListPage.tsx
- packages/genui/a2ui/styles/catalog/Row.css
- packages/genui/a2ui-playground/lynx-src/a2ui/App.tsx
There was a problem hiding this comment.
♻️ Duplicate comments (1)
packages/genui/a2ui-playground/lynx-src/a2ui/index.css (1)
74-81:⚠️ Potential issue | 🔴 CriticalThe
pagetype selector issue remains unresolved.The previous review already identified that line 74 uses
pageas a type selector, which triggers the stylelintselector-type-no-unknownerror. According to the AI summary,App.tsxappliesclassName="page", which requires a class selector (.page), not a type selector. Additionally, this creates ambiguity with the existing.pageclass defined at lines 7-11.🤖 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 `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css` around lines 74 - 81, The CSS currently uses a type selector "page" which causes the stylelint selector-type-no-unknown error and conflicts with the existing .page class used in App.tsx (className="page"); change the selector from the type selector page to the class selector .page, merge or reconcile any duplicate rules with the existing .page block (remove the ambiguous type selector), and ensure all references in App.tsx continue to use className="page" so the styles apply correctly.
🤖 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.
Duplicate comments:
In `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css`:
- Around line 74-81: The CSS currently uses a type selector "page" which causes
the stylelint selector-type-no-unknown error and conflicts with the existing
.page class used in App.tsx (className="page"); change the selector from the
type selector page to the class selector .page, merge or reconcile any duplicate
rules with the existing .page block (remove the ambiguous type selector), and
ensure all references in App.tsx continue to use className="page" so the styles
apply correctly.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 4f39526e-053f-42f0-9fd4-09bfe5681082
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (37)
.changeset/soft-tomatoes-wave.mdpackages/genui/a2ui-playground/lynx-src/a2ui/App.tsxpackages/genui/a2ui-playground/lynx-src/a2ui/index.csspackages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.tspackages/genui/a2ui-playground/package.jsonpackages/genui/a2ui-playground/src/App.tsxpackages/genui/a2ui-playground/src/pages/ComponentsPage.tsxpackages/genui/a2ui-playground/src/pages/DemosListPage.tsxpackages/genui/a2ui-playground/src/pages/DemosPage.tsxpackages/genui/a2ui-playground/src/render.tsxpackages/genui/a2ui-playground/src/styles.csspackages/genui/a2ui-playground/src/utils/renderUrl.tspackages/genui/a2ui/src/catalog/Button/index.tsxpackages/genui/a2ui/src/catalog/Card/index.tsxpackages/genui/a2ui/src/catalog/CheckBox/index.tsxpackages/genui/a2ui/src/catalog/Column/index.tsxpackages/genui/a2ui/src/catalog/Image/index.tsxpackages/genui/a2ui/src/catalog/List/index.tsxpackages/genui/a2ui/src/catalog/Row/index.tsxpackages/genui/a2ui/src/catalog/Text/index.tsxpackages/genui/a2ui/src/css.d.tspackages/genui/a2ui/styles/catalog/Button.csspackages/genui/a2ui/styles/catalog/Card.csspackages/genui/a2ui/styles/catalog/CheckBox.csspackages/genui/a2ui/styles/catalog/Column.csspackages/genui/a2ui/styles/catalog/Divider.csspackages/genui/a2ui/styles/catalog/Image.csspackages/genui/a2ui/styles/catalog/List.csspackages/genui/a2ui/styles/catalog/RadioGroup.csspackages/genui/a2ui/styles/catalog/Row.csspackages/genui/a2ui/styles/catalog/Text.csspackages/genui/a2ui/styles/catalog/luna-dark.csspackages/genui/a2ui/styles/catalog/luna-light.csspackages/genui/a2ui/styles/catalog/luna.csspackages/genui/a2ui/styles/catalog/lunaris-dark.csspackages/genui/a2ui/styles/catalog/lunaris-light.csspackages/genui/a2ui/styles/theme.css
💤 Files with no reviewable changes (5)
- packages/genui/a2ui/styles/catalog/luna-dark.css
- packages/genui/a2ui/styles/catalog/lunaris-light.css
- packages/genui/a2ui/styles/catalog/luna-light.css
- packages/genui/a2ui/styles/catalog/lunaris-dark.css
- packages/genui/a2ui/styles/catalog/luna.css
✅ Files skipped from review due to trivial changes (6)
- packages/genui/a2ui/src/catalog/CheckBox/index.tsx
- packages/genui/a2ui-playground/package.json
- packages/genui/a2ui/styles/catalog/Divider.css
- packages/genui/a2ui/src/css.d.ts
- .changeset/soft-tomatoes-wave.md
- packages/genui/a2ui/styles/theme.css
🚧 Files skipped from review as they are similar to previous changes (25)
- packages/genui/a2ui/src/catalog/List/index.tsx
- packages/genui/a2ui-playground/src/pages/ComponentsPage.tsx
- packages/genui/a2ui-playground/src/utils/renderUrl.ts
- packages/genui/a2ui-playground/src/pages/DemosListPage.tsx
- packages/genui/a2ui/src/catalog/Row/index.tsx
- packages/genui/a2ui-playground/src/App.tsx
- packages/genui/a2ui/src/catalog/Card/index.tsx
- packages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.ts
- packages/genui/a2ui/styles/catalog/Text.css
- packages/genui/a2ui/src/catalog/Button/index.tsx
- packages/genui/a2ui/styles/catalog/Card.css
- packages/genui/a2ui/styles/catalog/Button.css
- packages/genui/a2ui-playground/src/render.tsx
- packages/genui/a2ui/styles/catalog/CheckBox.css
- packages/genui/a2ui-playground/src/pages/DemosPage.tsx
- packages/genui/a2ui-playground/lynx-src/a2ui/App.tsx
- packages/genui/a2ui/styles/catalog/Row.css
- packages/genui/a2ui/src/catalog/Text/index.tsx
- packages/genui/a2ui/styles/catalog/List.css
- packages/genui/a2ui/styles/catalog/Column.css
- packages/genui/a2ui/src/catalog/Column/index.tsx
- packages/genui/a2ui/src/catalog/Image/index.tsx
- packages/genui/a2ui/styles/catalog/RadioGroup.css
- packages/genui/a2ui-playground/src/styles.css
- packages/genui/a2ui/styles/catalog/Image.css
There was a problem hiding this comment.
♻️ Duplicate comments (1)
packages/genui/a2ui-playground/lynx-src/a2ui/index.css (1)
74-74:⚠️ Potential issue | 🟠 Major | ⚡ Quick winFix the unknown
pageselector lint failure.This issue was previously flagged and remains unresolved. The
pagetype selector triggersselector-type-no-unknown. Ifpageis a valid Lynx intrinsic element, add a stylelint disable comment; otherwise, consider using a class selector.🤖 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 `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css` at line 74, The CSS rule using the type selector "page" is triggering stylelint's selector-type-no-unknown; either replace the type selector with a class (e.g., .page) and update usages accordingly, or if "page" is a valid Lynx intrinsic element, add a stylelint-disable comment scoped to that selector (e.g., /* stylelint-disable-next-line selector-type-no-unknown */) immediately before the "page" rule in a2ui/index.css so the linter stops flagging it; update any corresponding markup references if you change the selector type.
🤖 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.
Duplicate comments:
In `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css`:
- Line 74: The CSS rule using the type selector "page" is triggering stylelint's
selector-type-no-unknown; either replace the type selector with a class (e.g.,
.page) and update usages accordingly, or if "page" is a valid Lynx intrinsic
element, add a stylelint-disable comment scoped to that selector (e.g., /*
stylelint-disable-next-line selector-type-no-unknown */) immediately before the
"page" rule in a2ui/index.css so the linter stops flagging it; update any
corresponding markup references if you change the selector type.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 5ddf4108-3dcf-4665-8463-9b7e2f76fb07
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (37)
.changeset/soft-tomatoes-wave.mdpackages/genui/a2ui-playground/lynx-src/a2ui/App.tsxpackages/genui/a2ui-playground/lynx-src/a2ui/index.csspackages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.tspackages/genui/a2ui-playground/package.jsonpackages/genui/a2ui-playground/src/App.tsxpackages/genui/a2ui-playground/src/pages/ComponentsPage.tsxpackages/genui/a2ui-playground/src/pages/DemosListPage.tsxpackages/genui/a2ui-playground/src/pages/DemosPage.tsxpackages/genui/a2ui-playground/src/render.tsxpackages/genui/a2ui-playground/src/styles.csspackages/genui/a2ui-playground/src/utils/renderUrl.tspackages/genui/a2ui/src/catalog/Button/index.tsxpackages/genui/a2ui/src/catalog/Card/index.tsxpackages/genui/a2ui/src/catalog/CheckBox/index.tsxpackages/genui/a2ui/src/catalog/Column/index.tsxpackages/genui/a2ui/src/catalog/Image/index.tsxpackages/genui/a2ui/src/catalog/List/index.tsxpackages/genui/a2ui/src/catalog/Row/index.tsxpackages/genui/a2ui/src/catalog/Text/index.tsxpackages/genui/a2ui/src/css.d.tspackages/genui/a2ui/styles/catalog/Button.csspackages/genui/a2ui/styles/catalog/Card.csspackages/genui/a2ui/styles/catalog/CheckBox.csspackages/genui/a2ui/styles/catalog/Column.csspackages/genui/a2ui/styles/catalog/Divider.csspackages/genui/a2ui/styles/catalog/Image.csspackages/genui/a2ui/styles/catalog/List.csspackages/genui/a2ui/styles/catalog/RadioGroup.csspackages/genui/a2ui/styles/catalog/Row.csspackages/genui/a2ui/styles/catalog/Text.csspackages/genui/a2ui/styles/catalog/luna-dark.csspackages/genui/a2ui/styles/catalog/luna-light.csspackages/genui/a2ui/styles/catalog/luna.csspackages/genui/a2ui/styles/catalog/lunaris-dark.csspackages/genui/a2ui/styles/catalog/lunaris-light.csspackages/genui/a2ui/styles/theme.css
💤 Files with no reviewable changes (5)
- packages/genui/a2ui/styles/catalog/luna-light.css
- packages/genui/a2ui/styles/catalog/lunaris-dark.css
- packages/genui/a2ui/styles/catalog/luna.css
- packages/genui/a2ui/styles/catalog/luna-dark.css
- packages/genui/a2ui/styles/catalog/lunaris-light.css
✅ Files skipped from review due to trivial changes (5)
- packages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.ts
- packages/genui/a2ui-playground/package.json
- packages/genui/a2ui/src/catalog/List/index.tsx
- packages/genui/a2ui/styles/theme.css
- packages/genui/a2ui/styles/catalog/Divider.css
🚧 Files skipped from review as they are similar to previous changes (26)
- packages/genui/a2ui/src/catalog/Column/index.tsx
- packages/genui/a2ui/src/css.d.ts
- .changeset/soft-tomatoes-wave.md
- packages/genui/a2ui-playground/src/render.tsx
- packages/genui/a2ui/src/catalog/Row/index.tsx
- packages/genui/a2ui-playground/src/App.tsx
- packages/genui/a2ui-playground/src/pages/DemosListPage.tsx
- packages/genui/a2ui/src/catalog/CheckBox/index.tsx
- packages/genui/a2ui-playground/src/pages/DemosPage.tsx
- packages/genui/a2ui-playground/src/utils/renderUrl.ts
- packages/genui/a2ui/styles/catalog/List.css
- packages/genui/a2ui/styles/catalog/Column.css
- packages/genui/a2ui/styles/catalog/Image.css
- packages/genui/a2ui/styles/catalog/Row.css
- packages/genui/a2ui/src/catalog/Button/index.tsx
- packages/genui/a2ui-playground/src/pages/ComponentsPage.tsx
- packages/genui/a2ui/styles/catalog/CheckBox.css
- packages/genui/a2ui/src/catalog/Text/index.tsx
- packages/genui/a2ui-playground/src/styles.css
- packages/genui/a2ui/src/catalog/Card/index.tsx
- packages/genui/a2ui/styles/catalog/Text.css
- packages/genui/a2ui-playground/lynx-src/a2ui/App.tsx
- packages/genui/a2ui/styles/catalog/RadioGroup.css
- packages/genui/a2ui/src/catalog/Image/index.tsx
- packages/genui/a2ui/styles/catalog/Card.css
- packages/genui/a2ui/styles/catalog/Button.css
b46f2f9 to
a8bdbdb
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
♻️ Duplicate comments (1)
packages/genui/a2ui-playground/lynx-src/a2ui/index.css (1)
74-74:⚠️ Potential issue | 🟠 Major | ⚡ Quick winThe stylelint error for unknown
pageselector remains unaddressed.This is the same issue flagged in the previous review. The
selector-type-no-unknownlint error will still fail CI checks. Ifpageis a Lynx intrinsic element, add a stylelint disable comment as suggested in the previous review.🔧 Suggested fix
+/* stylelint-disable-next-line selector-type-no-unknown -- Lynx intrinsic element */ page { display: flex;🤖 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 `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css` at line 74, The CSS contains an unknown type selector "page" that trips stylelint's selector-type-no-unknown rule; if "page" is a Lynx intrinsic element, suppress the lint for that selector by adding a stylelint disable comment immediately before the selector (for example use a single-line disable such as disabling selector-type-no-unknown for the next line) and optionally re-enable afterward so only the "page" rule is ignored; update the file containing the "page" rule (index.css) around the page selector to include the appropriate /* stylelint-disable(-next-line) selector-type-no-unknown */ comment.
🧹 Nitpick comments (3)
packages/genui/a2ui/styles/catalog/Button.css (2)
24-26: ⚡ Quick winRemove redundant
.button-primaryrule.The
.button-primaryclass setsbackground-color: var(--a2ui-color-primary), but the base.buttonrule already sets this same background color on line 12. Unless this variant is intended to override a different variant (not visible in context), this rule is redundant and can be removed.♻️ Proposed fix to remove redundancy
-.button-primary { - background-color: var(--a2ui-color-primary); -} - .button-borderless { background-color: transparent; padding-left: 0;🤖 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 `@packages/genui/a2ui/styles/catalog/Button.css` around lines 24 - 26, Remove the redundant .button-primary CSS rule that duplicates the background-color already defined on .button; delete the .button-primary block (the rule setting background-color: var(--a2ui-color-primary)) so styling is only defined once on .button and avoid duplication between .button and .button-primary.
14-17: 💤 Low valueConsider removing unused transition properties.
The transition includes
transformandopacity, but these properties don't appear to be modified within the visible button styles. If they're not used by hover states, active states, or external interactions, consider removing them to keep the CSS lean.🤖 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 `@packages/genui/a2ui/styles/catalog/Button.css` around lines 14 - 17, The transition declaration in Button.css currently lists transform, opacity, and background-color but transform and opacity are unused; either remove the unused properties from the transition shorthand (leave only background-color) or add corresponding interactions that actually change transform/opacity (e.g., :hover/:active rules) so the transitions are meaningful—update the transition declaration in Button.css (the rule containing "transform 0.12s ease, opacity 0.12s ease, background-color 0.12s ease") and adjust/remove related hover/active styles accordingly.packages/genui/a2ui-playground/lynx-src/a2ui/index.css (1)
7-11: 💤 Low valueConsider clarifying the relationship between
.pageclass andpageelement styles.Both
.page(lines 7-11) andpage(lines 74-81) setbackground-color, though to different CSS variables that resolve to the same value via the theme mapping. If the.pageclass is always applied to thepageelement (as suggested byclassName={\page ${themeClassName}`}` in App.tsx), this duplication may be unnecessary.If they serve distinct purposes (e.g.,
.pagefor a wrapper div andpagefor the Lynx element), consider adding a comment explaining the separation.Also applies to: 74-81
🤖 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 `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css` around lines 7 - 11, The .page class and the page element selector both set background-color to theme variables and appear redundant when the App.tsx renders the page element with className={`page ${themeClassName}`}; either remove one of the duplicate background-color declarations (prefer keeping the element selector or the class depending on intended scoping) or add a brief comment above the selectors explaining why both exist (e.g., one targets a wrapper div vs the custom page element) and ensure the remaining rule has the correct specificity and ordering so themeClassName can override it as intended; reference the .page CSS rule and the page element rule and the App.tsx usage (`className={`page ${themeClassName}`}`) when making the change.
🤖 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 `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css`:
- Around line 23-24: The light/dark CSS variables (--a2ui-color-primary-light,
--a2ui-color-primary-dark, --a2ui-color-secondary-light,
--a2ui-color-secondary-dark) are all mapped to the same Luna tokens, nullifying
the light/dark distinction; update these vars to use the color-mixing pattern
from packages/genui/a2ui/styles/theme.css (mix base token with white for *-light
and with black for *-dark) so each pair produces distinct lighter and darker
variants while still sourcing the base Luna token.
In `@packages/genui/a2ui/styles/catalog/Button.css`:
- Around line 35-46: There are duplicate rules for the selectors (.button
.text-body, .button .text-caption, .button .text-h1, .button .text-h2, .button
.text-h3, .button .text-h4, .button .text-h5, .button .text-price, .button
.text-link, .button .text-label) that set conflicting color values (one file
uses color: inherit, the other color: var(--a2ui-color-on-primary)); remove the
redundancy by deleting the entire .button .text-* color block from Button.css so
Text.css is the single source of truth, or alternatively change the Button.css
block to the same var(--a2ui-color-on-primary) value (or reference the same CSS
variable) so both files align and there is no load-order dependency.
- Line 11: The change in Button.css replaces the previous fully-rounded value
with the CSS token --a2ui-border-radius (currently 0.25rem) which reduces button
corners from 9999px to slightly rounded; confirm this visual change matches the
updated design spec and either (a) update the token value to the intended
rounding or (b) revert the button rule to the previous fully-rounded value, and
then refresh and commit updated UI screenshots/screenshots folder so visual
tests reflect the new border radius; check the modified selector in Button.css
and the --a2ui-border-radius definition in theme.css when making the change.
---
Duplicate comments:
In `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css`:
- Line 74: The CSS contains an unknown type selector "page" that trips
stylelint's selector-type-no-unknown rule; if "page" is a Lynx intrinsic
element, suppress the lint for that selector by adding a stylelint disable
comment immediately before the selector (for example use a single-line disable
such as disabling selector-type-no-unknown for the next line) and optionally
re-enable afterward so only the "page" rule is ignored; update the file
containing the "page" rule (index.css) around the page selector to include the
appropriate /* stylelint-disable(-next-line) selector-type-no-unknown */
comment.
---
Nitpick comments:
In `@packages/genui/a2ui-playground/lynx-src/a2ui/index.css`:
- Around line 7-11: The .page class and the page element selector both set
background-color to theme variables and appear redundant when the App.tsx
renders the page element with className={`page ${themeClassName}`}; either
remove one of the duplicate background-color declarations (prefer keeping the
element selector or the class depending on intended scoping) or add a brief
comment above the selectors explaining why both exist (e.g., one targets a
wrapper div vs the custom page element) and ensure the remaining rule has the
correct specificity and ordering so themeClassName can override it as intended;
reference the .page CSS rule and the page element rule and the App.tsx usage
(`className={`page ${themeClassName}`}`) when making the change.
In `@packages/genui/a2ui/styles/catalog/Button.css`:
- Around line 24-26: Remove the redundant .button-primary CSS rule that
duplicates the background-color already defined on .button; delete the
.button-primary block (the rule setting background-color:
var(--a2ui-color-primary)) so styling is only defined once on .button and avoid
duplication between .button and .button-primary.
- Around line 14-17: The transition declaration in Button.css currently lists
transform, opacity, and background-color but transform and opacity are unused;
either remove the unused properties from the transition shorthand (leave only
background-color) or add corresponding interactions that actually change
transform/opacity (e.g., :hover/:active rules) so the transitions are
meaningful—update the transition declaration in Button.css (the rule containing
"transform 0.12s ease, opacity 0.12s ease, background-color 0.12s ease") and
adjust/remove related hover/active styles accordingly.
🪄 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: 287026d5-7152-44b9-96ff-f8eabd52efb9
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (37)
.changeset/soft-tomatoes-wave.mdpackages/genui/a2ui-playground/lynx-src/a2ui/App.tsxpackages/genui/a2ui-playground/lynx-src/a2ui/index.csspackages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.tspackages/genui/a2ui-playground/package.jsonpackages/genui/a2ui-playground/src/App.tsxpackages/genui/a2ui-playground/src/pages/ComponentsPage.tsxpackages/genui/a2ui-playground/src/pages/DemosListPage.tsxpackages/genui/a2ui-playground/src/pages/DemosPage.tsxpackages/genui/a2ui-playground/src/render.tsxpackages/genui/a2ui-playground/src/styles.csspackages/genui/a2ui-playground/src/utils/renderUrl.tspackages/genui/a2ui/src/catalog/Button/index.tsxpackages/genui/a2ui/src/catalog/Card/index.tsxpackages/genui/a2ui/src/catalog/CheckBox/index.tsxpackages/genui/a2ui/src/catalog/Column/index.tsxpackages/genui/a2ui/src/catalog/Image/index.tsxpackages/genui/a2ui/src/catalog/List/index.tsxpackages/genui/a2ui/src/catalog/Row/index.tsxpackages/genui/a2ui/src/catalog/Text/index.tsxpackages/genui/a2ui/src/css.d.tspackages/genui/a2ui/styles/catalog/Button.csspackages/genui/a2ui/styles/catalog/Card.csspackages/genui/a2ui/styles/catalog/CheckBox.csspackages/genui/a2ui/styles/catalog/Column.csspackages/genui/a2ui/styles/catalog/Divider.csspackages/genui/a2ui/styles/catalog/Image.csspackages/genui/a2ui/styles/catalog/List.csspackages/genui/a2ui/styles/catalog/RadioGroup.csspackages/genui/a2ui/styles/catalog/Row.csspackages/genui/a2ui/styles/catalog/Text.csspackages/genui/a2ui/styles/catalog/luna-dark.csspackages/genui/a2ui/styles/catalog/luna-light.csspackages/genui/a2ui/styles/catalog/luna.csspackages/genui/a2ui/styles/catalog/lunaris-dark.csspackages/genui/a2ui/styles/catalog/lunaris-light.csspackages/genui/a2ui/styles/theme.css
💤 Files with no reviewable changes (5)
- packages/genui/a2ui/styles/catalog/luna-dark.css
- packages/genui/a2ui/styles/catalog/luna-light.css
- packages/genui/a2ui/styles/catalog/lunaris-light.css
- packages/genui/a2ui/styles/catalog/luna.css
- packages/genui/a2ui/styles/catalog/lunaris-dark.css
✅ Files skipped from review due to trivial changes (6)
- packages/genui/a2ui/src/catalog/Row/index.tsx
- packages/genui/a2ui/src/catalog/Button/index.tsx
- packages/genui/a2ui/src/catalog/List/index.tsx
- packages/genui/a2ui-playground/lynx-src/a2ui/rspeedy-env.d.ts
- .changeset/soft-tomatoes-wave.md
- packages/genui/a2ui/src/catalog/Column/index.tsx
🚧 Files skipped from review as they are similar to previous changes (24)
- packages/genui/a2ui-playground/src/utils/renderUrl.ts
- packages/genui/a2ui/src/catalog/CheckBox/index.tsx
- packages/genui/a2ui-playground/src/App.tsx
- packages/genui/a2ui-playground/src/pages/ComponentsPage.tsx
- packages/genui/a2ui/src/css.d.ts
- packages/genui/a2ui/styles/catalog/Column.css
- packages/genui/a2ui-playground/src/pages/DemosListPage.tsx
- packages/genui/a2ui/styles/catalog/Image.css
- packages/genui/a2ui-playground/package.json
- packages/genui/a2ui-playground/src/render.tsx
- packages/genui/a2ui/styles/catalog/List.css
- packages/genui/a2ui/styles/catalog/Row.css
- packages/genui/a2ui/src/catalog/Card/index.tsx
- packages/genui/a2ui/styles/catalog/RadioGroup.css
- packages/genui/a2ui/styles/catalog/Text.css
- packages/genui/a2ui-playground/lynx-src/a2ui/App.tsx
- packages/genui/a2ui-playground/src/pages/DemosPage.tsx
- packages/genui/a2ui/src/catalog/Text/index.tsx
- packages/genui/a2ui/styles/catalog/Divider.css
- packages/genui/a2ui/styles/catalog/Card.css
- packages/genui/a2ui/styles/catalog/CheckBox.css
- packages/genui/a2ui/styles/theme.css
- packages/genui/a2ui-playground/src/styles.css
- packages/genui/a2ui/src/catalog/Image/index.tsx
Merging this PR will improve performance by 17.07%
Performance Changes
Comparing Footnotes
|
React Example#8093 Bundle Size — 236.51KiB (0%).5ee4f3a(current) vs 1e1257e main#8075(baseline) Bundle metrics
|
| Current #8093 |
Baseline #8075 |
|
|---|---|---|
0B |
0B |
|
0B |
0B |
|
0% |
38.18% |
|
0 |
0 |
|
4 |
4 |
|
197 |
197 |
|
80 |
80 |
|
44.87% |
44.87% |
|
2 |
2 |
|
0 |
0 |
Bundle size by type no changes
| Current #8093 |
Baseline #8075 |
|
|---|---|---|
145.76KiB |
145.76KiB |
|
90.75KiB |
90.75KiB |
Bundle analysis report Branch p/a2ui-theme Project dashboard
Generated by RelativeCI Documentation Report issue
React Example with Element Template#359 Bundle Size — 197.79KiB (0%).5ee4f3a(current) vs 1e1257e main#341(baseline) Bundle metrics
Bundle size by type
|
| Current #359 |
Baseline #341 |
|
|---|---|---|
145.76KiB |
145.76KiB |
|
52.03KiB |
52.03KiB |
Bundle analysis report Branch p/a2ui-theme Project dashboard
Generated by RelativeCI Documentation Report issue
React MTF Example#1224 Bundle Size — 207.46KiB (0%).5ee4f3a(current) vs 1e1257e main#1206(baseline) Bundle metrics
|
| Current #1224 |
Baseline #1206 |
|
|---|---|---|
0B |
0B |
|
0B |
0B |
|
0% |
46.17% |
|
0 |
0 |
|
3 |
3 |
|
192 |
192 |
|
77 |
77 |
|
44.38% |
44.38% |
|
2 |
2 |
|
0 |
0 |
Bundle size by type no changes
| Current #1224 |
Baseline #1206 |
|
|---|---|---|
111.23KiB |
111.23KiB |
|
96.23KiB |
96.23KiB |
Bundle analysis report Branch p/a2ui-theme Project dashboard
Generated by RelativeCI Documentation Report issue
Web Explorer#9666 Bundle Size — 901.38KiB (+0.01%).5ee4f3a(current) vs 1e1257e main#9648(baseline) Bundle metrics
Bundle size by type
Bundle analysis report Branch p/a2ui-theme Project dashboard Generated by RelativeCI Documentation Report issue |
React External#1207 Bundle Size — 693.04KiB (0%).5ee4f3a(current) vs 1e1257e main#1188(baseline) Bundle metrics
|
| Current #1207 |
Baseline #1188 |
|
|---|---|---|
0B |
0B |
|
0B |
0B |
|
0% |
40.57% |
|
0 |
0 |
|
3 |
3 |
|
17 |
17 |
|
5 |
5 |
|
8.59% |
8.59% |
|
0 |
0 |
|
0 |
0 |
Bundle analysis report Branch p/a2ui-theme Project dashboard
Generated by RelativeCI Documentation Report issue
Summary by CodeRabbit
New Features
UI/Styling Updates
Checklist