@trinityui/design-system 2.11.0 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2209 -0
- package/CONTRIBUTING.md +180 -69
- package/LICENSE +21 -0
- package/MIGRATION.md +523 -21
- 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 +17230 -9097
- 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 +192 -72
- package/dist/components/AI/AIChainOfThought.d.ts.map +1 -1
- package/dist/components/AI/AIChainOfThought.types.d.ts +296 -34
- 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 +91 -13
- 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 +107 -17
- 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 +52 -5
- 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 +135 -7
- 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 +32 -2
- 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/SandboxedIframeRenderer/SandboxedIframeRenderer.d.ts +48 -4
- package/dist/components/SandboxedIframeRenderer/SandboxedIframeRenderer.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 +6 -0
- package/dist/components/TopNavHeader.d.ts.map +1 -1
- package/dist/components/TopNavWithSidebar.d.ts +49 -1
- 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 +136 -0
- package/dist/components/shared/safeContent.d.ts.map +1 -0
- 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 +13923 -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 +792 -0
- 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
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Root props contract helpers (ADR-04, master-plan E-15).
|
|
3
|
+
* @module components/shared/rootProps
|
|
4
|
+
*
|
|
5
|
+
* @internal — not part of the public API; see ADR-02
|
|
6
|
+
*
|
|
7
|
+
* ADR-04 gives every new or touched component the same root contract: the ref and
|
|
8
|
+
* `className` reach the root, rest props are spread on it, a closed list of owned
|
|
9
|
+
* attributes stays the component's, and `id`, `aria-describedby` and `aria-labelledby` are
|
|
10
|
+
* composed. `useRootProps` implements the rest-props part once:
|
|
11
|
+
*
|
|
12
|
+
* - The consumer's rest props are spread first.
|
|
13
|
+
* - The owned attributes ({@link OwnedAttribute}) are always the component's. A consumer
|
|
14
|
+
* value for one of them is dropped, and a development warning names it, once per
|
|
15
|
+
* component. Production builds print nothing.
|
|
16
|
+
* - `id` defaults to `useId()`, so it is stable between the server and the client.
|
|
17
|
+
* - `aria-describedby` and `aria-labelledby` join the component's ids and the consumer's,
|
|
18
|
+
* in that order, without duplicates.
|
|
19
|
+
*
|
|
20
|
+
* Two types here are public, because public `slotProps` and docs reference them:
|
|
21
|
+
* {@link OwnedAttribute} and {@link TrinitySlotProps}. Everything else is internal.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* const { className, sx, id, ...rest } = props;
|
|
26
|
+
* const rootProps = useRootProps({ rest, id, owned: { role: 'log', 'aria-live': 'polite' }, componentName: 'ChatThread' });
|
|
27
|
+
* return <Box ref={ref} className={className} sx={mergeSx(baseSx, sx)} {...rootProps} />;
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
import * as React from 'react';
|
|
31
|
+
import type { SxProps, Theme } from '@mui/material/styles';
|
|
32
|
+
/**
|
|
33
|
+
* The attributes a Trinity component owns on its root and on its slots. A consumer value
|
|
34
|
+
* for one of them is ignored, with a development warning, so rest props cannot break the
|
|
35
|
+
* component's role or live-region model (ADR-04, ADR-19).
|
|
36
|
+
*
|
|
37
|
+
* @since 2.13.0
|
|
38
|
+
*/
|
|
39
|
+
export type OwnedAttribute = 'role' | 'aria-live' | 'aria-busy' | 'aria-relevant' | 'aria-atomic' | 'aria-modal';
|
|
40
|
+
/**
|
|
41
|
+
* Props of a Trinity-owned slot, as accepted by a component's `slotProps.<slot>`:
|
|
42
|
+
* `className`, `sx`, `id`, and the HTML attributes of the slot's element, including
|
|
43
|
+
* `aria-*`, `data-*` and event handlers. The {@link OwnedAttribute} attributes are not
|
|
44
|
+
* accepted. Slot names and elements are documented per component (ADR-04 (6)).
|
|
45
|
+
*
|
|
46
|
+
* @since 2.13.0
|
|
47
|
+
*/
|
|
48
|
+
export type TrinitySlotProps<El extends HTMLElement = HTMLElement> = {
|
|
49
|
+
/** Added to the slot's own class names. */
|
|
50
|
+
className?: string;
|
|
51
|
+
/** Applied after the slot's own styles. */
|
|
52
|
+
sx?: SxProps<Theme>;
|
|
53
|
+
/** Replaces the slot's generated id. The component's references follow it. */
|
|
54
|
+
id?: string;
|
|
55
|
+
} & Omit<React.HTMLAttributes<El>, OwnedAttribute | 'className' | 'id'> & {
|
|
56
|
+
[dataAttribute: `data-${string}`]: string | number | boolean | undefined;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* The rest props a component's root accepts: every HTML attribute of the root element,
|
|
60
|
+
* minus the component's own prop names and `color` (ADR-04 (3)).
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
export type TrinityRootProps<El extends HTMLElement, Own> = Omit<React.HTMLAttributes<El>, keyof Own | 'color'>;
|
|
64
|
+
/** The owned attributes, as a runtime list. @internal */
|
|
65
|
+
export declare const OWNED_ATTRIBUTES: readonly OwnedAttribute[];
|
|
66
|
+
/** An id list: one id string, or several, with empty entries skipped. @internal */
|
|
67
|
+
export type IdList = string | ReadonlyArray<string | false | null | undefined> | false | null | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Joins id lists into one space-separated value: tokens in order, duplicates and empty
|
|
70
|
+
* entries removed. Returns `undefined` when nothing is left.
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
73
|
+
export declare function joinIds(...lists: IdList[]): string | undefined;
|
|
74
|
+
/** Whether `key` is one of the owned attributes. @internal */
|
|
75
|
+
export declare function isOwnedAttribute(key: string): key is OwnedAttribute;
|
|
76
|
+
/**
|
|
77
|
+
* Warns once per component that a consumer passed owned attributes, which were ignored.
|
|
78
|
+
* Silent in production builds.
|
|
79
|
+
* @internal
|
|
80
|
+
*/
|
|
81
|
+
export declare function warnOwnedAttributes(componentName: string, attributes: readonly string[], slotName?: string): void;
|
|
82
|
+
/**
|
|
83
|
+
* Test-only: forget which components already warned, so a test can observe the warning
|
|
84
|
+
* again.
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
export declare function __resetOwnedAttributeWarnings(): void;
|
|
88
|
+
/** Options of {@link useRootProps}. @internal */
|
|
89
|
+
export interface UseRootPropsOptions<El extends HTMLElement = HTMLElement> {
|
|
90
|
+
/** The consumer's rest props. Spread first. */
|
|
91
|
+
rest?: React.HTMLAttributes<El> | Record<string, unknown>;
|
|
92
|
+
/**
|
|
93
|
+
* The owned attributes this component sets on its root. Applied after `rest`; a consumer
|
|
94
|
+
* value never replaces them. Owned attributes left out here are not set at all.
|
|
95
|
+
*/
|
|
96
|
+
owned?: Partial<Record<OwnedAttribute, string | boolean | undefined>>;
|
|
97
|
+
/** The consumer's `id`, if the component takes it out of `rest`. Else `rest.id`, else `useId()`. */
|
|
98
|
+
id?: string;
|
|
99
|
+
/** The component's own description ids, joined before the consumer's `aria-describedby`. */
|
|
100
|
+
describedBy?: IdList;
|
|
101
|
+
/** The component's own label ids, joined before the consumer's `aria-labelledby`. */
|
|
102
|
+
labelledBy?: IdList;
|
|
103
|
+
/** Names the component in the development warning. */
|
|
104
|
+
componentName: string;
|
|
105
|
+
}
|
|
106
|
+
/** What {@link useRootProps} returns: props to spread on the root element. @internal */
|
|
107
|
+
export type RootPropsResult<El extends HTMLElement = HTMLElement> = React.HTMLAttributes<El> & {
|
|
108
|
+
id: string;
|
|
109
|
+
[attribute: string]: unknown;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Builds the root's props: the consumer's rest props, then the component's owned
|
|
113
|
+
* attributes, a stable `id` and the joined `aria-describedby` and `aria-labelledby`.
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
116
|
+
export declare function useRootProps<El extends HTMLElement = HTMLElement>(options: UseRootPropsOptions<El>): RootPropsResult<El>;
|
|
117
|
+
//# sourceMappingURL=rootProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rootProps.d.ts","sourceRoot":"","sources":["../../../src/components/shared/rootProps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,aAAa,GAAG,YAAY,CAAC;AAEjH;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,CAAC,EAAE,SAAS,WAAW,GAAG,WAAW,IAAI;IACnE,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,8EAA8E;IAC9E,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,cAAc,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG;IACtE,CAAC,aAAa,EAAE,QAAQ,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC1E,CAAC;AAEJ;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC;AAEhH,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAAqF,CAAC;AAI5I,mFAAmF;AACnF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;AAE1G;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAY9D;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAID;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAWjH;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB,CAAC,EAAE,SAAS,WAAW,GAAG,WAAW;IACvE,+CAA+C;IAC/C,IAAI,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;IACtE,oGAAoG;IACpG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wFAAwF;AACxF,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,WAAW,GAAG,WAAW,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG;IAC7F,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,SAAS,WAAW,GAAG,WAAW,EAAE,OAAO,EAAE,mBAAmB,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAiCxH"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internal — not part of the public API; see ADR-02. Used by components that render untrusted content.
|
|
3
|
+
* @fileoverview Safe rendering of untrusted (model-, user- or data-supplied) content.
|
|
4
|
+
* @module components/shared/safeContent
|
|
5
|
+
*
|
|
6
|
+
* One module owns every policy for turning untrusted strings into DOM, so AI
|
|
7
|
+
* components never reach for `dangerouslySetInnerHTML` (ADR-09, audit SEC-01..03):
|
|
8
|
+
*
|
|
9
|
+
* - {@link renderSafeHtml} — a deterministic string tokenizer (no DOMParser, no
|
|
10
|
+
* `window`), so `renderToString` and the client build identical trees (no
|
|
11
|
+
* hydration mismatch). Allowlisted tags become React elements; dangerous tags
|
|
12
|
+
* are dropped with their content; every other tag is unwrapped to its text.
|
|
13
|
+
* - {@link isSafeHref} / {@link isSafeSrc} — separate URL policies for links and
|
|
14
|
+
* images, evaluated after decoding entities and removing whitespace/C0 controls,
|
|
15
|
+
* so obfuscations like `java\tscript:` or `javascript:` are caught.
|
|
16
|
+
* - {@link sanitizeInlineStyle} — a typographic/box allowlist for inline styles.
|
|
17
|
+
*
|
|
18
|
+
* React escapes every text node and attribute value, so output is inert by
|
|
19
|
+
* construction; the policies decide only what structure survives.
|
|
20
|
+
*/
|
|
21
|
+
import * as React from 'react';
|
|
22
|
+
/**
|
|
23
|
+
* @internal
|
|
24
|
+
* Decode decimal, hex and known named character references the way browsers do.
|
|
25
|
+
* Numeric references decode with or without a semicolon. Named references need
|
|
26
|
+
* their semicolon, except the legacy set; in attribute values a legacy reference
|
|
27
|
+
* followed by `=` or an alphanumeric stays literal (so `?a=1©=2` keeps its
|
|
28
|
+
* query string).
|
|
29
|
+
*/
|
|
30
|
+
export declare function decodeEntities(input: string, inAttribute?: boolean): string;
|
|
31
|
+
/**
|
|
32
|
+
* @internal
|
|
33
|
+
* Link policy: http, https, mailto, tel, relative paths and fragments.
|
|
34
|
+
* Everything else — javascript:, vbscript:, data:, file:, and any obfuscated
|
|
35
|
+
* form of them — is unsafe.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isSafeHref(url: string | null | undefined): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* @internal
|
|
40
|
+
* Image-source policy: http, https, blob:, relative paths, and raster
|
|
41
|
+
* `data:image/(png|jpeg|gif|webp|avif|bmp|x-icon)`. Never `data:image/svg+xml`
|
|
42
|
+
* (SVG can carry script), never any other data: payload, and no app-shell
|
|
43
|
+
* schemes (file:, asset:, tauri:, capacitor:).
|
|
44
|
+
*/
|
|
45
|
+
export declare function isSafeSrc(url: string | null | undefined): boolean;
|
|
46
|
+
/** @internal Test-only: forget which unsafe-URL warnings were shown (mirrors `__resetDevWarnings` in warnDeprecated.ts). */
|
|
47
|
+
export declare function __resetUnsafeUrlWarnings(): void;
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
* Dev-only, once per component, kind and scheme: report a URL that a safety
|
|
51
|
+
* policy blocked, so integrators notice a dropped link or image instead of
|
|
52
|
+
* silently losing it. Silent in production builds.
|
|
53
|
+
*/
|
|
54
|
+
export declare function warnUnsafeUrl(component: string, url: string | null | undefined, kind?: 'link' | 'image'): void;
|
|
55
|
+
/**
|
|
56
|
+
* @internal
|
|
57
|
+
* True for sources fetched from the network: http(s) and network-path URLs.
|
|
58
|
+
* Browsers treat a backslash like a slash in such URLs, so `\\host/x` and
|
|
59
|
+
* `/\\host/x` count as remote too.
|
|
60
|
+
*/
|
|
61
|
+
export declare function isRemoteSrc(url: string | null | undefined): boolean;
|
|
62
|
+
/** @internal A style map suitable for an MUI `sx` / React `style` object. */
|
|
63
|
+
export type SafeStyleMap = Record<string, string | number>;
|
|
64
|
+
/**
|
|
65
|
+
* @internal
|
|
66
|
+
* Parse an inline `style` attribute through the typographic/box allowlist.
|
|
67
|
+
* Positioning (position, inset, top/left/right/bottom, z-index), transforms,
|
|
68
|
+
* filters and any value that can fetch or execute (url(), expression(), var(),
|
|
69
|
+
* attr(), image-set(), @import, escapes) are dropped.
|
|
70
|
+
*/
|
|
71
|
+
export declare function sanitizeInlineStyle(styleValue: string | null | undefined): SafeStyleMap | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* @internal
|
|
74
|
+
* Tags removed together with everything inside them. A superset of the
|
|
75
|
+
* historical HtmlToMui BLOCKED_TAGS, so nothing previously dropped is loosened.
|
|
76
|
+
*/
|
|
77
|
+
export declare const DROP_WITH_CONTENT_TAGS: ReadonlySet<string>;
|
|
78
|
+
/** @internal Default (and maximum) tag set kept by {@link renderSafeHtml}. */
|
|
79
|
+
export declare const DEFAULT_ALLOWED_TAGS: ReadonlySet<string>;
|
|
80
|
+
type Token = {
|
|
81
|
+
kind: 'text';
|
|
82
|
+
value: string;
|
|
83
|
+
} | {
|
|
84
|
+
kind: 'start';
|
|
85
|
+
name: string;
|
|
86
|
+
attrs: Record<string, string>;
|
|
87
|
+
selfClosing: boolean;
|
|
88
|
+
} | {
|
|
89
|
+
kind: 'end';
|
|
90
|
+
name: string;
|
|
91
|
+
};
|
|
92
|
+
/** @internal Split HTML into tokens. Comments, doctypes and processing instructions vanish. */
|
|
93
|
+
export declare function tokenizeHtml(source: string): Token[];
|
|
94
|
+
/** @internal Tags {@link renderSafeHtml} can keep. */
|
|
95
|
+
export type SafeHtmlTag = 'b' | 'strong' | 'i' | 'em' | 'code' | 'br' | 'p' | 'ul' | 'ol' | 'li' | 'span' | 'a' | 'mark';
|
|
96
|
+
/** @internal Options for {@link renderSafeHtml}. */
|
|
97
|
+
export interface RenderSafeHtmlOptions {
|
|
98
|
+
/**
|
|
99
|
+
* Restrict the kept tags to a subset of {@link DEFAULT_ALLOWED_TAGS} (see
|
|
100
|
+
* {@link SafeHtmlTag}). Other names are accepted, warned about in development
|
|
101
|
+
* and unwrapped to text: the builder only implements the HTML parser's nesting
|
|
102
|
+
* rules for the default tags, and that is what keeps server and client output
|
|
103
|
+
* identical (no hydration mismatch).
|
|
104
|
+
*/
|
|
105
|
+
allowTags?: Iterable<string>;
|
|
106
|
+
/**
|
|
107
|
+
* Classes allowed on `span`/`mark`, mapped to the element that renders them.
|
|
108
|
+
* `{ 'insight-highlight': 'span' }` keeps the class on a span;
|
|
109
|
+
* `{ highlight: 'mark' }` renders a semantic `<mark>`. All other classes are dropped.
|
|
110
|
+
*/
|
|
111
|
+
allowClasses?: Record<string, 'span' | 'mark'>;
|
|
112
|
+
/**
|
|
113
|
+
* The id of the caller's new-tab hint ("Opens in a new tab", WI-56). Every kept
|
|
114
|
+
* `target="_blank"` anchor gets `aria-describedby` with this id, so its name
|
|
115
|
+
* stays its text. The caller renders the hint element once.
|
|
116
|
+
*/
|
|
117
|
+
newTabHintId?: string;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* @internal
|
|
121
|
+
* Render untrusted HTML as React nodes through the allowlist. Deterministic:
|
|
122
|
+
* the same input yields the same tree on the server and the client.
|
|
123
|
+
*
|
|
124
|
+
* Default tags: b, strong, i, em, code, br, p, ul, ol, li, span, a, mark.
|
|
125
|
+
* Anchors keep only a safe `href`, `title` and `target="_blank"`, and always
|
|
126
|
+
* get `rel="noopener noreferrer"`; an anchor with an unsafe href becomes text.
|
|
127
|
+
* With `newTabHintId`, a `target="_blank"` anchor is described by that hint.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```tsx
|
|
131
|
+
* <Box>{renderSafeHtml(thought, { allowClasses: { 'insight-highlight': 'span' } })}</Box>
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
export declare function renderSafeHtml(html: string | null | undefined, options?: RenderSafeHtmlOptions): React.ReactNode;
|
|
135
|
+
export {};
|
|
136
|
+
//# sourceMappingURL=safeContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safeContent.d.ts","sourceRoot":"","sources":["../../../src/components/shared/safeContent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6F/B;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,UAAQ,GAAG,MAAM,CAqBzE;AAqBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAMlE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAQjE;AAID,4HAA4H;AAC5H,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,GAAE,MAAM,GAAG,OAAgB,GAAG,IAAI,CAetH;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAMnE;AA+BD,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAkC3D;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAoBnG;AAMD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAIrD,CAAC;AAKH,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAEnD,CAAC;AA2BH,KAAK,KAAK,GACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAQlC,+FAA+F;AAC/F,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAmIpD;AAoBD,sDAAsD;AACtD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;AAEzH,oDAAoD;AACpD,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC/C;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA6MD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,GAAE,qBAA0B,GAAG,KAAK,CAAC,SAAS,CAIpH"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Target-size hit area: one recipe that grows a compact control's pointer target to
|
|
3
|
+
* the 24px floor without changing how it looks.
|
|
4
|
+
* @module components/shared/targetSize
|
|
5
|
+
*
|
|
6
|
+
* @internal — not part of the public API; see ADR-02
|
|
7
|
+
*
|
|
8
|
+
* WCAG 2.2 SC 2.5.8 Target Size (Minimum, AA) asks for a pointer target of at least 24 by 24 CSS
|
|
9
|
+
* pixels. The program's floor is that 24px (DN-12, 2026-10-05; the record is
|
|
10
|
+
* docs/remediation/primitives/target-size.md). Standard MUI controls already meet it. A compact
|
|
11
|
+
* control whose visual box is smaller (a 20px pill, a dense icon button) gets a larger hit area
|
|
12
|
+
* here, so its look and its layout stay the same:
|
|
13
|
+
*
|
|
14
|
+
* - the host keeps its box and gets `position: relative`;
|
|
15
|
+
* - an `::after` pseudo-element is the hit area. It is centred on the host and is
|
|
16
|
+
* `max(box, floor)` on each axis: `inset: min(0px, (100% - floor) / 2)`. A host that is already
|
|
17
|
+
* 24px or larger on an axis gets a hit area equal to its box on that axis, so the recipe is a
|
|
18
|
+
* no-op there;
|
|
19
|
+
* - the pseudo-element paints nothing. A press on it is a press on the host (hit testing reports
|
|
20
|
+
* the originating element), so the host's own handlers, cursor and hover styles apply.
|
|
21
|
+
*
|
|
22
|
+
* The inset is symmetric, so the recipe needs no physical `left`/`right` and works the same in
|
|
23
|
+
* right-to-left layouts.
|
|
24
|
+
*
|
|
25
|
+
* Use it on a control that is not an inline target in a sentence (the 2.5.8 inline exception) and
|
|
26
|
+
* whose visual size cannot grow. Do not hand-roll a local `::before`/`::after` hit area instead:
|
|
27
|
+
* the remediation stop rule forbids local hit-area hacks (WI-54).
|
|
28
|
+
*
|
|
29
|
+
* Limits:
|
|
30
|
+
* - The host must not be absolutely or fixed positioned (the recipe sets `position: relative`);
|
|
31
|
+
* put the recipe on an inner element instead.
|
|
32
|
+
* - The host must not use its own `::after`.
|
|
33
|
+
* - An ancestor with `overflow: hidden` clips the hit area at its edge, like any other content.
|
|
34
|
+
* - Two compact controls closer than 24px centre to centre would share hit area; the later one in
|
|
35
|
+
* the DOM wins. Keep such controls at least 24px apart (the 2.5.8 spacing rule).
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* <IconButton aria-label="Remove filter" sx={[{ width: 20, height: 20 }, targetSizeHitAreaSx]}>
|
|
40
|
+
* <CloseIcon fontSize="inherit" />
|
|
41
|
+
* </IconButton>
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
import type { SxProps, Theme } from '@mui/material/styles';
|
|
45
|
+
/**
|
|
46
|
+
* One style object of an `sx` array. Narrower than `SxProps<Theme>` (and assignable to it), so a
|
|
47
|
+
* host can combine the recipe with its own styles: `sx={[{ width: 20 }, targetSizeHitAreaSx]}`.
|
|
48
|
+
*/
|
|
49
|
+
type SxStyleObject = Exclude<Extract<SxProps<Theme>, ReadonlyArray<unknown>>[number], boolean | ((theme: Theme) => unknown)>;
|
|
50
|
+
/**
|
|
51
|
+
* The floor in CSS pixels: `scaleHierarchy.touchTargets.floor` (24, DN-12).
|
|
52
|
+
*
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
export declare const TARGET_SIZE_FLOOR_PX: number;
|
|
56
|
+
/**
|
|
57
|
+
* The hit-area recipe. Add it to the host's `sx` array after the component's own styles and
|
|
58
|
+
* before the consumer's `sx`, so a consumer can still override it deliberately.
|
|
59
|
+
*
|
|
60
|
+
* @internal
|
|
61
|
+
*/
|
|
62
|
+
export declare const targetSizeHitAreaSx: SxStyleObject;
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=targetSize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targetSize.d.ts","sourceRoot":"","sources":["../../../src/components/shared/targetSize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAG3D;;;GAGG;AACH,KAAK,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC;AAE7H;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAA0C,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAOjC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview useContainerInlineSize: an element's inline size from a ResizeObserver
|
|
3
|
+
* (master-plan H-20, ADR-11 (5), ADR-27).
|
|
4
|
+
* @module components/shared/useContainerInlineSize
|
|
5
|
+
*
|
|
6
|
+
* @internal — not part of the public API; see ADR-02
|
|
7
|
+
*
|
|
8
|
+
* For a switch CSS container queries cannot express: a structural change, such as
|
|
9
|
+
* ListDetailTemplate's split view becoming a list with a full-width drawer
|
|
10
|
+
* (`collapseMode="container"`). Styling that only changes properties uses
|
|
11
|
+
* `containerUp` / `containerDown` (containerQueries.ts) instead.
|
|
12
|
+
*
|
|
13
|
+
* Semantics:
|
|
14
|
+
*
|
|
15
|
+
* - The size is `null` until the element is measured: on the server and in the first client
|
|
16
|
+
* render, so hydration matches (ADR-27's stable initial value). Callers treat `null` as
|
|
17
|
+
* "wide enough" (the split layout).
|
|
18
|
+
* - The element is passed through the returned callback ref, so an element that is replaced
|
|
19
|
+
* (a new root node) is observed again.
|
|
20
|
+
* - The size is the border box's content inline size (`contentBoxSize[0].inlineSize`, else
|
|
21
|
+
* `contentRect.width`), updated on every ResizeObserver report; state changes only when the
|
|
22
|
+
* value changes.
|
|
23
|
+
* - Without ResizeObserver (an old engine, a server) the size stays `null`.
|
|
24
|
+
* - `enabled: false` observes nothing and reports `null`.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* const [inlineSize, measureRef] = useContainerInlineSize<HTMLDivElement>({ enabled: collapseMode === 'container' });
|
|
29
|
+
* const handleRef = useForkRef(ref, measureRef);
|
|
30
|
+
* const collapsed = inlineSize !== null && inlineSize < threshold;
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
/** Options of {@link useContainerInlineSize}. @internal */
|
|
34
|
+
export interface UseContainerInlineSizeOptions {
|
|
35
|
+
/** Observe the element. Default `true`; `false` reports `null`. */
|
|
36
|
+
enabled?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The inline size of the element given to the returned ref, or `null` before it is measured.
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export declare function useContainerInlineSize<El extends HTMLElement = HTMLElement>(options?: UseContainerInlineSizeOptions): [inlineSize: number | null, ref: (node: El | null) => void];
|
|
43
|
+
//# sourceMappingURL=useContainerInlineSize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useContainerInlineSize.d.ts","sourceRoot":"","sources":["../../../src/components/shared/useContainerInlineSize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,2DAA2D;AAC3D,MAAM,WAAW,6BAA6B;IAC5C,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AASD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,WAAW,GAAG,WAAW,EACzE,OAAO,GAAE,6BAAkC,GAC1C,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC,CAqB7D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type AsyncActionResult } from '../../hooks';
|
|
2
|
+
/** Options of {@link useCopyAction}. @internal */
|
|
3
|
+
export interface UseCopyActionOptions {
|
|
4
|
+
/** Announced through `useAnnounce`: `success` politely, `error` assertively. */
|
|
5
|
+
messages?: {
|
|
6
|
+
success?: string;
|
|
7
|
+
error?: string;
|
|
8
|
+
};
|
|
9
|
+
/** Called with the copied text after a successful copy. */
|
|
10
|
+
onCopied?: (text: string) => void;
|
|
11
|
+
/** Called with the error after a failed copy. Without it the error goes to `globalThis.reportError`. */
|
|
12
|
+
onCopyError?: (error: unknown) => void;
|
|
13
|
+
/**
|
|
14
|
+
* How long `status` stays `'copied'` or `'error'`, in ms.
|
|
15
|
+
* @default 2000
|
|
16
|
+
*/
|
|
17
|
+
feedbackDuration?: number;
|
|
18
|
+
}
|
|
19
|
+
/** Where the latest copy is. @internal */
|
|
20
|
+
export type CopyActionStatus = 'idle' | 'pending' | 'copied' | 'error';
|
|
21
|
+
/** Return value of {@link useCopyAction}. @internal */
|
|
22
|
+
export interface UseCopyActionResult {
|
|
23
|
+
/** Copies `text`. Resolves to the outcome; never rejects. Stable identity. */
|
|
24
|
+
copy: (text: string) => Promise<AsyncActionResult>;
|
|
25
|
+
status: CopyActionStatus;
|
|
26
|
+
/** Back to `'idle'`. Stable identity. */
|
|
27
|
+
reset: () => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Copies text through `useClipboard` and `useAsyncAction`, with failures surfaced. See the
|
|
31
|
+
* module notes.
|
|
32
|
+
* @internal
|
|
33
|
+
*/
|
|
34
|
+
export declare function useCopyAction(options?: UseCopyActionOptions): UseCopyActionResult;
|
|
35
|
+
//# sourceMappingURL=useCopyAction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCopyAction.d.ts","sourceRoot":"","sources":["../../../src/components/shared/useCopyAction.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAgC,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAYnF,kDAAkD;AAClD,MAAM,WAAW,oBAAoB;IACnC,gFAAgF;IAChF,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wGAAwG;IACxG,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,0CAA0C;AAC1C,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvE,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,8EAA8E;IAC9E,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,EAAE,gBAAgB,CAAC;IACzB,yCAAyC;IACzC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,CAmDrF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview useOverflow: whether an element's content overflows its box (master-plan D-43).
|
|
3
|
+
* @module components/shared/useOverflow
|
|
4
|
+
*
|
|
5
|
+
* @internal — not part of the public API; see ADR-02
|
|
6
|
+
*
|
|
7
|
+
* One measurement for every component that reacts to overflow: OverflowTooltip today,
|
|
8
|
+
* MetaChip truncation (D-04) and CodeBlock scrolling (D-07) next. Semantics:
|
|
9
|
+
*
|
|
10
|
+
* - The first render reports no overflow, on the server and on the client, so hydration
|
|
11
|
+
* matches.
|
|
12
|
+
* - The element is measured after layout, on every commit. A content change (a new value,
|
|
13
|
+
* streamed text) is measured without a dependency list.
|
|
14
|
+
* - It is measured again when a ResizeObserver reports the element and on window resize.
|
|
15
|
+
* Without ResizeObserver, window resize still works.
|
|
16
|
+
* - State changes only when a result changes, so a re-render or a resize with the same
|
|
17
|
+
* overflow causes no extra render.
|
|
18
|
+
* - The observer is disconnected and the resize listener removed on unmount.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* const ref = React.useRef<HTMLSpanElement>(null);
|
|
23
|
+
* const { overflowX } = useOverflow(ref, { axis: 'x' });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import * as React from 'react';
|
|
27
|
+
/** Which overflow to measure. `'both'` (the default) measures both axes. */
|
|
28
|
+
export type OverflowAxis = 'x' | 'y' | 'both';
|
|
29
|
+
export interface UseOverflowOptions {
|
|
30
|
+
/** Which axis to measure. An axis left out always reports `false`. Default `'both'`. */
|
|
31
|
+
axis?: OverflowAxis;
|
|
32
|
+
}
|
|
33
|
+
export interface UseOverflowResult {
|
|
34
|
+
/** `scrollWidth` is larger than `clientWidth`. */
|
|
35
|
+
overflowX: boolean;
|
|
36
|
+
/** `scrollHeight` is larger than `clientHeight`. */
|
|
37
|
+
overflowY: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Reports whether the element in `ref` overflows horizontally and vertically.
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export declare function useOverflow(ref: React.RefObject<HTMLElement | null>, options?: UseOverflowOptions): UseOverflowResult;
|
|
44
|
+
//# sourceMappingURL=useOverflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOverflow.d.ts","sourceRoot":"","sources":["../../../src/components/shared/useOverflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,4EAA4E;AAC5E,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,SAAS,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB;AAYD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EACxC,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAuCnB"}
|
|
@@ -6,16 +6,24 @@
|
|
|
6
6
|
* `ResizablePanel`, and any future drag-to-resize surface:
|
|
7
7
|
*
|
|
8
8
|
* 1. `mousedown` on a handle captures the start position + start size
|
|
9
|
+
* (the current size through the caller's clamp)
|
|
9
10
|
* 2. Global `mousemove` listener updates size (clamped by the caller)
|
|
10
11
|
* 3. Global `mouseup` ends the drag
|
|
11
12
|
* 4. Optional body cursor lock and text-selection suppression during drag
|
|
12
13
|
*
|
|
14
|
+
* The size can be uncontrolled (seeded once from `initialSize`) or controlled
|
|
15
|
+
* (`size` + `onSizeChange`), through MUI `useControlled` (ADR-35). Every size
|
|
16
|
+
* write — drag, `setSize`, `setSizeClamped` — goes through one internal
|
|
17
|
+
* commit that stores the size when uncontrolled and reports it through
|
|
18
|
+
* `onSizeChange` in both modes.
|
|
19
|
+
*
|
|
13
20
|
* **Not used by `DockLayout`** — that component uses the HTML5 Drag-and-Drop
|
|
14
21
|
* API (`DragEvent`, `dataTransfer`) for whole-panel moves between zones, which
|
|
15
22
|
* is a fundamentally different mechanism. Don't try to unify them.
|
|
16
23
|
*
|
|
17
24
|
* @example
|
|
18
25
|
* ```tsx
|
|
26
|
+
* // Uncontrolled: the hook owns the size.
|
|
19
27
|
* const { size, isResizing, onMouseDown, setSize } = useResizable({
|
|
20
28
|
* initialSize: 400,
|
|
21
29
|
* axis: 'x',
|
|
@@ -26,11 +34,85 @@
|
|
|
26
34
|
*
|
|
27
35
|
* return <div onMouseDown={onMouseDown}>...</div>;
|
|
28
36
|
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* // Controlled: the caller owns the size; the hook reports changes.
|
|
41
|
+
* const [width, setWidth] = React.useState(400);
|
|
42
|
+
* const { size, onMouseDown } = useResizable({
|
|
43
|
+
* initialSize: 400,
|
|
44
|
+
* size: width,
|
|
45
|
+
* onSizeChange: (next) => setWidth(next),
|
|
46
|
+
* axis: 'x',
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
29
49
|
*/
|
|
30
50
|
import * as React from 'react';
|
|
51
|
+
/**
|
|
52
|
+
* Why the size changed, as reported to `onSizeChange`.
|
|
53
|
+
*
|
|
54
|
+
* - `'drag'`: a mouse or touch drag on the handle (set by the hook).
|
|
55
|
+
* - `'keyboard'`: a key press on the handle. The hook binds no keys itself; the
|
|
56
|
+
* caller passes this reason to `setSize` / `setSizeClamped`.
|
|
57
|
+
* - `'set'`: any other `setSize` / `setSizeClamped` call (the default).
|
|
58
|
+
*/
|
|
59
|
+
export type ResizeReason = 'drag' | 'keyboard' | 'set';
|
|
31
60
|
export interface UseResizableOptions {
|
|
32
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Initial pixel size when uncontrolled — can be a function for lazy/derived
|
|
63
|
+
* values. Read once, on mount: later changes (a new number or a new
|
|
64
|
+
* function) are ignored, so a caller may recompute it on every render
|
|
65
|
+
* (e.g. `controlledSize ?? 200`) without resetting the size or triggering
|
|
66
|
+
* MUI's "changing the default size state" warning. When `size` is
|
|
67
|
+
* controlled it is still resolved on mount, but not used.
|
|
68
|
+
*/
|
|
33
69
|
initialSize: number | (() => number);
|
|
70
|
+
/**
|
|
71
|
+
* Controlled pixel size. When defined on the first render, the hook never
|
|
72
|
+
* changes the size on its own: drags and `setSize` / `setSizeClamped`
|
|
73
|
+
* report the next (clamped) size through `onSizeChange`, and the returned
|
|
74
|
+
* `size` changes only when this option changes. A drag starts from
|
|
75
|
+
* `clamp(size)`, so a controlled size outside the caller's bounds has no
|
|
76
|
+
* dead zone. The mode is decided on the first render; switching between
|
|
77
|
+
* `undefined` and a number afterwards is unsupported and logs MUI's
|
|
78
|
+
* controlled/uncontrolled warning in development (it names `name` and
|
|
79
|
+
* `stateName`). Implemented with MUI `useControlled` (ADR-35).
|
|
80
|
+
*/
|
|
81
|
+
size?: number;
|
|
82
|
+
/**
|
|
83
|
+
* Component name shown in MUI's controlled/uncontrolled warning. A
|
|
84
|
+
* component built on the hook passes its own name, so the warning points
|
|
85
|
+
* at the component the consumer rendered (for example `'ResizablePanel'`).
|
|
86
|
+
* @internal
|
|
87
|
+
* @default 'useResizable'
|
|
88
|
+
*/
|
|
89
|
+
name?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Name of the controlled prop shown in MUI's controlled/uncontrolled
|
|
92
|
+
* warning (for example `'width'`).
|
|
93
|
+
* @internal
|
|
94
|
+
* @default 'size'
|
|
95
|
+
*/
|
|
96
|
+
stateName?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Turns drag resizing off. While true, `onMouseDown` and `onTouchStart`
|
|
99
|
+
* start nothing, and a drag already in progress ends at once: its global
|
|
100
|
+
* listeners and the body cursor lock are released, no further move is
|
|
101
|
+
* reported, and `onResizeEnd` fires once with the size it reached.
|
|
102
|
+
* `setSize` and `setSizeClamped` still work.
|
|
103
|
+
* @internal
|
|
104
|
+
* @default false
|
|
105
|
+
*/
|
|
106
|
+
disabled?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Fires with the next size on every write, in both controlled and
|
|
109
|
+
* uncontrolled mode: once per drag move (the clamped size, like `onResize`,
|
|
110
|
+
* including repeats of the same value at a bound) with reason `'drag'`, and
|
|
111
|
+
* once per `setSize` / `setSizeClamped` call with the reason passed there
|
|
112
|
+
* (default `'set'`). Not called when a controlled `size` changes. The latest
|
|
113
|
+
* function is always used (no re-binding needed).
|
|
114
|
+
*/
|
|
115
|
+
onSizeChange?: (size: number, reason: ResizeReason) => void;
|
|
34
116
|
/** Which axis the drag handle moves along */
|
|
35
117
|
axis: 'x' | 'y';
|
|
36
118
|
/**
|
|
@@ -45,7 +127,13 @@ export interface UseResizableOptions {
|
|
|
45
127
|
onResize?: (size: number) => void;
|
|
46
128
|
/** Fires once when drag begins */
|
|
47
129
|
onResizeStart?: () => void;
|
|
48
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* Fires once when drag ends (with the final size). It runs in an effect
|
|
132
|
+
* after the commit in which `isResizing` turns false, so it reports the
|
|
133
|
+
* settled size (for a controlled `size`, the value the parent kept). A
|
|
134
|
+
* consumer that switches animations off while `isResizing` is true sees
|
|
135
|
+
* them come back one commit before this call.
|
|
136
|
+
*/
|
|
49
137
|
onResizeEnd?: (size: number) => void;
|
|
50
138
|
/**
|
|
51
139
|
* Lock body cursor + suppress text selection during drag. Default true.
|
|
@@ -59,7 +147,7 @@ export interface UseResizableOptions {
|
|
|
59
147
|
dragCursor?: string;
|
|
60
148
|
}
|
|
61
149
|
export interface UseResizableReturn {
|
|
62
|
-
/** Current pixel size */
|
|
150
|
+
/** Current pixel size: the controlled `size` when given, else the hook's own state */
|
|
63
151
|
size: number;
|
|
64
152
|
/** True while a drag is in progress */
|
|
65
153
|
isResizing: boolean;
|
|
@@ -67,10 +155,20 @@ export interface UseResizableReturn {
|
|
|
67
155
|
onMouseDown: (e: React.MouseEvent) => void;
|
|
68
156
|
/** Attach to the drag handle's onTouchStart (mobile touch support) */
|
|
69
157
|
onTouchStart: (e: React.TouchEvent) => void;
|
|
70
|
-
/**
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Imperatively set the size (for keyboard nav, reset buttons, etc.). Stores
|
|
160
|
+
* it when uncontrolled and reports it through `onSizeChange` with `reason`.
|
|
161
|
+
* Stable identity.
|
|
162
|
+
* @param size Next pixel size, used as given (not clamped).
|
|
163
|
+
* @param reason Reported to `onSizeChange` (default `'set'`).
|
|
164
|
+
*/
|
|
165
|
+
setSize: (size: number, reason?: ResizeReason) => void;
|
|
166
|
+
/**
|
|
167
|
+
* Same as setSize but routes through clamp first. Stable identity.
|
|
168
|
+
* @param size Next pixel size, clamped with the latest `clamp`.
|
|
169
|
+
* @param reason Reported to `onSizeChange` (default `'set'`).
|
|
170
|
+
*/
|
|
171
|
+
setSizeClamped: (size: number, reason?: ResizeReason) => void;
|
|
74
172
|
}
|
|
75
173
|
/**
|
|
76
174
|
* useResizable — React hook that owns the pointer-drag lifecycle for a
|
|
@@ -79,4 +177,5 @@ export interface UseResizableReturn {
|
|
|
79
177
|
* The hook does NOT render anything. It's a headless primitive.
|
|
80
178
|
*/
|
|
81
179
|
export declare function useResizable(options: UseResizableOptions): UseResizableReturn;
|
|
180
|
+
export { getResizeKeyTarget, RESIZE_KEY_STEP, RESIZE_KEY_LARGE_STEP, type ResizeKeyOptions, type ResizeOrientation, type ResizeGrowDirection, } from './resizeKeyboard';
|
|
82
181
|
//# sourceMappingURL=useResizable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizable.d.ts","sourceRoot":"","sources":["../../../src/components/shared/useResizable.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"useResizable.d.ts","sourceRoot":"","sources":["../../../src/components/shared/useResizable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,KAAK,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACrC;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAC5D,6CAA6C;IAC7C,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC3C,sEAAsE;IACtE,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC5C;;;;;;OAMG;IACH,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACvD;;;;OAIG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/D;AAKD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAwL7E;AAMD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC"}
|