@genesislcap/foundation-react-utils 15.50.3 → 15.51.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.
@@ -172,6 +172,87 @@
172
172
  "name": "",
173
173
  "preserveMemberOrder": false,
174
174
  "members": [
175
+ {
176
+ "kind": "Variable",
177
+ "canonicalReference": "@genesislcap/foundation-react-utils!AppErrorBoundary:var",
178
+ "docComment": "/**\n * Top-level error boundary. Wrap the whole app in one instance; use {@link TileErrorBoundary} inside it.\n *\n * @remarks\n *\n * Renders a fallback with a reference ID, copyable diagnostics and a Retry button that remounts the children. Each caught error is passed to `onError`. Without one, it's logged through the {@link ERROR_BOUNDARY_LOGGER_NAME} logger instead, which a global log reporter receives. Pair with {@link onCaughtError} on the root so React doesn't log the error a second time.\n *\n * @example\n * ```tsx\n * createRoot(el, { onCaughtError }).render(\n * <AppErrorBoundary onError={({ error, ...extra }) => Sentry.captureException(error, { extra })}>\n * <App />\n * </AppErrorBoundary>,\n * );\n * ```\n *\n * @public\n */\n",
179
+ "excerptTokens": [
180
+ {
181
+ "kind": "Content",
182
+ "text": "AppErrorBoundary: "
183
+ },
184
+ {
185
+ "kind": "Reference",
186
+ "text": "FC",
187
+ "canonicalReference": "@types/react!React.FC:type"
188
+ },
189
+ {
190
+ "kind": "Content",
191
+ "text": "<"
192
+ },
193
+ {
194
+ "kind": "Reference",
195
+ "text": "AppErrorBoundaryProps",
196
+ "canonicalReference": "@genesislcap/foundation-react-utils!AppErrorBoundaryProps:type"
197
+ },
198
+ {
199
+ "kind": "Content",
200
+ "text": ">"
201
+ }
202
+ ],
203
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
204
+ "isReadonly": true,
205
+ "releaseTag": "Public",
206
+ "name": "AppErrorBoundary",
207
+ "variableTypeTokenRange": {
208
+ "startIndex": 1,
209
+ "endIndex": 5
210
+ }
211
+ },
212
+ {
213
+ "kind": "TypeAlias",
214
+ "canonicalReference": "@genesislcap/foundation-react-utils!AppErrorBoundaryProps:type",
215
+ "docComment": "/**\n * Props for {@link AppErrorBoundary}.\n *\n * @public\n */\n",
216
+ "excerptTokens": [
217
+ {
218
+ "kind": "Content",
219
+ "text": "export type AppErrorBoundaryProps = "
220
+ },
221
+ {
222
+ "kind": "Content",
223
+ "text": "{\n onError?: "
224
+ },
225
+ {
226
+ "kind": "Reference",
227
+ "text": "ErrorBoundaryErrorHandler",
228
+ "canonicalReference": "@genesislcap/foundation-react-utils!ErrorBoundaryErrorHandler:type"
229
+ },
230
+ {
231
+ "kind": "Content",
232
+ "text": ";\n children: "
233
+ },
234
+ {
235
+ "kind": "Reference",
236
+ "text": "ReactNode",
237
+ "canonicalReference": "@types/react!React.ReactNode:type"
238
+ },
239
+ {
240
+ "kind": "Content",
241
+ "text": ";\n}"
242
+ },
243
+ {
244
+ "kind": "Content",
245
+ "text": ";"
246
+ }
247
+ ],
248
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
249
+ "releaseTag": "Public",
250
+ "name": "AppErrorBoundaryProps",
251
+ "typeTokenRange": {
252
+ "startIndex": 1,
253
+ "endIndex": 6
254
+ }
255
+ },
175
256
  {
176
257
  "kind": "Function",
177
258
  "canonicalReference": "@genesislcap/foundation-react-utils!createGridProCellPortals:function(1)",
@@ -416,6 +497,138 @@
416
497
  ],
417
498
  "name": "createReactRenderer"
418
499
  },
