@openpkg-ts/react 0.2.5 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/styled.d.ts CHANGED
@@ -26,18 +26,176 @@ declare function getLanguagesFromExamples(examples: SpecExample[] | undefined):
26
26
  * Build import statement for an export.
27
27
  */
28
28
  declare function buildImportStatement(exp: SpecExport, spec: OpenPkg): string;
29
- import { SpecMember } from "@openpkg-ts/spec";
29
+ import { SpecExample as SpecExample2 } from "@openpkg-ts/spec";
30
+ import { ReactNode as ReactNode2 } from "react";
31
+ interface CodeExample2 {
32
+ /** Unique identifier */
33
+ id: string;
34
+ /** Display label for chip */
35
+ label: string;
36
+ /** Code content */
37
+ code: string;
38
+ /** Language for highlighting */
39
+ language?: string;
40
+ }
41
+ interface ExampleSectionProps {
42
+ /** Section ID for sync scroll */
43
+ id: string;
44
+ /** Code examples to display */
45
+ examples: CodeExample2[];
46
+ /** Data source code (SQL/schema) */
47
+ dataSource?: string;
48
+ /** Response JSON */
49
+ response?: string;
50
+ /** Notes text */
51
+ notes?: ReactNode2;
52
+ /** Custom className */
53
+ className?: string;
54
+ }
55
+ /**
56
+ * Complete right-column section combining chips, code, and collapsible panels.
57
+ * Integrates with SyncScrollProvider for synchronized scrolling.
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * <ExampleSection
62
+ * id="select"
63
+ * examples={[
64
+ * { id: 'basic', label: 'Basic', code: '...', language: 'typescript' },
65
+ * { id: 'filter', label: 'With filter', code: '...', language: 'typescript' },
66
+ * ]}
67
+ * response={`{ "data": [...] }`}
68
+ * notes="Returns all columns by default."
69
+ * />
70
+ * ```
71
+ */
72
+ declare function ExampleSection({ id, examples, dataSource, response, notes, className }: ExampleSectionProps): ReactNode2;
73
+ /**
74
+ * Convert a SpecExample to CodeExample props for ExampleSection.
75
+ *
76
+ * @example
77
+ * ```tsx
78
+ * const examples = spec.examples?.map(specExampleToCodeExample) ?? [];
79
+ * return <ExampleSection examples={examples} />;
80
+ * ```
81
+ */
82
+ declare function specExampleToCodeExample(example: SpecExample2 | string, index: number): CodeExample2;
83
+ /**
84
+ * Generate a default code example from function signature.
85
+ */
86
+ declare function generateDefaultExample(packageName: string, exportName: string, paramNames: string[]): CodeExample2;
87
+ import { SpecSchema as SpecSchema2, SpecSignatureParameter as SpecSignatureParameter2 } from "@openpkg-ts/spec";
88
+ import { ReactNode as ReactNode3 } from "react";
89
+ interface APIParameterItemProps {
90
+ /** Parameter name */
91
+ name: string;
92
+ /** Parent path prefix (e.g., "options." for nested) */
93
+ parentPath?: string;
94
+ /** Parameter type */
95
+ type: string;
96
+ /** Required parameter */
97
+ required?: boolean;
98
+ /** Optional parameter (explicit) */
99
+ optional?: boolean;
100
+ /** Has expandable children */
101
+ expandable?: boolean;
102
+ /** Description */
103
+ description?: ReactNode3;
104
+ /** Nested content (params or enum) */
105
+ children?: ReactNode3;
106
+ /** Anchor ID for deep linking */
107
+ anchorId?: string;
108
+ /** Show anchor link on hover */
109
+ showAnchor?: boolean;
110
+ /** Custom className */
111
+ className?: string;
112
+ }
113
+ /**
114
+ * Single parameter row in Stripe-style documentation.
115
+ * Displays name, type, badges, description, and optional nested content.
116
+ *
117
+ * @example
118
+ * ```tsx
119
+ * <APIParameterItem
120
+ * name="email"
121
+ * type="string"
122
+ * required
123
+ * description="User's email address"
124
+ * />
125
+ * ```
126
+ */
127
+ declare function APIParameterItem({ name, parentPath, type, required, optional, expandable, description, children, anchorId, showAnchor, className }: APIParameterItemProps): ReactNode3;
128
+ import { ReactNode as ReactNode4 } from "react";
129
+ interface EnumValue {
130
+ /** Enum value */
131
+ value: string;
132
+ /** Optional description */
133
+ description?: string;
134
+ }
135
+ interface EnumValuesSectionProps {
136
+ /** Enum values to display */
137
+ values: EnumValue[];
138
+ /** Section header (default: "Possible values") */
139
+ header?: string;
140
+ /** Custom className */
141
+ className?: string;
142
+ }
143
+ /**
144
+ * Enum values section showing possible values with optional descriptions.
145
+ * Used inside parameter items to show enum options.
146
+ *
147
+ * @example
148
+ * ```tsx
149
+ * <EnumValuesSection
150
+ * values={[
151
+ * { value: 'light', description: 'Light theme' },
152
+ * { value: 'dark', description: 'Dark theme' },
153
+ * { value: 'system', description: 'Follow system preference' },
154
+ * ]}
155
+ * />
156
+ * ```
157
+ */
158
+ declare function EnumValuesSection({ values, header, className }: EnumValuesSectionProps): ReactNode4;
159
+ interface NestedParameterData extends Omit<APIParameterItemProps, "children"> {
160
+ /** Child parameters (for objects) */
161
+ children?: NestedParameterData[];
162
+ /** Enum values (for enums) */
163
+ enumValues?: EnumValue[];
164
+ /** Original schema */
165
+ schema: SpecSchema2;
166
+ }
167
+ /**
168
+ * Convert a SpecSignatureParameter to nested parameter data.
169
+ * Recursively processes object properties and extracts enum values.
170
+ *
171
+ * @example
172
+ * ```tsx
173
+ * const paramData = specParamToNestedParam(param);
174
+ * return <APIParameterItem {...paramData} />;
175
+ * ```
176
+ */
177
+ declare function specParamToNestedParam(param: SpecSignatureParameter2, parentPath?: string): NestedParameterData;
178
+ /**
179
+ * Convert multiple parameters to nested parameter data.
180
+ */
181
+ declare function specParamsToNestedParams(params: SpecSignatureParameter2[]): NestedParameterData[];
182
+ /**
183
+ * Resolve a $ref in the schema against spec types.
184
+ * Returns the resolved schema or the original if not found.
185
+ */
186
+ declare function resolveSchemaRef(schema: SpecSchema2, types: Record<string, SpecSchema2>): SpecSchema2;
187
+ import { SpecMember as SpecMember2 } from "@openpkg-ts/spec";
30
188
  interface CollapsibleMethodProps {
31
189
  /** Method member to display */
32
- member: SpecMember;
190
+ member: SpecMember2;
33
191
  /** Default expanded state */
34
192
  defaultExpanded?: boolean;
35
193
  /** Custom className */
36
194
  className?: string;
37
195
  /** Custom header renderer */
38
- renderHeader?: (member: SpecMember, expanded: boolean, toggle: () => void) => React.ReactNode;
196
+ renderHeader?: (member: SpecMember2, expanded: boolean, toggle: () => void) => React.ReactNode;
39
197
  /** Custom content renderer */
40
- renderContent?: (member: SpecMember) => React.ReactNode;
198
+ renderContent?: (member: SpecMember2) => React.ReactNode;
41
199
  }
