diff --git a/.changeset/5867-plaintext-fenced-ts-batch1.md b/.changeset/5867-plaintext-fenced-ts-batch1.md
new file mode 100644
index 0000000000..80ee21ed4b
--- /dev/null
+++ b/.changeset/5867-plaintext-fenced-ts-batch1.md
@@ -0,0 +1,15 @@
+---
+---
+
+Docs only, publishes nothing: twenty-four TypeScript snippets across thirteen
+`content/docs/fields/*.mdx` reference pages were fenced ```plaintext, so
+`check-doc-snippet-types` — which reads only `ts` / `tsx` fences — never saw
+them (objectui#5867, batch 1 of N). Triage's classifier is the one applied: a
+plaintext block whose first line starts with `import` / `export` / `interface` /
+`type X =` / `const x: T` is code, and those fences are now `ts`; genuinely
+prose blocks on the same pages (a bare object literal, a comment-only
+illustration) are left alone. The gate's blocks-to-compile count rises from 157
+to 181 — exactly the batch — with diagnostics at 0, no new `FRAGMENT_MARKER`
+declarations, and the covered/ungated sets unmoved. The blocks also stop
+rendering as unstyled plaintext and pick up TypeScript highlighting, which is
+the reader-visible half.
diff --git a/content/docs/fields/boolean.mdx b/content/docs/fields/boolean.mdx
index 0b7fdd6e8d..3f19887950 100644
--- a/content/docs/fields/boolean.mdx
+++ b/content/docs/fields/boolean.mdx
@@ -19,7 +19,7 @@ The Boolean Field component provides a switch or checkbox input for collecting t
## Field Schema
-```plaintext
+```ts
interface BooleanFieldSchema {
type: 'boolean';
name: string; // Field name/ID
@@ -45,7 +45,7 @@ interface BooleanFieldSchema {
In tables/grids, boolean values are displayed as badges:
-```plaintext
+```ts
import { BooleanCellRenderer } from '@object-ui/fields';
// Renders:
diff --git a/content/docs/fields/currency.mdx b/content/docs/fields/currency.mdx
index 9e98fe1861..4d81ba471a 100644
--- a/content/docs/fields/currency.mdx
+++ b/content/docs/fields/currency.mdx
@@ -15,7 +15,7 @@ The Currency Field component provides a formatted currency input with proper loc
## Field Schema
-```plaintext
+```ts
interface CurrencyFieldSchema {
type: 'currency';
name: string; // Field name/ID
@@ -46,7 +46,7 @@ interface CurrencyFieldSchema {
In tables/grids, currency values are formatted with the appropriate symbol:
-```plaintext
+```ts
import { CurrencyCellRenderer } from '@object-ui/fields';
// Renders: $1,234.56 or €1.234,56 based on locale
diff --git a/content/docs/fields/date.mdx b/content/docs/fields/date.mdx
index 8b07b308e6..dc856d2d1e 100644
--- a/content/docs/fields/date.mdx
+++ b/content/docs/fields/date.mdx
@@ -15,7 +15,7 @@ The Date Field component provides a date picker for selecting dates and optional
## Field Schema
-```plaintext
+```ts
interface DateFieldSchema {
type: 'date' | 'datetime';
name: string; // Field name/ID
@@ -55,7 +55,7 @@ The date field supports various display formats:
In tables/grids, dates are formatted consistently:
-```plaintext
+```ts
import { DateCellRenderer } from '@object-ui/fields';
// Renders: Dec 31, 2024
diff --git a/content/docs/fields/datetime.mdx b/content/docs/fields/datetime.mdx
index b38c0b2efd..3feba05e89 100644
--- a/content/docs/fields/datetime.mdx
+++ b/content/docs/fields/datetime.mdx
@@ -23,7 +23,7 @@ The DateTime Field component provides a combined date and time input for collect
## Field Schema
-```plaintext
+```ts
interface DateTimeFieldSchema {
type: 'datetime';
name: string; // Field name/ID
@@ -52,7 +52,7 @@ Example: `2024-03-15T14:30` represents March 15, 2024 at 2:30 PM
When used in data tables or grids:
-```plaintext
+```ts
import { DateTimeCellRenderer } from '@object-ui/fields';
// Renders: Mar 15, 2024, 02:30 PM
diff --git a/content/docs/fields/email.mdx b/content/docs/fields/email.mdx
index 80900625b9..39a9fef743 100644
--- a/content/docs/fields/email.mdx
+++ b/content/docs/fields/email.mdx
@@ -15,7 +15,7 @@ The Email Field component provides a text input with built-in email validation a
## Field Schema
-```plaintext
+```ts
interface EmailFieldSchema {
type: 'email';
name: string; // Field name/ID
@@ -41,7 +41,7 @@ The email field automatically validates:
In tables/grids, email addresses are clickable links:
-```plaintext
+```ts
import { EmailCellRenderer } from '@object-ui/fields';
// Renders as: user@example.com
diff --git a/content/docs/fields/number.mdx b/content/docs/fields/number.mdx
index b217720893..3178e80b0e 100644
--- a/content/docs/fields/number.mdx
+++ b/content/docs/fields/number.mdx
@@ -19,7 +19,7 @@ The Number Field component provides a numeric input for collecting integer or de
## Field Schema
-```plaintext
+```ts
interface NumberFieldSchema {
type: 'number';
name: string; // Field name/ID
@@ -50,7 +50,7 @@ interface NumberFieldSchema {
In tables/grids, numbers are displayed with tabular formatting:
-```plaintext
+```ts
import { NumberCellRenderer } from '@object-ui/fields';
// Renders with precision and tabular-nums font
diff --git a/content/docs/fields/password.mdx b/content/docs/fields/password.mdx
index d53c218906..2b7af5485c 100644
--- a/content/docs/fields/password.mdx
+++ b/content/docs/fields/password.mdx
@@ -19,7 +19,7 @@ The Password Field component provides a secure text input for passwords with a t
## Field Schema
-```plaintext
+```ts
interface PasswordFieldSchema {
type: 'password';
name: string; // Field name/ID
diff --git a/content/docs/fields/percent.mdx b/content/docs/fields/percent.mdx
index 39bb45a853..979ad8b3e9 100644
--- a/content/docs/fields/percent.mdx
+++ b/content/docs/fields/percent.mdx
@@ -23,7 +23,7 @@ The Percent Field component provides a percentage input that automatically conve
## Field Schema
-```plaintext
+```ts
interface PercentFieldSchema {
type: 'percent';
name: string; // Field name/ID
@@ -61,7 +61,7 @@ Example:
In tables/grids, values are formatted with percentage symbol:
-```plaintext
+```ts
import { PercentCellRenderer } from '@object-ui/fields';
// Renders: 85.50%
diff --git a/content/docs/fields/phone.mdx b/content/docs/fields/phone.mdx
index b40428b4ef..e15b23f4db 100644
--- a/content/docs/fields/phone.mdx
+++ b/content/docs/fields/phone.mdx
@@ -15,7 +15,7 @@ The Phone Field component provides a text input optimized for phone number entry
## Field Schema
-```plaintext
+```ts
interface PhoneFieldSchema {
type: 'phone';
name: string; // Field name/ID
@@ -33,7 +33,7 @@ interface PhoneFieldSchema {
In tables/grids, phone numbers are clickable tel: links:
-```plaintext
+```ts
import { PhoneCellRenderer } from '@object-ui/fields';
// Renders as: +1 (555) 123-4567
diff --git a/content/docs/fields/text.mdx b/content/docs/fields/text.mdx
index 82f2f6e295..42e045b2b7 100644
--- a/content/docs/fields/text.mdx
+++ b/content/docs/fields/text.mdx
@@ -23,7 +23,7 @@ The Text Field component provides a single-line text input for collecting basic
## Field Schema
-```plaintext
+```ts
interface TextFieldSchema {
type: 'text';
name: string; // Field name/ID
@@ -53,7 +53,7 @@ interface TextFieldSchema {
When used in data tables or grids, the text field is rendered as simple truncated text:
-```plaintext
+```ts
import { TextCellRenderer } from '@object-ui/fields';
// Automatically used for type: 'text' in grids/tables
diff --git a/content/docs/fields/textarea.mdx b/content/docs/fields/textarea.mdx
index c408cd2e3b..0c8723d10a 100644
--- a/content/docs/fields/textarea.mdx
+++ b/content/docs/fields/textarea.mdx
@@ -19,7 +19,7 @@ The TextArea Field component provides a multi-line text input for collecting lon
## Field Schema
-```plaintext
+```ts
interface TextAreaFieldSchema {
type: 'textarea';
name: string; // Field name/ID
@@ -49,7 +49,7 @@ interface TextAreaFieldSchema {
When displayed in tables or grids, long text is truncated:
-```plaintext
+```ts
import { TextCellRenderer } from '@object-ui/fields';
// Same renderer as text field - truncates long content
diff --git a/content/docs/fields/time.mdx b/content/docs/fields/time.mdx
index 16196559b5..2dda605c77 100644
--- a/content/docs/fields/time.mdx
+++ b/content/docs/fields/time.mdx
@@ -23,7 +23,7 @@ The Time Field component provides a time-only input for collecting hour and minu
## Field Schema
-```plaintext
+```ts
interface TimeFieldSchema {
type: 'time';
name: string; // Field name/ID
diff --git a/content/docs/fields/url.mdx b/content/docs/fields/url.mdx
index 4f88dca020..9ff8b517f7 100644
--- a/content/docs/fields/url.mdx
+++ b/content/docs/fields/url.mdx
@@ -15,7 +15,7 @@ The URL Field component provides a text input with URL validation and clickable
## Field Schema
-```plaintext
+```ts
interface UrlFieldSchema {
type: 'url';
name: string; // Field name/ID
@@ -40,7 +40,7 @@ The URL field automatically validates:
In tables/grids, URLs are clickable external links:
-```plaintext
+```ts
import { UrlCellRenderer } from '@object-ui/fields';
// Renders as: https://example.com