PLASMA-7275: update Slider#2835
Conversation
📝 WalkthroughWalkthroughCentralizes slider thumb sizing in a new ChangesSlider Component Enhancements
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
Theme Builder app deployed! https://plasma.sberdevices.ru/pr/plasma-theme-builder-pr-2835/ |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
packages/plasma-new-hope/src/components/Slider/Slider.template-doc.mdx (1)
259-299: ⚡ Quick winConsider adding a vertical slider example in the valuePlacement tab.
The documentation describes vertical slider placement (
right,left,none) but only demonstrates horizontal sliders. While the text is accurate and tests cover vertical placement, adding at least one vertical slider example would improve documentation completeness.📚 Example vertical slider addition
<div style={{ display: 'flex', gap: '2rem', height: '25rem' }}> <Slider min={0} max={100} value={v3} orientation="vertical" showCurrentValue valuePlacement="right" label="Right (по умолчанию)" onChange={setV3} /> <Slider min={0} max={100} value={v4} orientation="vertical" showCurrentValue valuePlacement="left" label="Left" onChange={setV4} /> </div>🤖 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/plasma-new-hope/src/components/Slider/Slider.template-doc.mdx` around lines 259 - 299, Add a vertical slider example to the "valuePlacement" TabItem: introduce two new state vars (e.g., v3/v4 with setV3/setV4) and render a vertical container showing two Slider components with orientation="vertical", showCurrentValue, valuePlacement="right" and valuePlacement="left" respectively, supplying min/max/value/label/onChange; ensure the container uses a fixed height (instead of width) to display vertical sliders correctly and mirror the existing horizontal examples' props and structure.
🤖 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/plasma-new-hope/src/components/Slider/utils/getSingleSliderLayout.ts`:
- Around line 126-127: The opacity calculation for range labels
(rangeMaxValueOpacity and rangeMinValueOpacity) currently gates fading only on
innerShowCurrentValue, so min/max labels still fade even when valuePlacement is
"none"; update both conditions to require the current value to actually be
visible (e.g., innerShowCurrentValue && valuePlacement !== "none" or the
existing boolean that represents placement visibility) before calling
fadeOpacity with the reversed/thumbPercent logic (keep thumbPercent and reversed
usage unchanged).
---
Nitpick comments:
In `@packages/plasma-new-hope/src/components/Slider/Slider.template-doc.mdx`:
- Around line 259-299: Add a vertical slider example to the "valuePlacement"
TabItem: introduce two new state vars (e.g., v3/v4 with setV3/setV4) and render
a vertical container showing two Slider components with orientation="vertical",
showCurrentValue, valuePlacement="right" and valuePlacement="left" respectively,
supplying min/max/value/label/onChange; ensure the container uses a fixed height
(instead of width) to display vertical sliders correctly and mirror the existing
horizontal examples' props and structure.
🪄 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: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 32ac3ece-fbb3-49de-a811-f88e2b87a024
⛔ Files ignored due to path filters (89)
cypress/snapshots/b2c/chromium/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/b2c/chromium/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/b2c/chromium/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/b2c/webkit/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/b2c/webkit/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/b2c/webkit/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/cs/chromium/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/cs/chromium/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/cs/chromium/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/cs/chromium/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/cs/webkit/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/cs/webkit/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/cs/webkit/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/cs/webkit/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/finai/chromium/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/finai/chromium/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/finai/chromium/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/finai/chromium/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/finai/webkit/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/finai/webkit/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/finai/webkit/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/finai/webkit/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/giga/chromium/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/giga/chromium/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/giga/chromium/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/giga/chromium/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/giga/webkit/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/giga/webkit/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/giga/webkit/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/giga/webkit/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/homeds/chromium/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/homeds/chromium/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/homeds/chromium/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/homeds/chromium/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/homeds/webkit/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/homeds/webkit/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/homeds/webkit/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/homeds/webkit/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- disabled.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- orientation, labelPlacement.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- orientation, sliderAlign, showScale.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- pointerSize.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- pointerVisibility.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- showCurrentValue, hideMinValueDiff, hideMaxValueDiff.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- simple.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- step, clampedValue.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- view=accent, size=m.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/Slider -- view=default, size=l.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/chromium/Slider/before-hover.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- disabled.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- orientation, labelPlacement.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- orientation, sliderAlign, showScale.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- pointerSize.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- pointerVisibility.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- showCurrentValue, hideMinValueDiff, hideMaxValueDiff.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- simple.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- step, clampedValue.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- view=accent, size=m.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/Slider -- view=default, size=l.snap.pngis excluded by!**/*.pngcypress/snapshots/insol/webkit/Slider/before-hover.snap.pngis excluded by!**/*.pngcypress/snapshots/platform-ai/chromium/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/platform-ai/chromium/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/platform-ai/chromium/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/platform-ai/webkit/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/platform-ai/webkit/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/platform-ai/webkit/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/platform-ai/webkit/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/serv/chromium/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/serv/chromium/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/serv/chromium/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/serv/chromium/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/serv/webkit/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/serv/webkit/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/serv/webkit/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/serv/webkit/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/web/chromium/Slider/Slider -- focus.snap.pngis excluded by!**/*.pngcypress/snapshots/web/chromium/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/web/chromium/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/web/chromium/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.pngcypress/snapshots/web/webkit/Slider/Slider -- orientation, reversed, sliderTicks.snap.pngis excluded by!**/*.pngcypress/snapshots/web/webkit/Slider/Slider -- valuePlacement, horizontal.snap.pngis excluded by!**/*.pngcypress/snapshots/web/webkit/Slider/Slider -- valuePlacement, vertical.snap.pngis excluded by!**/*.png
📒 Files selected for processing (43)
packages/plasma-b2c/src/components/Slider/Slider.config.tspackages/plasma-giga/src/components/Slider/Slider.config.tspackages/plasma-homeds/src/components/Slider/Slider.config.tspackages/plasma-new-hope/src/components/Slider/Slider.component-test.tsxpackages/plasma-new-hope/src/components/Slider/Slider.template-doc.mdxpackages/plasma-new-hope/src/components/Slider/Slider.tokens.tspackages/plasma-new-hope/src/components/Slider/Slider.tsxpackages/plasma-new-hope/src/components/Slider/Slider.types.tspackages/plasma-new-hope/src/components/Slider/components/Double/Double.tsxpackages/plasma-new-hope/src/components/Slider/components/Double/Double.types.tspackages/plasma-new-hope/src/components/Slider/components/Single/Single.styles.tspackages/plasma-new-hope/src/components/Slider/components/Single/Single.tsxpackages/plasma-new-hope/src/components/Slider/components/Single/Single.types.tspackages/plasma-new-hope/src/components/Slider/components/SliderBase/SliderBase.styles.tspackages/plasma-new-hope/src/components/Slider/components/SliderBase/SliderBase.types.tspackages/plasma-new-hope/src/components/Slider/utils/getSingleSliderLayout.tspackages/plasma-new-hope/src/components/Slider/variations/_pointer-size/base.tsxpackages/plasma-new-hope/src/components/Slider/variations/_pointer-size/tokens.jsonpackages/plasma-new-hope/src/examples/components/Slider/Slider.config.tspackages/plasma-web/src/components/Slider/Slider.config.tspackages/sdds-bizcom/src/components/Slider/Slider.config.tspackages/sdds-cs/src/components/Slider/Slider.config.tspackages/sdds-dfa/src/components/Slider/Slider.config.tspackages/sdds-finai/src/components/Slider/Slider.config.tspackages/sdds-insol/src/components/Slider/Slider.config.tspackages/sdds-netology/src/components/Slider/Slider.config.tspackages/sdds-platform-ai/src/components/Slider/Slider.config.tspackages/sdds-sbcom/src/components/Slider/Slider.config.tspackages/sdds-scan/src/components/Slider/Slider.config.tspackages/sdds-serv/src/components/Slider/Slider.config.tsutils/plasma-sb-utils/src/components/Slider/fixtures.tsutils/plasma-sb-utils/src/components/Slider/meta.tsutils/plasma-sb-utils/src/components/Slider/stories.tsxwebsite/plasma-b2c-docs/docs/components/Slider.mdxwebsite/plasma-giga-docs/docs/components/Slider.mdxwebsite/plasma-homeds-docs/docs/components/Slider.mdxwebsite/plasma-web-docs/docs/components/Slider.mdxwebsite/sdds-dfa-docs/docs/components/Slider.mdxwebsite/sdds-finai-docs/docs/components/Slider.mdxwebsite/sdds-insol-docs/docs/components/Slider.mdxwebsite/sdds-netology-docs/docs/components/Slider.mdxwebsite/sdds-platform-ai-docs/docs/components/Slider.mdxwebsite/sdds-serv-docs/docs/components/Slider.mdx
💤 Files with no reviewable changes (1)
- packages/plasma-new-hope/src/components/Slider/components/Double/Double.types.ts
IgorYar
left a comment
There was a problem hiding this comment.
- Нет доки для Slider в sdds-scan.
- В доке sdds-bizcom и sdds-cs очень мало примеров по сравнению с остальными либами. Можем сделать единообразно в этом пр?
https://plasma.sberdevices.ru/pr/pr-2835/sdds-cs/components/slider/
Core
Slider
valuePlacementдля управления положением value относительно ползункаpointerSize=noneWhat/why changed
valuePlacementдля управления положением value относительно ползункаpointerSize=noneBefore
After
📦 Published PR as canary version:
Canary Versions✨ Test out this PR locally via:
npm install @salutejs/plasma-asdk@0.378.0-canary.2835.27127573354.0 npm install @salutejs/plasma-b2c@1.620.0-canary.2835.27127573354.0 npm install @salutejs/plasma-core@1.228.0-canary.2835.27127573354.0 npm install @salutejs/plasma-giga@0.347.0-canary.2835.27127573354.0 npm install @salutejs/plasma-homeds@0.347.0-canary.2835.27127573354.0 npm install @salutejs/plasma-hope@1.374.0-canary.2835.27127573354.0 npm install @salutejs/plasma-icons@1.239.0-canary.2835.27127573354.0 npm install @salutejs/plasma-new-hope@0.364.0-canary.2835.27127573354.0 npm install @salutejs/plasma-tokens-b2b@1.56.0-canary.2835.27127573354.0 npm install @salutejs/plasma-tokens-b2c@0.67.0-canary.2835.27127573354.0 npm install @salutejs/plasma-tokens-web@1.71.0-canary.2835.27127573354.0 npm install @salutejs/plasma-tokens@1.140.0-canary.2835.27127573354.0 npm install @salutejs/plasma-typo@0.44.0-canary.2835.27127573354.0 npm install @salutejs/plasma-ui@1.350.0-canary.2835.27127573354.0 npm install @salutejs/plasma-web@1.622.0-canary.2835.27127573354.0 npm install @salutejs/sdds-bizcom@0.352.0-canary.2835.27127573354.0 npm install @salutejs/sdds-cs@0.356.0-canary.2835.27127573354.0 npm install @salutejs/sdds-dfa@0.350.0-canary.2835.27127573354.0 npm install @salutejs/sdds-finai@0.343.0-canary.2835.27127573354.0 npm install @salutejs/sdds-insol@0.347.0-canary.2835.27127573354.0 npm install @salutejs/sdds-netology@0.351.0-canary.2835.27127573354.0 npm install @salutejs/sdds-os@0.22.0-canary.2835.27127573354.0 npm install @salutejs/sdds-platform-ai@0.351.0-canary.2835.27127573354.0 npm install @salutejs/sdds-sbcom@0.352.0-canary.2835.27127573354.0 npm install @salutejs/sdds-scan@0.350.0-canary.2835.27127573354.0 npm install @salutejs/sdds-serv@0.351.0-canary.2835.27127573354.0 npm install @salutejs/core-themes@0.31.0-canary.2835.27127573354.0 npm install @salutejs/plasma-themes@0.52.0-canary.2835.27127573354.0 npm install @salutejs/sdds-themes@0.67.0-canary.2835.27127573354.0 npm install @salutejs/sdds-api-tests@0.9.0-canary.2835.27127573354.0 npm install @salutejs/plasma-cy-utils@0.158.0-canary.2835.27127573354.0 npm install @salutejs/plasma-sb-utils@0.228.0-canary.2835.27127573354.0 npm install @salutejs/plasma-tokens-utils@0.52.0-canary.2835.27127573354.0 # or yarn add @salutejs/plasma-asdk@0.378.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-b2c@1.620.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-core@1.228.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-giga@0.347.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-homeds@0.347.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-hope@1.374.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-icons@1.239.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-new-hope@0.364.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-tokens-b2b@1.56.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-tokens-b2c@0.67.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-tokens-web@1.71.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-tokens@1.140.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-typo@0.44.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-ui@1.350.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-web@1.622.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-bizcom@0.352.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-cs@0.356.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-dfa@0.350.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-finai@0.343.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-insol@0.347.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-netology@0.351.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-os@0.22.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-platform-ai@0.351.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-sbcom@0.352.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-scan@0.350.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-serv@0.351.0-canary.2835.27127573354.0 yarn add @salutejs/core-themes@0.31.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-themes@0.52.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-themes@0.67.0-canary.2835.27127573354.0 yarn add @salutejs/sdds-api-tests@0.9.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-cy-utils@0.158.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-sb-utils@0.228.0-canary.2835.27127573354.0 yarn add @salutejs/plasma-tokens-utils@0.52.0-canary.2835.27127573354.0Summary by CodeRabbit
New Features
Documentation
Tests