@trinityui/design-system 2.3.1 → 2.10.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.
Files changed (172) hide show
  1. package/CHANGELOG.md +29 -454
  2. package/dist/{Legend.js → IllustratedMessage.js} +1247 -1204
  3. package/dist/app-shell.js +2138 -2055
  4. package/dist/assets/index.d.ts +1 -1
  5. package/dist/components/AI/InsightEngineInput.d.ts +10 -0
  6. package/dist/components/AI/InsightEngineInput.d.ts.map +1 -1
  7. package/dist/components/AI/QueryInput.d.ts +3 -3
  8. package/dist/components/AI/index.d.ts +1 -1
  9. package/dist/components/AI/index.d.ts.map +1 -1
  10. package/dist/components/AIDigestCard/AIDigestCard.d.ts +29 -0
  11. package/dist/components/AIDigestCard/AIDigestCard.d.ts.map +1 -0
  12. package/dist/components/AIDigestCard/index.d.ts +9 -0
  13. package/dist/components/AIDigestCard/index.d.ts.map +1 -0
  14. package/dist/components/AIDigestCard/types.d.ts +70 -0
  15. package/dist/components/AIDigestCard/types.d.ts.map +1 -0
  16. package/dist/components/AppLayout/AIFabLayout.deprecated.d.ts +1 -1
  17. package/dist/components/AssessmentDrawer/AssessmentDrawer.d.ts +23 -0
  18. package/dist/components/AssessmentDrawer/AssessmentDrawer.d.ts.map +1 -0
  19. package/dist/components/AssessmentDrawer/index.d.ts +9 -0
  20. package/dist/components/AssessmentDrawer/index.d.ts.map +1 -0
  21. package/dist/components/AssessmentDrawer/types.d.ts +88 -0
  22. package/dist/components/AssessmentDrawer/types.d.ts.map +1 -0
  23. package/dist/components/AuditDrawer/AuditDrawer.d.ts +37 -0
  24. package/dist/components/AuditDrawer/AuditDrawer.d.ts.map +1 -0
  25. package/dist/components/AuditDrawer/index.d.ts +9 -0
  26. package/dist/components/AuditDrawer/index.d.ts.map +1 -0
  27. package/dist/components/AuditDrawer/types.d.ts +116 -0
  28. package/dist/components/AuditDrawer/types.d.ts.map +1 -0
  29. package/dist/components/BulkActionDock/BulkActionDock.d.ts +30 -0
  30. package/dist/components/BulkActionDock/BulkActionDock.d.ts.map +1 -0
  31. package/dist/components/BulkActionDock/index.d.ts +9 -0
  32. package/dist/components/BulkActionDock/index.d.ts.map +1 -0
  33. package/dist/components/BulkActionDock/types.d.ts +71 -0
  34. package/dist/components/BulkActionDock/types.d.ts.map +1 -0
  35. package/dist/components/DateRangePicker/DateRangePicker.d.ts +20 -0
  36. package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +1 -0
  37. package/dist/components/DateRangePicker/index.d.ts +9 -0
  38. package/dist/components/DateRangePicker/index.d.ts.map +1 -0
  39. package/dist/components/DateRangePicker/types.d.ts +72 -0
  40. package/dist/components/DateRangePicker/types.d.ts.map +1 -0
  41. package/dist/components/EntityDetailPanel/EntityDetailPanel.d.ts +17 -0
  42. package/dist/components/EntityDetailPanel/EntityDetailPanel.d.ts.map +1 -0
  43. package/dist/components/EntityDetailPanel/index.d.ts +9 -0
  44. package/dist/components/EntityDetailPanel/index.d.ts.map +1 -0
  45. package/dist/components/EntityDetailPanel/types.d.ts +108 -0
  46. package/dist/components/EntityDetailPanel/types.d.ts.map +1 -0
  47. package/dist/components/GanttView/GanttView.d.ts +25 -0
  48. package/dist/components/GanttView/GanttView.d.ts.map +1 -0
  49. package/dist/components/GanttView/index.d.ts +9 -0
  50. package/dist/components/GanttView/index.d.ts.map +1 -0
  51. package/dist/components/GanttView/types.d.ts +110 -0
  52. package/dist/components/GanttView/types.d.ts.map +1 -0
  53. package/dist/components/GaugeCard/GaugeCard.d.ts +34 -0
  54. package/dist/components/GaugeCard/GaugeCard.d.ts.map +1 -0
  55. package/dist/components/GaugeCard/index.d.ts +9 -0
  56. package/dist/components/GaugeCard/index.d.ts.map +1 -0
  57. package/dist/components/GaugeCard/types.d.ts +85 -0
  58. package/dist/components/GaugeCard/types.d.ts.map +1 -0
  59. package/dist/components/GeoStatusMap/GeoStatusMap.d.ts +17 -0
  60. package/dist/components/GeoStatusMap/GeoStatusMap.d.ts.map +1 -0
  61. package/dist/components/GeoStatusMap/index.d.ts +9 -0
  62. package/dist/components/GeoStatusMap/index.d.ts.map +1 -0
  63. package/dist/components/GeoStatusMap/types.d.ts +117 -0
  64. package/dist/components/GeoStatusMap/types.d.ts.map +1 -0
  65. package/dist/components/HierarchicalDrillDown/HierarchicalDrillDown.d.ts +22 -0
  66. package/dist/components/HierarchicalDrillDown/HierarchicalDrillDown.d.ts.map +1 -0
  67. package/dist/components/HierarchicalDrillDown/index.d.ts +9 -0
  68. package/dist/components/HierarchicalDrillDown/index.d.ts.map +1 -0
  69. package/dist/components/HierarchicalDrillDown/types.d.ts +81 -0
  70. package/dist/components/HierarchicalDrillDown/types.d.ts.map +1 -0
  71. package/dist/components/HistoricalDataIndicator/HistoricalDataIndicator.d.ts +21 -0
  72. package/dist/components/HistoricalDataIndicator/HistoricalDataIndicator.d.ts.map +1 -0
  73. package/dist/components/HistoricalDataIndicator/index.d.ts +9 -0
  74. package/dist/components/HistoricalDataIndicator/index.d.ts.map +1 -0
  75. package/dist/components/HistoricalDataIndicator/types.d.ts +58 -0
  76. package/dist/components/HistoricalDataIndicator/types.d.ts.map +1 -0
  77. package/dist/components/InsightCard/InsightCard.d.ts +27 -0
  78. package/dist/components/InsightCard/InsightCard.d.ts.map +1 -0
  79. package/dist/components/InsightCard/index.d.ts +9 -0
  80. package/dist/components/InsightCard/index.d.ts.map +1 -0
  81. package/dist/components/InsightCard/types.d.ts +62 -0
  82. package/dist/components/InsightCard/types.d.ts.map +1 -0
  83. package/dist/components/NotificationCenter/NotificationCenter.d.ts +31 -0
  84. package/dist/components/NotificationCenter/NotificationCenter.d.ts.map +1 -0
  85. package/dist/components/NotificationCenter/index.d.ts +9 -0
  86. package/dist/components/NotificationCenter/index.d.ts.map +1 -0
  87. package/dist/components/NotificationCenter/types.d.ts +91 -0
  88. package/dist/components/NotificationCenter/types.d.ts.map +1 -0
  89. package/dist/components/OrgChart/OrgChart.d.ts +23 -0
  90. package/dist/components/OrgChart/OrgChart.d.ts.map +1 -0
  91. package/dist/components/OrgChart/index.d.ts +9 -0
  92. package/dist/components/OrgChart/index.d.ts.map +1 -0
  93. package/dist/components/OrgChart/types.d.ts +81 -0
  94. package/dist/components/OrgChart/types.d.ts.map +1 -0
  95. package/dist/components/PageTOC/PageTOC.d.ts +33 -0
  96. package/dist/components/PageTOC/PageTOC.d.ts.map +1 -0
  97. package/dist/components/PageTOC/index.d.ts +9 -0
  98. package/dist/components/PageTOC/index.d.ts.map +1 -0
  99. package/dist/components/PageTOC/types.d.ts +58 -0
  100. package/dist/components/PageTOC/types.d.ts.map +1 -0
  101. package/dist/components/StatusHero/StatusHero.d.ts +31 -0
  102. package/dist/components/StatusHero/StatusHero.d.ts.map +1 -0
  103. package/dist/components/StatusHero/index.d.ts +9 -0
  104. package/dist/components/StatusHero/index.d.ts.map +1 -0
  105. package/dist/components/StatusHero/types.d.ts +57 -0
  106. package/dist/components/StatusHero/types.d.ts.map +1 -0
  107. package/dist/components/SystemBanner/SystemBanner.d.ts +28 -0
  108. package/dist/components/SystemBanner/SystemBanner.d.ts.map +1 -0
  109. package/dist/components/SystemBanner/index.d.ts +9 -0
  110. package/dist/components/SystemBanner/index.d.ts.map +1 -0
  111. package/dist/components/SystemBanner/types.d.ts +58 -0
  112. package/dist/components/SystemBanner/types.d.ts.map +1 -0
  113. package/dist/components/TopRisksStrip/TopRisksStrip.d.ts +26 -0
  114. package/dist/components/TopRisksStrip/TopRisksStrip.d.ts.map +1 -0
  115. package/dist/components/TopRisksStrip/index.d.ts +9 -0
  116. package/dist/components/TopRisksStrip/index.d.ts.map +1 -0
  117. package/dist/components/TopRisksStrip/types.d.ts +61 -0
  118. package/dist/components/TopRisksStrip/types.d.ts.map +1 -0
  119. package/dist/components/templates/Auth/AuthTemplate.d.ts +28 -0
  120. package/dist/components/templates/Auth/AuthTemplate.d.ts.map +1 -0
  121. package/dist/components/templates/Auth/index.d.ts +3 -0
  122. package/dist/components/templates/Auth/index.d.ts.map +1 -0
  123. package/dist/components/templates/Auth/types.d.ts +67 -0
  124. package/dist/components/templates/Auth/types.d.ts.map +1 -0
  125. package/dist/components/templates/Catalog/CatalogTemplate.d.ts +19 -0
  126. package/dist/components/templates/Catalog/CatalogTemplate.d.ts.map +1 -0
  127. package/dist/components/templates/Catalog/index.d.ts +3 -0
  128. package/dist/components/templates/Catalog/index.d.ts.map +1 -0
  129. package/dist/components/templates/Catalog/types.d.ts +85 -0
  130. package/dist/components/templates/Catalog/types.d.ts.map +1 -0
  131. package/dist/components/templates/ConnectorWizard/ConnectorWizardTemplate.d.ts +83 -0
  132. package/dist/components/templates/ConnectorWizard/ConnectorWizardTemplate.d.ts.map +1 -0
  133. package/dist/components/templates/ConnectorWizard/index.d.ts +2 -0
  134. package/dist/components/templates/ConnectorWizard/index.d.ts.map +1 -0
  135. package/dist/components/templates/ErrorPage/ErrorPageTemplate.d.ts +53 -0
  136. package/dist/components/templates/ErrorPage/ErrorPageTemplate.d.ts.map +1 -0
  137. package/dist/components/templates/ErrorPage/index.d.ts +2 -0
  138. package/dist/components/templates/ErrorPage/index.d.ts.map +1 -0
  139. package/dist/components/templates/InsightsCenter/InsightsCenterTemplate.d.ts +64 -0
  140. package/dist/components/templates/InsightsCenter/InsightsCenterTemplate.d.ts.map +1 -0
  141. package/dist/components/templates/InsightsCenter/index.d.ts +2 -0
  142. package/dist/components/templates/InsightsCenter/index.d.ts.map +1 -0
  143. package/dist/components/templates/IntegrationDetail/IntegrationDetailTemplate.d.ts +60 -0
  144. package/dist/components/templates/IntegrationDetail/IntegrationDetailTemplate.d.ts.map +1 -0
  145. package/dist/components/templates/IntegrationDetail/index.d.ts +2 -0
  146. package/dist/components/templates/IntegrationDetail/index.d.ts.map +1 -0
  147. package/dist/components/templates/Onboarding/OnboardingTemplate.d.ts +63 -0
  148. package/dist/components/templates/Onboarding/OnboardingTemplate.d.ts.map +1 -0
  149. package/dist/components/templates/Onboarding/index.d.ts +2 -0
  150. package/dist/components/templates/Onboarding/index.d.ts.map +1 -0
  151. package/dist/components/templates/PlanHero/PlanHero.d.ts +20 -0
  152. package/dist/components/templates/PlanHero/PlanHero.d.ts.map +1 -0
  153. package/dist/components/templates/PlanHero/index.d.ts +3 -0
  154. package/dist/components/templates/PlanHero/index.d.ts.map +1 -0
  155. package/dist/components/templates/PlanHero/types.d.ts +69 -0
  156. package/dist/components/templates/PlanHero/types.d.ts.map +1 -0
  157. package/dist/components/templates/Report/ReportTemplate.d.ts +74 -0
  158. package/dist/components/templates/Report/ReportTemplate.d.ts.map +1 -0
  159. package/dist/components/templates/Report/index.d.ts +2 -0
  160. package/dist/components/templates/Report/index.d.ts.map +1 -0
  161. package/dist/components/templates/Wizard/WizardTemplate.d.ts +81 -0
  162. package/dist/components/templates/Wizard/WizardTemplate.d.ts.map +1 -0
  163. package/dist/components/templates/Wizard/index.d.ts +2 -0
  164. package/dist/components/templates/Wizard/index.d.ts.map +1 -0
  165. package/dist/components/templates/index.d.ts +10 -0
  166. package/dist/components/templates/index.d.ts.map +1 -1
  167. package/dist/essentials.js +1 -1
  168. package/dist/index.d.ts +37 -0
  169. package/dist/index.d.ts.map +1 -1
  170. package/dist/index.js +49113 -41408
  171. package/dist/trinity.css +1 -1
  172. package/package.json +11 -4
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @fileoverview Types for NotificationCenter — bell-button + popover surfacing
3
+ * recent notifications with read/unread + per-item actions.
4
+ */
5
+ import type { ReactNode } from 'react';
6
+ import type { SxProps, Theme, PopoverOrigin } from '@mui/material';
7
+ /**
8
+ * Severity / category of a single notification.
9
+ *
10
+ * Maps to MUI Alert's `severity` so styling matches Alert + InsightCard +
11
+ * StatusIndicator. Use `info` when no clear severity applies.
12
+ */
13
+ export type NotificationSeverity = 'info' | 'success' | 'warning' | 'error';
14
+ /**
15
+ * A single notification entry.
16
+ *
17
+ * Trinity convention: `id` should be globally unique within the surfacing
18
+ * window. The component does NOT mutate items — read/unread is reflected via
19
+ * `read` and toggled via the `onMarkAsRead` callback.
20
+ */
21
+ export interface NotificationItem {
22
+ /** Stable id. Used as React key and as the argument to all callbacks. */
23
+ id: string;
24
+ /** Short title shown in bold. */
25
+ title: string;
26
+ /** Optional body. Rendered as ReactNode so links / inline chips are OK. */
27
+ message?: ReactNode;
28
+ /** ISO timestamp or formatted string (e.g. "2 min ago"). Displayed muted. */
29
+ timestamp?: string | Date;
30
+ /** When true, no unread dot; entry renders in a quieter tone. */
31
+ read?: boolean;
32
+ /** Severity for left-edge color stripe + icon. Default `info`. */
33
+ severity?: NotificationSeverity;
34
+ /** Optional leading avatar / icon. */
35
+ avatar?: ReactNode;
36
+ /** Optional per-item actions rendered at the right. Keep to 1-2. */
37
+ actions?: ReactNode;
38
+ /** Optional click handler for the row itself (e.g. navigation). */
39
+ onClick?: (id: string) => void;
40
+ }
41
+ /**
42
+ * Props for NotificationCenter.
43
+ *
44
+ * The component owns:
45
+ * - the popover open/close state (uncontrolled by default, controllable via `open`)
46
+ * - unread count derivation from `notifications.filter(n => !n.read).length`
47
+ *
48
+ * The consumer owns:
49
+ * - notification data (always supplied via `notifications`)
50
+ * - read/unread state changes (via `onMarkAsRead` / `onMarkAllRead`)
51
+ *
52
+ * Mounting strategy: anchor the popover to the bell trigger via `anchorOrigin`
53
+ * and `transformOrigin`. Defaults open downward-right which suits app chrome.
54
+ */
55
+ export interface NotificationCenterProps {
56
+ /** Notifications to render, top-most first. */
57
+ notifications: NotificationItem[];
58
+ /** Called when a single row is marked read. */
59
+ onMarkAsRead?: (id: string) => void;
60
+ /** Called when "Mark all as read" is clicked. */
61
+ onMarkAllRead?: () => void;
62
+ /** Called when a row is dismissed (X button). */
63
+ onDismiss?: (id: string) => void;
64
+ /** Footer link / button (e.g. "View all"). */
65
+ footerAction?: ReactNode;
66
+ /** Header title. Default "Notifications". */
67
+ title?: string;
68
+ /** Trigger button accessible label. Default "Open notifications". */
69
+ triggerAriaLabel?: string;
70
+ /** Override the default empty state. */
71
+ emptyState?: ReactNode;
72
+ /** Maximum height of the popover content area. Default 480. */
73
+ maxHeight?: number;
74
+ /** Maximum count rendered in the badge. Default 99. */
75
+ badgeMax?: number;
76
+ /** Whether to show the unread badge dot when count is 0. Default false. */
77
+ showZeroBadge?: boolean;
78
+ /** Controlled open. Omit for self-managed. */
79
+ open?: boolean;
80
+ /** Called when open state changes (controlled mode helper). */
81
+ onOpenChange?: (open: boolean) => void;
82
+ /** Popover anchor origin. Default `{ vertical: 'bottom', horizontal: 'right' }`. */
83
+ anchorOrigin?: PopoverOrigin;
84
+ /** Popover transform origin. Default `{ vertical: 'top', horizontal: 'right' }`. */
85
+ transformOrigin?: PopoverOrigin;
86
+ /** sx for the trigger button. */
87
+ triggerSx?: SxProps<Theme>;
88
+ /** sx for the popover paper. */
89
+ paperSx?: SxProps<Theme>;
90
+ }
91
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/NotificationCenter/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,sCAAsC;IACtC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mEAAmE;IACnE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,+CAA+C;IAC/C,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iDAAiD;IACjD,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wCAAwC;IACxC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+DAA+D;IAC/D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,oFAAoF;IACpF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,oFAAoF;IACpF,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CAC1B"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @fileoverview OrgChart — top-down tree visualization with boxes connected
3
+ * by lines.
4
+ *
5
+ * Layout: `d3-hierarchy.tree()` for stable per-level positioning that handles
6
+ * uneven subtree sizes well (each level's nodes are guaranteed to fit without
7
+ * overlap). The output is rendered into a single SVG so connectors stay
8
+ * aligned with their endpoints during scroll, zoom, and animation.
9
+ *
10
+ * Connector style: orthogonal "elbows" (vertical drop from parent → horizontal
11
+ * cross → vertical rise to child). This is the convention for org charts;
12
+ * curved connectors are easier on the eye for genealogy trees but less
13
+ * legible for org reporting structures.
14
+ *
15
+ * @module components/OrgChart
16
+ */
17
+ import * as React from 'react';
18
+ import type { OrgChartProps } from './types';
19
+ export declare const OrgChart: <TMeta>(props: OrgChartProps<TMeta> & {
20
+ ref?: React.Ref<HTMLDivElement>;
21
+ }) => React.ReactElement;
22
+ export default OrgChart;
23
+ //# sourceMappingURL=OrgChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrgChart.d.ts","sourceRoot":"","sources":["../../../src/components/OrgChart/OrgChart.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,SAAS,CAAC;AAuQjB,eAAO,MAAM,QAAQ,EA2Lf,CAAC,KAAK,EACV,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;CAAE,KAC9D,KAAK,CAAC,YAAY,CAAC;AAExB,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @internal
3
+ * OrgChart barrel.
4
+ *
5
+ * PUBLIC API: Import from '@trinityui/design-system' instead.
6
+ */
7
+ export { OrgChart, default as OrgChartDefault } from './OrgChart';
8
+ export type { OrgChartProps, OrgChartOrientation, OrgNode, } from './types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/OrgChart/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,OAAO,GACR,MAAM,SAAS,CAAC"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @fileoverview Types for OrgChart — top-down tree visualization with boxes
3
+ * connected by lines.
4
+ */
5
+ import type { ReactNode } from 'react';
6
+ import type { SxProps, Theme } from '@mui/material';
7
+ /**
8
+ * A single node in the org tree.
9
+ *
10
+ * Trinity convention: keep node payload minimal — only what's needed to
11
+ * render the box. Long-form data should be loaded separately when a node is
12
+ * selected (typically into an `EntityDetailPanel`).
13
+ *
14
+ * For deeper trees, set `collapsed: true` on intermediate nodes to render
15
+ * a "+N more" chevron rather than expanding the full subtree.
16
+ */
17
+ export interface OrgNode<TMeta = unknown> {
18
+ /** Stable id for React keys + selection. */
19
+ id: string;
20
+ /** Primary label (e.g. person name). */
21
+ title: ReactNode;
22
+ /** Secondary label (e.g. role / title). */
23
+ subtitle?: ReactNode;
24
+ /** Optional avatar — image URL or rendered ReactNode. */
25
+ avatar?: ReactNode;
26
+ /** Optional severity dot in the top-right (drives theme palette color). */
27
+ severity?: 'success' | 'warning' | 'error' | 'info' | 'neutral';
28
+ /** Optional badge chip (e.g. department). */
29
+ badge?: ReactNode;
30
+ /** Optional sub-tree. */
31
+ children?: ReadonlyArray<OrgNode<TMeta>>;
32
+ /** When true, sub-tree is collapsed and rendered as a "+N more" expander. */
33
+ collapsed?: boolean;
34
+ /** Optional consumer-defined payload. */
35
+ meta?: TMeta;
36
+ }
37
+ /**
38
+ * Layout orientation.
39
+ *
40
+ * - `vertical` (default) — parent on top, children below
41
+ * - `horizontal` — parent on left, children to the right (good for deep trees)
42
+ */
43
+ export type OrgChartOrientation = 'vertical' | 'horizontal';
44
+ /**
45
+ * Props for OrgChart.
46
+ *
47
+ * The component uses `d3-hierarchy.tree()` for tree layout. The result is
48
+ * rendered into a single SVG so connectors stay aligned during zoom/pan and
49
+ * during animations.
50
+ */
51
+ export interface OrgChartProps<TMeta = unknown> {
52
+ /** Root node — the top of the tree. */
53
+ root: OrgNode<TMeta>;
54
+ /** Currently selected node id. */
55
+ selectedId?: string;
56
+ /** Called when a node is clicked. */
57
+ onSelect?: (node: OrgNode<TMeta>) => void;
58
+ /** Called when a collapsed expander is clicked. */
59
+ onExpand?: (node: OrgNode<TMeta>) => void;
60
+ /** Orientation. Default `vertical`. */
61
+ orientation?: OrgChartOrientation;
62
+ /** Width per node box. Default 200. */
63
+ nodeWidth?: number;
64
+ /** Height per node box. Default 96. */
65
+ nodeHeight?: number;
66
+ /** Horizontal gap between siblings. Default 24. */
67
+ siblingGap?: number;
68
+ /** Vertical gap between levels. Default 48. */
69
+ levelGap?: number;
70
+ /** Render a custom node body instead of the default avatar+title+subtitle. */
71
+ renderNode?: (node: OrgNode<TMeta>, isSelected: boolean) => ReactNode;
72
+ /** Optional background color for the canvas. Default semantic background.secondary. */
73
+ canvasBackground?: string;
74
+ /** Maximum visible height before vertical scroll engages. Default 600. */
75
+ maxHeight?: number | string;
76
+ /** sx for the root container. */
77
+ sx?: SxProps<Theme>;
78
+ /** Accessible label override. Default "Organization chart". */
79
+ ariaLabel?: string;
80
+ }
81
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/OrgChart/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO,CAAC,KAAK,GAAG,OAAO;IACtC,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,KAAK,EAAE,SAAS,CAAC;IACjB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,yDAAyD;IACzD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAChE,6CAA6C;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,IAAI,CAAC,EAAE,KAAK,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,OAAO;IAC5C,uCAAuC;IACvC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACrB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC1C,mDAAmD;IACnD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IAC1C,uCAAuC;IACvC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS,CAAC;IACtE,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,iCAAiC;IACjC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @fileoverview PageTOC — sticky right-rail table of contents with scroll-spy.
3
+ *
4
+ * Renders a vertical list of section anchors with progressive indent for
5
+ * nested levels. Automatically tracks the active section based on viewport
6
+ * intersection (overridable via `activeId`).
7
+ *
8
+ * Active indicator: 2px brand-color left border + bolder text. Smooth scroll
9
+ * to anchor on click, with `scroll-margin-top` honored via `scrollOffset`.
10
+ *
11
+ * @module components/PageTOC
12
+ * @example
13
+ * ```tsx
14
+ * import { PageTOC } from '@trinityui/design-system';
15
+ *
16
+ * <PageTOC
17
+ * entries={[
18
+ * { id: 'overview', label: 'Overview', href: '#overview' },
19
+ * { id: 'design', label: 'Study design', href: '#design',
20
+ * children: [
21
+ * { id: 'endpoints', label: 'Endpoints', href: '#endpoints' },
22
+ * { id: 'population', label: 'Population', href: '#population' },
23
+ * ],
24
+ * },
25
+ * ]}
26
+ * />
27
+ * ```
28
+ */
29
+ import * as React from 'react';
30
+ import type { PageTOCProps } from './types';
31
+ export declare const PageTOC: React.ForwardRefExoticComponent<PageTOCProps & React.RefAttributes<HTMLElement>>;
32
+ export default PageTOC;
33
+ //# sourceMappingURL=PageTOC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageTOC.d.ts","sourceRoot":"","sources":["../../../src/components/PageTOC/PageTOC.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AA4I1D,eAAO,MAAM,OAAO,kFA6InB,CAAC;AAeF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @internal
3
+ * PageTOC barrel.
4
+ *
5
+ * PUBLIC API: Import from '@trinityui/design-system' instead.
6
+ */
7
+ export { PageTOC, default as PageTOCDefault } from './PageTOC';
8
+ export type { PageTOCProps, PageTOCEntry } from './types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PageTOC/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AAE/D,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @fileoverview Types for PageTOC — sticky right-rail table of contents with
3
+ * section anchors and scroll-spy active state.
4
+ */
5
+ import type { ReactNode } from 'react';
6
+ import type { SxProps, Theme } from '@mui/material';
7
+ /**
8
+ * A single TOC entry.
9
+ *
10
+ * Entries can nest up to 3 levels via `children`. Deeper nesting starts to
11
+ * compete with the page itself for attention — prefer flattening.
12
+ *
13
+ * `href` should be a fragment id of the actual heading on the page (e.g.
14
+ * `#study-design`). The component does NOT auto-derive ids — supply them.
15
+ */
16
+ export interface PageTOCEntry {
17
+ /** Stable id. Used as React key and as the scroll-target via querySelector. */
18
+ id: string;
19
+ /** Display label. Plain text or ReactNode (sparingly — keep these terse). */
20
+ label: ReactNode;
21
+ /** Fragment href, e.g. `#study-design`. */
22
+ href: string;
23
+ /** Optional severity dot indicator (e.g. surfacing draft / issue counts). */
24
+ badge?: ReactNode;
25
+ /** Nested entries. Render with progressive indent. */
26
+ children?: PageTOCEntry[];
27
+ }
28
+ /**
29
+ * Props for PageTOC.
30
+ *
31
+ * Scroll-spy: when `activeId` is omitted, the component auto-derives the active
32
+ * entry from scroll position using IntersectionObserver. Supply `activeId`
33
+ * (and update it from your own scroll listener) when you need stronger control,
34
+ * e.g. for URL hash sync.
35
+ */
36
+ export interface PageTOCProps {
37
+ /** TOC entries to render. Top-level array becomes flat list at level 0. */
38
+ entries: ReadonlyArray<PageTOCEntry>;
39
+ /** Optional title shown above the list. Default `"On this page"`. */
40
+ title?: string;
41
+ /** Controlled active id. Omit for auto scroll-spy. */
42
+ activeId?: string;
43
+ /** Called when the user clicks an entry. Default behavior scrolls to the anchor. */
44
+ onSelect?: (id: string, href: string) => void;
45
+ /** Footer slot — typically a "Back to top" link or last-modified caption. */
46
+ footer?: ReactNode;
47
+ /** When true, omits scroll-spy entirely (e.g. for static documentation pages). */
48
+ disableScrollSpy?: boolean;
49
+ /** Maximum visible height before the list scrolls internally. Default 70vh. */
50
+ maxHeight?: string | number;
51
+ /** Top offset for scroll-spy + scrollIntoView (account for sticky header). Default 80. */
52
+ scrollOffset?: number;
53
+ /** sx for the root container. */
54
+ sx?: SxProps<Theme>;
55
+ /** Accessible label override. Falls back to the title. */
56
+ ariaLabel?: string;
57
+ }
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/PageTOC/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,KAAK,EAAE,SAAS,CAAC;IACjB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,OAAO,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrC,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,6EAA6E;IAC7E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @fileoverview StatusHero — large dashboard hero showing aggregate system / program health.
3
+ *
4
+ * Pure composition over `IconIndicator` (from StatusIndicator), `getStatusConfig`
5
+ * (to derive the default label), and the active MUI theme. No parallel severity
6
+ * rendering — anything color-related comes from `theme.palette.*` so light/dark
7
+ * mode and Trinity overrides flow through.
8
+ *
9
+ * @module components/StatusHero
10
+ * @example
11
+ * ```tsx
12
+ * import { StatusHero } from '@trinityui/design-system';
13
+ *
14
+ * <StatusHero
15
+ * status="success"
16
+ * title="All systems operational"
17
+ * description="No degraded services in the last 24 hours."
18
+ * breakdown={[
19
+ * { status: 'success', count: 84, label: 'Healthy' },
20
+ * { status: 'warning', count: 2, label: 'Degraded' },
21
+ * { status: 'error', count: 0, label: 'Down' },
22
+ * ]}
23
+ * updatedLabel="Updated 2m ago"
24
+ * />
25
+ * ```
26
+ */
27
+ import * as React from 'react';
28
+ import type { StatusHeroProps } from './types';
29
+ export declare const StatusHero: React.ForwardRefExoticComponent<StatusHeroProps & React.RefAttributes<HTMLDivElement>>;
30
+ export default StatusHero;
31
+ //# sourceMappingURL=StatusHero.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusHero.d.ts","sourceRoot":"","sources":["../../../src/components/StatusHero/StatusHero.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAiB/C,eAAO,MAAM,UAAU,wFA6MtB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @internal
3
+ * StatusHero barrel.
4
+ *
5
+ * PUBLIC API: Import from '@trinityui/design-system' instead.
6
+ */
7
+ export { StatusHero, default as StatusHeroDefault } from './StatusHero';
8
+ export type { StatusHeroProps, StatusBreakdownItem, StatusHeroVariant, } from './types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/StatusHero/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAExE,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @fileoverview Types for StatusHero — large dashboard hero showing aggregate health.
3
+ */
4
+ import type { ReactNode } from 'react';
5
+ import type { SxProps, Theme } from '@mui/material';
6
+ import type { StatusType } from '../StatusIndicator';
7
+ /**
8
+ * A single status breakdown row shown in the hero.
9
+ *
10
+ * Example: `{ status: 'success', count: 84, label: 'Healthy sites' }`.
11
+ */
12
+ export interface StatusBreakdownItem {
13
+ /** Reuses the canonical `StatusType` from StatusIndicator so colors + icons match. */
14
+ status: StatusType;
15
+ /** Display count or percentage. */
16
+ count: number | string;
17
+ /** Optional override label. Defaults to the StatusType's default label. */
18
+ label?: string;
19
+ }
20
+ /**
21
+ * Visual emphasis.
22
+ *
23
+ * - `solid` — uses the active palette tone as a filled hero background; best
24
+ * when the hero is the only large surface on the page
25
+ * - `subtle` (default) — a tinted card that sits inside an existing dashboard
26
+ * grid without overwhelming the rest of the page
27
+ */
28
+ export type StatusHeroVariant = 'solid' | 'subtle';
29
+ /**
30
+ * Props for StatusHero.
31
+ *
32
+ * Composition over `IconIndicator`, `Typography`, and `StatusBreakdownItem`s —
33
+ * no parallel color rendering. Severity colors flow from the active MUI theme.
34
+ */
35
+ export interface StatusHeroProps {
36
+ /** Overall aggregate status — drives the headline icon, color, and label. */
37
+ status: StatusType;
38
+ /** Short headline (e.g. "All systems operational"). */
39
+ title: string;
40
+ /** Optional supporting body text. */
41
+ description?: string;
42
+ /** Optional eyebrow above the title. */
43
+ eyebrow?: string;
44
+ /** Optional breakdown rows shown beside the headline. */
45
+ breakdown?: StatusBreakdownItem[];
46
+ /** Visual variant. Default `subtle`. */
47
+ variant?: StatusHeroVariant;
48
+ /** Right-side slot for primary actions. */
49
+ actions?: ReactNode;
50
+ /** Optional last-updated label rendered at the bottom right (e.g. "Updated 2m ago"). */
51
+ updatedLabel?: string;
52
+ /** sx overrides for the root surface. */
53
+ sx?: SxProps<Theme>;
54
+ /** Accessible label override for the hero. */
55
+ ariaLabel?: string;
56
+ }
57
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/StatusHero/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,sFAAsF;IACtF,MAAM,EAAE,UAAU,CAAC;IACnB,mCAAmC;IACnC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,MAAM,EAAE,UAAU,CAAC;IACnB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,wCAAwC;IACxC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview SystemBanner — page-top global announcement banner.
3
+ *
4
+ * Wraps MUI Alert with sticky / fixed positioning + optional dismissal
5
+ * persistence via `localStorage`. Severity colors come from `theme.palette`
6
+ * so the banner matches every other status surface (Alert, InsightCard,
7
+ * StatusIndicator).
8
+ *
9
+ * @module components/SystemBanner
10
+ * @example
11
+ * ```tsx
12
+ * import { SystemBanner } from '@trinityui/design-system';
13
+ *
14
+ * <SystemBanner
15
+ * severity="warning"
16
+ * title="Scheduled maintenance"
17
+ * action={<Button size="small">Learn more</Button>}
18
+ * storageKey="banner.maintenance-2026-q4"
19
+ * >
20
+ * Read-only mode for 15 minutes starting 23:00 UTC tonight.
21
+ * </SystemBanner>
22
+ * ```
23
+ */
24
+ import * as React from 'react';
25
+ import type { SystemBannerProps } from './types';
26
+ export declare const SystemBanner: React.ForwardRefExoticComponent<SystemBannerProps & React.RefAttributes<HTMLDivElement>>;
27
+ export default SystemBanner;
28
+ //# sourceMappingURL=SystemBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemBanner.d.ts","sourceRoot":"","sources":["../../../src/components/SystemBanner/SystemBanner.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,SAAS,CAAC;AAwDvE,eAAO,MAAM,YAAY,0FA+ExB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @internal
3
+ * SystemBanner barrel.
4
+ *
5
+ * PUBLIC API: Import from '@trinityui/design-system' instead.
6
+ */
7
+ export { SystemBanner, default as SystemBannerDefault } from './SystemBanner';
8
+ export type { SystemBannerProps, SystemBannerSeverity, SystemBannerPosition, } from './types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SystemBanner/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE9E,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @fileoverview Types for SystemBanner — page-top global announcement banner.
3
+ */
4
+ import type { ReactNode } from 'react';
5
+ import type { AlertColor, SxProps, Theme } from '@mui/material';
6
+ /**
7
+ * Severity / intent of the banner.
8
+ *
9
+ * Maps directly to MUI Alert's `severity` so styling stays consistent with
10
+ * every other status surface (`Alert`, `InsightCard`, `StatusIndicator`).
11
+ */
12
+ export type SystemBannerSeverity = AlertColor;
13
+ /**
14
+ * Where the banner is anchored.
15
+ *
16
+ * - `sticky` — scrolls with the page but pins to the top edge until dismissed
17
+ * - `fixed` — overlays the viewport top edge, doesn't scroll
18
+ * - `static` — sits inline in document flow (use inside non-chrome contexts)
19
+ */
20
+ export type SystemBannerPosition = 'sticky' | 'fixed' | 'static';
21
+ /**
22
+ * Props for SystemBanner.
23
+ *
24
+ * Wraps MUI Alert with:
25
+ * - page-top positioning (sticky / fixed / static)
26
+ * - dismissal persistence via `localStorage` keyed by `storageKey`
27
+ * - explicit action slot (the Alert's `action` prop is repurposed for the
28
+ * close button so we expose a dedicated `action` slot here)
29
+ */
30
+ export interface SystemBannerProps {
31
+ /** Severity. Drives Alert color + icon. Default `info`. */
32
+ severity?: SystemBannerSeverity;
33
+ /** Banner message body. Plain text or any ReactNode. */
34
+ children: ReactNode;
35
+ /** Optional bold title shown above the body. */
36
+ title?: string;
37
+ /** Action slot — typically a Link or short Button (e.g. "Learn more"). */
38
+ action?: ReactNode;
39
+ /** Where to anchor the banner. Default `sticky`. */
40
+ position?: SystemBannerPosition;
41
+ /**
42
+ * If provided, the dismissed state is persisted to `localStorage` under
43
+ * this key. Use a stable, version-suffixed key so re-announced incidents
44
+ * surface again (e.g. `'trinity.banner.maintenance-2026-q4'`).
45
+ */
46
+ storageKey?: string;
47
+ /** Whether the banner can be dismissed. Default `true`. */
48
+ dismissible?: boolean;
49
+ /** Called when the dismiss button is clicked, after persistence. */
50
+ onDismiss?: () => void;
51
+ /** Controlled open state. When omitted, the banner self-manages. */
52
+ open?: boolean;
53
+ /** Optional sx overrides for the root container. */
54
+ sx?: SxProps<Theme>;
55
+ /** Accessible label override. Falls back to `${severity} announcement`. */
56
+ ariaLabel?: string;
57
+ }
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/SystemBanner/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjE;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,wDAAwD;IACxD,QAAQ,EAAE,SAAS,CAAC;IACpB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oEAAoE;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @fileoverview TopRisksStrip — horizontal strip of priority `InsightCard`s.
3
+ *
4
+ * Pure composition over `InsightCard` — no parallel severity rendering. The
5
+ * strip just handles layout (scroll vs. grid), optional title, and an empty
6
+ * state slot.
7
+ *
8
+ * @module components/TopRisksStrip
9
+ * @example
10
+ * ```tsx
11
+ * import { TopRisksStrip } from '@trinityui/design-system';
12
+ *
13
+ * <TopRisksStrip
14
+ * title="Top risks this week"
15
+ * items={[
16
+ * { id: '1', severity: 'high', title: '3 sites missed SLA' },
17
+ * { id: '2', severity: 'medium', title: 'Onboarding dropped 7%' },
18
+ * ]}
19
+ * />
20
+ * ```
21
+ */
22
+ import * as React from 'react';
23
+ import type { TopRisksStripProps } from './types';
24
+ export declare const TopRisksStrip: React.ForwardRefExoticComponent<TopRisksStripProps & React.RefAttributes<HTMLDivElement>>;
25
+ export default TopRisksStrip;
26
+ //# sourceMappingURL=TopRisksStrip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopRisksStrip.d.ts","sourceRoot":"","sources":["../../../src/components/TopRisksStrip/TopRisksStrip.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,aAAa,2FA0HzB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @internal
3
+ * TopRisksStrip barrel.
4
+ *
5
+ * PUBLIC API: Import from '@trinityui/design-system' instead.
6
+ */
7
+ export { TopRisksStrip, default as TopRisksStripDefault, } from './TopRisksStrip';
8
+ export type { TopRisksStripProps, TopRiskItem, TopRisksLayout, } from './types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TopRisksStrip/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,OAAO,IAAI,oBAAoB,GAChC,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,cAAc,GACf,MAAM,SAAS,CAAC"}