42
200
  /**
43
201
  * Headless collapsible method component.
@@ -56,27 +214,27 @@ interface CollapsibleMethodProps {
56
214
  * ```
57
215
  */
58
216
  declare function CollapsibleMethod({ member, defaultExpanded, className, renderHeader, renderContent }: CollapsibleMethodProps): React.ReactNode;
59
- import { SpecExample as SpecExample2 } from "@openpkg-ts/spec";
217
+ import { SpecExample as SpecExample3 } from "@openpkg-ts/spec";
60
218
  interface ExampleBlockProps {
61
219
  /** Examples to display (string or SpecExample) */
62
- examples: (string | SpecExample2)[];
220
+ examples: (string | SpecExample3)[];
63
221
  /** Custom className */
64
222
  className?: string;
65
223
  /** Custom example renderer */
66
- renderExample?: (example: string | SpecExample2, index: number) => React.ReactNode;
224
+ renderExample?: (example: string | SpecExample3, index: number) => React.ReactNode;
67
225
  }
68
226
  /**
69
227
  * Normalize example to string content.
70
228
  */
71
- declare function getExampleCode(example: string | SpecExample2): string;
229
+ declare function getExampleCode(example: string | SpecExample3): string;
72
230
  /**
73
231
  * Get example title if available.
74
232
  */
75
- declare function getExampleTitle(example: string | SpecExample2): string | undefined;
233
+ declare function getExampleTitle(example: string | SpecExample3): string | undefined;
76
234
  /**
77
235
  * Get example language.
78
236
  */
79
- declare function getExampleLanguage(example: string | SpecExample2): string;
237
+ declare function getExampleLanguage(example: string | SpecExample3): string;
80
238
  /**
81
239
  * Clean code by removing markdown fences.
82
240
  */
@@ -96,10 +254,10 @@ declare function cleanCode(code: string): string;
96
254
  * ```
97
255
  */
98
256
  declare function ExampleBlock({ examples, className, renderExample }: ExampleBlockProps): React.ReactNode;
99
- import { SpecSchema as SpecSchema2, SpecSignatureParameter as SpecSignatureParameter2 } from "@openpkg-ts/spec";
257
+ import { SpecSchema as SpecSchema3, SpecSignatureParameter as SpecSignatureParameter3 } from "@openpkg-ts/spec";
100
258
  interface ExpandablePropertyProps {
101
259
  /** Parameter to display */
102
- param: SpecSignatureParameter2;
260
+ param: SpecSignatureParameter3;
103
261
  /** Nesting depth */
104
262
  depth?: number;
105
263
  /** Custom className */
@@ -109,7 +267,7 @@ interface NestedPropertyProps {
109
267
  /** Property name */
110
268
  name: string;
111
269
  /** Property schema */
112
- schema: SpecSchema2;
270
+ schema: SpecSchema3;
113
271
  /** Is required */
114
272
  required?: boolean;
115
273
  /** Nesting depth */
@@ -128,30 +286,31 @@ declare function NestedProperty({ name, schema, required, depth }: NestedPropert
128
286
  * ```
129
287
  */
130
288
  declare function ExpandableProperty({ param, depth, className }: ExpandablePropertyProps): React.ReactNode;
131
- import { SpecMember as SpecMember2 } from "@openpkg-ts/spec";
289
+ type ExportKind = "function" | "type" | "variable" | "class" | "interface" | "enum";
290
+ import { SpecMember as SpecMember5 } from "@openpkg-ts/spec";
132
291
  interface MembersTableProps {
133
292
  /** Members to display */
134
- members: SpecMember2[];
293
+ members: SpecMember5[];
135
294
  /** Custom className */
136
295
  className?: string;
137
296
  /** Group by kind (constructor, property, method) */
138
297
  groupByKind?: boolean;
139
298
  /** Custom member renderer */
140
- renderMember?: (member: SpecMember2, index: number) => React.ReactNode;
299
+ renderMember?: (member: SpecMember5, index: number) => React.ReactNode;
141
300
  }
142
301
  interface MemberGroups {
143
- constructors: SpecMember2[];
144
- properties: SpecMember2[];
145
- methods: SpecMember2[];
146
- accessors: SpecMember2[];
147
- other: SpecMember2[];
302
+ constructors: SpecMember5[];
303
+ properties: SpecMember5[];
304
+ methods: SpecMember5[];
305
+ accessors: SpecMember5[];
306
+ other: SpecMember5[];
148
307
  }
149
308
  /**
150
309
  * Group members by their kind.
151
310
  */
152
- declare function groupMembersByKind(members: SpecMember2[]): MemberGroups;
311
+ declare function groupMembersByKind(members: SpecMember5[]): MemberGroups;
153
312
  interface MemberRowProps {
154
- member: SpecMember2;
313
+ member: SpecMember5;
155
314
  }
156
315
  /**
157
316
  * Individual member row.
@@ -166,19 +325,19 @@ declare function MemberRow({ member }: MemberRowProps): React.ReactNode;
166
325
  * ```
167
326
  */
168
327
  declare function MembersTable({ members, className, groupByKind, renderMember }: MembersTableProps): React.ReactNode;