500
+ {
501
+ "kind": "Variable",
502
+ "canonicalReference": "@genesislcap/foundation-react-utils!ERROR_BOUNDARY_LOGGER_NAME:var",
503
+ "docComment": "/**\n * Name of the logger the error boundaries log through. They log a caught error, with a message naming its scope, title, tile registration and reference ID and giving its component stack, only when no `onError` handler is set or when the handler throws. `setupErrorMonitoring` from foundation-utils reports these logs, so apps using it don't need an `onError`.\n *\n * @public\n */\n",
504
+ "excerptTokens": [
505
+ {
506
+ "kind": "Content",
507
+ "text": "ERROR_BOUNDARY_LOGGER_NAME = "
508
+ },
509
+ {
510
+ "kind": "Content",
511
+ "text": "\"foundation-react-utils:error-boundary\""
512
+ }
513
+ ],
514
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
515
+ "initializerTokenRange": {
516
+ "startIndex": 1,
517
+ "endIndex": 2
518
+ },
519
+ "isReadonly": true,
520
+ "releaseTag": "Public",
521
+ "name": "ERROR_BOUNDARY_LOGGER_NAME",
522
+ "variableTypeTokenRange": {
523
+ "startIndex": 0,
524
+ "endIndex": 0
525
+ }
526
+ },
527
+ {
528
+ "kind": "TypeAlias",
529
+ "canonicalReference": "@genesislcap/foundation-react-utils!ErrorBoundaryErrorHandler:type",
530
+ "docComment": "/**\n * Callback that receives every error a boundary catches, for example to send it to an error-monitoring service.\n *\n * @public\n */\n",
531
+ "excerptTokens": [
532
+ {
533
+ "kind": "Content",
534
+ "text": "export type ErrorBoundaryErrorHandler = "
535
+ },
536
+ {
537
+ "kind": "Content",
538
+ "text": "(report: "
539
+ },
540
+ {
541
+ "kind": "Reference",
542
+ "text": "ErrorBoundaryReport",
543
+ "canonicalReference": "@genesislcap/foundation-react-utils!ErrorBoundaryReport:type"
544
+ },
545
+ {
546
+ "kind": "Content",
547
+ "text": ") => void"
548
+ },
549
+ {
550
+ "kind": "Content",
551
+ "text": ";"
552
+ }
553
+ ],
554
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
555
+ "releaseTag": "Public",
556
+ "name": "ErrorBoundaryErrorHandler",
557
+ "typeTokenRange": {
558
+ "startIndex": 1,
559
+ "endIndex": 4
560
+ }
561
+ },
562
+ {
563
+ "kind": "TypeAlias",
564
+ "canonicalReference": "@genesislcap/foundation-react-utils!ErrorBoundaryReport:type",
565
+ "docComment": "/**\n * What an error boundary passes to `onError` when it catches an error.\n *\n * @public\n */\n",
566
+ "excerptTokens": [
567
+ {
568
+ "kind": "Content",
569
+ "text": "export type ErrorBoundaryReport = "
570
+ },
571
+ {
572
+ "kind": "Content",
573
+ "text": "{\n error: "
574
+ },
575
+ {
576
+ "kind": "Reference",
577
+ "text": "Error",
578
+ "canonicalReference": "!Error:interface"
579
+ },
580
+ {
581
+ "kind": "Content",
582
+ "text": ";\n componentStack: string;\n referenceId: string;\n scope: "
583
+ },
584
+ {
585
+ "kind": "Reference",
586
+ "text": "ErrorBoundaryScope",
587
+ "canonicalReference": "@genesislcap/foundation-react-utils!ErrorBoundaryScope:type"
588
+ },
589
+ {
590
+ "kind": "Content",
591
+ "text": ";\n title: string;\n tileRegistration?: string;\n}"
592
+ },
593
+ {
594
+ "kind": "Content",
595
+ "text": ";"
596
+ }
597
+ ],
598
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
599
+ "releaseTag": "Public",
600
+ "name": "ErrorBoundaryReport",
601
+ "typeTokenRange": {
602
+ "startIndex": 1,
603
+ "endIndex": 6
604
+ }
605
+ },
606
+ {
607
+ "kind": "TypeAlias",
608
+ "canonicalReference": "@genesislcap/foundation-react-utils!ErrorBoundaryScope:type",
609
+ "docComment": "/**\n * Where a boundary sits: around the whole app, or around a single tile.\n *\n * @public\n */\n",
610
+ "excerptTokens": [
611
+ {
612
+ "kind": "Content",
613
+ "text": "export type ErrorBoundaryScope = "
614
+ },
615
+ {
616
+ "kind": "Content",
617
+ "text": "'application' | 'tile'"
618
+ },
619
+ {
620
+ "kind": "Content",
621
+ "text": ";"
622
+ }
623
+ ],
624
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
625
+ "releaseTag": "Public",
626
+ "name": "ErrorBoundaryScope",
627
+ "typeTokenRange": {
628
+ "startIndex": 1,
629
+ "endIndex": 2
630
+ }
631
+ },
419
632
  {
420
633
  "kind": "Interface",
421
634
  "canonicalReference": "@genesislcap/foundation-react-utils!GridProCellPortals:interface",
@@ -1047,6 +1260,43 @@
1047
1260
  ],
