@trinityui/design-system 2.11.1 → 2.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2171 -0
- package/CONTRIBUTING.md +180 -69
- package/LICENSE +21 -0
- package/MIGRATION.md +508 -28
- package/README.md +281 -120
- package/dist/IllustratedMessage.js +546 -1341
- package/dist/accessibility.d.ts +596 -18
- package/dist/accessibility.d.ts.map +1 -1
- package/dist/accessibility.js +458 -0
- package/dist/app-shell.js +17219 -9131
- package/dist/assets/index.d.ts +1 -1
- package/dist/charts.js +8507 -6059
- package/dist/color-contrast.d.ts +35 -0
- package/dist/color-contrast.d.ts.map +1 -0
- package/dist/commonjs-helpers.js +8 -0
- package/dist/component-color-references.d.ts +175 -0
- package/dist/component-color-references.d.ts.map +1 -0
- package/dist/components/AI/AIActions.d.ts +72 -12
- package/dist/components/AI/AIActions.d.ts.map +1 -1
- package/dist/components/AI/AIAvatar.d.ts +31 -3
- package/dist/components/AI/AIAvatar.d.ts.map +1 -1
- package/dist/components/AI/AIChainOfThought.d.ts +159 -77
- package/dist/components/AI/AIChainOfThought.d.ts.map +1 -1
- package/dist/components/AI/AIChainOfThought.types.d.ts +292 -40
- package/dist/components/AI/AIChainOfThought.types.d.ts.map +1 -1
- package/dist/components/AI/AIChainOfThought.utils.d.ts +25 -7
- package/dist/components/AI/AIChainOfThought.utils.d.ts.map +1 -1
- package/dist/components/AI/AIChat.d.ts +12 -0
- package/dist/components/AI/AIChat.d.ts.map +1 -1
- package/dist/components/AI/AIChatWelcome.d.ts +254 -0
- package/dist/components/AI/AIChatWelcome.d.ts.map +1 -0
- package/dist/components/AI/AIClarificationPrompt.d.ts +134 -0
- package/dist/components/AI/AIClarificationPrompt.d.ts.map +1 -0
- package/dist/components/AI/AIConfidenceBadge.d.ts +117 -0
- package/dist/components/AI/AIConfidenceBadge.d.ts.map +1 -0
- package/dist/components/AI/AIConfigContext.d.ts +100 -0
- package/dist/components/AI/AIConfigContext.d.ts.map +1 -0
- package/dist/components/AI/AIConfigProvider.d.ts +66 -0
- package/dist/components/AI/AIConfigProvider.d.ts.map +1 -0
- package/dist/components/AI/AIContainer.d.ts +80 -11
- package/dist/components/AI/AIContainer.d.ts.map +1 -1
- package/dist/components/AI/AIExplainability.d.ts +39 -5
- package/dist/components/AI/AIExplainability.d.ts.map +1 -1
- package/dist/components/AI/AIFeedbackControl.d.ts +113 -0
- package/dist/components/AI/AIFeedbackControl.d.ts.map +1 -0
- package/dist/components/AI/AIFeedbackForm.d.ts +117 -0
- package/dist/components/AI/AIFeedbackForm.d.ts.map +1 -0
- package/dist/components/AI/AIFeedbackHostContext.d.ts +16 -0
- package/dist/components/AI/AIFeedbackHostContext.d.ts.map +1 -0
- package/dist/components/AI/AILabel.d.ts +39 -6
- package/dist/components/AI/AILabel.d.ts.map +1 -1
- package/dist/components/AI/AIMessage.d.ts +337 -42
- package/dist/components/AI/AIMessage.d.ts.map +1 -1
- package/dist/components/AI/AIPlanReview.d.ts +194 -0
- package/dist/components/AI/AIPlanReview.d.ts.map +1 -0
- package/dist/components/AI/AIQueryDisclosure.d.ts +119 -0
- package/dist/components/AI/AIQueryDisclosure.d.ts.map +1 -0
- package/dist/components/AI/AIRelatedQuestions.d.ts +50 -11
- package/dist/components/AI/AIRelatedQuestions.d.ts.map +1 -1
- package/dist/components/AI/AIResponseRenderer.d.ts +133 -21
- package/dist/components/AI/AIResponseRenderer.d.ts.map +1 -1
- package/dist/components/AI/AIResponseSourcesContext.d.ts +83 -0
- package/dist/components/AI/AIResponseSourcesContext.d.ts.map +1 -0
- package/dist/components/AI/AIReviewItem.d.ts +142 -0
- package/dist/components/AI/AIReviewItem.d.ts.map +1 -0
- package/dist/components/AI/AISourceChip.d.ts +135 -0
- package/dist/components/AI/AISourceChip.d.ts.map +1 -0
- package/dist/components/AI/AISources.d.ts +81 -11
- package/dist/components/AI/AISources.d.ts.map +1 -1
- package/dist/components/AI/AISourcesPanel.d.ts +43 -7
- package/dist/components/AI/AISourcesPanel.d.ts.map +1 -1
- package/dist/components/AI/AITextBlock.d.ts +104 -16
- package/dist/components/AI/AITextBlock.d.ts.map +1 -1
- package/dist/components/AI/AITextBlock.parser.d.ts +153 -0
- package/dist/components/AI/AITextBlock.parser.d.ts.map +1 -0
- package/dist/components/AI/AIVerificationBadge.d.ts +94 -0
- package/dist/components/AI/AIVerificationBadge.d.ts.map +1 -0
- package/dist/components/AI/AIVisuals.d.ts +92 -23
- package/dist/components/AI/AIVisuals.d.ts.map +1 -1
- package/dist/components/AI/AIVoiceInput.d.ts +42 -11
- package/dist/components/AI/AIVoiceInput.d.ts.map +1 -1
- package/dist/components/AI/AIVoiceMode.d.ts +16 -2
- package/dist/components/AI/AIVoiceMode.d.ts.map +1 -1
- package/dist/components/AI/BlockErrorBoundary.d.ts +77 -0
- package/dist/components/AI/BlockErrorBoundary.d.ts.map +1 -0
- package/dist/components/AI/ChatHeader.d.ts +41 -4
- package/dist/components/AI/ChatHeader.d.ts.map +1 -1
- package/dist/components/AI/ChatHistoryList.d.ts +25 -12
- package/dist/components/AI/ChatHistoryList.d.ts.map +1 -1
- package/dist/components/AI/ChatThread.d.ts +263 -13
- package/dist/components/AI/ChatThread.d.ts.map +1 -1
- package/dist/components/AI/InThreadContext.d.ts +14 -0
- package/dist/components/AI/InThreadContext.d.ts.map +1 -0
- package/dist/components/AI/InsightEngine.d.ts +270 -46
- package/dist/components/AI/InsightEngine.d.ts.map +1 -1
- package/dist/components/AI/InsightEngineInput.d.ts +47 -4
- package/dist/components/AI/InsightEngineInput.d.ts.map +1 -1
- package/dist/components/AI/MessageActionButton.d.ts +72 -0
- package/dist/components/AI/MessageActionButton.d.ts.map +1 -0
- package/dist/components/AI/QueryInput.d.ts.map +1 -1
- package/dist/components/AI/UserAvatar.d.ts +50 -4
- package/dist/components/AI/UserAvatar.d.ts.map +1 -1
- package/dist/components/AI/UserMessage.d.ts +32 -3
- package/dist/components/AI/UserMessage.d.ts.map +1 -1
- package/dist/components/AI/blockRendererContext.d.ts +64 -0
- package/dist/components/AI/blockRendererContext.d.ts.map +1 -0
- package/dist/components/AI/hitlBlockRenderers.d.ts +48 -0
- package/dist/components/AI/hitlBlockRenderers.d.ts.map +1 -0
- package/dist/components/AI/index.d.ts +23 -6
- package/dist/components/AI/index.d.ts.map +1 -1
- package/dist/components/AI/moleculeBlockRenderers.d.ts +15 -0
- package/dist/components/AI/moleculeBlockRenderers.d.ts.map +1 -0
- package/dist/components/AI/planReviewBlockRenderer.d.ts +8 -0
- package/dist/components/AI/planReviewBlockRenderer.d.ts.map +1 -0
- package/dist/components/AI/strings/defaults.d.ts +31 -0
- package/dist/components/AI/strings/defaults.d.ts.map +1 -0
- package/dist/components/AI/tokens.d.ts +185 -20
- package/dist/components/AI/tokens.d.ts.map +1 -1
- package/dist/components/AI/types/hitl.d.ts +2294 -0
- package/dist/components/AI/types/hitl.d.ts.map +1 -0
- package/dist/components/AI/types/index.d.ts +2 -1
- package/dist/components/AI/types/index.d.ts.map +1 -1
- package/dist/components/AI/types/response.d.ts +428 -40
- package/dist/components/AI/types/response.d.ts.map +1 -1
- package/dist/components/AI/useBlockSources.d.ts +67 -0
- package/dist/components/AI/useBlockSources.d.ts.map +1 -0
- package/dist/components/AI/useBrowserVoiceMode.d.ts +31 -2
- package/dist/components/AI/useBrowserVoiceMode.d.ts.map +1 -1
- package/dist/components/AI/useWelcomeComposerHandoff.d.ts +30 -0
- package/dist/components/AI/useWelcomeComposerHandoff.d.ts.map +1 -0
- package/dist/components/AI/utils/alphaIndex.d.ts +19 -0
- package/dist/components/AI/utils/alphaIndex.d.ts.map +1 -0
- package/dist/components/AI/utils/blockReady.d.ts +54 -0
- package/dist/components/AI/utils/blockReady.d.ts.map +1 -0
- package/dist/components/AI/utils/blocks.d.ts +28 -0
- package/dist/components/AI/utils/blocks.d.ts.map +1 -0
- package/dist/components/AI/utils/confidence.d.ts +182 -0
- package/dist/components/AI/utils/confidence.d.ts.map +1 -0
- package/dist/components/AI/utils/filters.d.ts +31 -0
- package/dist/components/AI/utils/filters.d.ts.map +1 -0
- package/dist/components/AI/utils/responseText.d.ts +8 -0
- package/dist/components/AI/utils/responseText.d.ts.map +1 -0
- package/dist/components/AI/utils/sources.d.ts +110 -0
- package/dist/components/AI/utils/sources.d.ts.map +1 -0
- package/dist/components/AIDigestCard/AIDigestCard.d.ts.map +1 -1
- package/dist/components/AIDigestCard/types.d.ts +42 -5
- package/dist/components/AIDigestCard/types.d.ts.map +1 -1
- package/dist/components/AppLayout/AIFab.d.ts +33 -6
- package/dist/components/AppLayout/AIFab.d.ts.map +1 -1
- package/dist/components/AppLayout/AIFabLayout.deprecated.d.ts.map +1 -1
- package/dist/components/AppLayout/AppLayout.d.ts +143 -8
- package/dist/components/AppLayout/AppLayout.d.ts.map +1 -1
- package/dist/components/AppLayout/InsightEnginePanel.d.ts +315 -21
- package/dist/components/AppLayout/InsightEnginePanel.d.ts.map +1 -1
- package/dist/components/AppLayout/ResizablePanel.d.ts +145 -8
- package/dist/components/AppLayout/ResizablePanel.d.ts.map +1 -1
- package/dist/components/AppLayout/ThreadHistorySidebar.d.ts +6 -0
- package/dist/components/AppLayout/ThreadHistorySidebar.d.ts.map +1 -1
- package/dist/components/AppLayout/index.d.ts +3 -3
- package/dist/components/AppLayout/index.d.ts.map +1 -1
- package/dist/components/AppLayout/insightEnginePanel.demo.d.ts +32 -0
- package/dist/components/AppLayout/insightEnginePanel.demo.d.ts.map +1 -0
- package/dist/components/AppLayout/panelPropsPath.d.ts +26 -0
- package/dist/components/AppLayout/panelPropsPath.d.ts.map +1 -0
- package/dist/components/AppLayout/panelResizeTransition.d.ts +49 -0
- package/dist/components/AppLayout/panelResizeTransition.d.ts.map +1 -0
- package/dist/components/AppLayout/toChatThreadMessage.d.ts +40 -0
- package/dist/components/AppLayout/toChatThreadMessage.d.ts.map +1 -0
- package/dist/components/AssessmentDrawer/AssessmentDrawer.d.ts +5 -1
- package/dist/components/AssessmentDrawer/AssessmentDrawer.d.ts.map +1 -1
- package/dist/components/AuditDrawer/AuditDrawer.d.ts +4 -3
- package/dist/components/AuditDrawer/AuditDrawer.d.ts.map +1 -1
- package/dist/components/AuditDrawer/index.d.ts +1 -1
- package/dist/components/AuditDrawer/index.d.ts.map +1 -1
- package/dist/components/AuditDrawer/types.d.ts +39 -5
- package/dist/components/AuditDrawer/types.d.ts.map +1 -1
- package/dist/components/Autocomplete/Autocomplete.d.ts +6 -1
- package/dist/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/components/BulkActionDock/BulkActionDock.d.ts.map +1 -1
- package/dist/components/Carousel/Carousel.d.ts +10 -2
- package/dist/components/Carousel/Carousel.d.ts.map +1 -1
- package/dist/components/Charts/AreaChart.d.ts.map +1 -1
- package/dist/components/Charts/BarChart.d.ts.map +1 -1
- package/dist/components/Charts/ChartWrapper.d.ts.map +1 -1
- package/dist/components/Charts/ComposedChart.d.ts.map +1 -1
- package/dist/components/Charts/CustomLegend.d.ts +11 -2
- package/dist/components/Charts/CustomLegend.d.ts.map +1 -1
- package/dist/components/Charts/LineChart.d.ts.map +1 -1
- package/dist/components/Charts/PieChart.d.ts.map +1 -1
- package/dist/components/Charts/RadialChart.d.ts.map +1 -1
- package/dist/components/Charts/ScatterChart.d.ts.map +1 -1
- package/dist/components/Charts/Sparkline.d.ts.map +1 -1
- package/dist/components/Charts/gaugeGeometry.d.ts +35 -0
- package/dist/components/Charts/gaugeGeometry.d.ts.map +1 -0
- package/dist/components/Charts/highcharts.d.ts +23 -0
- package/dist/components/Charts/highcharts.d.ts.map +1 -0
- package/dist/components/Charts/highchartsUtils.d.ts +101 -6
- package/dist/components/Charts/highchartsUtils.d.ts.map +1 -1
- package/dist/components/Charts/index.d.ts +1 -1
- package/dist/components/Charts/index.d.ts.map +1 -1
- package/dist/components/Charts/tokens.d.ts +21 -0
- package/dist/components/Charts/tokens.d.ts.map +1 -1
- package/dist/components/Charts/types.d.ts +7 -7
- package/dist/components/Charts/types.d.ts.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
- package/dist/components/ChoiceChips/ChoiceChips.d.ts +106 -0
- package/dist/components/ChoiceChips/ChoiceChips.d.ts.map +1 -0
- package/dist/components/ClearableTextField/ClearableTextField.d.ts +23 -2
- package/dist/components/ClearableTextField/ClearableTextField.d.ts.map +1 -1
- package/dist/components/CodeBlock/CodeBlock.d.ts +80 -0
- package/dist/components/CodeBlock/CodeBlock.d.ts.map +1 -0
- package/dist/components/Combobox/Combobox.d.ts +3 -2
- package/dist/components/Combobox/Combobox.d.ts.map +1 -1
- package/dist/components/CommandPalette/CommandPalette.d.ts +54 -3
- package/dist/components/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/components/CommandPalette/index.d.ts +1 -1
- package/dist/components/CommandPalette/index.d.ts.map +1 -1
- package/dist/components/CopyButton/CopyButton.d.ts +80 -0
- package/dist/components/CopyButton/CopyButton.d.ts.map +1 -0
- package/dist/components/DataCard/DataCard.d.ts +11 -1
- package/dist/components/DataCard/DataCard.d.ts.map +1 -1
- package/dist/components/DataTable/CellRenderers.d.ts +8 -11
- package/dist/components/DataTable/CellRenderers.d.ts.map +1 -1
- package/dist/components/DataTable/DataTable.d.ts +1 -1
- package/dist/components/DataTable/DataTable.d.ts.map +1 -1
- package/dist/components/DataTable/InlineAddRow.d.ts.map +1 -1
- package/dist/components/DataTable/columnContext.d.ts +8 -0
- package/dist/components/DataTable/columnContext.d.ts.map +1 -0
- package/dist/components/DataTable/index.d.ts +2 -2
- package/dist/components/DataTable/index.d.ts.map +1 -1
- package/dist/components/DataTable/labels.d.ts +13 -0
- package/dist/components/DataTable/labels.d.ts.map +1 -0
- package/dist/components/DataTable/types.d.ts +34 -0
- package/dist/components/DataTable/types.d.ts.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/components/DetailsPopover/DetailsPopover.d.ts +185 -0
- package/dist/components/DetailsPopover/DetailsPopover.d.ts.map +1 -0
- package/dist/components/DiffViewer/DiffViewer.d.ts +3 -2
- package/dist/components/DiffViewer/DiffViewer.d.ts.map +1 -1
- package/dist/components/Disclosure/Disclosure.d.ts +83 -0
- package/dist/components/Disclosure/Disclosure.d.ts.map +1 -0
- package/dist/components/DockLayout/DockLayout.d.ts +58 -0
- package/dist/components/DockLayout/DockLayout.d.ts.map +1 -1
- package/dist/components/DockLayout/index.d.ts +1 -1
- package/dist/components/DockLayout/index.d.ts.map +1 -1
- package/dist/components/DocumentCard/DocumentCard.d.ts +5 -1
- package/dist/components/DocumentCard/DocumentCard.d.ts.map +1 -1
- package/dist/components/EntityDetailPanel/EntityDetailPanel.d.ts +6 -2
- package/dist/components/EntityDetailPanel/EntityDetailPanel.d.ts.map +1 -1
- package/dist/components/FileUpload/FileUpload.d.ts +141 -6
- package/dist/components/FileUpload/FileUpload.d.ts.map +1 -1
- package/dist/components/FileUpload/index.d.ts +1 -1
- package/dist/components/FileUpload/index.d.ts.map +1 -1
- package/dist/components/FilterBar/FilterBar.d.ts +27 -1
- package/dist/components/FilterBar/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar/index.d.ts +1 -1
- package/dist/components/FilterBar/index.d.ts.map +1 -1
- package/dist/components/FlowAutoLayout/useFlowAutoLayout.d.ts.map +1 -1
- package/dist/components/GanttView/GanttView.d.ts +24 -0
- package/dist/components/GanttView/GanttView.d.ts.map +1 -1
- package/dist/components/GanttView/types.d.ts +33 -7
- package/dist/components/GanttView/types.d.ts.map +1 -1
- package/dist/components/GaugeCard/GaugeCard.d.ts +4 -3
- package/dist/components/GaugeCard/GaugeCard.d.ts.map +1 -1
- package/dist/components/GaugeCard/geometry.d.ts +59 -0
- package/dist/components/GaugeCard/geometry.d.ts.map +1 -0
- package/dist/components/GeoStatusMap/GeoStatusMap.d.ts.map +1 -1
- package/dist/components/GeoStatusMap/types.d.ts +8 -5
- package/dist/components/GeoStatusMap/types.d.ts.map +1 -1
- package/dist/components/GoToTop/GoToTop.d.ts +1 -1
- package/dist/components/GoToTop/GoToTop.d.ts.map +1 -1
- package/dist/components/HierarchicalDrillDown/HierarchicalDrillDown.d.ts.map +1 -1
- package/dist/components/HistoricalDataIndicator/HistoricalDataIndicator.d.ts.map +1 -1
- package/dist/components/HtmlToMui/HtmlToMui.d.ts.map +1 -1
- package/dist/components/Icon.d.ts +567 -10
- package/dist/components/Icon.d.ts.map +1 -1
- package/dist/components/IllustratedMessage.d.ts +52 -3
- package/dist/components/IllustratedMessage.d.ts.map +1 -1
- package/dist/components/InlineEditableText/InlineEditableText.d.ts +117 -0
- package/dist/components/InlineEditableText/InlineEditableText.d.ts.map +1 -0
- package/dist/components/InsightCard/InsightCard.d.ts.map +1 -1
- package/dist/components/InsightCard/types.d.ts +10 -3
- package/dist/components/InsightCard/types.d.ts.map +1 -1
- package/dist/components/KeyValueList/KeyValueList.d.ts +94 -0
- package/dist/components/KeyValueList/KeyValueList.d.ts.map +1 -0
- package/dist/components/LandingPage/FeatureCard.d.ts +4 -0
- package/dist/components/LandingPage/FeatureCard.d.ts.map +1 -1
- package/dist/components/LandingPage/LandingPage.d.ts +43 -4
- package/dist/components/LandingPage/LandingPage.d.ts.map +1 -1
- package/dist/components/LandingPage/heroTone.d.ts +54 -0
- package/dist/components/LandingPage/heroTone.d.ts.map +1 -0
- package/dist/components/MentionsInput/MentionsInput.d.ts.map +1 -1
- package/dist/components/MetaChip/MetaChip.d.ts +113 -0
- package/dist/components/MetaChip/MetaChip.d.ts.map +1 -0
- package/dist/components/Modal/Modal.d.ts +222 -20
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/index.d.ts +1 -1
- package/dist/components/Modal/index.d.ts.map +1 -1
- package/dist/components/NotificationCenter/NotificationCenter.d.ts.map +1 -1
- package/dist/components/OrgChart/OrgChart.d.ts +5 -0
- package/dist/components/OrgChart/OrgChart.d.ts.map +1 -1
- package/dist/components/OrgChart/types.d.ts +31 -7
- package/dist/components/OrgChart/types.d.ts.map +1 -1
- package/dist/components/OverflowTooltip/OverflowTooltip.d.ts +1 -1
- package/dist/components/OverflowTooltip/OverflowTooltip.d.ts.map +1 -1
- package/dist/components/PageHeader/PageHeader.d.ts.map +1 -1
- package/dist/components/PageTOC/PageTOC.d.ts +2 -1
- package/dist/components/PageTOC/PageTOC.d.ts.map +1 -1
- package/dist/components/Popper/Popper.d.ts +80 -9
- package/dist/components/Popper/Popper.d.ts.map +1 -1
- package/dist/components/Popper/index.d.ts +1 -1
- package/dist/components/Popper/index.d.ts.map +1 -1
- package/dist/components/PredictiveTextInput/PredictiveTextInput.d.ts +5 -1
- package/dist/components/PredictiveTextInput/PredictiveTextInput.d.ts.map +1 -1
- package/dist/components/SearchInput/SearchInput.d.ts +49 -0
- package/dist/components/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/components/SearchInput/index.d.ts +1 -1
- package/dist/components/SearchInput/index.d.ts.map +1 -1
- package/dist/components/SimpleTable/SimpleTable.d.ts +11 -2
- package/dist/components/SimpleTable/SimpleTable.d.ts.map +1 -1
- package/dist/components/SplitPane/SplitPane.d.ts +2 -1
- package/dist/components/SplitPane/SplitPane.d.ts.map +1 -1
- package/dist/components/StatusHero/StatusHero.d.ts.map +1 -1
- package/dist/components/StatusIndicator/Badge.d.ts +6 -1
- package/dist/components/StatusIndicator/Badge.d.ts.map +1 -1
- package/dist/components/StatusIndicator/Chip.d.ts +3 -1
- package/dist/components/StatusIndicator/Chip.d.ts.map +1 -1
- package/dist/components/StatusIndicator/Indicators.d.ts +5 -1
- package/dist/components/StatusIndicator/Indicators.d.ts.map +1 -1
- package/dist/components/StatusIndicator/Legend.d.ts.map +1 -1
- package/dist/components/StatusIndicator/StatusIndicator.d.ts +98 -4
- package/dist/components/StatusIndicator/StatusIndicator.d.ts.map +1 -1
- package/dist/components/StatusIndicator/index.d.ts +2 -2
- package/dist/components/StatusIndicator/index.d.ts.map +1 -1
- package/dist/components/StatusIndicator/types.d.ts +48 -1
- package/dist/components/StatusIndicator/types.d.ts.map +1 -1
- package/dist/components/StepList/StepList.d.ts +80 -0
- package/dist/components/StepList/StepList.d.ts.map +1 -0
- package/dist/components/StepList/StepStatusMarker.d.ts +39 -0
- package/dist/components/StepList/StepStatusMarker.d.ts.map +1 -0
- package/dist/components/StepList/stepStatus.d.ts +30 -0
- package/dist/components/StepList/stepStatus.d.ts.map +1 -0
- package/dist/components/SystemBanner/SystemBanner.d.ts.map +1 -1
- package/dist/components/Timeline/Timeline.d.ts +57 -3
- package/dist/components/Timeline/Timeline.d.ts.map +1 -1
- package/dist/components/Timeline/index.d.ts +1 -1
- package/dist/components/Timeline/index.d.ts.map +1 -1
- package/dist/components/Timeline/timelineLabels.d.ts +70 -0
- package/dist/components/Timeline/timelineLabels.d.ts.map +1 -0
- package/dist/components/Toast/Toast.d.ts.map +1 -1
- package/dist/components/TopNavHeader.d.ts +18 -1
- package/dist/components/TopNavHeader.d.ts.map +1 -1
- package/dist/components/TopNavWithSidebar.d.ts +61 -2
- package/dist/components/TopNavWithSidebar.d.ts.map +1 -1
- package/dist/components/Tour/Tour.d.ts +18 -1
- package/dist/components/Tour/Tour.d.ts.map +1 -1
- package/dist/components/TransferList/TransferList.d.ts +123 -4
- package/dist/components/TransferList/TransferList.d.ts.map +1 -1
- package/dist/components/TransferList/index.d.ts +1 -1
- package/dist/components/TransferList/index.d.ts.map +1 -1
- package/dist/components/TreeView/TreeView.d.ts +97 -8
- package/dist/components/TreeView/TreeView.d.ts.map +1 -1
- package/dist/components/TreeView/index.d.ts +1 -1
- package/dist/components/TreeView/index.d.ts.map +1 -1
- package/dist/components/TrinityLoader.d.ts.map +1 -1
- package/dist/components/icons/featherExtensions.d.ts +55 -0
- package/dist/components/icons/featherExtensions.d.ts.map +1 -0
- package/dist/components/icons/materialExtensions.d.ts +20 -0
- package/dist/components/icons/materialExtensions.d.ts.map +1 -0
- package/dist/components/internal/index.d.ts +87 -0
- package/dist/components/internal/index.d.ts.map +1 -1
- package/dist/components/navigation/MenuListWithHeading.d.ts +33 -0
- package/dist/components/navigation/MenuListWithHeading.d.ts.map +1 -0
- package/dist/components/navigation/clientSelectorLabels.d.ts +13 -0
- package/dist/components/navigation/clientSelectorLabels.d.ts.map +1 -0
- package/dist/components/navigation/components.d.ts +6 -0
- package/dist/components/navigation/components.d.ts.map +1 -1
- package/dist/components/shared/AsyncOutcomeAlert.d.ts +91 -0
- package/dist/components/shared/AsyncOutcomeAlert.d.ts.map +1 -0
- package/dist/components/shared/TrinityIconSvg.d.ts.map +1 -1
- package/dist/components/shared/TrinityLogoSvg.d.ts.map +1 -1
- package/dist/components/shared/bidi.d.ts +44 -0
- package/dist/components/shared/bidi.d.ts.map +1 -0
- package/dist/components/shared/bidiText.d.ts +25 -0
- package/dist/components/shared/bidiText.d.ts.map +1 -0
- package/dist/components/shared/containerQueries.d.ts +73 -0
- package/dist/components/shared/containerQueries.d.ts.map +1 -0
- package/dist/components/shared/createStringsContext.d.ts +69 -0
- package/dist/components/shared/createStringsContext.d.ts.map +1 -0
- package/dist/components/shared/direction.d.ts +46 -0
- package/dist/components/shared/direction.d.ts.map +1 -0
- package/dist/components/shared/focusTrap.d.ts +36 -0
- package/dist/components/shared/focusTrap.d.ts.map +1 -0
- package/dist/components/shared/getInitials.d.ts +29 -0
- package/dist/components/shared/getInitials.d.ts.map +1 -0
- package/dist/components/shared/headingLevel.d.ts +69 -0
- package/dist/components/shared/headingLevel.d.ts.map +1 -0
- package/dist/components/shared/mergeSlotProps.d.ts +50 -0
- package/dist/components/shared/mergeSlotProps.d.ts.map +1 -0
- package/dist/components/shared/mergeSx.d.ts +26 -0
- package/dist/components/shared/mergeSx.d.ts.map +1 -0
- package/dist/components/shared/motion.d.ts +110 -0
- package/dist/components/shared/motion.d.ts.map +1 -0
- package/dist/components/shared/occurrenceKeys.d.ts +23 -0
- package/dist/components/shared/occurrenceKeys.d.ts.map +1 -0
- package/dist/components/shared/primaryAction.d.ts +89 -0
- package/dist/components/shared/primaryAction.d.ts.map +1 -0
- package/dist/components/shared/resizeKeyboard.d.ts +68 -0
- package/dist/components/shared/resizeKeyboard.d.ts.map +1 -0
- package/dist/components/shared/rootProps.d.ts +117 -0
- package/dist/components/shared/rootProps.d.ts.map +1 -0
- package/dist/components/shared/safeContent.d.ts +9 -2
- package/dist/components/shared/safeContent.d.ts.map +1 -1
- package/dist/components/shared/targetSize.d.ts +64 -0
- package/dist/components/shared/targetSize.d.ts.map +1 -0
- package/dist/components/shared/useContainerInlineSize.d.ts +43 -0
- package/dist/components/shared/useContainerInlineSize.d.ts.map +1 -0
- package/dist/components/shared/useCopyAction.d.ts +35 -0
- package/dist/components/shared/useCopyAction.d.ts.map +1 -0
- package/dist/components/shared/useOverflow.d.ts +44 -0
- package/dist/components/shared/useOverflow.d.ts.map +1 -0
- package/dist/components/shared/useResizable.d.ts +106 -7
- package/dist/components/shared/useResizable.d.ts.map +1 -1
- package/dist/components/shared/warnDeprecated.d.ts +89 -15
- package/dist/components/shared/warnDeprecated.d.ts.map +1 -1
- package/dist/components/shared/zIndexRoles.d.ts +62 -0
- package/dist/components/shared/zIndexRoles.d.ts.map +1 -0
- package/dist/components/templates/AIReviewQueue/AIReviewQueueTemplate.d.ts +213 -0
- package/dist/components/templates/AIReviewQueue/AIReviewQueueTemplate.d.ts.map +1 -0
- package/dist/components/templates/AIReviewQueue/index.d.ts +2 -0
- package/dist/components/templates/AIReviewQueue/index.d.ts.map +1 -0
- package/dist/components/templates/Auth/AuthTemplate.d.ts.map +1 -1
- package/dist/components/templates/Auth/types.d.ts +4 -1
- package/dist/components/templates/Auth/types.d.ts.map +1 -1
- package/dist/components/templates/Catalog/CatalogTemplate.d.ts.map +1 -1
- package/dist/components/templates/ConnectorWizard/ConnectorWizardTemplate.d.ts.map +1 -1
- package/dist/components/templates/InsightsCenter/InsightsCenterTemplate.d.ts.map +1 -1
- package/dist/components/templates/IntegrationDetail/IntegrationDetailTemplate.d.ts.map +1 -1
- package/dist/components/templates/ListDetail/ListDetailTemplate.d.ts +168 -10
- package/dist/components/templates/ListDetail/ListDetailTemplate.d.ts.map +1 -1
- package/dist/components/templates/ListDetail/index.d.ts +1 -1
- package/dist/components/templates/ListDetail/index.d.ts.map +1 -1
- package/dist/components/templates/ListDetail/listDetailLabels.d.ts +106 -0
- package/dist/components/templates/ListDetail/listDetailLabels.d.ts.map +1 -0
- package/dist/components/templates/Onboarding/OnboardingTemplate.d.ts.map +1 -1
- package/dist/components/templates/Settings/SettingsTemplate.d.ts +0 -3
- package/dist/components/templates/Settings/SettingsTemplate.d.ts.map +1 -1
- package/dist/components/templates/Wizard/WizardTemplate.d.ts +4 -1
- package/dist/components/templates/Wizard/WizardTemplate.d.ts.map +1 -1
- package/dist/components/templates/index.d.ts +2 -1
- package/dist/components/templates/index.d.ts.map +1 -1
- package/dist/data-table.d.ts +1 -1
- package/dist/data-table.d.ts.map +1 -1
- package/dist/data-table.js +1 -0
- package/dist/data-table2.js +13522 -13465
- package/dist/data.js +213 -194
- package/dist/elk.bundled.js +47371 -0
- package/dist/essentials.d.ts +3 -3
- package/dist/essentials.d.ts.map +1 -1
- package/dist/essentials.js +179 -147
- package/dist/focus-on-replace.js +49 -0
- package/dist/form.d.ts +26 -4
- package/dist/form.d.ts.map +1 -1
- package/dist/forms.js +575 -483
- package/dist/foundation.js +3704 -0
- package/dist/hooks/storageStore.d.ts +51 -0
- package/dist/hooks/storageStore.d.ts.map +1 -0
- package/dist/hooks/useAsyncAction.d.ts +65 -0
- package/dist/hooks/useAsyncAction.d.ts.map +1 -0
- package/dist/hooks/useDisclosure.d.ts +190 -0
- package/dist/hooks/useDisclosure.d.ts.map +1 -0
- package/dist/hooks/useFocusOnReplace.d.ts +95 -0
- package/dist/hooks/useFocusOnReplace.d.ts.map +1 -0
- package/dist/hooks/useTrinityPalette.d.ts +38 -40
- package/dist/hooks/useTrinityPalette.d.ts.map +1 -1
- package/dist/hooks.d.ts +44 -6
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +301 -0
- package/dist/index.d.ts +71 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13925 -60619
- package/dist/patterns/AICopilotPattern/AICopilotPattern.d.ts +203 -0
- package/dist/patterns/AICopilotPattern/AICopilotPattern.d.ts.map +1 -0
- package/dist/patterns/AICopilotPattern/index.d.ts +3 -0
- package/dist/patterns/AICopilotPattern/index.d.ts.map +1 -0
- package/dist/patterns/index.d.ts +15 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/presets/analytics.d.ts +8 -1
- package/dist/presets/analytics.d.ts.map +1 -1
- package/dist/presets/crm.d.ts +8 -1
- package/dist/presets/crm.d.ts.map +1 -1
- package/dist/presets/index.d.ts +1 -1
- package/dist/presets/portal.d.ts +8 -1
- package/dist/presets/portal.d.ts.map +1 -1
- package/dist/safe-content.js +69 -69
- package/dist/theme-augmentation.d.ts +388 -0
- package/dist/theme-augmentation.d.ts.map +1 -0
- package/dist/theme.d.ts +116 -30
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +891 -436
- package/dist/token-color.d.ts +14 -0
- package/dist/token-color.d.ts.map +1 -0
- package/dist/token-merge.d.ts +56 -0
- package/dist/token-merge.d.ts.map +1 -0
- package/dist/token-serialization.d.ts +65 -0
- package/dist/token-serialization.d.ts.map +1 -0
- package/dist/tokens.d.ts +882 -13
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +21 -19
- package/dist/trinity.css +1077 -414
- package/package.json +111 -90
- package/dist/components/index.d.ts +0 -145
- package/dist/components/index.d.ts.map +0 -1
- package/dist/components/shared.d.ts +0 -92
- package/dist/components/shared.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# Trinity Design System
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!-- catalog-counts:start intro -->
|
|
4
|
+
|
|
5
|
+
Enterprise component platform built on **MUI 9** and **React 19** for [Trinity LifeSciences](https://trinitylifesciences.com). Provides 143 accessible React components (43 of them AI and human-in-the-loop components, 17 chart components and 13 page templates), 32 hooks, a 3-tier design token system, and a CSS-only package for non-React consumers, with the tokens, the React theme and the CSS package kept in parity.
|
|
6
|
+
|
|
7
|
+
<!-- catalog-counts:end intro -->
|
|
4
8
|
|
|
5
9
|
[](https://www.npmjs.com/package/@trinityui/design-system)
|
|
6
10
|
[](https://www.npmjs.com/package/@trinityui/design-system-css)
|
|
@@ -15,16 +19,18 @@ Enterprise component platform built on **MUI v9** for [Trinity LifeSciences](htt
|
|
|
15
19
|
- [Packages & Entry Points](#packages--entry-points)
|
|
16
20
|
- [Installation](#installation)
|
|
17
21
|
- [Quick Start](#quick-start)
|
|
22
|
+
- [What's New in 2.13.0](#whats-new-in-2130)
|
|
18
23
|
- [Component Catalog](#component-catalog)
|
|
19
|
-
- [Navigation](#navigation
|
|
20
|
-
- [Layout](#layout
|
|
21
|
-
- [AI](#ai
|
|
22
|
-
- [Data Display](#data-display
|
|
23
|
-
- [Input & Forms](#input--forms
|
|
24
|
-
- [Feedback](#feedback
|
|
25
|
-
- [Charts](#charts
|
|
24
|
+
- [Navigation](#navigation)
|
|
25
|
+
- [Layout](#layout)
|
|
26
|
+
- [AI](#ai)
|
|
27
|
+
- [Data Display](#data-display)
|
|
28
|
+
- [Input & Forms](#input--forms)
|
|
29
|
+
- [Feedback](#feedback)
|
|
30
|
+
- [Charts](#charts)
|
|
26
31
|
- [Icon System](#icon-system)
|
|
27
|
-
- [
|
|
32
|
+
- [Patterns](#patterns)
|
|
33
|
+
- [Hooks](#hooks-33)
|
|
28
34
|
- [Accessibility](#accessibility)
|
|
29
35
|
- [Design Tokens](#design-tokens)
|
|
30
36
|
- [Theme Presets](#theme-presets)
|
|
@@ -39,20 +45,25 @@ Enterprise component platform built on **MUI v9** for [Trinity LifeSciences](htt
|
|
|
39
45
|
|
|
40
46
|
## Key Capabilities
|
|
41
47
|
|
|
48
|
+
<!-- catalog-counts:start capabilities -->
|
|
49
|
+
|
|
42
50
|
| Capability | Details |
|
|
43
51
|
|---|---|
|
|
44
|
-
| **
|
|
45
|
-
| **
|
|
46
|
-
| **17 Chart
|
|
47
|
-
| **
|
|
48
|
-
| **
|
|
52
|
+
| **143 Components** | Navigation, layout, AI, data display, inputs, feedback, charts |
|
|
53
|
+
| **43 AI Components** | InsightEngine, ChatThread, AIMessage, AIChainOfThought, the human-in-the-loop blocks, voice input, explainability, sources, personas |
|
|
54
|
+
| **17 Chart Components** | Line, bar, area, pie, donut, scatter, bubble, radial, gauge, composed, sparkline, plus the chart wrapper, tooltips and legends |
|
|
55
|
+
| **13 Page Templates** | Dashboard, list-detail, settings, auth, catalog, wizard, report, the AI review queue and more, plus one pattern (`AICopilotPattern`) |
|
|
56
|
+
| **3-Tier Design Tokens** | Base → Semantic → Component tokens; the React theme and the CSS variables are generated from the same source and kept in parity |
|
|
57
|
+
| **Dark Mode** | Automatic light/dark themes with WCAG 2.2 AA color contrast |
|
|
49
58
|
| **3 Theme Presets** | CRM (compact), Portal (accessible), Analytics (data-viz) |
|
|
50
|
-
| **
|
|
51
|
-
| **TypeScript-First** |
|
|
52
|
-
| **CSS-Only Package** | Angular, Vue, and static HTML support
|
|
59
|
+
| **32 Hooks** | Debounce, clipboard, breakpoints, disclosure, roving tabindex, live announcements, and more |
|
|
60
|
+
| **TypeScript-First** | 850 root exports with full type definitions |
|
|
61
|
+
| **CSS-Only Package** | Angular, Vue, and static HTML support through 1186 `--trinity-*` CSS variables |
|
|
53
62
|
| **80+ Brand Assets** | Gradient icons, background images, logos |
|
|
54
|
-
| **Bundle Governance** |
|
|
55
|
-
| **Accessibility** | axe
|
|
63
|
+
| **Bundle Governance** | A size-limit ratchet on every public entry; each raise is measured and recorded |
|
|
64
|
+
| **Accessibility** | WCAG 2.2 AA: axe on every story, a strict behavior contract, live announcements, skip links, forced colors and reduced motion |
|
|
65
|
+
|
|
66
|
+
<!-- catalog-counts:end capabilities -->
|
|
56
67
|
|
|
57
68
|
---
|
|
58
69
|
|
|
@@ -68,7 +79,7 @@ Enterprise component platform built on **MUI v9** for [Trinity LifeSciences](htt
|
|
|
68
79
|
┌──────────────────────────┐ ┌─────────────────────────────────┐
|
|
69
80
|
│ MUI Theme Layer │ │ CSS Variables Build │
|
|
70
81
|
│ lightTheme / darkTheme │ │ generate-css-from-tokens.ts │
|
|
71
|
-
│ + 3 preset themes │ │ trinity
|
|
82
|
+
│ + 3 preset themes │ │ trinity-generated.css │
|
|
72
83
|
└──────────┬───────────────┘ └──────────┬──────────────────────┘
|
|
73
84
|
│ │
|
|
74
85
|
▼ ▼
|
|
@@ -82,15 +93,19 @@ Enterprise component platform built on **MUI v9** for [Trinity LifeSciences](htt
|
|
|
82
93
|
|
|
83
94
|
## Packages & Entry Points
|
|
84
95
|
|
|
96
|
+
<!-- catalog-counts:start entry-points -->
|
|
97
|
+
|
|
85
98
|
| Package / Import | Exports | Use Case |
|
|
86
|
-
|
|
87
|
-
| `@trinityui/design-system` |
|
|
88
|
-
| `@trinityui/design-system/essentials` |
|
|
89
|
-
| `@trinityui/design-system/theme` |
|
|
90
|
-
| `@trinityui/design-system/tokens` |
|
|
91
|
-
| `@trinityui/design-system/data-table` |
|
|
92
|
-
| `@trinityui/design-system/css` |
|
|
93
|
-
| `@trinityui/design-system-css` |
|
|
99
|
+
|---|---:|---|
|
|
100
|
+
| `@trinityui/design-system` | 850 | Full API: components, templates, patterns, hooks, tokens, themes and utilities |
|
|
101
|
+
| `@trinityui/design-system/essentials` | 45 | Quick start: the themes and the core components |
|
|
102
|
+
| `@trinityui/design-system/theme` | 52 | Theme utilities only (tree-shakeable) |
|
|
103
|
+
| `@trinityui/design-system/tokens` | 131 | Design tokens only (tree-shakeable) |
|
|
104
|
+
| `@trinityui/design-system/data-table` | 6 | DataTable and the AG Grid Enterprise license setup |
|
|
105
|
+
| `@trinityui/design-system/css` | CSS file | The CSS variables, from the React package |
|
|
106
|
+
| `@trinityui/design-system-css` | 1186 CSS variables | Standalone CSS-only package for non-React apps |
|
|
107
|
+
|
|
108
|
+
<!-- catalog-counts:end entry-points -->
|
|
94
109
|
|
|
95
110
|
---
|
|
96
111
|
|
|
@@ -102,12 +117,9 @@ Enterprise component platform built on **MUI v9** for [Trinity LifeSciences](htt
|
|
|
102
117
|
pnpm add @trinityui/design-system react react-dom @mui/material @mui/icons-material @emotion/react @emotion/styled
|
|
103
118
|
```
|
|
104
119
|
|
|
105
|
-
**
|
|
120
|
+
**Requirements:** React and React DOM 19.2.4 or later, MUI 9 (`@mui/material`, `@mui/icons-material`), Emotion 11.14 or later, and Node 20, 22 or 24 ([support matrix](./SUPPORT.md)).
|
|
106
121
|
|
|
107
|
-
|
|
108
|
-
pnpm add recharts # Charts
|
|
109
|
-
pnpm add @mui/x-date-pickers dayjs # DatePicker
|
|
110
|
-
```
|
|
122
|
+
There are no optional dependencies to add: the chart (Highcharts), DataTable (AG Grid) and flow-layout libraries install with the package. DataTable's Enterprise features need your AG Grid license key; set it once at startup with `setAgGridEnterpriseLicenseKey` from `@trinityui/design-system/data-table` (see [Data Display](#data-display)).
|
|
111
123
|
|
|
112
124
|
### CSS-only package
|
|
113
125
|
|
|
@@ -137,6 +149,8 @@ export function AppProviders({ children }: { children: React.ReactNode }) {
|
|
|
137
149
|
}
|
|
138
150
|
```
|
|
139
151
|
|
|
152
|
+
Pick a [theme preset](#theme-presets) instead of `lightTheme` when your product is a dense CRM (`crmLightTheme`), a customer portal (`portalLightTheme`) or an analytics app (`analyticsLightTheme`); each has a dark twin. Build your own with `createTrinityTheme(mode, overrides)` or `createTrinityThemePreset(options)`.
|
|
153
|
+
|
|
140
154
|
### 2. Import strategy
|
|
141
155
|
|
|
142
156
|
Use **MUI** for standard UI primitives. Use **Trinity** for domain-specific components, tokens, and hooks.
|
|
@@ -160,13 +174,67 @@ import { lightTheme, darkTheme } from '@trinityui/design-system';
|
|
|
160
174
|
</ThemeProvider>
|
|
161
175
|
```
|
|
162
176
|
|
|
163
|
-
|
|
177
|
+
### 4. Add the AI assistant
|
|
178
|
+
|
|
179
|
+
`AppLayout` is the app shell; with `aiTrigger="fab"` it opens an AI panel, docked and resizable (320 to 800px) or fullscreen, and a full-width drawer on phones. Wire your backend through `panelProps`:
|
|
180
|
+
|
|
181
|
+
```tsx
|
|
182
|
+
import { AppLayout, type ChatMessage } from '@trinityui/design-system';
|
|
183
|
+
|
|
184
|
+
<AppLayout
|
|
185
|
+
navStyle="topnav"
|
|
186
|
+
aiTrigger="fab"
|
|
187
|
+
panelProps={{
|
|
188
|
+
messages,
|
|
189
|
+
onMessagesChange: setMessages,
|
|
190
|
+
onSendMessage: (text, options) => ask(text, options),
|
|
191
|
+
streaming: waitingForAnswer,
|
|
192
|
+
userInitials: user.initials,
|
|
193
|
+
messageActions: { onFeedback: rate, onRegenerate: regenerate },
|
|
194
|
+
}}
|
|
195
|
+
>
|
|
196
|
+
<Page />
|
|
197
|
+
</AppLayout>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
| Option | Default | What it does |
|
|
201
|
+
|---|---|---|
|
|
202
|
+
| `aiPanelSide` | `'end'` | `'start'` docks the panel before the page content (the FAB, the resize handle and the phone drawer follow) |
|
|
203
|
+
| `aiPanelWidth` | `420` | The panel's first width; people resize it from 320 to 800px by dragging or with the arrow keys |
|
|
204
|
+
| `keepAiPanelMounted` | `false` | Keeps the draft, the conversation and the scroll position while the panel is closed |
|
|
205
|
+
| `renderAiPanel` | none | Renders your own surface (for example `AICopilotPattern` or `InsightEngine presentation="embedded"`) inside the same panel, with `onClose`, `isFullscreen` and `onFullscreenToggle` |
|
|
206
|
+
| `showFabWhenPanelOpen` | `false` | Keeps the AI FAB beside the docked panel; by default it hides while the panel is open and focus returns to it on close |
|
|
207
|
+
| `mobilePanelPresentation` | `'drawer'` | `'docked'` keeps the desktop panel below the `md` breakpoint |
|
|
208
|
+
|
|
209
|
+
Answers with plans to confirm, clarifying questions, queries, confidence, verification and reasoning use the same panel (`onBlockEvent`, `getReasoning`); [the AI panel guide](./docs/APPLAYOUT_AI_PANEL.md) explains the three routes and the 2.13.0 panel changes, and [the AI table](#ai) says which component does what.
|
|
210
|
+
|
|
211
|
+
### 5. AI strings and white-labelling
|
|
212
|
+
|
|
213
|
+
The AI components read their built-in strings from one catalog, which `AIConfigProvider` replaces for translation and white-labelling, with the confidence thresholds, locale and time zone ([Overriding strings](./docs/MICROCOPY.md#overriding-strings)). The provider is not a package export yet: it waits for its component proposal vote, and the Storybook page AI/AIConfigProvider shows the proposed API. Until it ships, use the components' own props (for example the panel's `title` and `placeholder`).
|
|
214
|
+
|
|
215
|
+
### 6. Without React
|
|
216
|
+
|
|
217
|
+
Load the CSS package and use the `--trinity-*` variables; `data-theme="dark"` switches the mode. See [CSS-Only Usage](#css-only-usage) and the CSS AI agent guide in Storybook (Getting Started/AI Agent Guide (CSS)).
|
|
218
|
+
|
|
219
|
+
For the full getting-started guide, see [docs/QUICK_START.md](./docs/QUICK_START.md) and the Getting Started page in Storybook.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## What's New in 2.13.0
|
|
224
|
+
|
|
225
|
+
2.13.0 ships the remediation program's work in one minor release; nothing is removed (removals wait for v3.0).
|
|
226
|
+
|
|
227
|
+
- **AI and human in the loop:** `AIPlanReview`, `AIClarificationPrompt`, `AIQueryDisclosure`, `AIConfidenceBadge`, `AIVerificationBadge`, `AIFeedbackControl` and `AIFeedbackForm`, `AISourceChip` with inline citations, `AIRelatedQuestions`, `AIReviewItem` and the new `AIReviewQueueTemplate`, the golden-dataset action on `AIMessage`, the `AIChatWelcome` start screen, the redesigned `AIChainOfThought`, and the `AICopilotPattern` pattern.
|
|
228
|
+
- **AppLayout's AI panel:** messages render through `ChatThread` with the interactive blocks; `aiPanelSide`, `keepAiPanelMounted`, `renderAiPanel`, `showFabWhenPanelOpen` and the phone drawer are new.
|
|
229
|
+
- **Theme:** new colour roles (the AI avatar and launcher gradient, AI progress, the start-screen canvas, favorite), each in the tokens, the React theme and the CSS package.
|
|
230
|
+
- **Accessibility:** WCAG 2.2 AA, a strict behavior contract on every component, and screen-reader announcements across the AI set.
|
|
231
|
+
- **Behavior corrections:** defaults that were objectively broken change in this minor (ADR-23). [MIGRATION.md, Behavior corrections](./MIGRATION.md#behavior-corrections-2x) lists each one with its before, after, opt-out and consumer action (the release adds the rows from its changesets), and the release notes land in [CHANGELOG.md](./CHANGELOG.md) when 2.13.0 is published.
|
|
164
232
|
|
|
165
233
|
---
|
|
166
234
|
|
|
167
235
|
## Component Catalog
|
|
168
236
|
|
|
169
|
-
### Navigation
|
|
237
|
+
### Navigation
|
|
170
238
|
|
|
171
239
|
| Component | Import | Description |
|
|
172
240
|
|---|---|---|
|
|
@@ -181,7 +249,7 @@ Also exports: `TrinityLogo`, `UserMenu`, `HeaderActions`, and 14 navigation type
|
|
|
181
249
|
|
|
182
250
|
---
|
|
183
251
|
|
|
184
|
-
### Layout
|
|
252
|
+
### Layout
|
|
185
253
|
|
|
186
254
|
| Component | Import | Description |
|
|
187
255
|
|---|---|---|
|
|
@@ -193,74 +261,122 @@ Also exports: `TrinityLogo`, `UserMenu`, `HeaderActions`, and 14 navigation type
|
|
|
193
261
|
| `InsightEnginePanel` | `@trinityui/design-system` | AI insight panel designed for AppLayout integration |
|
|
194
262
|
| `LandingPage` | `@trinityui/design-system` | Pre-built landing page template |
|
|
195
263
|
|
|
196
|
-
Also exports
|
|
264
|
+
Also exports the page templates (`DashboardTemplate`, `ListDetailTemplate`, `SettingsTemplate` and the others under `Templates/` in Storybook). Templates and patterns are public components, imported from the root like everything else.
|
|
197
265
|
|
|
198
266
|
---
|
|
199
267
|
|
|
200
|
-
### AI
|
|
268
|
+
### AI
|
|
201
269
|
|
|
202
270
|
The largest component category — a full suite for building AI-powered experiences.
|
|
203
271
|
|
|
272
|
+
<!-- catalog-counts:start ai-table -->
|
|
273
|
+
|
|
204
274
|
#### AI Containers & Orchestration
|
|
205
275
|
|
|
206
|
-
| Component | Description |
|
|
207
|
-
|
|
208
|
-
| `InsightEngine` |
|
|
209
|
-
| `
|
|
210
|
-
| `
|
|
211
|
-
| `
|
|
276
|
+
| Component | Description | Storybook |
|
|
277
|
+
|---|---|---|
|
|
278
|
+
| `InsightEngine` | A whole AI surface: header, history, `ChatThread` and composer; a right-anchored drawer (`presentation="drawer"`, the default) or `presentation="embedded"` to fill its parent | AI/InsightEngine |
|
|
279
|
+
| `InsightEnginePanel` | The AI panel of `AppLayout` (`aiTrigger`; configure it with `panelProps` or replace it with `renderAiPanel`): docked and resizable or fullscreen, a modal drawer below `md`. Renders its messages through `ChatThread`, with `messageActions` / `onRegenerate`, `getReasoning` (an `AIChainOfThought` in the message), `onBlockEvent` and `blockRenderers` (the interactive blocks, `hitlBlockRenderers` by default) | Templates/InsightEnginePanel |
|
|
280
|
+
| `AIChatWelcome` | The AI start screen before the first message, in the `showcase` (greeting, centred composer, category cards) or `context` variant (scope chips, Continue, New since yesterday, Try asking); laid out by its container width; the default start screen of `InsightEnginePanel` and `InsightEngine` (`welcome`) | AI/AIChatWelcome |
|
|
281
|
+
| `ChatThread` | The conversation log: each turn as `AIMessage` or `UserMessage`, with the message actions (`messageActions`), the interactive blocks (`onBlockEvent`, `blockRenderers`, `renderBlock`), per-message slots (`getMessageSlots`) and the follow-up questions | AI/ChatThread |
|
|
282
|
+
| `ChatHeader` | Chat view header with mode switching | AI/ChatHeader |
|
|
283
|
+
| `ChatHistoryList` | Navigable list of past conversations | AI/ChatHistoryList |
|
|
212
284
|
|
|
213
285
|
#### AI Input
|
|
214
286
|
|
|
215
|
-
| Component | Description |
|
|
216
|
-
|
|
217
|
-
| `InsightEngineInput` |
|
|
218
|
-
| `AIVoiceOverlay` | Voice input overlay with transcription |
|
|
219
|
-
| `
|
|
220
|
-
| `
|
|
221
|
-
| `
|
|
222
|
-
|
|
287
|
+
| Component | Description | Storybook |
|
|
288
|
+
|---|---|---|
|
|
289
|
+
| `InsightEngineInput` | The AI composer: send, stop while generating, mentions, models and sources, voice input, and an unavailable state with its reason | AI/InsightEngineInput |
|
|
290
|
+
| `AIVoiceOverlay` | Voice input overlay with transcription | AI/Chat Components |
|
|
291
|
+
| `AIVoiceMode` | Full-screen voice conversation mode: an orb that follows the conversation, a live transcript, mute and end | AI/AIVoiceMode |
|
|
292
|
+
| `AIListeningIndicator` | Animated listening state indicator | AI/Chat Components |
|
|
293
|
+
| `PredictiveTextInput` | AI-powered autocomplete text input (OpenAI-compatible) | Form Inputs/PredictiveTextInput |
|
|
294
|
+
|
|
295
|
+
#### AI Human in the Loop
|
|
296
|
+
|
|
297
|
+
| Component | Description | Storybook |
|
|
298
|
+
|---|---|---|
|
|
299
|
+
| `AIPlanReview` | The plan the AI proposes before it runs a query, for the user to review, correct and confirm (inline or in a dialog; `readOnly` for the record) | AI/AIPlanReview |
|
|
300
|
+
| `AIReviewItem` | One answer in a golden-dataset review: the question, what produced the answer, and the reviewer's approve, edit or reject decision with its history | AI/AIReviewItem |
|
|
301
|
+
| `AIClarificationPrompt` | A clarifying question the AI asks before it answers: options, a free-text answer and a typed result the backend can act on | AI/AIClarificationPrompt |
|
|
302
|
+
| `AIQueryDisclosure` | The query behind an answer, shown on demand, with Copy | AI/AIQueryDisclosure |
|
|
303
|
+
| `AIFeedbackControl` | Thumbs up and down on an answer, and the "Tell us what went wrong" flow | AI/AIFeedbackControl |
|
|
304
|
+
| `AIFeedbackForm` | What went wrong with an answer: problem types, a comment and an optional rerun | AI/AIFeedbackForm |
|
|
305
|
+
| `AIConfidenceBadge` | How confident the AI is in an answer, as a level and a percent, with the rationale on demand | AI/AIConfidenceBadge |
|
|
306
|
+
| `AIVerificationBadge` | Who checked an answer or a plan, as a glyph and a label, with the details on demand | AI/AIVerificationBadge |
|
|
223
307
|
|
|
224
308
|
#### AI Rendering & Explainability
|
|
225
309
|
|
|
226
|
-
| Component | Description |
|
|
227
|
-
|
|
228
|
-
| `AIResponseRenderer` | Renders
|
|
229
|
-
| `AITextBlock` |
|
|
230
|
-
| `AIChainOfThought` |
|
|
231
|
-
| `AIExplainability` | Confidence scores and explainability panel |
|
|
232
|
-
| `AISource`
|
|
233
|
-
| `
|
|
310
|
+
| Component | Description | Storybook |
|
|
311
|
+
|---|---|---|
|
|
312
|
+
| `AIResponseRenderer` | Renders an AI response's blocks: text blocks natively (through `AITextBlock`); the interactive blocks through `hitlBlockRenderers`; tables, charts and other block types through your `blockRenderers` (one component per block type) or `renderBlock` | AI/AIResponseRenderer |
|
|
313
|
+
| `AITextBlock` | Text of an AI response: plain text, or lightweight markdown (bold, italic, code, links, headings, lists, quotes, fenced code) with opt-in `[^id]` source citations and `headingOffset` | AI/AITextBlock |
|
|
314
|
+
| `AIChainOfThought` | The reasoning behind an answer: thinking, a plan awaiting confirmation, execution with failed tasks and Retry, and the output | AI/AIChainOfThought |
|
|
315
|
+
| `AIExplainability` | Confidence scores and explainability panel | AI/AIExplainability |
|
|
316
|
+
| `AISource` | One source citation | none yet |
|
|
317
|
+
| `AISourcesSection` | A simple list of source citations | AI/AISourcesSection |
|
|
318
|
+
| `AISourcesPanel` | Source citations grouped by category | AI/AISourcesPanel |
|
|
319
|
+
| `AISourceChip` | One source at the number, sentence, table cell or chart point it supports: a number or label chip that opens the source's details | AI/AISourceChip |
|
|
320
|
+
| `AIRelatedQuestions` | Suggested follow-up questions | AI/AIRelatedQuestions |
|
|
234
321
|
|
|
235
322
|
#### AI Messages & Avatars
|
|
236
323
|
|
|
237
|
-
| Component | Description |
|
|
238
|
-
|
|
239
|
-
| `AIMessage` |
|
|
240
|
-
| `UserMessage` |
|
|
241
|
-
| `
|
|
242
|
-
| `
|
|
243
|
-
| `
|
|
244
|
-
| `AILabel` | "AI-generated" badge/label (multiple sizes and variants) |
|
|
324
|
+
| Component | Description | Storybook |
|
|
325
|
+
|---|---|---|
|
|
326
|
+
| `AIMessage` | An assistant turn: the response blocks, sources, follow-ups, the reasoning slot and the actions (Copy always; Feedback, Share, Download and Regenerate when their handler is passed) | AI/AIMessage |
|
|
327
|
+
| `UserMessage` | A user turn | AI/UserMessage |
|
|
328
|
+
| `AIAvatar` | AI bot avatar (animated) | AI/AIAvatar |
|
|
329
|
+
| `UserAvatar` | User avatar for chat contexts | AI/AIAvatar |
|
|
330
|
+
| `AILabel` | "AI-generated" badge/label (multiple sizes and variants) | AI/AILabel |
|
|
245
331
|
|
|
246
332
|
#### AI Actions & Layout
|
|
247
333
|
|
|
248
|
-
| Component | Description |
|
|
334
|
+
| Component | Description | Storybook |
|
|
335
|
+
|---|---|---|
|
|
336
|
+
| `AISuggestedAction` | A suggested action as a pill button | AI/AISuggestedAction |
|
|
337
|
+
| `AICircularAction` | A suggested action as a circular icon button | AI/AIActions |
|
|
338
|
+
| `AIActionsGroup` | A group of suggested actions | AI/AIActions |
|
|
339
|
+
| `AIContainer` | Themed container for AI content | AI/AIContainer |
|
|
340
|
+
| `AIExpandableSection` | Collapsible section for AI detail panels | AI/AIExpandableSection |
|
|
341
|
+
| `AIPersonaCard` | AI persona/agent identity card | AI/AIContainer |
|
|
342
|
+
| `AIDigestCard` | An AI-generated daily or weekly briefing card | AI/AIDigestCard |
|
|
343
|
+
| `GradientText` | Gradient text for AI headings | AI/AIVisuals |
|
|
344
|
+
| `GradientIconBadge` | Gradient icon badge for AI UI | AI/AIVisuals |
|
|
345
|
+
| `StatCard` | KPI stat card for AI dashboards | AI/AIVisuals |
|
|
346
|
+
| `AIShimmer` | Shimmer loading state for AI content | AI/AIShimmer |
|
|
347
|
+
|
|
348
|
+
#### AI Contracts & Helpers
|
|
349
|
+
|
|
350
|
+
| Export | What it is |
|
|
249
351
|
|---|---|
|
|
250
|
-
| `
|
|
251
|
-
| `
|
|
252
|
-
| `
|
|
253
|
-
| `
|
|
254
|
-
| `
|
|
255
|
-
| `
|
|
256
|
-
| `
|
|
257
|
-
|
|
352
|
+
| `hitlBlockRenderers` | The built-in renderers of the interactive blocks (`query`, `clarification`, `plan-review`): pass as `blockRenderers` or spread into your own map |
|
|
353
|
+
| `ChatThreadMessage` | One message of `ChatThread` (`role`, `content`, `response`, `sources`, `relatedQuestions`, `feedback`, `streaming`) |
|
|
354
|
+
| `ChatThreadMessageSlots` | The slots of an assistant message (`badges`, `feedbackControl`, `attachments`) that `getMessageSlots` can replace |
|
|
355
|
+
| `InsightEnginePanelMessageActions` | The panel's message actions: `onCopy`, `onFeedback`, `onFeedbackSubmit`, `onShare`, `onDownload`, `onRegenerate`, `getActions` |
|
|
356
|
+
| `AIMessageAction` | An app action on an assistant message (`getActions`) |
|
|
357
|
+
| `AIRelatedQuestion` | A follow-up question: its text, an optional stable id and the `verified` mark |
|
|
358
|
+
| `aiTokens` | The AI design tokens |
|
|
359
|
+
|
|
360
|
+
#### Deprecated (v3.0)
|
|
361
|
+
|
|
362
|
+
These still work in 2.x and warn once in development; do not start new work with them ([MIGRATION.md](./MIGRATION.md)).
|
|
363
|
+
|
|
364
|
+
| Deprecated | Use instead | Storybook |
|
|
365
|
+
|---|---|---|
|
|
366
|
+
| `AIChatMessage` | `AIMessage` (and `UserMessage` for the user's turn) | AI/AIMessage |
|
|
367
|
+
| `AIChatInput` | `InsightEngineInput`, or `ChatThread` for a whole conversation | AI/AIChat |
|
|
368
|
+
| `AITypingIndicator` | `AIMessage`'s streaming state with `AIShimmer` | AI/AIChat |
|
|
369
|
+
| `AIQuickReply` | `AISuggestedAction` or `AIActionsGroup` | AI/AIChat |
|
|
370
|
+
| `QueryInput` | `InsightEngineInput` | AI/InsightEngineInput |
|
|
371
|
+
| `AIFabLayout` | `AppLayout` with `navStyle="topnav"` and `aiTrigger="fab"` | Templates/AppLayout |
|
|
372
|
+
|
|
373
|
+
<!-- catalog-counts:end ai-table -->
|
|
258
374
|
|
|
259
375
|
All AI components import from `@trinityui/design-system`. AI-specific design tokens available via `aiTokens`.
|
|
260
376
|
|
|
261
377
|
---
|
|
262
378
|
|
|
263
|
-
### Data Display
|
|
379
|
+
### Data Display
|
|
264
380
|
|
|
265
381
|
| Component | Import | Description |
|
|
266
382
|
|---|---|---|
|
|
@@ -339,12 +455,12 @@ Optional header regions can be disabled when the consuming app owns those contro
|
|
|
339
455
|
|
|
340
456
|
---
|
|
341
457
|
|
|
342
|
-
### Input & Forms
|
|
458
|
+
### Input & Forms
|
|
343
459
|
|
|
344
460
|
| Component | Import | Description |
|
|
345
461
|
|---|---|---|
|
|
346
462
|
| `Autocomplete` | `@trinityui/design-system` | Full-featured autocomplete — async loading, pagination, sortable chips, virtualization |
|
|
347
|
-
| `VirtualizedAutocomplete` | `@trinityui/design-system` |
|
|
463
|
+
| `VirtualizedAutocomplete` | `@trinityui/design-system` | **Deprecated** (removed in v3.0): use `Autocomplete`, which is already virtualized |
|
|
348
464
|
| `Combobox` | `@trinityui/design-system` | Accessible combobox with keyboard navigation |
|
|
349
465
|
| `SearchInput` | `@trinityui/design-system` | Standalone search input with suggestion dropdown |
|
|
350
466
|
| `ClearableTextField` | `@trinityui/design-system` | Text field with integrated clear button |
|
|
@@ -407,7 +523,7 @@ See the [Azure Function template](./examples/azure-functions/predictive-text/) f
|
|
|
407
523
|
|
|
408
524
|
---
|
|
409
525
|
|
|
410
|
-
### Feedback
|
|
526
|
+
### Feedback
|
|
411
527
|
|
|
412
528
|
| Component | Import | Description |
|
|
413
529
|
|---|---|---|
|
|
@@ -420,9 +536,9 @@ See the [Azure Function template](./examples/azure-functions/predictive-text/) f
|
|
|
420
536
|
|
|
421
537
|
---
|
|
422
538
|
|
|
423
|
-
### Charts
|
|
539
|
+
### Charts
|
|
424
540
|
|
|
425
|
-
All charts are
|
|
541
|
+
All charts are Highcharts-based, with Trinity theming applied automatically.
|
|
426
542
|
|
|
427
543
|
| Component | Description |
|
|
428
544
|
|---|---|
|
|
@@ -460,7 +576,18 @@ Supports multiple icon libraries via `IconProvider`. Six intent-based sizes: `in
|
|
|
460
576
|
|
|
461
577
|
---
|
|
462
578
|
|
|
463
|
-
|
|
579
|
+
### Patterns
|
|
580
|
+
|
|
581
|
+
Reference compositions of public organisms in `src/patterns/` ([Patterns](./docs/PATTERNS.md), ADR-12): a pattern owns layout and wiring only, with no state, live region, landmark or focus code of its own. Exported from the root entry only.
|
|
582
|
+
|
|
583
|
+
| Pattern | Status | Story |
|
|
584
|
+
|---|---|---|
|
|
585
|
+
| `AICopilotPattern` | Built (2.13.0): the HITL copilot (InsightEngine, the plan-review and clarification blocks, reasoning and sources), as a drawer or embedded in `AppLayout`'s AI panel through `renderAiPanel` | Patterns/AICopilot |
|
|
586
|
+
| `DashboardPattern`, `DataTablePattern`, `FilterPattern`, `EmptyStatePattern` | Not started (owner unassigned) | - |
|
|
587
|
+
|
|
588
|
+
---
|
|
589
|
+
|
|
590
|
+
## Hooks (33)
|
|
464
591
|
|
|
465
592
|
All hooks import from `@trinityui/design-system`.
|
|
466
593
|
|
|
@@ -468,39 +595,56 @@ All hooks import from `@trinityui/design-system`.
|
|
|
468
595
|
|---|---|
|
|
469
596
|
| `useDebounce` | Debounce a value by delay |
|
|
470
597
|
| `useDebouncedCallback` | Returns a debounced callback function |
|
|
471
|
-
| `
|
|
472
|
-
| `useLocalStorage` | Persist state to `localStorage` with SSR safety |
|
|
473
|
-
| `useTrinityBreakpoints` | Responsive flags: `isMobile`, `isTablet`, `isDesktop`, `isLargeDesktop` |
|
|
598
|
+
| `useInterval` | Declarative `setInterval` with cleanup |
|
|
474
599
|
| `useToggle` | Boolean toggle: `[value, toggle, setValue]` |
|
|
475
600
|
| `usePrevious` | Access the previous render's value |
|
|
601
|
+
| `useLocalStorage` | Persist state to `localStorage`; server and hydration renders use `initialValue` |
|
|
602
|
+
| `useClipboard` | Copy text, with an optional screen reader announcement of the outcome |
|
|
476
603
|
| `useOnClickOutside` | Detect clicks outside a ref element |
|
|
477
604
|
| `useKeyPress` | Detect a specific key press |
|
|
478
|
-
| `
|
|
479
|
-
| `
|
|
480
|
-
| `
|
|
481
|
-
| `
|
|
482
|
-
| `useRovingTabIndex` | Arrow-key navigation for composite widgets |
|
|
605
|
+
| `useAnnounce` | Announce a message to screen readers through the nearest live region |
|
|
606
|
+
| `useAriaLive` | Live-region announcements; announces through `useAnnounce`, or through your own region when you spread its `ariaProps` |
|
|
607
|
+
| `useDisclosure` | Expand/collapse and popup triggers: `aria-expanded`, `aria-controls` and ids from `useId` |
|
|
608
|
+
| `useAsyncAction` | Run an async action once at a time: errors reported, pending, success and error announced |
|
|
609
|
+
| `useRovingTabIndex` | Arrow-key navigation for composite widgets (registry form) |
|
|
610
|
+
| `useReducedMotion` | Detect the `prefers-reduced-motion` preference (SSR-stable) |
|
|
611
|
+
| `useFocusTrap` | **Deprecated** (removed in v3.0): use MUI's built-in trap (`Dialog`, `Popover`, `Menu`, temporary `Drawer`) |
|
|
612
|
+
| `useTrinityBreakpoints` | Responsive flags: `isMobile`, `isTablet`, `isDesktop`, `isLargeDesktop` |
|
|
613
|
+
| `useTrinityTokens` | Typed access to the semantic tokens of the current theme |
|
|
614
|
+
| `useTrinityPalette` | Access Trinity semantic palette from the current theme |
|
|
615
|
+
| `useForm` | Form state manager paired with `<FormProvider>` |
|
|
616
|
+
| `useFormField` | Field registration and validation inside `<FormProvider>` |
|
|
483
617
|
| `useConfirmDialog` | Imperatively open confirmation dialogs |
|
|
484
618
|
| `useToast` | Show toast notifications (requires `ToastProvider`) |
|
|
485
|
-
| `useTrinityPalette` | Access Trinity semantic palette from the current theme |
|
|
486
619
|
| `useFlowAutoLayout` | Auto-layout for React Flow / XYFlow diagrams |
|
|
620
|
+
| `useBrowserVoiceMode` | Browser speech recognition and synthesis for `AIVoiceMode` |
|
|
621
|
+
| `useSourceCategories` | A response's sources as `AISourcesPanel` categories, numbered like inline source chips, with the AI strings, locale and time zone |
|
|
622
|
+
| `useFormatAsOf` | Formats ISO 8601 as-of dates and date-times the same way on the server and in the browser |
|
|
623
|
+
| `useBlockSources` | The sources behind one table or chart block of an AI response: per cell, per point, and each source's number |
|
|
624
|
+
| `useAIStrings` | The AI strings: the nearest `AIConfigProvider`'s `strings` merged over its ancestors' and the English defaults |
|
|
625
|
+
| `useAIThresholds` | The confidence thresholds from the nearest `AIConfigProvider`, or the defaults (medium from 60%, high from 85%) |
|
|
626
|
+
| `useAILocale` | The locale for numbers and counts from `AIConfigProvider`, or `undefined` (formatters then use `en-US`) |
|
|
627
|
+
| `useAITimeZone` | The IANA time zone for dates from `AIConfigProvider`, else the runtime's; `UTC` during server rendering |
|
|
628
|
+
| `useAIInteraction` | Reports a content-free `AIInteractionEvent` to the nearest `AIConfigProvider`'s `onInteraction`; a no-op without one |
|
|
629
|
+
|
|
630
|
+
The behavior toolkit (`useAnnounce`, `liveRegionProps`, `REDUCED_MOTION_QUERY`, `visuallyHiddenSx`, `useDisclosure`, `useAsyncAction` and the hooks above) is the one sanctioned way to build each behavior; [docs/BEHAVIOR_CONTRACT.md](docs/BEHAVIOR_CONTRACT.md) maps every behavior to its export.
|
|
487
631
|
|
|
488
632
|
---
|
|
489
633
|
|
|
490
634
|
## Accessibility
|
|
491
635
|
|
|
492
|
-
Trinity targets **WCAG 2.
|
|
636
|
+
Trinity targets **WCAG 2.2 AA**. Every story runs axe in Storybook, the behavior contract's rules are all strict with no open finding, and the AI components announce their state changes to screen readers. Right-to-left layouts are best effort: logical properties, the theme's direction and bidi isolation are kept, but RTL is not release-tested ([docs/RTL.md](./docs/RTL.md)). The system provides:
|
|
493
637
|
|
|
494
638
|
| Feature | Details |
|
|
495
639
|
|---|---|
|
|
496
640
|
| **Automated testing** | `vitest-axe` (axe-core) a11y tests, dedicated `test:a11y` script |
|
|
497
641
|
| **Linting** | `eslint-plugin-jsx-a11y` enforced across all components |
|
|
498
642
|
| **Storybook addon** | `@storybook/addon-a11y` for interactive accessibility auditing |
|
|
499
|
-
| **
|
|
643
|
+
| **Behavior toolkit** | `useAnnounce`, `liveRegionProps`, `useAriaLive`, `useDisclosure`, `useAsyncAction`, `useClipboard`, `useRovingTabIndex`, `useReducedMotion`, `REDUCED_MOTION_QUERY` ([BEHAVIOR_CONTRACT](docs/BEHAVIOR_CONTRACT.md)); `useFocusTrap` is deprecated in favor of MUI's built-in trap |
|
|
500
644
|
| **Skip links** | `SkipLink` component for keyboard-first navigation |
|
|
501
645
|
| **Accessible colors** | `accessibleCombinations` — pre-validated WCAG AA text/background pairs |
|
|
502
646
|
| **Contrast utilities** | `getContrastRatio()`, `validateAccessibility()`, `meetsWCAG()` |
|
|
503
|
-
| **Visual hiding** | `VisuallyHidden` component for screen-reader-only content |
|
|
647
|
+
| **Visual hiding** | `VisuallyHidden` component for screen-reader-only content, and `visuallyHiddenSx` for an element that cannot be one |
|
|
504
648
|
|
|
505
649
|
```tsx
|
|
506
650
|
import { accessibleCombinations } from '@trinityui/design-system';
|
|
@@ -550,12 +694,18 @@ Trinity uses a **3-tier token architecture** (2,700+ lines) spanning colors, spa
|
|
|
550
694
|
import { baseTokens, semanticTokens, componentTokens } from '@trinityui/design-system/tokens';
|
|
551
695
|
```
|
|
552
696
|
|
|
553
|
-
All tokens are also available as CSS variables
|
|
697
|
+
All tokens are also available as CSS variables, in two name families. The static stylesheet (`trinity.css` in `@trinityui/design-system/css` and `@trinityui/design-system-css`) uses short names. The runtime variables that `injectTrinityCssVariables()` adds use `color-`, `spacing-`, `semantic-` and `component-` names. Use the names of the layer you load.
|
|
554
698
|
|
|
555
699
|
```css
|
|
556
|
-
|
|
557
|
-
var(--trinity-
|
|
558
|
-
var(--trinity-
|
|
700
|
+
/* Static stylesheet (trinity.css) */
|
|
701
|
+
var(--trinity-navy-900) /* base */
|
|
702
|
+
var(--trinity-text-primary) /* semantic */
|
|
703
|
+
var(--trinity-switch-track-on) /* component */
|
|
704
|
+
|
|
705
|
+
/* Runtime variables (injectTrinityCssVariables) */
|
|
706
|
+
var(--trinity-color-navy-900) /* base */
|
|
707
|
+
var(--trinity-semantic-text-primary) /* semantic */
|
|
708
|
+
var(--trinity-component-switch-track-on) /* component */
|
|
559
709
|
```
|
|
560
710
|
|
|
561
711
|
For token usage rules, see [docs/TOKEN_USAGE_RULES.md](./docs/TOKEN_USAGE_RULES.md).
|
|
@@ -601,7 +751,7 @@ For Angular, Vue, or static HTML projects:
|
|
|
601
751
|
<html data-theme="dark">
|
|
602
752
|
```
|
|
603
753
|
|
|
604
|
-
All design tokens are exposed as `--trinity-*` CSS variables. See the [CSS package README](./packages/design-system-css/README.md) for the full variable reference.
|
|
754
|
+
All design tokens are exposed as `--trinity-*` CSS variables with the static stylesheet names (`--trinity-navy-900`, `--trinity-space-4`). See the [CSS package README](./packages/design-system-css/README.md) for the full variable reference.
|
|
605
755
|
|
|
606
756
|
---
|
|
607
757
|
|
|
@@ -613,7 +763,7 @@ Interactive component documentation with live controls, dark mode toggle, and ac
|
|
|
613
763
|
pnpm run start # Opens at http://localhost:6006
|
|
614
764
|
```
|
|
615
765
|
|
|
616
|
-
|
|
766
|
+
Stories for every public component, with:
|
|
617
767
|
- Live prop controls and variant previews
|
|
618
768
|
- Dark mode toggle for all components
|
|
619
769
|
- Accessibility audit panel (axe-core integration)
|
|
@@ -628,7 +778,7 @@ Trinity exposes component and docs knowledge to AI coding agents (Claude Code, C
|
|
|
628
778
|
|
|
629
779
|
| Server | URL | When to use |
|
|
630
780
|
|---|---|---|
|
|
631
|
-
| `trinity-design-system-mcp` | `https://design.trinitylifesciences.com/api/mcp` | Production
|
|
781
|
+
| `trinity-design-system-mcp` | `https://design.trinitylifesciences.com/api/mcp` | Production, backed by the Storybook of the latest stable release (see below). Use this for day-to-day agent work. |
|
|
632
782
|
| `trinity-storybook` | `http://localhost:6006/mcp` | Local dev only. Backed by `@storybook/addon-mcp`, requires `pnpm run start` to be running. |
|
|
633
783
|
|
|
634
784
|
Both are pre-configured in [`.mcp.json`](./.mcp.json) — an MCP-aware client picks them up automatically from the repo root.
|
|
@@ -637,7 +787,10 @@ Available tools: `list-all-documentation`, `get-documentation`, `get-documentati
|
|
|
637
787
|
|
|
638
788
|
### How the production server is deployed
|
|
639
789
|
|
|
640
|
-
The production endpoint is **not** a separate service — it's an Azure Functions app in [`api/`](./api) (`@storybook/mcp`), deployed alongside the static Storybook build by the
|
|
790
|
+
The production endpoint is **not** a separate service — it's an Azure Functions app in [`api/`](./api) (`@storybook/mcp`), deployed alongside the static Storybook build by the Azure Static Web Apps workflow (`api_location: "api"`).
|
|
791
|
+
|
|
792
|
+
- **What it serves.** The workflow copies the build's own component manifest (`manifests/components.json`), its `index.json` and the package version into `api/manifests/`, and installs the API with `npm ci` from `api/package-lock.json`. The endpoint therefore lists exactly the components of the deployed build, named by their export (for example `InsightEngine`), without internal components. A component's status leads its summary and description: `[Deprecated — use X]`, `[Prerelease — @next only]` or `[Documentation incomplete]` ([`api/src/manifest.js`](./api/src/manifest.js)). Without a bundled manifest it falls back to one derived from the deployed `index.json`.
|
|
793
|
+
- **Which version.** Production shows the latest stable release only: it is deployed after a successful npm publish, from the published commit. Pushes to `main` go to a separate `next` environment ([CHANGESETS.md](./docs/CHANGESETS.md#the-public-catalog-follows-releases)). Both deploys are paused while the remediation program pauses npm publishing.
|
|
641
794
|
|
|
642
795
|
`staticwebapp.config.json` allows anonymous access to `/api/mcp`, `/index.json`, and `/project.json` specifically so the MCP handler and its manifest source stay reachable without authentication, while the rest of the site stays behind Azure AD.
|
|
643
796
|
|
|
@@ -654,27 +807,31 @@ curl -s -X POST https://design.trinitylifesciences.com/api/mcp \
|
|
|
654
807
|
|
|
655
808
|
A healthy response is `HTTP/2 200` with an `mcp-session-id` header and a JSON-RPC `result` containing `serverInfo.name: "@storybook/mcp"`.
|
|
656
809
|
|
|
810
|
+
For a full check, `node scripts/mcp-smoke.mjs --url <host>/api/mcp --manifest storybook-static/manifests/components.json` also lists the components and compares them with the manifest the deploy bundled. The catalog workflow runs it after every deploy, and the deploy fails when they differ. The `next` environment's URL, for checking unreleased work, is in the Azure portal (Static Web App → Environments). The production endpoint currently answers `POST` with HTTP 405; the triage and the open checks are in [docs/DOCS_DEPLOYMENT.md](./docs/DOCS_DEPLOYMENT.md).
|
|
811
|
+
|
|
657
812
|
---
|
|
658
813
|
|
|
659
814
|
## Development
|
|
660
815
|
|
|
661
816
|
```bash
|
|
662
|
-
pnpm install
|
|
663
|
-
pnpm run start
|
|
664
|
-
pnpm run
|
|
665
|
-
pnpm run
|
|
666
|
-
pnpm run test
|
|
667
|
-
pnpm run test:a11y
|
|
668
|
-
pnpm run lint
|
|
669
|
-
pnpm run lint:tokens
|
|
670
|
-
pnpm run size
|
|
817
|
+
pnpm install # Install dependencies
|
|
818
|
+
pnpm run start # Storybook dev server (:6006); there is no separate app dev server
|
|
819
|
+
pnpm run build # Token CSS sync, Vite library build and declarations
|
|
820
|
+
pnpm run typecheck # Library type check and the app type-debt ratchet
|
|
821
|
+
pnpm run test # Run all tests
|
|
822
|
+
pnpm run test:a11y # Run accessibility tests only
|
|
823
|
+
pnpm run lint:changed # ESLint on the lines you changed
|
|
824
|
+
pnpm run lint:tokens # Token usage rule validation
|
|
825
|
+
pnpm run size # Check bundle size limits
|
|
826
|
+
pnpm run verify:release # Every release gate, in CI order
|
|
671
827
|
```
|
|
672
828
|
|
|
673
829
|
### Release and Publishing
|
|
674
830
|
|
|
675
|
-
-
|
|
676
|
-
-
|
|
677
|
-
- `
|
|
831
|
+
- **Versions and changelogs come from [Changesets](./docs/CHANGESETS.md).** Pull requests add changesets. A maintainer runs `pnpm changeset:version` on a release branch and merges the version and `CHANGELOG.md` changes to `main` through a reviewed pull request. `@trinityui/design-system` and `@trinityui/design-system-css` are versioned together.
|
|
832
|
+
- **Only verified artifacts are published.** `verify-release.yml` runs every gate of `pnpm run verify:release` (the ordered list is in [docs/process/CI.md](docs/process/CI.md)) on pull requests to `main` and `release/**`, and packs two checksum-bound tarballs, each with its LICENSE. The publish workflows run that verification again for the commit they publish. The `publish` job checks the tarballs' checksums and publishes only those tarballs, with npm provenance and lifecycle scripts disabled, and only for versions not yet on npm.
|
|
833
|
+
- **Direct publication is blocked.** In a source checkout, a `prepublishOnly` guard in both packages stops `npm publish` and `pnpm publish`, `pnpm changeset:publish` runs the same guard, and `pnpm run check:release-paths` enforces the single publication path.
|
|
834
|
+
- **Publishing is paused during the remediation program.** The `publish` job is `if: false`, so a push to `main` runs verification and publishes nothing. See [G-05 freeze record](./docs/remediation/G-05-freeze-2026-10.md).
|
|
678
835
|
|
|
679
836
|
---
|
|
680
837
|
|
|
@@ -684,17 +841,21 @@ pnpm run size # Check bundle size limits
|
|
|
684
841
|
|---|---|
|
|
685
842
|
| [Quick Start](./docs/QUICK_START.md) | 5-minute getting-started guide |
|
|
686
843
|
| [Developer Guide](./docs/DEVELOPER_GUIDE.md) | Comprehensive development reference |
|
|
687
|
-
| [Accessibility](./docs/ACCESSIBILITY.md) | WCAG 2.
|
|
844
|
+
| [Accessibility](./docs/ACCESSIBILITY.md) | WCAG 2.2 AA compliance guide |
|
|
845
|
+
| [Behavior Contract](./docs/BEHAVIOR_CONTRACT.md) | The behavior rules every component meets, and the toolkit export for each |
|
|
688
846
|
| [Component A11y Checklist](./docs/COMPONENT_A11Y_CHECKLIST.md) | Per-component accessibility requirements |
|
|
689
847
|
| [Token Usage Rules](./docs/TOKEN_USAGE_RULES.md) | When and how to use each token tier |
|
|
690
848
|
| [Storybook Standards](./docs/STORYBOOK_STANDARDS.md) | Story authoring conventions |
|
|
691
849
|
| [Testing Strategy](./docs/TESTING_STRATEGY.md) | Unit, a11y, and visual regression testing |
|
|
692
|
-
| [MUI Compatibility](./docs/MUI_COMPATIBILITY.md) | MUI version support matrix |
|
|
693
850
|
| [Integrating into Existing Apps](./docs/TRINITY_EXISTING_APP.md) | Migration guide for existing projects |
|
|
694
851
|
| [New App Setup](./docs/TRINITY_NEW_APP.md) | Starting a new project with Trinity |
|
|
695
|
-
| [Component Picker](./docs/COMPONENT_PICKER.md) |
|
|
852
|
+
| [Component Picker](./docs/COMPONENT_PICKER.md) | Which component to use, and what the theme changes on MUI components |
|
|
853
|
+
| [Patterns](./docs/PATTERNS.md) | The pattern layer: contract, index, export waiver |
|
|
854
|
+
| [AppLayout AI Panel](./docs/APPLAYOUT_AI_PANEL.md) | The AI panel's three routes, both modes, and what changed in 2.13.0 |
|
|
855
|
+
| [HITL Catalog](./docs/HITL_CATALOG.md) | The human-in-the-loop components and their stories |
|
|
856
|
+
| [Microcopy](./docs/MICROCOPY.md) | Voice, labels, errors and the AI strings |
|
|
696
857
|
| [Governance](./docs/GOVERNANCE.md) | Contribution process, RFC, and deprecation policy |
|
|
697
|
-
| [Migration](./MIGRATION.md) |
|
|
858
|
+
| [Migration](./MIGRATION.md) | Behavior corrections in 2.x and the v3.0 removals |
|
|
698
859
|
| [Contributing](./CONTRIBUTING.md) | How to contribute |
|
|
699
860
|
| [Changelog](./CHANGELOG.md) | Release history |
|
|
700
861
|
|