169
- import { SpecMember as SpecMember3, SpecSignatureParameter as SpecSignatureParameter3 } from "@openpkg-ts/spec";
328
+ import { SpecMember as SpecMember6, SpecSignatureParameter as SpecSignatureParameter5 } from "@openpkg-ts/spec";
170
329
  interface ParamTableProps {
171
330
  /** Parameters or members to display */
172
- items: (SpecSignatureParameter3 | SpecMember3)[];
331
+ items: (SpecSignatureParameter5 | SpecMember6)[];
173
332
  /** Show required indicator */
174
333
  showRequired?: boolean;
175
334
  /** Custom className */
176
335
  className?: string;
177
336
  /** Render custom row */
178
- renderRow?: (item: SpecSignatureParameter3 | SpecMember3, index: number) => React.ReactNode;
337
+ renderRow?: (item: SpecSignatureParameter5 | SpecMember6, index: number) => React.ReactNode;
179
338
  }
180
339
  interface ParamRowProps {
181
- item: SpecSignatureParameter3 | SpecMember3;
340
+ item: SpecSignatureParameter5 | SpecMember6;
182
341
  showRequired?: boolean;
183
342
  }
184
343
  /**
@@ -200,10 +359,10 @@ declare function ParamRow({ item, showRequired }: ParamRowProps): React.ReactNod
200
359
  * ```
201
360
  */
202
361
  declare function ParamTable({ items, showRequired, className, renderRow }: ParamTableProps): React.ReactNode;
