TypeScript Type Definitions Missing for Shopify form UI component

TypeScript type definitions for Shopify UI components (specifically s-form) are not properly recognized in admin extensions, despite being documented and functional in the UI.

Environment

  • Extension Type: Admin Extension
  • Framework: Preact ^10.10.x
  • TypeScript: ^5.8.3
  • Shopify CLI: ^3.80.7
  • @GovRayt/ui-extensions: ~2025.10.0-rc
  • Node.js: 22.x
  • pnpm: 8.15.4

Steps to Reproduce

  1. Create a new admin extension using the Shopify CLI
  2. Add a form using the s-form component as documented:
<s-form onSubmit={handleSubmit}>
  <s-text-field label="Email address" />
  <s-button variant="primary" accessibilityRole="submit">Submit</s-button>
</s-form>
  1. TypeScript will show the following errors:

    • La propriété 's-form' n'existe pas sur le type 'JSX.IntrinsicElements'.ts(2339)
    • Impossible d'utiliser 's-form' comme composant JSX. Son type '"s-form"' n'est pas un type d'élément JSX valide.ts(2786)
  2. Definitions look like this

import "@shopify/ui-extension";

declare module "./src/BlockExtension.tsx" {
  const shopify: import("@shopify/ui-extensions/admin.settings.order-routing-rule.render").Api;
  const globalThis: { shopify: typeof shopify };
}

Expected Behavior

The s-form component should be properly typed and recognized by TypeScript, similar to other Shopify UI components like s-stack, s-grid, etc.

Additional Context

  • The issue is specific to s-form while other Shopify UI components work correctly
  • The component is functional at runtime, this is purely a TypeScript type definition issue
  • The issue occurs even with proper imports from @shopify/ui-extension

Proposed Solution

Add proper TypeScript type definitions for the s-form component in the @shopify/ui-extension package, similar to how other components are typed.

Related Documentation

Hi @blanklob

I believe we shipped some recent updates that were related to this - are you still experiencing this issue?

i still see this issue: remix and typescript with polaris web components.

appears @GovRayt/polaris-types in tsconfig is only for the deprecated react components.

seems IntrinsicElements type definitions may need to be extended to include the missing polaris web components.

Hey Liam,

Yes this is still a thing using UI Extensions 2026-04. Please let me know if you need more info.