@genesislcap/foundation-react-utils 15.46.6-alpha-606571609.0 → 15.48.0
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/README.md +0 -51
- package/dist/custom-elements.json +7 -124
- package/dist/dts/index.d.ts +0 -3
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -3
- package/dist/foundation-react-utils.api.json +0 -452
- package/dist/foundation-react-utils.d.ts +0 -115
- package/package.json +12 -12
- package/dist/dts/error-boundary/error-boundary-styles.d.ts +0 -6
- package/dist/dts/error-boundary/error-boundary-styles.d.ts.map +0 -1
- package/dist/dts/error-boundary/error-boundary.d.ts +0 -105
- package/dist/dts/error-boundary/error-boundary.d.ts.map +0 -1
- package/dist/dts/error-boundary/index.d.ts +0 -3
- package/dist/dts/error-boundary/index.d.ts.map +0 -1
- package/dist/esm/error-boundary/error-boundary-styles.js +0 -133
- package/dist/esm/error-boundary/error-boundary.js +0 -225
- package/dist/esm/error-boundary/index.js +0 -1
|
@@ -172,87 +172,6 @@
|
|
|
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
|
-
},
|
|
256
175
|
{
|
|
257
176
|
"kind": "Function",
|
|
258
177
|
"canonicalReference": "@genesislcap/foundation-react-utils!createGridProCellPortals:function(1)",
|
|
@@ -497,138 +416,6 @@
|
|
|
497
416
|
],
|
|
498
417
|
"name": "createReactRenderer"
|
|
499
418
|
},
|
|
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, followed by its reference ID, scope, title, tile registration and 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
|
-
},
|
|
632
419
|
{
|
|
633
420
|
"kind": "Interface",
|
|
634
421
|
"canonicalReference": "@genesislcap/foundation-react-utils!GridProCellPortals:interface",
|
|
@@ -1260,43 +1047,6 @@
|
|
|
1260
1047
|
],
|
|
1261
1048
|
"extendsTokenRanges": []
|
|
1262
1049
|
},
|
|
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`.\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
|
-
},
|
|
1300
1050
|
{
|
|
1301
1051
|
"kind": "Function",
|
|
1302
1052
|
"canonicalReference": "@genesislcap/foundation-react-utils!reactFactory:function(1)",
|
|
@@ -1537,208 +1287,6 @@
|
|
|
1537
1287
|
}
|
|
1538
1288
|
],
|
|
1539
1289
|
"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"
|
|
1742
1290
|
}
|
|
1743
1291
|
]
|
|
1744
1292
|
}
|
|
@@ -1,47 +1,13 @@
|
|
|
1
1
|
import type { ComponentFactory } from '@genesislcap/foundation-layout';
|
|
2
2
|
import { ComponentType } from 'react';
|
|
3
|
-
import type { FC } from 'react';
|
|
4
3
|
import { JsonFormsState } from '@jsonforms/core';
|
|
5
4
|
import { OwnPropsOfControl } from '@jsonforms/core';
|
|
6
5
|
import { RankedTester } from '@jsonforms/core';
|
|
7
6
|
import * as React_2 from 'react';
|
|
8
|
-
import type { ReactNode } from 'react';
|
|
9
7
|
import { RendererControlProps } from '@genesislcap/foundation-forms';
|
|
10
8
|
import { RendererEntry } from '@genesislcap/foundation-forms';
|
|
11
|
-
import type { RootOptions } from 'react-dom/client';
|
|
12
9
|
import { StatePropsOfControl } from '@jsonforms/core';
|
|
13
10
|
|
|
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
|
-
|
|
45
11
|
/**
|
|
46
12
|
* Creates a {@link GridProCellPortals} manager: a single React root shared by every cell
|
|
47
13
|
* renderer registered with it, with each cell rendered into its grid cell via a portal.
|
|
@@ -237,42 +203,6 @@ export declare function createReactRenderer(Component: ComponentType<RendererCon
|
|
|
237
203
|
wrapWithControlWrapper?: boolean;
|
|
238
204
|
}): RendererEntry;
|
|
239
205
|
|
|
240
|
-
/**
|
|
241
|
-
* Name of the logger the error boundaries log through. They log a caught error, followed by its
|
|
242
|
-
* reference ID, scope, title, tile registration and component stack, only when no `onError`
|
|
243
|
-
* 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
|
-
|
|
276
206
|
/**
|
|
277
207
|
* Shared portal manager for Grid Pro React cell renderers.
|
|
278
208
|
*
|
|
@@ -391,20 +321,6 @@ export declare interface GridProReactCellRenderer {
|
|
|
391
321
|
destroy(): void;
|
|
392
322
|
}
|
|
393
323
|
|
|
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`.
|
|
403
|
-
*
|
|
404
|
-
* @public
|
|
405
|
-
*/
|
|
406
|
-
export declare const onCaughtError: NonNullable<RootOptions['onCaughtError']>;
|
|
407
|
-
|
|
408
324
|
/**
|
|
409
325
|
* Creates a factory function for rendering React components in layout items.
|
|
410
326
|
*
|
|
@@ -455,35 +371,4 @@ export declare function reactFactoryWithProvider<CP = {}, WP = {}>(Component: Re
|
|
|
455
371
|
|
|
456
372
|
export { RendererControlProps }
|
|
457
373
|
|
|
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
|
-
|
|
489
374
|
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.
|
|
4
|
+
"version": "15.48.0",
|
|
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.
|
|
60
|
-
"@genesislcap/genx": "15.
|
|
61
|
-
"@genesislcap/ts-builder": "15.
|
|
62
|
-
"@genesislcap/uvu-playwright-builder": "15.
|
|
63
|
-
"@genesislcap/vite-builder": "15.
|
|
64
|
-
"@genesislcap/webpack-builder": "15.
|
|
59
|
+
"@genesislcap/foundation-testing": "15.48.0",
|
|
60
|
+
"@genesislcap/genx": "15.48.0",
|
|
61
|
+
"@genesislcap/ts-builder": "15.48.0",
|
|
62
|
+
"@genesislcap/uvu-playwright-builder": "15.48.0",
|
|
63
|
+
"@genesislcap/vite-builder": "15.48.0",
|
|
64
|
+
"@genesislcap/webpack-builder": "15.48.0",
|
|
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.
|
|
79
|
-
"@genesislcap/foundation-layout": "15.
|
|
80
|
-
"@genesislcap/foundation-logger": "15.
|
|
81
|
-
"@genesislcap/rapid-design-system": "15.
|
|
82
|
-
"@genesislcap/web-core": "15.
|
|
78
|
+
"@genesislcap/foundation-forms": "15.48.0",
|
|
79
|
+
"@genesislcap/foundation-layout": "15.48.0",
|
|
80
|
+
"@genesislcap/foundation-logger": "15.48.0",
|
|
81
|
+
"@genesislcap/rapid-design-system": "15.48.0",
|
|
82
|
+
"@genesislcap/web-core": "15.48.0",
|
|
83
83
|
"@jsonforms/core": "^3.2.1",
|
|
84
84
|
"@r2wc/core": "1.3.1",
|
|
85
85
|
"@r2wc/react-to-web-component": "^2.0.2",
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Fallback UI styles. Colours and fonts read `--eb-*` custom properties, so an app can theme the
|
|
3
|
-
* fallback by setting them on any ancestor.
|
|
4
|
-
*/
|
|
5
|
-
export declare const errorBoundaryStyles = "\n.error-boundary {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 12px;\n align-items: flex-start;\n width: 100%;\n height: 100%;\n padding: 16px;\n background: var(--eb-bg, #f6f8fb);\n color: var(--eb-text, #18212f);\n font-family: var(--eb-font, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif);\n}\n\n.error-boundary__top,\n.error-boundary__title,\n.error-boundary__subtitle,\n.error-boundary__details,\n.error-boundary__actions,\n.error-boundary__manual-copy-help {\n width: 100%;\n}\n\n.error-boundary__top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.error-boundary__status {\n display: inline-flex;\n align-items: center;\n border: 1px solid var(--eb-error, #c53d3d);\n border-radius: 999px;\n padding: 5px 10px;\n text-transform: uppercase;\n letter-spacing: 0.13em;\n font-size: 11px;\n font-weight: 700;\n color: var(--eb-error, #c53d3d);\n background: var(--eb-error-bg, #fff4f4);\n}\n\n.error-boundary__reference {\n font-family: var(--eb-mono-font, 'Menlo', 'Consolas', 'Liberation Mono', monospace);\n font-size: 11px;\n letter-spacing: 0.08em;\n color: var(--eb-text-muted, #5f6f84);\n text-transform: uppercase;\n}\n\n.error-boundary__title {\n margin: 0;\n font-size: clamp(22px, 3vw, 30px);\n line-height: 1.15;\n font-weight: 700;\n text-wrap: balance;\n}\n\n.error-boundary__subtitle {\n margin: 0;\n max-width: 80ch;\n line-height: 1.45;\n}\n\n.error-boundary__details {\n box-sizing: border-box;\n min-height: 190px;\n max-height: 360px;\n padding: 12px;\n border: 1px solid var(--eb-border, #d3dae6);\n border-radius: 10px;\n background: var(--eb-surface, #ffffff);\n color: inherit;\n font-family: var(--eb-mono-font, 'Menlo', 'Consolas', 'Liberation Mono', monospace);\n font-size: 12px;\n line-height: 1.5;\n resize: vertical;\n}\n\n.error-boundary__actions {\n display: flex;\n gap: 10px;\n flex-wrap: wrap;\n}\n\n.error-boundary__button {\n border: 1px solid var(--eb-accent, #2f6fed);\n border-radius: 999px;\n background: var(--eb-accent, #2f6fed);\n color: var(--eb-accent-foreground, #ffffff);\n cursor: pointer;\n padding: 9px 16px;\n font: inherit;\n font-size: 12px;\n font-weight: 700;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n}\n\n.error-boundary__button:hover {\n background: var(--eb-accent-hover, #255dcc);\n}\n\n.error-boundary__button--secondary {\n border-color: var(--eb-border, #d3dae6);\n background: var(--eb-surface, #ffffff);\n color: inherit;\n}\n\n.error-boundary__button--secondary:hover {\n background: var(--eb-surface-hover, #eef2f8);\n}\n\n.error-boundary__button:focus-visible {\n outline: 2px solid var(--eb-focus, #2f6fed);\n outline-offset: 2px;\n}\n\n.error-boundary__manual-copy-help {\n margin: 2px 0 0;\n font-size: 13px;\n color: var(--eb-text-muted, #5f6f84);\n line-height: 1.4;\n}\n";
|
|
6
|
-
//# sourceMappingURL=error-boundary-styles.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-boundary-styles.d.ts","sourceRoot":"","sources":["../../../src/error-boundary/error-boundary-styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,mBAAmB,o4FAgI/B,CAAC"}
|