diff --git a/.github/workflows/init-icon-prerelease.yml b/.github/workflows/init-icon-prerelease.yml index 76971733ab..9c30df3551 100644 --- a/.github/workflows/init-icon-prerelease.yml +++ b/.github/workflows/init-icon-prerelease.yml @@ -38,9 +38,11 @@ jobs: name: Install pnpm id: pnpm-install with: - version: 10.11.1 + version: 10.32.1 run_install: false - uses: actions/setup-node@v4.0.1 + with: + node-version: 24 - name: Get pnpm store directory id: pnpm-cache run: | diff --git a/.github/workflows/init-illustration-prerelease.yml b/.github/workflows/init-illustration-prerelease.yml index b373464588..5bfcebffce 100644 --- a/.github/workflows/init-illustration-prerelease.yml +++ b/.github/workflows/init-illustration-prerelease.yml @@ -38,9 +38,11 @@ jobs: name: Install pnpm id: pnpm-install with: - version: 10.11.1 + version: 10.32.1 run_install: false - uses: actions/setup-node@v4.0.1 + with: + node-version: 24 - name: Get pnpm store directory id: pnpm-cache run: | diff --git a/playground/entries/Switch.tsx b/playground/entries/Switch.tsx index 0a554cfe57..82879df818 100644 --- a/playground/entries/Switch.tsx +++ b/playground/entries/Switch.tsx @@ -1,6 +1,6 @@ import CheckM from '@semcore/icon/Check/m'; import CloseM from '@semcore/icon/Close/m'; -import type { SwitchProps, SwitchValueProps } from '@semcore/ui/switch'; +import type { NSSwitch } from '@semcore/ui/switch'; import Switch from '@semcore/ui/switch'; import React from 'react'; @@ -12,7 +12,7 @@ type AdditionalJSXProps = { icon: boolean; text: string; }; -export type SwitchJSXProps = JSXProps & AdditionalJSXProps; +export type SwitchJSXProps = JSXProps & AdditionalJSXProps; function getJSX(props: SwitchJSXProps) { const { handleControlChange } = props; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a53d667a1..77ba9daa3c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -326,7 +326,7 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography csstype: specifier: 3.1.3 @@ -434,7 +434,7 @@ importers: specifier: ^17.0.1 version: link:../tooltip '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -453,7 +453,7 @@ importers: semcore/breadcrumbs: dependencies: '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -481,7 +481,7 @@ importers: specifier: ^17.0.1 version: link:../tooltip '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography dompurify: specifier: 3.4.0 @@ -512,7 +512,7 @@ importers: specifier: ^17.0.1 version: link:../spin '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -537,7 +537,7 @@ importers: specifier: ^17.0.1 version: link:../tooltip '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -578,7 +578,7 @@ importers: semcore/checkbox: dependencies: '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -597,7 +597,7 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/divider': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../divider '@semcore/dropdown': specifier: ^17.0.1 @@ -680,13 +680,13 @@ importers: specifier: 2.3.0 version: 2.3.0(typescript@4.9.5) '@semcore/checkbox': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../checkbox '@semcore/divider': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../divider '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography '@types/d3-shape': specifier: 3.1.7 @@ -762,7 +762,7 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/checkbox': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../checkbox '@semcore/spin': specifier: ^17.0.1 @@ -823,10 +823,10 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/checkbox': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../checkbox '@semcore/divider': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../divider '@semcore/dropdown': specifier: ^17.0.1 @@ -835,13 +835,13 @@ importers: specifier: ^17.0.1 version: link:../input '@semcore/input-mask': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../input-mask '@semcore/tooltip': specifier: ^17.0.1 version: link:../tooltip '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography dayjs: specifier: 1.8.36 @@ -890,7 +890,7 @@ importers: semcore/drag-and-drop: dependencies: '@semcore/card': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../card devDependencies: '@semcore/badge': @@ -933,7 +933,7 @@ importers: specifier: ^17.0.1 version: link:../dropdown '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography classnames: specifier: 2.2.6 @@ -983,7 +983,7 @@ importers: specifier: ^17.0.1 version: link:../illustration '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1008,7 +1008,7 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/checkbox': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../checkbox '@semcore/input': specifier: ^17.0.1 @@ -1017,10 +1017,10 @@ importers: specifier: ^17.0.1 version: link:../notice '@semcore/pills': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../pills '@semcore/radio': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../radio '@semcore/select': specifier: ^17.0.1 @@ -1029,10 +1029,10 @@ importers: specifier: ^17.0.1 version: link:../switch '@semcore/tab-line': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../tab-line '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1079,7 +1079,7 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/checkbox': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../checkbox '@semcore/illustration': specifier: ^17.0.1 @@ -1109,7 +1109,7 @@ importers: specifier: ^17.0.1 version: link:../tooltip '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography final-form: specifier: 4.20.7 @@ -1174,7 +1174,7 @@ importers: specifier: ^17.0.1 version: link:../modal '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1409,7 +1409,7 @@ importers: semcore/link: dependencies: '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@floating-ui/dom': @@ -1446,7 +1446,7 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1468,7 +1468,7 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1518,7 +1518,7 @@ importers: specifier: ^17.0.1 version: link:../link '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1579,7 +1579,7 @@ importers: semcore/radio: dependencies: '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1601,10 +1601,10 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/checkbox': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../checkbox '@semcore/divider': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../divider '@semcore/dropdown': specifier: ^17.0.1 @@ -1616,7 +1616,7 @@ importers: specifier: ^17.0.1 version: link:../input '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography classnames: specifier: 2.2.6 @@ -1644,7 +1644,7 @@ importers: specifier: ^17.0.1 version: link:../button '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1727,7 +1727,7 @@ importers: semcore/tab-line: dependencies: '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1743,7 +1743,7 @@ importers: semcore/tab-panel: dependencies: '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1762,7 +1762,7 @@ importers: semcore/tag: dependencies: '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography devDependencies: '@semcore/base-components': @@ -1869,7 +1869,7 @@ importers: semcore/ui: dependencies: '@semcore/accordion': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../accordion '@semcore/add-filter': specifier: ^17.0.1 @@ -1878,7 +1878,7 @@ importers: specifier: ^17.0.1 version: link:../badge '@semcore/base-components': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../base-components '@semcore/base-trigger': specifier: ^17.0.1 @@ -1887,19 +1887,19 @@ importers: specifier: ^17.0.1 version: link:../breadcrumbs '@semcore/bulk-textarea': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../bulk-textarea '@semcore/button': specifier: ^17.0.1 version: link:../button '@semcore/card': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../card '@semcore/carousel': specifier: ^17.0.1 version: link:../carousel '@semcore/checkbox': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../checkbox '@semcore/color-picker': specifier: ^17.0.1 @@ -1911,19 +1911,19 @@ importers: specifier: ^17.0.1 version: link:../counter '@semcore/d3-chart': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../d3-chart '@semcore/data-table': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../data-table '@semcore/date-picker': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../date-picker '@semcore/divider': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../divider '@semcore/dot': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../dot '@semcore/drag-and-drop': specifier: ^17.0.1 @@ -1938,7 +1938,7 @@ importers: specifier: ^17.0.1 version: link:../ellipsis '@semcore/errors': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../errors '@semcore/feature-highlight': specifier: ^17.0.1 @@ -1974,7 +1974,7 @@ importers: specifier: ^17.0.1 version: link:../input '@semcore/input-mask': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../input-mask '@semcore/input-number': specifier: ^17.0.1 @@ -2001,25 +2001,25 @@ importers: specifier: ^17.0.1 version: link:../pagination '@semcore/pills': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../pills '@semcore/product-head': specifier: ^17.0.1 version: link:../product-head '@semcore/progress-bar': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../progress-bar '@semcore/radio': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../radio '@semcore/select': specifier: ^17.0.1 version: link:../select '@semcore/side-panel': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../side-panel '@semcore/skeleton': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../skeleton '@semcore/slider': specifier: ^17.0.1 @@ -2034,10 +2034,10 @@ importers: specifier: ^17.0.1 version: link:../switch '@semcore/tab-line': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../tab-line '@semcore/tab-panel': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../tab-panel '@semcore/tag': specifier: ^17.0.1 @@ -2052,7 +2052,7 @@ importers: specifier: ^17.0.1 version: link:../tooltip '@semcore/typography': - specifier: ^17.0.1 + specifier: ^17.0.2 version: link:../typography '@semcore/widget-empty': specifier: ^17.0.1 @@ -19409,7 +19409,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.13)(@types/node@25.5.2)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@9.20.3)(jsdom@22.1.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@25.5.2)(typescript@6.0.2))(sass@1.98.0)(sugarss@5.0.1(postcss@8.4.38))(terser@5.46.1)(yaml@2.8.3) + vitest: 3.2.4(@types/debug@4.1.13)(@types/node@25.5.2)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@9.20.3)(jsdom@22.1.0)(lightningcss@1.32.0)(msw@2.12.14(@types/node@25.5.2)(typescript@5.9.3))(sass@1.98.0)(sugarss@5.0.1(postcss@8.5.8))(terser@5.46.1)(yaml@2.8.3) '@vitest/utils@3.2.4': dependencies: diff --git a/semcore/accordion/CHANGELOG.md b/semcore/accordion/CHANGELOG.md index c408e56390..f2cc9006f1 100644 --- a/semcore/accordion/CHANGELOG.md +++ b/semcore/accordion/CHANGELOG.md @@ -2,6 +2,13 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Deprecated atomic types. Atomic parts are part of `NSAccordion` +namespace. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/accordion/package.json b/semcore/accordion/package.json index f793c61c55..c887d733c1 100644 --- a/semcore/accordion/package.json +++ b/semcore/accordion/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/accordion", "description": "Semrush Accordion Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -18,11 +18,11 @@ }, "dependencies": { "@semcore/button": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "csstype": "3.1.3" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/add-filter/package.json b/semcore/add-filter/package.json index 6a63bdaa19..8b6d8596a9 100644 --- a/semcore/add-filter/package.json +++ b/semcore/add-filter/package.json @@ -25,7 +25,7 @@ "@semcore/base-trigger": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-chromium-linux.png b/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-chromium-linux.png index ee8e7efbff..a1c0aa259b 100644 Binary files a/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-chromium-linux.png and b/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-chromium-linux.png differ diff --git a/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-firefox-linux.png b/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-firefox-linux.png index adc48c55cf..8e114f4d41 100644 Binary files a/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-firefox-linux.png and b/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-firefox-linux.png differ diff --git a/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-webkit-linux.png b/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-webkit-linux.png index de8eaadf04..5f55bbfb5a 100644 Binary files a/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-webkit-linux.png and b/semcore/badge/__tests__/badge.browser-test.tsx-snapshots/-visual-Verify-all-main-types-and-inverted-styles-1-webkit-linux.png differ diff --git a/semcore/badge/package.json b/semcore/badge/package.json index d75a2bdf09..d037924c32 100644 --- a/semcore/badge/package.json +++ b/semcore/badge/package.json @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/base-components/CHANGELOG.md b/semcore/base-components/CHANGELOG.md index e9e6fe3a21..bcc5f22eaf 100644 --- a/semcore/base-components/CHANGELOG.md +++ b/semcore/base-components/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- **flex-box**: Incorrect handling of styles for focus ring offset values. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/base-components/package.json b/semcore/base-components/package.json index e6ece4a8db..0553ac5166 100644 --- a/semcore/base-components/package.json +++ b/semcore/base-components/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/base-components", "description": "Semrush Base Components", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/esm/index.mjs", "typings": "lib/types/index.d.ts", diff --git a/semcore/base-trigger/package.json b/semcore/base-trigger/package.json index 24c500f06a..16ae2499fe 100644 --- a/semcore/base-trigger/package.json +++ b/semcore/base-trigger/package.json @@ -20,11 +20,11 @@ "@semcore/counter": "^17.0.1", "@semcore/spin": "^17.0.1", "@semcore/tooltip": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "@semcore/button": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/breadcrumbs/package.json b/semcore/breadcrumbs/package.json index f310be569e..2b45fc6cba 100644 --- a/semcore/breadcrumbs/package.json +++ b/semcore/breadcrumbs/package.json @@ -17,10 +17,10 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/bulk-textarea/CHANGELOG.md b/semcore/bulk-textarea/CHANGELOG.md index de9b1d67d3..ddf8c8fa45 100644 --- a/semcore/bulk-textarea/CHANGELOG.md +++ b/semcore/bulk-textarea/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Vulnerabilities were discovered in the `dompurify` version. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/bulk-textarea/package.json b/semcore/bulk-textarea/package.json index 4a0f1766a9..fd01c4799a 100644 --- a/semcore/bulk-textarea/package.json +++ b/semcore/bulk-textarea/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/bulk-textarea", "description": "Semrush BulkTextarea Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -18,13 +18,13 @@ }, "dependencies": { "@semcore/button": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "@semcore/counter": "^17.0.1", "@semcore/tooltip": "^17.0.1", "dompurify": "3.4.0" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/button/package.json b/semcore/button/package.json index 4bc3a3c674..1aedf16d14 100644 --- a/semcore/button/package.json +++ b/semcore/button/package.json @@ -18,11 +18,11 @@ }, "dependencies": { "@semcore/spin": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "@semcore/link": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/card/CHANGELOG.md b/semcore/card/CHANGELOG.md index ae85adb4fe..437b00f978 100644 --- a/semcore/card/CHANGELOG.md +++ b/semcore/card/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Deprecated atomic types. Atomic parts are part of `NSCard` namespace. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/card/package.json b/semcore/card/package.json index abf28d1c29..fc8b5630d7 100644 --- a/semcore/card/package.json +++ b/semcore/card/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/card", "description": "Semrush Card Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -17,12 +17,12 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "@semcore/tooltip": "^17.0.1", "@semcore/button": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/carousel/package.json b/semcore/carousel/package.json index 3663fcfa4d..089865a397 100644 --- a/semcore/carousel/package.json +++ b/semcore/carousel/package.json @@ -21,7 +21,7 @@ "@semcore/modal": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/checkbox/CHANGELOG.md b/semcore/checkbox/CHANGELOG.md index 2d0f879623..9af7d92ede 100644 --- a/semcore/checkbox/CHANGELOG.md +++ b/semcore/checkbox/CHANGELOG.md @@ -2,6 +2,13 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Deprecated atomic types. Atomic parts are part of `NSCheckbox` +namespaces. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/checkbox/package.json b/semcore/checkbox/package.json index 9250fc387a..b217807521 100644 --- a/semcore/checkbox/package.json +++ b/semcore/checkbox/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/checkbox", "description": "Semrush Checkbox Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -17,10 +17,10 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/checkbox/src/Checkbox.tsx b/semcore/checkbox/src/Checkbox.tsx index ebdd6340b9..7014a39fb3 100644 --- a/semcore/checkbox/src/Checkbox.tsx +++ b/semcore/checkbox/src/Checkbox.tsx @@ -113,7 +113,7 @@ class CheckboxRoot extends Component< class ValueRoot extends Component< Intergalactic.InternalTypings.InferChildComponentProps, typeof ValueRoot.enhance, - { checked: (e: React.ChangeEvent) => boolean } + NSCheckbox.Value.Handlers > { static defaultProps = () => { return { diff --git a/semcore/checkbox/src/Checkbox.type.ts b/semcore/checkbox/src/Checkbox.type.ts index 3a1bd15245..07b9164d67 100644 --- a/semcore/checkbox/src/Checkbox.type.ts +++ b/semcore/checkbox/src/Checkbox.type.ts @@ -39,6 +39,9 @@ declare namespace NSCheckbox { }; namespace Value { + type Handlers = { + checked: (e: React.ChangeEvent) => boolean; + }; type Props = FlexProps; namespace Control { diff --git a/semcore/color-picker/package.json b/semcore/color-picker/package.json index fabe778447..417abaa940 100644 --- a/semcore/color-picker/package.json +++ b/semcore/color-picker/package.json @@ -18,12 +18,12 @@ }, "dependencies": { "@semcore/button": "^17.0.1", - "@semcore/divider": "^17.0.1", + "@semcore/divider": "^17.0.2", "@semcore/dropdown": "^17.0.1", "@semcore/input": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "devDependencies": { diff --git a/semcore/core/src/core-types/Component.ts b/semcore/core/src/core-types/Component.ts index 7a0defac38..05dcacc1a3 100644 --- a/semcore/core/src/core-types/Component.ts +++ b/semcore/core/src/core-types/Component.ts @@ -45,12 +45,15 @@ type BaseAsProps any)[ InnerProps >; +type UncontrolledPropValueSetterFunction = (event?: any) => void | boolean | V; +type UncontrolledPropValueChainHandler = (value: V, event?: any) => void | boolean | V; + type UncontrolledPropValue = | V | null - | ((value: V, e?: any) => void | boolean | V) - | ((value: V, e?: any) => void | boolean | V)[] - | ((e?: any) => void | boolean | V); + | UncontrolledPropValueSetterFunction + | Array> + | [UncontrolledPropValueSetterFunction | null, ...UncontrolledPropValueChainHandler[]]; export abstract class Component< Props = {}, @@ -68,7 +71,11 @@ export abstract class Component< [key in keyof Uncontrolled]: key extends keyof Props ? Uncontrolled[key] extends (null | Props[key]) ? (value: Props[key], e?: any) => void - : Uncontrolled[key] extends Array ? Uncontrolled[key][0] : Uncontrolled[key] + : Uncontrolled[key] extends [UncontrolledPropValueSetterFunction | null, ...UncontrolledPropValueChainHandler[]] + ? Uncontrolled[key][1] + : Uncontrolled[key] extends Array> + ? Uncontrolled[key][0] + : Uncontrolled[key] : never }> { // @ts-ignore. The body will be generated in factory diff --git a/semcore/counter/package.json b/semcore/counter/package.json index db5cfde2c4..94e70d15ed 100644 --- a/semcore/counter/package.json +++ b/semcore/counter/package.json @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/d3-chart/CHANGELOG.md b/semcore/d3-chart/CHANGELOG.md index 974756f4e0..572c1ab5c6 100644 --- a/semcore/d3-chart/CHANGELOG.md +++ b/semcore/d3-chart/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Vulnerabilities were discovered in the `rollup` version. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/d3-chart/package.json b/semcore/d3-chart/package.json index 5f33dd98fd..f0ffc59862 100644 --- a/semcore/d3-chart/package.json +++ b/semcore/d3-chart/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/d3-chart", "description": "Semrush D3 Chart Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/esm/index.mjs", "typings": "lib/types/index.d.ts", @@ -18,9 +18,9 @@ }, "dependencies": { "@formatjs/intl": "2.3.0", - "@semcore/checkbox": "^17.0.1", - "@semcore/divider": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/checkbox": "^17.0.2", + "@semcore/divider": "^17.0.2", + "@semcore/typography": "^17.0.2", "@types/d3-shape": "3.1.7", "@upsetjs/venn.js": "2.0.0", "d3-array": "3.1.6", @@ -34,7 +34,7 @@ "hoist-non-react-statics": "3.3.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/data-table/CHANGELOG.md b/semcore/data-table/CHANGELOG.md index 258631887c..64cdf6aee6 100644 --- a/semcore/data-table/CHANGELOG.md +++ b/semcore/data-table/CHANGELOG.md @@ -2,6 +2,14 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Lags when scrolling and header sticks +- Checkbox with fixed column - body cell with checkbox is not fixed. +- Incorrect value in css-selectors. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/data-table/package.json b/semcore/data-table/package.json index 74977bb4b1..75b2043d90 100644 --- a/semcore/data-table/package.json +++ b/semcore/data-table/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/data-table", "description": "Semrush DataTable Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -18,7 +18,7 @@ }, "dependencies": { "@semcore/button": "^17.0.1", - "@semcore/checkbox": "^17.0.1", + "@semcore/checkbox": "^17.0.2", "@semcore/spin": "^17.0.1", "@semcore/tooltip": "^17.0.1", "@semcore/widget-empty": "^17.0.1" @@ -41,7 +41,7 @@ "csstype": "3.1.3" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/date-picker/CHANGELOG.md b/semcore/date-picker/CHANGELOG.md index f3bb5cd97f..aa3dbd7986 100644 --- a/semcore/date-picker/CHANGELOG.md +++ b/semcore/date-picker/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Incorrect input trigger width calculation. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/date-picker/__tests__/month-range-comparator.browser-test.tsx b/semcore/date-picker/__tests__/month-range-comparator.browser-test.tsx index 4451aecbe4..00d7f7cc2d 100644 --- a/semcore/date-picker/__tests__/month-range-comparator.browser-test.tsx +++ b/semcore/date-picker/__tests__/month-range-comparator.browser-test.tsx @@ -530,6 +530,9 @@ test.describe(`${TAG.FUNCTIONAL}`, () => { expect(afterRightFrom2).not.toBe(afterUpFrom2); await page.keyboard.press('Shift+Tab'); + if ((await locators.calendar(page).first().evaluate((el) => el === document.activeElement))) { + await page.keyboard.press('Tab'); + } await expect(locators.button(page, 'Next year')).toBeFocused(); await page.keyboard.press('Shift+Tab'); diff --git a/semcore/date-picker/package.json b/semcore/date-picker/package.json index 1e69798fc6..6fb2c7f294 100644 --- a/semcore/date-picker/package.json +++ b/semcore/date-picker/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/date-picker", "description": "Semrush DatePicker Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -19,17 +19,17 @@ "dependencies": { "@semcore/base-trigger": "^17.0.1", "@semcore/button": "^17.0.1", - "@semcore/divider": "^17.0.1", + "@semcore/divider": "^17.0.2", "@semcore/dropdown": "^17.0.1", "@semcore/input": "^17.0.1", - "@semcore/input-mask": "^17.0.1", - "@semcore/typography": "^17.0.1", - "@semcore/checkbox": "^17.0.1", + "@semcore/input-mask": "^17.0.2", + "@semcore/typography": "^17.0.2", + "@semcore/checkbox": "^17.0.2", "@semcore/tooltip": "^17.0.1", "dayjs": "1.8.36" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/divider/CHANGELOG.md b/semcore/divider/CHANGELOG.md index 40b21b92bb..2dceecdb38 100644 --- a/semcore/divider/CHANGELOG.md +++ b/semcore/divider/CHANGELOG.md @@ -2,6 +2,13 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Deprecated atomic types. Atomic parts are part of `NSDivider` +namespace. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/divider/package.json b/semcore/divider/package.json index 7056049866..45244b1fc2 100644 --- a/semcore/divider/package.json +++ b/semcore/divider/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/divider", "description": "Semrush Divider Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/dot/CHANGELOG.md b/semcore/dot/CHANGELOG.md index 99110d019b..5ed53764ea 100644 --- a/semcore/dot/CHANGELOG.md +++ b/semcore/dot/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Deprecated atomic types. Atomic parts are part of `NSDot` namespace. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/dot/package.json b/semcore/dot/package.json index 4ee77689d7..71871d2a4b 100644 --- a/semcore/dot/package.json +++ b/semcore/dot/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/dot", "description": "Semrush Dot Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/drag-and-drop/package.json b/semcore/drag-and-drop/package.json index 1a182e0ec1..d4eedf8e3f 100644 --- a/semcore/drag-and-drop/package.json +++ b/semcore/drag-and-drop/package.json @@ -17,10 +17,10 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/card": "^17.0.1" + "@semcore/card": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/dropdown-menu/package.json b/semcore/dropdown-menu/package.json index 8d80a4380f..0edeafb349 100644 --- a/semcore/dropdown-menu/package.json +++ b/semcore/dropdown-menu/package.json @@ -19,11 +19,11 @@ "dependencies": { "@semcore/button": "^17.0.1", "@semcore/dropdown": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "classnames": "2.2.6" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/dropdown/package.json b/semcore/dropdown/package.json index 3633c7527b..af437a4d8a 100644 --- a/semcore/dropdown/package.json +++ b/semcore/dropdown/package.json @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/ellipsis/package.json b/semcore/ellipsis/package.json index 43c5e1b7c1..cd277acdc9 100644 --- a/semcore/ellipsis/package.json +++ b/semcore/ellipsis/package.json @@ -20,7 +20,7 @@ "@semcore/tooltip": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "devDependencies": { "@semcore/core": "workspace:*", diff --git a/semcore/errors/CHANGELOG.md b/semcore/errors/CHANGELOG.md index 4d8e0147b9..4cd63f9297 100644 --- a/semcore/errors/CHANGELOG.md +++ b/semcore/errors/CHANGELOG.md @@ -2,6 +2,14 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Deprecated atomic types. Atomic parts are part of +`NSErrors/NSAccessDenied/NSMaintenance/NSPageError/NSPageNotFound/NSProjectNotFound` +namespaces. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/errors/package.json b/semcore/errors/package.json index 1468f9e387..3303dd9d19 100644 --- a/semcore/errors/package.json +++ b/semcore/errors/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/errors", "description": "Semrush Errors Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -19,10 +19,10 @@ "dependencies": { "@semcore/button": "^17.0.1", "@semcore/illustration": "^17.0.1", - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/feature-highlight/package.json b/semcore/feature-highlight/package.json index ed8037e70c..d441ad157e 100644 --- a/semcore/feature-highlight/package.json +++ b/semcore/feature-highlight/package.json @@ -22,18 +22,18 @@ "@semcore/badge": "^17.0.1", "@semcore/base-trigger": "^17.0.1", "@semcore/button": "^17.0.1", - "@semcore/checkbox": "^17.0.1", + "@semcore/checkbox": "^17.0.2", "@semcore/input": "^17.0.1", "@semcore/notice": "^17.0.1", - "@semcore/pills": "^17.0.1", - "@semcore/radio": "^17.0.1", + "@semcore/pills": "^17.0.2", + "@semcore/radio": "^17.0.2", "@semcore/select": "^17.0.1", "@semcore/switch": "^17.0.1", - "@semcore/tab-line": "^17.0.1", - "@semcore/typography": "^17.0.1" + "@semcore/tab-line": "^17.0.2", + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/feature-highlight/src/components/switch/Switch.tsx b/semcore/feature-highlight/src/components/switch/Switch.tsx index 10fb991b4e..412f757da9 100644 --- a/semcore/feature-highlight/src/components/switch/Switch.tsx +++ b/semcore/feature-highlight/src/components/switch/Switch.tsx @@ -1,6 +1,6 @@ import type { IRootComponentProps } from '@semcore/core'; import { Component, createComponent, Root, sstyled } from '@semcore/core'; -import type { SwitchProps } from '@semcore/switch'; +import type { NSSwitch } from '@semcore/switch'; import Switch from '@semcore/switch'; import React from 'react'; @@ -8,7 +8,7 @@ import style from './switch.shadow.css'; import type { HighlightedSwitchComponent } from './Switch.type'; import { AnimatedSparkles } from '../../inner-components/sparkle/AnimatedSparkles'; -class SwitchFHRoot extends Component { +class SwitchFHRoot extends Component { static displayName = 'SwitchFH'; static style = style; diff --git a/semcore/feature-popover/package.json b/semcore/feature-popover/package.json index 0b9620cd4a..e59e56796a 100644 --- a/semcore/feature-popover/package.json +++ b/semcore/feature-popover/package.json @@ -20,7 +20,7 @@ "@semcore/button": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/feedback-form/package.json b/semcore/feedback-form/package.json index 3e936076b5..f54c1e923a 100644 --- a/semcore/feedback-form/package.json +++ b/semcore/feedback-form/package.json @@ -17,9 +17,9 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/checkbox": "^17.0.1", + "@semcore/checkbox": "^17.0.2", "@semcore/notice-bubble": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "@semcore/link": "^17.0.1", "@semcore/modal": "^17.0.1", "@semcore/illustration": "^17.0.1", @@ -34,7 +34,7 @@ "react-final-form": "6.5.9" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/flags/package.json b/semcore/flags/package.json index cbdfd1fdbc..886ffdd509 100644 --- a/semcore/flags/package.json +++ b/semcore/flags/package.json @@ -16,7 +16,7 @@ "classnames": "2.2.6" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/fullscreen-modal/package.json b/semcore/fullscreen-modal/package.json index 253715e202..38bb1e6041 100644 --- a/semcore/fullscreen-modal/package.json +++ b/semcore/fullscreen-modal/package.json @@ -18,11 +18,11 @@ }, "dependencies": { "@semcore/modal": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "@semcore/button": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/icon/CHANGELOG.md b/semcore/icon/CHANGELOG.md index 498269ee27..b3639828bb 100644 --- a/semcore/icon/CHANGELOG.md +++ b/semcore/icon/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.1.0] - 2026-05-04 + +### Added + +- `Reddit`, `RedditColored` and `Prompt` icons. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/icon/package.json b/semcore/icon/package.json index 4aa64a534e..9ead9b4e26 100644 --- a/semcore/icon/package.json +++ b/semcore/icon/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/icon", "description": "Semrush Icon Component", - "version": "17.0.1", + "version": "17.1.0", "main": "lib/cjs/index.js", "module": "lib/esm/index.mjs", "typings": "lib/types/index.d.ts", @@ -4414,4 +4414,4 @@ "require": "./lib/ZoomPlus/m/index.js" } } -} \ No newline at end of file +} diff --git a/semcore/inline-edit/package.json b/semcore/inline-edit/package.json index d0ce8e53d3..d79d578546 100644 --- a/semcore/inline-edit/package.json +++ b/semcore/inline-edit/package.json @@ -22,7 +22,7 @@ "@semcore/testing-utils": "workspace:*" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/inline-input/package.json b/semcore/inline-input/package.json index 8e1480304a..1c2ad4786b 100644 --- a/semcore/inline-input/package.json +++ b/semcore/inline-input/package.json @@ -32,7 +32,7 @@ "@semcore/tooltip": "workspace:*" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/input-mask/CHANGELOG.md b/semcore/input-mask/CHANGELOG.md index 38faeddf4f..f703877f87 100644 --- a/semcore/input-mask/CHANGELOG.md +++ b/semcore/input-mask/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Incorrect paddings with `neighborLocation=right`. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/input-mask/package.json b/semcore/input-mask/package.json index e3bdfc524f..b84faf08eb 100644 --- a/semcore/input-mask/package.json +++ b/semcore/input-mask/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/input-mask", "description": "Semrush InputMask Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -21,7 +21,7 @@ "text-mask-core": "5.1.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/input-number/package.json b/semcore/input-number/package.json index b38eb4c900..e182046057 100644 --- a/semcore/input-number/package.json +++ b/semcore/input-number/package.json @@ -20,7 +20,7 @@ "@semcore/input": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-chromium-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-chromium-linux.png index 857700f957..85e17e8780 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-chromium-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-chromium-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-firefox-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-firefox-linux.png index 2d9212ba5b..6fd92edfac 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-firefox-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-firefox-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-webkit-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-webkit-linux.png index 09e6147d0c..5907584733 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-webkit-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--4585e-tags-can-be-added-removed-and-edited-by-mouse-3-webkit-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-chromium-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-chromium-linux.png index f373b8fd1f..26d4646a4d 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-chromium-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-chromium-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-firefox-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-firefox-linux.png index b3cb54257f..e913a04f79 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-firefox-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-firefox-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-webkit-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-webkit-linux.png index db8a4bb81b..ae11f7456f 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-webkit-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--68bb1-tags-can-be-added-removed-and-edited-by-mouse-4-webkit-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-chromium-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-chromium-linux.png index 598d458028..9401940b6e 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-chromium-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-chromium-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-firefox-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-firefox-linux.png index 2d9212ba5b..6fd92edfac 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-firefox-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-firefox-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-webkit-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-webkit-linux.png index 4399a2887b..fc44fffd56 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-webkit-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--9560b-tags-can-be-added-removed-and-edited-by-mouse-1-webkit-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-chromium-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-chromium-linux.png index 90eb67ceab..4559bc5711 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-chromium-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-chromium-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-firefox-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-firefox-linux.png index 6950c830cb..fecb7cc286 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-firefox-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-firefox-linux.png differ diff --git a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-webkit-linux.png b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-webkit-linux.png index 4613fe3353..681fd0d90c 100644 Binary files a/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-webkit-linux.png and b/semcore/input-tags/__tests__/input-tags.browser-test.tsx-snapshots/-visual-Input-tags-visual-states-after-mouse--f7010-tags-can-be-added-removed-and-edited-by-mouse-2-webkit-linux.png differ diff --git a/semcore/input-tags/package.json b/semcore/input-tags/package.json index 3bf0d5c639..0cc379802a 100644 --- a/semcore/input-tags/package.json +++ b/semcore/input-tags/package.json @@ -21,7 +21,7 @@ "@semcore/tag": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/input/package.json b/semcore/input/package.json index 10396cbcae..de1d6a5ae6 100644 --- a/semcore/input/package.json +++ b/semcore/input/package.json @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-chromium-linux.png b/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-chromium-linux.png index 9f1182cb01..9ef39f4d87 100644 Binary files a/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-chromium-linux.png and b/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-chromium-linux.png differ diff --git a/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-firefox-linux.png b/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-firefox-linux.png index 78fc141711..c14af0a768 100644 Binary files a/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-firefox-linux.png and b/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-firefox-linux.png differ diff --git a/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-webkit-linux.png b/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-webkit-linux.png index 9460faaeca..c8dfb77cb8 100644 Binary files a/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-webkit-linux.png and b/semcore/link/__tests__/link.browser-test.tsx-snapshots/-visual-Verify-default-link-styles-when-links-inside-the-text-1-webkit-linux.png differ diff --git a/semcore/link/package.json b/semcore/link/package.json index 3112b8816f..72ef11ca14 100644 --- a/semcore/link/package.json +++ b/semcore/link/package.json @@ -17,10 +17,10 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/mini-chart/package.json b/semcore/mini-chart/package.json index d031db2fb8..052c4899d1 100644 --- a/semcore/mini-chart/package.json +++ b/semcore/mini-chart/package.json @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/modal/package.json b/semcore/modal/package.json index 4072803b08..b75d8a6355 100644 --- a/semcore/modal/package.json +++ b/semcore/modal/package.json @@ -18,10 +18,10 @@ }, "dependencies": { "@semcore/button": "^17.0.1", - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/notice-bubble/package.json b/semcore/notice-bubble/package.json index 6388587b41..2b0a7d8b07 100644 --- a/semcore/notice-bubble/package.json +++ b/semcore/notice-bubble/package.json @@ -20,7 +20,7 @@ "@semcore/button": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/notice/package.json b/semcore/notice/package.json index 4bb1769657..d030bcdfc0 100644 --- a/semcore/notice/package.json +++ b/semcore/notice/package.json @@ -18,10 +18,10 @@ }, "dependencies": { "@semcore/button": "^17.0.1", - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/pagination/package.json b/semcore/pagination/package.json index f218d97633..b5c99ed79c 100644 --- a/semcore/pagination/package.json +++ b/semcore/pagination/package.json @@ -21,10 +21,10 @@ "@semcore/input-number": "^17.0.1", "@semcore/input": "^17.0.1", "@semcore/link": "^17.0.1", - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/pills/CHANGELOG.md b/semcore/pills/CHANGELOG.md index 4667b85920..973e9f2808 100644 --- a/semcore/pills/CHANGELOG.md +++ b/semcore/pills/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Deprecated atomic types. Atomic parts are part of `NSPills` namespace. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/pills/package.json b/semcore/pills/package.json index 9c0cf94bdf..f32cd50a48 100644 --- a/semcore/pills/package.json +++ b/semcore/pills/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/pills", "description": "Semrush Pills Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/pills/src/Pills.tsx b/semcore/pills/src/Pills.tsx index d8e1ad6072..f197c24356 100644 --- a/semcore/pills/src/Pills.tsx +++ b/semcore/pills/src/Pills.tsx @@ -41,7 +41,7 @@ class RootPills extends Component< uncontrolledProps() { return { - value: (value: NSPills.Pill.Props['value'], e: React.SyntheticEvent) => value, + value: null, }; } diff --git a/semcore/pills/src/Pills.type.ts b/semcore/pills/src/Pills.type.ts index bb335ea153..e5ec404820 100644 --- a/semcore/pills/src/Pills.type.ts +++ b/semcore/pills/src/Pills.type.ts @@ -34,7 +34,7 @@ declare namespace NSPills { getItemProps: PropGetterFn; }; type Handlers = { - value: (value: Props['value'], event: React.SyntheticEvent) => Props['value']; + value: null; }; namespace Pill { type Props = BoxProps & NeighborItemProps & { diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx b/semcore/product-head/__tests__/product-head.browser-test.tsx index e2b42b68c1..d35c63c0b4 100644 --- a/semcore/product-head/__tests__/product-head.browser-test.tsx +++ b/semcore/product-head/__tests__/product-head.browser-test.tsx @@ -88,10 +88,10 @@ test.describe(`${TAG.FUNCTIONAL} `, () => { await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); - await expect(page.locator('[data-ui-name="ButtonLink"]')).toBeFocused(); + await expect(page.locator('[data-ui-name="Link"]')).toBeFocused(); await page.keyboard.press('Tab'); - await expect(page.locator('[data-ui-name="Link"]')).toBeFocused(); + await expect(page.locator('[data-ui-name="ButtonLink"]')).toBeFocused(); await page.keyboard.press('Tab'); await page.keyboard.press('Tab'); diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-chromium-linux.png b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-chromium-linux.png index a60b5e3f9c..2d2132caa3 100644 Binary files a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-chromium-linux.png and b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-chromium-linux.png differ diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-firefox-linux.png b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-firefox-linux.png index c5b8291b56..cd54871bf9 100644 Binary files a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-firefox-linux.png and b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-firefox-linux.png differ diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-webkit-linux.png b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-webkit-linux.png index 4fde72c3e1..1776ba61dc 100644 Binary files a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-webkit-linux.png and b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1280px-1-webkit-linux.png differ diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-chromium-linux.png b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-chromium-linux.png index 712cf8e36e..81004274d4 100644 Binary files a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-chromium-linux.png and b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-chromium-linux.png differ diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-firefox-linux.png b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-firefox-linux.png index 43d2889815..e960d47313 100644 Binary files a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-firefox-linux.png and b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-firefox-linux.png differ diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-webkit-linux.png b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-webkit-linux.png index f96f4b7868..1dbc56f3a3 100644 Binary files a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-webkit-linux.png and b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-1920px-1-webkit-linux.png differ diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-chromium-linux.png b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-chromium-linux.png index 6c94738cdf..25e499cf6e 100644 Binary files a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-chromium-linux.png and b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-chromium-linux.png differ diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-firefox-linux.png b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-firefox-linux.png index e969330b56..e58c30a310 100644 Binary files a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-firefox-linux.png and b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-firefox-linux.png differ diff --git a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-webkit-linux.png b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-webkit-linux.png index 583154596c..3f9135a2e1 100644 Binary files a/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-webkit-linux.png and b/semcore/product-head/__tests__/product-head.browser-test.tsx-snapshots/-visual-Verify-base-example-looks-good-on-screen-width-768px-1-webkit-linux.png differ diff --git a/semcore/product-head/package.json b/semcore/product-head/package.json index bf05df2179..b89d73054d 100644 --- a/semcore/product-head/package.json +++ b/semcore/product-head/package.json @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/progress-bar/CHANGELOG.md b/semcore/progress-bar/CHANGELOG.md index ce868ad73a..ad71850239 100644 --- a/semcore/progress-bar/CHANGELOG.md +++ b/semcore/progress-bar/CHANGELOG.md @@ -2,6 +2,13 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Deprecated atomic types. Atomic parts are part of `NSProgressBar` +namespace. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/progress-bar/package.json b/semcore/progress-bar/package.json index b0ab26b264..3a62be6e8f 100644 --- a/semcore/progress-bar/package.json +++ b/semcore/progress-bar/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/progress-bar", "description": "Semrush ProgressBar Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/radio/CHANGELOG.md b/semcore/radio/CHANGELOG.md index 778b14deea..331bd108dd 100644 --- a/semcore/radio/CHANGELOG.md +++ b/semcore/radio/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Deprecated atomic types. Atomic types are part of `NSRadio` namespace. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/radio/package.json b/semcore/radio/package.json index 1f8bda2aef..4d1ce5d131 100644 --- a/semcore/radio/package.json +++ b/semcore/radio/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/radio", "description": "Semrush Radio Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -17,10 +17,10 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/radio/src/Radio.tsx b/semcore/radio/src/Radio.tsx index abdde146da..db28e65914 100644 --- a/semcore/radio/src/Radio.tsx +++ b/semcore/radio/src/Radio.tsx @@ -149,7 +149,7 @@ class RadioRoot extends Component, typeof ValueRoot.enhance, - { checked: (e: React.ChangeEvent) => boolean } + NSRadio.Value.Handlers > { context: React.ContextType = {}; diff --git a/semcore/radio/src/Radio.type.ts b/semcore/radio/src/Radio.type.ts index 5375c9f970..e708b00636 100644 --- a/semcore/radio/src/Radio.type.ts +++ b/semcore/radio/src/Radio.type.ts @@ -33,6 +33,9 @@ declare namespace NSRadio { getTextProps: PropGetterFn; }; namespace Value { + type Handlers = { + checked: (e: React.ChangeEvent) => boolean; + }; type Props = BoxProps & { /** List of elements that can be put on a hidden input */ includeInputProps?: string[]; diff --git a/semcore/select/package.json b/semcore/select/package.json index 3bbf382146..4ca6b52cbf 100644 --- a/semcore/select/package.json +++ b/semcore/select/package.json @@ -18,16 +18,16 @@ "dependencies": { "@semcore/base-trigger": "^17.0.1", "@semcore/button": "^17.0.1", - "@semcore/checkbox": "^17.0.1", - "@semcore/divider": "^17.0.1", + "@semcore/checkbox": "^17.0.2", + "@semcore/divider": "^17.0.2", "@semcore/dropdown": "^17.0.1", "@semcore/dropdown-menu": "^17.0.1", "@semcore/input": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "classnames": "2.2.6" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/side-panel/CHANGELOG.md b/semcore/side-panel/CHANGELOG.md index b0d20789ad..df6b73f6d3 100644 --- a/semcore/side-panel/CHANGELOG.md +++ b/semcore/side-panel/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Header height doesn't increase as content increases. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/side-panel/package.json b/semcore/side-panel/package.json index 072a7ee8f0..23d9fd7873 100644 --- a/semcore/side-panel/package.json +++ b/semcore/side-panel/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/side-panel", "description": "Semrush SidePanel Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -18,10 +18,10 @@ }, "dependencies": { "@semcore/button": "^17.0.1", - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/skeleton/CHANGELOG.md b/semcore/skeleton/CHANGELOG.md index 03370dd88c..bfcbf57265 100644 --- a/semcore/skeleton/CHANGELOG.md +++ b/semcore/skeleton/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Rewrite component to TS. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/skeleton/package.json b/semcore/skeleton/package.json index d6477aaf09..05733c36cc 100644 --- a/semcore/skeleton/package.json +++ b/semcore/skeleton/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/skeleton", "description": "Semrush Skeleton Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "types": "lib/types/index.d.ts", @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/slider/__tests__/slider.browser-test.tsx b/semcore/slider/__tests__/slider.browser-test.tsx index fffd39a74a..c4ef32fc66 100644 --- a/semcore/slider/__tests__/slider.browser-test.tsx +++ b/semcore/slider/__tests__/slider.browser-test.tsx @@ -109,6 +109,7 @@ test.describe(`${TAG.VISUAL}`, () => { await test.step('Verify invalid state with value below min', async () => { await inputValue.fill('0'); await expect(inputValue).toHaveAttribute('aria-invalid', 'true'); + await page.getByRole('tooltip').waitFor({ state: 'visible' }); await expect(page).toHaveScreenshot(); }); }); diff --git a/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-chromium-linux.png b/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-chromium-linux.png index e3dd7ce431..aa1cc83b56 100644 Binary files a/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-chromium-linux.png and b/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-chromium-linux.png differ diff --git a/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-firefox-linux.png b/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-firefox-linux.png index db6b35d40c..d61a0812ef 100644 Binary files a/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-firefox-linux.png and b/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-firefox-linux.png differ diff --git a/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-webkit-linux.png b/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-webkit-linux.png index cc199420a6..c212bfc3a5 100644 Binary files a/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-webkit-linux.png and b/semcore/slider/__tests__/slider.browser-test.tsx-snapshots/-visual-Verify-slider-with-input-validation-states-1-webkit-linux.png differ diff --git a/semcore/slider/package.json b/semcore/slider/package.json index f76213d3dd..902c7bc4e6 100644 --- a/semcore/slider/package.json +++ b/semcore/slider/package.json @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/spin-container/package.json b/semcore/spin-container/package.json index 326707af9a..e03f8ca5d4 100644 --- a/semcore/spin-container/package.json +++ b/semcore/spin-container/package.json @@ -20,7 +20,7 @@ "@semcore/spin": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/spin/package.json b/semcore/spin/package.json index 6db5b193a9..45931d4461 100644 --- a/semcore/spin/package.json +++ b/semcore/spin/package.json @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/switch/package.json b/semcore/switch/package.json index 2b175f6470..2cee1bedb4 100644 --- a/semcore/switch/package.json +++ b/semcore/switch/package.json @@ -9,7 +9,7 @@ "author": "UI-kit team ", "license": "MIT", "scripts": { - "build": "pnpm semcore-builder --source=js && pnpm vite build" + "build": "pnpm semcore-builder && pnpm vite build" }, "exports": { "types": "./lib/types/index.d.ts", @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/switch/src/Switch.jsx b/semcore/switch/src/Switch.tsx similarity index 74% rename from semcore/switch/src/Switch.jsx rename to semcore/switch/src/Switch.tsx index 7ddadbb978..937d5a94cd 100644 --- a/semcore/switch/src/Switch.jsx +++ b/semcore/switch/src/Switch.tsx @@ -1,4 +1,5 @@ import { NeighborLocation, Box } from '@semcore/base-components'; +import type { Intergalactic } from '@semcore/core'; import { createComponent, Component, sstyled, Root } from '@semcore/core'; import { callAllEventHandlers } from '@semcore/core/lib/utils/assignProps'; import resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance'; @@ -7,24 +8,30 @@ import uniqueIDEnhancement from '@semcore/core/lib/utils/uniqueID'; import React from 'react'; import style from './style/switch.shadow.css'; +import type { NSSwitch } from './Switch.type'; + +function isCustomTheme(theme?: NSSwitch.Theme) { + if (!theme) return true; -function isCustomTheme(theme) { return !['info', 'success'].includes(theme); } -class Switch extends Component { +class SwitchRoot extends Component< + Intergalactic.InternalTypings.InferComponentProps, + typeof SwitchRoot.enhance +> { static displayName = 'Switch'; static style = style; - static enhance = [uniqueIDEnhancement()]; + static enhance = [uniqueIDEnhancement()] as const; static defaultProps = { theme: 'info', size: 'm', }; - inputRef = React.createRef(); + inputRef = React.createRef(); state = { active: false }; - constructor(props) { + constructor(props: NSSwitch.Props) { super(props); this.forceUpdate = this.forceUpdate.bind(this); } @@ -33,7 +40,7 @@ class Switch extends Component { this.setState({ active: false }); }; - handleMouseDown = (event) => { + handleMouseDown = (event: React.MouseEvent) => { if (event?.button !== 0) return; this.setState({ active: true }); }; @@ -79,19 +86,23 @@ class Switch extends Component { } } -class Value extends Component { - static enhance = [resolveColorEnhance()]; +class Value extends Component< + Intergalactic.InternalTypings.InferChildComponentProps, + typeof Value.enhance, + NSSwitch.Value.Handlers +> { + static enhance = [resolveColorEnhance()] as const; static defaultProps = { includeInputProps: inputProps, defaultChecked: false, }; - timer = null; + timer: ReturnType | undefined = undefined; - uncontrolledProps() { + uncontrolledProps(): NSSwitch.Value.Handlers { return { checked: [ - (e) => e.target.checked, + (e: React.ChangeEvent) => e.target.checked, () => { // TODO: bad crutch for updating the DOM node clearTimeout(this.timer); @@ -107,7 +118,7 @@ class Value extends Component { this.asProps.$rootForceUpdate(); } - componentDidUpdate(prevProps) { + componentDidUpdate(prevProps: typeof this.props) { const { checked } = prevProps; // TODO: bad crutch for updating the DOM node if (checked !== undefined && checked !== this.asProps.checked) { @@ -119,7 +130,7 @@ class Value extends Component { clearTimeout(this.timer); } - handleKeyDown = (event) => { + handleKeyDown = (event: React.KeyboardEvent) => { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); this.handlers.checked(!this.asProps.checked, event); @@ -127,7 +138,7 @@ class Value extends Component { }; // because clicking on label causes a click on input - handlerInputClick = (e) => e.stopPropagation(); + handlerInputClick = (e: React.MouseEvent) => e.stopPropagation(); render() { const SToggle = Box; @@ -155,6 +166,7 @@ class Value extends Component { {(neighborLocation) => sstyled(styles)( - + , @@ -182,7 +197,9 @@ class Value extends Component { } } -function Addon(props) { +function Addon( + props: Intergalactic.InternalTypings.InferChildComponentProps, +) { const SAddon = Root; const { styles, neighborLocation, uid } = props; @@ -202,7 +219,10 @@ function Addon(props) { } export { inputProps }; -export default createComponent(Switch, { + +const Switch = createComponent(SwitchRoot, { Value, Addon, -}); +}) as NSSwitch.Component; + +export default Switch; diff --git a/semcore/switch/src/Switch.type.ts b/semcore/switch/src/Switch.type.ts new file mode 100644 index 0000000000..ab331d655a --- /dev/null +++ b/semcore/switch/src/Switch.type.ts @@ -0,0 +1,69 @@ +import type { BoxProps, NeighborItemProps, NeighborLocationProps } from '@semcore/base-components'; +import type { PropGetterFn, Intergalactic } from '@semcore/core'; +import type React from 'react'; + +declare namespace NSSwitch { + type Theme = 'info' | 'success' | string; + type Ctx = { + getAddonProps: PropGetterFn; + getValueProps: PropGetterFn; + }; + type Props = BoxProps & + NeighborLocationProps & { + /** Switch size + * @default m + */ + size?: 'm' | 'l' | 'xl'; + /** Switch theme + * @default info + */ + theme?: NSSwitch.Theme; + /** Disabled state */ + disabled?: boolean; + }; + + namespace Value { + type Props = BoxProps & + NeighborItemProps & { + /** Handler on change */ + onChange?: (checked: boolean, e?: React.SyntheticEvent) => void; + /** Control state */ + checked?: boolean; + /** Initial state for uncontrolled mode + * @default false */ + defaultChecked?: boolean; + /** The list of properties that can be placed in the hidden input */ + includeInputProps?: string[]; + /** Switch theme */ + theme?: NSSwitch.Theme; + }; + type Handlers = { + checked: [ + ((e: React.ChangeEvent) => Props['checked']), + ((value: Props['checked'], event: React.SyntheticEvent) => void) + ]; + }; + type Component = Intergalactic.Component<'input', Props, Ctx>; + } + + namespace Addon { + type Props = BoxProps & NeighborItemProps; + type Component = Intergalactic.Component<'div', Props>; + } + + type Component = Intergalactic.Component<'div', Props, Ctx> & { + Value: Value.Component; + Addon: Addon.Component; + }; +} + +/** @deprecated It will be removed in v18. */ +export type SwitchTheme = NSSwitch.Theme; +/** @deprecated It will be removed in v18. */ +export type SwitchProps = NSSwitch.Props; +/** @deprecated It will be removed in v18. */ +export type SwitchValueProps = NSSwitch.Value.Props; +/** @deprecated It will be removed in v18. */ +export type SwitchAddonProps = NSSwitch.Addon.Props; + +export type { NSSwitch }; diff --git a/semcore/switch/src/index.d.ts b/semcore/switch/src/index.d.ts deleted file mode 100644 index 8ff81b1efd..0000000000 --- a/semcore/switch/src/index.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { BoxProps, NeighborItemProps, NeighborLocationProps } from '@semcore/base-components'; -import type { PropGetterFn, Intergalactic } from '@semcore/core'; -import { inputProps } from '@semcore/core/lib/utils/inputProps'; -import type React from 'react'; - -export type SwitchTheme = 'info' | 'success' | string; - -export type SwitchProps = BoxProps & - NeighborLocationProps & { - /** Switch size - * @default m - */ - size?: 'm' | 'l' | 'xl'; - /** Switch theme - * @default info - */ - theme?: SwitchTheme; - /** Disabled state */ - disabled?: boolean; - }; - -export type SwitchValueProps = BoxProps & - NeighborItemProps & { - /** Handler on change */ - onChange?: (checked: boolean, e?: React.SyntheticEvent) => void; - /** Control state */ - checked?: boolean; - /** Initial state for uncontrolled mode - * @default false */ - defaultChecked?: boolean; - /** The list of properties that can be placed in the hidden input */ - includeInputProps?: string[]; - /** Switch theme */ - theme?: SwitchTheme; - }; - -export type SwitchAddonProps = BoxProps & NeighborItemProps; - -export type SwitchContext = { - getAddonProps: PropGetterFn; - getValueProps: PropGetterFn; -}; - -declare const Switch: Intergalactic.Component<'div', SwitchProps, SwitchContext> & { - Value: Intergalactic.Component<'input', SwitchValueProps, SwitchContext>; - Addon: Intergalactic.Component<'div', SwitchAddonProps>; -}; - -export { inputProps }; -export default Switch; diff --git a/semcore/switch/src/index.js b/semcore/switch/src/index.js deleted file mode 100644 index e18fb43800..0000000000 --- a/semcore/switch/src/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export { default } from './Switch'; -export * from './Switch'; diff --git a/semcore/switch/src/index.ts b/semcore/switch/src/index.ts new file mode 100644 index 0000000000..cd2d9bd281 --- /dev/null +++ b/semcore/switch/src/index.ts @@ -0,0 +1,2 @@ +export { default, inputProps } from './Switch'; +export * from './Switch.type'; diff --git a/semcore/switch/vite.config.ts b/semcore/switch/vite.config.ts index 0991a16528..90f46b4cb2 100644 --- a/semcore/switch/vite.config.ts +++ b/semcore/switch/vite.config.ts @@ -7,7 +7,7 @@ export default mergeConfig( defineConfig({ build: { lib: { - entry: './src/index.js', + entry: './src/index.ts', }, rollupOptions: { external: ['react', 'react-dom', 'react/jsx-runtime', /@babel\/runtime\/*/, /@semcore\/*/], diff --git a/semcore/tab-line/CHANGELOG.md b/semcore/tab-line/CHANGELOG.md index 40cb78597d..f5e8c4cd1c 100644 --- a/semcore/tab-line/CHANGELOG.md +++ b/semcore/tab-line/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Rewrite component to TS. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/tab-line/package.json b/semcore/tab-line/package.json index 587f5a3bb1..eaddf8b140 100644 --- a/semcore/tab-line/package.json +++ b/semcore/tab-line/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/tab-line", "description": "Semrush TabLine Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -17,10 +17,10 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/tab-panel/CHANGELOG.md b/semcore/tab-panel/CHANGELOG.md index 5c262c4ca7..2b5a030711 100644 --- a/semcore/tab-panel/CHANGELOG.md +++ b/semcore/tab-panel/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Rewrite component to TS. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/tab-panel/package.json b/semcore/tab-panel/package.json index 840126d88a..92ea490d37 100644 --- a/semcore/tab-panel/package.json +++ b/semcore/tab-panel/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/tab-panel", "description": "Semrush TabPanel Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -17,10 +17,10 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/tag/package.json b/semcore/tag/package.json index a1c5166940..24fa6891cb 100644 --- a/semcore/tag/package.json +++ b/semcore/tag/package.json @@ -17,10 +17,10 @@ "require": "./lib/cjs/index.js" }, "dependencies": { - "@semcore/typography": "^17.0.1" + "@semcore/typography": "^17.0.2" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/textarea/package.json b/semcore/textarea/package.json index 4ec660bde7..4452f47947 100644 --- a/semcore/textarea/package.json +++ b/semcore/textarea/package.json @@ -17,7 +17,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/time-picker/package.json b/semcore/time-picker/package.json index 943d2cba4b..d8d43df854 100644 --- a/semcore/time-picker/package.json +++ b/semcore/time-picker/package.json @@ -22,7 +22,7 @@ "@semcore/select": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/tooltip/package.json b/semcore/tooltip/package.json index 4a1c2ab649..0b8311c6eb 100644 --- a/semcore/tooltip/package.json +++ b/semcore/tooltip/package.json @@ -18,7 +18,7 @@ "require": "./lib/cjs/index.js" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/typography/CHANGELOG.md b/semcore/typography/CHANGELOG.md index 6272910591..cb4741c6a9 100644 --- a/semcore/typography/CHANGELOG.md +++ b/semcore/typography/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/). +## [17.0.2] - 2026-04-30 + +### Fixed + +- Rewrite component to TS. + ## [17.0.1] - 2026-04-16 ### Fixed diff --git a/semcore/typography/package.json b/semcore/typography/package.json index b254936838..5f5beff680 100644 --- a/semcore/typography/package.json +++ b/semcore/typography/package.json @@ -1,7 +1,7 @@ { "name": "@semcore/typography", "description": "Semrush Typography Component", - "version": "17.0.1", + "version": "17.0.2", "main": "lib/cjs/index.js", "module": "lib/es6/index.js", "typings": "lib/types/index.d.ts", @@ -18,7 +18,7 @@ }, "dependencies": {}, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/semcore/ui/CHANGELOG.md b/semcore/ui/CHANGELOG.md index 76d7696ce6..bf1286dbc6 100644 --- a/semcore/ui/CHANGELOG.md +++ b/semcore/ui/CHANGELOG.md @@ -1,3 +1,93 @@ +## [17.0.2] - 2026-04-30 + +### @semcore/radio + +- **Fixed** Deprecated atomic types. Atomic types are part of `NSRadio` namespace. + +### @semcore/d3-chart + +- **Fixed** Vulnerabilities were discovered in the `rollup` version. + +### @semcore/bulk-textarea + +- **Fixed** Vulnerabilities were discovered in the `dompurify` version. + +### @semcore/accordion + +- **Fixed** Deprecated atomic types. Atomic parts are part of `NSAccordion` +namespace. + +### @semcore/pills + +- **Fixed** Deprecated atomic types. Atomic parts are part of `NSPills` namespace. + +### @semcore/progress-bar + +- **Fixed** Deprecated atomic types. Atomic parts are part of `NSProgressBar` +namespace. + +### @semcore/typography + +- **Fixed** Rewrite component to TS. + +### @semcore/divider + +- **Fixed** Deprecated atomic types. Atomic parts are part of `NSDivider` +namespace. + +### @semcore/dot + +- **Fixed** Deprecated atomic types. Atomic parts are part of `NSDot` namespace. + +### @semcore/card + +- **Fixed** Deprecated atomic types. Atomic parts are part of `NSCard` namespace. + +### @semcore/errors + +- **Fixed** Deprecated atomic types. Atomic parts are part of +`NSErrors/NSAccessDenied/NSMaintenance/NSPageError/NSPageNotFound/NSProjectNotFound` +namespaces. + +### @semcore/base-components + +- **Fixed** **flex-box**: Incorrect handling of styles for focus ring offset values. + +### @semcore/checkbox + +- **Fixed** Deprecated atomic types. Atomic parts are part of `NSCheckbox` +namespaces. + +### @semcore/skeleton + +- **Fixed** Rewrite component to TS. + +### @semcore/tab-panel + +- **Fixed** Rewrite component to TS. + +### @semcore/tab-line + +- **Fixed** Rewrite component to TS. + +### @semcore/side-panel + +- **Fixed** Header height doesn't increase as content increases. + +### @semcore/data-table + +- **Fixed** Lags when scrolling and header sticks +- **Fixed** Checkbox with fixed column - body cell with checkbox is not fixed. +- **Fixed** Incorrect value in css-selectors. + +### @semcore/input-mask + +- **Fixed** Incorrect paddings with `neighborLocation=right`. + +### @semcore/date-picker + +- **Fixed** Incorrect input trigger width calculation. + ## [17.0.1] - 2026-04-16 ### @semcore/core diff --git a/semcore/ui/package.json b/semcore/ui/package.json index 2314f3be61..9b5552d2c9 100644 --- a/semcore/ui/package.json +++ b/semcore/ui/package.json @@ -1,6 +1,6 @@ { "name": "@semcore/ui", - "version": "17.0.1", + "version": "17.0.2", "description": "Semrush design system package that reexports all other single component packages.", "author": "UI-kit team ", "license": "MIT", @@ -13,30 +13,30 @@ "update-dependencies": "tsm --require=../../.ci/tsm-filter-warnings.js update-dependencies.ts" }, "dependencies": { - "@semcore/accordion": "^17.0.1", + "@semcore/accordion": "^17.0.2", "@semcore/add-filter": "^17.0.1", "@semcore/badge": "^17.0.1", - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/base-trigger": "^17.0.1", "@semcore/breadcrumbs": "^17.0.1", - "@semcore/bulk-textarea": "^17.0.1", + "@semcore/bulk-textarea": "^17.0.2", "@semcore/button": "^17.0.1", - "@semcore/card": "^17.0.1", + "@semcore/card": "^17.0.2", "@semcore/carousel": "^17.0.1", - "@semcore/checkbox": "^17.0.1", + "@semcore/checkbox": "^17.0.2", "@semcore/color-picker": "^17.0.1", "@semcore/core": "^17.0.1", "@semcore/counter": "^17.0.1", - "@semcore/d3-chart": "^17.0.1", - "@semcore/data-table": "^17.0.1", - "@semcore/date-picker": "^17.0.1", - "@semcore/divider": "^17.0.1", - "@semcore/dot": "^17.0.1", + "@semcore/d3-chart": "^17.0.2", + "@semcore/data-table": "^17.0.2", + "@semcore/date-picker": "^17.0.2", + "@semcore/divider": "^17.0.2", + "@semcore/dot": "^17.0.2", "@semcore/drag-and-drop": "^17.0.1", "@semcore/dropdown": "^17.0.1", "@semcore/dropdown-menu": "^17.0.1", "@semcore/ellipsis": "^17.0.1", - "@semcore/errors": "^17.0.1", + "@semcore/errors": "^17.0.2", "@semcore/feature-highlight": "^17.0.1", "@semcore/feature-popover": "^17.0.1", "@semcore/feedback-form": "^17.0.1", @@ -46,7 +46,7 @@ "@semcore/inline-edit": "^17.0.1", "@semcore/inline-input": "^17.0.1", "@semcore/input": "^17.0.1", - "@semcore/input-mask": "^17.0.1", + "@semcore/input-mask": "^17.0.2", "@semcore/input-number": "^17.0.1", "@semcore/input-tags": "^17.0.1", "@semcore/link": "^17.0.1", @@ -55,24 +55,24 @@ "@semcore/notice": "^17.0.1", "@semcore/notice-bubble": "^17.0.1", "@semcore/pagination": "^17.0.1", - "@semcore/pills": "^17.0.1", + "@semcore/pills": "^17.0.2", "@semcore/product-head": "^17.0.1", - "@semcore/progress-bar": "^17.0.1", - "@semcore/radio": "^17.0.1", + "@semcore/progress-bar": "^17.0.2", + "@semcore/radio": "^17.0.2", "@semcore/select": "^17.0.1", - "@semcore/side-panel": "^17.0.1", - "@semcore/skeleton": "^17.0.1", + "@semcore/side-panel": "^17.0.2", + "@semcore/skeleton": "^17.0.2", "@semcore/slider": "^17.0.1", "@semcore/spin": "^17.0.1", "@semcore/spin-container": "^17.0.1", "@semcore/switch": "^17.0.1", - "@semcore/tab-line": "^17.0.1", - "@semcore/tab-panel": "^17.0.1", + "@semcore/tab-line": "^17.0.2", + "@semcore/tab-panel": "^17.0.2", "@semcore/tag": "^17.0.1", "@semcore/textarea": "^17.0.1", "@semcore/time-picker": "^17.0.1", "@semcore/tooltip": "^17.0.1", - "@semcore/typography": "^17.0.1", + "@semcore/typography": "^17.0.2", "@semcore/widget-empty": "^17.0.1", "@semcore/wizard": "^17.0.1" }, diff --git a/semcore/widget-empty/package.json b/semcore/widget-empty/package.json index 55da97b28d..94266eadf8 100644 --- a/semcore/widget-empty/package.json +++ b/semcore/widget-empty/package.json @@ -20,7 +20,7 @@ "@semcore/illustration": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1" + "@semcore/base-components": "^17.0.2" }, "repository": { "type": "git", diff --git a/semcore/wizard/package.json b/semcore/wizard/package.json index ba9a138482..ebffb40eb8 100644 --- a/semcore/wizard/package.json +++ b/semcore/wizard/package.json @@ -21,7 +21,7 @@ "@semcore/modal": "^17.0.1" }, "peerDependencies": { - "@semcore/base-components": "^17.0.1", + "@semcore/base-components": "^17.0.2", "@semcore/icon": "^17.0.1" }, "repository": { diff --git a/stories/components/badge/docs/examples/badge_main_types.tsx b/stories/components/badge/docs/examples/badge_main_types.tsx index b134dfb836..bbd6074ff0 100644 --- a/stories/components/badge/docs/examples/badge_main_types.tsx +++ b/stories/components/badge/docs/examples/badge_main_types.tsx @@ -1,25 +1,34 @@ import Badge from '@semcore/ui/badge'; -import { Flex } from '@semcore/ui/base-components'; +import { Box, Flex } from '@semcore/ui/base-components'; import React from 'react'; const Demo = () => { return ( - <> - + + - - - - - - - - + + + + + + + + + + ); }; diff --git a/stories/components/base-trigger/docs/filter-trigger.stories.tsx b/stories/components/base-trigger/docs/filter-trigger.stories.tsx index 3a2713d654..bd0c07ac93 100644 --- a/stories/components/base-trigger/docs/filter-trigger.stories.tsx +++ b/stories/components/base-trigger/docs/filter-trigger.stories.tsx @@ -4,23 +4,18 @@ import type { Meta, StoryObj } from '@storybook/react-vite'; import AccessibleNameExample from './filter-trigger/examples/accessible_name'; import ProgrammaticFocusExample from './filter-trigger/examples/programmatic_focus'; import UsageWithSelectExample from './filter-trigger/examples/usage_with_select'; - const meta: Meta = { title: 'Components/Base Trigger/Documentation/Filter Trigger', component: FilterTrigger, }; - export default meta; type Story = StoryObj; - export const AccessibleName: Story = { render: AccessibleNameExample, }; - export const ProgrammaticFocus: Story = { render: ProgrammaticFocusExample, }; - export const UsageWithSelect: Story = { render: UsageWithSelectExample, }; diff --git a/stories/components/base-trigger/docs/link-trigger.stories.tsx b/stories/components/base-trigger/docs/link-trigger.stories.tsx index 578aa84cb1..12ed47cff0 100644 --- a/stories/components/base-trigger/docs/link-trigger.stories.tsx +++ b/stories/components/base-trigger/docs/link-trigger.stories.tsx @@ -3,14 +3,11 @@ import type { Meta, StoryObj } from '@storybook/react-vite'; import { LinkTriggerTest } from './link-trigger/__tests__/linktrigger.test'; import LinkTriggerExample from './link-trigger/examples/link-trigger'; import { playWrapper } from '../../../utils/playWrapper'; - const meta: Meta = { title: 'Components/Base Trigger/Documentation/Link Trigger', }; - export const LinkTrigger: StoryObj = { render: LinkTriggerExample, play: playWrapper(LinkTriggerTest), }; - export default meta; diff --git a/stories/components/button/advanced/button.stories.tsx b/stories/components/button/advanced/button.stories.tsx new file mode 100644 index 0000000000..c1bad65096 --- /dev/null +++ b/stories/components/button/advanced/button.stories.tsx @@ -0,0 +1,13 @@ +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import AllButtonsExample from './examples/all-buttons'; + +const meta: Meta = { + title: 'Components/Button/Advanced', +}; + +export default meta; + +export const AllButtons: StoryObj = { + render: AllButtonsExample, +}; diff --git a/stories/components/button/advanced/examples/all-buttons.tsx b/stories/components/button/advanced/examples/all-buttons.tsx new file mode 100644 index 0000000000..e9077cfc1d --- /dev/null +++ b/stories/components/button/advanced/examples/all-buttons.tsx @@ -0,0 +1,112 @@ +import { Box, Flex } from '@semcore/ui/base-components'; +import Button, { ButtonLink } from '@semcore/ui/button'; +import React from 'react'; + +type ButtonRowProps = { + use?: 'primary' | 'secondary' | 'tertiary'; + theme?: 'info' | 'success' | 'danger' | 'brand' | 'muted' | 'invert'; + size?: 'm' | 'l'; +}; + +function ButtonRow({ use = 'secondary', theme = 'info', size = 'm' }: ButtonRowProps) { + return ( + + + + + + ); +} + +type ButtonLinkRowProps = { + use?: 'primary' | 'secondary'; + size?: 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800; +}; + +function ButtonLinkRow({ use = 'primary', size = 300 }: ButtonLinkRowProps) { + return ( + + + Default + + + Disabled + + + ); +} + +export default function AllButtons() { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/stories/components/card/advanced/card.stories.tsx b/stories/components/card/advanced/card.stories.tsx new file mode 100644 index 0000000000..c9007ccdc7 --- /dev/null +++ b/stories/components/card/advanced/card.stories.tsx @@ -0,0 +1,17 @@ +import Card from '@semcore/ui/card'; +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import CardWithHoverExample from './examples/card-with-hover'; + +const meta: Meta = { + title: 'Components/Card/Advanced', + component: Card, +}; + +export default meta; + +type Story = StoryObj; + +export const CardWithHover: Story = { + render: CardWithHoverExample, +}; diff --git a/stories/components/card/advanced/examples/card-with-hover.tsx b/stories/components/card/advanced/examples/card-with-hover.tsx new file mode 100644 index 0000000000..a5fc683900 --- /dev/null +++ b/stories/components/card/advanced/examples/card-with-hover.tsx @@ -0,0 +1,121 @@ +import { Box, Flex } from '@semcore/ui/base-components'; +import Card from '@semcore/ui/card'; +import { Text } from '@semcore/ui/typography'; +import React from 'react'; + +export default function CardWithHoverExample() { + return ( + <> + + + + + + Card hover shadow + + + + Hover the card — shadow switches to + {' '} + + --intergalactic-box-shadow-card-hover + + . + + + + + + + Card DnD shadow + + + + Cursor + {' '} + + grab + + {' / '} + + grabbing + + ; on hover and active, shadow uses + {' '} + + --intergalactic-box-shadow-dnd + + . + + + + + + + Float control + + + + + + ); +} diff --git a/stories/components/checkbox/docs/examples/basic_usage.tsx b/stories/components/checkbox/docs/examples/basic_usage.tsx index eab4107aa5..70e72d324b 100644 --- a/stories/components/checkbox/docs/examples/basic_usage.tsx +++ b/stories/components/checkbox/docs/examples/basic_usage.tsx @@ -2,7 +2,7 @@ import Checkbox from '@semcore/ui/checkbox'; import { Text } from '@semcore/ui/typography'; import React from 'react'; -const fieldsetStyle = { border: 'none' }; +const fieldsetStyle = { margin: 0, padding: 0, border: 'none' }; const ulStyle = { margin: 0, padding: 0 }; const liStyle = { listStyle: 'none', margin: 0 }; diff --git a/stories/components/counter/advanced/counter.stories.tsx b/stories/components/counter/advanced/counter.stories.tsx new file mode 100644 index 0000000000..0d27f739c3 --- /dev/null +++ b/stories/components/counter/advanced/counter.stories.tsx @@ -0,0 +1,16 @@ +import Counter from '@semcore/ui/counter'; +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import AllThemesExample from './examples/all-themes'; + +const meta: Meta = { + title: 'Components/Counter/Advanced', + component: Counter, +}; + +export default meta; + +export const AllThemes: StoryObj = { + name: 'All themes', + render: AllThemesExample, +}; diff --git a/stories/components/counter/advanced/examples/all-themes.tsx b/stories/components/counter/advanced/examples/all-themes.tsx new file mode 100644 index 0000000000..365cadcd71 --- /dev/null +++ b/stories/components/counter/advanced/examples/all-themes.tsx @@ -0,0 +1,44 @@ +import { Box, Flex } from '@semcore/ui/base-components'; +import Counter from '@semcore/ui/counter'; +import React from 'react'; + +const SIZES = ['s', 'm', 'l'] as const; + +const THEMES_ON_LIGHT = ['info', 'warning', 'danger'] as const; + +export default function AllThemes() { + return ( + + + {SIZES.map((size) => ( + + + 42 + + {THEMES_ON_LIGHT.map((theme) => ( + + 42 + + ))} + + ))} + + + + {SIZES.map((size) => ( + + 42 + + ))} + + + + ); +} diff --git a/stories/components/d3-chart/tests/bar-horizontal-compact.stories.tsx b/stories/components/d3-chart/tests/bar-horizontal-compact.stories.tsx index 52bf09335c..baeaf2f58e 100644 --- a/stories/components/d3-chart/tests/bar-horizontal-compact.stories.tsx +++ b/stories/components/d3-chart/tests/bar-horizontal-compact.stories.tsx @@ -2,12 +2,10 @@ import type { Meta } from '@storybook/react-vite'; import BasicUsageExample, { defaultProps as BasicUsageProps } from './examples/bar-horizontal-compact/basic_usage'; import { getChartArgTypes } from './examples/stories_props_helper'; - const meta: Meta = { title: 'Components/d3Charts/Tests/Bar-Horizontal-Compact', }; export default meta; - export const BasicUsage = { render: BasicUsageExample, argTypes: getChartArgTypes(), diff --git a/stories/components/d3-chart/tests/cigarette-chart.stories.tsx b/stories/components/d3-chart/tests/cigarette-chart.stories.tsx index d3bac22aba..8aa891ad41 100644 --- a/stories/components/d3-chart/tests/cigarette-chart.stories.tsx +++ b/stories/components/d3-chart/tests/cigarette-chart.stories.tsx @@ -1,16 +1,7 @@ import type { Meta } from '@storybook/react-vite'; -import BasicUsageExample, { - defaultProps as basicUsageProps, - dataAllTiny, - dataEqual, - dataMultipleTiny, - dataOverflow, - dataTinyValue, - dataWithZero, -} from './examples/cigarette-chart/basic-usage'; +import BasicUsageExample, { defaultProps as basicUsageProps, dataAllTiny, dataEqual, dataMultipleTiny, dataOverflow, dataTinyValue, dataWithZero } from './examples/cigarette-chart/basic-usage'; import { getChartArgTypes } from './examples/stories_props_helper'; - const dataVariations = { default: basicUsageProps.data, tinyValue: dataTinyValue, @@ -20,12 +11,10 @@ const dataVariations = { allTiny: dataAllTiny, overflow: dataOverflow, }; - const meta: Meta = { title: 'Components/d3Charts/Tests/Cigarette-Chart', }; export default meta; - export const BasicUsage = { render: BasicUsageExample, argTypes: getChartArgTypes({ diff --git a/stories/components/d3-chart/tests/histogram-chart.stories.tsx b/stories/components/d3-chart/tests/histogram-chart.stories.tsx index 73f3380a13..986ddf83b8 100644 --- a/stories/components/d3-chart/tests/histogram-chart.stories.tsx +++ b/stories/components/d3-chart/tests/histogram-chart.stories.tsx @@ -2,7 +2,6 @@ import type { Meta } from '@storybook/react-vite'; import BasicUsageExample, { defaultProps as BasicUsageProps } from './examples/histogram-chart/basic-usage'; import { getChartArgTypes } from './examples/stories_props_helper'; - const meta: Meta = { title: 'Components/d3Charts/Tests/Histogram-Chart', }; diff --git a/stories/components/d3-chart/tests/legend.stories.tsx b/stories/components/d3-chart/tests/legend.stories.tsx index 2bb6d94a40..027393e4fb 100644 --- a/stories/components/d3-chart/tests/legend.stories.tsx +++ b/stories/components/d3-chart/tests/legend.stories.tsx @@ -1,13 +1,10 @@ import type { Meta, StoryObj } from '@storybook/react-vite'; import CustomizableLegendExample, { defaultProps as args } from './examples/chart-legend/customizable_legend'; - const meta: Meta = { title: 'Components/d3Charts/tests/ChartLegend', }; - export default meta; - export const CustomizableLegend = { render: CustomizableLegendExample, args, diff --git a/stories/components/d3-chart/tests/radar-chart.stories.tsx b/stories/components/d3-chart/tests/radar-chart.stories.tsx index d5a925ac75..20ae349126 100644 --- a/stories/components/d3-chart/tests/radar-chart.stories.tsx +++ b/stories/components/d3-chart/tests/radar-chart.stories.tsx @@ -5,9 +5,7 @@ import { getChartArgTypes } from './examples/stories_props_helper'; const meta: Meta = { title: 'Components/d3Charts/Tests/Radar-Chart', }; - export default meta; - export const BasicUsage = { render: BasicUsageExample, argTypes: getChartArgTypes(), diff --git a/stories/components/d3-chart/tests/scatterplot-chart.stories.tsx b/stories/components/d3-chart/tests/scatterplot-chart.stories.tsx index f864e0f400..1686fd7e24 100644 --- a/stories/components/d3-chart/tests/scatterplot-chart.stories.tsx +++ b/stories/components/d3-chart/tests/scatterplot-chart.stories.tsx @@ -2,13 +2,10 @@ import type { Meta, StoryObj } from '@storybook/react-vite'; import BasicUsageExample, { defaultProps as BasicUsageProps } from './examples/scatterplot-chart/basic-usage'; import { getChartArgTypes } from './examples/stories_props_helper'; - const meta: Meta = { title: 'Components/d3Charts/Tests/Scatterplot-Chart', }; - export default meta; - export const BasicUsage = { render: BasicUsageExample, argTypes: getChartArgTypes(), diff --git a/stories/components/data-table/docs/examples/customizing-header.tsx b/stories/components/data-table/docs/examples/customizing-header.tsx index 14bf9960fa..e65096ca1a 100644 --- a/stories/components/data-table/docs/examples/customizing-header.tsx +++ b/stories/components/data-table/docs/examples/customizing-header.tsx @@ -6,7 +6,9 @@ import { Text } from '@semcore/ui/typography'; import React from 'react'; const Demo = () => { - const [selectedColumn, setSelectedColumn] = React.useState('kd'); + const [selectedColumn, setSelectedColumn] = React.useState('kd'); + const selectTrigger = React.useRef(null); + return ( { visible={isVisible} onVisibleChange={setIsVisible} value={selectedColumn} - onChange={setSelectedColumn} + onChange={(val: string) => { + setSelectedColumn(val); + setTimeout(() => { + selectTrigger.current?.focus(); + }, 0); + }} > { if (!isVisible && (e.key === 'ArrowDown' || e.key === 'ArrowUp')) { diff --git a/stories/components/divider/advanced/divider.stories.tsx b/stories/components/divider/advanced/divider.stories.tsx new file mode 100644 index 0000000000..11fe438fd9 --- /dev/null +++ b/stories/components/divider/advanced/divider.stories.tsx @@ -0,0 +1,16 @@ +import Divider from '@semcore/ui/divider'; +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import AllThemesExample from './examples/all-themes'; + +const meta: Meta = { + title: 'Components/Divider/Advanced', + component: Divider, +}; + +export default meta; + +export const AllThemes: StoryObj = { + name: 'All themes', + render: AllThemesExample, +}; diff --git a/stories/components/divider/advanced/examples/all-themes.tsx b/stories/components/divider/advanced/examples/all-themes.tsx new file mode 100644 index 0000000000..4f5e22e951 --- /dev/null +++ b/stories/components/divider/advanced/examples/all-themes.tsx @@ -0,0 +1,44 @@ +import { Box, Flex } from '@semcore/ui/base-components'; +import Divider from '@semcore/ui/divider'; +import React from 'react'; + +export default function AllThemes() { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/stories/components/dot/advanced/dot.stories.tsx b/stories/components/dot/advanced/dot.stories.tsx new file mode 100644 index 0000000000..75139f795a --- /dev/null +++ b/stories/components/dot/advanced/dot.stories.tsx @@ -0,0 +1,16 @@ +import Dot from '@semcore/ui/dot'; +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import AllDotsExample from './examples/all-dots'; + +const meta: Meta = { + title: 'Components/Dot/Advanced', + component: Dot, +}; + +export default meta; + +export const AllDots: StoryObj = { + name: 'All dots', + render: AllDotsExample, +}; diff --git a/stories/components/dot/advanced/examples/all-dots.tsx b/stories/components/dot/advanced/examples/all-dots.tsx new file mode 100644 index 0000000000..c15d60139f --- /dev/null +++ b/stories/components/dot/advanced/examples/all-dots.tsx @@ -0,0 +1,21 @@ +import { Flex } from '@semcore/ui/base-components'; +import Button from '@semcore/ui/button'; +import Dot from '@semcore/ui/dot'; +import React from 'react'; + +export default function AllDots() { + return ( + + 3 + + 12 + + + + ); +} diff --git a/stories/components/dot/tests/dot.stories.tsx b/stories/components/dot/tests/dot.stories.tsx index 1267fcad73..74cd1c15d4 100644 --- a/stories/components/dot/tests/dot.stories.tsx +++ b/stories/components/dot/tests/dot.stories.tsx @@ -12,6 +12,7 @@ const meta: Meta = { }; export default meta; + const commonArgTypes = { size: { control: { type: 'select' }, diff --git a/stories/components/feature-highlight/tests/examples/switch-fh.tsx b/stories/components/feature-highlight/tests/examples/switch-fh.tsx index 787bc483e8..419ffd7e01 100644 --- a/stories/components/feature-highlight/tests/examples/switch-fh.tsx +++ b/stories/components/feature-highlight/tests/examples/switch-fh.tsx @@ -1,10 +1,10 @@ import SummaryAI from '@semcore/icon/SummaryAI/m'; import { Box, Flex, ScreenReaderOnly } from '@semcore/ui/base-components'; import { SwitchFH, BadgeFH } from '@semcore/ui/feature-highlight'; -import type { SwitchProps } from '@semcore/ui/switch'; +import type { NSSwitch } from '@semcore/ui/switch'; import React from 'react'; -export type SwitchFHAdvancedProps = SwitchProps & { +export type SwitchFHAdvancedProps = NSSwitch.Props & { label?: string; showBadge?: boolean; badgeText?: string; diff --git a/stories/components/icon/advanced/Icon.stories.tsx b/stories/components/icon/advanced/Icon.stories.tsx new file mode 100644 index 0000000000..a325ae4fda --- /dev/null +++ b/stories/components/icon/advanced/Icon.stories.tsx @@ -0,0 +1,14 @@ +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import IconWithAllColorsExample from './examples/icon-all-colors'; + +const meta: Meta = { + title: 'Components/Icon/Advanced', +}; + +export default meta; + +export const IconWithAllColors: StoryObj = { + name: 'Icon with all colors', + render: IconWithAllColorsExample, +}; diff --git a/stories/components/icon/advanced/examples/icon-all-colors.tsx b/stories/components/icon/advanced/examples/icon-all-colors.tsx new file mode 100644 index 0000000000..887aec79ed --- /dev/null +++ b/stories/components/icon/advanced/examples/icon-all-colors.tsx @@ -0,0 +1,99 @@ +import MathPlusM from '@semcore/icon/MathPlus/m'; +import Warning from '@semcore/icon/Warning/m'; +import { Box, Flex } from '@semcore/ui/base-components'; +import { Text } from '@semcore/ui/typography'; +import React from 'react'; + +const INTERGALACTIC_ICON_PRIMARY_VARS = [ + '--intergalactic-icon-primary-neutral', + '--intergalactic-icon-primary-neutral-hover-active', + '--intergalactic-icon-primary-info', + '--intergalactic-icon-primary-info-hover-active', + '--intergalactic-icon-primary-success', + '--intergalactic-icon-primary-success-hover-active', + '--intergalactic-icon-primary-critical', + '--intergalactic-icon-primary-critical-hover-active', + '--intergalactic-icon-primary-warning', + '--intergalactic-icon-primary-warning-hover-active', + '--intergalactic-icon-primary-invert', + '--intergalactic-icon-primary-invert-hover-active', +] as const; + +const INTERGALACTIC_ICON_SECONDARY_VARS = [ + '--intergalactic-icon-secondary-neutral', + '--intergalactic-icon-secondary-neutral-hover-active', + '--intergalactic-icon-secondary-info', + '--intergalactic-icon-secondary-info-hover-active', + '--intergalactic-icon-secondary-success', + '--intergalactic-icon-secondary-success-hover-active', + '--intergalactic-icon-secondary-critical', + '--intergalactic-icon-secondary-critical-hover-active', + '--intergalactic-icon-secondary-warning', + '--intergalactic-icon-secondary-warning-hover-active', + '--intergalactic-icon-non-interactive', +] as const; + +function IconThemeSwatch({ token }: { token: string }) { + const invert = token.includes('icon-primary-invert'); + return ( + + + + + + {token.replace(/^--intergalactic-/, '')} + + + ); +} + +const Demo = () => ( + + + + + + icon-primary-critical + + + + + + icon-primary-warning + + + + + {INTERGALACTIC_ICON_PRIMARY_VARS.map((token) => ( + + ))} + + + {INTERGALACTIC_ICON_SECONDARY_VARS.map((token) => ( + + ))} + + +); + +export default Demo; diff --git a/stories/components/input-number/docs/examples/range_of_values.tsx b/stories/components/input-number/docs/examples/range_of_values.tsx index 9dcf082649..83e70f19f2 100644 --- a/stories/components/input-number/docs/examples/range_of_values.tsx +++ b/stories/components/input-number/docs/examples/range_of_values.tsx @@ -16,7 +16,7 @@ const Demo = () => { }, [from, to]); return ( - <> + From @@ -26,7 +26,7 @@ const Demo = () => { To - + { - + ); }; diff --git a/stories/components/input-tags/docs/examples/entering_and_editing_tags.tsx b/stories/components/input-tags/docs/examples/entering_and_editing_tags.tsx index ff72624803..effaa4cdb7 100644 --- a/stories/components/input-tags/docs/examples/entering_and_editing_tags.tsx +++ b/stories/components/input-tags/docs/examples/entering_and_editing_tags.tsx @@ -68,7 +68,7 @@ const Demo = (props: ExampleInputTagsProps) => { return ( - + Social media diff --git a/stories/components/link/docs/examples/link_in_content.tsx b/stories/components/link/docs/examples/link_in_content.tsx index 4ab9ca9eb2..f72908aaed 100644 --- a/stories/components/link/docs/examples/link_in_content.tsx +++ b/stories/components/link/docs/examples/link_in_content.tsx @@ -1,12 +1,13 @@ import LinkExternalM from '@semcore/icon/LinkExternal/m'; +import { Flex } from '@semcore/ui/base-components'; import Link from '@semcore/ui/link'; import { Text, List } from '@semcore/ui/typography'; import React from 'react'; const Demo = () => { return ( - <> - + + The Intergalactic Design System {' '} @@ -20,7 +21,7 @@ const Demo = () => { . - + Aliens from distant galaxies use it to {' '} @@ -29,7 +30,7 @@ const Demo = () => { {' '} that are so user-friendly, even a space-faring cat with paws can navigate them. - Look at these: + Look at these: @@ -43,7 +44,7 @@ const Demo = () => { - + ); }; diff --git a/stories/components/notice/advanced/Notice.stories.tsx b/stories/components/notice/advanced/Notice.stories.tsx new file mode 100644 index 0000000000..d0deab35a2 --- /dev/null +++ b/stories/components/notice/advanced/Notice.stories.tsx @@ -0,0 +1,14 @@ +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import NoticeOnSecondaryBackgroundExample from './examples/notice-on-secondary-background'; + +const meta: Meta = { + title: 'Components/Notice/Advanced', +}; + +export default meta; + +export const NoticeOnSecondaryBackground: StoryObj = { + name: 'Notice On Secondary Background', + render: NoticeOnSecondaryBackgroundExample, +}; diff --git a/stories/components/notice/advanced/examples/notice-on-secondary-background.tsx b/stories/components/notice/advanced/examples/notice-on-secondary-background.tsx new file mode 100644 index 0000000000..4c4640c027 --- /dev/null +++ b/stories/components/notice/advanced/examples/notice-on-secondary-background.tsx @@ -0,0 +1,33 @@ +import { Box, Flex } from '@semcore/ui/base-components'; +import Notice from '@semcore/ui/notice'; +import React from 'react'; + +export default function NoticeOnSecondaryBackground() { + return ( + + + {(['info', 'warning', 'danger', 'success', 'muted'] as const).map((theme) => ( + + + + {theme.charAt(0).toUpperCase() + theme.slice(1)} notice + + Short message for theme playground. + + + + ))} + + + ); +} diff --git a/stories/components/product-head/docs/examples/extended_example/index.tsx b/stories/components/product-head/docs/examples/extended_example/index.tsx index 77dc5dc548..12cdff2b8f 100644 --- a/stories/components/product-head/docs/examples/extended_example/index.tsx +++ b/stories/components/product-head/docs/examples/extended_example/index.tsx @@ -10,9 +10,11 @@ import Breadcrumbs from '@semcore/ui/breadcrumbs'; import Button, { ButtonLink } from '@semcore/ui/button'; import DropdownMenu from '@semcore/ui/dropdown-menu'; import Link from '@semcore/ui/link'; +import Modal from '@semcore/ui/modal'; import Header, { Info, Title } from '@semcore/ui/product-head'; import Select from '@semcore/ui/select'; import { DescriptionTooltip } from '@semcore/ui/tooltip'; +import { Text } from '@semcore/ui/typography'; import React from 'react'; import { AddProjectWizard } from './AddProjectWizard'; @@ -20,6 +22,14 @@ import { CountrySelect } from './CountrySelect'; import { EditableName } from './EditableName'; const Demo = () => { + const [visible, setVisible] = React.useState(false); + const [secondVisible, setSecondVisible] = React.useState(false); + + const handleClose = () => setVisible(false); + const handleSecondClose = () => setSecondVisible(false); + + const openSettingsModal = () => setVisible(true); + return ( <>
@@ -33,8 +43,8 @@ const Demo = () => { - Feedback User manual + Feedback @@ -48,15 +58,15 @@ const Demo = () => { Settings - - Menu item 1 - Menu item 2 + + Open Modal + Open Modal one more time - Menu item 3 + Open again? @@ -73,12 +83,12 @@ const Demo = () => { offset={[-11, 12]} > - Menu item 4 + Static menu item. Nothing will happen. - Add - Delete + Okay. Got it! + Oh no @@ -126,6 +136,26 @@ const Demo = () => {
+ + + + Open one more window + + + + + + Your changes will be lost if you don't save them. + + + + ); }; diff --git a/stories/components/progress-bar/advanced/examples/all_themes.tsx b/stories/components/progress-bar/advanced/examples/all_themes.tsx new file mode 100644 index 0000000000..5a51566c4c --- /dev/null +++ b/stories/components/progress-bar/advanced/examples/all_themes.tsx @@ -0,0 +1,52 @@ +import { Box, Flex } from '@semcore/ui/base-components'; +import ProgressBar from '@semcore/ui/progress-bar'; +import React from 'react'; + +export default function AllThemes() { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/stories/components/progress-bar/advanced/progress-bar.stories.tsx b/stories/components/progress-bar/advanced/progress-bar.stories.tsx index 601b0314bd..fd7a4ae37c 100644 --- a/stories/components/progress-bar/advanced/progress-bar.stories.tsx +++ b/stories/components/progress-bar/advanced/progress-bar.stories.tsx @@ -1,6 +1,7 @@ import ProgressBar from '@semcore/ui/progress-bar'; import type { Meta, StoryObj } from '@storybook/react-vite'; +import AllThemesExample from './examples/all_themes'; import ComplexUsageExample from './examples/complex_usage_example'; const meta: Meta = { @@ -11,6 +12,11 @@ const meta: Meta = { export default meta; type Story = StoryObj; +export const all_themes: Story = { + name: 'All themes', + render: AllThemesExample, +}; + export const ComplexUsage: Story = { render: ComplexUsageExample, }; diff --git a/stories/components/skeleton/advanced/examples/all-skeleton.tsx b/stories/components/skeleton/advanced/examples/all-skeleton.tsx new file mode 100644 index 0000000000..ddd99e9488 --- /dev/null +++ b/stories/components/skeleton/advanced/examples/all-skeleton.tsx @@ -0,0 +1,26 @@ +import { Box, Flex } from '@semcore/ui/base-components'; +import Skeleton from '@semcore/ui/skeleton'; +import React from 'react'; + +export default function AllSkeleton() { + return ( + + + + + + + + + + + + + ); +} diff --git a/stories/components/skeleton/advanced/skeleton.stories.tsx b/stories/components/skeleton/advanced/skeleton.stories.tsx new file mode 100644 index 0000000000..3cc486a87f --- /dev/null +++ b/stories/components/skeleton/advanced/skeleton.stories.tsx @@ -0,0 +1,18 @@ +import Skeleton from '@semcore/ui/skeleton'; +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import AllSkeletonExample from './examples/all-skeleton'; + +const meta: Meta = { + title: 'Components/Skeleton/Advanced', + component: Skeleton, +}; + +export default meta; + +type Story = StoryObj; + +export const AllSkeleton: Story = { + name: 'All Skeleton', + render: AllSkeletonExample, +}; diff --git a/stories/components/slider/docs/examples/numeric_slider.tsx b/stories/components/slider/docs/examples/numeric_slider.tsx index e3c6954f6c..91b7d9a729 100644 --- a/stories/components/slider/docs/examples/numeric_slider.tsx +++ b/stories/components/slider/docs/examples/numeric_slider.tsx @@ -33,7 +33,7 @@ const Demo = () => { return ( - + Slider representation diff --git a/stories/components/slider/docs/examples/slider_with_options.tsx b/stories/components/slider/docs/examples/slider_with_options.tsx index 2a3fa0364c..2313ea8400 100644 --- a/stories/components/slider/docs/examples/slider_with_options.tsx +++ b/stories/components/slider/docs/examples/slider_with_options.tsx @@ -1,4 +1,4 @@ -import { Box } from '@semcore/ui/base-components'; +import { Flex } from '@semcore/ui/base-components'; import Slider from '@semcore/ui/slider'; import { Text } from '@semcore/ui/typography'; import React from 'react'; @@ -6,26 +6,24 @@ import React from 'react'; const Demo = () => { const [value, setValue] = React.useState('medium'); return ( - <> + Data chunk size - - - - + + ); }; diff --git a/stories/components/spin/advanced/examples/all-sizes.tsx b/stories/components/spin/advanced/examples/all-sizes.tsx new file mode 100644 index 0000000000..3cf4e0a9ce --- /dev/null +++ b/stories/components/spin/advanced/examples/all-sizes.tsx @@ -0,0 +1,42 @@ +import { Box, Flex } from '@semcore/ui/base-components'; +import Spin from '@semcore/ui/spin'; +import React from 'react'; + +export default function AllSizes() { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/stories/components/spin/advanced/spin.stories.tsx b/stories/components/spin/advanced/spin.stories.tsx new file mode 100644 index 0000000000..195c7f99fe --- /dev/null +++ b/stories/components/spin/advanced/spin.stories.tsx @@ -0,0 +1,18 @@ +import Spin from '@semcore/ui/spin'; +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import AllSizesExample from './examples/all-sizes'; + +const meta: Meta = { + title: 'Components/Spin/Advanced', + component: Spin, +}; + +export default meta; + +type Story = StoryObj; + +export const AllSizes: Story = { + name: 'All Sizes', + render: AllSizesExample, +}; diff --git a/stories/components/switch/docs/examples/basic_example.tsx b/stories/components/switch/docs/examples/basic_example.tsx index 9a4dda16ed..286cddf623 100644 --- a/stories/components/switch/docs/examples/basic_example.tsx +++ b/stories/components/switch/docs/examples/basic_example.tsx @@ -1,8 +1,8 @@ import Switch from '@semcore/ui/switch'; -import type { SwitchProps, SwitchValueProps } from '@semcore/ui/switch'; +import type { NSSwitch } from '@semcore/ui/switch'; import React from 'react'; -type SwitchExampleProps = SwitchProps & SwitchValueProps; +type SwitchExampleProps = NSSwitch.Props & NSSwitch.Value.Props; const Demo = (props: SwitchExampleProps) => { return ( diff --git a/stories/components/switch/docs/examples/basic_example_with_icon.tsx b/stories/components/switch/docs/examples/basic_example_with_icon.tsx index 84a8d7be3b..f3c99ebbce 100644 --- a/stories/components/switch/docs/examples/basic_example_with_icon.tsx +++ b/stories/components/switch/docs/examples/basic_example_with_icon.tsx @@ -1,10 +1,10 @@ import CheckM from '@semcore/icon/Check/m'; import CloseM from '@semcore/icon/Close/m'; import Switch from '@semcore/ui/switch'; -import type { SwitchProps, SwitchValueProps } from '@semcore/ui/switch'; +import type { NSSwitch } from '@semcore/ui/switch'; import React from 'react'; -type SwitchExampleProps = SwitchProps & SwitchValueProps; +type SwitchExampleProps = NSSwitch.Props & NSSwitch.Value.Props; const Demo = (props: SwitchExampleProps) => { const [value, setValue] = React.useState(true); diff --git a/stories/components/switch/tests/examples/custom-icon-on-toggle.tsx b/stories/components/switch/tests/examples/custom-icon-on-toggle.tsx index 9e318111e2..c63781cc93 100644 --- a/stories/components/switch/tests/examples/custom-icon-on-toggle.tsx +++ b/stories/components/switch/tests/examples/custom-icon-on-toggle.tsx @@ -1,8 +1,8 @@ import Switch from '@semcore/ui/switch'; -import type { SwitchProps, SwitchValueProps } from '@semcore/ui/switch'; +import type { NSSwitch } from '@semcore/ui/switch'; import React from 'react'; -type SwitchExampleProps = SwitchProps & SwitchValueProps; +type SwitchExampleProps = NSSwitch.Props & NSSwitch.Value.Props; const Demo = (props: SwitchExampleProps) => { return ( diff --git a/stories/components/switch/tests/examples/long-text-addon.tsx b/stories/components/switch/tests/examples/long-text-addon.tsx index 81b2eac8c8..fe09371a5c 100644 --- a/stories/components/switch/tests/examples/long-text-addon.tsx +++ b/stories/components/switch/tests/examples/long-text-addon.tsx @@ -1,8 +1,8 @@ import Switch from '@semcore/ui/switch'; -import type { SwitchProps, SwitchValueProps } from '@semcore/ui/switch'; +import type { NSSwitch } from '@semcore/ui/switch'; import React from 'react'; -type SwitchExampleProps = SwitchProps & SwitchValueProps; +type SwitchExampleProps = NSSwitch.Props & NSSwitch.Value.Props; const longText = `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.`; const Demo = (props: SwitchExampleProps) => { diff --git a/stories/components/switch/tests/examples/switch-with-input-props.tsx b/stories/components/switch/tests/examples/switch-with-input-props.tsx index 0964502704..0b728b6211 100644 --- a/stories/components/switch/tests/examples/switch-with-input-props.tsx +++ b/stories/components/switch/tests/examples/switch-with-input-props.tsx @@ -1,8 +1,8 @@ import Switch from '@semcore/ui/switch'; -import type { SwitchProps, SwitchValueProps } from '@semcore/ui/switch'; +import type { NSSwitch } from '@semcore/ui/switch'; import React from 'react'; -type SwitchExampleProps = SwitchProps & SwitchValueProps; +type SwitchExampleProps = NSSwitch.Props & NSSwitch.Value.Props; const Demo = (props: SwitchExampleProps) => { return ( diff --git a/stories/components/tag/advanced/Tag.stories.tsx b/stories/components/tag/advanced/Tag.stories.tsx index f68773aefb..2096d346fb 100644 --- a/stories/components/tag/advanced/Tag.stories.tsx +++ b/stories/components/tag/advanced/Tag.stories.tsx @@ -1,6 +1,7 @@ import Tag from '@semcore/ui/tag'; import type { Meta, StoryObj } from '@storybook/react-vite'; +import AllTagsExample from './examples/all-tags'; import TagContainerAddonExample from './examples/tag_container_addon'; const meta: Meta = { @@ -11,6 +12,11 @@ const meta: Meta = { export default meta; type Story = StoryObj; +export const AllTags: Story = { + name: 'All Tags', + render: AllTagsExample, +}; + export const TagContainerAddon: Story = { render: TagContainerAddonExample, }; diff --git a/stories/components/tag/advanced/examples/all-tags.tsx b/stories/components/tag/advanced/examples/all-tags.tsx new file mode 100644 index 0000000000..a21bceacc2 --- /dev/null +++ b/stories/components/tag/advanced/examples/all-tags.tsx @@ -0,0 +1,66 @@ +import MathPlusM from '@semcore/icon/MathPlus/m'; +import { Flex } from '@semcore/ui/base-components'; +import Tag, { TagContainer } from '@semcore/ui/tag'; +import React from 'react'; + +const COLORS = [ + 'gray', + 'blue', + 'green', + 'red', + 'orange', + 'yellow', + 'violet', + 'pink', + 'salad', +] as const; + +const SIZES = ['m', 'l', 'xl'] as const; + +export default function AllTags() { + return ( + + + + Primary + + + Secondary + + + Additional + + + Disabled + + + {SIZES.map((size) => ( + + {COLORS.map((color) => ( + + {color} + + ))} + + ))} + {SIZES.map((size) => ( + + {COLORS.map((color) => ( + + + {color} + + + + ))} + + ))} + + ); +} diff --git a/stories/components/time-picker/docs/examples/expanded_access_to_all_the_components.tsx b/stories/components/time-picker/docs/examples/expanded_access_to_all_the_components.tsx index 649dcda190..6bea0bfdef 100644 --- a/stories/components/time-picker/docs/examples/expanded_access_to_all_the_components.tsx +++ b/stories/components/time-picker/docs/examples/expanded_access_to_all_the_components.tsx @@ -1,23 +1,21 @@ -import { Box } from '@semcore/ui/base-components'; +import { Flex } from '@semcore/ui/base-components'; import TimePicker from '@semcore/ui/time-picker'; import { Text } from '@semcore/ui/typography'; import React from 'react'; const Demo = () => { return ( - <> + Start time - - - - - - - - - + + + + + + + ); }; diff --git a/stories/patterns/core/advanced/all-components.stories.tsx b/stories/patterns/core/advanced/all-components.stories.tsx new file mode 100644 index 0000000000..ae58675ca6 --- /dev/null +++ b/stories/patterns/core/advanced/all-components.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import AllComponentsExample from './all-components'; + +const meta: Meta = { + title: 'Patterns/Core/Advanced', +}; + +export default meta; + +type Story = StoryObj; + +export const AllComponents: Story = { + render: AllComponentsExample, + parameters: { + layout: 'fullscreen', + }, +}; diff --git a/stories/patterns/core/advanced/all-components.tsx b/stories/patterns/core/advanced/all-components.tsx new file mode 100644 index 0000000000..af7cb5a78f --- /dev/null +++ b/stories/patterns/core/advanced/all-components.tsx @@ -0,0 +1,47 @@ +import Badge from '@semcore/ui/badge'; +import { Box } from '@semcore/ui/base-components'; +import TabLine from '@semcore/ui/tab-line'; +import React from 'react'; + +import { Components } from './components/Components'; +import { Graphics } from './components/Graphics'; +import { PopupsDialogs } from './components/PopupsDialogs'; +import PageHeader from '../../../components/product-head/docs/examples/extended_example'; +import { Dashboard } from '../tests/all-components/components/Dashboard'; + +function Demo({ defaultTab = 1 }: { defaultTab?: number }) { + const [tab, setTab] = React.useState(defaultTab); + + return ( + + + + + + + Dashboard + + + + + + + Components + + + Popups & Dialogs + + + Graphics + + + + {tab === 1 && } + {tab === 2 && } + {tab === 3 && } + {tab === 4 && } + + ); +} + +export default Demo; diff --git a/stories/patterns/core/advanced/components/Components/index.tsx b/stories/patterns/core/advanced/components/Components/index.tsx new file mode 100644 index 0000000000..f0961acfee --- /dev/null +++ b/stories/patterns/core/advanced/components/Components/index.tsx @@ -0,0 +1,131 @@ +import { Box, Flex } from '@semcore/ui/base-components'; +import Card from '@semcore/ui/card'; +import Divider from '@semcore/ui/divider'; +import { Text } from '@semcore/ui/typography'; +import React from 'react'; + +import HeadingTagAccordion from '../../../../../components/accordion/docs/examples/heading_tag'; +import NonCompactAccordion from '../../../../../components/accordion/docs/examples/non_compact'; +import BadgeMainTypesExample from '../../../../../components/badge/docs/examples/badge_main_types'; +import BreadcrumbsUsageExample from '../../../../../components/breadcrumbs/docs/examples/usage_example'; +import ButtonAllButtons from '../../../../../components/button/advanced/examples/all-buttons'; +import CardWithHoverExample from '../../../../../components/card/advanced/examples/card-with-hover'; +import Checkboxes from '../../../../../components/checkbox/docs/examples/basic_usage'; +import ColorPicker from '../../../../../components/color-picker/docs/examples/palettemanager'; +import CounterAllThemesExample from '../../../../../components/counter/advanced/examples/all-themes'; +import CounterInFiltersExample from '../../../../../components/counter/docs/examples/counter_in_filters'; +import DatePickerDemo from '../../../../../components/date-picker/docs/examples/datepicker'; +import DividerAllThemesExample from '../../../../../components/divider/advanced/examples/all-themes'; +import DotAllDotsExample from '../../../../../components/dot/advanced/examples/all-dots'; +import InlineNumberInput from '../../../../../components/inline-input/docs/examples/number-only_input'; +import InputClear from '../../../../../components/input/docs/examples/input_with_the_clearing_ability'; +import InputNumberDemo from '../../../../../components/input-number/docs/examples/range_of_values'; +import InputTags from '../../../../../components/input-tags/docs/examples/entering_and_editing_tags'; +import LinkColorLinksExample from '../../../../../components/link/docs/examples/color_links'; +import BasicNoticeExample from '../../../../../components/notice/docs/examples/basic_notice'; +import PillsBasicExample, { + defaultProps as pillsBasicExampleDefaultProps, +} from '../../../../../components/pills/docs/examples/basic_example'; +import ProgressBarAllThemesExample from '../../../../../components/progress-bar/advanced/examples/all_themes'; +import Radio from '../../../../../components/radio/docs/examples/radiogroup_example'; +import SelectBasic from '../../../../../components/select/docs/examples/basic_usage'; +import Multiselect from '../../../../../components/select/docs/examples/multiselect'; +import SkeletonAllSkeletonExample from '../../../../../components/skeleton/advanced/examples/all-skeleton'; +import Slider2 from '../../../../../components/slider/docs/examples/numeric_slider'; +import Slider1 from '../../../../../components/slider/docs/examples/slider_with_options'; +import SpinAllSizesExample from '../../../../../components/spin/advanced/examples/all-sizes'; +import Switch from '../../../../../components/switch/docs/examples/basic_example'; +import TagAllTagsExample from '../../../../../components/tag/advanced/examples/all-tags'; +import Textarea from '../../../../../components/textarea/docs/examples/textarea_with_auto_height'; +import TimePickerDemo from '../../../../../components/time-picker/docs/examples/expanded_access_to_all_the_components'; +import WidgetEmpty from '../../../../../components/widget-empty/docs/examples/nodata_example'; + +export function Components() { + return ( + + + + + Form + + + + + + + +