1048
1261
  "extendsTokenRanges": []
1049
1262
  },
1263
+ {
1264
+ "kind": "Variable",
1265
+ "canonicalReference": "@genesislcap/foundation-react-utils!onCaughtError:var",
1266
+ "docComment": "/**\n * Root `onCaughtError` for `createRoot`.\n *\n * @remarks\n *\n * By default React 19 logs every error a boundary catches to `console.error`, before the boundary's `componentDidCatch` runs. Console-capturing monitoring tools then report that bare error first, and can drop or duplicate the boundary's own report. {@link AppErrorBoundary} and {@link TileErrorBoundary} report or log errors themselves, so this skips them. Errors caught by any other boundary are still logged to `console.error`, with their component stack.\n *\n * @public\n */\n",
1267
+ "excerptTokens": [
1268
+ {
1269
+ "kind": "Content",
1270
+ "text": "onCaughtError: "
1271
+ },
1272
+ {
1273
+ "kind": "Reference",
1274
+ "text": "NonNullable",
1275
+ "canonicalReference": "!NonNullable:type"
1276
+ },
1277
+ {
1278
+ "kind": "Content",
1279
+ "text": "<"
1280
+ },
1281
+ {
1282
+ "kind": "Reference",
1283
+ "text": "RootOptions",
1284
+ "canonicalReference": "@types/react-dom!RootOptions:interface"
1285
+ },
1286
+ {
1287
+ "kind": "Content",
1288
+ "text": "['onCaughtError']>"
1289
+ }
1290
+ ],
1291
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
1292
+ "isReadonly": true,
1293
+ "releaseTag": "Public",
1294
+ "name": "onCaughtError",
1295
+ "variableTypeTokenRange": {
1296
+ "startIndex": 1,
1297
+ "endIndex": 5
1298
+ }
1299
+ },
1050
1300
  {
1051
1301
  "kind": "Function",
1052
1302
  "canonicalReference": "@genesislcap/foundation-react-utils!reactFactory:function(1)",
@@ -1287,6 +1537,208 @@
1287
1537
  }
1288
1538
  ],
1289
1539
  "name": "reactFactoryWithProvider"