203
- import { SpecExport as SpecExport2 } from "@openpkg-ts/spec";
362
+ import { SpecExport as SpecExport7 } from "@openpkg-ts/spec";
204
363
  interface SignatureProps {
205
364
  /** The to render signature for */
206
- export: SpecExport2;
365
+ export: SpecExport7;
207
366
  /** Index of signature to render (for overloaded functions) */
208
367
  signatureIndex?: number;
209
368
  /** Custom className */
@@ -226,16 +385,16 @@ interface SignatureProps {
226
385
  * ```
227
386
  */
228
387
  declare function Signature({ export: exp, signatureIndex, className, children }: SignatureProps): React.ReactNode;
229
- import { SpecMember as SpecMember4, SpecSignatureParameter as SpecSignatureParameter4 } from "@openpkg-ts/spec";
388
+ import { SpecMember as SpecMember7, SpecSignatureParameter as SpecSignatureParameter6 } from "@openpkg-ts/spec";
230
389
  interface TypeTableProps {
231
390
  /** Members or parameters to display */
232
- items: (SpecSignatureParameter4 | SpecMember4)[];
391
+ items: (SpecSignatureParameter6 | SpecMember7)[];
233
392
  /** Show required indicator */
234
393
  showRequired?: boolean;
235
394
  /** Custom className */
236
395
  className?: string;
237
396
  /** Render custom row */
238
- renderRow?: (item: SpecSignatureParameter4 | SpecMember4, index: number) => React.ReactNode;
397
+ renderRow?: (item: SpecSignatureParameter6 | SpecMember7, index: number) => React.ReactNode;
239
398
  }
240
399
  /**
241
400
  * Headless type table for displaying interface/type members.
@@ -247,11 +406,62 @@ interface TypeTableProps {
247
406
  */
248
407
  declare function TypeTable({ items, showRequired, className, renderRow }: TypeTableProps): React.ReactNode;
249
408
  import { CodeTab, CodeTabs, CodeTabsProps, ImportSection, ImportSectionProps } from "@openpkg-ts/ui/api";
250
- import { DocsInstance } from "@openpkg-ts/sdk";
251
- import { OpenPkg as OpenPkg2 } from "@openpkg-ts/spec";
409
+ import { OpenPkg as OpenPkg8, SpecExample as SpecExample4, SpecExport as SpecExport9, SpecSchema as SpecSchema4, SpecSignatureParameter as SpecSignatureParameter7 } from "@openpkg-ts/spec";
410
+ interface MethodData {
411
+ /** Export data */
412
+ export: SpecExport9;
413
+ /** Method title (function name with parens) */
414
+ title: string;
415
+ /** Full signature string */
416
+ signature: string;
417
+ /** Description text */
418
+ description?: string;
419
+ /** Parameters from first signature */
420
+ parameters: SpecSignatureParameter7[];
421
+ /** Examples from or signature */
422
+ examples: SpecExample4[];
423
+ /** Return type schema */
424
+ returnType?: SpecSchema4;
425
+ /** Return type formatted */
426
+ returnTypeString?: string;
427
+ /** Return description */
428
+ returnDescription?: string;
429
+ /** Is async function */
430
+ isAsync?: boolean;
431
+ }
432
+ /**
433
+ * Extract method data from a spec export.
434
+ * Provides all data needed to render a MethodSection.
435
+ *
436
+ * @example
437
+ * ```tsx
438
+ * const method = useMethodFromSpec(spec, 'createClient');
439
+ * return (
440
+ * <MethodSection
441
+ * id={method.export.id}
442
+ * title={method.title}
443
+ * signature={method.signature}
444
+ * description={method.description}
445
+ * >
446
+ * {method.parameters.map(p => <ExpandableParameter parameter={p} />)}
447
+ * </MethodSection>
448
+ * );
449
+ * ```
450
+ */
451
+ declare function useMethodFromSpec(spec: OpenPkg8, exportName: string): MethodData | null;
452
+ /**
453
+ * Extract method data from all function exports.
454
+ */
455
+ declare function useMethodsFromSpec(spec: OpenPkg8): MethodData[];
456
+ /**
457
+ * Pure function to extract method data from an export.
458
+ */
459
+ declare function extractMethodData(exp: SpecExport9, _spec: OpenPkg8): MethodData;
460
+ import { DocsInstance } from "@openpkg-ts/sdk/browser";
461
+ import { OpenPkg as OpenPkg9 } from "@openpkg-ts/spec";
252
462
  interface APIPageProps {
253
463
  /** Direct spec object */
254
- spec?: OpenPkg2;
464
+ spec?: OpenPkg9;
255
465
  /** Or docs instance from createDocs() */
256
466
  instance?: DocsInstance;
257
467
  /** Export ID to render, or undefined for index page */
@@ -282,28 +492,169 @@ interface APIPageProps {
282
492
  * ```
283
493
  */
284
494
  declare function APIPage({ spec, instance, id, baseHref, description, renderExample }: APIPageProps): React.ReactNode;
285
- import { OpenPkg as OpenPkg3, SpecExport as SpecExport3 } from "@openpkg-ts/spec";
286
- import { ReactNode as ReactNode2 } from "react";
495
+ import { ReactNode as ReactNode12 } from "react";
496
+ interface APIReferenceLayoutProps {
497
+ /** Left column content (documentation) */
498
+ children: ReactNode12;
499
+ /** Right column content (code examples) */
500
+ examples: ReactNode12;
501
+ /** Custom className */
502
+ className?: string;
503
+ /** Left column width on desktop (default: 58%) */
504
+ leftWidth?: string;
505
+ /** Right column width on desktop (default: 42%) */
506
+ rightWidth?: string;
507
+ }
508
+ /**
509
+ * Two-column layout for API reference with sticky right panel.
510
+ * Responsive: stacks vertically on mobile, two-column on desktop.
511
+ *
512
+ * @example
513
+ * ```tsx
514
+ * <APIReferenceLayout
515
+ * examples={<CodeExamples />}
516
+ * >
517
+ * <MethodSection ... />
518
+ * </APIReferenceLayout>
519
+ * ```
520
+ */
521
+ declare function APIReferenceLayout({ children, examples, className, leftWidth, rightWidth }: APIReferenceLayoutProps): ReactNode12;
522
+ import { OpenPkg as OpenPkg10, SpecExport as SpecExport10 } from "@openpkg-ts/spec";
523
+ import { ReactNode as ReactNode13 } from "react";
287
524
  interface ClassPageProps {
288
- export: SpecExport3;
289
- spec: OpenPkg3;
525
+ export: SpecExport10;
526
+ spec: OpenPkg10;
290
527
  }
291
528
  /**
292
529
  * Stripe-style class page with two-column layout.
293
530
  * Left: constructor, methods, properties. Right: sticky code examples.
294
531
  */
295
- declare function ClassPage({ export: exp, spec }: ClassPageProps): ReactNode2;
296
- import { OpenPkg as OpenPkg4, SpecExport as SpecExport4 } from "@openpkg-ts/spec";
297
- import { ReactNode as ReactNode3 } from "react";
532
+ declare function ClassPage({ export: exp, spec }: ClassPageProps): ReactNode13;
533
+ import { ReactNode as ReactNode14 } from "react";
534
+ interface CodePanelProps {
535
+ /** Code content */
536
+ code: string;
537
+ /** Language for syntax highlighting */
538
+ language?: string;
539
+ /** Show line numbers */
540
+ showLineNumbers?: boolean;
541
+ /** Custom className */
542
+ className?: string;
543
+ }
544
+ /**
545
+ * Syntax-highlighted code block with Rose Pine color scheme.
546
+ * Lightweight client-side highlighting using regex patterns.
547
+ *
548
+ * @example
549
+ * ```tsx
550
+ * <CodePanel
551
+ * code={`const user = await createUser({ name: 'Jenny' });`}
552
+ * language="typescript"
553
+ * showLineNumbers
554
+ * />
555
+ * ```
556
+ */
557
+ declare function CodePanel({ code, language, showLineNumbers, className }: CodePanelProps): ReactNode14;
558
+ import { ReactNode as ReactNode15 } from "react";
559
+ interface CollapsiblePanelProps {
560
+ /** Panel title (e.g., "Response", "Data source") */
561
+ title: string;
562
+ /** Panel content */
563
+ children: ReactNode15;
564
+ /** Default expanded state */
565
+ defaultExpanded?: boolean;
566
+ /** Controlled expanded state */
567
+ expanded?: boolean;
568
+ /** Controlled onChange */
569
+ onExpandedChange?: (expanded: boolean) => void;
570
+ /** Custom className */
571
+ className?: string;
572
+ }
573
+ /**
574
+ * Accordion-style collapsible panel for code examples.
575
+ * Used for Response, Data source, and Notes sections.
576
+ *
577
+ * @example
578
+ * ```tsx
579
+ * <CollapsiblePanel title="Response">
580
+ * <CodePanel code={responseJson} language="json" />
581
+ * </CollapsiblePanel>
582
+ * ```
583
+ */
584
+ declare function CollapsiblePanel({ title, children, defaultExpanded, expanded: controlledExpanded, onExpandedChange, className }: CollapsiblePanelProps): ReactNode15;
585
+ import { OpenPkg as OpenPkg11, SpecExport as SpecExport11 } from "@openpkg-ts/spec";
586
+ import { ReactNode as ReactNode16 } from "react";
298
587
  interface EnumPageProps {
299
- export: SpecExport4;
300
- spec: OpenPkg4;
588
+ export: SpecExport11;
589
+ spec: OpenPkg11;
301
590
  }
302
591
  /**
303
592
  * Stripe-style enum page with two-column layout.
304
593
  */
305
- declare function EnumPage({ export: exp, spec }: EnumPageProps): ReactNode3;
306
- interface ExportCardProps {
594
+ declare function EnumPage({ export: exp, spec }: EnumPageProps): ReactNode16;
595
+ import { ReactNode as ReactNode17 } from "react";
596
+ interface ExampleChip {
597
+ /** Unique identifier */
598
+ id: string;
599
+ /** Display label */
600
+ label: string;
601
+ }
602
+ interface ExampleChipsProps {
603
+ /** Available examples */
604
+ examples: ExampleChip[];
605
+ /** Currently active example ID */
606
+ activeId: string;
607
+ /** Selection callback */
608
+ onSelect: (id: string) => void;
609
+ /** Custom className */
610
+ className?: string;
611
+ }
612
+ /**
613
+ * Tab-like chips for switching between code examples.
614
+ * Used in the right column to select different example variations.
615
+ *
616
+ * @example
617
+ * ```tsx
618
+ * <ExampleChips
619
+ * examples={[
620
+ * { id: 'basic', label: 'Basic' },
621
+ * { id: 'with-filter', label: 'With filter' },
622
+ * ]}
623
+ * activeId="basic"
624
+ * onSelect={setActiveExample}
625
+ * />
626
+ * ```
627
+ */
628
+ declare function ExampleChips({ examples, activeId, onSelect, className }: ExampleChipsProps): ReactNode17;
629
+ import { SpecSignatureParameter as SpecSignatureParameter8 } from "@openpkg-ts/spec";
630
+ import { ReactNode as ReactNode18 } from "react";
631
+ interface ExpandableParameterProps {
632
+ /** Parameter from spec */
633
+ parameter: SpecSignatureParameter8;
634
+ /** Parent path prefix */
635
+ parentPath?: string;
636
+ /** Default expanded state */
637
+ defaultExpanded?: boolean;
638
+ /** Controlled expanded state */
639
+ expanded?: boolean;
640
+ /** Controlled onChange */
641
+ onExpandedChange?: (expanded: boolean) => void;
642
+ /** Nesting depth */
643
+ level?: number;
644
+ /** Custom className */
645
+ className?: string;
646
+ }
647
+ /**
648
+ * Compound component combining APIParameterItem + NestedParameterToggle + NestedParameterContainer.
649
+ * Automatically extracts nested object properties and enum values from spec schema.
650
+ *
651
+ * @example
652
+ * ```tsx
653
+ * <ExpandableParameter parameter={addressParam} />
654
+ * ```
655
+ */
656
+ declare function ExpandableParameter({ parameter, parentPath, defaultExpanded, expanded: controlledExpanded, onExpandedChange, level, className }: ExpandableParameterProps): ReactNode18;
657
+ interface ExportCardProps2 {
307
658
  /** Function/name */
308
659
  name: string;
309
660
  /** Description snippet */
@@ -319,12 +670,12 @@ interface ExportCardProps {
319
670
  * Card component for displaying exports in an index grid.
320
671
  * Features function name styling, description, and hover effects.
321
672
  */
322
- declare function ExportCard({ name, description, href, kind, className }: ExportCardProps): React.ReactNode;
323
- import { OpenPkg as OpenPkg5 } from "@openpkg-ts/spec";
324
- import { ReactNode as ReactNode4 } from "react";
325
- interface ExportIndexPageProps {
673
+ declare function ExportCard2({ name, description, href, kind, className }: ExportCardProps2): React.ReactNode;
674
+ import { OpenPkg as OpenPkg12 } from "@openpkg-ts/spec";
675
+ import { ReactNode as ReactNode19 } from "react";
676
+ interface ExportIndexPageProps2 {
326
677
  /** OpenPkg spec */
327
- spec: OpenPkg5;
678
+ spec: OpenPkg12;
328
679
  /** Base href for links (e.g., '/docs/api') */
329
680
  baseHref: string;
330
681
  /** Optional intro description */
@@ -340,12 +691,12 @@ interface ExportIndexPageProps {
340
691
  * Index page showing all exports in a grid, grouped by category.
341
692
  * AI SDK-style clean layout with responsive 2-column grid.
342
693
  */
343
- declare function ExportIndexPage({ spec, baseHref, description, className, showSearch, showFilters }: ExportIndexPageProps): ReactNode4;
344
- import { OpenPkg as OpenPkg6, SpecExportKind } from "@openpkg-ts/spec";
345
- import { ReactNode as ReactNode5 } from "react";
694
+ declare function ExportIndexPage2({ spec, baseHref, description, className, showSearch, showFilters }: ExportIndexPageProps2): ReactNode19;
695
+ import { OpenPkg as OpenPkg13, SpecExportKind } from "@openpkg-ts/spec";
696
+ import { ReactNode as ReactNode20 } from "react";
346
697
  interface FullAPIReferencePageProps {
347
698
  /** OpenPkg spec */
348
- spec: OpenPkg6;
699
+ spec: OpenPkg13;
349
700
  /** Filter to specific kinds (default: all) */
350
701
  kinds?: SpecExportKind[];
351
702
  /** Show kind filter buttons (default: true) */
@@ -355,7 +706,7 @@ interface FullAPIReferencePageProps {
355
706
  /** Custom title (default: spec.meta.name) */
356
707
  title?: string;
357
708
  /** Custom description */
358
- description?: ReactNode5;
709
+ description?: ReactNode20;
359
710
  /** Custom className */
360
711
  className?: string;
361
712
  }
@@ -375,33 +726,140 @@ interface FullAPIReferencePageProps {
375
726
  * <FullAPIReferencePage spec={spec} kinds={['function']} title="Functions" />
376
727
  * ```
377
728
  */
378
- declare function FullAPIReferencePage({ spec, kinds, showFilters, showTOC, title, description, className }: FullAPIReferencePageProps): ReactNode5;
379
- import { OpenPkg as OpenPkg7, SpecExport as SpecExport5 } from "@openpkg-ts/spec";
380
- import { ReactNode as ReactNode6 } from "react";
729
+ declare function FullAPIReferencePage({ spec, kinds, showFilters, showTOC, title, description, className }: FullAPIReferencePageProps): ReactNode20;
730
+ import { OpenPkg as OpenPkg14, SpecExport as SpecExport12 } from "@openpkg-ts/spec";
731
+ import { ReactNode as ReactNode21 } from "react";
381
732
  interface FunctionPageProps {
382
- export: SpecExport5;
383
- spec: OpenPkg7;
733
+ export: SpecExport12;
734
+ spec: OpenPkg14;
384
735
  }
385
736
  /**
386
737
  * Stripe-style function page with two-column layout.
387
738
  * Left: parameters, returns. Right: sticky code examples.
388
739
  */
389
- declare function FunctionPage({ export: exp, spec }: FunctionPageProps): ReactNode6;
390
- import { OpenPkg as OpenPkg8, SpecExport as SpecExport6 } from "@openpkg-ts/spec";
391
- import { ReactNode as ReactNode7 } from "react";
740
+ declare function FunctionPage({ export: exp, spec }: FunctionPageProps): ReactNode21;
741
+ import { OpenPkg as OpenPkg15, SpecExport as SpecExport13 } from "@openpkg-ts/spec";
742
+ import { ReactNode as ReactNode22 } from "react";
392
743
  interface InterfacePageProps {
393
- export: SpecExport6;
394
- spec: OpenPkg8;
744
+ export: SpecExport13;
745
+ spec: OpenPkg15;
395
746
  }
396
747
  /**
397
748
  * Stripe-style interface/type page with two-column layout.
398
749
  * Left: properties, methods. Right: sticky code examples.
399
750
  */
400
- declare function InterfacePage({ export: exp, spec }: InterfacePageProps): ReactNode7;
401
- import { SpecSchema as SpecSchema3, SpecSignatureParameter as SpecSignatureParameter5 } from "@openpkg-ts/spec";
751
+ declare function InterfacePage({ export: exp, spec }: InterfacePageProps): ReactNode22;
752
+ import { ReactNode as ReactNode23 } from "react";
753
+ interface MethodSectionProps {
754
+ /** Section ID for scroll sync */
755
+ id: string;
756
+ /** Method title (e.g., "Fetch data") */
757
+ title: string;
758
+ /** Method signature (e.g., "select(columns?, options?)") */
759
+ signature?: string;
760
+ /** Method description */
761
+ description?: ReactNode23;
762
+ /** Bullet list notes */
763
+ notes?: string[];
764
+ /** Parameter content */
765
+ children?: ReactNode23;
766
+ /** Custom className */
767
+ className?: string;
768
+ }
769
+ /**
770
+ * Container for a single API method in the documentation.
771
+ * Renders title, signature, description, notes list, and parameters.
772
+ *
773
+ * @example
774
+ * ```tsx
775
+ * <MethodSection
776
+ * id="select"
777
+ * title="Fetch data"
778
+ * signature="select(columns?, options?)"
779
+ * description="Performs a SELECT query..."
780
+ * notes={['By default, returns all columns', 'Use .single() for one row']}
781
+ * >
782
+ * <ParameterItem ... />
783
+ * </MethodSection>
784
+ * ```
785
+ */
786
+ declare function MethodSection({ id, title, signature, description, notes, children, className }: MethodSectionProps): ReactNode23;
787
+ import { OpenPkg as OpenPkg16, SpecExport as SpecExport14 } from "@openpkg-ts/spec";
788
+ import { ReactNode as ReactNode24 } from "react";
789
+ interface MethodSectionFromSpecProps {
790
+ /** OpenPkg spec */
791
+ spec: OpenPkg16;
792
+ /** Export to render (by name or object) */
793
+ export: string | SpecExport14;
794
+ /** Custom className */
795
+ className?: string;
796
+ }
797
+ /**
798
+ * Auto-generates MethodSection from spec data.
799
+ * Extracts parameters, description, and notes from the export.
800
+ *
801
+ * @example
802
+ * ```tsx
803
+ * <MethodSectionFromSpec spec={spec} export="createClient" />
804
+ * ```
805
+ */
806
+ declare function MethodSectionFromSpec({ spec, export: exportProp, className }: MethodSectionFromSpecProps): ReactNode24;
807
+ import { ReactNode as ReactNode25 } from "react";
808
+ interface NestedParameterContainerProps {
809
+ /** Nested parameter content */
810
+ children: ReactNode25;
811
+ /** Nesting depth level (0 = first level) */
812
+ level?: number;
813
+ /** Custom className */
814
+ className?: string;
815
+ }
816
+ /**
817
+ * Bordered container for nested child parameters (Stripe-style).
818
+ * Connects to NestedParameterToggle above (no top border).
819
+ * Children separated by border-bottom only.
820
+ *
821
+ * @example
822
+ * ```tsx
823
+ * <NestedParameterToggle expanded={isOpen} onToggle={toggle} />
824
+ * {isOpen && (
825
+ * <NestedParameterContainer>
826
+ * <APIParameterItem name="city" type="string" />
827
+ * <APIParameterItem name="country" type="string" />
828
+ * </NestedParameterContainer>
829
+ * )}
830
+ * ```
831
+ */
832
+ declare function NestedParameterContainer({ children, level, className }: NestedParameterContainerProps): ReactNode25;
833
+ import { ReactNode as ReactNode26 } from "react";
834
+ interface NestedParameterToggleProps {
835
+ /** Toggle state */
836
+ expanded: boolean;
837
+ /** Toggle callback */
838
+ onToggle: () => void;
839
+ /** Optional child count to display */
840
+ count?: number;
841
+ /** Custom className */
842
+ className?: string;
843
+ }
844
+ /**
845
+ * "Show/Hide child parameters" toggle button (Stripe-style).
846
+ * Plus icon rotates 45deg when expanded.
847
+ * When expanded, bottom border-radius removed to connect with container.
848
+ *
849
+ * @example
850
+ * ```tsx
851
+ * <NestedParameterToggle
852
+ * expanded={isOpen}
853
+ * onToggle={() => setIsOpen(!isOpen)}
854
+ * count={3}
855
+ * />
856
+ * ```
857
+ */
858
+ declare function NestedParameterToggle({ expanded, onToggle, count, className }: NestedParameterToggleProps): ReactNode26;
859
+ import { SpecSchema as SpecSchema5, SpecSignatureParameter as SpecSignatureParameter9 } from "@openpkg-ts/spec";
402
860
  interface ParameterItemProps {
403
861
  /** Parameter to display */
404
- param: SpecSignatureParameter5;
862
+ param: SpecSignatureParameter9;
405
863
  /** Nesting depth for indentation */
406
864
  depth?: number;
407
865
  /** Custom className */
@@ -411,7 +869,7 @@ interface NestedPropertyItemProps {
411
869
  /** Property name */
412
870
  name: string;
413
871
  /** Property schema */
414
- schema: SpecSchema3;
872
+ schema: SpecSchema5;
415
873
  /** Is this property required */
416
874
  required?: boolean;
417
875
  /** Nesting depth */
@@ -425,80 +883,153 @@ interface NestedPropertyItemProps {
425
883
  * Will be removed in next major version.
426
884
  */
427
885
  declare function ParameterItem({ param, depth, className }: ParameterItemProps): React.ReactNode;
428
- import { OpenPkg as OpenPkg9, SpecExport as SpecExport7 } from "@openpkg-ts/spec";
429
- import { ReactNode as ReactNode8 } from "react";
430
- interface ClassSectionProps {
431
- export: SpecExport7;
432
- spec: OpenPkg9;
886
+ import { OpenPkg as OpenPkg17, SpecExport as SpecExport15 } from "@openpkg-ts/spec";
887
+ import { ReactNode as ReactNode27 } from "react";
888
+ interface StripeAPIReferencePageProps {
889
+ /** OpenPkg spec */
890
+ spec: OpenPkg17;
891
+ /** Filter exports (default: functions only) */
892
+ filter?: (exp: SpecExport15) => boolean;
893
+ /** Show all kinds, not just functions */
894
+ showAllKinds?: boolean;
895
+ /** Custom className */
896
+ className?: string;
897
+ }
898
+ /**
899
+ * Full Stripe/Supabase-style API reference page.
900
+ * Two-column layout with synchronized scrolling.
901
+ *
902
+ * @example
903
+ * ```tsx
904
+ * <StripeAPIReferencePage spec={spec} />
905
+ * ```
906
+ */
907
+ declare function StripeAPIReferencePage({ spec, filter, showAllKinds, className }: StripeAPIReferencePageProps): ReactNode27;
908
+ import { ReactNode as ReactNode28, RefObject } from "react";
909
+ interface SyncScrollContextValue {
910
+ /** Currently visible section ID */
911
+ activeSection: string | null;
912
+ /** Register a section to track */
913
+ registerSection: (id: string, ref: RefObject<HTMLElement | null>) => void;
914
+ /** Unregister a section */
915
+ unregisterSection: (id: string) => void;
916
+ /** Scroll right column to section */
917
+ scrollToSection: (id: string) => void;
918
+ /** Register the right column container */
919
+ registerRightColumn: (ref: RefObject<HTMLElement | null>) => void;
920
+ }
921
+ interface SyncScrollProviderProps {
922
+ children: ReactNode28;
923
+ /** Root margin for intersection observer (default: '-20% 0px -60% 0px') */
924
+ rootMargin?: string;
925
+ /** Scroll behavior (default: 'smooth') */
926
+ scrollBehavior?: ScrollBehavior;
927
+ }
928
+ /**
929
+ * Provider for synchronized scrolling between left and right columns.
930
+ * Uses IntersectionObserver to track visible sections on the left,
931
+ * and auto-scrolls the right column to matching examples.
932
+ *
933
+ * @example
934
+ * ```tsx
935
+ * <SyncScrollProvider>
936
+ * <APIReferenceLayout
937
+ * examples={
938
+ * <>
939
+ * <ExampleSection id="select" ... />
940
+ * <ExampleSection id="insert" ... />
941
+ * </>
942
+ * }
943
+ * >
944
+ * <MethodSection id="select" ... />
945
+ * <MethodSection id="insert" ... />
946
+ * </APIReferenceLayout>
947
+ * </SyncScrollProvider>
948
+ * ```
949
+ */
950
+ declare function SyncScrollProvider({ children, rootMargin, scrollBehavior }: SyncScrollProviderProps): ReactNode28;
951
+ /**
952
+ * Hook to access sync scroll context.
953
+ */
954
+ declare function useSyncScroll(): SyncScrollContextValue;
955
+ /**
956
+ * Hook to register a section for scroll tracking.
957
+ */
958
+ declare function useSyncSection(id: string): RefObject<HTMLElement | null>;
959
+ import { OpenPkg as OpenPkg18, SpecExport as SpecExport16 } from "@openpkg-ts/spec";
960
+ import { ReactNode as ReactNode29 } from "react";
961
+ interface ClassSectionProps2 {
962
+ export: SpecExport16;
963
+ spec: OpenPkg18;
433
964
  }
434
965
  /**
435
966
  * Class section for use in single-page API reference.
436
967
  * Renders an APISection with constructor, methods, and properties.
437
968
  */
438
- declare function ClassSection({ export: exp, spec }: ClassSectionProps): ReactNode8;
439
- import { OpenPkg as OpenPkg10, SpecExport as SpecExport8 } from "@openpkg-ts/spec";
440
- import { ReactNode as ReactNode9 } from "react";
441
- interface EnumSectionProps {
442
- export: SpecExport8;
443
- spec: OpenPkg10;
969
+ declare function ClassSection2({ export: exp, spec }: ClassSectionProps2): ReactNode29;
970
+ import { OpenPkg as OpenPkg19, SpecExport as SpecExport17 } from "@openpkg-ts/spec";
971
+ import { ReactNode as ReactNode30 } from "react";
972
+ interface EnumSectionProps2 {
973
+ export: SpecExport17;
974
+ spec: OpenPkg19;
444
975
  }
445
976
  /**
446
977
  * Enum section for use in single-page API reference.
447
978
  * Renders an APISection with enum members.
448
979
  */
449
- declare function EnumSection({ export: exp, spec }: EnumSectionProps): ReactNode9;
450
- import { OpenPkg as OpenPkg11, SpecExport as SpecExport9 } from "@openpkg-ts/spec";
451
- import { ReactNode as ReactNode10 } from "react";
980
+ declare function EnumSection2({ export: exp, spec }: EnumSectionProps2): ReactNode30;
981
+ import { OpenPkg as OpenPkg20, SpecExport as SpecExport18 } from "@openpkg-ts/spec";
982
+ import { ReactNode as ReactNode31 } from "react";
452
983
  interface ExportSectionProps {
453
- export: SpecExport9;
454
- spec: OpenPkg11;
984
+ export: SpecExport18;
985
+ spec: OpenPkg20;
455
986
  }
456
987
  /**
457
988
  * Router component that renders the appropriate section based on kind.
458
989
  * Used by FullAPIReferencePage to render each inline.
459
990
  */
460
- declare function ExportSection({ export: exp, spec }: ExportSectionProps): ReactNode10;
461
- import { OpenPkg as OpenPkg12, SpecExport as SpecExport10 } from "@openpkg-ts/spec";
462
- import { ReactNode as ReactNode11 } from "react";
463
- interface FunctionSectionProps {
464
- export: SpecExport10;
465
- spec: OpenPkg12;
991
+ declare function ExportSection({ export: exp, spec }: ExportSectionProps): ReactNode31;
992
+ import { OpenPkg as OpenPkg21, SpecExport as SpecExport19 } from "@openpkg-ts/spec";
993
+ import { ReactNode as ReactNode32 } from "react";
994
+ interface FunctionSectionProps2 {
995
+ export: SpecExport19;
996
+ spec: OpenPkg21;
466
997
  }
467
998
  /**
468
999
  * Function section for use in single-page API reference.
469
1000
  * Renders an APISection with parameters and returns.
470
1001
  */
471
- declare function FunctionSection({ export: exp, spec }: FunctionSectionProps): ReactNode11;
472
- import { OpenPkg as OpenPkg13, SpecExport as SpecExport11 } from "@openpkg-ts/spec";
473
- import { ReactNode as ReactNode12 } from "react";
474
- interface InterfaceSectionProps {
475
- export: SpecExport11;
476
- spec: OpenPkg13;
1002
+ declare function FunctionSection2({ export: exp, spec }: FunctionSectionProps2): ReactNode32;
1003
+ import { OpenPkg as OpenPkg22, SpecExport as SpecExport20 } from "@openpkg-ts/spec";
1004
+ import { ReactNode as ReactNode33 } from "react";
1005
+ interface InterfaceSectionProps2 {
1006
+ export: SpecExport20;
1007
+ spec: OpenPkg22;
477
1008
  }
478
1009
  /**
479
1010
  * Interface/type section for use in single-page API reference.
480
1011
  * Renders an APISection with properties and methods.
481
1012
  */
482
- declare function InterfaceSection({ export: exp, spec }: InterfaceSectionProps): ReactNode12;
483
- import { OpenPkg as OpenPkg14, SpecExport as SpecExport12 } from "@openpkg-ts/spec";
484
- import { ReactNode as ReactNode13 } from "react";
485
- interface VariableSectionProps {
486
- export: SpecExport12;
487
- spec: OpenPkg14;
1013
+ declare function InterfaceSection2({ export: exp, spec }: InterfaceSectionProps2): ReactNode33;
1014
+ import { OpenPkg as OpenPkg23, SpecExport as SpecExport21 } from "@openpkg-ts/spec";
1015
+ import { ReactNode as ReactNode34 } from "react";
1016
+ interface VariableSectionProps2 {
1017
+ export: SpecExport21;
1018
+ spec: OpenPkg23;
488
1019
  }
489
1020
  /**
490
1021
  * Variable/constant section for use in single-page API reference.
491
1022
  * Renders an APISection with type information.
492
1023
  */
493
- declare function VariableSection({ export: exp, spec }: VariableSectionProps): ReactNode13;
494
- import { OpenPkg as OpenPkg15, SpecExport as SpecExport13 } from "@openpkg-ts/spec";
495
- import { ReactNode as ReactNode14 } from "react";
1024
+ declare function VariableSection2({ export: exp, spec }: VariableSectionProps2): ReactNode34;
1025
+ import { OpenPkg as OpenPkg24, SpecExport as SpecExport22 } from "@openpkg-ts/spec";
1026
+ import { ReactNode as ReactNode35 } from "react";
496
1027
  interface VariablePageProps {
497
- export: SpecExport13;
498
- spec: OpenPkg15;
1028
+ export: SpecExport22;
1029
+ spec: OpenPkg24;
499
1030
  }
500
1031
  /**
501
1032
  * Stripe-style variable/constant page with two-column layout.
502
1033
  */
503
- declare function VariablePage({ export: exp, spec }: VariablePageProps): ReactNode14;
504
- export { specSchemaToAPISchema, specParamToAPIParam, specExamplesToCodeExamples, groupMembersByKind, getLanguagesFromExamples, getExampleTitle, getExampleLanguage, getExampleCode, cleanCode, buildImportStatement, VariableSectionProps, VariableSection, VariablePageProps, VariablePage, TypeTableProps, TypeTable, SignatureProps, Signature, ParameterItemProps, ParameterItem, ParamTableProps, ParamTable, ParamRowProps, ParamRow, NestedPropertyProps, NestedPropertyItemProps, NestedProperty, MembersTableProps, MembersTable, MemberRowProps, MemberRow, MemberGroups, InterfaceSectionProps, InterfaceSection, InterfacePageProps, InterfacePage, ImportSectionProps, ImportSection, FunctionSectionProps, FunctionSection, FunctionPageProps, FunctionPage, FullAPIReferencePageProps, FullAPIReferencePage, ExportSectionProps, ExportSection, ExportIndexPageProps, ExportIndexPage, ExportCardProps, ExportCard, ExpandablePropertyProps, ExpandableProperty, ExampleBlockProps, ExampleBlock, EnumSectionProps, EnumSection, EnumPageProps, EnumPage, CollapsibleMethodProps, CollapsibleMethod, CodeTabsProps, CodeTabs, CodeTab, ClassSectionProps, ClassSection, ClassPageProps, ClassPage, APIPageProps, APIPage };
1034
+ declare function VariablePage({ export: exp, spec }: VariablePageProps): ReactNode35;
1035
+ export { useSyncSection, useSyncScroll, useMethodsFromSpec, useMethodFromSpec, specSchemaToAPISchema, specParamsToNestedParams, specParamToNestedParam, specParamToAPIParam, specExamplesToCodeExamples, specExampleToCodeExample, resolveSchemaRef, groupMembersByKind, getLanguagesFromExamples, getExampleTitle, getExampleLanguage, getExampleCode, generateDefaultExample, extractMethodData, cleanCode, buildImportStatement, VariableSectionProps2 as VariableSectionProps, VariableSection2 as VariableSection, VariablePageProps, VariablePage, TypeTableProps, TypeTable, SyncScrollProviderProps, SyncScrollProvider, SyncScrollContextValue, StripeAPIReferencePageProps, StripeAPIReferencePage, SignatureProps, Signature, ParameterItemProps, ParameterItem, ParamTableProps, ParamTable, ParamRowProps, ParamRow, NestedPropertyProps, NestedPropertyItemProps, NestedProperty, NestedParameterToggleProps, NestedParameterToggle, NestedParameterData, NestedParameterContainerProps, NestedParameterContainer, MethodSectionProps, MethodSectionFromSpecProps, MethodSectionFromSpec, MethodSection, MethodData, MembersTableProps, MembersTable, MemberRowProps, MemberRow, MemberGroups, InterfaceSectionProps2 as InterfaceSectionProps, InterfaceSection2 as InterfaceSection, InterfacePageProps, InterfacePage, ImportSectionProps, ImportSection, FunctionSectionProps2 as FunctionSectionProps, FunctionSection2 as FunctionSection, FunctionPageProps, FunctionPage, FullAPIReferencePageProps, FullAPIReferencePage, ExportSectionProps, ExportSection, ExportKind, ExportIndexPageProps2 as ExportIndexPageProps, ExportIndexPage2 as ExportIndexPage, ExportCardProps2 as ExportCardProps, ExportCard2 as ExportCard, ExpandablePropertyProps, ExpandableProperty, ExpandableParameterProps, ExpandableParameter, ExampleSectionProps, ExampleSection, ExampleChipsProps, ExampleChips, ExampleChip, ExampleBlockProps, ExampleBlock, EnumValuesSectionProps, EnumValuesSection, EnumValue, EnumSectionProps2 as EnumSectionProps, EnumSection2 as EnumSection, EnumPageProps, EnumPage, CollapsiblePanelProps, CollapsiblePanel, CollapsibleMethodProps, CollapsibleMethod, CodeTabsProps, CodeTabs, CodeTab, CodePanelProps, CodePanel, CodeExample2 as CodeExample, ClassSectionProps2 as ClassSectionProps, ClassSection2 as ClassSection, ClassPageProps, ClassPage, APIReferenceLayoutProps, APIReferenceLayout, APIParameterItemProps, APIParameterItem, APIPageProps, APIPage };