Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
c150f2c
[UIK-5438][scroll-area] rewrite component to NS
slizhevskyv-semrush Jul 1, 2026
0481aa1
[UIK-5438][portal] rewrite component to NS
slizhevskyv-semrush Jul 1, 2026
e4812c2
[UIK-5438][popper] rewrite component to NS
slizhevskyv-semrush Jul 2, 2026
f117d19
[UIK-5438][outside-click] rewrite component to NS
slizhevskyv-semrush Jul 2, 2026
5927cd3
[UIK-5438][neighbor-location] rewrite component to NS
slizhevskyv-semrush Jul 2, 2026
ba775f7
[UIK-5438][hint] rewrite component to NS
slizhevskyv-semrush Jul 2, 2026
14d913e
[UIK-5438][grid] rewrite component to NS
slizhevskyv-semrush Jul 2, 2026
0ae6d0e
[UIK-5438][flex-box] rewrite component to NS
slizhevskyv-semrush Jul 3, 2026
7c3cf46
[UIK-5438][ellipsis] rewrite component to NS
slizhevskyv-semrush Jul 3, 2026
68e3c58
[UIK-5438][animation] rewrite component to NS
slizhevskyv-semrush Jul 3, 2026
7836371
[UIK-5438][popper] rewrite component to NS
slizhevskyv-semrush Jul 6, 2026
8640193
Merge remote-tracking branch 'origin/release/v17' into UIK-5438/rewri…
slizhevskyv-semrush Jul 14, 2026
1113746
[UIK-5438][chore] PR adjustments
slizhevskyv-semrush Jul 14, 2026
9309c29
[UIK-5438][chore] PR adjustments
slizhevskyv-semrush Jul 14, 2026
7629973
Merge branch 'release/v17' into UIK-5438/rewrite-base-components-to-ns
Valeria-Zimnitskaya Jul 20, 2026
0d30808
[UIK-5438][chore] PR adjustments
slizhevskyv-semrush Jul 22, 2026
0a42770
Merge remote-tracking branch 'origin/release/v17' into UIK-5438/rewri…
slizhevskyv-semrush Jul 22, 2026
18d399c
[UIK-5438][chore] PR adjustments
slizhevskyv-semrush Jul 22, 2026
825ab86
[chore] refactor ts linting (#3069)
slizhevskyv-semrush Jul 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ jobs:
semcore/illustration/**/*.js
semcore/illustration/**/*.mjs
semcore/illustration/**/*.d.ts
semcore/*/tsconfig.tsbuildinfo
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-6
enableCrossOsArchive: true
- name: Install dependencies
Expand Down Expand Up @@ -167,6 +168,7 @@ jobs:
semcore/illustration/**/*.js
semcore/illustration/**/*.mjs
semcore/illustration/**/*.d.ts
semcore/*/tsconfig.tsbuildinfo
key: build-${{ hashFiles('**/pnpm-lock.yaml', '**/CHANGELOG.md') }}-6
enableCrossOsArchive: true
- name: Install dependencies
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,6 @@ allure-report

storybook-static
*storybook.log

# TS
**/*.tsbuildinfo
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"scripts": {
"dev": "pnpm storybook",
"start": "pnpm storybook",
"watch-semcore": "tsc -b semcore --emitDeclarationOnly --watch",
"build": "pnpm run clean && pnpm --filter @semcore/theme run build && pnpm --filter @semcore/core run build && pnpm build:icons && pnpm build:illustration && pnpm --filter @semcore/base-components run build && pnpm --filter @semcore/dropdown run build && pnpm --filter @semcore/* --filter !@semcore/icon --filter !@semcore/core --filter !@semcore/base-components --filter !@semcore/illustration --filter !@semcore/dropdown --filter !@semcore/ui run build",
"process-theme": "pnpm --filter @semcore/theme build",
"install-n-test": "pnpm install && pnpm test",
Expand All @@ -28,7 +29,9 @@
"clean:illustration": "pnpm --filter @semcore/illustration run clean",
"format": "biome format ./semcore ./tools ./website ./stories ./.ci --config-path . --write",
"lint:es": "npx eslint",
"lint:ts": "tsc --noEmit && cd website && tsc --noEmit",
"lint:ts": "pnpm lint:ts:semcore && tsc --noEmit && pnpm lint:ts:website",
"lint:ts:semcore": "tsc -b semcore --emitDeclarationOnly --verbose",
"lint:ts:website": "cd website && tsc --noEmit",
"lint:css": "stylelint **/*.css",
"lint:docs": "vale README.md CONTRIBUTING.md semcore/*/README.md semcore/*/CHANGELOG.md tools/*/README.md tools/*/CHANGELOG.md website/docs",
"prepare": "husky install",
Expand Down
4 changes: 2 additions & 2 deletions playground/entries/Spin.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { FlexProps } from '@semcore/ui/base-components';
import type { NSFlex } from '@semcore/ui/base-components';
import { Flex } from '@semcore/ui/base-components';
import type { NSSpin } from '@semcore/ui/spin';
import Spin from '@semcore/ui/spin';
Expand Down Expand Up @@ -38,7 +38,7 @@ const textSize: { [key in SpinJSXProps['size']]: NSText.Props['size'] } = {
xxl: 200,
};

const textPlacement: { [key in SpinJSXProps['textPlacement']]: FlexProps['direction'] } = {
const textPlacement: { [key in SpinJSXProps['textPlacement']]: NSFlex.Props['direction'] } = {
right: 'row',
bottom: 'column',
};
Expand Down
3 changes: 2 additions & 1 deletion semcore/accordion/.npmignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
node_modules
__tests__
src
tsconfig.json
tsconfig.json
tsconfig.tsbuildinfo
12 changes: 6 additions & 6 deletions semcore/accordion/src/Accordion.type.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import type { BoxProps, FlexProps, Flex } from '@semcore/base-components';
import type { NSBox, NSFlex } from '@semcore/base-components';
import type { PropGetterFn, Intergalactic } from '@semcore/core';
import type { Text } from '@semcore/typography';
import type { Property } from 'csstype';

declare namespace NSAccordion {
// TODO: It looks like the value isn't accurate. Revise and align it with the component's logic.
type Value = null | number | string | Array<number | string | null>;
type Props<V extends NSAccordion.Value = NSAccordion.Value> = FlexProps & {
type Props<V extends NSAccordion.Value = NSAccordion.Value> = NSFlex.Props & {
/** Value for the active tab. Can be set as stroke, number, null or as array.
* @type NSAccordion.Value
* */
Expand Down Expand Up @@ -59,17 +59,17 @@ declare namespace NSAccordion {
selected?: boolean;
};
namespace Toggle {
type Props = BoxProps & {
type Props = NSBox.Props & {
tag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
};
type Component = Intergalactic.Component<typeof Text, Props>;
}
namespace ToggleButton {
type Props = {};
type Component = Intergalactic.Component<typeof Flex, Props>;
type Component = Intergalactic.Component<NSFlex.Component, Props>;
}
namespace Chevron {
type Props = BoxProps & {
type Props = NSBox.Props & {
/**
* Chevron size
* @default m
Expand All @@ -81,7 +81,7 @@ declare namespace NSAccordion {
}

namespace Collapse {
type Props = BoxProps & {
type Props = NSBox.Props & {
/** Animation titles */
keyframes?: [string, string];
/** Enables animation on first rendering
Expand Down
2 changes: 1 addition & 1 deletion semcore/accordion/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../tsconfig.json",
"extends": "../tsconfig.json",
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.json"],
"compilerOptions": {
"rootDir": "./src"
Expand Down
1 change: 1 addition & 0 deletions semcore/add-filter/.npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ node_modules
__tests__
src
tsconfig.json
tsconfig.tsbuildinfo
4 changes: 2 additions & 2 deletions semcore/add-filter/src/AddFilter.types.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { FlexProps } from '@semcore/base-components';
import type { NSFlex } from '@semcore/base-components';
import type { FilterTrigger } from '@semcore/base-trigger';
import type { ButtonLink } from '@semcore/button';
import type { Intergalactic } from '@semcore/core';
Expand All @@ -13,7 +13,7 @@ import type { LocalizedMessages } from './translations/__intergalactic-dynamic-l
declare namespace NSAddFilter {
type Key = string;
type Data = Record<string, any>;
type Props = FlexProps & {
type Props = NSFlex.Props & {
/**
* Action to perform on `Clear filters` button click.
*/
Expand Down
2 changes: 1 addition & 1 deletion semcore/add-filter/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../tsconfig.json",
"extends": "../tsconfig.json",
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.json"],
"compilerOptions": {
"rootDir": "./src"
Expand Down
1 change: 1 addition & 0 deletions semcore/badge/.npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ node_modules
__tests__
src
tsconfig.json
tsconfig.tsbuildinfo
1 change: 0 additions & 1 deletion semcore/badge/src/Badge.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import type { BoxProps } from '@semcore/base-components';
import { Box } from '@semcore/base-components';
import type { Intergalactic } from '@semcore/core';
import { createComponent, Component, Root, sstyled } from '@semcore/core';
Expand Down
2 changes: 1 addition & 1 deletion semcore/badge/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"extends": "../../tsconfig.json",
"extends": "../tsconfig.json",
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.json"],
"compilerOptions": {
"rootDir": "./src"
Expand Down
3 changes: 2 additions & 1 deletion semcore/base-components/.npmignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
node_modules
__tests__
src
tsconfig.json
tsconfig.json
tsconfig.tsbuildinfo
31 changes: 13 additions & 18 deletions semcore/base-components/src/components/animation/Animation.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
import type { Intergalactic } from '@semcore/core';
import { createComponent, sstyled, Root, Component } from '@semcore/core';
import contextEnhance from '@semcore/core/lib/utils/enhances/contextEnhance';
import React from 'react';

import { Box } from '../flex-box';
import type { AnimationContext, AnimationProps, Animation as AnimationComponent, AnimationDefaultProps } from './Animation.types';
import type { NSAnimation } from './Animation.types';
import style from './style/animate.shadow.css';

type State = {
animationRunning: boolean;
render: AnimationProps['visible'] | AnimationProps['preserveNode'];
wasInvisible: AnimationProps['visible'];
};

function propToArray(prop: any) {
return Array.isArray(prop) ? prop : [prop, prop];
}

const makeAnimationContextValue = () => {
const context: AnimationContext = {
const context: NSAnimation.Ctx = {
onAnimationStartSubscribers: [],
onAnimationStart: (callback) => {
context.onAnimationStartSubscribers.push(callback);
Expand All @@ -31,19 +26,19 @@ const makeAnimationContextValue = () => {
};
return context;
};
export const animationContext = React.createContext<AnimationContext | null>(null);
export const animationContext = React.createContext<NSAnimation.Ctx | null>(null);

class Animation extends Component<
AnimationProps,
Intergalactic.InternalTypings.InferComponentProps<NSAnimation.Component>,
typeof Animation.enhance,
{},
{ parentAnimationContext: AnimationContext },
State,
AnimationDefaultProps
{ parentAnimationContext: NSAnimation.Ctx },
NSAnimation.State,
NSAnimation.DefaultProps
> {
static displayName = 'Animation';
static style = style;
static defaultProps: AnimationDefaultProps = {
static defaultProps: NSAnimation.DefaultProps = {
visible: false,
duration: 0,
delay: 0,
Expand All @@ -55,15 +50,15 @@ class Animation extends Component<

static enhance = [contextEnhance(animationContext, 'parentAnimationContext')];

static getDerivedStateFromProps(props: AnimationProps, state: State) {
static getDerivedStateFromProps(props: NSAnimation.Props, state: NSAnimation.State) {
const wasInvisible = state.wasInvisible || !props.visible;
if (props.visible || props.preserveNode || state.wasInvisible !== wasInvisible) {
return { render: true, wasInvisible };
}
return state;
}

state: State = {
state: NSAnimation.State = {
animationRunning: false,
render: this.props.visible || this.props.preserveNode,
wasInvisible: !this.props.visible,
Expand Down Expand Up @@ -116,7 +111,7 @@ class Animation extends Component<
this.animationEventFallback();
}

componentDidUpdate(prevProps: AnimationProps, prevState: State) {
componentDidUpdate(prevProps: typeof this.asProps, prevState: typeof this.state) {
if (prevProps.visible !== this.props.visible || prevState.render !== this.state.render) {
this.animationEventFallback();
}
Expand Down Expand Up @@ -162,4 +157,4 @@ class Animation extends Component<
}
}

export default createComponent<AnimationComponent, typeof Animation>(Animation);
export default createComponent<NSAnimation.Component, typeof Animation>(Animation);
Loading
Loading