1540
+ },
1541
+ {
1542
+ "kind": "Variable",
1543
+ "canonicalReference": "@genesislcap/foundation-react-utils!TileErrorBoundary:var",
1544
+ "docComment": "/**\n * Error boundary for a single tile, so a crash replaces only that tile with the fallback UI and the rest of the app keeps running.\n *\n * @public\n */\n",
1545
+ "excerptTokens": [
1546
+ {
1547
+ "kind": "Content",
1548
+ "text": "TileErrorBoundary: "
1549
+ },
1550
+ {
1551
+ "kind": "Reference",
1552
+ "text": "FC",
1553
+ "canonicalReference": "@types/react!React.FC:type"
1554
+ },
1555
+ {
1556
+ "kind": "Content",
1557
+ "text": "<"
1558
+ },
1559
+ {
1560
+ "kind": "Reference",
1561
+ "text": "TileErrorBoundaryProps",
1562
+ "canonicalReference": "@genesislcap/foundation-react-utils!TileErrorBoundaryProps:type"
1563
+ },
1564
+ {
1565
+ "kind": "Content",
1566
+ "text": ">"
1567
+ }
1568
+ ],
1569
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
1570
+ "isReadonly": true,
1571
+ "releaseTag": "Public",
1572
+ "name": "TileErrorBoundary",
1573
+ "variableTypeTokenRange": {
1574
+ "startIndex": 1,
1575
+ "endIndex": 5
1576
+ }
1577
+ },
1578
+ {
1579
+ "kind": "TypeAlias",
1580
+ "canonicalReference": "@genesislcap/foundation-react-utils!TileErrorBoundaryProps:type",
1581
+ "docComment": "/**\n * Props for {@link TileErrorBoundary}.\n *\n * @public\n */\n",
1582
+ "excerptTokens": [
1583
+ {
1584
+ "kind": "Content",
1585
+ "text": "export type TileErrorBoundaryProps = "
1586
+ },
1587
+ {
1588
+ "kind": "Content",
1589
+ "text": "{\n title: string;\n tileRegistration: string;\n onError?: "
1590
+ },
1591
+ {
1592
+ "kind": "Reference",
1593
+ "text": "ErrorBoundaryErrorHandler",
1594
+ "canonicalReference": "@genesislcap/foundation-react-utils!ErrorBoundaryErrorHandler:type"
1595
+ },
1596
+ {
1597
+ "kind": "Content",
1598
+ "text": ";\n children: "
1599
+ },
1600
+ {
1601
+ "kind": "Reference",
1602
+ "text": "ReactNode",
1603
+ "canonicalReference": "@types/react!React.ReactNode:type"
1604
+ },
1605
+ {
1606
+ "kind": "Content",
1607
+ "text": ";\n}"
1608
+ },
1609
+ {
1610
+ "kind": "Content",
1611
+ "text": ";"
1612
+ }
1613
+ ],
1614
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
1615
+ "releaseTag": "Public",
1616
+ "name": "TileErrorBoundaryProps",
1617
+ "typeTokenRange": {
1618
+ "startIndex": 1,
1619
+ "endIndex": 6
1620
+ }
1621
+ },
1622
+ {
1623
+ "kind": "Function",
1624
+ "canonicalReference": "@genesislcap/foundation-react-utils!withTileErrorBoundary:function(1)",
1625
+ "docComment": "/**\n * Wraps a component in a {@link TileErrorBoundary}.\n *\n * @param WrappedComponent - The tile component.\n *\n * @param title - Human-readable tile name shown in the fallback UI.\n *\n * @param tileRegistration - The tile's key in the layout.\n *\n * @param onError - Optional callback for caught errors.\n *\n * @public\n */\n",
1626
+ "excerptTokens": [
1627
+ {
1628
+ "kind": "Content",
1629
+ "text": "withTileErrorBoundary: <P extends "
1630
+ },
1631
+ {
1632
+ "kind": "Content",
1633
+ "text": "object"
1634
+ },
1635
+ {
1636
+ "kind": "Content",
1637
+ "text": ">(WrappedComponent: "
1638
+ },
1639
+ {
1640
+ "kind": "Reference",
1641
+ "text": "ComponentType",
1642
+ "canonicalReference": "@types/react!React.ComponentType:type"
1643
+ },
1644
+ {
1645
+ "kind": "Content",
1646
+ "text": "<P>"
1647
+ },
1648
+ {
1649
+ "kind": "Content",
1650
+ "text": ", title: "
1651
+ },
1652
+ {
1653
+ "kind": "Content",
1654
+ "text": "string"
1655
+ },
1656
+ {
1657
+ "kind": "Content",
1658
+ "text": ", tileRegistration: "
1659
+ },
1660
+ {
1661
+ "kind": "Content",
1662
+ "text": "string"
1663
+ },
1664
+ {
1665
+ "kind": "Content",
1666
+ "text": ", onError?: "
1667
+ },
1668
+ {
1669
+ "kind": "Reference",
1670
+ "text": "ErrorBoundaryErrorHandler",
1671
+ "canonicalReference": "@genesislcap/foundation-react-utils!ErrorBoundaryErrorHandler:type"
1672
+ },
1673
+ {
1674
+ "kind": "Content",
1675
+ "text": ") => "
1676
+ },
1677
+ {
1678
+ "kind": "Reference",
1679
+ "text": "FC",
1680
+ "canonicalReference": "@types/react!React.FC:type"
1681
+ },
1682
+ {
1683
+ "kind": "Content",
1684
+ "text": "<P>"
1685
+ }
1686
+ ],
1687
+ "fileUrlPath": "src/error-boundary/error-boundary.tsx",
1688
+ "returnTypeTokenRange": {
1689
+ "startIndex": 12,
1690
+ "endIndex": 14
1691
+ },
1692
+ "releaseTag": "Public",
1693
+ "overloadIndex": 1,
1694
+ "parameters": [
1695
+ {
1696
+ "parameterName": "WrappedComponent",
1697
+ "parameterTypeTokenRange": {
1698
+ "startIndex": 3,
1699
+ "endIndex": 5
1700
+ },
1701
+ "isOptional": false
1702
+ },
1703
+ {
1704
+ "parameterName": "title",
1705
+ "parameterTypeTokenRange": {
1706
+ "startIndex": 6,
1707
+ "endIndex": 7
1708
+ },
1709
+ "isOptional": false
1710
+ },
1711
+ {
1712
+ "parameterName": "tileRegistration",
1713
+ "parameterTypeTokenRange": {
1714
+ "startIndex": 8,
1715
+ "endIndex": 9
1716
+ },
1717
+ "isOptional": false
1718
+ },
1719
+ {
1720
+ "parameterName": "onError",
1721
+ "parameterTypeTokenRange": {
1722
+ "startIndex": 10,
1723
+ "endIndex": 11
1724
+ },
1725
+ "isOptional": true
1726
+ }
1727
+ ],
1728
+ "typeParameters": [
1729
+ {
1730
+ "typeParameterName": "P",
1731
+ "constraintTokenRange": {
1732
+ "startIndex": 1,
1733
+ "endIndex": 2
1734
+ },
1735
+ "defaultTypeTokenRange": {
1736
+ "startIndex": 0,
1737
+ "endIndex": 0
1738
+ }
1739
+ }
1740
+ ],
1741
+ "name": "withTileErrorBoundary"
1290
1742
  }
