@idealyst/mcp-server 1.2.128 → 1.2.130

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.
@@ -85,6 +85,8 @@ __export(tools_exports, {
85
85
  getPackageDocsDefinition: () => getPackageDocsDefinition,
86
86
  getPaymentsGuide: () => getPaymentsGuide,
87
87
  getPaymentsGuideDefinition: () => getPaymentsGuideDefinition,
88
+ getPdfGuide: () => getPdfGuide,
89
+ getPdfGuideDefinition: () => getPdfGuideDefinition,
88
90
  getRecipe: () => getRecipe,
89
91
  getRecipeDefinition: () => getRecipeDefinition,
90
92
  getRegistryThemeValues: () => getRegistryThemeValues,
@@ -532,6 +534,21 @@ var getNotificationsGuideDefinition = {
532
534
  required: ["topic"]
533
535
  }
534
536
  };
537
+ var getPdfGuideDefinition = {
538
+ name: "get_pdf_guide",
539
+ description: "Get documentation for @idealyst/pdf cross-platform PDF viewer package. Covers PDFViewer component, PDFViewerRef imperative methods, and examples.",
540
+ inputSchema: {
541
+ type: "object",
542
+ properties: {
543
+ topic: {
544
+ type: "string",
545
+ description: "Topic to get docs for: 'overview', 'api', 'examples'",
546
+ enum: ["overview", "api", "examples"]
547
+ }
548
+ },
549
+ required: ["topic"]
550
+ }
551
+ };
535
552
  var listPackagesDefinition = {
536
553
  name: "list_packages",
537
554
  description: "List all available Idealyst packages with descriptions, categories, and documentation status. Use this to discover what packages are available in the framework.",
@@ -722,6 +739,7 @@ var toolDefinitions = [
722
739
  getNotificationsGuideDefinition,
723
740
  getLiveActivityGuideDefinition,
724
741
  getNetworkGuideDefinition,
742
+ getPdfGuideDefinition,
725
743
  // Package tools
726
744
  listPackagesDefinition,
727
745
  getPackageDocsDefinition,
@@ -10573,6 +10591,305 @@ async function quickHealthCheck() {
10573
10591
  `
10574
10592
  };
10575
10593
 
10594
+ // src/data/pdf-guides.ts
10595
+ var pdfGuides = {
10596
+ "idealyst://pdf/overview": `# @idealyst/pdf
10597
+
10598
+ Cross-platform PDF viewer for React and React Native.
10599
+
10600
+ ## Installation
10601
+
10602
+ \`\`\`bash
10603
+ yarn add @idealyst/pdf
10604
+ \`\`\`
10605
+
10606
+ ### Platform peer dependencies
10607
+
10608
+ | Platform | Peer Dependency | Install |
10609
+ |----------|----------------|---------|
10610
+ | Web | \`pdfjs-dist\` | \`yarn add pdfjs-dist\` |
10611
+ | Native | \`react-native-pdf\` | \`yarn add react-native-pdf react-native-blob-util\` |
10612
+
10613
+ **Web**: Uses Mozilla PDF.js to render PDF pages to canvas.
10614
+ **Native**: Uses react-native-pdf (PDFKit on iOS, PdfRenderer on Android).
10615
+
10616
+ ## Key Exports
10617
+
10618
+ | Export | Type | Description |
10619
+ |--------|------|-------------|
10620
+ | \`PDFViewer\` | Component | PDF viewer with zoom, page nav, scroll |
10621
+ | \`PDFViewerRef\` | Ref type | Imperative: \`goToPage()\`, \`setZoom()\` |
10622
+ | \`PDFSource\` | Type | \`string \\| { uri: string } \\| { base64: string }\` |
10623
+ | \`PDFDocumentInfo\` | Type | \`{ totalPages: number }\` |
10624
+ | \`FitPolicy\` | Type | \`'width' \\| 'height' \\| 'both'\` |
10625
+ | \`PDFDirection\` | Type | \`'horizontal' \\| 'vertical'\` |
10626
+
10627
+ ## Quick Start
10628
+
10629
+ \`\`\`tsx
10630
+ import { PDFViewer } from '@idealyst/pdf';
10631
+
10632
+ function DocumentScreen() {
10633
+ return (
10634
+ <PDFViewer
10635
+ source="https://example.com/document.pdf"
10636
+ onLoad={({ totalPages }) => console.log('Pages:', totalPages)}
10637
+ onPageChange={(page, total) => console.log(page, '/', total)}
10638
+ style={{ flex: 1 }}
10639
+ />
10640
+ );
10641
+ }
10642
+ \`\`\`
10643
+
10644
+ ## Common Mistakes
10645
+
10646
+ 1. **Forgetting peer deps** \u2014 Web needs \`pdfjs-dist\`, native needs \`react-native-pdf\` + \`react-native-blob-util\`
10647
+ 2. **PDF.js worker not configured** \u2014 On web, the worker URL is auto-configured from CDN. If using a custom bundler setup, set \`pdfjs.GlobalWorkerOptions.workerSrc\` before rendering.
10648
+ 3. **page is 1-indexed** \u2014 First page is \`1\`, not \`0\`
10649
+ 4. **fitPolicy is a string** \u2014 Use \`'width'\`, \`'height'\`, or \`'both'\` (NOT numeric values)
10650
+ 5. **base64 source** \u2014 Use \`{ base64: 'JVBERi...' }\` without the data URI prefix
10651
+ `,
10652
+ "idealyst://pdf/api": `# @idealyst/pdf \u2014 API Reference
10653
+
10654
+ ## PDFViewerProps
10655
+
10656
+ \`\`\`typescript
10657
+ interface PDFViewerProps {
10658
+ /** PDF source \u2014 URL string, { uri } object, or { base64 } data */
10659
+ source: PDFSource;
10660
+
10661
+ /** Current page (1-indexed). Default: 1 */
10662
+ page?: number;
10663
+
10664
+ /** Called when page changes */
10665
+ onPageChange?: (page: number, totalPages: number) => void;
10666
+
10667
+ /** Called when document loads */
10668
+ onLoad?: (info: PDFDocumentInfo) => void;
10669
+
10670
+ /** Called on error */
10671
+ onError?: (error: Error) => void;
10672
+
10673
+ /** Enable zoom. Default: true */
10674
+ zoomEnabled?: boolean;
10675
+
10676
+ /** Min zoom. Default: 1 */
10677
+ minZoom?: number;
10678
+
10679
+ /** Max zoom. Default: 5 */
10680
+ maxZoom?: number;
10681
+
10682
+ /** Scroll direction. Default: 'vertical' */
10683
+ direction?: PDFDirection;
10684
+
10685
+ /** Show page indicator. Default: true */
10686
+ showPageIndicator?: boolean;
10687
+
10688
+ /** Fit policy. Default: 'width' */
10689
+ fitPolicy?: FitPolicy;
10690
+
10691
+ /** Container style */
10692
+ style?: ViewStyle;
10693
+
10694
+ /** Test ID */
10695
+ testID?: string;
10696
+ }
10697
+ \`\`\`
10698
+
10699
+ ## Types
10700
+
10701
+ \`\`\`typescript
10702
+ type PDFSource = string | { uri: string } | { base64: string };
10703
+
10704
+ type FitPolicy = 'width' | 'height' | 'both';
10705
+
10706
+ type PDFDirection = 'horizontal' | 'vertical';
10707
+
10708
+ interface PDFDocumentInfo {
10709
+ totalPages: number;
10710
+ }
10711
+ \`\`\`
10712
+
10713
+ ## PDFViewerRef (Imperative)
10714
+
10715
+ \`\`\`typescript
10716
+ interface PDFViewerRef {
10717
+ /** Navigate to page (1-indexed) */
10718
+ goToPage: (page: number) => void;
10719
+
10720
+ /** Set zoom level */
10721
+ setZoom: (level: number) => void;
10722
+ }
10723
+ \`\`\`
10724
+
10725
+ Usage:
10726
+ \`\`\`tsx
10727
+ const pdfRef = useRef<PDFViewerRef>(null);
10728
+
10729
+ <PDFViewer ref={pdfRef} source="..." />
10730
+
10731
+ pdfRef.current?.goToPage(5);
10732
+ pdfRef.current?.setZoom(2);
10733
+ \`\`\`
10734
+ `,
10735
+ "idealyst://pdf/examples": `# @idealyst/pdf \u2014 Examples
10736
+
10737
+ ## Basic URL Viewer
10738
+
10739
+ \`\`\`tsx
10740
+ import { PDFViewer } from '@idealyst/pdf';
10741
+ import { View } from '@idealyst/components';
10742
+
10743
+ function BasicPDFScreen() {
10744
+ return (
10745
+ <View style={{ flex: 1 }}>
10746
+ <PDFViewer
10747
+ source="https://example.com/document.pdf"
10748
+ style={{ flex: 1 }}
10749
+ />
10750
+ </View>
10751
+ );
10752
+ }
10753
+ \`\`\`
10754
+
10755
+ ## With Page Navigation Controls
10756
+
10757
+ \`\`\`tsx
10758
+ import { useRef, useState } from 'react';
10759
+ import { PDFViewer, PDFViewerRef } from '@idealyst/pdf';
10760
+ import { View, Text, Button } from '@idealyst/components';
10761
+
10762
+ function PDFWithControls() {
10763
+ const pdfRef = useRef<PDFViewerRef>(null);
10764
+ const [currentPage, setCurrentPage] = useState(1);
10765
+ const [totalPages, setTotalPages] = useState(0);
10766
+
10767
+ return (
10768
+ <View style={{ flex: 1 }}>
10769
+ <PDFViewer
10770
+ ref={pdfRef}
10771
+ source="https://example.com/document.pdf"
10772
+ onLoad={({ totalPages: total }) => setTotalPages(total)}
10773
+ onPageChange={(page) => setCurrentPage(page)}
10774
+ showPageIndicator={false}
10775
+ style={{ flex: 1 }}
10776
+ />
10777
+ <View direction="row" justify="center" align="center" gap="md" padding="md">
10778
+ <Button
10779
+ label="Previous"
10780
+ size="sm"
10781
+ onPress={() => pdfRef.current?.goToPage(Math.max(1, currentPage - 1))}
10782
+ />
10783
+ <Text>{currentPage} / {totalPages}</Text>
10784
+ <Button
10785
+ label="Next"
10786
+ size="sm"
10787
+ onPress={() => pdfRef.current?.goToPage(Math.min(totalPages, currentPage + 1))}
10788
+ />
10789
+ </View>
10790
+ </View>
10791
+ );
10792
+ }
10793
+ \`\`\`
10794
+
10795
+ ## Base64 Source
10796
+
10797
+ \`\`\`tsx
10798
+ import { PDFViewer } from '@idealyst/pdf';
10799
+
10800
+ function Base64PDF({ base64Data }: { base64Data: string }) {
10801
+ return (
10802
+ <PDFViewer
10803
+ source={{ base64: base64Data }}
10804
+ fitPolicy="both"
10805
+ style={{ flex: 1 }}
10806
+ />
10807
+ );
10808
+ }
10809
+ \`\`\`
10810
+
10811
+ ## Horizontal Mode
10812
+
10813
+ \`\`\`tsx
10814
+ import { PDFViewer } from '@idealyst/pdf';
10815
+
10816
+ function HorizontalPDF() {
10817
+ return (
10818
+ <PDFViewer
10819
+ source="https://example.com/slides.pdf"
10820
+ direction="horizontal"
10821
+ fitPolicy="both"
10822
+ style={{ flex: 1 }}
10823
+ />
10824
+ );
10825
+ }
10826
+ \`\`\`
10827
+
10828
+ ## With Error Handling
10829
+
10830
+ \`\`\`tsx
10831
+ import { useState } from 'react';
10832
+ import { PDFViewer } from '@idealyst/pdf';
10833
+ import { View, Text } from '@idealyst/components';
10834
+
10835
+ function SafePDFViewer({ url }: { url: string }) {
10836
+ const [error, setError] = useState<string | null>(null);
10837
+
10838
+ if (error) {
10839
+ return (
10840
+ <View style={{ flex: 1 }} align="center" justify="center">
10841
+ <Text intent="danger">Failed to load PDF: {error}</Text>
10842
+ </View>
10843
+ );
10844
+ }
10845
+
10846
+ return (
10847
+ <PDFViewer
10848
+ source={url}
10849
+ onError={(err) => setError(err.message)}
10850
+ style={{ flex: 1 }}
10851
+ />
10852
+ );
10853
+ }
10854
+ \`\`\`
10855
+
10856
+ ## Zoom Controls
10857
+
10858
+ \`\`\`tsx
10859
+ import { useRef, useState } from 'react';
10860
+ import { PDFViewer, PDFViewerRef } from '@idealyst/pdf';
10861
+ import { View, Button } from '@idealyst/components';
10862
+
10863
+ function ZoomablePDF() {
10864
+ const pdfRef = useRef<PDFViewerRef>(null);
10865
+ const [zoom, setZoom] = useState(1);
10866
+
10867
+ const handleZoom = (level: number) => {
10868
+ setZoom(level);
10869
+ pdfRef.current?.setZoom(level);
10870
+ };
10871
+
10872
+ return (
10873
+ <View style={{ flex: 1 }}>
10874
+ <PDFViewer
10875
+ ref={pdfRef}
10876
+ source="https://example.com/document.pdf"
10877
+ minZoom={0.5}
10878
+ maxZoom={4}
10879
+ style={{ flex: 1 }}
10880
+ />
10881
+ <View direction="row" justify="center" gap="sm" padding="sm">
10882
+ <Button label="50%" size="sm" onPress={() => handleZoom(0.5)} />
10883
+ <Button label="100%" size="sm" onPress={() => handleZoom(1)} />
10884
+ <Button label="200%" size="sm" onPress={() => handleZoom(2)} />
10885
+ </View>
10886
+ </View>
10887
+ );
10888
+ }
10889
+ \`\`\`
10890
+ `
10891
+ };
10892
+
10576
10893
  // src/data/packages.ts
10577
10894
  var packages = {
10578
10895
  components: {
@@ -11801,6 +12118,50 @@ function App() {
11801
12118
  "NetworkState { isConnected, isInternetReachable, type, effectiveType, cellularGeneration, downlink, rtt, isDataSaving }"
11802
12119
  ],
11803
12120
  relatedPackages: ["storage", "config"]
12121
+ },
12122
+ pdf: {
12123
+ name: "PDF",
12124
+ npmName: "@idealyst/pdf",
12125
+ description: "Cross-platform PDF viewer for React and React Native. Renders PDFs from URL, local file, or base64 with page navigation, zoom, and scroll.",
12126
+ category: "media",
12127
+ platforms: ["web", "native"],
12128
+ documentationStatus: "full",
12129
+ installation: "yarn add @idealyst/pdf",
12130
+ peerDependencies: [
12131
+ "pdfjs-dist (web)",
12132
+ "react-native-pdf (native)",
12133
+ "react-native-blob-util (native)"
12134
+ ],
12135
+ features: [
12136
+ "Render PDFs from URL, file path, or base64",
12137
+ "Page navigation (controlled or free scroll)",
12138
+ "Pinch-to-zoom with configurable limits",
12139
+ "Horizontal and vertical scroll modes",
12140
+ "Page indicator overlay",
12141
+ "Fit-to-width, fit-to-height, fit-both modes",
12142
+ "PDFViewerRef for imperative control (goToPage, setZoom)"
12143
+ ],
12144
+ quickStart: `import { PDFViewer } from '@idealyst/pdf';
12145
+
12146
+ function DocumentScreen() {
12147
+ return (
12148
+ <PDFViewer
12149
+ source="https://example.com/document.pdf"
12150
+ onLoad={({ totalPages }) => console.log('Pages:', totalPages)}
12151
+ onPageChange={(page, total) => console.log(page, '/', total)}
12152
+ style={{ flex: 1 }}
12153
+ />
12154
+ );
12155
+ }`,
12156
+ apiHighlights: [
12157
+ "PDFViewer component",
12158
+ "PDFViewerRef \u2014 goToPage(page), setZoom(level)",
12159
+ "PDFSource = string | { uri: string } | { base64: string }",
12160
+ "fitPolicy: 'width' | 'height' | 'both'",
12161
+ "direction: 'horizontal' | 'vertical'",
12162
+ "onLoad, onPageChange, onError callbacks"
12163
+ ],
12164
+ relatedPackages: ["components"]
11804
12165
  }
11805
12166
  };
11806
12167
  function getPackagesByCategory() {
@@ -15985,6 +16346,79 @@ function Test() {
15985
16346
  solution: "Check that you're running on a supported platform (iOS 16.2+ or Android API 24+). On web, Live Activities are not supported and will always return not_supported."
15986
16347
  }
15987
16348
  ]
16349
+ },
16350
+ // =====================================================================
16351
+ // MEDIA PACKAGES — PDF
16352
+ // =====================================================================
16353
+ pdf: {
16354
+ packageName: "PDF",
16355
+ npmName: "@idealyst/pdf",
16356
+ description: "Cross-platform PDF viewer using pdfjs-dist (web) and react-native-pdf (native)",
16357
+ platforms: ["web", "native"],
16358
+ complexity: "moderate",
16359
+ installation: {
16360
+ yarn: "yarn add @idealyst/pdf",
16361
+ npm: "npm install @idealyst/pdf"
16362
+ },
16363
+ peerDependencies: [
16364
+ {
16365
+ name: "pdfjs-dist",
16366
+ required: true,
16367
+ platforms: ["web"],
16368
+ note: "Mozilla PDF.js for web rendering"
16369
+ },
16370
+ {
16371
+ name: "react-native-pdf",
16372
+ required: true,
16373
+ platforms: ["native"],
16374
+ note: "Native PDF renderer (PDFKit on iOS, PdfRenderer on Android)"
16375
+ },
16376
+ {
16377
+ name: "react-native-blob-util",
16378
+ required: true,
16379
+ platforms: ["native"],
16380
+ note: "Required peer dependency of react-native-pdf for file handling"
16381
+ }
16382
+ ],
16383
+ ios: {
16384
+ podInstallRequired: true,
16385
+ additionalSteps: [
16386
+ "cd ios && pod install",
16387
+ "Ensure minimum iOS deployment target is 13.0 or higher"
16388
+ ]
16389
+ },
16390
+ android: {
16391
+ permissions: [],
16392
+ additionalSteps: [
16393
+ "No special permissions required for PDF viewing",
16394
+ "Ensure minSdkVersion is 21 or higher"
16395
+ ]
16396
+ },
16397
+ web: {
16398
+ additionalDependencies: ["pdfjs-dist"],
16399
+ notes: [
16400
+ "The pdfjs-dist worker is auto-configured from CDN by default.",
16401
+ "For custom setups: set pdfjs.GlobalWorkerOptions.workerSrc before rendering PDFViewer.",
16402
+ "For Vite: import pdfjs-dist/build/pdf.worker.min.mjs and set as workerSrc."
16403
+ ]
16404
+ },
16405
+ verification: `import { PDFViewer } from '@idealyst/pdf';
16406
+ // Should render without errors:
16407
+ <PDFViewer source="https://example.com/sample.pdf" style={{ flex: 1 }} />`,
16408
+ troubleshooting: [
16409
+ {
16410
+ issue: "PDF.js worker not found on web",
16411
+ solution: "Set pdfjs.GlobalWorkerOptions.workerSrc to the correct worker URL before rendering PDFViewer. The package sets a CDN default, but custom bundler setups may need manual configuration."
16412
+ },
16413
+ {
16414
+ issue: "react-native-pdf not linking on iOS",
16415
+ solution: "Run cd ios && pod install and rebuild the project. Ensure minimum deployment target is iOS 13.0+."
16416
+ },
16417
+ {
16418
+ issue: "Blank screen on Android",
16419
+ solution: "Ensure minSdkVersion is 21+ in android/build.gradle. Also check that react-native-blob-util is installed as a peer of react-native-pdf."
16420
+ }
16421
+ ]
15988
16422
  }
15989
16423
  };
15990
16424
  function getInstallGuide(packageName) {
@@ -23861,7 +24295,7 @@ var import_url = require("url");
23861
24295
  // src/generated/types.json
23862
24296
  var types_default = {
23863
24297
  version: "1.0.93",
23864
- extractedAt: "2026-03-11T20:52:45.143Z",
24298
+ extractedAt: "2026-03-24T21:22:27.272Z",
23865
24299
  components: {
23866
24300
  Accordion: {
23867
24301
  name: "Accordion",
@@ -24005,7 +24439,7 @@ var types_default = {
24005
24439
  }
24006
24440
  },
24007
24441
  category: "data",
24008
- filePath: "../components/src/Accordion",
24442
+ filePath: "packages/components/src/Accordion",
24009
24443
  sampleProps: {
24010
24444
  props: {
24011
24445
  items: [
@@ -24134,7 +24568,7 @@ var types_default = {
24134
24568
  }
24135
24569
  },
24136
24570
  category: "display",
24137
- filePath: "../components/src/ActivityIndicator"
24571
+ filePath: "packages/components/src/ActivityIndicator"
24138
24572
  }
24139
24573
  },
24140
24574
  Alert: {
@@ -24319,7 +24753,7 @@ var types_default = {
24319
24753
  }
24320
24754
  },
24321
24755
  category: "display",
24322
- filePath: "../components/src/Alert",
24756
+ filePath: "packages/components/src/Alert",
24323
24757
  sampleProps: {
24324
24758
  props: {
24325
24759
  title: "Alert Title",
@@ -24446,7 +24880,7 @@ var types_default = {
24446
24880
  }
24447
24881
  },
24448
24882
  category: "display",
24449
- filePath: "../components/src/Avatar",
24883
+ filePath: "packages/components/src/Avatar",
24450
24884
  sampleProps: {
24451
24885
  props: {
24452
24886
  fallback: "AB"
@@ -24582,7 +25016,7 @@ var types_default = {
24582
25016
  }
24583
25017
  },
24584
25018
  category: "display",
24585
- filePath: "../components/src/Badge",
25019
+ filePath: "packages/components/src/Badge",
24586
25020
  sampleProps: {
24587
25021
  children: "'3'"
24588
25022
  }
@@ -24746,7 +25180,7 @@ var types_default = {
24746
25180
  }
24747
25181
  },
24748
25182
  category: "navigation",
24749
- filePath: "../components/src/Breadcrumb",
25183
+ filePath: "packages/components/src/Breadcrumb",
24750
25184
  sampleProps: {
24751
25185
  props: {
24752
25186
  items: [
@@ -24950,7 +25384,7 @@ var types_default = {
24950
25384
  }
24951
25385
  },
24952
25386
  category: "form",
24953
- filePath: "../components/src/Button",
25387
+ filePath: "packages/components/src/Button",
24954
25388
  sampleProps: {
24955
25389
  children: "'Click Me'"
24956
25390
  }
@@ -25152,7 +25586,7 @@ var types_default = {
25152
25586
  }
25153
25587
  },
25154
25588
  category: "display",
25155
- filePath: "../components/src/Card",
25589
+ filePath: "packages/components/src/Card",
25156
25590
  sampleProps: {
25157
25591
  children: "'Card content goes here'"
25158
25592
  }
@@ -25369,7 +25803,7 @@ var types_default = {
25369
25803
  }
25370
25804
  },
25371
25805
  category: "form",
25372
- filePath: "../components/src/Checkbox",
25806
+ filePath: "packages/components/src/Checkbox",
25373
25807
  sampleProps: {
25374
25808
  props: {
25375
25809
  label: "Check me"
@@ -25602,7 +26036,7 @@ var types_default = {
25602
26036
  }
25603
26037
  },
25604
26038
  category: "display",
25605
- filePath: "../components/src/Chip",
26039
+ filePath: "packages/components/src/Chip",
25606
26040
  sampleProps: {
25607
26041
  props: {
25608
26042
  label: "Chip Label"
@@ -25883,7 +26317,7 @@ var types_default = {
25883
26317
  }
25884
26318
  },
25885
26319
  category: "overlay",
25886
- filePath: "../components/src/Dialog",
26320
+ filePath: "packages/components/src/Dialog",
25887
26321
  sampleProps: {
25888
26322
  props: {
25889
26323
  title: "Dialog Title"
@@ -26033,7 +26467,7 @@ var types_default = {
26033
26467
  }
26034
26468
  },
26035
26469
  category: "layout",
26036
- filePath: "../components/src/Divider"
26470
+ filePath: "packages/components/src/Divider"
26037
26471
  }
26038
26472
  },
26039
26473
  Form: {
@@ -26091,7 +26525,7 @@ var types_default = {
26091
26525
  }
26092
26526
  },
26093
26527
  category: "display",
26094
- filePath: "../components/src/Form"
26528
+ filePath: "packages/components/src/Form"
26095
26529
  }
26096
26530
  },
26097
26531
  Grid: {
@@ -26208,7 +26642,7 @@ var types_default = {
26208
26642
  }
26209
26643
  },
26210
26644
  category: "display",
26211
- filePath: "../components/src/Grid"
26645
+ filePath: "packages/components/src/Grid"
26212
26646
  }
26213
26647
  },
26214
26648
  IconButton: {
@@ -26375,7 +26809,7 @@ var types_default = {
26375
26809
  }
26376
26810
  },
26377
26811
  category: "display",
26378
- filePath: "../components/src/IconButton"
26812
+ filePath: "packages/components/src/IconButton"
26379
26813
  }
26380
26814
  },
