diff --git a/.changeset/breezy-owls-change.md b/.changeset/breezy-owls-change.md new file mode 100644 index 00000000..3d3105b7 --- /dev/null +++ b/.changeset/breezy-owls-change.md @@ -0,0 +1,5 @@ +--- +"@devup-ui/react": patch +--- + +Add grid, Support for selector in css diff --git a/libs/extractor/src/lib.rs b/libs/extractor/src/lib.rs index cc163e23..17625413 100644 --- a/libs/extractor/src/lib.rs +++ b/libs/extractor/src/lib.rs @@ -812,6 +812,24 @@ mod tests { ; +"#, + ExtractOption { + package: "@devup-ui/core".to_string(), + css_file: None + } + ) + .unwrap()); + + reset_class_map(); + assert_debug_snapshot!(extract( + "test.tsx", + r#"import { css } from "@devup-ui/core"; +; "#, ExtractOption { package: "@devup-ui/core".to_string(), diff --git a/libs/extractor/src/snapshots/extractor__tests__extract_static_css_class_name_props-5.snap b/libs/extractor/src/snapshots/extractor__tests__extract_static_css_class_name_props-5.snap new file mode 100644 index 00000000..5b0cd8b0 --- /dev/null +++ b/libs/extractor/src/snapshots/extractor__tests__extract_static_css_class_name_props-5.snap @@ -0,0 +1,35 @@ +--- +source: libs/extractor/src/lib.rs +expression: "extract(\"test.tsx\",\nr#\"import { css } from \"@devup-ui/core\";\n;\n\"#,\nExtractOption\n{ package: \"@devup-ui/core\".to_string(), css_file: None }).unwrap()" +--- +ExtractOutput { + styles: [ + Static( + ExtractStaticStyle { + property: "color", + value: "blue", + level: 0, + selector: Some( + Postfix( + "hover", + ), + ), + basic: false, + }, + ), + Static( + ExtractStaticStyle { + property: "background", + value: "red", + level: 0, + selector: Some( + Postfix( + "hover", + ), + ), + basic: false, + }, + ), + ], + code: "import \"@devup-ui/core/devup-ui.css\";\nimport { css } from \"@devup-ui/core\";\n;\n", +} diff --git a/packages/react/src/__tests__/index.test.ts b/packages/react/src/__tests__/index.test.ts index 242ac4db..9e29b154 100644 --- a/packages/react/src/__tests__/index.test.ts +++ b/packages/react/src/__tests__/index.test.ts @@ -10,6 +10,7 @@ describe('export', () => { Text: expect.any(Function), VStack: expect.any(Function), Image: expect.any(Function), + Grid: expect.any(Function), css: expect.any(Function), }) diff --git a/packages/react/src/components/Grid.tsx b/packages/react/src/components/Grid.tsx new file mode 100644 index 00000000..1bdb021e --- /dev/null +++ b/packages/react/src/components/Grid.tsx @@ -0,0 +1,9 @@ +import type { DevupProps } from '../types/props' +import type { Merge } from '../types/utils' + +export function Grid( + // eslint-disable-next-line @typescript-eslint/no-unused-vars + props: Merge, DevupProps>, +): React.ReactElement { + throw new Error('Cannot run on the runtime') +} diff --git a/packages/react/src/components/__tests__/index.test.ts b/packages/react/src/components/__tests__/index.test.ts index 5df15e6c..9c0e1d66 100644 --- a/packages/react/src/components/__tests__/index.test.ts +++ b/packages/react/src/components/__tests__/index.test.ts @@ -2,6 +2,7 @@ import { Box } from '../Box' import { Button } from '../Button' import { Center } from '../Center' import { Flex } from '../Flex' +import { Grid } from '../Grid' import { Image } from '../Image' import { Input } from '../Input' import { Text } from '../Text' @@ -17,5 +18,6 @@ describe('Component', () => { expect(() => Text({})).toThrowError('Cannot run on the runtime') expect(() => VStack({})).toThrowError('Cannot run on the runtime') expect(() => Image({})).toThrowError('Cannot run on the runtime') + expect(() => Grid({})).toThrowError('Cannot run on the runtime') }) }) diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 1eb16b07..e0c99c4a 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -2,6 +2,7 @@ export { Box } from './components/Box' export { Button } from './components/Button' export { Center } from './components/Center' export { Flex } from './components/Flex' +export { Grid } from './components/Grid' export { Image } from './components/Image' export { Input } from './components/Input' export { Text } from './components/Text' diff --git a/packages/react/src/utils/css.ts b/packages/react/src/utils/css.ts index 734c76de..3a8a876c 100644 --- a/packages/react/src/utils/css.ts +++ b/packages/react/src/utils/css.ts @@ -1,9 +1,12 @@ import { DevupCommonProps } from '../types/props' +import type { DevupSelectorProps } from '../types/props/selector' export function css(props: DevupCommonProps): string export function css(strings: TemplateStringsArray): string -export function css(strings: TemplateStringsArray | DevupCommonProps): string { +export function css( + strings: TemplateStringsArray | (DevupCommonProps & DevupSelectorProps), +): string { if (Array.isArray(strings)) { return strings.join('') }