diff --git a/lib/components/grid/types.ts b/lib/components/grid/types.ts
index a7b2c7a6..a794318a 100644
--- a/lib/components/grid/types.ts
+++ b/lib/components/grid/types.ts
@@ -87,7 +87,7 @@ export type GridProps<
/**
* Indicates the directionality of grid cells.
*
- * ℹ️ See HTML `dir` [global attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/dir).
+ * ℹ️ See HTML `dir` [global attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/dir) for more information.
*/
dir?: "ltr" | "rtl";
diff --git a/package.json b/package.json
index 271a12d3..4a243816 100644
--- a/package.json
+++ b/package.json
@@ -62,6 +62,7 @@
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@ts-ast-parser/core": "^0.8.0",
+ "@types/markdown-it": "^14.1.2",
"@types/node": "^24.2.0",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
@@ -75,6 +76,7 @@
"husky": "^9.1.7",
"jsdom": "^26.1.0",
"lint-staged": "^16.1.4",
+ "markdown-it": "^14.1.0",
"marked": "^16.4.1",
"postcss": "^8.5.6",
"prettier": "3.6.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e4c99f55..9f9fd9ce 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -61,6 +61,9 @@ importers:
"@ts-ast-parser/core":
specifier: ^0.8.0
version: 0.8.0(typescript@5.8.3)
+ "@types/markdown-it":
+ specifier: ^14.1.2
+ version: 14.1.2
"@types/node":
specifier: ^24.2.0
version: 24.2.0
@@ -100,6 +103,9 @@ importers:
lint-staged:
specifier: ^16.1.4
version: 16.1.4
+ markdown-it:
+ specifier: ^14.1.0
+ version: 14.1.0
marked:
specifier: ^16.4.1
version: 16.4.1
@@ -165,7 +171,7 @@ importers:
version: 4.3.0(rollup@4.44.2)(typescript@5.8.3)(vite@7.0.6(@types/node@24.2.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0))
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/node@24.2.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)
zustand:
specifier: ^5.0.7
version: 5.0.7(@types/react@19.1.8)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0))
@@ -1763,6 +1769,12 @@ packages:
integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==
}
+ "@types/debug@4.1.12":
+ resolution:
+ {
+ integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==
+ }
+
"@types/deep-eql@4.0.2":
resolution:
{
@@ -1781,6 +1793,30 @@ packages:
integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
}
+ "@types/linkify-it@5.0.0":
+ resolution:
+ {
+ integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==
+ }
+
+ "@types/markdown-it@14.1.2":
+ resolution:
+ {
+ integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==
+ }
+
+ "@types/mdurl@2.0.0":
+ resolution:
+ {
+ integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==
+ }
+
+ "@types/ms@2.1.0":
+ resolution:
+ {
+ integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==
+ }
+
"@types/node@18.19.121":
resolution:
{
@@ -3302,6 +3338,12 @@ packages:
integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
}
+ linkify-it@5.0.0:
+ resolution:
+ {
+ integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==
+ }
+
lint-staged@16.1.4:
resolution:
{
@@ -3400,6 +3442,13 @@ packages:
integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
}
+ markdown-it@14.1.0:
+ resolution:
+ {
+ integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==
+ }
+ hasBin: true
+
marked@16.4.1:
resolution:
{
@@ -3408,6 +3457,12 @@ packages:
engines: { node: ">= 20" }
hasBin: true
+ mdurl@2.0.0:
+ resolution:
+ {
+ integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==
+ }
+
merge-stream@2.0.0:
resolution:
{
@@ -3801,6 +3856,13 @@ packages:
}
engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 }
+ punycode.js@2.3.1:
+ resolution:
+ {
+ integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==
+ }
+ engines: { node: ">=6" }
+
punycode@2.3.1:
resolution:
{
@@ -4448,6 +4510,12 @@ packages:
engines: { node: ">=14.17" }
hasBin: true
+ uc.micro@2.1.0:
+ resolution:
+ {
+ integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==
+ }
+
ufo@1.6.1:
resolution:
{
@@ -5774,12 +5842,29 @@ snapshots:
dependencies:
"@types/deep-eql": 4.0.2
+ "@types/debug@4.1.12":
+ dependencies:
+ "@types/ms": 2.1.0
+ optional: true
+
"@types/deep-eql@4.0.2": {}
"@types/estree@1.0.8": {}
"@types/json-schema@7.0.15": {}
+ "@types/linkify-it@5.0.0": {}
+
+ "@types/markdown-it@14.1.2":
+ dependencies:
+ "@types/linkify-it": 5.0.0
+ "@types/mdurl": 2.0.0
+
+ "@types/mdurl@2.0.0": {}
+
+ "@types/ms@2.1.0":
+ optional: true
+
"@types/node@18.19.121":
dependencies:
undici-types: 5.26.5
@@ -6662,6 +6747,10 @@ snapshots:
lines-and-columns@1.2.4: {}
+ linkify-it@5.0.0:
+ dependencies:
+ uc.micro: 2.1.0
+
lint-staged@16.1.4:
dependencies:
chalk: 5.4.1
@@ -6732,8 +6821,19 @@ snapshots:
make-error@1.3.6: {}
+ markdown-it@14.1.0:
+ dependencies:
+ argparse: 2.0.1
+ entities: 4.5.0
+ linkify-it: 5.0.0
+ mdurl: 2.0.0
+ punycode.js: 2.3.1
+ uc.micro: 2.1.0
+
marked@16.4.1: {}
+ mdurl@2.0.0: {}
+
merge-stream@2.0.0: {}
merge2@1.4.1: {}
@@ -6901,6 +7001,8 @@ snapshots:
ansi-styles: 5.2.0
react-is: 17.0.2
+ punycode.js@2.3.1: {}
+
punycode@2.3.1: {}
quansync@0.2.11: {}
@@ -7277,6 +7379,8 @@ snapshots:
typescript@5.8.3: {}
+ uc.micro@2.1.0: {}
+
ufo@1.6.1: {}
undici-types@5.26.5: {}
@@ -7370,7 +7474,7 @@ snapshots:
terser: 5.43.1
yaml: 2.8.0
- vitest@3.2.4(@types/node@24.2.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0):
+ vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.2.0)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0):
dependencies:
"@types/chai": 5.2.2
"@vitest/expect": 3.2.4
@@ -7396,6 +7500,7 @@ snapshots:
vite-node: 3.2.4(@types/node@24.2.0)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.43.1)(yaml@2.8.0)
why-is-node-running: 2.3.0
optionalDependencies:
+ "@types/debug": 4.1.12
"@types/node": 24.2.0
jsdom: 26.1.0
transitivePeerDependencies:
diff --git a/public/generated/js-docs/Grid.json b/public/generated/js-docs/Grid.json
index 4fced1db..f170bdce 100644
--- a/public/generated/js-docs/Grid.json
+++ b/public/generated/js-docs/Grid.json
@@ -1,7 +1,7 @@
{
"description": [
{
- "content": "Renders data with many rows and columns."
+ "content": "Renders data with many rows and columns.
\n"
}
],
"filePath": "lib/components/grid/Grid.tsx",
@@ -10,7 +10,7 @@
"className": {
"description": [
{
- "content": "CSS class name."
+ "content": "CSS class name.
\n"
}
],
"html": "className?: string
",
@@ -20,10 +20,10 @@
"dir": {
"description": [
{
- "content": "Indicates the directionality of grid cells."
+ "content": "Indicates the directionality of grid cells.
\n"
},
{
- "content": "See HTML dir [global attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/dir).",
+ "content": "See HTML dir global attribute for more information.
\n",
"intent": "primary"
}
],
@@ -34,7 +34,7 @@
"style": {
"description": [
{
- "content": "Optional CSS properties.\nThe grid of cells will fill the height and width defined by this style."
+ "content": "Optional CSS properties.\nThe grid of cells will fill the height and width defined by this style.
\n"
}
],
"html": "style?: CSSProperties
",
@@ -44,7 +44,7 @@
"children": {
"description": [
{
- "content": "Additional content to be rendered within the grid (above cells).\nThis property can be used to render things like overlays or tooltips."
+ "content": "Additional content to be rendered within the grid (above cells).\nThis property can be used to render things like overlays or tooltips.
\n"
}
],
"html": "children?: ReactNode
",
@@ -54,13 +54,13 @@
"cellComponent": {
"description": [
{
- "content": "React component responsible for rendering a cell."
+ "content": "React component responsible for rendering a cell.
\n"
},
{
- "content": "This component will receive an index and style prop by default.\nAdditionally it will receive prop values passed to cellProps."
+ "content": "This component will receive an index and style prop by default.\nAdditionally it will receive prop values passed to cellProps.
\n"
},
{
- "content": "The prop types for this component are exported as CellComponentProps",
+ "content": "The prop types for this component are exported as CellComponentProps
\n",
"intent": "primary"
}
],
@@ -71,10 +71,10 @@
"cellProps": {
"description": [
{
- "content": "Additional props to be passed to the cell-rendering component.\nGrid will automatically re-render cells when values in this object change."
+ "content": "Additional props to be passed to the cell-rendering component.\nGrid will automatically re-render cells when values in this object change.
\n"
},
{
- "content": "This object must not contain ariaAttributes, columnIndex, rowIndex, or style props.",
+ "content": "This object must not contain ariaAttributes, columnIndex, rowIndex, or style props.
\n",
"intent": "warning"
}
],
@@ -85,7 +85,7 @@
"columnCount": {
"description": [
{
- "content": "Number of columns to be rendered in the grid."
+ "content": "Number of columns to be rendered in the grid.
\n"
}
],
"html": "columnCount: number
",
@@ -95,7 +95,7 @@
"columnWidth": {
"description": [
{
- "content": "Column width; the following formats are supported:
• number of pixels (number)
• percentage of the grid's current width (string)
• function that returns the row width (in pixels) given an index and cellProps"
+ "content": "Column width; the following formats are supported:
\n\n- number of pixels (number)
\n- percentage of the grid's current width (string)
\n- function that returns the row width (in pixels) given an index and
cellProps \n
\n"
}
],
"html": "columnWidth: string | number | ((index: number, cellProps: CellProps) => number)
",
@@ -105,7 +105,7 @@
"defaultHeight": {
"description": [
{
- "content": "Default height of grid for initial render.\nThis value is important for server rendering."
+ "content": "Default height of grid for initial render.\nThis value is important for server rendering.
\n"
}
],
"html": "defaultHeight?: number = 0
",
@@ -115,7 +115,7 @@
"defaultWidth": {
"description": [
{
- "content": "Default width of grid for initial render.\nThis value is important for server rendering."
+ "content": "Default width of grid for initial render.\nThis value is important for server rendering.
\n"
}
],
"html": "defaultWidth?: number = 0
",
@@ -125,10 +125,10 @@
"gridRef": {
"description": [
{
- "content": "Imperative Grid API."
+ "content": "Imperative Grid API.
\n"
},
{
- "content": "The useGridRef and useGridCallbackRef hooks are exported for convenience use in TypeScript projects.",
+ "content": "The useGridRef and useGridCallbackRef hooks are exported for convenience use in TypeScript projects.
\n",
"intent": "primary"
}
],
@@ -139,7 +139,7 @@
"onCellsRendered": {
"description": [
{
- "content": "Callback notified when the range of rendered cells changes."
+ "content": "Callback notified when the range of rendered cells changes.
\n"
}
],
"html": "onCellsRendered?: ((visibleCells: { columnStartIndex: number; columnStopIndex: number; rowStartIndex: number; rowStopIndex: number; }, allCells: { columnStartIndex: number; columnStopIndex: number; rowStartIndex: number; rowStopIndex: number; }) => void)
",
@@ -149,7 +149,7 @@
"onResize": {
"description": [
{
- "content": "Callback notified when the Grid's outermost HTMLElement resizes.\nThis may be used to (re)scroll a cell into view."
+ "content": "Callback notified when the Grid's outermost HTMLElement resizes.\nThis may be used to (re)scroll a cell into view.
\n"
}
],
"html": "onResize?: ((size: { height: number; width: number; }, prevSize: { height: number; width: number; }) => void)
",
@@ -159,7 +159,7 @@
"overscanCount": {
"description": [
{
- "content": "How many additional rows/columns to render outside of the visible area.\nThis can reduce visual flickering near the edges of a grid when scrolling."
+ "content": "How many additional rows/columns to render outside of the visible area.\nThis can reduce visual flickering near the edges of a grid when scrolling.
\n"
}
],
"html": "overscanCount?: number = 3
",
@@ -169,7 +169,7 @@
"rowCount": {
"description": [
{
- "content": "Number of rows to be rendered in the grid."
+ "content": "Number of rows to be rendered in the grid.
\n"
}
],
"html": "rowCount: number
",
@@ -179,7 +179,7 @@
"rowHeight": {
"description": [
{
- "content": "Row height; the following formats are supported:
• number of pixels (number)
• percentage of the grid's current height (string)
• function that returns the row height (in pixels) given an index and cellProps"
+ "content": "Row height; the following formats are supported:
\n\n- number of pixels (number)
\n- percentage of the grid's current height (string)
\n- function that returns the row height (in pixels) given an index and
cellProps \n
\n"
}
],
"html": "rowHeight: string | number | ((index: number, cellProps: CellProps) => number)
",
@@ -189,10 +189,10 @@
"tagName": {
"description": [
{
- "content": "Can be used to override the root HTML element rendered by the List component.\nThe default value is \"div\", meaning that List renders an HTMLDivElement as its root."
+ "content": "Can be used to override the root HTML element rendered by the List component.\nThe default value is "div", meaning that List renders an HTMLDivElement as its root.
\n"
},
{
- "content": "In most use cases the default ARIA roles are sufficient and this prop is not needed.",
+ "content": "In most use cases the default ARIA roles are sufficient and this prop is not needed.
\n",
"intent": "warning"
}
],
diff --git a/public/generated/js-docs/GridImperativeAPI.json b/public/generated/js-docs/GridImperativeAPI.json
index f20d430b..a199d027 100644
--- a/public/generated/js-docs/GridImperativeAPI.json
+++ b/public/generated/js-docs/GridImperativeAPI.json
@@ -1,10 +1,10 @@
{
"description": [
{
- "content": "Ref used to interact with this component's imperative API.\nThis API has imperative methods for scrolling and a getter for the outermost DOM element."
+ "content": "Ref used to interact with this component's imperative API.\nThis API has imperative methods for scrolling and a getter for the outermost DOM element.
\n"
},
{
- "content": "The useGridRef and useGridCallbackRef hooks are exported for convenience use in TypeScript projects.",
+ "content": "The useGridRef and useGridCallbackRef hooks are exported for convenience use in TypeScript projects.
\n",
"intent": "primary"
}
],
@@ -13,7 +13,7 @@
{
"description": [
{
- "content": "Scrolls the grid so that the specified row and column are visible."
+ "content": "Scrolls the grid so that the specified row and column are visible.
\n"
}
],
"html": "scrollToCell: ({
\n behavior,
\n columnAlign,
\n columnIndex,
\n rowAlign,
\n rowIndex
\n }: {
\n behavior?: \"auto\" | \"instant\" | \"smooth\";
\n columnAlign?: \"auto\" | \"center\" | \"end\" | \"smart\" | \"start\";
\n columnIndex: number;
\n rowAlign?: \"auto\" | \"center\" | \"end\" | \"smart\" | \"start\";
\n rowIndex: number;
\n }) => void;
",
@@ -22,7 +22,7 @@
{
"description": [
{
- "content": "Scrolls the grid so that the specified column is visible."
+ "content": "Scrolls the grid so that the specified column is visible.
\n"
}
],
"html": "scrollToColumn: ({
\n align,
\n behavior,
\n index
\n }: {
\n align?: \"auto\" | \"center\" | \"end\" | \"smart\" | \"start\";
\n behavior?: \"auto\" | \"instant\" | \"smooth\";
\n index: number;
\n }) => void;
",
@@ -31,7 +31,7 @@
{
"description": [
{
- "content": "Scrolls the grid so that the specified row is visible."
+ "content": "Scrolls the grid so that the specified row is visible.
\n"
}
],
"html": "scrollToRow: ({
\n align,
\n behavior,
\n index
\n }: {
\n align?: \"auto\" | \"center\" | \"end\" | \"smart\" | \"start\";
\n behavior?: \"auto\" | \"instant\" | \"smooth\";
\n index: number;
\n }) => void;
",
diff --git a/public/generated/js-docs/List.json b/public/generated/js-docs/List.json
index ef6a50df..e2a99107 100644
--- a/public/generated/js-docs/List.json
+++ b/public/generated/js-docs/List.json
@@ -1,7 +1,7 @@
{
"description": [
{
- "content": "Renders data with many rows."
+ "content": "Renders data with many rows.
\n"
}
],
"filePath": "lib/components/list/List.tsx",
@@ -10,7 +10,7 @@
"className": {
"description": [
{
- "content": "CSS class name."
+ "content": "CSS class name.
\n"
}
],
"html": "className?: string
",
@@ -20,7 +20,7 @@
"style": {
"description": [
{
- "content": "Optional CSS properties.\nThe list of rows will fill the height defined by this style."
+ "content": "Optional CSS properties.\nThe list of rows will fill the height defined by this style.
\n"
}
],
"html": "style?: CSSProperties
",
@@ -30,7 +30,7 @@
"children": {
"description": [
{
- "content": "Additional content to be rendered within the list (above cells).\nThis property can be used to render things like overlays or tooltips."
+ "content": "Additional content to be rendered within the list (above cells).\nThis property can be used to render things like overlays or tooltips.
\n"
}
],
"html": "children?: ReactNode
",
@@ -40,7 +40,7 @@
"defaultHeight": {
"description": [
{
- "content": "Default height of list for initial render.\nThis value is important for server rendering."
+ "content": "Default height of list for initial render.\nThis value is important for server rendering.
\n"
}
],
"html": "defaultHeight?: number = 0
",
@@ -50,13 +50,13 @@
"listRef": {
"description": [
{
- "content": "Ref used to interact with this component's imperative API."
+ "content": "Ref used to interact with this component's imperative API.
\n"
},
{
- "content": "This API has imperative methods for scrolling and a getter for the outermost DOM element."
+ "content": "This API has imperative methods for scrolling and a getter for the outermost DOM element.
\n"
},
{
- "content": "The useListRef and useListCallbackRef hooks are exported for convenience use in TypeScript projects.",
+ "content": "The useListRef and useListCallbackRef hooks are exported for convenience use in TypeScript projects.
\n",
"intent": "primary"
}
],
@@ -67,7 +67,7 @@
"onResize": {
"description": [
{
- "content": "Callback notified when the List's outermost HTMLElement resizes.\nThis may be used to (re)scroll a row into view."
+ "content": "Callback notified when the List's outermost HTMLElement resizes.\nThis may be used to (re)scroll a row into view.
\n"
}
],
"html": "onResize?: ((size: { height: number; width: number; }, prevSize: { height: number; width: number; }) => void)
",
@@ -77,7 +77,7 @@
"onRowsRendered": {
"description": [
{
- "content": "Callback notified when the range of visible rows changes."
+ "content": "Callback notified when the range of visible rows changes.
\n"
}
],
"html": "onRowsRendered?: ((visibleRows: { startIndex: number; stopIndex: number; }, allRows: { startIndex: number; stopIndex: number; }) => void)
",
@@ -87,7 +87,7 @@
"overscanCount": {
"description": [
{
- "content": "How many additional rows to render outside of the visible area.\nThis can reduce visual flickering near the edges of a list when scrolling."
+ "content": "How many additional rows to render outside of the visible area.\nThis can reduce visual flickering near the edges of a list when scrolling.
\n"
}
],
"html": "overscanCount?: number = 3
",
@@ -97,13 +97,13 @@
"rowComponent": {
"description": [
{
- "content": "React component responsible for rendering a row."
+ "content": "React component responsible for rendering a row.
\n"
},
{
- "content": "This component will receive an index and style prop by default.\nAdditionally it will receive prop values passed to rowProps."
+ "content": "This component will receive an index and style prop by default.\nAdditionally it will receive prop values passed to rowProps.
\n"
},
{
- "content": "The prop types for this component are exported as RowComponentProps",
+ "content": "The prop types for this component are exported as RowComponentProps
\n",
"intent": "primary"
}
],
@@ -114,7 +114,7 @@
"rowCount": {
"description": [
{
- "content": "Number of items to be rendered in the list."
+ "content": "Number of items to be rendered in the list.
\n"
}
],
"html": "rowCount: number
",
@@ -124,10 +124,10 @@
"rowHeight": {
"description": [
{
- "content": "Row height; the following formats are supported:
• number of pixels (number)
• percentage of the grid's current height (string)
• function that returns the row height (in pixels) given an index and cellProps
• dynamic row height cache returned by the useDynamicRowHeight hook"
+ "content": "Row height; the following formats are supported:
\n\n- number of pixels (number)
\n- percentage of the grid's current height (string)
\n- function that returns the row height (in pixels) given an index and
cellProps \n- dynamic row height cache returned by the
useDynamicRowHeight hook \n
\n"
},
{
- "content": "Dynamic row heights are not as efficient as predetermined sizes.\nIt's recommended to provide your own height values if they can be determined ahead of time.",
+ "content": "Dynamic row heights are not as efficient as predetermined sizes.\nIt's recommended to provide your own height values if they can be determined ahead of time.
\n",
"intent": "warning"
}
],
@@ -138,10 +138,10 @@
"rowProps": {
"description": [
{
- "content": "Additional props to be passed to the row-rendering component.\nList will automatically re-render rows when values in this object change."
+ "content": "Additional props to be passed to the row-rendering component.\nList will automatically re-render rows when values in this object change.
\n"
},
{
- "content": "This object must not contain ariaAttributes, index, or style props.",
+ "content": "This object must not contain ariaAttributes, index, or style props.
\n",
"intent": "warning"
}
],
@@ -152,10 +152,10 @@
"tagName": {
"description": [
{
- "content": "Can be used to override the root HTML element rendered by the List component.\nThe default value is \"div\", meaning that List renders an HTMLDivElement as its root."
+ "content": "Can be used to override the root HTML element rendered by the List component.\nThe default value is "div", meaning that List renders an HTMLDivElement as its root.
\n"
},
{
- "content": "In most use cases the default ARIA roles are sufficient and this prop is not needed.",
+ "content": "In most use cases the default ARIA roles are sufficient and this prop is not needed.
\n",
"intent": "warning"
}
],
diff --git a/public/generated/js-docs/ListImperativeAPI.json b/public/generated/js-docs/ListImperativeAPI.json
index fc942657..8be088ee 100644
--- a/public/generated/js-docs/ListImperativeAPI.json
+++ b/public/generated/js-docs/ListImperativeAPI.json
@@ -1,10 +1,10 @@
{
"description": [
{
- "content": "Imperative List API."
+ "content": "Imperative List API.
\n"
},
{
- "content": "The useListRef and useListCallbackRef hooks are exported for convenience use in TypeScript projects.",
+ "content": "The useListRef and useListCallbackRef hooks are exported for convenience use in TypeScript projects.
\n",
"intent": "primary"
}
],
@@ -13,7 +13,7 @@
{
"description": [
{
- "content": "Scrolls the list so that the specified row is visible."
+ "content": "Scrolls the list so that the specified row is visible.
\n"
}
],
"html": "scrollToRow: ({
\n align,
\n behavior,
\n index
\n }: {
\n align?: \"auto\" | \"center\" | \"end\" | \"smart\" | \"start\";
\n behavior?: \"auto\" | \"instant\" | \"smooth\";
\n index: number;
\n }) => void;
",
diff --git a/scripts/utils/docs/formatDescriptionText.ts b/scripts/utils/docs/formatDescriptionText.ts
index 3bc8fd6e..9e047cf1 100644
--- a/scripts/utils/docs/formatDescriptionText.ts
+++ b/scripts/utils/docs/formatDescriptionText.ts
@@ -1,10 +1,11 @@
+import Markdown from "markdown-it";
+
+let processor: Markdown | undefined = undefined;
+
export function formatDescriptionText(text: string) {
- return text
- .replaceAll("\n- ", "
• ")
- .replaceAll("\n\n", "
")
- .replaceAll(/~~([^~]+)~~/g, "$1")
- .replaceAll(/\*\*([^*]+)\*\*/g, "$1")
- .replaceAll(/\*([^*]+)\*/g, "$1")
- .replaceAll(/_([^_]+)_/g, "$1")
- .replaceAll(/`([^`]+)`/g, "$1");
+ if (processor === undefined) {
+ processor = new Markdown();
+ }
+
+ return processor.render(text);
}
diff --git a/scripts/utils/docs/parseDescription.ts b/scripts/utils/docs/parseDescription.ts
index a149e58f..daaad5e4 100644
--- a/scripts/utils/docs/parseDescription.ts
+++ b/scripts/utils/docs/parseDescription.ts
@@ -30,9 +30,9 @@ export async function parseDescription(rawText: string) {
content = formatDescriptionText(chunk.trim());
for (const char in INTENT_FLAGS) {
- if (content.startsWith(char)) {
+ if (content.startsWith(`${char} `)) {
intent = INTENT_FLAGS[char as keyof typeof INTENT_FLAGS] as Intent;
- content = content.substring(char.length + 1);
+ content = content.replace(`
${char} `, "
");
}
}
}
From ea2cad9eaa5d0ce0c25c0034e8579ee072e03e32 Mon Sep 17 00:00:00 2001
From: Brian Vaughn
Date: Wed, 3 Dec 2025 19:25:58 -0500
Subject: [PATCH 3/4] Fix continue links
---
src/routes/grid/RenderingGridRoute.tsx | 2 +-
src/routes/list/DynamicRowHeightsRoute.tsx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/routes/grid/RenderingGridRoute.tsx b/src/routes/grid/RenderingGridRoute.tsx
index 61bad959..00763aa1 100644
--- a/src/routes/grid/RenderingGridRoute.tsx
+++ b/src/routes/grid/RenderingGridRoute.tsx
@@ -60,7 +60,7 @@ export default function RenderingGridRoute() {
-
+
);
}
diff --git a/src/routes/list/DynamicRowHeightsRoute.tsx b/src/routes/list/DynamicRowHeightsRoute.tsx
index e97c2213..be49157f 100644
--- a/src/routes/list/DynamicRowHeightsRoute.tsx
+++ b/src/routes/list/DynamicRowHeightsRoute.tsx
@@ -43,7 +43,7 @@ export default function DynamicRowHeightsRoute() {
recommended to provide your own height values if they can be determined
ahead of time.
-
+
);
}
From d0b98a3e678fd6bece99bb21c1a4a53faecb788e Mon Sep 17 00:00:00 2001
From: Brian Vaughn
Date: Wed, 3 Dec 2025 19:39:49 -0500
Subject: [PATCH 4/4] Fix formatting
---
src/components/DocsSection.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/DocsSection.tsx b/src/components/DocsSection.tsx
index 0c8ec797..c6e3ca6d 100644
--- a/src/components/DocsSection.tsx
+++ b/src/components/DocsSection.tsx
@@ -24,7 +24,7 @@ export function DocsSection({
);