Skip to content

Commit 4c291ca

Browse files
committed
refactor: recipe jsx inference
1 parent 1e2fa2f commit 4c291ca

File tree

4 files changed

+9
-3
lines changed

4 files changed

+9
-3
lines changed

.changeset/clever-breads-fly.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@pandacss/core': patch
3+
---
4+
5+
JSX: Always track the `<component>.Root` for recipe variant props. This is a generally resilient default and prevents
6+
the need for manual jsx hints.

packages/core/src/recipes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ export class Recipes {
127127

128128
const ROOT_SLOT = 'root'
129129

130-
if ('slots' in recipe && recipe.slots.includes(ROOT_SLOT)) {
130+
if (Recipes.isSlotRecipeConfig(recipe) && recipe.slots.includes(ROOT_SLOT)) {
131131
const jsxRootName = capitalize(ROOT_SLOT)
132132
const rootNames: string[] = [`${capitalized}.${jsxRootName}`, `${capitalized}${jsxRootName}`]
133133
jsx.push(...rootNames)

packages/studio/styled-system/types/global.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import type { CompositionStyles } from './composition';
1010
declare module '@pandacss/dev' {
1111
export function defineRecipe<V extends RecipeVariantRecord>(config: RecipeConfig<V>): Panda.RecipeConfig
1212
export function defineSlotRecipe<S extends string, V extends SlotRecipeVariantRecord<S>>(config: SlotRecipeConfig<S, V>): Panda.SlotRecipeConfig
13-
export function defineStyles(definition: SystemStyleObject): SystemStyleObject
13+
export function defineStyles<T extends SystemStyleObject>(definition: T): T
1414
export function defineGlobalStyles(definition: GlobalStyleObject): Panda.GlobalStyleObject
1515
export function defineTextStyles(definition: CompositionStyles['textStyles']): Panda.TextStyles
1616
export function defineAnimationStyles(definition: CompositionStyles['animationStyles']): Panda.AnimationStyles

packages/studio/styled-system/types/jsx.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ interface RecipeFn {
3434
__type: any
3535
}
3636

37-
interface JsxFactoryOptions<TProps extends Dict> {
37+
export interface JsxFactoryOptions<TProps extends Dict> {
3838
dataAttr?: boolean
3939
defaultProps?: Partial<TProps>
4040
shouldForwardProp?: (prop: string, variantKeys: string[]) => boolean

0 commit comments

Comments
 (0)