26381
26815
  Image: {
@@ -26552,7 +26986,7 @@ var types_default = {
26552
26986
  }
26553
26987
  },
26554
26988
  category: "display",
26555
- filePath: "../components/src/Image",
26989
+ filePath: "packages/components/src/Image",
26556
26990
  sampleProps: {
26557
26991
  props: {
26558
26992
  source: {
@@ -26960,7 +27394,7 @@ var types_default = {
26960
27394
  }
26961
27395
  },
26962
27396
  category: "form",
26963
- filePath: "../components/src/Input",
27397
+ filePath: "packages/components/src/Input",
26964
27398
  sampleProps: {
26965
27399
  props: {
26966
27400
  placeholder: "Enter text..."
@@ -27068,7 +27502,7 @@ var types_default = {
27068
27502
  }
27069
27503
  },
27070
27504
  category: "navigation",
27071
- filePath: "../components/src/Link",
27505
+ filePath: "packages/components/src/Link",
27072
27506
  sampleProps: {
27073
27507
  props: {
27074
27508
  href: "#"
@@ -27212,7 +27646,7 @@ var types_default = {
27212
27646
  }
27213
27647
  },
27214
27648
  category: "navigation",
27215
- filePath: "../components/src/List",
27649
+ filePath: "packages/components/src/List",
27216
27650
  sampleProps: {
27217
27651
  children: "'List items go here'"
27218
27652
  }
@@ -27334,7 +27768,7 @@ var types_default = {
27334
27768
  }
27335
27769
  },
27336
27770
  category: "navigation",
27337
- filePath: "../components/src/Menu",
27771
+ filePath: "packages/components/src/Menu",
27338
27772
  sampleProps: {
27339
27773
  props: {
27340
27774
  items: [
@@ -27525,7 +27959,7 @@ var types_default = {
27525
27959
  }
27526
27960
  },
27527
27961
  category: "overlay",
27528
- filePath: "../components/src/Popover",
27962
+ filePath: "packages/components/src/Popover",
27529
27963
  sampleProps: {
27530
27964
  props: {
27531
27965
  open: false
@@ -27652,7 +28086,7 @@ var types_default = {
27652
28086
  }
27653
28087
  },
27654
28088
  category: "display",
27655
- filePath: "../components/src/Pressable",
28089
+ filePath: "packages/components/src/Pressable",
27656
28090
  sampleProps: {
27657
28091
  children: "'Press me'"
27658
28092
  }
@@ -27799,7 +28233,7 @@ var types_default = {
27799
28233
  }
27800
28234
  },
27801
28235
  category: "data",
27802
- filePath: "../components/src/Progress",
28236
+ filePath: "packages/components/src/Progress",
27803
28237
  sampleProps: {
27804
28238
  props: {
27805
28239
  value: 65
@@ -27934,7 +28368,7 @@ var types_default = {
27934
28368
  }
27935
28369
  },
27936
28370
  category: "form",
27937
- filePath: "../components/src/RadioButton",
28371
+ filePath: "packages/components/src/RadioButton",
27938
28372
  sampleProps: {
27939
28373
  props: {
27940
28374
  value: "option1",
@@ -28046,7 +28480,7 @@ var types_default = {
28046
28480
  }
28047
28481
  },
28048
28482
  category: "display",
28049
- filePath: "../components/src/SVGImage",
28483
+ filePath: "packages/components/src/SVGImage",
28050
28484
  sampleProps: {
28051
28485
  props: {
28052
28486
  source: '<svg viewBox="0 0 100 100"><circle cx="50" cy="50" r="40" fill="currentColor"/></svg>',
@@ -28297,7 +28731,7 @@ var types_default = {
28297
28731
  }
28298
28732
  },
28299
28733
  category: "layout",
28300
- filePath: "../components/src/Screen",
28734
+ filePath: "packages/components/src/Screen",
28301
28735
  sampleProps: {
28302
28736
  children: "'Screen content'"
28303
28737
  }
@@ -28675,7 +29109,7 @@ var types_default = {
28675
29109
  }
28676
29110
  },
28677
29111
  category: "display",
28678
- filePath: "../components/src/ScrollView",
29112
+ filePath: "packages/components/src/ScrollView",
28679
29113
  sampleProps: {
28680
29114
  children: "'Scrollable content'"
28681
29115
  }
@@ -28935,7 +29369,7 @@ var types_default = {
28935
29369
  }
28936
29370
  },
28937
29371
  category: "form",
28938
- filePath: "../components/src/Select",
29372
+ filePath: "packages/components/src/Select",
28939
29373
  sampleProps: {
28940
29374
  props: {
28941
29375
  options: [
@@ -29071,7 +29505,7 @@ var types_default = {
29071
29505
  }
29072
29506
  },
29073
29507
  category: "display",
29074
- filePath: "../components/src/Skeleton",
29508
+ filePath: "packages/components/src/Skeleton",
29075
29509
  sampleProps: {
29076
29510
  props: {
29077
29511
  width: 200,
@@ -29329,7 +29763,7 @@ var types_default = {
29329
29763
  }
29330
29764
  },
29331
29765
  category: "form",
29332
- filePath: "../components/src/Slider",
29766
+ filePath: "packages/components/src/Slider",
29333
29767
  sampleProps: {
29334
29768
  props: {},
29335
29769
  state: {
@@ -29545,7 +29979,7 @@ var types_default = {
29545
29979
  }
29546
29980
  },
29547
29981
  category: "form",
29548
- filePath: "../components/src/Switch",
29982
+ filePath: "packages/components/src/Switch",
29549
29983
  sampleProps: {
29550
29984
  props: {},
29551
29985
  state: {
@@ -29755,7 +30189,7 @@ var types_default = {
29755
30189
  }
29756
30190
  },
29757
30191
  category: "navigation",
29758
- filePath: "../components/src/TabBar",
30192
+ filePath: "packages/components/src/TabBar",
29759
30193
  sampleProps: {
29760
30194
  props: {
29761
30195
  items: [
@@ -29812,6 +30246,18 @@ var types_default = {
29812
30246
  type: "((row: T, index: number) => void) | undefined",
29813
30247
  required: false
29814
30248
  },
30249
+ {
30250
+ name: "onColumnResize",
30251
+ type: "((key: string, width: number) => void) | undefined",
30252
+ required: false,
30253
+ description: "Called when a column is resized via drag handle.\nReceives the column key and the new width in pixels."
30254
+ },
30255
+ {
30256
+ name: "emptyState",
30257
+ type: "React.ReactNode",
30258
+ required: false,
30259
+ description: "Content to display when `data` is empty.\nRenders in place of the table body."
30260
+ },
29815
30261
  {
29816
30262
  name: "style",
29817
30263
  type: 'import("/home/nicho/Development/idealyst-framework/packages/theme/node_modules/react-native/Libraries/StyleSheet/StyleSheet").StyleProp<import("/home/nicho/Development/idealyst-framework/packages/theme/node_modules/react-native/Libraries/StyleSheet/StyleSheetTypes").ViewStyle>',
@@ -29823,12 +30269,12 @@ var types_default = {
29823
30269
  required: false
29824
30270
  }
29825
30271
  ],
29826
- typeDefinition: "export interface TableProps<T = any> extends ContainerStyleProps, AccessibilityProps {\n /**\n * Column definitions for the table\n */\n columns: TableColumn<T>[];\n data: T[];\n type?: TableType;\n size?: TableSizeVariant;\n stickyHeader?: boolean;\n onRowPress?: (row: T, index: number) => void;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n}",
30272
+ typeDefinition: "export interface TableProps<T = any> extends ContainerStyleProps, AccessibilityProps {\n /**\n * Column definitions for the table\n */\n columns: TableColumn<T>[];\n data: T[];\n type?: TableType;\n size?: TableSizeVariant;\n stickyHeader?: boolean;\n onRowPress?: (row: T, index: number) => void;\n /**\n * Called when a column is resized via drag handle.\n * Receives the column key and the new width in pixels.\n */\n onColumnResize?: (key: string, width: number) => void;\n /**\n * Content to display when `data` is empty.\n * Renders in place of the table body.\n */\n emptyState?: ReactNode;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n}",
29827
30273
  relatedTypes: {
29828
30274
  TableSizeVariant: "export type TableSizeVariant = Size;",
29829
30275
  TableType: "export type TableType = 'standard' | 'bordered' | 'striped';",
29830
30276
  TableAlignVariant: "export type TableAlignVariant = 'left' | 'center' | 'right';",
29831
- TableColumn: "export interface TableColumn<T = any> extends SortableAccessibilityProps {\n key: string;\n title: string;\n dataIndex?: string;\n render?: (value: any, row: T, index: number) => ReactNode;\n width?: number | string;\n align?: TableAlignVariant;\n}"
30277
+ TableColumn: "export interface TableColumn<T = any> extends SortableAccessibilityProps {\n key: string;\n title: ReactNode;\n dataIndex?: string;\n render?: (value: any, row: T, index: number) => ReactNode;\n footer?: ReactNode | ((data: T[]) => ReactNode);\n width?: number | string;\n align?: TableAlignVariant;\n /**\n * Makes this column sticky (pinned) when scrolling horizontally.\n * `true` or `'left'` pins to the left, `'right'` pins to the right.\n * On web uses CSS `position: sticky`, on native renders outside the ScrollView.\n */\n sticky?: boolean | 'left' | 'right';\n /**\n * Allows the column to be resized by dragging the right edge of the header.\n * Web only.\n */\n resizable?: boolean;\n /**\n * Minimum width when resizing (default: 50).\n */\n minWidth?: number;\n}"
29832
30278
  },
29833
30279
  registry: {
29834
30280
  name: "Table",
@@ -29874,6 +30320,22 @@ var types_default = {
29874
30320
  type: "((row: T, index: number) => void) | undefined",
29875
30321
  required: false
29876
30322
  },
30323
+ onColumnResize: {
30324
+ name: "onColumnResize",
30325
+ type: "((key: string, width: number) => void) | undefined",
30326
+ description: "Called when a column is resized via drag handle.\nReceives the column key and the new width in pixels.",
30327
+ required: false
30328
+ },
30329
+ emptyState: {
30330
+ name: "emptyState",
30331
+ type: "ReactNode",
30332
+ values: [
30333
+ "false",
30334
+ "true"
30335
+ ],
30336
+ description: "Content to display when `data` is empty.\nRenders in place of the table body.",
30337
+ required: false
30338
+ },
29877
30339
  id: {
29878
30340
  name: "id",
29879
30341
  type: "string | undefined",
@@ -29930,7 +30392,7 @@ var types_default = {
29930
30392
  }
29931
30393
  },
29932
30394
  category: "data",
29933
- filePath: "../components/src/Table",
30395
+ filePath: "packages/components/src/Table",
29934
30396
  sampleProps: {
29935
30397
  props: {
29936
30398
  columns: [
@@ -30128,7 +30590,7 @@ var types_default = {
30128
30590
  }
30129
30591
  },
30130
30592
  category: "display",
30131
- filePath: "../components/src/Text",
30593
+ filePath: "packages/components/src/Text",
30132
30594
  sampleProps: {
30133
30595
  children: "'Sample text content'"
30134
30596
  }
@@ -30430,7 +30892,7 @@ var types_default = {
30430
30892
  }
30431
30893
  },
30432
30894
  category: "form",
30433
- filePath: "../components/src/TextArea",
30895
+ filePath: "packages/components/src/TextArea",
30434
30896
  sampleProps: {
30435
30897
  props: {
30436
30898
  placeholder: "Enter text...",
@@ -30991,7 +31453,7 @@ var types_default = {
30991
31453
  }
30992
31454
  },
30993
31455
  category: "display",
30994
- filePath: "../components/src/TextInput"
31456
+ filePath: "packages/components/src/TextInput"
30995
31457
  }
30996
31458
  },
30997
31459
  Tooltip: {
@@ -31094,7 +31556,7 @@ var types_default = {
31094
31556
  }
31095
31557
  },
31096
31558
  category: "display",
31097
- filePath: "../components/src/Tooltip",
31559
+ filePath: "packages/components/src/Tooltip",
31098
31560
  sampleProps: {
31099
31561
  props: {
31100
31562
  content: "Tooltip text"
@@ -31338,7 +31800,7 @@ var types_default = {
31338
31800
  }
31339
31801
  },
31340
31802
  category: "display",
31341
- filePath: "../components/src/Video",
31803
+ filePath: "packages/components/src/Video",
31342
31804
  sampleProps: {
31343
31805
  props: {
31344
31806
  source: "https://www.w3schools.com/html/mov_bbb.mp4",
@@ -31549,7 +32011,7 @@ var types_default = {
31549
32011
  }
31550
32012
  },
31551
32013
  category: "layout",
31552
- filePath: "../components/src/View",
32014
+ filePath: "packages/components/src/View",
31553
32015
  sampleProps: {
31554
32016
  children: "'View content'"
31555
32017
  }
@@ -46535,7 +46997,7 @@ var types_default = {
46535
46997
  }
46536
46998
  },
46537
46999
  category: "display",
46538
- filePath: "../components/src/Icon",
47000
+ filePath: "packages/components/src/Icon",
46539
47001
  sampleProps: {
46540
47002
  props: {
46541
47003
  name: "home"
@@ -46566,9 +47028,10 @@ var types_default = {
46566
47028
  }
46567
47029
  },
46568
47030
  navigation: {
47031
+ ScreenAnimation: "export type ScreenAnimation =\n | 'default'\n | 'fade'\n | 'fade_from_bottom'\n | 'flip'\n | 'simple_push'\n | 'slide_from_bottom'\n | 'slide_from_right'\n | 'slide_from_left'\n | 'ios_from_right'\n | 'ios_from_left'\n | 'none';",
46569
47032
  TabBarScreenOptions: 'export type TabBarScreenOptions = {\n /**\n * Icon for tab/drawer navigation.\n *\n * Can be:\n * - A **string** (icon name) \u2014 e.g. `"home"`, `"cog"`. The default layout renders\n * `<Icon name={tabBarIcon} size="sm" />` automatically.\n * - A **render function** \u2014 receives `{ focused, color, size }`. The `size` param is\n * a number (from native tab bars); **ignore it** and use a Size token instead:\n * `tabBarIcon: ({ focused }) => <Icon name={focused ? \'home\' : \'home-outline\'} size="sm" />`\n */\n tabBarIcon?: string | ((props: { focused: boolean; color: string; size: string | number }) => React.ReactElement)\n\n /**\n * Label for tab/drawer navigation\n */\n tabBarLabel?: string;\n \n /**\n * Badge for tab navigation\n */\n tabBarBadge?: string | number;\n \n /**\n * Whether to show the tab bar for this screen\n */\n tabBarVisible?: boolean;\n} & ScreenOptions',
46570
47033
  NavigatorOptions: "export type NavigatorOptions = {\n\n \n /**\n * Custom header title component or string\n */\n headerTitle?: React.ComponentType | React.ReactElement | string;\n \n /**\n * Custom header left component (overrides back button)\n */\n headerLeft?: React.ComponentType | React.ReactElement;\n \n /**\n * Whether to show header back button\n */\n headerBackVisible?: boolean;\n \n /**\n * Custom header right component\n */\n headerRight?: React.ComponentType | React.ReactElement;\n \n /**\n * Whether to hide the native React Navigation header (mobile only)\n */\n headerShown?: boolean;\n}",
46571
- ScreenOptions: "export type ScreenOptions = {\n /**\n * Screen title for navigation headers\n */\n title?: string;\n headerShown?: boolean;\n /**\n * Icon name for this screen (used by custom layout components like sidebars, drawers, etc.)\n */\n icon?: string;\n /**\n * When true, renders the screen outside of parent layout wrappers.\n * Useful for fullscreen modals, onboarding flows, or any screen that\n * should not inherit the parent navigator's layout (header, sidebar, tabs, etc.)\n *\n * Web: Screen renders as a sibling route without the parent LayoutComponent\n * Native: Screen uses fullScreenModal presentation\n */\n fullScreen?: boolean;\n\n} & NavigatorOptions;",
47034
+ ScreenOptions: "export type ScreenOptions = {\n /**\n * Screen title for navigation headers\n */\n title?: string;\n headerShown?: boolean;\n /**\n * Icon name for this screen (used by custom layout components like sidebars, drawers, etc.)\n */\n icon?: string;\n /**\n * When true, renders the screen outside of parent layout wrappers.\n * Useful for fullscreen modals, onboarding flows, or any screen that\n * should not inherit the parent navigator's layout (header, sidebar, tabs, etc.)\n *\n * Web: Screen renders as a sibling route without the parent LayoutComponent\n * Native: Screen uses fullScreenModal presentation\n */\n fullScreen?: boolean;\n /**\n * Screen transition animation.\n * On native, controls how the screen animates when pushed/popped.\n * On web, this is a noop.\n *\n * @default 'default' (platform default)\n */\n animation?: ScreenAnimation;\n\n} & NavigatorOptions;",
46572
47035
  NotFoundComponentProps: "export type NotFoundComponentProps = {\n /** The full path that was attempted */\n path: string\n /** Any route parameters that were parsed from the path */\n params?: Record<string, string>\n}",
46573
47036
  BaseNavigatorParam: "export type BaseNavigatorParam = {\n path: string\n type: 'navigator'\n /**\n * Navigator options. When this navigator is nested inside a tab or drawer,\n * you can include TabBarScreenOptions (tabBarIcon, tabBarLabel, tabBarBadge)\n * so the parent layout can render the tab/drawer entry for this navigator.\n */\n options?: TabBarScreenOptions\n /**\n * Handler called when an invalid route is accessed.\n * - Return NavigateParams to redirect to a different route\n * - Return undefined to show the notFoundComponent (if set)\n * If not defined, bubbles up to parent navigator.\n *\n * @param invalidPath - The path that was attempted but not found\n * @returns NavigateParams to redirect, or undefined to use notFoundComponent\n */\n onInvalidRoute?: (invalidPath: string) => NavigateParams | undefined\n /**\n * Component to render/navigate to when route is invalid and onInvalidRoute returns undefined.\n * - Web: Renders at the current URL via catch-all route\n * - Native: Navigated to as a screen\n * - Optional: If not set and nothing handles the route, a warning is logged\n */\n notFoundComponent?: React.ComponentType<NotFoundComponentProps>\n}",
46574
47037
  TabNavigatorParam: "export type TabNavigatorParam = {\n layout: 'tab'\n routes: RouteParam<TabBarScreenOptions>[]\n layoutComponent?: TabLayoutComponent\n} & BaseNavigatorParam",
@@ -46681,7 +47144,7 @@ var types_default = {
46681
47144
  }
46682
47145
  },
46683
47146
  category: "data",
46684
- filePath: "../components/src/Accordion",
47147
+ filePath: "packages/components/src/Accordion",
46685
47148
  sampleProps: {
46686
47149
  props: {
46687
47150
  items: [
@@ -46757,7 +47220,7 @@ var types_default = {
46757
47220
  }
46758
47221
  },
46759
47222
  category: "display",
46760
- filePath: "../components/src/ActivityIndicator"
47223
+ filePath: "packages/components/src/ActivityIndicator"
46761
47224
  },
46762
47225
  Alert: {
46763
47226
  name: "Alert",
@@ -46852,7 +47315,7 @@ var types_default = {
46852
47315
  }
46853
47316
  },
46854
47317
  category: "display",
46855
- filePath: "../components/src/Alert",
47318
+ filePath: "packages/components/src/Alert",
46856
47319
  sampleProps: {
46857
47320
  props: {
46858
47321
  title: "Alert Title",
@@ -46919,7 +47382,7 @@ var types_default = {
46919
47382
  }
46920
47383
  },
46921
47384
  category: "display",
46922
- filePath: "../components/src/Avatar",
47385
+ filePath: "packages/components/src/Avatar",
46923
47386
  sampleProps: {
46924
47387
  props: {
46925
47388
  fallback: "AB"
@@ -46988,7 +47451,7 @@ var types_default = {
46988
47451
  }
46989
47452
  },
46990
47453
  category: "display",
46991
- filePath: "../components/src/Badge",
47454
+ filePath: "packages/components/src/Badge",
46992
47455
  sampleProps: {
46993
47456
  children: "'3'"
46994
47457
  }
@@ -47074,7 +47537,7 @@ var types_default = {
47074
47537
  }
47075
47538
  },
47076
47539
  category: "navigation",
47077
- filePath: "../components/src/Breadcrumb",
47540
+ filePath: "packages/components/src/Breadcrumb",
47078
47541
  sampleProps: {
47079
47542
  props: {
47080
47543
  items: [
@@ -47187,7 +47650,7 @@ var types_default = {
47187
47650
  }
47188
47651
  },
47189
47652
  category: "form",
47190
- filePath: "../components/src/Button",
47653
+ filePath: "packages/components/src/Button",
47191
47654
  sampleProps: {
47192
47655
  children: "'Click Me'"
47193
47656
  }
@@ -47310,7 +47773,7 @@ var types_default = {
47310
47773
  }
47311
47774
  },
47312
47775
  category: "display",
47313
- filePath: "../components/src/Card",
47776
+ filePath: "packages/components/src/Card",
47314
47777
  sampleProps: {
47315
47778
  children: "'Card content goes here'"
47316
47779
  }
@@ -47431,7 +47894,7 @@ var types_default = {
47431
47894
  }
47432
47895
  },
47433
47896
  category: "form",
47434
- filePath: "../components/src/Checkbox",
47897
+ filePath: "packages/components/src/Checkbox",
47435
47898
  sampleProps: {
47436
47899
  props: {
47437
47900
  label: "Check me"
@@ -47562,7 +48025,7 @@ var types_default = {
47562
48025
  }
47563
48026
  },
47564
48027
  category: "display",
47565
- filePath: "../components/src/Chip",
48028
+ filePath: "packages/components/src/Chip",
47566
48029
  sampleProps: {
47567
48030
  props: {
47568
48031
  label: "Chip Label"
@@ -47717,7 +48180,7 @@ var types_default = {
47717
48180
  }
47718
48181
  },
47719
48182
  category: "overlay",
47720
- filePath: "../components/src/Dialog",
48183
+ filePath: "packages/components/src/Dialog",
47721
48184
  sampleProps: {
47722
48185
  props: {
47723
48186
  title: "Dialog Title"
@@ -47792,7 +48255,7 @@ var types_default = {
47792
48255
  }
47793
48256
  },
47794
48257
  category: "layout",
47795
- filePath: "../components/src/Divider"
48258
+ filePath: "packages/components/src/Divider"
47796
48259
  },
47797
48260
  Form: {
47798
48261
  name: "Form",
@@ -47809,7 +48272,7 @@ var types_default = {
47809
48272
  }
47810
48273
  },
47811
48274
  category: "display",
47812
- filePath: "../components/src/Form"
48275
+ filePath: "packages/components/src/Form"
47813
48276
  },
47814
48277
  Grid: {
47815
48278
  name: "Grid",
@@ -47879,7 +48342,7 @@ var types_default = {
47879
48342
  }
47880
48343
  },
47881
48344
  category: "display",
47882
- filePath: "../components/src/Grid"
48345
+ filePath: "packages/components/src/Grid"
47883
48346
  },
47884
48347
  Icon: {
47885
48348
  name: "Icon",
@@ -62819,7 +63282,7 @@ var types_default = {
62819
63282
  }
62820
63283
  },
62821
63284
  category: "display",
62822
- filePath: "../components/src/Icon",
63285
+ filePath: "packages/components/src/Icon",
62823
63286
  sampleProps: {
62824
63287
  props: {
62825
63288
  name: "home"
@@ -62912,7 +63375,7 @@ var types_default = {
62912
63375
  }
62913
63376
  },
62914
63377
  category: "display",
62915
- filePath: "../components/src/IconButton"
63378
+ filePath: "packages/components/src/IconButton"
62916
63379
  },
62917
63380
  Image: {
62918
63381
  name: "Image",
@@ -63004,7 +63467,7 @@ var types_default = {
63004
63467
  }
63005
63468
  },
63006
63469
  category: "display",
63007
- filePath: "../components/src/Image",
63470
+ filePath: "packages/components/src/Image",
63008
63471
  sampleProps: {
63009
63472
  props: {
63010
63473
  source: {
@@ -63188,7 +63651,7 @@ var types_default = {
63188
63651
  }
63189
63652
  },
63190
63653
  category: "form",
63191
- filePath: "../components/src/Input",
63654
+ filePath: "packages/components/src/Input",
63192
63655
  sampleProps: {
63193
63656
  props: {
63194
63657
  placeholder: "Enter text..."
@@ -63240,7 +63703,7 @@ var types_default = {
63240
63703
  }
63241
63704
  },
63242
63705
  category: "navigation",
63243
- filePath: "../components/src/Link",
63706
+ filePath: "packages/components/src/Link",
63244
63707
  sampleProps: {
63245
63708
  props: {
63246
63709
  href: "#"
@@ -63337,7 +63800,7 @@ var types_default = {
63337
63800
  }
63338
63801
  },
63339
63802
  category: "navigation",
63340
- filePath: "../components/src/List",
63803
+ filePath: "packages/components/src/List",
63341
63804
  sampleProps: {
63342
63805
  children: "'List items go here'"
63343
63806
  }
@@ -63401,7 +63864,7 @@ var types_default = {
63401
63864
  }
63402
63865
  },
63403
63866
  category: "navigation",
63404
- filePath: "../components/src/Menu",
63867
+ filePath: "packages/components/src/Menu",
63405
63868
  sampleProps: {
63406
63869
  props: {
63407
63870
  items: [
@@ -63516,7 +63979,7 @@ var types_default = {
63516
63979
  }
63517
63980
  },
63518
63981
  category: "overlay",
63519
- filePath: "../components/src/Popover",
63982
+ filePath: "packages/components/src/Popover",
63520
63983
  sampleProps: {
63521
63984
  props: {
63522
63985
  open: false
@@ -63581,7 +64044,7 @@ var types_default = {
63581
64044
  }
63582
64045
  },
63583
64046
  category: "display",
63584
- filePath: "../components/src/Pressable",
64047
+ filePath: "packages/components/src/Pressable",
63585
64048
  sampleProps: {
63586
64049
  children: "'Press me'"
63587
64050
  }
@@ -63660,7 +64123,7 @@ var types_default = {
63660
64123
  }
63661
64124
  },
63662
64125
  category: "data",
63663
- filePath: "../components/src/Progress",
64126
+ filePath: "packages/components/src/Progress",
63664
64127
  sampleProps: {
63665
64128
  props: {
63666
64129
  value: 65
@@ -63739,7 +64202,7 @@ var types_default = {
63739
64202
  }
63740
64203
  },
63741
64204
  category: "form",
63742
- filePath: "../components/src/RadioButton",
64205
+ filePath: "packages/components/src/RadioButton",
63743
64206
  sampleProps: {
63744
64207
  props: {
63745
64208
  value: "option1",
@@ -63805,7 +64268,7 @@ var types_default = {
63805
64268
  }
63806
64269
  },
63807
64270
  category: "display",
63808
- filePath: "../components/src/SVGImage",
64271
+ filePath: "packages/components/src/SVGImage",
63809
64272
  sampleProps: {
63810
64273
  props: {
63811
64274
  source: '<svg viewBox="0 0 100 100"><circle cx="50" cy="50" r="40" fill="currentColor"/></svg>',
@@ -63964,7 +64427,7 @@ var types_default = {
63964
64427
  }
63965
64428
  },
63966
64429
  category: "layout",
63967
- filePath: "../components/src/Screen",
64430
+ filePath: "packages/components/src/Screen",
63968
64431
  sampleProps: {
63969
64432
  children: "'Screen content'"
63970
64433
  }
@@ -64180,7 +64643,7 @@ var types_default = {
64180
64643
  }
64181
64644
  },
64182
64645
  category: "display",
64183
- filePath: "../components/src/ScrollView",
64646
+ filePath: "packages/components/src/ScrollView",
64184
64647
  sampleProps: {
64185
64648
  children: "'Scrollable content'"
64186
64649
  }
@@ -64325,7 +64788,7 @@ var types_default = {
64325
64788
  }
64326
64789
  },
64327
64790
  category: "form",
64328
- filePath: "../components/src/Select",
64791
+ filePath: "packages/components/src/Select",
64329
64792
  sampleProps: {
64330
64793
  props: {
64331
64794
  options: [
@@ -64408,7 +64871,7 @@ var types_default = {
64408
64871
  }
64409
64872
  },
64410
64873
  category: "display",
64411
- filePath: "../components/src/Skeleton",
64874
+ filePath: "packages/components/src/Skeleton",
64412
64875
  sampleProps: {
64413
64876
  props: {
64414
64877
  width: 200,
@@ -64553,7 +65016,7 @@ var types_default = {
64553
65016
  }
64554
65017
  },
64555
65018
  category: "form",
64556
- filePath: "../components/src/Slider",
65019
+ filePath: "packages/components/src/Slider",
64557
65020
  sampleProps: {
64558
65021
  props: {},
64559
65022
  state: {
@@ -64680,7 +65143,7 @@ var types_default = {
64680
65143
  }
64681
65144
  },
64682
65145
  category: "form",
64683
- filePath: "../components/src/Switch",
65146
+ filePath: "packages/components/src/Switch",
64684
65147
  sampleProps: {
64685
65148
  props: {},
64686
65149
  state: {
@@ -64817,7 +65280,7 @@ var types_default = {
64817
65280
  }
64818
65281
  },
64819
65282
  category: "navigation",
64820
- filePath: "../components/src/TabBar",
65283
+ filePath: "packages/components/src/TabBar",
64821
65284
  sampleProps: {
64822
65285
  props: {
64823
65286
  items: [
@@ -64882,6 +65345,22 @@ var types_default = {
64882
65345
  type: "((row: T, index: number) => void) | undefined",
64883
65346
  required: false
64884
65347
  },
65348
+ onColumnResize: {
65349
+ name: "onColumnResize",
65350
+ type: "((key: string, width: number) => void) | undefined",
65351
+ description: "Called when a column is resized via drag handle.\nReceives the column key and the new width in pixels.",
65352
+ required: false
65353
+ },
65354
+ emptyState: {
65355
+ name: "emptyState",
65356
+ type: "ReactNode",
65357
+ values: [
65358
+ "false",
65359
+ "true"
65360
+ ],
65361
+ description: "Content to display when `data` is empty.\nRenders in place of the table body.",
65362
+ required: false
65363
+ },
64885
65364
  id: {
64886
65365
  name: "id",
64887
65366
  type: "string | undefined",
@@ -64938,7 +65417,7 @@ var types_default = {
64938
65417
  }
64939
65418
  },
64940
65419
  category: "data",
64941
- filePath: "../components/src/Table",
65420
+ filePath: "packages/components/src/Table",
64942
65421
  sampleProps: {
64943
65422
  props: {
64944
65423
  columns: [
@@ -65068,7 +65547,7 @@ var types_default = {
65068
65547
  }
65069
65548
  },
65070
65549
  category: "display",
65071
- filePath: "../components/src/Text",
65550
+ filePath: "packages/components/src/Text",
65072
65551
  sampleProps: {
65073
65552
  children: "'Sample text content'"
65074
65553
  }
@@ -65238,7 +65717,7 @@ var types_default = {
65238
65717
  }
65239
65718
  },
65240
65719
  category: "form",
65241
- filePath: "../components/src/TextArea",
65720
+ filePath: "packages/components/src/TextArea",
65242
65721
  sampleProps: {
65243
65722
  props: {
65244
65723
  placeholder: "Enter text...",
@@ -65490,7 +65969,7 @@ var types_default = {
65490
65969
  }
65491
65970
  },
65492
65971
  category: "display",
65493
- filePath: "../components/src/TextInput"
65972
+ filePath: "packages/components/src/TextInput"
65494
65973
  },
65495
65974
  Tooltip: {
65496
65975
  name: "Tooltip",
@@ -65540,7 +66019,7 @@ var types_default = {
65540
66019
  }
65541
66020
  },
65542
66021
  category: "display",
65543
- filePath: "../components/src/Tooltip",
66022
+ filePath: "packages/components/src/Tooltip",
65544
66023
  sampleProps: {
65545
66024
  props: {
65546
66025
  content: "Tooltip text"
@@ -65674,7 +66153,7 @@ var types_default = {
65674
66153
  }
65675
66154
  },
65676
66155
  category: "display",
65677
- filePath: "../components/src/Video",
66156
+ filePath: "packages/components/src/Video",
65678
66157
  sampleProps: {
65679
66158
  props: {
65680
66159
  source: "https://www.w3schools.com/html/mov_bbb.mp4",
@@ -65800,7 +66279,7 @@ var types_default = {
65800
66279
  }
65801
66280
  },
65802
66281
  category: "layout",
65803
- filePath: "../components/src/View",
66282
+ filePath: "packages/components/src/View",
65804
66283
  sampleProps: {
65805
66284
  children: "'View content'"
65806
66285
  }
@@ -66975,6 +67454,17 @@ function getNetworkGuide(args) {
66975
67454
  }
66976
67455
  return textResponse(guide);
66977
67456
  }
67457
+ function getPdfGuide(args) {
67458
+ const topic = args.topic;
67459
+ const uri = `idealyst://pdf/${topic}`;
67460
+ const guide = pdfGuides[uri];
67461
+ if (!guide) {
67462
+ return textResponse(
67463
+ `Topic "${topic}" not found. Available topics: overview, api, examples`
67464
+ );
67465
+ }
67466
+ return textResponse(guide);
67467
+ }
66978
67468
  function listPackages(args = {}) {
66979
67469
  const category = args.category;
66980
67470
  if (category) {
@@ -67226,6 +67716,7 @@ var toolHandlers = {
67226
67716
  get_notifications_guide: getNotificationsGuide,
67227
67717
  get_live_activity_guide: getLiveActivityGuide,
67228
67718
  get_network_guide: getNetworkGuide,
67719
+ get_pdf_guide: getPdfGuide,
67229
67720
  list_packages: listPackages,
67230
67721
  get_package_docs: getPackageDocs,
67231
67722
  search_packages: searchPackages2,
@@ -67299,6 +67790,8 @@ function callTool(name, args = {}) {
67299
67790
  getPackageDocsDefinition,
67300
67791
  getPaymentsGuide,
67301
67792
  getPaymentsGuideDefinition,
67793
+ getPdfGuide,
67794
+ getPdfGuideDefinition,
67302
67795
  getRecipe,
67303
67796
  getRecipeDefinition,
67304
67797
  getRegistryThemeValues,