1291
1743
  ]
1292
1744
  }
@@ -1,13 +1,47 @@
1
1
  import type { ComponentFactory } from '@genesislcap/foundation-layout';
2
2
  import { ComponentType } from 'react';
3
+ import type { FC } from 'react';
3
4
  import { JsonFormsState } from '@jsonforms/core';
4
5
  import { OwnPropsOfControl } from '@jsonforms/core';
5
6
  import { RankedTester } from '@jsonforms/core';
6
7
  import * as React_2 from 'react';
8
+ import type { ReactNode } from 'react';
7
9
  import { RendererControlProps } from '@genesislcap/foundation-forms';
8
10
  import { RendererEntry } from '@genesislcap/foundation-forms';
11
+ import type { RootOptions } from 'react-dom/client';
9
12
  import { StatePropsOfControl } from '@jsonforms/core';
10
13
 
14
+ /**
15
+ * Top-level error boundary. Wrap the whole app in one instance; use {@link TileErrorBoundary}
16
+ * inside it.
17
+ *
18
+ * @remarks
19
+ * Renders a fallback with a reference ID, copyable diagnostics and a Retry button that remounts
20
+ * the children. Each caught error is passed to `onError`. Without one, it's logged through the
21
+ * {@link ERROR_BOUNDARY_LOGGER_NAME} logger instead, which a global log reporter receives. Pair with {@link onCaughtError} on the root so React doesn't log the
22
+ * error a second time.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * createRoot(el, { onCaughtError }).render(
27
+ * <AppErrorBoundary onError={({ error, ...extra }) => Sentry.captureException(error, { extra })}>
28
+ * <App />
29
+ * </AppErrorBoundary>,
30
+ * );
31
+ * ```
32
+ * @public
33
+ */
34
+ export declare const AppErrorBoundary: FC<AppErrorBoundaryProps>;
35
+
36
+ /**
37
+ * Props for {@link AppErrorBoundary}.
38
+ * @public
39
+ */
40
+ export declare type AppErrorBoundaryProps = {
41
+ onError?: ErrorBoundaryErrorHandler;
42
+ children: ReactNode;
43
+ };
44
+
11
45
  /**
12
46
  * Creates a {@link GridProCellPortals} manager: a single React root shared by every cell
13
47
  * renderer registered with it, with each cell rendered into its grid cell via a portal.
@@ -203,6 +237,42 @@ export declare function createReactRenderer(Component: ComponentType<RendererCon
203
237
  wrapWithControlWrapper?: boolean;
204
238
  }): RendererEntry;
205
239
 
240
+ /**
241
+ * Name of the logger the error boundaries log through. They log a caught error, with a message
242
+ * naming its scope, title, tile registration and reference ID and giving its component stack, only
243
+ * when no `onError` handler is set or when the handler throws. `setupErrorMonitoring` from foundation-utils reports
244
+ * these logs, so apps using it don't need an `onError`.
245
+ * @public
246
+ */
247
+ export declare const ERROR_BOUNDARY_LOGGER_NAME = "foundation-react-utils:error-boundary";
248
+
249
+ /**
250
+ * Callback that receives every error a boundary catches, for example to send it to an
251
+ * error-monitoring service.
252
+ * @public
253
+ */
254
+ export declare type ErrorBoundaryErrorHandler = (report: ErrorBoundaryReport) => void;
255
+
256
+ /**
257
+ * What an error boundary passes to `onError` when it catches an error.
258
+ * @public
259
+ */
260
+ export declare type ErrorBoundaryReport = {
261
+ error: Error;
262
+ componentStack: string;
263
+ /** Shown in the fallback UI, so support can match a user's screen to a reported event. */
264
+ referenceId: string;
265
+ scope: ErrorBoundaryScope;
266
+ title: string;
267
+ tileRegistration?: string;
268
+ };
269
+
270
+ /**
271
+ * Where a boundary sits: around the whole app, or around a single tile.
272
+ * @public
273
+ */
274
+ export declare type ErrorBoundaryScope = 'application' | 'tile';
275
+
206
276
  /**
207
277
  * Shared portal manager for Grid Pro React cell renderers.
208
278
  *
@@ -321,6 +391,20 @@ export declare interface GridProReactCellRenderer {
321
391
  destroy(): void;
322
392
  }
323
393
 
394
+ /**
395
+ * Root `onCaughtError` for `createRoot`.
396
+ *
397
+ * @remarks
398
+ * By default React 19 logs every error a boundary catches to `console.error`, before the
399
+ * boundary's `componentDidCatch` runs. Console-capturing monitoring tools then report that bare
400
+ * error first, and can drop or duplicate the boundary's own report. {@link AppErrorBoundary} and
401
+ * {@link TileErrorBoundary} report or log errors themselves, so this skips them. Errors caught by
402
+ * any other boundary are still logged to `console.error`, with their component stack.
403
+ *
404
+ * @public
405
+ */
406
+ export declare const onCaughtError: NonNullable<RootOptions['onCaughtError']>;
407
+
324
408
  /**
325
409
  * Creates a factory function for rendering React components in layout items.
326
410
  *
@@ -371,4 +455,35 @@ export declare function reactFactoryWithProvider<CP = {}, WP = {}>(Component: Re
371
455
 
372
456
  export { RendererControlProps }
373
457
 
458
+ /**
459
+ * Error boundary for a single tile, so a crash replaces only that tile with the fallback UI and
460
+ * the rest of the app keeps running.
461
+ * @public
462
+ */
463
+ export declare const TileErrorBoundary: FC<TileErrorBoundaryProps>;
464
+
465
+ /**
466
+ * Props for {@link TileErrorBoundary}.
467
+ * @public
468
+ */
469
+ export declare type TileErrorBoundaryProps = {
470
+ /** Human-readable tile name shown in the fallback UI. */
471
+ title: string;
472
+ /** The tile's key in the layout. */
473
+ tileRegistration: string;
474
+ onError?: ErrorBoundaryErrorHandler;
475
+ children: ReactNode;
476
+ };
477
+
478
+ /**
479
+ * Wraps a component in a {@link TileErrorBoundary}.
480
+ *
481
+ * @param WrappedComponent - The tile component.
482
+ * @param title - Human-readable tile name shown in the fallback UI.
483
+ * @param tileRegistration - The tile's key in the layout.
484
+ * @param onError - Optional callback for caught errors.
485
+ * @public
486
+ */
487
+ export declare const withTileErrorBoundary: <P extends object>(WrappedComponent: ComponentType<P>, title: string, tileRegistration: string, onError?: ErrorBoundaryErrorHandler) => FC<P>;
488
+
374
489
  export { }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-react-utils",
