@oods/component-contracts 0.3.2 → 0.4.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/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  declare const COMPONENT_CLASSIFICATIONS: readonly ["native", "recipe", "alias", "authoring-only", "merged", "retired"];
2
2
  type ComponentClassification = (typeof COMPONENT_CLASSIFICATIONS)[number];
3
- declare const NUCLEUS_COMPONENT_IDS: readonly ["AddressCollectionPanel", "AddressEditor", "AddressSummaryBadge", "AddressValidationTimeline", "ArchiveEvent", "ArchivePill", "ArchiveSummary", "ArchivedRowOverlay", "AuditEvent", "AuditSummaryCard", "AuditTimeline", "Badge", "Banner", "BillingAmountInput", "BillingCardMeta", "BillingIntervalSelector", "BillingSummaryBadge", "Button", "CancellationBadge", "CancellationEvent", "CancellationForm", "CancellationSummary", "Card", "CardHeader", "Checkbox", "ClassificationBadge", "ClassificationEditor", "ClassificationPanel", "ColorStatePicker", "ColorSwatch", "ColorizedBadge", "CommunicationDetailPanel", "CycleProgressCard", "DatePicker", "DetailHeader", "FilterPanel", "FormLabelGroup", "GeoFieldMappingForm", "GeoResolutionBadge", "GeocodablePreview", "Grid", "InlineLabel", "Input", "LabelCell", "MembershipAuditTimeline", "MembershipPanel", "MessageEventTimeline", "MessageStatusBadge", "OwnerBadge", "OwnershipMeta", "OwnershipSummary", "PaginationBar", "PaymentEventTimeline", "PaymentTimeline", "PreferenceEditor", "PreferencePanel", "PreferenceSummaryBadge", "PreferenceTimeline", "PriceBadge", "PriceCardMeta", "PriceSummary", "RelativeTimestamp", "RoleAssignmentForm", "RoleBadgeList", "SearchInput", "Select", "SortIndicator", "Stack", "StateTransitionEvent", "StatusBadge", "StatusColorLegend", "StatusSelector", "StatusTimeline", "Table", "Tabs", "TagInput", "TagManager", "TagPills", "TagSummary", "TemplatePicker", "Text", "Textarea", "TimelineEntryLabel", "VizAreaControls", "VizAreaPreview", "VizAxisControls", "VizAxisSummary", "VizColorControls", "VizColorLegendConfig", "VizEncodingBadge", "VizGraphPreview", "VizHeatmapControls", "VizHeatmapPreview", "VizLineControls", "VizLinePreview", "VizMarkControls", "VizMarkPreview", "VizOpacityControls", "VizOpacitySummary", "VizPointControls", "VizPointPreview", "VizRoleBadge", "VizScaleControls", "VizScaleSummary", "VizScatterControls", "VizScatterPreview", "VizShapeControls", "VizShapeLegend", "VizSizeControls", "VizSizeSummary"];
3
+ declare const NUCLEUS_COMPONENT_IDS: readonly ["AddressCollectionPanel", "AddressEditor", "AddressSummaryBadge", "AddressValidationTimeline", "ArchiveEvent", "ArchivePill", "ArchiveSummary", "ArchivedRowOverlay", "AuditEvent", "AuditSummaryCard", "AuditTimeline", "Badge", "Banner", "BillingAmountInput", "BillingCardMeta", "BillingIntervalSelector", "BillingSummaryBadge", "Button", "CancellationBadge", "CancellationEvent", "CancellationForm", "CancellationSummary", "Card", "CardHeader", "Checkbox", "ClassificationBadge", "ClassificationEditor", "ClassificationPanel", "ColorStatePicker", "ColorSwatch", "ColorizedBadge", "CommunicationDetailPanel", "CycleProgressCard", "DatePicker", "DetailHeader", "Dialog", "FilterPanel", "FormLabelGroup", "GeoFieldMappingForm", "GeoResolutionBadge", "GeocodablePreview", "Grid", "InlineLabel", "Input", "LabelCell", "MembershipAuditTimeline", "MembershipPanel", "MessageEventTimeline", "MessageStatusBadge", "OwnerBadge", "OwnershipMeta", "OwnershipSummary", "PaginationBar", "PaymentEventTimeline", "PaymentTimeline", "PreferenceEditor", "PreferencePanel", "PreferenceSummaryBadge", "PreferenceTimeline", "PriceBadge", "PriceCardMeta", "PriceSummary", "RelativeTimestamp", "RoleAssignmentForm", "RoleBadgeList", "SearchInput", "Select", "SortIndicator", "Stack", "StateTransitionEvent", "StatusBadge", "StatusColorLegend", "StatusSelector", "StatusTimeline", "Switch", "Table", "Tabs", "TagInput", "TagManager", "TagPills", "TagSummary", "TemplatePicker", "Text", "Textarea", "TimelineEntryLabel", "VizAreaControls", "VizAreaPreview", "VizAxisControls", "VizAxisSummary", "VizColorControls", "VizColorLegendConfig", "VizEncodingBadge", "VizGraphPreview", "VizHeatmapControls", "VizHeatmapPreview", "VizLineControls", "VizLinePreview", "VizMarkControls", "VizMarkPreview", "VizOpacityControls", "VizOpacitySummary", "VizPointControls", "VizPointPreview", "VizRoleBadge", "VizScaleControls", "VizScaleSummary", "VizScatterControls", "VizScatterPreview", "VizShapeControls", "VizShapeLegend", "VizSizeControls", "VizSizeSummary"];
4
4
  type NucleusComponentId = (typeof NUCLEUS_COMPONENT_IDS)[number];
5
5
  declare const HISTORICAL_PORTED_COMPONENT_IDS: readonly ["AuditTimeline", "CancellationSummary", "PaginationBar", "PriceBadge", "RelativeTimestamp", "SearchInput", "StatusBadge", "StatusTimeline"];
6
6
  /** @deprecated Historical compatibility cohort; all members belong to NucleusComponentId. */
@@ -20,6 +20,12 @@ type ComponentContract = {
20
20
  id: GovernedComponentId;
21
21
  version: '1.0.0' | '1.1.0';
22
22
  props: readonly string[];
23
+ /**
24
+ * s221-m02 (#2482 ruling 5): saved-schema composition directives the React and Vue components accept, which code
25
+ * generation consumes (a field binding, a pattern's parts) and the component reads no value from; listed apart from
26
+ * the props a consumer passes.
27
+ */
28
+ directives?: readonly string[];
23
29
  /** Public props needed to name or identify a field; substitution must preserve them. */
24
30
  requiredProps?: readonly string[];
25
31
  slots: readonly string[];
@@ -80,7 +86,7 @@ type ComponentBehavior = {
80
86
 
81
87
  declare const COMPONENT_CONTRACT_VERSION: "1.1.0";
82
88
  declare const COMPONENT_CONTRACT_VERSION_1_1: "1.1.0";
83
- declare const componentContracts: Readonly<Record<"AddressCollectionPanel" | "AddressEditor" | "AddressSummaryBadge" | "AddressValidationTimeline" | "ArchiveEvent" | "ArchivePill" | "ArchiveSummary" | "ArchivedRowOverlay" | "AuditEvent" | "AuditSummaryCard" | "AuditTimeline" | "Badge" | "Banner" | "BillingAmountInput" | "BillingCardMeta" | "BillingIntervalSelector" | "BillingSummaryBadge" | "Button" | "CancellationBadge" | "CancellationEvent" | "CancellationForm" | "CancellationSummary" | "Card" | "CardHeader" | "Checkbox" | "ClassificationBadge" | "ClassificationEditor" | "ClassificationPanel" | "ColorStatePicker" | "ColorSwatch" | "ColorizedBadge" | "CommunicationDetailPanel" | "CycleProgressCard" | "DatePicker" | "DetailHeader" | "FilterPanel" | "FormLabelGroup" | "GeoFieldMappingForm" | "GeoResolutionBadge" | "GeocodablePreview" | "Grid" | "InlineLabel" | "Input" | "LabelCell" | "MembershipAuditTimeline" | "MembershipPanel" | "MessageEventTimeline" | "MessageStatusBadge" | "OwnerBadge" | "OwnershipMeta" | "OwnershipSummary" | "PaginationBar" | "PaymentEventTimeline" | "PaymentTimeline" | "PreferenceEditor" | "PreferencePanel" | "PreferenceSummaryBadge" | "PreferenceTimeline" | "PriceBadge" | "PriceCardMeta" | "PriceSummary" | "RelativeTimestamp" | "RoleAssignmentForm" | "RoleBadgeList" | "SearchInput" | "Select" | "SortIndicator" | "Stack" | "StateTransitionEvent" | "StatusBadge" | "StatusColorLegend" | "StatusSelector" | "StatusTimeline" | "Table" | "Tabs" | "TagInput" | "TagManager" | "TagPills" | "TagSummary" | "TemplatePicker" | "Text" | "Textarea" | "TimelineEntryLabel" | "VizAreaControls" | "VizAreaPreview" | "VizAxisControls" | "VizAxisSummary" | "VizColorControls" | "VizColorLegendConfig" | "VizEncodingBadge" | "VizGraphPreview" | "VizHeatmapControls" | "VizHeatmapPreview" | "VizLineControls" | "VizLinePreview" | "VizMarkControls" | "VizMarkPreview" | "VizOpacityControls" | "VizOpacitySummary" | "VizPointControls" | "VizPointPreview" | "VizRoleBadge" | "VizScaleControls" | "VizScaleSummary" | "VizScatterControls" | "VizScatterPreview" | "VizShapeControls" | "VizShapeLegend" | "VizSizeControls" | "VizSizeSummary", ComponentContract>>;
89
+ declare const componentContracts: Readonly<Record<"AddressCollectionPanel" | "AddressEditor" | "AddressSummaryBadge" | "AddressValidationTimeline" | "ArchiveEvent" | "ArchivePill" | "ArchiveSummary" | "ArchivedRowOverlay" | "AuditEvent" | "AuditSummaryCard" | "AuditTimeline" | "Badge" | "Banner" | "BillingAmountInput" | "BillingCardMeta" | "BillingIntervalSelector" | "BillingSummaryBadge" | "Button" | "CancellationBadge" | "CancellationEvent" | "CancellationForm" | "CancellationSummary" | "Card" | "CardHeader" | "Checkbox" | "ClassificationBadge" | "ClassificationEditor" | "ClassificationPanel" | "ColorStatePicker" | "ColorSwatch" | "ColorizedBadge" | "CommunicationDetailPanel" | "CycleProgressCard" | "DatePicker" | "DetailHeader" | "Dialog" | "FilterPanel" | "FormLabelGroup" | "GeoFieldMappingForm" | "GeoResolutionBadge" | "GeocodablePreview" | "Grid" | "InlineLabel" | "Input" | "LabelCell" | "MembershipAuditTimeline" | "MembershipPanel" | "MessageEventTimeline" | "MessageStatusBadge" | "OwnerBadge" | "OwnershipMeta" | "OwnershipSummary" | "PaginationBar" | "PaymentEventTimeline" | "PaymentTimeline" | "PreferenceEditor" | "PreferencePanel" | "PreferenceSummaryBadge" | "PreferenceTimeline" | "PriceBadge" | "PriceCardMeta" | "PriceSummary" | "RelativeTimestamp" | "RoleAssignmentForm" | "RoleBadgeList" | "SearchInput" | "Select" | "SortIndicator" | "Stack" | "StateTransitionEvent" | "StatusBadge" | "StatusColorLegend" | "StatusSelector" | "StatusTimeline" | "Switch" | "Table" | "Tabs" | "TagInput" | "TagManager" | "TagPills" | "TagSummary" | "TemplatePicker" | "Text" | "Textarea" | "TimelineEntryLabel" | "VizAreaControls" | "VizAreaPreview" | "VizAxisControls" | "VizAxisSummary" | "VizColorControls" | "VizColorLegendConfig" | "VizEncodingBadge" | "VizGraphPreview" | "VizHeatmapControls" | "VizHeatmapPreview" | "VizLineControls" | "VizLinePreview" | "VizMarkControls" | "VizMarkPreview" | "VizOpacityControls" | "VizOpacitySummary" | "VizPointControls" | "VizPointPreview" | "VizRoleBadge" | "VizScaleControls" | "VizScaleSummary" | "VizScatterControls" | "VizScatterPreview" | "VizShapeControls" | "VizShapeLegend" | "VizSizeControls" | "VizSizeSummary", ComponentContract>>;
84
90
 
85
91
  /** Billable's declared defaults; object parameter overrides travel as runtime props. */
86
92
  declare const BILLING_INTERVALS: readonly ["monthly", "quarterly", "annual"];
@@ -109,6 +115,11 @@ declare function formatPriceAmount(value: unknown, currency?: unknown, minorUnit
109
115
  declare function formatPriceCode(value: unknown): string | undefined;
110
116
 
111
117
  declare const sharedScenarios: readonly SharedScenario[];
118
+ /**
119
+ * s222-m03 (#2502 ruling 16): an empty value, which React, Vue and the HTML renderer must show alike, as "Unknown time"
120
+ * with no empty datetime. It stays out of sharedScenarios, which holds exactly one documented example per component.
121
+ */
122
+ declare const relativeTimestampEmptyScenario: SharedScenario;
112
123
 
113
124
  /** @deprecated Historical compatibility view; canonical definitions live in componentContracts. */
114
125
  declare const portedComponentContracts: Readonly<Record<"AuditTimeline" | "CancellationSummary" | "PaginationBar" | "PriceBadge" | "RelativeTimestamp" | "SearchInput" | "StatusBadge" | "StatusTimeline", ComponentContract>>;
@@ -157,6 +168,64 @@ declare const RESULT_STATE_TONE: "neutral";
157
168
  /** The tones that carry a verdict or a severity; a result state never resolves to any of their colours. */
158
169
  declare const SEVERITY_TONES: readonly ["positive", "success", "warning", "critical", "danger"];
159
170
 
171
+ /**
172
+ * s222-m02 (#2502 ruling 11): status marks are SVG icons, not Unicode glyphs, so a badge or banner draws the same mark
173
+ * in every font and renderer. One 16-unit grid, stroked in the text colour (1.5 wide, round caps and joins), so each
174
+ * mark keeps the tone's graded text contrast and reads at a badge's 12px and a banner's 16px. React, Vue and HTML all
175
+ * draw from this table.
176
+ */
177
+ type StatusIconName = 'check' | 'x' | 'alert' | 'info' | 'clock' | 'dots' | 'refresh' | 'pause' | 'ban' | 'pencil' | 'star' | 'undo' | 'lock' | 'unlock' | 'dot';
178
+ type StatusIconShape = {
179
+ readonly tag: 'path' | 'circle' | 'rect';
180
+ readonly attrs: Readonly<Record<string, string>>;
181
+ };
182
+ declare const STATUS_ICON_SHAPES: Readonly<Record<StatusIconName, readonly StatusIconShape[]>>;
183
+ /** The outer svg element's attributes, in the order every renderer writes them. It is 1em square, so it takes the size of
184
+ * the text it sits in wherever no stylesheet sizes it. */
185
+ declare const STATUS_ICON_SVG_ATTRS: Readonly<Record<string, string>>;
186
+ /** The mark for a registry icon name; an unknown name takes the neutral dot, and no name takes no mark. */
187
+ declare function resolveStatusIcon(iconName: string | undefined): StatusIconName | undefined;
188
+ /** The mark as markup, for renderers that write HTML strings. */
189
+ declare function statusIconMarkup(name: StatusIconName): string;
190
+
191
+ /**
192
+ * s222-m02 (#2502 ruling 11): the status registry and its presentation, shared by every renderer. It moved here from
193
+ * @oods/components-react (which re-exports it unchanged) so the HTML renderer labels, tones and marks a status exactly as
194
+ * the React components do. The map is the token package's saas-billing status map.
195
+ *
196
+ * s222-m03 (#2502 ruling 13): the lifecycle table (registry/lifecycle-status-tones.json) is the StatusBadge contract's
197
+ * lifecycle status-to-tone table: the `lifecycle` domain, and what any domain's badge reads for a status its own table does
198
+ * not know. A settled payment is a success and a failed one critical, not neutral.
199
+ */
200
+ type StatusTone = 'neutral' | 'info' | 'accent' | 'positive' | 'success' | 'warning' | 'critical' | 'danger';
201
+ type StatusDomain = string;
202
+ type StatusTokenSet = {
203
+ readonly background: string;
204
+ readonly border: string;
205
+ readonly foreground: string;
206
+ };
207
+ type StatusPresentation = {
208
+ readonly domain: StatusDomain;
209
+ readonly status: string;
210
+ readonly label: string;
211
+ readonly description: string;
212
+ readonly tone: StatusTone;
213
+ readonly iconName?: string;
214
+ readonly badge: {
215
+ readonly subtle: StatusTokenSet;
216
+ readonly solid: StatusTokenSet;
217
+ };
218
+ readonly banner: {
219
+ readonly subtle: StatusTokenSet;
220
+ readonly solid: StatusTokenSet;
221
+ };
222
+ };
223
+ declare const STATUS_DOMAINS: readonly StatusDomain[];
224
+ declare function getStatusPresentation(domain: StatusDomain, status: string): StatusPresentation;
225
+ declare function listStatuses(domain: StatusDomain): readonly StatusPresentation[];
226
+ declare function getToneTokenSet(tone: StatusTone): StatusTokenSet;
227
+ declare function getBannerToneTokenSet(tone: StatusTone): StatusTokenSet;
228
+
160
229
  interface BillingCycleValues {
161
230
  progress?: number;
162
231
  periodStart?: string;
@@ -260,6 +329,30 @@ declare function assertStaticSvg(svg: string): string;
260
329
  * the title as a text element whose whole content is the title.
261
330
  */
262
331
  declare function svgCarriesTitle(svg: string, title: string | undefined): boolean;
332
+ /** s222-m02 (#2502 ruling 12, F7): the props that carry a placed chart's dark and high-contrast renders. */
333
+ declare const VIZ_THEME_SVG_PROPS: readonly ["svgDark", "svgDarkNarrow", "svgDarkWide", "svgHc", "svgHcNarrow", "svgHcWide"];
334
+ type VizThemeSvgProp = (typeof VIZ_THEME_SVG_PROPS)[number];
335
+ /** Every render prop a placed chart carries: the light (or only) renders, then the dark and hc ones. */
336
+ declare const VIZ_SVG_PROPS: readonly ["svg", "svgNarrow", "svgWide", "svgDark", "svgDarkNarrow", "svgDarkWide", "svgHc", "svgHcNarrow", "svgHcWide"];
337
+ type VizPreviewTheme = 'light' | 'dark' | 'hc';
338
+ type VizRenderAttribute = 'data-viz-svg' | 'data-viz-svg-narrow' | 'data-viz-svg-wide';
339
+ /** One set of a chart's renders: the design size, then the narrow and wide sizes when present. */
340
+ interface VizPreviewLayer {
341
+ /** The theme the renders are drawn in; absent for a chart with no dark or hc renders, whose renders show in every theme. */
342
+ readonly theme?: VizPreviewTheme;
343
+ readonly narrow: boolean;
344
+ readonly wide: boolean;
345
+ /** Each render's wrapper attribute and its checked SVG, in document order. */
346
+ readonly renders: ReadonlyArray<readonly [VizRenderAttribute, string]>;
347
+ }
348
+ /**
349
+ * The renders a chart preview lays out, which React, Vue and the HTML renderer all read, so the three render one markup.
350
+ * Without a dark or hc render it is the one unthemed layer the figure has always shown (svg, svgNarrow, svgWide). With
351
+ * them, a layer per theme (light is svg*), each wrapped in [data-viz-theme]; component-styles shows the one matching the
352
+ * nearest [data-theme], and each wrapper repeats the figure's data-viz-narrow and data-viz-wide so the size rules apply
353
+ * inside it. Every SVG passes assertStaticSvg.
354
+ */
355
+ declare function vizPreviewLayers(props: Readonly<Partial<Record<'svg' | 'svgNarrow' | 'svgWide' | VizThemeSvgProp, unknown>>>): VizPreviewLayer[];
263
356
 
264
357
  declare const componentBehaviors: {
265
358
  readonly VizAreaControls: {
@@ -1660,6 +1753,48 @@ declare const componentBehaviors: {
1660
1753
  readonly interactionReason: "DetailHeader presents content and owns no focusable control or action; authored child actions remain the consumer's responsibility.";
1661
1754
  readonly event: readonly [];
1662
1755
  };
1756
+ readonly Dialog: {
1757
+ readonly role: "button";
1758
+ readonly name: {
1759
+ readonly strategy: "aria-label";
1760
+ readonly target: "button[aria-label=\"Close\"]";
1761
+ };
1762
+ readonly keyboard: {
1763
+ readonly Tab: "Move focus to the named native control";
1764
+ readonly Enter: "Activate the control";
1765
+ readonly Escape: "Close the dialog";
1766
+ };
1767
+ readonly interaction: "interactive";
1768
+ readonly event: readonly [{
1769
+ readonly trigger: "keyboard";
1770
+ readonly target: "button[aria-label=\"Close\"]";
1771
+ readonly key: "Tab";
1772
+ readonly effect: {
1773
+ readonly kind: "focus";
1774
+ };
1775
+ }, {
1776
+ readonly trigger: "pointer";
1777
+ readonly target: "button[aria-label=\"Close\"]";
1778
+ readonly effect: {
1779
+ readonly kind: "event";
1780
+ };
1781
+ readonly action: "click";
1782
+ }, {
1783
+ readonly trigger: "keyboard";
1784
+ readonly target: "button[aria-label=\"Close\"]";
1785
+ readonly effect: {
1786
+ readonly kind: "event";
1787
+ };
1788
+ readonly key: "Enter";
1789
+ }, {
1790
+ readonly trigger: "keyboard";
1791
+ readonly target: "button[aria-label=\"Close\"]";
1792
+ readonly effect: {
1793
+ readonly kind: "event";
1794
+ };
1795
+ readonly key: "Escape";
1796
+ }];
1797
+ };
1663
1798
  readonly FilterPanel: {
1664
1799
  readonly role: "button";
1665
1800
  readonly name: {
@@ -2155,6 +2290,51 @@ declare const componentBehaviors: {
2155
2290
  readonly interactionReason: "StatusTimeline presents content and owns no focusable control or action; authored child actions remain the consumer's responsibility.";
2156
2291
  readonly event: readonly [];
2157
2292
  };
2293
+ readonly Switch: {
2294
+ readonly role: "switch";
2295
+ readonly name: {
2296
+ readonly strategy: "label";
2297
+ readonly target: "button[role=\"switch\"]";
2298
+ };
2299
+ readonly keyboard: {
2300
+ readonly Tab: "Move focus to the named native control";
2301
+ readonly " ": "Toggle the switch";
2302
+ readonly Enter: "Toggle the switch";
2303
+ };
2304
+ readonly interaction: "interactive";
2305
+ readonly event: readonly [{
2306
+ readonly trigger: "keyboard";
2307
+ readonly target: "button[role=\"switch\"]";
2308
+ readonly key: "Tab";
2309
+ readonly effect: {
2310
+ readonly kind: "focus";
2311
+ };
2312
+ }, {
2313
+ readonly trigger: "pointer";
2314
+ readonly target: "button[role=\"switch\"]";
2315
+ readonly effect: {
2316
+ readonly kind: "event";
2317
+ readonly value: true;
2318
+ };
2319
+ readonly action: "click";
2320
+ }, {
2321
+ readonly trigger: "keyboard";
2322
+ readonly target: "button[role=\"switch\"]";
2323
+ readonly effect: {
2324
+ readonly kind: "event";
2325
+ readonly value: true;
2326
+ };
2327
+ readonly key: " ";
2328
+ }, {
2329
+ readonly trigger: "keyboard";
2330
+ readonly target: "button[role=\"switch\"]";
2331
+ readonly effect: {
2332
+ readonly kind: "event";
2333
+ readonly value: true;
2334
+ };
2335
+ readonly key: "Enter";
2336
+ }];
2337
+ };
2158
2338
  readonly Table: {
2159
2339
  readonly role: "button";
2160
2340
  readonly name: {
@@ -3040,4 +3220,4 @@ declare function getBaselineCapability(componentId: string): {
3040
3220
  };
3041
3221
  } | undefined;
3042
3222
 
3043
- export { type AuditSummaryValues, BILLING_AMOUNT_ERROR, BILLING_INTERVALS, BILLING_INTERVAL_ERROR, BILLING_MINOR_UNITS, type BillingAmountResult, type BillingCycleValues, type BillingPaymentValues, COMPONENT_CLASSIFICATIONS, COMPONENT_CONTRACT_VERSION, COMPONENT_CONTRACT_VERSION_1_1, type CollectionEvent, type ComponentBehavior, type ComponentClassification, type ComponentContract, DEFAULT_COLOR_STATES, EMISSION_ELIGIBILITY_EVIDENCE_CLASSES, type EmissionEligibilityEvidence, type EmissionEligibilityEvidenceClass, type EvidenceResult, type EvidenceStatus, FOUNDATION_V1_EVIDENCE_CLASSES, type FoundationV1Evidence, type FoundationV1EvidenceClass, GOVERNED_DEFINITION, GOVERNED_SURFACES, type GeoFieldMappingValue, type GovernedComponentId, type GovernedLedgerRow, NO_LAST_PAYMENT, NO_NEXT_PAYMENT, NUCLEUS_COMPONENT_IDS, type NucleusComponentId, type ObligationStatus, PORTED_COMPONENT_IDS, type PortedComponentId, RESULT_STATES, RESULT_STATE_TONE, type ResultState, SEVERITY_TONES, type ScenarioTrigger, type SharedScenario, type SortIndicatorValues, type SortState, type SubstitutionContractReport, type SubstitutionObligation, type TraitEventKind, type TraitEventValues, UI_WORKFLOW_STATES, type UiWorkflowState, VIZ_CONTROL_IDS, VIZ_CONTROL_TITLES, VIZ_PREVIEW_TYPES, VIZ_SUMMARY_IDS, type VizChannel, type VizChartType, type VizColorBinding, type VizControlField, type VizControlId, type VizFieldBinding, type VizIntentFragment, type VizScale, type VizSummaryId, ariaSort, assertStaticSvg, auditSummary, billingAmountMessage, billingAmountText, billingCycle, billingDate, billingIntervalMessage, billingPaymentRows, billingPaymentSummary, billingPeriodEnd, billingSummary, chronologicalEvents, componentBehaviors, componentCapabilityBaseline, componentContracts, componentIntake, componentReconciliationProposal, currencyMinorUnits, dateTimeInputValue, defaultVizIntent, deriveStartingComponentCount, editVizIntent, evaluateEmissionEligibility, evaluateFoundationV1, formatBillingAmount, formatDateTime, formatPriceAmount, formatPriceCode, formatReadOnlyValue, formatRecordLabel, formatReferenceLabel, geoFieldMapping, getBaselineCapability, initialSort, isGovernedComponent, isVizIntentFragment, nextSort, parseBillingAmount, portedComponentContracts, portedScenarios, recipeItemLabels, recordCollectionEvents, restartedBillingPeriod, sharedScenarios, substitutionContractReport, summarizeSubstitutionReport, summaryValue, svgCarriesTitle, traitEventRows, validMinorUnits, validateComponentIntakeDocument, vizControlFields, vizFieldValue, vizSummaryRows };
3223
+ export { type AuditSummaryValues, BILLING_AMOUNT_ERROR, BILLING_INTERVALS, BILLING_INTERVAL_ERROR, BILLING_MINOR_UNITS, type BillingAmountResult, type BillingCycleValues, type BillingPaymentValues, COMPONENT_CLASSIFICATIONS, COMPONENT_CONTRACT_VERSION, COMPONENT_CONTRACT_VERSION_1_1, type CollectionEvent, type ComponentBehavior, type ComponentClassification, type ComponentContract, DEFAULT_COLOR_STATES, EMISSION_ELIGIBILITY_EVIDENCE_CLASSES, type EmissionEligibilityEvidence, type EmissionEligibilityEvidenceClass, type EvidenceResult, type EvidenceStatus, FOUNDATION_V1_EVIDENCE_CLASSES, type FoundationV1Evidence, type FoundationV1EvidenceClass, GOVERNED_DEFINITION, GOVERNED_SURFACES, type GeoFieldMappingValue, type GovernedComponentId, type GovernedLedgerRow, NO_LAST_PAYMENT, NO_NEXT_PAYMENT, NUCLEUS_COMPONENT_IDS, type NucleusComponentId, type ObligationStatus, PORTED_COMPONENT_IDS, type PortedComponentId, RESULT_STATES, RESULT_STATE_TONE, type ResultState, SEVERITY_TONES, STATUS_DOMAINS, STATUS_ICON_SHAPES, STATUS_ICON_SVG_ATTRS, type ScenarioTrigger, type SharedScenario, type SortIndicatorValues, type SortState, type StatusDomain, type StatusIconName, type StatusIconShape, type StatusPresentation, type StatusTokenSet, type StatusTone, type SubstitutionContractReport, type SubstitutionObligation, type TraitEventKind, type TraitEventValues, UI_WORKFLOW_STATES, type UiWorkflowState, VIZ_CONTROL_IDS, VIZ_CONTROL_TITLES, VIZ_PREVIEW_TYPES, VIZ_SUMMARY_IDS, VIZ_SVG_PROPS, VIZ_THEME_SVG_PROPS, type VizChannel, type VizChartType, type VizColorBinding, type VizControlField, type VizControlId, type VizFieldBinding, type VizIntentFragment, type VizPreviewLayer, type VizPreviewTheme, type VizRenderAttribute, type VizScale, type VizSummaryId, type VizThemeSvgProp, ariaSort, assertStaticSvg, auditSummary, billingAmountMessage, billingAmountText, billingCycle, billingDate, billingIntervalMessage, billingPaymentRows, billingPaymentSummary, billingPeriodEnd, billingSummary, chronologicalEvents, componentBehaviors, componentCapabilityBaseline, componentContracts, componentIntake, componentReconciliationProposal, currencyMinorUnits, dateTimeInputValue, defaultVizIntent, deriveStartingComponentCount, editVizIntent, evaluateEmissionEligibility, evaluateFoundationV1, formatBillingAmount, formatDateTime, formatPriceAmount, formatPriceCode, formatReadOnlyValue, formatRecordLabel, formatReferenceLabel, geoFieldMapping, getBannerToneTokenSet, getBaselineCapability, getStatusPresentation, getToneTokenSet, initialSort, isGovernedComponent, isVizIntentFragment, listStatuses, nextSort, parseBillingAmount, portedComponentContracts, portedScenarios, recipeItemLabels, recordCollectionEvents, relativeTimestampEmptyScenario, resolveStatusIcon, restartedBillingPeriod, sharedScenarios, statusIconMarkup, substitutionContractReport, summarizeSubstitutionReport, summaryValue, svgCarriesTitle, traitEventRows, validMinorUnits, validateComponentIntakeDocument, vizControlFields, vizFieldValue, vizPreviewLayers, vizSummaryRows };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  declare const COMPONENT_CLASSIFICATIONS: readonly ["native", "recipe", "alias", "authoring-only", "merged", "retired"];
2
2
  type ComponentClassification = (typeof COMPONENT_CLASSIFICATIONS)[number];
3
- declare const NUCLEUS_COMPONENT_IDS: readonly ["AddressCollectionPanel", "AddressEditor", "AddressSummaryBadge", "AddressValidationTimeline", "ArchiveEvent", "ArchivePill", "ArchiveSummary", "ArchivedRowOverlay", "AuditEvent", "AuditSummaryCard", "AuditTimeline", "Badge", "Banner", "BillingAmountInput", "BillingCardMeta", "BillingIntervalSelector", "BillingSummaryBadge", "Button", "CancellationBadge", "CancellationEvent", "CancellationForm", "CancellationSummary", "Card", "CardHeader", "Checkbox", "ClassificationBadge", "ClassificationEditor", "ClassificationPanel", "ColorStatePicker", "ColorSwatch", "ColorizedBadge", "CommunicationDetailPanel", "CycleProgressCard", "DatePicker", "DetailHeader", "FilterPanel", "FormLabelGroup", "GeoFieldMappingForm", "GeoResolutionBadge", "GeocodablePreview", "Grid", "InlineLabel", "Input", "LabelCell", "MembershipAuditTimeline", "MembershipPanel", "MessageEventTimeline", "MessageStatusBadge", "OwnerBadge", "OwnershipMeta", "OwnershipSummary", "PaginationBar", "PaymentEventTimeline", "PaymentTimeline", "PreferenceEditor", "PreferencePanel", "PreferenceSummaryBadge", "PreferenceTimeline", "PriceBadge", "PriceCardMeta", "PriceSummary", "RelativeTimestamp", "RoleAssignmentForm", "RoleBadgeList", "SearchInput", "Select", "SortIndicator", "Stack", "StateTransitionEvent", "StatusBadge", "StatusColorLegend", "StatusSelector", "StatusTimeline", "Table", "Tabs", "TagInput", "TagManager", "TagPills", "TagSummary", "TemplatePicker", "Text", "Textarea", "TimelineEntryLabel", "VizAreaControls", "VizAreaPreview", "VizAxisControls", "VizAxisSummary", "VizColorControls", "VizColorLegendConfig", "VizEncodingBadge", "VizGraphPreview", "VizHeatmapControls", "VizHeatmapPreview", "VizLineControls", "VizLinePreview", "VizMarkControls", "VizMarkPreview", "VizOpacityControls", "VizOpacitySummary", "VizPointControls", "VizPointPreview", "VizRoleBadge", "VizScaleControls", "VizScaleSummary", "VizScatterControls", "VizScatterPreview", "VizShapeControls", "VizShapeLegend", "VizSizeControls", "VizSizeSummary"];
3
+ declare const NUCLEUS_COMPONENT_IDS: readonly ["AddressCollectionPanel", "AddressEditor", "AddressSummaryBadge", "AddressValidationTimeline", "ArchiveEvent", "ArchivePill", "ArchiveSummary", "ArchivedRowOverlay", "AuditEvent", "AuditSummaryCard", "AuditTimeline", "Badge", "Banner", "BillingAmountInput", "BillingCardMeta", "BillingIntervalSelector", "BillingSummaryBadge", "Button", "CancellationBadge", "CancellationEvent", "CancellationForm", "CancellationSummary", "Card", "CardHeader", "Checkbox", "ClassificationBadge", "ClassificationEditor", "ClassificationPanel", "ColorStatePicker", "ColorSwatch", "ColorizedBadge", "CommunicationDetailPanel", "CycleProgressCard", "DatePicker", "DetailHeader", "Dialog", "FilterPanel", "FormLabelGroup", "GeoFieldMappingForm", "GeoResolutionBadge", "GeocodablePreview", "Grid", "InlineLabel", "Input", "LabelCell", "MembershipAuditTimeline", "MembershipPanel", "MessageEventTimeline", "MessageStatusBadge", "OwnerBadge", "OwnershipMeta", "OwnershipSummary", "PaginationBar", "PaymentEventTimeline", "PaymentTimeline", "PreferenceEditor", "PreferencePanel", "PreferenceSummaryBadge", "PreferenceTimeline", "PriceBadge", "PriceCardMeta", "PriceSummary", "RelativeTimestamp", "RoleAssignmentForm", "RoleBadgeList", "SearchInput", "Select", "SortIndicator", "Stack", "StateTransitionEvent", "StatusBadge", "StatusColorLegend", "StatusSelector", "StatusTimeline", "Switch", "Table", "Tabs", "TagInput", "TagManager", "TagPills", "TagSummary", "TemplatePicker", "Text", "Textarea", "TimelineEntryLabel", "VizAreaControls", "VizAreaPreview", "VizAxisControls", "VizAxisSummary", "VizColorControls", "VizColorLegendConfig", "VizEncodingBadge", "VizGraphPreview", "VizHeatmapControls", "VizHeatmapPreview", "VizLineControls", "VizLinePreview", "VizMarkControls", "VizMarkPreview", "VizOpacityControls", "VizOpacitySummary", "VizPointControls", "VizPointPreview", "VizRoleBadge", "VizScaleControls", "VizScaleSummary", "VizScatterControls", "VizScatterPreview", "VizShapeControls", "VizShapeLegend", "VizSizeControls", "VizSizeSummary"];
4
4
  type NucleusComponentId = (typeof NUCLEUS_COMPONENT_IDS)[number];
5
5
  declare const HISTORICAL_PORTED_COMPONENT_IDS: readonly ["AuditTimeline", "CancellationSummary", "PaginationBar", "PriceBadge", "RelativeTimestamp", "SearchInput", "StatusBadge", "StatusTimeline"];
6
6
  /** @deprecated Historical compatibility cohort; all members belong to NucleusComponentId. */
@@ -20,6 +20,12 @@ type ComponentContract = {
20
20
  id: GovernedComponentId;
21
21
  version: '1.0.0' | '1.1.0';
22
22
  props: readonly string[];
23
+ /**
24
+ * s221-m02 (#2482 ruling 5): saved-schema composition directives the React and Vue components accept, which code
25
+ * generation consumes (a field binding, a pattern's parts) and the component reads no value from; listed apart from
26
+ * the props a consumer passes.
27
+ */
28
+ directives?: readonly string[];
23
29
  /** Public props needed to name or identify a field; substitution must preserve them. */
24
30
  requiredProps?: readonly string[];
25
31
  slots: readonly string[];
@@ -80,7 +86,7 @@ type ComponentBehavior = {
80
86
 
81
87
  declare const COMPONENT_CONTRACT_VERSION: "1.1.0";
82
88
  declare const COMPONENT_CONTRACT_VERSION_1_1: "1.1.0";
83
- declare const componentContracts: Readonly<Record<"AddressCollectionPanel" | "AddressEditor" | "AddressSummaryBadge" | "AddressValidationTimeline" | "ArchiveEvent" | "ArchivePill" | "ArchiveSummary" | "ArchivedRowOverlay" | "AuditEvent" | "AuditSummaryCard" | "AuditTimeline" | "Badge" | "Banner" | "BillingAmountInput" | "BillingCardMeta" | "BillingIntervalSelector" | "BillingSummaryBadge" | "Button" | "CancellationBadge" | "CancellationEvent" | "CancellationForm" | "CancellationSummary" | "Card" | "CardHeader" | "Checkbox" | "ClassificationBadge" | "ClassificationEditor" | "ClassificationPanel" | "ColorStatePicker" | "ColorSwatch" | "ColorizedBadge" | "CommunicationDetailPanel" | "CycleProgressCard" | "DatePicker" | "DetailHeader" | "FilterPanel" | "FormLabelGroup" | "GeoFieldMappingForm" | "GeoResolutionBadge" | "GeocodablePreview" | "Grid" | "InlineLabel" | "Input" | "LabelCell" | "MembershipAuditTimeline" | "MembershipPanel" | "MessageEventTimeline" | "MessageStatusBadge" | "OwnerBadge" | "OwnershipMeta" | "OwnershipSummary" | "PaginationBar" | "PaymentEventTimeline" | "PaymentTimeline" | "PreferenceEditor" | "PreferencePanel" | "PreferenceSummaryBadge" | "PreferenceTimeline" | "PriceBadge" | "PriceCardMeta" | "PriceSummary" | "RelativeTimestamp" | "RoleAssignmentForm" | "RoleBadgeList" | "SearchInput" | "Select" | "SortIndicator" | "Stack" | "StateTransitionEvent" | "StatusBadge" | "StatusColorLegend" | "StatusSelector" | "StatusTimeline" | "Table" | "Tabs" | "TagInput" | "TagManager" | "TagPills" | "TagSummary" | "TemplatePicker" | "Text" | "Textarea" | "TimelineEntryLabel" | "VizAreaControls" | "VizAreaPreview" | "VizAxisControls" | "VizAxisSummary" | "VizColorControls" | "VizColorLegendConfig" | "VizEncodingBadge" | "VizGraphPreview" | "VizHeatmapControls" | "VizHeatmapPreview" | "VizLineControls" | "VizLinePreview" | "VizMarkControls" | "VizMarkPreview" | "VizOpacityControls" | "VizOpacitySummary" | "VizPointControls" | "VizPointPreview" | "VizRoleBadge" | "VizScaleControls" | "VizScaleSummary" | "VizScatterControls" | "VizScatterPreview" | "VizShapeControls" | "VizShapeLegend" | "VizSizeControls" | "VizSizeSummary", ComponentContract>>;
89
+ declare const componentContracts: Readonly<Record<"AddressCollectionPanel" | "AddressEditor" | "AddressSummaryBadge" | "AddressValidationTimeline" | "ArchiveEvent" | "ArchivePill" | "ArchiveSummary" | "ArchivedRowOverlay" | "AuditEvent" | "AuditSummaryCard" | "AuditTimeline" | "Badge" | "Banner" | "BillingAmountInput" | "BillingCardMeta" | "BillingIntervalSelector" | "BillingSummaryBadge" | "Button" | "CancellationBadge" | "CancellationEvent" | "CancellationForm" | "CancellationSummary" | "Card" | "CardHeader" | "Checkbox" | "ClassificationBadge" | "ClassificationEditor" | "ClassificationPanel" | "ColorStatePicker" | "ColorSwatch" | "ColorizedBadge" | "CommunicationDetailPanel" | "CycleProgressCard" | "DatePicker" | "DetailHeader" | "Dialog" | "FilterPanel" | "FormLabelGroup" | "GeoFieldMappingForm" | "GeoResolutionBadge" | "GeocodablePreview" | "Grid" | "InlineLabel" | "Input" | "LabelCell" | "MembershipAuditTimeline" | "MembershipPanel" | "MessageEventTimeline" | "MessageStatusBadge" | "OwnerBadge" | "OwnershipMeta" | "OwnershipSummary" | "PaginationBar" | "PaymentEventTimeline" | "PaymentTimeline" | "PreferenceEditor" | "PreferencePanel" | "PreferenceSummaryBadge" | "PreferenceTimeline" | "PriceBadge" | "PriceCardMeta" | "PriceSummary" | "RelativeTimestamp" | "RoleAssignmentForm" | "RoleBadgeList" | "SearchInput" | "Select" | "SortIndicator" | "Stack" | "StateTransitionEvent" | "StatusBadge" | "StatusColorLegend" | "StatusSelector" | "StatusTimeline" | "Switch" | "Table" | "Tabs" | "TagInput" | "TagManager" | "TagPills" | "TagSummary" | "TemplatePicker" | "Text" | "Textarea" | "TimelineEntryLabel" | "VizAreaControls" | "VizAreaPreview" | "VizAxisControls" | "VizAxisSummary" | "VizColorControls" | "VizColorLegendConfig" | "VizEncodingBadge" | "VizGraphPreview" | "VizHeatmapControls" | "VizHeatmapPreview" | "VizLineControls" | "VizLinePreview" | "VizMarkControls" | "VizMarkPreview" | "VizOpacityControls" | "VizOpacitySummary" | "VizPointControls" | "VizPointPreview" | "VizRoleBadge" | "VizScaleControls" | "VizScaleSummary" | "VizScatterControls" | "VizScatterPreview" | "VizShapeControls" | "VizShapeLegend" | "VizSizeControls" | "VizSizeSummary", ComponentContract>>;
84
90
 
85
91
  /** Billable's declared defaults; object parameter overrides travel as runtime props. */
86
92
  declare const BILLING_INTERVALS: readonly ["monthly", "quarterly", "annual"];
@@ -109,6 +115,11 @@ declare function formatPriceAmount(value: unknown, currency?: unknown, minorUnit
109
115
  declare function formatPriceCode(value: unknown): string | undefined;
110
116
 
111
117
  declare const sharedScenarios: readonly SharedScenario[];
118
+ /**
119
+ * s222-m03 (#2502 ruling 16): an empty value, which React, Vue and the HTML renderer must show alike, as "Unknown time"
120
+ * with no empty datetime. It stays out of sharedScenarios, which holds exactly one documented example per component.
121
+ */
122
+ declare const relativeTimestampEmptyScenario: SharedScenario;
112
123
 
113
124
  /** @deprecated Historical compatibility view; canonical definitions live in componentContracts. */
114
125
  declare const portedComponentContracts: Readonly<Record<"AuditTimeline" | "CancellationSummary" | "PaginationBar" | "PriceBadge" | "RelativeTimestamp" | "SearchInput" | "StatusBadge" | "StatusTimeline", ComponentContract>>;
@@ -157,6 +168,64 @@ declare const RESULT_STATE_TONE: "neutral";
157
168
  /** The tones that carry a verdict or a severity; a result state never resolves to any of their colours. */
158
169
  declare const SEVERITY_TONES: readonly ["positive", "success", "warning", "critical", "danger"];
159
170
 
171
+ /**
172
+ * s222-m02 (#2502 ruling 11): status marks are SVG icons, not Unicode glyphs, so a badge or banner draws the same mark
173
+ * in every font and renderer. One 16-unit grid, stroked in the text colour (1.5 wide, round caps and joins), so each
174
+ * mark keeps the tone's graded text contrast and reads at a badge's 12px and a banner's 16px. React, Vue and HTML all
175
+ * draw from this table.
176
+ */
177
+ type StatusIconName = 'check' | 'x' | 'alert' | 'info' | 'clock' | 'dots' | 'refresh' | 'pause' | 'ban' | 'pencil' | 'star' | 'undo' | 'lock' | 'unlock' | 'dot';
178
+ type StatusIconShape = {
179
+ readonly tag: 'path' | 'circle' | 'rect';
180
+ readonly attrs: Readonly<Record<string, string>>;
181
+ };
182
+ declare const STATUS_ICON_SHAPES: Readonly<Record<StatusIconName, readonly StatusIconShape[]>>;
183
+ /** The outer svg element's attributes, in the order every renderer writes them. It is 1em square, so it takes the size of
184
+ * the text it sits in wherever no stylesheet sizes it. */
185
+ declare const STATUS_ICON_SVG_ATTRS: Readonly<Record<string, string>>;
186
+ /** The mark for a registry icon name; an unknown name takes the neutral dot, and no name takes no mark. */
187
+ declare function resolveStatusIcon(iconName: string | undefined): StatusIconName | undefined;
188
+ /** The mark as markup, for renderers that write HTML strings. */
189
+ declare function statusIconMarkup(name: StatusIconName): string;
190
+
191
+ /**
192
+ * s222-m02 (#2502 ruling 11): the status registry and its presentation, shared by every renderer. It moved here from
193
+ * @oods/components-react (which re-exports it unchanged) so the HTML renderer labels, tones and marks a status exactly as
194
+ * the React components do. The map is the token package's saas-billing status map.
195
+ *
196
+ * s222-m03 (#2502 ruling 13): the lifecycle table (registry/lifecycle-status-tones.json) is the StatusBadge contract's
197
+ * lifecycle status-to-tone table: the `lifecycle` domain, and what any domain's badge reads for a status its own table does
198
+ * not know. A settled payment is a success and a failed one critical, not neutral.
199
+ */
200
+ type StatusTone = 'neutral' | 'info' | 'accent' | 'positive' | 'success' | 'warning' | 'critical' | 'danger';
201
+ type StatusDomain = string;
202
+ type StatusTokenSet = {
203
+ readonly background: string;
204
+ readonly border: string;
205
+ readonly foreground: string;
206
+ };
207
+ type StatusPresentation = {
208
+ readonly domain: StatusDomain;
209
+ readonly status: string;
210
+ readonly label: string;
211
+ readonly description: string;
212
+ readonly tone: StatusTone;
213
+ readonly iconName?: string;
214
+ readonly badge: {
215
+ readonly subtle: StatusTokenSet;
216
+ readonly solid: StatusTokenSet;
217
+ };
218
+ readonly banner: {
219
+ readonly subtle: StatusTokenSet;
220
+ readonly solid: StatusTokenSet;
221
+ };
222
+ };
223
+ declare const STATUS_DOMAINS: readonly StatusDomain[];
224
+ declare function getStatusPresentation(domain: StatusDomain, status: string): StatusPresentation;
225
+ declare function listStatuses(domain: StatusDomain): readonly StatusPresentation[];
226
+ declare function getToneTokenSet(tone: StatusTone): StatusTokenSet;
227
+ declare function getBannerToneTokenSet(tone: StatusTone): StatusTokenSet;
228
+
160
229
  interface BillingCycleValues {
161
230
  progress?: number;
162
231
  periodStart?: string;
@@ -260,6 +329,30 @@ declare function assertStaticSvg(svg: string): string;
260
329
  * the title as a text element whose whole content is the title.
261
330
  */
262
331
  declare function svgCarriesTitle(svg: string, title: string | undefined): boolean;
332
+ /** s222-m02 (#2502 ruling 12, F7): the props that carry a placed chart's dark and high-contrast renders. */
333
+ declare const VIZ_THEME_SVG_PROPS: readonly ["svgDark", "svgDarkNarrow", "svgDarkWide", "svgHc", "svgHcNarrow", "svgHcWide"];
334
+ type VizThemeSvgProp = (typeof VIZ_THEME_SVG_PROPS)[number];
335
+ /** Every render prop a placed chart carries: the light (or only) renders, then the dark and hc ones. */
336
+ declare const VIZ_SVG_PROPS: readonly ["svg", "svgNarrow", "svgWide", "svgDark", "svgDarkNarrow", "svgDarkWide", "svgHc", "svgHcNarrow", "svgHcWide"];
337
+ type VizPreviewTheme = 'light' | 'dark' | 'hc';
338
+ type VizRenderAttribute = 'data-viz-svg' | 'data-viz-svg-narrow' | 'data-viz-svg-wide';
339
+ /** One set of a chart's renders: the design size, then the narrow and wide sizes when present. */
340
+ interface VizPreviewLayer {
341
+ /** The theme the renders are drawn in; absent for a chart with no dark or hc renders, whose renders show in every theme. */
342
+ readonly theme?: VizPreviewTheme;
343
+ readonly narrow: boolean;
344
+ readonly wide: boolean;
345
+ /** Each render's wrapper attribute and its checked SVG, in document order. */
346
+ readonly renders: ReadonlyArray<readonly [VizRenderAttribute, string]>;
347
+ }
348
+ /**
349
+ * The renders a chart preview lays out, which React, Vue and the HTML renderer all read, so the three render one markup.
350
+ * Without a dark or hc render it is the one unthemed layer the figure has always shown (svg, svgNarrow, svgWide). With
351
+ * them, a layer per theme (light is svg*), each wrapped in [data-viz-theme]; component-styles shows the one matching the
352
+ * nearest [data-theme], and each wrapper repeats the figure's data-viz-narrow and data-viz-wide so the size rules apply
353
+ * inside it. Every SVG passes assertStaticSvg.
354
+ */
355
+ declare function vizPreviewLayers(props: Readonly<Partial<Record<'svg' | 'svgNarrow' | 'svgWide' | VizThemeSvgProp, unknown>>>): VizPreviewLayer[];
263
356
 
264
357
  declare const componentBehaviors: {
265
358
  readonly VizAreaControls: {
@@ -1660,6 +1753,48 @@ declare const componentBehaviors: {
1660
1753
  readonly interactionReason: "DetailHeader presents content and owns no focusable control or action; authored child actions remain the consumer's responsibility.";
1661
1754
  readonly event: readonly [];
1662
1755
  };
1756
+ readonly Dialog: {
1757
+ readonly role: "button";
1758
+ readonly name: {
1759
+ readonly strategy: "aria-label";
1760
+ readonly target: "button[aria-label=\"Close\"]";
1761
+ };
1762
+ readonly keyboard: {
1763
+ readonly Tab: "Move focus to the named native control";
1764
+ readonly Enter: "Activate the control";
1765
+ readonly Escape: "Close the dialog";
1766
+ };
1767
+ readonly interaction: "interactive";
1768
+ readonly event: readonly [{
1769
+ readonly trigger: "keyboard";
1770
+ readonly target: "button[aria-label=\"Close\"]";
1771
+ readonly key: "Tab";
1772
+ readonly effect: {
1773
+ readonly kind: "focus";
1774
+ };
1775
+ }, {
1776
+ readonly trigger: "pointer";
1777
+ readonly target: "button[aria-label=\"Close\"]";
1778
+ readonly effect: {
1779
+ readonly kind: "event";
1780
+ };
1781
+ readonly action: "click";
1782
+ }, {
1783
+ readonly trigger: "keyboard";
1784
+ readonly target: "button[aria-label=\"Close\"]";
1785
+ readonly effect: {
1786
+ readonly kind: "event";
1787
+ };
1788
+ readonly key: "Enter";
1789
+ }, {
1790
+ readonly trigger: "keyboard";
1791
+ readonly target: "button[aria-label=\"Close\"]";
1792
+ readonly effect: {
1793
+ readonly kind: "event";
1794
+ };
1795
+ readonly key: "Escape";
1796
+ }];
1797
+ };
1663
1798
  readonly FilterPanel: {
1664
1799
  readonly role: "button";
1665
1800
  readonly name: {
@@ -2155,6 +2290,51 @@ declare const componentBehaviors: {
2155
2290
  readonly interactionReason: "StatusTimeline presents content and owns no focusable control or action; authored child actions remain the consumer's responsibility.";
2156
2291
  readonly event: readonly [];
2157
2292
  };
2293
+ readonly Switch: {
2294
+ readonly role: "switch";
2295
+ readonly name: {
2296
+ readonly strategy: "label";
2297
+ readonly target: "button[role=\"switch\"]";
2298
+ };
2299
+ readonly keyboard: {
2300
+ readonly Tab: "Move focus to the named native control";
2301
+ readonly " ": "Toggle the switch";
2302
+ readonly Enter: "Toggle the switch";
2303
+ };
2304
+ readonly interaction: "interactive";
2305
+ readonly event: readonly [{
2306
+ readonly trigger: "keyboard";
2307
+ readonly target: "button[role=\"switch\"]";
2308
+ readonly key: "Tab";
2309
+ readonly effect: {
2310
+ readonly kind: "focus";
2311
+ };
2312
+ }, {
2313
+ readonly trigger: "pointer";
2314
+ readonly target: "button[role=\"switch\"]";
2315
+ readonly effect: {
2316
+ readonly kind: "event";
2317
+ readonly value: true;
2318
+ };
2319
+ readonly action: "click";
2320
+ }, {
2321
+ readonly trigger: "keyboard";
2322
+ readonly target: "button[role=\"switch\"]";
2323
+ readonly effect: {
2324
+ readonly kind: "event";
2325
+ readonly value: true;
2326
+ };
2327
+ readonly key: " ";
2328
+ }, {
2329
+ readonly trigger: "keyboard";
2330
+ readonly target: "button[role=\"switch\"]";
2331
+ readonly effect: {
2332
+ readonly kind: "event";
2333
+ readonly value: true;
2334
+ };
2335
+ readonly key: "Enter";
2336
+ }];
2337
+ };
2158
2338
  readonly Table: {
2159
2339
  readonly role: "button";
2160
2340
  readonly name: {
@@ -3040,4 +3220,4 @@ declare function getBaselineCapability(componentId: string): {
3040
3220
  };
3041
3221
  } | undefined;
3042
3222
 
3043
- export { type AuditSummaryValues, BILLING_AMOUNT_ERROR, BILLING_INTERVALS, BILLING_INTERVAL_ERROR, BILLING_MINOR_UNITS, type BillingAmountResult, type BillingCycleValues, type BillingPaymentValues, COMPONENT_CLASSIFICATIONS, COMPONENT_CONTRACT_VERSION, COMPONENT_CONTRACT_VERSION_1_1, type CollectionEvent, type ComponentBehavior, type ComponentClassification, type ComponentContract, DEFAULT_COLOR_STATES, EMISSION_ELIGIBILITY_EVIDENCE_CLASSES, type EmissionEligibilityEvidence, type EmissionEligibilityEvidenceClass, type EvidenceResult, type EvidenceStatus, FOUNDATION_V1_EVIDENCE_CLASSES, type FoundationV1Evidence, type FoundationV1EvidenceClass, GOVERNED_DEFINITION, GOVERNED_SURFACES, type GeoFieldMappingValue, type GovernedComponentId, type GovernedLedgerRow, NO_LAST_PAYMENT, NO_NEXT_PAYMENT, NUCLEUS_COMPONENT_IDS, type NucleusComponentId, type ObligationStatus, PORTED_COMPONENT_IDS, type PortedComponentId, RESULT_STATES, RESULT_STATE_TONE, type ResultState, SEVERITY_TONES, type ScenarioTrigger, type SharedScenario, type SortIndicatorValues, type SortState, type SubstitutionContractReport, type SubstitutionObligation, type TraitEventKind, type TraitEventValues, UI_WORKFLOW_STATES, type UiWorkflowState, VIZ_CONTROL_IDS, VIZ_CONTROL_TITLES, VIZ_PREVIEW_TYPES, VIZ_SUMMARY_IDS, type VizChannel, type VizChartType, type VizColorBinding, type VizControlField, type VizControlId, type VizFieldBinding, type VizIntentFragment, type VizScale, type VizSummaryId, ariaSort, assertStaticSvg, auditSummary, billingAmountMessage, billingAmountText, billingCycle, billingDate, billingIntervalMessage, billingPaymentRows, billingPaymentSummary, billingPeriodEnd, billingSummary, chronologicalEvents, componentBehaviors, componentCapabilityBaseline, componentContracts, componentIntake, componentReconciliationProposal, currencyMinorUnits, dateTimeInputValue, defaultVizIntent, deriveStartingComponentCount, editVizIntent, evaluateEmissionEligibility, evaluateFoundationV1, formatBillingAmount, formatDateTime, formatPriceAmount, formatPriceCode, formatReadOnlyValue, formatRecordLabel, formatReferenceLabel, geoFieldMapping, getBaselineCapability, initialSort, isGovernedComponent, isVizIntentFragment, nextSort, parseBillingAmount, portedComponentContracts, portedScenarios, recipeItemLabels, recordCollectionEvents, restartedBillingPeriod, sharedScenarios, substitutionContractReport, summarizeSubstitutionReport, summaryValue, svgCarriesTitle, traitEventRows, validMinorUnits, validateComponentIntakeDocument, vizControlFields, vizFieldValue, vizSummaryRows };
3223
+ export { type AuditSummaryValues, BILLING_AMOUNT_ERROR, BILLING_INTERVALS, BILLING_INTERVAL_ERROR, BILLING_MINOR_UNITS, type BillingAmountResult, type BillingCycleValues, type BillingPaymentValues, COMPONENT_CLASSIFICATIONS, COMPONENT_CONTRACT_VERSION, COMPONENT_CONTRACT_VERSION_1_1, type CollectionEvent, type ComponentBehavior, type ComponentClassification, type ComponentContract, DEFAULT_COLOR_STATES, EMISSION_ELIGIBILITY_EVIDENCE_CLASSES, type EmissionEligibilityEvidence, type EmissionEligibilityEvidenceClass, type EvidenceResult, type EvidenceStatus, FOUNDATION_V1_EVIDENCE_CLASSES, type FoundationV1Evidence, type FoundationV1EvidenceClass, GOVERNED_DEFINITION, GOVERNED_SURFACES, type GeoFieldMappingValue, type GovernedComponentId, type GovernedLedgerRow, NO_LAST_PAYMENT, NO_NEXT_PAYMENT, NUCLEUS_COMPONENT_IDS, type NucleusComponentId, type ObligationStatus, PORTED_COMPONENT_IDS, type PortedComponentId, RESULT_STATES, RESULT_STATE_TONE, type ResultState, SEVERITY_TONES, STATUS_DOMAINS, STATUS_ICON_SHAPES, STATUS_ICON_SVG_ATTRS, type ScenarioTrigger, type SharedScenario, type SortIndicatorValues, type SortState, type StatusDomain, type StatusIconName, type StatusIconShape, type StatusPresentation, type StatusTokenSet, type StatusTone, type SubstitutionContractReport, type SubstitutionObligation, type TraitEventKind, type TraitEventValues, UI_WORKFLOW_STATES, type UiWorkflowState, VIZ_CONTROL_IDS, VIZ_CONTROL_TITLES, VIZ_PREVIEW_TYPES, VIZ_SUMMARY_IDS, VIZ_SVG_PROPS, VIZ_THEME_SVG_PROPS, type VizChannel, type VizChartType, type VizColorBinding, type VizControlField, type VizControlId, type VizFieldBinding, type VizIntentFragment, type VizPreviewLayer, type VizPreviewTheme, type VizRenderAttribute, type VizScale, type VizSummaryId, type VizThemeSvgProp, ariaSort, assertStaticSvg, auditSummary, billingAmountMessage, billingAmountText, billingCycle, billingDate, billingIntervalMessage, billingPaymentRows, billingPaymentSummary, billingPeriodEnd, billingSummary, chronologicalEvents, componentBehaviors, componentCapabilityBaseline, componentContracts, componentIntake, componentReconciliationProposal, currencyMinorUnits, dateTimeInputValue, defaultVizIntent, deriveStartingComponentCount, editVizIntent, evaluateEmissionEligibility, evaluateFoundationV1, formatBillingAmount, formatDateTime, formatPriceAmount, formatPriceCode, formatReadOnlyValue, formatRecordLabel, formatReferenceLabel, geoFieldMapping, getBannerToneTokenSet, getBaselineCapability, getStatusPresentation, getToneTokenSet, initialSort, isGovernedComponent, isVizIntentFragment, listStatuses, nextSort, parseBillingAmount, portedComponentContracts, portedScenarios, recipeItemLabels, recordCollectionEvents, relativeTimestampEmptyScenario, resolveStatusIcon, restartedBillingPeriod, sharedScenarios, statusIconMarkup, substitutionContractReport, summarizeSubstitutionReport, summaryValue, svgCarriesTitle, traitEventRows, validMinorUnits, validateComponentIntakeDocument, vizControlFields, vizFieldValue, vizPreviewLayers, vizSummaryRows };