3
3
  "description": "Genesis Foundation React Utils",
4
- "version": "15.50.3",
4
+ "version": "15.51.1",
5
5
  "sideEffects": [
6
6
  "./dist/esm/flexlayout/index.js"
7
7
  ],
@@ -56,12 +56,12 @@
56
56
  }
57
57
  },
58
58
  "devDependencies": {
59
- "@genesislcap/foundation-testing": "15.50.3",
60
- "@genesislcap/genx": "15.50.3",
61
- "@genesislcap/ts-builder": "15.50.3",
62
- "@genesislcap/uvu-playwright-builder": "15.50.3",
63
- "@genesislcap/vite-builder": "15.50.3",
64
- "@genesislcap/webpack-builder": "15.50.3",
59
+ "@genesislcap/foundation-testing": "15.51.1",
60
+ "@genesislcap/genx": "15.51.1",
61
+ "@genesislcap/ts-builder": "15.51.1",
62
+ "@genesislcap/uvu-playwright-builder": "15.51.1",
63
+ "@genesislcap/vite-builder": "15.51.1",
64
+ "@genesislcap/webpack-builder": "15.51.1",
65
65
  "react-router-dom": "^7.1.3"
66
66
  },
67
67
  "peerDependencies": {
@@ -75,11 +75,11 @@
75
75
  }
76
76
  },
77
77
  "dependencies": {
78
- "@genesislcap/foundation-forms": "15.50.3",
79
- "@genesislcap/foundation-layout": "15.50.3",
80
- "@genesislcap/foundation-logger": "15.50.3",
81
- "@genesislcap/rapid-design-system": "15.50.3",
82
- "@genesislcap/web-core": "15.50.3",
78
+ "@genesislcap/foundation-forms": "15.51.1",
79
+ "@genesislcap/foundation-layout": "15.51.1",
80
+ "@genesislcap/foundation-logger": "15.51.1",
81
+ "@genesislcap/rapid-design-system": "15.51.1",
82
+ "@genesislcap/web-core": "15.51.1",
83
83
  "@jsonforms/core": "^3.2.1",
84
84
  "@r2wc/core": "1.3.1",
85
85
  "@r2wc/react-to-web-component": "^2.0.2",