@praxisui/rich-content 9.0.0-beta.7 → 9.0.0-beta.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/ai/component-registry.json +6559 -0
- package/fesm2022/praxisui-rich-content.mjs +1218 -207
- package/package.json +7 -3
- package/types/praxisui-rich-content.d.ts +37 -0
|
@@ -13,11 +13,17 @@ const PRAXIS_RICH_CONTENT_EN_US = {
|
|
|
13
13
|
'praxis.richContent.editor.subtitle': 'Edit the canonical document consumed by the renderer. The saved payload preserves the remaining widget inputs.',
|
|
14
14
|
'praxis.richContent.editor.valid': 'Valid document',
|
|
15
15
|
'praxis.richContent.editor.invalid': 'Invalid JSON',
|
|
16
|
+
'praxis.richContent.editor.invalidBadge': 'Invalid',
|
|
16
17
|
'praxis.richContent.editor.layout': 'Layout',
|
|
17
18
|
'praxis.richContent.editor.layout.block': 'Block',
|
|
18
19
|
'praxis.richContent.editor.layout.inline': 'Inline',
|
|
19
20
|
'praxis.richContent.editor.rootClass': 'Root class',
|
|
20
21
|
'praxis.richContent.editor.rootClassPlaceholder': 'Example: employee-expansion-rich',
|
|
22
|
+
'praxis.richContent.editor.documentContext': 'Document context',
|
|
23
|
+
'praxis.richContent.editor.documentContextHelp': 'Canonical data scopes and aliases available to rich-content bindings.',
|
|
24
|
+
'praxis.richContent.editor.documentContextFields': 'Context contract',
|
|
25
|
+
'praxis.richContent.editor.workbenchTabs': 'Editor sections',
|
|
26
|
+
'praxis.richContent.editor.guidedEditing': 'Guided editing',
|
|
21
27
|
'praxis.richContent.editor.document': 'Advanced JSON',
|
|
22
28
|
'praxis.richContent.editor.documentJson': 'Canonical document JSON',
|
|
23
29
|
'praxis.richContent.editor.documentHelp': 'Edit the canonical RichContentDocument. The inspector validates the shape and renders a preview before apply or save.',
|
|
@@ -28,6 +34,13 @@ const PRAXIS_RICH_CONTENT_EN_US = {
|
|
|
28
34
|
'praxis.richContent.editor.structureHelp': 'Select a block to edit its properties.',
|
|
29
35
|
'praxis.richContent.editor.properties': 'Properties',
|
|
30
36
|
'praxis.richContent.editor.propertiesHelp': 'Edit the selected block without leaving the document structure.',
|
|
37
|
+
'praxis.richContent.editor.intentNavigation': 'Property sections',
|
|
38
|
+
'praxis.richContent.editor.intent.content': 'Content',
|
|
39
|
+
'praxis.richContent.editor.intent.contentHelp': 'Primary block fields',
|
|
40
|
+
'praxis.richContent.editor.intent.presentation': 'Presentation',
|
|
41
|
+
'praxis.richContent.editor.intent.presentationHelp': 'Visual affordances',
|
|
42
|
+
'praxis.richContent.editor.intent.dataRules': 'Data and rules',
|
|
43
|
+
'praxis.richContent.editor.intent.dataRulesHelp': 'Metadata and gates',
|
|
31
44
|
'praxis.richContent.editor.hasIssues': 'Needs attention',
|
|
32
45
|
'praxis.richContent.editor.block': 'Block',
|
|
33
46
|
'praxis.richContent.editor.blockType': 'Block type',
|
|
@@ -50,6 +63,12 @@ const PRAXIS_RICH_CONTENT_EN_US = {
|
|
|
50
63
|
'praxis.richContent.editor.cardContentHelp': 'Card content is preserved in JSON. Use advanced JSON for nested card nodes.',
|
|
51
64
|
'praxis.richContent.editor.nodeId': 'Stable id',
|
|
52
65
|
'praxis.richContent.editor.nodeIdPlaceholder': 'Example: hero-title',
|
|
66
|
+
'praxis.richContent.editor.advancedDataRules': 'Advanced data and rules',
|
|
67
|
+
'praxis.richContent.editor.advancedDataRulesHelp': 'Metadata, capability gates, visibility and safe style.',
|
|
68
|
+
'praxis.richContent.editor.advancedJsonFields': 'Advanced JSON fields present',
|
|
69
|
+
'praxis.richContent.editor.advancedJsonFieldsHelp': 'These canonical fields are preserved by guided edits and remain editable in the Advanced JSON tab.',
|
|
70
|
+
'praxis.richContent.editor.advancedJsonEditor': 'Advanced JSON editor',
|
|
71
|
+
'praxis.richContent.editor.advancedJsonEditorHelp': 'Edit canonical data bindings and JsonLogic rule fields without leaving guided editing.',
|
|
53
72
|
'praxis.richContent.editor.visibilityRule': 'Visibility rule',
|
|
54
73
|
'praxis.richContent.editor.safeStyle': 'Safe style',
|
|
55
74
|
'praxis.richContent.editor.nodeType.text': 'Text',
|
|
@@ -105,6 +124,14 @@ const PRAXIS_RICH_CONTENT_EN_US = {
|
|
|
105
124
|
'praxis.richContent.editor.field.visibleWhenValue': 'Expected value',
|
|
106
125
|
'praxis.richContent.editor.field.styleName': 'CSS property',
|
|
107
126
|
'praxis.richContent.editor.field.styleValue': 'CSS value',
|
|
127
|
+
'praxis.richContent.editor.field.bindings': 'Data bindings',
|
|
128
|
+
'praxis.richContent.editor.field.disabledWhen': 'Disabled rule',
|
|
129
|
+
'praxis.richContent.editor.field.loadWhen': 'Load rule',
|
|
130
|
+
'praxis.richContent.editor.field.classWhen': 'Conditional classes',
|
|
131
|
+
'praxis.richContent.editor.field.styleWhen': 'Conditional styles',
|
|
132
|
+
'praxis.richContent.editor.field.contextScopes': 'Context scopes',
|
|
133
|
+
'praxis.richContent.editor.field.contextAliases': 'Context aliases',
|
|
134
|
+
'praxis.richContent.editor.placeholder.contextScopes': 'row, user, tenant',
|
|
108
135
|
'praxis.richContent.editor.field.valueExpr': 'Value binding',
|
|
109
136
|
'praxis.richContent.editor.field.captionExpr': 'Caption binding',
|
|
110
137
|
'praxis.richContent.editor.field.max': 'Maximum',
|
|
@@ -420,6 +447,8 @@ const PRAXIS_RICH_CONTENT_EN_US = {
|
|
|
420
447
|
'praxis.richContent.editor.nodeTypes': 'Types',
|
|
421
448
|
'praxis.richContent.editor.none': 'None',
|
|
422
449
|
'praxis.richContent.editor.preview': 'Preview',
|
|
450
|
+
'praxis.richContent.editor.previewHelp': 'Inspect the materialized document without mixing preview with authoring fields.',
|
|
451
|
+
'praxis.richContent.editor.previewUnavailable': 'Preview is unavailable until the document is valid.',
|
|
423
452
|
'praxis.richContent.editor.restore': 'Restore',
|
|
424
453
|
'praxis.richContent.editor.emptyDocument': 'Empty document',
|
|
425
454
|
'praxis.richContent.editor.validation.documentShape': 'The document must be a valid RichContentDocument.',
|
|
@@ -454,6 +483,12 @@ const PRAXIS_RICH_CONTENT_EN_US = {
|
|
|
454
483
|
'praxis.richContent.editor.validation.numberField': 'This field must be a number.',
|
|
455
484
|
'praxis.richContent.editor.validation.booleanField': 'This field must be a boolean.',
|
|
456
485
|
'praxis.richContent.editor.validation.enumField': 'This field must use one of the supported values.',
|
|
486
|
+
'praxis.richContent.editor.validation.invalidFieldJson': 'Enter valid JSON.',
|
|
487
|
+
'praxis.richContent.editor.validation.invalidCanonicalField': 'The JSON is valid but does not match the rich-content contract.',
|
|
488
|
+
'praxis.richContent.editor.validation.advancedArrayField': 'This field must be a JSON array.',
|
|
489
|
+
'praxis.richContent.editor.validation.advancedObjectField': 'This field must be a JSON object.',
|
|
490
|
+
'praxis.richContent.editor.validation.contextScopes': 'Use supported context scopes only: row, computed, detail, meta, user, tenant.',
|
|
491
|
+
'praxis.richContent.editor.validation.contextAliases': 'Context aliases must be a JSON object with string values.',
|
|
457
492
|
};
|
|
458
493
|
|
|
459
494
|
const PRAXIS_RICH_CONTENT_PT_BR = {
|
|
@@ -462,11 +497,17 @@ const PRAXIS_RICH_CONTENT_PT_BR = {
|
|
|
462
497
|
'praxis.richContent.editor.subtitle': 'Edite o documento canônico consumido pelo renderer. O payload salvo preserva os demais inputs do widget.',
|
|
463
498
|
'praxis.richContent.editor.valid': 'Documento válido',
|
|
464
499
|
'praxis.richContent.editor.invalid': 'JSON inválido',
|
|
500
|
+
'praxis.richContent.editor.invalidBadge': 'Inválido',
|
|
465
501
|
'praxis.richContent.editor.layout': 'Layout',
|
|
466
502
|
'praxis.richContent.editor.layout.block': 'Bloco',
|
|
467
503
|
'praxis.richContent.editor.layout.inline': 'Inline',
|
|
468
504
|
'praxis.richContent.editor.rootClass': 'Classe raiz',
|
|
469
505
|
'praxis.richContent.editor.rootClassPlaceholder': 'Exemplo: employee-expansion-rich',
|
|
506
|
+
'praxis.richContent.editor.documentContext': 'Contexto do documento',
|
|
507
|
+
'praxis.richContent.editor.documentContextHelp': 'Escopos e aliases de dados canônicos disponíveis para os bindings de rich-content.',
|
|
508
|
+
'praxis.richContent.editor.documentContextFields': 'Contrato de contexto',
|
|
509
|
+
'praxis.richContent.editor.workbenchTabs': 'Seções do editor',
|
|
510
|
+
'praxis.richContent.editor.guidedEditing': 'Edição guiada',
|
|
470
511
|
'praxis.richContent.editor.document': 'JSON avançado',
|
|
471
512
|
'praxis.richContent.editor.documentJson': 'JSON do documento canônico',
|
|
472
513
|
'praxis.richContent.editor.documentHelp': 'Edite o RichContentDocument canônico. O inspetor valida o formato e renderiza uma prévia antes de aplicar ou salvar.',
|
|
@@ -477,6 +518,13 @@ const PRAXIS_RICH_CONTENT_PT_BR = {
|
|
|
477
518
|
'praxis.richContent.editor.structureHelp': 'Selecione um bloco para editar suas propriedades.',
|
|
478
519
|
'praxis.richContent.editor.properties': 'Propriedades',
|
|
479
520
|
'praxis.richContent.editor.propertiesHelp': 'Edite o bloco selecionado sem sair da estrutura do documento.',
|
|
521
|
+
'praxis.richContent.editor.intentNavigation': 'Seções de propriedades',
|
|
522
|
+
'praxis.richContent.editor.intent.content': 'Conteúdo',
|
|
523
|
+
'praxis.richContent.editor.intent.contentHelp': 'Campos principais do bloco',
|
|
524
|
+
'praxis.richContent.editor.intent.presentation': 'Apresentação',
|
|
525
|
+
'praxis.richContent.editor.intent.presentationHelp': 'Affordances visuais',
|
|
526
|
+
'praxis.richContent.editor.intent.dataRules': 'Dados e regras',
|
|
527
|
+
'praxis.richContent.editor.intent.dataRulesHelp': 'Metadados e gates',
|
|
480
528
|
'praxis.richContent.editor.hasIssues': 'Requer atenção',
|
|
481
529
|
'praxis.richContent.editor.block': 'Bloco',
|
|
482
530
|
'praxis.richContent.editor.blockType': 'Tipo de bloco',
|
|
@@ -499,6 +547,12 @@ const PRAXIS_RICH_CONTENT_PT_BR = {
|
|
|
499
547
|
'praxis.richContent.editor.cardContentHelp': 'O conteúdo do card é preservado no JSON. Use o JSON avançado para nodes aninhados do card.',
|
|
500
548
|
'praxis.richContent.editor.nodeId': 'Id estável',
|
|
501
549
|
'praxis.richContent.editor.nodeIdPlaceholder': 'Exemplo: hero-title',
|
|
550
|
+
'praxis.richContent.editor.advancedDataRules': 'Dados e regras avançados',
|
|
551
|
+
'praxis.richContent.editor.advancedDataRulesHelp': 'Metadados, capability gates, visibilidade e estilo seguro.',
|
|
552
|
+
'praxis.richContent.editor.advancedJsonFields': 'Campos avançados presentes no JSON',
|
|
553
|
+
'praxis.richContent.editor.advancedJsonFieldsHelp': 'Estes campos canônicos são preservados pelas edições guiadas e continuam editáveis na aba JSON avançado.',
|
|
554
|
+
'praxis.richContent.editor.advancedJsonEditor': 'Editor JSON avançado',
|
|
555
|
+
'praxis.richContent.editor.advancedJsonEditorHelp': 'Edite bindings de dados e campos de regra JsonLogic canônicos sem sair da edição guiada.',
|
|
502
556
|
'praxis.richContent.editor.visibilityRule': 'Regra de visibilidade',
|
|
503
557
|
'praxis.richContent.editor.safeStyle': 'Estilo seguro',
|
|
504
558
|
'praxis.richContent.editor.nodeType.text': 'Texto',
|
|
@@ -533,6 +587,14 @@ const PRAXIS_RICH_CONTENT_PT_BR = {
|
|
|
533
587
|
'praxis.richContent.editor.field.visibleWhenValue': 'Valor esperado',
|
|
534
588
|
'praxis.richContent.editor.field.styleName': 'Propriedade CSS',
|
|
535
589
|
'praxis.richContent.editor.field.styleValue': 'Valor CSS',
|
|
590
|
+
'praxis.richContent.editor.field.bindings': 'Bindings de dados',
|
|
591
|
+
'praxis.richContent.editor.field.disabledWhen': 'Regra de desabilitação',
|
|
592
|
+
'praxis.richContent.editor.field.loadWhen': 'Regra de carregamento',
|
|
593
|
+
'praxis.richContent.editor.field.classWhen': 'Classes condicionais',
|
|
594
|
+
'praxis.richContent.editor.field.styleWhen': 'Estilos condicionais',
|
|
595
|
+
'praxis.richContent.editor.field.contextScopes': 'Escopos de contexto',
|
|
596
|
+
'praxis.richContent.editor.field.contextAliases': 'Aliases de contexto',
|
|
597
|
+
'praxis.richContent.editor.placeholder.contextScopes': 'row, user, tenant',
|
|
536
598
|
'praxis.richContent.editor.field.valueExpr': 'Binding do valor',
|
|
537
599
|
'praxis.richContent.editor.field.captionExpr': 'Binding da legenda',
|
|
538
600
|
'praxis.richContent.editor.field.max': 'Máximo',
|
|
@@ -662,6 +724,8 @@ const PRAXIS_RICH_CONTENT_PT_BR = {
|
|
|
662
724
|
'praxis.richContent.editor.nodeTypes': 'Tipos',
|
|
663
725
|
'praxis.richContent.editor.none': 'Nenhum',
|
|
664
726
|
'praxis.richContent.editor.preview': 'Prévia',
|
|
727
|
+
'praxis.richContent.editor.previewHelp': 'Inspecione o documento materializado sem misturar prévia com campos de autoria.',
|
|
728
|
+
'praxis.richContent.editor.previewUnavailable': 'A prévia fica indisponível até que o documento seja válido.',
|
|
665
729
|
'praxis.richContent.editor.restore': 'Restaurar',
|
|
666
730
|
'praxis.richContent.editor.emptyDocument': 'Documento vazio',
|
|
667
731
|
'praxis.richContent.editor.validation.documentShape': 'O documento deve ser um RichContentDocument válido.',
|
|
@@ -896,6 +960,12 @@ const PRAXIS_RICH_CONTENT_PT_BR = {
|
|
|
896
960
|
'praxis.richContent.editor.defaultTabsSubtitle': 'Agrupe visões portáveis sem inventar markup de abas no host.',
|
|
897
961
|
'praxis.richContent.editor.defaultTabLabel': 'Visão geral',
|
|
898
962
|
'praxis.richContent.editor.defaultTabText': 'Conteúdo da aba',
|
|
963
|
+
'praxis.richContent.editor.validation.invalidFieldJson': 'Informe um JSON válido.',
|
|
964
|
+
'praxis.richContent.editor.validation.invalidCanonicalField': 'O JSON é válido, mas não corresponde ao contrato rich-content.',
|
|
965
|
+
'praxis.richContent.editor.validation.advancedArrayField': 'Este campo deve ser um array JSON.',
|
|
966
|
+
'praxis.richContent.editor.validation.advancedObjectField': 'Este campo deve ser um objeto JSON.',
|
|
967
|
+
'praxis.richContent.editor.validation.contextScopes': 'Use apenas escopos de contexto suportados: row, computed, detail, meta, user, tenant.',
|
|
968
|
+
'praxis.richContent.editor.validation.contextAliases': 'Aliases de contexto devem ser um objeto JSON com valores string.',
|
|
899
969
|
};
|
|
900
970
|
|
|
901
971
|
function createPraxisRichContentI18nConfig(options = {}) {
|
|
@@ -1140,6 +1210,15 @@ class PraxisRichContent {
|
|
|
1140
1210
|
const value = this.resolveValue(node.valueExpr);
|
|
1141
1211
|
return typeof value === 'number' ? value : Number(value ?? 0);
|
|
1142
1212
|
}
|
|
1213
|
+
resolveProgressPercent(node) {
|
|
1214
|
+
const max = Number(node.max ?? 100);
|
|
1215
|
+
const value = this.resolveProgressValue(node);
|
|
1216
|
+
if (!Number.isFinite(value) || !Number.isFinite(max) || max <= 0) {
|
|
1217
|
+
return '0%';
|
|
1218
|
+
}
|
|
1219
|
+
const percent = Math.round(Math.min(Math.max((value / max) * 100, 0), 100));
|
|
1220
|
+
return `${percent}%`;
|
|
1221
|
+
}
|
|
1143
1222
|
resolveProgressLabel(node) {
|
|
1144
1223
|
return this.resolveValue(node.labelExpr) ?? node.label ?? null;
|
|
1145
1224
|
}
|
|
@@ -2115,18 +2194,32 @@ class PraxisRichContent {
|
|
|
2115
2194
|
</div>
|
|
2116
2195
|
}
|
|
2117
2196
|
@case ('metric') {
|
|
2118
|
-
<div class="prx-rich-metric">
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2197
|
+
<div class="prx-rich-metric" [class.prx-rich-metric--with-icon]="node.icon">
|
|
2198
|
+
@if (node.icon) {
|
|
2199
|
+
<span class="material-symbols-outlined prx-rich-metric-icon" aria-hidden="true">
|
|
2200
|
+
{{ node.icon }}
|
|
2201
|
+
</span>
|
|
2123
2202
|
}
|
|
2203
|
+
<div class="prx-rich-metric-content">
|
|
2204
|
+
<div class="prx-rich-metric-label">{{ node.label }}</div>
|
|
2205
|
+
<div class="prx-rich-metric-value">{{ resolveMetricValue(node) }}</div>
|
|
2206
|
+
@if (resolveMetricCaption(node); as caption) {
|
|
2207
|
+
<div class="prx-rich-metric-caption">{{ caption }}</div>
|
|
2208
|
+
}
|
|
2209
|
+
</div>
|
|
2124
2210
|
</div>
|
|
2125
2211
|
}
|
|
2126
2212
|
@case ('progress') {
|
|
2127
2213
|
<div class="prx-rich-progress">
|
|
2128
|
-
@if (resolveProgressLabel(node)
|
|
2129
|
-
<div class="prx-rich-progress-
|
|
2214
|
+
@if (resolveProgressLabel(node) || node.showPercent) {
|
|
2215
|
+
<div class="prx-rich-progress-header">
|
|
2216
|
+
@if (resolveProgressLabel(node); as progressLabel) {
|
|
2217
|
+
<div class="prx-rich-progress-label">{{ progressLabel }}</div>
|
|
2218
|
+
}
|
|
2219
|
+
@if (node.showPercent) {
|
|
2220
|
+
<div class="prx-rich-progress-percent">{{ resolveProgressPercent(node) }}</div>
|
|
2221
|
+
}
|
|
2222
|
+
</div>
|
|
2130
2223
|
}
|
|
2131
2224
|
<progress
|
|
2132
2225
|
class="prx-rich-progress-bar"
|
|
@@ -3196,7 +3289,7 @@ class PraxisRichContent {
|
|
|
3196
3289
|
</span>
|
|
3197
3290
|
}
|
|
3198
3291
|
</ng-template>
|
|
3199
|
-
`, isInline: true, styles: [".prx-rich-content-root{display:block;min-width:0;max-width:100%}.prx-rich-content-root:not(.prx-rich-content-root--inline){display:grid;gap:var(--prx-rich-content-block-gap, 12px)}.prx-rich-content-root--inline{display:inline-flex;align-items:var(--prx-rich-content-inline-align-items, center);flex-wrap:var(--prx-rich-content-inline-flex-wrap, nowrap);gap:var(--prx-rich-content-inline-gap, 6px);min-width:0;max-width:100%;vertical-align:middle}.prx-rich-node{min-width:0;max-width:100%}.prx-rich-node--inline{display:inline-flex;align-items:center;min-width:0;max-width:100%}.prx-rich-compose{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}.prx-rich-compose.direction-column{flex-direction:column;align-items:stretch}.prx-rich-compose.wrap{flex-wrap:wrap}.prx-rich-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:var(--md-sys-color-primary-container, #e8def8);color:var(--md-sys-color-on-primary-container, #21005d);font-size:12px;line-height:20px}.prx-rich-link{color:var(--md-sys-color-primary, #6750a4);text-decoration:underline;text-underline-offset:2px}.prx-rich-text,.prx-rich-link,.prx-rich-badge,.prx-rich-card-title,.prx-rich-card-subtitle,.prx-rich-card-body,.prx-rich-card-footer,.prx-rich-cta-group__title,.prx-rich-cta-group__subtitle,.prx-rich-cta-group__message,.prx-rich-key-value-list__title,.prx-rich-key-value-list__label,.prx-rich-key-value-list__value,.prx-rich-stat-group__title,.prx-rich-stat-group__subtitle,.prx-rich-stat-group__label,.prx-rich-stat-group__value,.prx-rich-stat-group__caption,.prx-rich-tabs__title,.prx-rich-tabs__subtitle,.prx-rich-record-summary__title,.prx-rich-record-summary__subtitle,.prx-rich-record-summary__meta,.prx-rich-record-summary__field-label,.prx-rich-record-summary__field-value,.prx-rich-lookup-result__title,.prx-rich-lookup-result__subtitle,.prx-rich-lookup-result__meta,.prx-rich-lookup-result__message,.prx-rich-lookup-card__title,.prx-rich-lookup-card__subtitle,.prx-rich-lookup-card__meta,.prx-rich-lookup-card__message,.prx-rich-related-record__title,.prx-rich-related-record__subtitle,.prx-rich-related-record__meta,.prx-rich-related-record__relation,.prx-rich-timeline__title,.prx-rich-timeline__subtitle,.prx-rich-timeline__item-title,.prx-rich-timeline__item-subtitle,.prx-rich-timeline__item-meta{min-width:0;max-width:100%;overflow-wrap:anywhere}.prx-rich-text,.prx-rich-link{display:inline-block}.prx-rich-node[data-rich-node-type=avatar]{display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--md-sys-color-surface-container-high, #ece6f0);color:var(--md-sys-color-on-surface, #1d1b20)}.prx-rich-avatar{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:inherit;background:inherit;color:inherit;overflow:hidden}.prx-rich-avatar-image{width:100%;height:100%;object-fit:cover}.prx-rich-avatar-fallback{font-weight:600}.prx-rich-card{--prx-rich-card-tone-color: var(--md-sys-color-outline-variant, #cac4d0);--prx-rich-card-tone-bg: var(--md-sys-color-surface, #fff);--prx-rich-card-tone-on-bg: var(--md-sys-color-on-surface, #1d1b20);display:flex;flex-direction:column;position:relative;gap:12px;padding:16px;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:16px;background:var(--prx-rich-card-tone-bg);color:var(--prx-rich-card-tone-on-bg);overflow:hidden;min-width:0;max-width:100%}.prx-rich-card[data-size=sm],.prx-rich-card[data-density=compact]{gap:8px;padding:12px;border-radius:12px}.prx-rich-content-root.prx-rich-content-root--widget-card{--prx-rich-content-block-gap: 8px}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card{gap:8px;padding:12px;border-radius:var(--pdx-page-card-radius, 10px);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 82%,transparent);box-shadow:none}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card[data-variant=elevated],.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card[data-variant=filled]{border-color:color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 88%,transparent);box-shadow:none}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-heading,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-body,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-actions,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-footer{gap:6px}.prx-rich-card[data-size=lg]{gap:16px;padding:20px}.prx-rich-card[data-orientation=horizontal]{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing{grid-template-columns:minmax(120px,.38fr) minmax(0,1fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-icon,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-avatar{grid-template-columns:minmax(72px,148px) minmax(0,1fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing{grid-template-columns:minmax(0,1fr) minmax(120px,.38fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing.prx-rich-card--media-icon,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing.prx-rich-card--media-avatar{grid-template-columns:minmax(0,1fr) minmax(72px,148px)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading>:not(.prx-rich-card-media){grid-column:2}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading>.prx-rich-card-media[data-placement=leading]{grid-column:1;grid-row:1 / -1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing>:not(.prx-rich-card-media){grid-column:1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing>.prx-rich-card-media[data-placement=trailing]{grid-column:2;grid-row:1 / -1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-top>.prx-rich-card-media[data-placement=top],.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-background>:not(.prx-rich-card-media){grid-column:1}.prx-rich-card[data-variant=plain]{border-color:transparent;background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 64%,transparent)}.prx-rich-card[data-variant=elevated]{border-color:transparent;box-shadow:0 4px 18px color-mix(in srgb,var(--md-sys-color-shadow, #000) 16%,transparent)}.prx-rich-card[data-variant=filled]{background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 72%,var(--md-sys-color-surface-container, #f3edf7))}.prx-rich-card[data-variant=transparent]{border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #cac4d0) 64%,transparent);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 72%,transparent)}.prx-rich-card[data-tone=info]{--prx-rich-card-tone-color: var(--praxis-info, #0b5cad);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-card-tone-color) 12%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 42%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=success]{--prx-rich-card-tone-color: var(--praxis-success, #2e7d32);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-card-tone-color) 12%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 48%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=warning]{--prx-rich-card-tone-color: var(--praxis-warning, #ed6c02);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 86%, var(--prx-rich-card-tone-color) 14%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 56%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=danger]{--prx-rich-card-tone-color: var(--md-sys-color-error, #d32f2f);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 84%, var(--prx-rich-card-tone-color) 16%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 62%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card--interactive{cursor:pointer}.prx-rich-card--interactive:focus-visible{outline:3px solid color-mix(in srgb,var(--md-sys-color-primary, #6750a4) 72%,transparent);outline-offset:2px}.prx-rich-card--selected,.prx-rich-card--active{border-color:var(--md-sys-color-primary, #6750a4);box-shadow:inset 0 0 0 1px var(--md-sys-color-primary, #6750a4)}.prx-rich-card--disabled:not(.prx-rich-card--loading){opacity:.62;cursor:default}.prx-rich-card--loading{cursor:progress}.prx-rich-card-media{display:flex;align-items:center;justify-content:center;min-width:0;border-radius:12px;background:color-mix(in srgb,var(--prx-rich-card-tone-color) 18%,var(--md-sys-color-surface-container-high, #ece6f0));overflow:hidden;aspect-ratio:16 / 9}.prx-rich-card-media[data-kind=icon],.prx-rich-card-media[data-kind=avatar]{aspect-ratio:auto;min-height:64px;padding:12px}.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar]{min-height:48px;padding:8px}.prx-rich-card-media[data-placement=leading],.prx-rich-card-media[data-placement=trailing]{aspect-ratio:auto;min-height:100%}.prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card-media[data-kind=avatar][data-placement=trailing]{align-self:start;min-height:64px}.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar][data-placement=trailing],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar][data-placement=trailing]{min-height:48px}.prx-rich-card-media--background{position:absolute;inset:0;z-index:0;border-radius:inherit;opacity:.18}.prx-rich-card-media--background~*{position:relative;z-index:1}.prx-rich-card-media__asset{width:100%;height:100%;object-fit:cover}.prx-rich-card-media__icon{font-size:40px;color:var(--prx-rich-card-tone-color)}.prx-rich-card-media__avatar{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--prx-rich-card-tone-color) 22%,var(--md-sys-color-primary-container, #e8def8));color:var(--prx-rich-card-tone-on-bg);font-weight:700}.prx-rich-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.prx-rich-card-header__content{min-width:0}.prx-rich-card-header__action{flex:0 0 auto}.prx-rich-card-heading{display:grid;gap:4px;min-width:0}.prx-rich-card-title{font-weight:600}.prx-rich-card-subtitle,.prx-rich-metric-caption{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-metric{display:flex;flex-direction:column;gap:4px}.prx-rich-metric-value{font-size:20px;font-weight:700}.prx-rich-progress{display:flex;flex-direction:column;gap:4px}.prx-rich-progress-bar{width:100%}.prx-rich-action-button,.prx-rich-card-actions,.prx-rich-callout__actions,.prx-rich-empty-state__actions,.prx-rich-record-summary__actions,.prx-rich-disclosure__actions,.prx-rich-accordion__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.prx-rich-action-button{appearance:none;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:999px;background:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-on-surface, #1d1b20);padding:8px 12px;cursor:pointer}.prx-rich-action-button:disabled{opacity:.56;cursor:default}.prx-rich-action-button--raised,.prx-rich-action-button--primary{background:var(--md-sys-color-primary, #6750a4);color:var(--md-sys-color-on-primary, #fff)}.prx-rich-callout,.prx-rich-empty-state,.prx-rich-record-summary,.prx-rich-decision-package,.prx-rich-disclosure,.prx-rich-accordion{border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:16px;padding:16px;background:var(--md-sys-color-surface, #fff)}.prx-rich-callout[data-tone=warning]{background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,#ffb300 12%)}.prx-rich-callout[data-tone=danger]{background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,#d32f2f 12%)}.prx-rich-callout__title,.prx-rich-empty-state__title,.prx-rich-record-summary__title,.prx-rich-decision-package__title,.prx-rich-stat-group__title,.prx-rich-accordion__title,.prx-rich-key-value-list__title{font-weight:700;margin-bottom:4px}.prx-rich-decision-package{--prx-rich-decision-package-accent: var(--md-sys-color-primary, #6750a4);display:grid;grid-template-columns:minmax(0,1fr) minmax(136px,auto);gap:16px;border-color:color-mix(in srgb,var(--prx-rich-decision-package-accent) 42%,var(--md-sys-color-outline-variant, #cac4d0));background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,var(--prx-rich-decision-package-accent) 12%)}.prx-rich-decision-package[data-status=approved],.prx-rich-decision-package[data-status=published]{--prx-rich-decision-package-accent: var(--praxis-success, #2e7d32)}.prx-rich-decision-package[data-status=draft],.prx-rich-decision-package[data-status=simulated],.prx-rich-decision-package[data-risk=medium],.prx-rich-decision-package[data-risk=high]{--prx-rich-decision-package-accent: var(--praxis-warning, #ed6c02)}.prx-rich-decision-package[data-status=reverted],.prx-rich-decision-package[data-risk=critical]{--prx-rich-decision-package-accent: var(--md-sys-color-error, #d32f2f)}.prx-rich-decision-package__main{display:grid;gap:8px;min-width:0}.prx-rich-decision-package__eyebrow,.prx-rich-decision-package__evidence,.prx-rich-decision-package__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.prx-rich-decision-package__title{font-size:20px;line-height:1.15}.prx-rich-decision-package__subtitle,.prx-rich-decision-package__summary,.prx-rich-decision-package__meta,.prx-rich-decision-package__property dt,.prx-rich-decision-package__evidence-item small{color:var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-decision-package__properties{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0}.prx-rich-decision-package__property{min-width:0}.prx-rich-decision-package__property dt,.prx-rich-decision-package__property dd{margin:0;overflow-wrap:anywhere}.prx-rich-decision-package__property dd{font-weight:700}.prx-rich-decision-package__evidence-item{display:inline-flex;flex-direction:column;gap:1px;border:1px solid color-mix(in srgb,var(--prx-rich-decision-package-accent) 24%,var(--md-sys-color-outline-variant, #cac4d0));border-radius:12px;padding:6px 8px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 76%,transparent);font-size:12px}.prx-rich-decision-package__aside{display:grid;align-content:start;justify-items:end;gap:10px;min-width:0}.prx-rich-decision-package__confidence{display:grid;justify-items:center;min-width:96px;border-radius:16px;padding:12px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 72%,transparent)}.prx-rich-decision-package__confidence span{font-size:28px;font-weight:800;line-height:1}.prx-rich-decision-package__confidence small{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:11px;font-weight:700;text-transform:uppercase}@media(max-width:640px){.prx-rich-decision-package{grid-template-columns:minmax(0,1fr)}.prx-rich-decision-package__aside{justify-items:start}}.prx-rich-empty-state{align-items:center;text-align:center}.prx-rich-key-value-list__items,.prx-rich-stat-group__items,.prx-rich-record-summary__fields{display:grid;gap:8px;margin:0}.prx-rich-stat-group[data-layout=inline] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}.prx-rich-stat-group[data-layout=grid] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}.prx-rich-stat-group__item{--prx-rich-stat-tone-color: var(--md-sys-color-outline, #79747e);--prx-rich-stat-tone-bg: var(--md-sys-color-surface, #fff);--prx-rich-stat-tone-border: var(--md-sys-color-outline-variant, #cac4d0);display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:2px;align-items:start;min-width:0;padding:12px;border:1px solid var(--prx-rich-stat-tone-border);border-radius:12px;background:var(--prx-rich-stat-tone-bg)}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__items{gap:6px}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group[data-layout=inline] .prx-rich-stat-group__items,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group[data-layout=grid] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(148px,100%),1fr))}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__item{column-gap:8px;padding:8px 10px;border-radius:var(--pdx-page-card-radius, 10px);background:color-mix(in srgb,var(--prx-rich-stat-tone-bg) 78%,transparent)}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__icon,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__value{font-size:20px}.prx-rich-stat-group__item[data-tone=info]{--prx-rich-stat-tone-color: var(--praxis-info, #0b5cad);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-stat-tone-color) 12%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 34%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=success]{--prx-rich-stat-tone-color: var(--praxis-success, #2e7d32);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-stat-tone-color) 12%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 38%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=warning]{--prx-rich-stat-tone-color: var(--praxis-warning, #b26a00);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 86%, var(--prx-rich-stat-tone-color) 14%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 46%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=danger]{--prx-rich-stat-tone-color: var(--md-sys-color-error, #d32f2f);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 84%, var(--prx-rich-stat-tone-color) 16%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 54%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item-header{display:flex;gap:8px;align-items:center;min-width:0}.prx-rich-stat-group__item-content{display:grid;gap:4px;min-width:0}.prx-rich-stat-group__icon{color:var(--prx-rich-stat-tone-color);font-size:24px;line-height:1;margin-top:1px}.prx-rich-stat-group__item:not(.prx-rich-stat-group__item--with-icon){grid-template-columns:minmax(0,1fr)}.prx-rich-stat-group__label,.prx-rich-stat-group__subtitle,.prx-rich-stat-group__caption{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-stat-group__value{color:var(--md-sys-color-on-surface, #1d1b20);font-size:24px;font-weight:700;line-height:1.2}.prx-rich-tabs{display:flex;flex-direction:column;gap:12px;min-width:0}.prx-rich-tabs__title,.prx-rich-tabs__tab--active{font-weight:700}.prx-rich-tabs__subtitle{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px;margin-top:-8px}.prx-rich-tabs__tablist{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--md-sys-color-outline-variant, #cac4d0);padding-bottom:8px}.prx-rich-tabs[data-appearance=pills] .prx-rich-tabs__tablist{border-bottom:0;padding-bottom:0}.prx-rich-tabs__tab{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:8px 12px;border:0;border-radius:999px;background:transparent;color:var(--md-sys-color-on-surface, #1d1b20);cursor:pointer}.prx-rich-tabs[data-appearance=underline] .prx-rich-tabs__tab{border-radius:0;border-bottom:2px solid transparent;padding-inline:0;padding-top:0;padding-bottom:8px}.prx-rich-tabs__tab--active{color:var(--md-sys-color-primary, #6750a4)}.prx-rich-tabs[data-appearance=underline] .prx-rich-tabs__tab--active{border-bottom-color:var(--md-sys-color-primary, #6750a4)}.prx-rich-tabs[data-appearance=pills] .prx-rich-tabs__tab--active{background:color-mix(in srgb,var(--md-sys-color-primary, #6750a4) 14%,#fff)}.prx-rich-tabs__tab:disabled{cursor:not-allowed;opacity:.55}.prx-rich-tabs__panel{display:block;min-width:0}.prx-rich-key-value-list__item,.prx-rich-record-summary__field{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr);gap:12px;margin:0}.prx-rich-key-value-list[data-layout=stacked] .prx-rich-key-value-list__item{grid-template-columns:minmax(0,1fr);gap:4px}.prx-rich-key-value-list__item dt,.prx-rich-record-summary__field dt{color:var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-key-value-list__item dd,.prx-rich-record-summary__field dd{margin:0;display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}.prx-rich-related-record{display:grid;gap:14px;min-width:0;padding:16px;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:12px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 94%,transparent)}.prx-rich-related-record__copy{display:grid;gap:10px;min-width:0}.prx-rich-related-record__relation{color:var(--md-sys-color-primary, #6750a4);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0}.prx-rich-related-record__title-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;min-width:0}.prx-rich-related-record__title-row:not(.prx-rich-related-record__title-row--with-icon){grid-template-columns:minmax(0,1fr)}.prx-rich-related-record__icon{color:var(--md-sys-color-primary, #6750a4);font-size:24px;line-height:1}.prx-rich-related-record__title{font-size:18px;font-weight:700;line-height:1.25;min-width:0}.prx-rich-related-record__subtitle,.prx-rich-related-record__meta,.prx-rich-related-record__hint{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px;line-height:1.45}.prx-rich-related-record__fields{display:grid;gap:8px;margin:0;padding:0}.prx-rich-related-record__field{display:grid;grid-template-columns:minmax(0,140px) minmax(0,1fr);gap:8px 12px;align-items:start;min-width:0;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant, #cac4d0) 52%,transparent)}.prx-rich-related-record__field dt{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px}.prx-rich-related-record__field dd{margin:0;font-weight:600;min-width:0}.prx-rich-related-record__hint{grid-column:2}.prx-rich-related-record__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.prx-rich-disclosure__summary,.prx-rich-accordion__summary{cursor:pointer;display:flex;gap:8px;align-items:center;list-style:none}.prx-rich-disclosure__content,.prx-rich-accordion__content{margin-top:12px}.prx-rich-media-block{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-width:0}.prx-rich-media-block__avatar,.prx-rich-media-block__body,.prx-rich-media-block__trailing{min-width:0}.prx-rich-media-block__body{display:flex;flex-direction:column;gap:6px}.prx-rich-media-block__title{font-weight:700}.prx-rich-media-block__subtitle{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px}.prx-rich-media-block__meta{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-media-block__trailing{display:flex;align-items:center;justify-content:flex-end}.prx-rich-timeline{--prx-rich-timeline-marker-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-primary, #fff);--prx-rich-timeline-connector-color: var(--md-sys-color-outline-variant, #cac4d0);--prx-rich-timeline-item-gap: 16px;--prx-rich-timeline-title-color: currentColor;--prx-rich-timeline-title-font-size: inherit;--prx-rich-timeline-title-font-weight: 700;--prx-rich-timeline-item-title-color: currentColor;--prx-rich-timeline-item-title-font-size: inherit;--prx-rich-timeline-item-title-font-weight: 600;--prx-rich-timeline-item-subtitle-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-subtitle-font-size: 12px;--prx-rich-timeline-item-meta-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-meta-font-size: 12px;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 400;--prx-rich-timeline-item-body-background: transparent;--prx-rich-timeline-item-body-border: 0;--prx-rich-timeline-item-body-border-radius: 6px;--prx-rich-timeline-item-body-padding: 12px;display:flex;flex-direction:column;gap:12px;min-width:0}.prx-rich-timeline__title{color:var(--prx-rich-timeline-title-color);font-size:var(--prx-rich-timeline-title-font-size);font-weight:var(--prx-rich-timeline-title-font-weight)}.prx-rich-timeline__items{display:flex;flex-direction:column;gap:0;list-style:none;margin:0;padding:0}.prx-rich-timeline__item{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);grid-template-areas:\". marker body\";column-gap:16px;align-items:flex-start;min-height:64px;min-width:0;position:relative}.prx-rich-timeline--vertical .prx-rich-timeline__item{padding-block-end:var(--prx-rich-timeline-item-gap)}.prx-rich-timeline--vertical .prx-rich-timeline__item:last-child{padding-block-end:0}.prx-rich-timeline--marker-color-primary,.prx-rich-timeline__item--marker-color-primary{--prx-rich-timeline-marker-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-primary, #fff)}.prx-rich-timeline--marker-color-secondary,.prx-rich-timeline__item--marker-color-secondary{--prx-rich-timeline-marker-color: var(--md-sys-color-secondary, #625b71);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-secondary, #fff)}.prx-rich-timeline--marker-color-tertiary,.prx-rich-timeline__item--marker-color-tertiary{--prx-rich-timeline-marker-color: var(--md-sys-color-tertiary, #7d5260);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-tertiary, #fff)}.prx-rich-timeline--marker-color-success,.prx-rich-timeline__item--marker-color-success{--prx-rich-timeline-marker-color: var(--praxis-success, #146c43);--prx-rich-timeline-on-marker-color: var(--praxis-on-success, #fff)}.prx-rich-timeline--marker-color-warning,.prx-rich-timeline__item--marker-color-warning{--prx-rich-timeline-marker-color: var(--praxis-warning, #b26a00);--prx-rich-timeline-on-marker-color: var(--praxis-on-warning, #1d1b20)}.prx-rich-timeline--marker-color-error,.prx-rich-timeline__item--marker-color-error{--prx-rich-timeline-marker-color: var(--md-sys-color-error, #ba1a1a);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-error, #fff)}.prx-rich-timeline--marker-color-info,.prx-rich-timeline__item--marker-color-info{--prx-rich-timeline-marker-color: var(--praxis-info, #0b5cad);--prx-rich-timeline-on-marker-color: var(--praxis-on-info, #fff)}.prx-rich-timeline--marker-color-neutral,.prx-rich-timeline__item--marker-color-neutral{--prx-rich-timeline-marker-color: var(--md-sys-color-outline, #79747e);--prx-rich-timeline-on-marker-color: var(--md-sys-color-surface, #fffbfe)}.prx-rich-timeline--connector-color-primary,.prx-rich-timeline__item--connector-color-primary{--prx-rich-timeline-connector-color: var(--md-sys-color-primary, #6750a4)}.prx-rich-timeline--connector-color-secondary,.prx-rich-timeline__item--connector-color-secondary{--prx-rich-timeline-connector-color: var(--md-sys-color-secondary, #625b71)}.prx-rich-timeline--connector-color-tertiary,.prx-rich-timeline__item--connector-color-tertiary{--prx-rich-timeline-connector-color: var(--md-sys-color-tertiary, #7d5260)}.prx-rich-timeline--connector-color-success,.prx-rich-timeline__item--connector-color-success{--prx-rich-timeline-connector-color: var(--praxis-success, #146c43)}.prx-rich-timeline--connector-color-warning,.prx-rich-timeline__item--connector-color-warning{--prx-rich-timeline-connector-color: var(--praxis-warning, #b26a00)}.prx-rich-timeline--connector-color-error,.prx-rich-timeline__item--connector-color-error{--prx-rich-timeline-connector-color: var(--md-sys-color-error, #ba1a1a)}.prx-rich-timeline--connector-color-info,.prx-rich-timeline__item--connector-color-info{--prx-rich-timeline-connector-color: var(--praxis-info, #0b5cad)}.prx-rich-timeline--connector-color-neutral,.prx-rich-timeline__item--connector-color-neutral{--prx-rich-timeline-connector-color: var(--md-sys-color-outline, #79747e)}.prx-rich-timeline__item--has-opposite{grid-template-areas:\"opposite marker body\"}.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd){grid-template-areas:\"body marker opposite\"}.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd){grid-template-areas:\"body marker .\"}.prx-rich-timeline__item-opposite{grid-area:opposite;color:var(--prx-rich-timeline-opposite-color);font-size:var(--prx-rich-timeline-opposite-font-size);font-weight:var(--prx-rich-timeline-opposite-font-weight);line-height:1.35;min-width:0;overflow-wrap:anywhere;padding-top:1px;text-align:end}.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite{text-align:start}.prx-rich-timeline__item-body{background:var(--prx-rich-timeline-item-body-background);border:var(--prx-rich-timeline-item-body-border);border-radius:var(--prx-rich-timeline-item-body-border-radius);padding:var(--prx-rich-timeline-item-body-padding)}.prx-rich-timeline__item-subtitle{color:var(--prx-rich-timeline-item-subtitle-color);font-size:var(--prx-rich-timeline-item-subtitle-font-size)}.prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 20px;display:inline-flex;align-items:flex-start;align-self:stretch;grid-area:marker;justify-content:center;justify-self:center;min-height:64px;position:relative;width:32px}.prx-rich-timeline--marker-dot .prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 10px}.prx-rich-timeline--marker-icon .prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 18px}.prx-rich-timeline__item-marker>*{position:relative;z-index:1}.prx-rich-timeline__item-marker:after{border-left:1px solid var(--prx-rich-timeline-connector-color);bottom:0;content:\"\";left:50%;position:absolute;top:var(--prx-rich-timeline-marker-size);transform:translate(-50%)}.prx-rich-timeline__item:last-child .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:dashed}.prx-rich-timeline--connector-none .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline--horizontal .prx-rich-timeline__items{flex-direction:row;gap:0;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity}.prx-rich-timeline__items:focus-visible{border-radius:4px;outline:2px solid var(--md-sys-color-primary, #6750a4);outline-offset:2px}.prx-rich-timeline--horizontal .prx-rich-timeline__item,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item{grid-template-columns:minmax(176px,1fr);grid-template-areas:\"opposite\" \"marker\" \"body\";grid-template-rows:auto 32px 1fr;min-height:0;min-width:min(240px,80vw);padding-inline-end:calc(var(--prx-rich-timeline-item-gap) * .75);scroll-snap-align:start}.prx-rich-timeline--horizontal .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite){grid-template-areas:\"marker\" \"body\";grid-template-rows:32px 1fr}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker{align-items:center;align-self:center;justify-content:flex-start;justify-self:stretch;min-height:32px;width:100%}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker:after{border-left:0;border-top:1px solid var(--prx-rich-timeline-connector-color);bottom:auto;left:var(--prx-rich-timeline-marker-size);right:0;top:50%;transform:translateY(-50%)}.prx-rich-timeline--horizontal.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:dashed}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:dashed}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:solid}.prx-rich-timeline--horizontal .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-start;text-align:start}.prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{content:\"\";border-left-style:dashed}.prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{content:\"\";border-left-style:solid}.prx-rich-timeline__item--connector-none .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline__item-icon{align-items:center;border:2px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--prx-rich-timeline-marker-color);display:inline-flex;font-size:18px;height:20px;justify-content:center;line-height:18px;width:20px}.prx-rich-timeline__item-dot{width:10px;height:10px;border-radius:50%;background:var(--prx-rich-timeline-marker-color);border:2px solid transparent;box-sizing:border-box;display:inline-block}.prx-rich-timeline__item-number{align-items:center;background:var(--prx-rich-timeline-marker-color);border:2px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--prx-rich-timeline-on-marker-color);display:inline-flex;font-size:11px;font-weight:700;height:20px;justify-content:center;line-height:20px;min-width:20px;padding:0 5px}.prx-rich-timeline--marker-style-outlined .prx-rich-timeline__item-marker>*,.prx-rich-timeline__item--marker-style-outlined .prx-rich-timeline__item-marker>*{background:transparent;border-color:var(--prx-rich-timeline-marker-color);color:var(--prx-rich-timeline-marker-color)}.prx-rich-timeline--marker-style-outlined .prx-rich-timeline__item-dot,.prx-rich-timeline__item--marker-style-outlined .prx-rich-timeline__item-dot{background:var(--md-sys-color-surface, #fffbfe)}.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-dot,.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-number,.prx-rich-timeline--marker-style-filled .prx-rich-timeline__item-icon,.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-icon{background:var(--prx-rich-timeline-marker-color);border-color:transparent;color:var(--prx-rich-timeline-on-marker-color)}.prx-rich-timeline__item-body{display:flex;flex-direction:column;gap:4px;grid-area:body;min-width:0}.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-end;text-align:end}.prx-rich-timeline__item-title{color:var(--prx-rich-timeline-item-title-color);font-size:var(--prx-rich-timeline-item-title-font-size);font-weight:var(--prx-rich-timeline-item-title-font-weight)}.prx-rich-timeline--emphasis-subtle{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-title-font-weight: 500;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-timeline--density-compact{--prx-rich-timeline-item-gap: 10px;--prx-rich-timeline-item-body-padding: 10px}.prx-rich-timeline--density-spacious{--prx-rich-timeline-item-gap: 24px;--prx-rich-timeline-item-body-padding: 14px}.prx-rich-timeline--emphasis-strong{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-title-font-weight: 700;--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-item-title-font-weight: 700;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-opposite-font-weight: 700}.prx-rich-timeline--emphasis-hero{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-title-font-size: 20px;--prx-rich-timeline-title-font-weight: 800;--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-item-title-font-size: 17px;--prx-rich-timeline-item-title-font-weight: 800;--prx-rich-timeline-opposite-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-opposite-font-size: 14px;--prx-rich-timeline-opposite-font-weight: 800;--prx-rich-timeline-item-body-background: color-mix( in srgb, var(--md-sys-color-primary, #6750a4) 8%, transparent );--prx-rich-timeline-item-body-border-radius: 8px;--prx-rich-timeline-item-body-padding: 14px}.prx-rich-timeline--text-prominent{--prx-rich-timeline-opposite-font-size: 14px;--prx-rich-timeline-opposite-font-weight: 700;--prx-rich-timeline-item-title-font-size: 15px;--prx-rich-timeline-item-title-font-weight: 700}.prx-rich-timeline--text-eyebrow{--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 800}.prx-rich-timeline--text-eyebrow .prx-rich-timeline__item-opposite{letter-spacing:0;text-transform:uppercase}.prx-rich-timeline--text-label{--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 700;--prx-rich-timeline-item-title-font-size: 14px;--prx-rich-timeline-item-title-font-weight: 600}.prx-rich-timeline__item-subtitle,.prx-rich-timeline__item-meta,.prx-rich-timeline__empty{color:var(--prx-rich-timeline-item-subtitle-color);font-size:var(--prx-rich-timeline-item-subtitle-font-size)}.prx-rich-timeline__item-meta{color:var(--prx-rich-timeline-item-meta-color);font-size:var(--prx-rich-timeline-item-meta-font-size)}.prx-rich-timeline__item-badge{display:inline-flex;align-items:flex-start;margin-top:2px}@media(max-width:640px){.prx-rich-timeline--horizontal .prx-rich-timeline__items{flex-direction:column;overflow-x:visible;padding-bottom:0;scroll-snap-type:none}.prx-rich-timeline--horizontal .prx-rich-timeline__item,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item{min-width:0;padding-inline-end:0;scroll-snap-align:none;width:100%}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker{align-items:flex-start;align-self:stretch;justify-content:center;justify-self:center;min-height:64px;width:32px}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker:after{border-left:1px solid var(--prx-rich-timeline-connector-color);border-top:0;bottom:0;left:50%;right:auto;top:var(--prx-rich-timeline-marker-size);transform:translate(-50%)}.prx-rich-timeline--horizontal.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after,.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:dashed;border-top-style:solid}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:solid}.prx-rich-timeline__item--has-opposite,.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd),.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd){grid-template-columns:32px minmax(0,1fr);grid-template-areas:\"marker opposite\" \"marker body\";grid-template-rows:auto 1fr;column-gap:12px}.prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--horizontal .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd),.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd){grid-template-columns:32px minmax(0,1fr);grid-template-areas:\"marker body\";grid-template-rows:1fr;column-gap:12px}.prx-rich-timeline__item-opposite,.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite,.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-start;text-align:start}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3292
|
+
`, isInline: true, styles: [".prx-rich-content-root{display:block;min-width:0;max-width:100%}.prx-rich-content-root:not(.prx-rich-content-root--inline){display:grid;gap:var(--prx-rich-content-block-gap, 12px)}.prx-rich-content-root--inline{display:inline-flex;align-items:var(--prx-rich-content-inline-align-items, center);flex-wrap:var(--prx-rich-content-inline-flex-wrap, nowrap);gap:var(--prx-rich-content-inline-gap, 6px);min-width:0;max-width:100%;vertical-align:middle}.prx-rich-node{min-width:0;max-width:100%}.prx-rich-node--inline{display:inline-flex;align-items:center;min-width:0;max-width:100%}.prx-rich-compose{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}.prx-rich-compose.direction-column{flex-direction:column;align-items:stretch}.prx-rich-compose.wrap{flex-wrap:wrap}.prx-rich-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:var(--md-sys-color-primary-container, #e8def8);color:var(--md-sys-color-on-primary-container, #21005d);font-size:12px;line-height:20px}.prx-rich-link{color:var(--md-sys-color-primary, #6750a4);text-decoration:underline;text-underline-offset:2px}.prx-rich-text,.prx-rich-link,.prx-rich-badge,.prx-rich-card-title,.prx-rich-card-subtitle,.prx-rich-card-body,.prx-rich-card-footer,.prx-rich-cta-group__title,.prx-rich-cta-group__subtitle,.prx-rich-cta-group__message,.prx-rich-key-value-list__title,.prx-rich-key-value-list__label,.prx-rich-key-value-list__value,.prx-rich-stat-group__title,.prx-rich-stat-group__subtitle,.prx-rich-stat-group__label,.prx-rich-stat-group__value,.prx-rich-stat-group__caption,.prx-rich-tabs__title,.prx-rich-tabs__subtitle,.prx-rich-record-summary__title,.prx-rich-record-summary__subtitle,.prx-rich-record-summary__meta,.prx-rich-record-summary__field-label,.prx-rich-record-summary__field-value,.prx-rich-lookup-result__title,.prx-rich-lookup-result__subtitle,.prx-rich-lookup-result__meta,.prx-rich-lookup-result__message,.prx-rich-lookup-card__title,.prx-rich-lookup-card__subtitle,.prx-rich-lookup-card__meta,.prx-rich-lookup-card__message,.prx-rich-related-record__title,.prx-rich-related-record__subtitle,.prx-rich-related-record__meta,.prx-rich-related-record__relation,.prx-rich-timeline__title,.prx-rich-timeline__subtitle,.prx-rich-timeline__item-title,.prx-rich-timeline__item-subtitle,.prx-rich-timeline__item-meta{min-width:0;max-width:100%;overflow-wrap:anywhere}.prx-rich-text,.prx-rich-link{display:inline-block}.prx-rich-node[data-rich-node-type=avatar]{display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--md-sys-color-surface-container-high, #ece6f0);color:var(--md-sys-color-on-surface, #1d1b20)}.prx-rich-avatar{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:inherit;background:inherit;color:inherit;overflow:hidden}.prx-rich-avatar-image{width:100%;height:100%;object-fit:cover}.prx-rich-avatar-fallback{font-weight:600}.prx-rich-card{--prx-rich-card-tone-color: var(--md-sys-color-outline-variant, #cac4d0);--prx-rich-card-tone-bg: var(--md-sys-color-surface, #fff);--prx-rich-card-tone-on-bg: var(--md-sys-color-on-surface, #1d1b20);display:flex;flex-direction:column;position:relative;gap:12px;padding:16px;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:16px;background:var(--prx-rich-card-tone-bg);color:var(--prx-rich-card-tone-on-bg);overflow:hidden;min-width:0;max-width:100%}.prx-rich-card[data-size=sm],.prx-rich-card[data-density=compact]{gap:8px;padding:12px;border-radius:12px}.prx-rich-content-root.prx-rich-content-root--widget-card{--prx-rich-content-block-gap: 8px}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card{gap:8px;padding:12px;border-radius:var(--pdx-page-card-radius, 10px);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 82%,transparent);box-shadow:none}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card[data-variant=elevated],.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card[data-variant=filled]{border-color:color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 88%,transparent);box-shadow:none}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-heading,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-body,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-actions,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-footer{gap:6px}.prx-rich-card[data-size=lg]{gap:16px;padding:20px}.prx-rich-card[data-orientation=horizontal]{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing{grid-template-columns:minmax(120px,.38fr) minmax(0,1fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-icon,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-avatar{grid-template-columns:minmax(72px,148px) minmax(0,1fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing{grid-template-columns:minmax(0,1fr) minmax(120px,.38fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing.prx-rich-card--media-icon,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing.prx-rich-card--media-avatar{grid-template-columns:minmax(0,1fr) minmax(72px,148px)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading>:not(.prx-rich-card-media){grid-column:2}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading>.prx-rich-card-media[data-placement=leading]{grid-column:1;grid-row:1 / -1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing>:not(.prx-rich-card-media){grid-column:1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing>.prx-rich-card-media[data-placement=trailing]{grid-column:2;grid-row:1 / -1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-top>.prx-rich-card-media[data-placement=top],.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-background>:not(.prx-rich-card-media){grid-column:1}.prx-rich-card[data-variant=plain]{border-color:transparent;background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 64%,transparent)}.prx-rich-card[data-variant=elevated]{border-color:transparent;box-shadow:0 4px 18px color-mix(in srgb,var(--md-sys-color-shadow, #000) 16%,transparent)}.prx-rich-card[data-variant=filled]{background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 72%,var(--md-sys-color-surface-container, #f3edf7))}.prx-rich-card[data-variant=transparent]{border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #cac4d0) 64%,transparent);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 72%,transparent)}.prx-rich-card[data-tone=info]{--prx-rich-card-tone-color: var(--praxis-info, #0b5cad);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-card-tone-color) 12%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 42%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=success]{--prx-rich-card-tone-color: var(--praxis-success, #2e7d32);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-card-tone-color) 12%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 48%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=warning]{--prx-rich-card-tone-color: var(--praxis-warning, #ed6c02);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 86%, var(--prx-rich-card-tone-color) 14%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 56%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=danger]{--prx-rich-card-tone-color: var(--md-sys-color-error, #d32f2f);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 84%, var(--prx-rich-card-tone-color) 16%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 62%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card--interactive{cursor:pointer}.prx-rich-card--interactive:focus-visible{outline:3px solid color-mix(in srgb,var(--md-sys-color-primary, #6750a4) 72%,transparent);outline-offset:2px}.prx-rich-card--selected,.prx-rich-card--active{border-color:var(--md-sys-color-primary, #6750a4);box-shadow:inset 0 0 0 1px var(--md-sys-color-primary, #6750a4)}.prx-rich-card--disabled:not(.prx-rich-card--loading){opacity:.62;cursor:default}.prx-rich-card--loading{cursor:progress}.prx-rich-card-media{display:flex;align-items:center;justify-content:center;min-width:0;border-radius:12px;background:color-mix(in srgb,var(--prx-rich-card-tone-color) 18%,var(--md-sys-color-surface-container-high, #ece6f0));overflow:hidden;aspect-ratio:16 / 9}.prx-rich-card-media[data-kind=icon],.prx-rich-card-media[data-kind=avatar]{aspect-ratio:auto;min-height:64px;padding:12px}.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar]{min-height:48px;padding:8px}.prx-rich-card-media[data-placement=leading],.prx-rich-card-media[data-placement=trailing]{aspect-ratio:auto;min-height:100%}.prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card-media[data-kind=avatar][data-placement=trailing]{align-self:start;min-height:64px}.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar][data-placement=trailing],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar][data-placement=trailing]{min-height:48px}.prx-rich-card-media--background{position:absolute;inset:0;z-index:0;border-radius:inherit;opacity:.18}.prx-rich-card-media--background~*{position:relative;z-index:1}.prx-rich-card-media__asset{width:100%;height:100%;object-fit:cover}.prx-rich-card-media__icon{font-size:40px;color:var(--prx-rich-card-tone-color)}.prx-rich-card-media__avatar{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--prx-rich-card-tone-color) 22%,var(--md-sys-color-primary-container, #e8def8));color:var(--prx-rich-card-tone-on-bg);font-weight:700}.prx-rich-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.prx-rich-card-header__content{min-width:0}.prx-rich-card-header__action{flex:0 0 auto}.prx-rich-card-heading{display:grid;gap:4px;min-width:0}.prx-rich-card-title{font-weight:600}.prx-rich-card-subtitle,.prx-rich-metric-caption{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-metric{display:grid;gap:4px;min-width:0}.prx-rich-metric--with-icon{grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:start}.prx-rich-metric-icon{color:var(--md-sys-color-primary, #6750a4);font-size:20px;line-height:1.2;margin-top:2px}.prx-rich-metric-content{display:grid;gap:4px;min-width:0}.prx-rich-metric-value{font-size:20px;font-weight:700}.prx-rich-progress{display:flex;flex-direction:column;gap:4px}.prx-rich-progress-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.prx-rich-progress-label,.prx-rich-progress-percent{min-width:0;color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px;font-weight:600}.prx-rich-progress-percent{flex:0 0 auto;color:var(--md-sys-color-on-surface, #1d1b20)}.prx-rich-progress-bar{width:100%}.prx-rich-action-button,.prx-rich-card-actions,.prx-rich-callout__actions,.prx-rich-empty-state__actions,.prx-rich-record-summary__actions,.prx-rich-disclosure__actions,.prx-rich-accordion__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.prx-rich-action-button{appearance:none;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:999px;background:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-on-surface, #1d1b20);padding:8px 12px;cursor:pointer}.prx-rich-action-button:disabled{opacity:.56;cursor:default}.prx-rich-action-button--raised,.prx-rich-action-button--primary{background:var(--md-sys-color-primary, #6750a4);color:var(--md-sys-color-on-primary, #fff)}.prx-rich-callout,.prx-rich-empty-state,.prx-rich-record-summary,.prx-rich-decision-package,.prx-rich-disclosure,.prx-rich-accordion{border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:16px;padding:16px;background:var(--md-sys-color-surface, #fff)}.prx-rich-callout[data-tone=warning]{background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,#ffb300 12%)}.prx-rich-callout[data-tone=danger]{background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,#d32f2f 12%)}.prx-rich-callout__title,.prx-rich-empty-state__title,.prx-rich-record-summary__title,.prx-rich-decision-package__title,.prx-rich-stat-group__title,.prx-rich-accordion__title,.prx-rich-key-value-list__title{font-weight:700;margin-bottom:4px}.prx-rich-decision-package{--prx-rich-decision-package-accent: var(--md-sys-color-primary, #6750a4);display:grid;grid-template-columns:minmax(0,1fr) minmax(136px,auto);gap:16px;border-color:color-mix(in srgb,var(--prx-rich-decision-package-accent) 42%,var(--md-sys-color-outline-variant, #cac4d0));background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,var(--prx-rich-decision-package-accent) 12%)}.prx-rich-decision-package[data-status=approved],.prx-rich-decision-package[data-status=published]{--prx-rich-decision-package-accent: var(--praxis-success, #2e7d32)}.prx-rich-decision-package[data-status=draft],.prx-rich-decision-package[data-status=simulated],.prx-rich-decision-package[data-risk=medium],.prx-rich-decision-package[data-risk=high]{--prx-rich-decision-package-accent: var(--praxis-warning, #ed6c02)}.prx-rich-decision-package[data-status=reverted],.prx-rich-decision-package[data-risk=critical]{--prx-rich-decision-package-accent: var(--md-sys-color-error, #d32f2f)}.prx-rich-decision-package__main{display:grid;gap:8px;min-width:0}.prx-rich-decision-package__eyebrow,.prx-rich-decision-package__evidence,.prx-rich-decision-package__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.prx-rich-decision-package__title{font-size:20px;line-height:1.15}.prx-rich-decision-package__subtitle,.prx-rich-decision-package__summary,.prx-rich-decision-package__meta,.prx-rich-decision-package__property dt,.prx-rich-decision-package__evidence-item small{color:var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-decision-package__properties{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0}.prx-rich-decision-package__property{min-width:0}.prx-rich-decision-package__property dt,.prx-rich-decision-package__property dd{margin:0;overflow-wrap:anywhere}.prx-rich-decision-package__property dd{font-weight:700}.prx-rich-decision-package__evidence-item{display:inline-flex;flex-direction:column;gap:1px;border:1px solid color-mix(in srgb,var(--prx-rich-decision-package-accent) 24%,var(--md-sys-color-outline-variant, #cac4d0));border-radius:12px;padding:6px 8px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 76%,transparent);font-size:12px}.prx-rich-decision-package__aside{display:grid;align-content:start;justify-items:end;gap:10px;min-width:0}.prx-rich-decision-package__confidence{display:grid;justify-items:center;min-width:96px;border-radius:16px;padding:12px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 72%,transparent)}.prx-rich-decision-package__confidence span{font-size:28px;font-weight:800;line-height:1}.prx-rich-decision-package__confidence small{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:11px;font-weight:700;text-transform:uppercase}@media(max-width:640px){.prx-rich-decision-package{grid-template-columns:minmax(0,1fr)}.prx-rich-decision-package__aside{justify-items:start}}.prx-rich-empty-state{align-items:center;text-align:center}.prx-rich-key-value-list__items,.prx-rich-stat-group__items,.prx-rich-record-summary__fields{display:grid;gap:8px;margin:0}.prx-rich-stat-group[data-layout=inline] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}.prx-rich-stat-group[data-layout=grid] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}.prx-rich-stat-group__item{--prx-rich-stat-tone-color: var(--md-sys-color-outline, #79747e);--prx-rich-stat-tone-bg: var(--md-sys-color-surface, #fff);--prx-rich-stat-tone-border: var(--md-sys-color-outline-variant, #cac4d0);display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:2px;align-items:start;min-width:0;padding:12px;border:1px solid var(--prx-rich-stat-tone-border);border-radius:12px;background:var(--prx-rich-stat-tone-bg)}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__items{gap:6px}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group[data-layout=inline] .prx-rich-stat-group__items,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group[data-layout=grid] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(148px,100%),1fr))}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__item{column-gap:8px;padding:8px 10px;border-radius:var(--pdx-page-card-radius, 10px);background:color-mix(in srgb,var(--prx-rich-stat-tone-bg) 78%,transparent)}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__icon,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__value{font-size:20px}.prx-rich-stat-group__item[data-tone=info]{--prx-rich-stat-tone-color: var(--praxis-info, #0b5cad);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-stat-tone-color) 12%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 34%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=success]{--prx-rich-stat-tone-color: var(--praxis-success, #2e7d32);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-stat-tone-color) 12%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 38%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=warning]{--prx-rich-stat-tone-color: var(--praxis-warning, #b26a00);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 86%, var(--prx-rich-stat-tone-color) 14%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 46%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=danger]{--prx-rich-stat-tone-color: var(--md-sys-color-error, #d32f2f);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 84%, var(--prx-rich-stat-tone-color) 16%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 54%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item-header{display:flex;gap:8px;align-items:center;min-width:0}.prx-rich-stat-group__item-content{display:grid;gap:4px;min-width:0}.prx-rich-stat-group__icon{color:var(--prx-rich-stat-tone-color);font-size:24px;line-height:1;margin-top:1px}.prx-rich-stat-group__item:not(.prx-rich-stat-group__item--with-icon){grid-template-columns:minmax(0,1fr)}.prx-rich-stat-group__label,.prx-rich-stat-group__subtitle,.prx-rich-stat-group__caption{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-stat-group__value{color:var(--md-sys-color-on-surface, #1d1b20);font-size:24px;font-weight:700;line-height:1.2}.prx-rich-tabs{display:flex;flex-direction:column;gap:12px;min-width:0}.prx-rich-tabs__title,.prx-rich-tabs__tab--active{font-weight:700}.prx-rich-tabs__subtitle{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px;margin-top:-8px}.prx-rich-tabs__tablist{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--md-sys-color-outline-variant, #cac4d0);padding-bottom:8px}.prx-rich-tabs[data-appearance=pills] .prx-rich-tabs__tablist{border-bottom:0;padding-bottom:0}.prx-rich-tabs__tab{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:8px 12px;border:0;border-radius:999px;background:transparent;color:var(--md-sys-color-on-surface, #1d1b20);cursor:pointer}.prx-rich-tabs[data-appearance=underline] .prx-rich-tabs__tab{border-radius:0;border-bottom:2px solid transparent;padding-inline:0;padding-top:0;padding-bottom:8px}.prx-rich-tabs__tab--active{color:var(--md-sys-color-primary, #6750a4)}.prx-rich-tabs[data-appearance=underline] .prx-rich-tabs__tab--active{border-bottom-color:var(--md-sys-color-primary, #6750a4)}.prx-rich-tabs[data-appearance=pills] .prx-rich-tabs__tab--active{background:color-mix(in srgb,var(--md-sys-color-primary, #6750a4) 14%,#fff)}.prx-rich-tabs__tab:disabled{cursor:not-allowed;opacity:.55}.prx-rich-tabs__panel{display:block;min-width:0}.prx-rich-key-value-list__item,.prx-rich-record-summary__field{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr);gap:12px;margin:0}.prx-rich-key-value-list[data-layout=stacked] .prx-rich-key-value-list__item{grid-template-columns:minmax(0,1fr);gap:4px}.prx-rich-key-value-list__item dt,.prx-rich-record-summary__field dt{color:var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-key-value-list__item dd,.prx-rich-record-summary__field dd{margin:0;display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}.prx-rich-related-record{display:grid;gap:14px;min-width:0;padding:16px;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:12px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 94%,transparent)}.prx-rich-related-record__copy{display:grid;gap:10px;min-width:0}.prx-rich-related-record__relation{color:var(--md-sys-color-primary, #6750a4);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0}.prx-rich-related-record__title-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;min-width:0}.prx-rich-related-record__title-row:not(.prx-rich-related-record__title-row--with-icon){grid-template-columns:minmax(0,1fr)}.prx-rich-related-record__icon{color:var(--md-sys-color-primary, #6750a4);font-size:24px;line-height:1}.prx-rich-related-record__title{font-size:18px;font-weight:700;line-height:1.25;min-width:0}.prx-rich-related-record__subtitle,.prx-rich-related-record__meta,.prx-rich-related-record__hint{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px;line-height:1.45}.prx-rich-related-record__fields{display:grid;gap:8px;margin:0;padding:0}.prx-rich-related-record__field{display:grid;grid-template-columns:minmax(0,140px) minmax(0,1fr);gap:8px 12px;align-items:start;min-width:0;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant, #cac4d0) 52%,transparent)}.prx-rich-related-record__field dt{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px}.prx-rich-related-record__field dd{margin:0;font-weight:600;min-width:0}.prx-rich-related-record__hint{grid-column:2}.prx-rich-related-record__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.prx-rich-disclosure__summary,.prx-rich-accordion__summary{cursor:pointer;display:flex;gap:8px;align-items:center;list-style:none}.prx-rich-disclosure__content,.prx-rich-accordion__content{margin-top:12px}.prx-rich-media-block{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-width:0}.prx-rich-media-block__avatar,.prx-rich-media-block__body,.prx-rich-media-block__trailing{min-width:0}.prx-rich-media-block__body{display:flex;flex-direction:column;gap:6px}.prx-rich-media-block__title{font-weight:700}.prx-rich-media-block__subtitle{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px}.prx-rich-media-block__meta{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-media-block__trailing{display:flex;align-items:center;justify-content:flex-end}.prx-rich-timeline{--prx-rich-timeline-marker-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-primary, #fff);--prx-rich-timeline-connector-color: var(--md-sys-color-outline-variant, #cac4d0);--prx-rich-timeline-item-gap: 16px;--prx-rich-timeline-title-color: currentColor;--prx-rich-timeline-title-font-size: inherit;--prx-rich-timeline-title-font-weight: 700;--prx-rich-timeline-item-title-color: currentColor;--prx-rich-timeline-item-title-font-size: inherit;--prx-rich-timeline-item-title-font-weight: 600;--prx-rich-timeline-item-subtitle-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-subtitle-font-size: 12px;--prx-rich-timeline-item-meta-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-meta-font-size: 12px;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 400;--prx-rich-timeline-item-body-background: transparent;--prx-rich-timeline-item-body-border: 0;--prx-rich-timeline-item-body-border-radius: 6px;--prx-rich-timeline-item-body-padding: 12px;display:flex;flex-direction:column;gap:12px;min-width:0}.prx-rich-timeline__title{color:var(--prx-rich-timeline-title-color);font-size:var(--prx-rich-timeline-title-font-size);font-weight:var(--prx-rich-timeline-title-font-weight)}.prx-rich-timeline__items{display:flex;flex-direction:column;gap:0;list-style:none;margin:0;padding:0}.prx-rich-timeline__item{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);grid-template-areas:\". marker body\";column-gap:16px;align-items:flex-start;min-height:64px;min-width:0;position:relative}.prx-rich-timeline--vertical .prx-rich-timeline__item{padding-block-end:var(--prx-rich-timeline-item-gap)}.prx-rich-timeline--vertical .prx-rich-timeline__item:last-child{padding-block-end:0}.prx-rich-timeline--marker-color-primary,.prx-rich-timeline__item--marker-color-primary{--prx-rich-timeline-marker-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-primary, #fff)}.prx-rich-timeline--marker-color-secondary,.prx-rich-timeline__item--marker-color-secondary{--prx-rich-timeline-marker-color: var(--md-sys-color-secondary, #625b71);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-secondary, #fff)}.prx-rich-timeline--marker-color-tertiary,.prx-rich-timeline__item--marker-color-tertiary{--prx-rich-timeline-marker-color: var(--md-sys-color-tertiary, #7d5260);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-tertiary, #fff)}.prx-rich-timeline--marker-color-success,.prx-rich-timeline__item--marker-color-success{--prx-rich-timeline-marker-color: var(--praxis-success, #146c43);--prx-rich-timeline-on-marker-color: var(--praxis-on-success, #fff)}.prx-rich-timeline--marker-color-warning,.prx-rich-timeline__item--marker-color-warning{--prx-rich-timeline-marker-color: var(--praxis-warning, #b26a00);--prx-rich-timeline-on-marker-color: var(--praxis-on-warning, #1d1b20)}.prx-rich-timeline--marker-color-error,.prx-rich-timeline__item--marker-color-error{--prx-rich-timeline-marker-color: var(--md-sys-color-error, #ba1a1a);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-error, #fff)}.prx-rich-timeline--marker-color-info,.prx-rich-timeline__item--marker-color-info{--prx-rich-timeline-marker-color: var(--praxis-info, #0b5cad);--prx-rich-timeline-on-marker-color: var(--praxis-on-info, #fff)}.prx-rich-timeline--marker-color-neutral,.prx-rich-timeline__item--marker-color-neutral{--prx-rich-timeline-marker-color: var(--md-sys-color-outline, #79747e);--prx-rich-timeline-on-marker-color: var(--md-sys-color-surface, #fffbfe)}.prx-rich-timeline--connector-color-primary,.prx-rich-timeline__item--connector-color-primary{--prx-rich-timeline-connector-color: var(--md-sys-color-primary, #6750a4)}.prx-rich-timeline--connector-color-secondary,.prx-rich-timeline__item--connector-color-secondary{--prx-rich-timeline-connector-color: var(--md-sys-color-secondary, #625b71)}.prx-rich-timeline--connector-color-tertiary,.prx-rich-timeline__item--connector-color-tertiary{--prx-rich-timeline-connector-color: var(--md-sys-color-tertiary, #7d5260)}.prx-rich-timeline--connector-color-success,.prx-rich-timeline__item--connector-color-success{--prx-rich-timeline-connector-color: var(--praxis-success, #146c43)}.prx-rich-timeline--connector-color-warning,.prx-rich-timeline__item--connector-color-warning{--prx-rich-timeline-connector-color: var(--praxis-warning, #b26a00)}.prx-rich-timeline--connector-color-error,.prx-rich-timeline__item--connector-color-error{--prx-rich-timeline-connector-color: var(--md-sys-color-error, #ba1a1a)}.prx-rich-timeline--connector-color-info,.prx-rich-timeline__item--connector-color-info{--prx-rich-timeline-connector-color: var(--praxis-info, #0b5cad)}.prx-rich-timeline--connector-color-neutral,.prx-rich-timeline__item--connector-color-neutral{--prx-rich-timeline-connector-color: var(--md-sys-color-outline, #79747e)}.prx-rich-timeline__item--has-opposite{grid-template-areas:\"opposite marker body\"}.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd){grid-template-areas:\"body marker opposite\"}.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd){grid-template-areas:\"body marker .\"}.prx-rich-timeline__item-opposite{grid-area:opposite;color:var(--prx-rich-timeline-opposite-color);font-size:var(--prx-rich-timeline-opposite-font-size);font-weight:var(--prx-rich-timeline-opposite-font-weight);line-height:1.35;min-width:0;overflow-wrap:anywhere;padding-top:1px;text-align:end}.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite{text-align:start}.prx-rich-timeline__item-body{background:var(--prx-rich-timeline-item-body-background);border:var(--prx-rich-timeline-item-body-border);border-radius:var(--prx-rich-timeline-item-body-border-radius);padding:var(--prx-rich-timeline-item-body-padding)}.prx-rich-timeline__item-subtitle{color:var(--prx-rich-timeline-item-subtitle-color);font-size:var(--prx-rich-timeline-item-subtitle-font-size)}.prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 22px;display:inline-flex;align-items:flex-start;align-self:stretch;grid-area:marker;justify-content:center;justify-self:center;min-height:64px;position:relative;width:max(32px,var(--prx-rich-timeline-marker-size))}.prx-rich-timeline--marker-dot .prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 10px}.prx-rich-timeline--marker-icon .prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 24px}.prx-rich-timeline__item-marker>*{position:relative;z-index:1}.prx-rich-timeline__item-marker:after{border-left:1px solid var(--prx-rich-timeline-connector-color);bottom:0;content:\"\";left:50%;position:absolute;top:var(--prx-rich-timeline-marker-size);transform:translate(-50%)}.prx-rich-timeline__item:last-child .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:dashed}.prx-rich-timeline--connector-none .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline--horizontal .prx-rich-timeline__items{flex-direction:row;gap:0;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity}.prx-rich-timeline__items:focus-visible{border-radius:4px;outline:2px solid var(--md-sys-color-primary, #6750a4);outline-offset:2px}.prx-rich-timeline--horizontal .prx-rich-timeline__item,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item{grid-template-columns:minmax(176px,1fr);grid-template-areas:\"opposite\" \"marker\" \"body\";grid-template-rows:auto 32px 1fr;min-height:0;min-width:min(240px,80vw);padding-inline-end:calc(var(--prx-rich-timeline-item-gap) * .75);scroll-snap-align:start}.prx-rich-timeline--horizontal .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite){grid-template-areas:\"marker\" \"body\";grid-template-rows:32px 1fr}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker{align-items:center;align-self:center;justify-content:flex-start;justify-self:stretch;min-height:32px;width:100%}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker:after{border-left:0;border-top:1px solid var(--prx-rich-timeline-connector-color);bottom:auto;left:var(--prx-rich-timeline-marker-size);right:0;top:50%;transform:translateY(-50%)}.prx-rich-timeline--horizontal.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:dashed}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:dashed}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:solid}.prx-rich-timeline--horizontal .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-start;text-align:start}.prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{content:\"\";border-left-style:dashed}.prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{content:\"\";border-left-style:solid}.prx-rich-timeline__item--connector-none .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline__item-icon{align-items:center;border:2px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--prx-rich-timeline-marker-color);display:inline-flex;font-size:calc(var(--prx-rich-timeline-marker-size) - 8px);height:var(--prx-rich-timeline-marker-size);justify-content:center;line-height:1;width:var(--prx-rich-timeline-marker-size)}.prx-rich-timeline__item-dot{width:10px;height:10px;border-radius:50%;background:var(--prx-rich-timeline-marker-color);border:2px solid transparent;box-sizing:border-box;display:inline-block}.prx-rich-timeline__item-number{align-items:center;background:var(--prx-rich-timeline-marker-color);border:2px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--prx-rich-timeline-on-marker-color);display:inline-flex;font-size:11px;font-weight:700;height:var(--prx-rich-timeline-marker-size);justify-content:center;line-height:1;min-width:var(--prx-rich-timeline-marker-size);padding:0 5px}.prx-rich-timeline--marker-style-outlined .prx-rich-timeline__item-marker>*,.prx-rich-timeline__item--marker-style-outlined .prx-rich-timeline__item-marker>*{background:transparent;border-color:var(--prx-rich-timeline-marker-color);color:var(--prx-rich-timeline-marker-color)}.prx-rich-timeline--marker-style-outlined .prx-rich-timeline__item-dot,.prx-rich-timeline__item--marker-style-outlined .prx-rich-timeline__item-dot{background:var(--md-sys-color-surface, #fffbfe)}.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-dot,.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-number,.prx-rich-timeline--marker-style-filled .prx-rich-timeline__item-icon,.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-icon{background:var(--prx-rich-timeline-marker-color);border-color:transparent;color:var(--prx-rich-timeline-on-marker-color)}.prx-rich-timeline__item-body{display:flex;flex-direction:column;gap:4px;grid-area:body;min-width:0}.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-end;text-align:end}.prx-rich-timeline__item-title{color:var(--prx-rich-timeline-item-title-color);font-size:var(--prx-rich-timeline-item-title-font-size);font-weight:var(--prx-rich-timeline-item-title-font-weight)}.prx-rich-timeline--emphasis-subtle{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-title-font-weight: 500;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-timeline--density-compact{--prx-rich-timeline-item-gap: 10px;--prx-rich-timeline-item-body-padding: 10px}.prx-rich-timeline--density-spacious{--prx-rich-timeline-item-gap: 24px;--prx-rich-timeline-item-body-padding: 14px}.prx-rich-timeline--emphasis-strong{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-title-font-weight: 700;--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-item-title-font-weight: 700;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-opposite-font-weight: 700}.prx-rich-timeline--emphasis-hero{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-title-font-size: 20px;--prx-rich-timeline-title-font-weight: 800;--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-item-title-font-size: 17px;--prx-rich-timeline-item-title-font-weight: 800;--prx-rich-timeline-opposite-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-opposite-font-size: 14px;--prx-rich-timeline-opposite-font-weight: 800;--prx-rich-timeline-item-body-background: color-mix( in srgb, var(--md-sys-color-primary, #6750a4) 8%, transparent );--prx-rich-timeline-item-body-border-radius: 8px;--prx-rich-timeline-item-body-padding: 14px}.prx-rich-timeline--text-prominent{--prx-rich-timeline-opposite-font-size: 14px;--prx-rich-timeline-opposite-font-weight: 700;--prx-rich-timeline-item-title-font-size: 15px;--prx-rich-timeline-item-title-font-weight: 700}.prx-rich-timeline--text-eyebrow{--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 800}.prx-rich-timeline--text-eyebrow .prx-rich-timeline__item-opposite{letter-spacing:0;text-transform:uppercase}.prx-rich-timeline--text-label{--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 700;--prx-rich-timeline-item-title-font-size: 14px;--prx-rich-timeline-item-title-font-weight: 600}.prx-rich-timeline__item-subtitle,.prx-rich-timeline__item-meta,.prx-rich-timeline__empty{color:var(--prx-rich-timeline-item-subtitle-color);font-size:var(--prx-rich-timeline-item-subtitle-font-size)}.prx-rich-timeline__item-meta{color:var(--prx-rich-timeline-item-meta-color);font-size:var(--prx-rich-timeline-item-meta-font-size)}.prx-rich-timeline__item-badge{display:inline-flex;align-items:flex-start;margin-top:2px}@media(max-width:640px){.prx-rich-timeline--horizontal .prx-rich-timeline__items{flex-direction:column;overflow-x:visible;padding-bottom:0;scroll-snap-type:none}.prx-rich-timeline--horizontal .prx-rich-timeline__item,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item{min-width:0;padding-inline-end:0;scroll-snap-align:none;width:100%}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker{align-items:flex-start;align-self:stretch;justify-content:center;justify-self:center;min-height:64px;width:32px}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker:after{border-left:1px solid var(--prx-rich-timeline-connector-color);border-top:0;bottom:0;left:50%;right:auto;top:var(--prx-rich-timeline-marker-size);transform:translate(-50%)}.prx-rich-timeline--horizontal.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after,.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:dashed;border-top-style:solid}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:solid}.prx-rich-timeline__item--has-opposite,.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd),.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd){grid-template-columns:32px minmax(0,1fr);grid-template-areas:\"marker opposite\" \"marker body\";grid-template-rows:auto 1fr;column-gap:12px}.prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--horizontal .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd),.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd){grid-template-columns:32px minmax(0,1fr);grid-template-areas:\"marker body\";grid-template-rows:1fr;column-gap:12px}.prx-rich-timeline__item-opposite,.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite,.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-start;text-align:start}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3200
3293
|
}
|
|
3201
3294
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisRichContent, decorators: [{
|
|
3202
3295
|
type: Component,
|
|
@@ -3267,18 +3360,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
3267
3360
|
</div>
|
|
3268
3361
|
}
|
|
3269
3362
|
@case ('metric') {
|
|
3270
|
-
<div class="prx-rich-metric">
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3363
|
+
<div class="prx-rich-metric" [class.prx-rich-metric--with-icon]="node.icon">
|
|
3364
|
+
@if (node.icon) {
|
|
3365
|
+
<span class="material-symbols-outlined prx-rich-metric-icon" aria-hidden="true">
|
|
3366
|
+
{{ node.icon }}
|
|
3367
|
+
</span>
|
|
3275
3368
|
}
|
|
3369
|
+
<div class="prx-rich-metric-content">
|
|
3370
|
+
<div class="prx-rich-metric-label">{{ node.label }}</div>
|
|
3371
|
+
<div class="prx-rich-metric-value">{{ resolveMetricValue(node) }}</div>
|
|
3372
|
+
@if (resolveMetricCaption(node); as caption) {
|
|
3373
|
+
<div class="prx-rich-metric-caption">{{ caption }}</div>
|
|
3374
|
+
}
|
|
3375
|
+
</div>
|
|
3276
3376
|
</div>
|
|
3277
3377
|
}
|
|
3278
3378
|
@case ('progress') {
|
|
3279
3379
|
<div class="prx-rich-progress">
|
|
3280
|
-
@if (resolveProgressLabel(node)
|
|
3281
|
-
<div class="prx-rich-progress-
|
|
3380
|
+
@if (resolveProgressLabel(node) || node.showPercent) {
|
|
3381
|
+
<div class="prx-rich-progress-header">
|
|
3382
|
+
@if (resolveProgressLabel(node); as progressLabel) {
|
|
3383
|
+
<div class="prx-rich-progress-label">{{ progressLabel }}</div>
|
|
3384
|
+
}
|
|
3385
|
+
@if (node.showPercent) {
|
|
3386
|
+
<div class="prx-rich-progress-percent">{{ resolveProgressPercent(node) }}</div>
|
|
3387
|
+
}
|
|
3388
|
+
</div>
|
|
3282
3389
|
}
|
|
3283
3390
|
<progress
|
|
3284
3391
|
class="prx-rich-progress-bar"
|
|
@@ -4348,7 +4455,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
4348
4455
|
</span>
|
|
4349
4456
|
}
|
|
4350
4457
|
</ng-template>
|
|
4351
|
-
`, styles: [".prx-rich-content-root{display:block;min-width:0;max-width:100%}.prx-rich-content-root:not(.prx-rich-content-root--inline){display:grid;gap:var(--prx-rich-content-block-gap, 12px)}.prx-rich-content-root--inline{display:inline-flex;align-items:var(--prx-rich-content-inline-align-items, center);flex-wrap:var(--prx-rich-content-inline-flex-wrap, nowrap);gap:var(--prx-rich-content-inline-gap, 6px);min-width:0;max-width:100%;vertical-align:middle}.prx-rich-node{min-width:0;max-width:100%}.prx-rich-node--inline{display:inline-flex;align-items:center;min-width:0;max-width:100%}.prx-rich-compose{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}.prx-rich-compose.direction-column{flex-direction:column;align-items:stretch}.prx-rich-compose.wrap{flex-wrap:wrap}.prx-rich-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:var(--md-sys-color-primary-container, #e8def8);color:var(--md-sys-color-on-primary-container, #21005d);font-size:12px;line-height:20px}.prx-rich-link{color:var(--md-sys-color-primary, #6750a4);text-decoration:underline;text-underline-offset:2px}.prx-rich-text,.prx-rich-link,.prx-rich-badge,.prx-rich-card-title,.prx-rich-card-subtitle,.prx-rich-card-body,.prx-rich-card-footer,.prx-rich-cta-group__title,.prx-rich-cta-group__subtitle,.prx-rich-cta-group__message,.prx-rich-key-value-list__title,.prx-rich-key-value-list__label,.prx-rich-key-value-list__value,.prx-rich-stat-group__title,.prx-rich-stat-group__subtitle,.prx-rich-stat-group__label,.prx-rich-stat-group__value,.prx-rich-stat-group__caption,.prx-rich-tabs__title,.prx-rich-tabs__subtitle,.prx-rich-record-summary__title,.prx-rich-record-summary__subtitle,.prx-rich-record-summary__meta,.prx-rich-record-summary__field-label,.prx-rich-record-summary__field-value,.prx-rich-lookup-result__title,.prx-rich-lookup-result__subtitle,.prx-rich-lookup-result__meta,.prx-rich-lookup-result__message,.prx-rich-lookup-card__title,.prx-rich-lookup-card__subtitle,.prx-rich-lookup-card__meta,.prx-rich-lookup-card__message,.prx-rich-related-record__title,.prx-rich-related-record__subtitle,.prx-rich-related-record__meta,.prx-rich-related-record__relation,.prx-rich-timeline__title,.prx-rich-timeline__subtitle,.prx-rich-timeline__item-title,.prx-rich-timeline__item-subtitle,.prx-rich-timeline__item-meta{min-width:0;max-width:100%;overflow-wrap:anywhere}.prx-rich-text,.prx-rich-link{display:inline-block}.prx-rich-node[data-rich-node-type=avatar]{display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--md-sys-color-surface-container-high, #ece6f0);color:var(--md-sys-color-on-surface, #1d1b20)}.prx-rich-avatar{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:inherit;background:inherit;color:inherit;overflow:hidden}.prx-rich-avatar-image{width:100%;height:100%;object-fit:cover}.prx-rich-avatar-fallback{font-weight:600}.prx-rich-card{--prx-rich-card-tone-color: var(--md-sys-color-outline-variant, #cac4d0);--prx-rich-card-tone-bg: var(--md-sys-color-surface, #fff);--prx-rich-card-tone-on-bg: var(--md-sys-color-on-surface, #1d1b20);display:flex;flex-direction:column;position:relative;gap:12px;padding:16px;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:16px;background:var(--prx-rich-card-tone-bg);color:var(--prx-rich-card-tone-on-bg);overflow:hidden;min-width:0;max-width:100%}.prx-rich-card[data-size=sm],.prx-rich-card[data-density=compact]{gap:8px;padding:12px;border-radius:12px}.prx-rich-content-root.prx-rich-content-root--widget-card{--prx-rich-content-block-gap: 8px}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card{gap:8px;padding:12px;border-radius:var(--pdx-page-card-radius, 10px);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 82%,transparent);box-shadow:none}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card[data-variant=elevated],.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card[data-variant=filled]{border-color:color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 88%,transparent);box-shadow:none}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-heading,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-body,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-actions,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-footer{gap:6px}.prx-rich-card[data-size=lg]{gap:16px;padding:20px}.prx-rich-card[data-orientation=horizontal]{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing{grid-template-columns:minmax(120px,.38fr) minmax(0,1fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-icon,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-avatar{grid-template-columns:minmax(72px,148px) minmax(0,1fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing{grid-template-columns:minmax(0,1fr) minmax(120px,.38fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing.prx-rich-card--media-icon,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing.prx-rich-card--media-avatar{grid-template-columns:minmax(0,1fr) minmax(72px,148px)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading>:not(.prx-rich-card-media){grid-column:2}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading>.prx-rich-card-media[data-placement=leading]{grid-column:1;grid-row:1 / -1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing>:not(.prx-rich-card-media){grid-column:1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing>.prx-rich-card-media[data-placement=trailing]{grid-column:2;grid-row:1 / -1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-top>.prx-rich-card-media[data-placement=top],.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-background>:not(.prx-rich-card-media){grid-column:1}.prx-rich-card[data-variant=plain]{border-color:transparent;background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 64%,transparent)}.prx-rich-card[data-variant=elevated]{border-color:transparent;box-shadow:0 4px 18px color-mix(in srgb,var(--md-sys-color-shadow, #000) 16%,transparent)}.prx-rich-card[data-variant=filled]{background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 72%,var(--md-sys-color-surface-container, #f3edf7))}.prx-rich-card[data-variant=transparent]{border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #cac4d0) 64%,transparent);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 72%,transparent)}.prx-rich-card[data-tone=info]{--prx-rich-card-tone-color: var(--praxis-info, #0b5cad);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-card-tone-color) 12%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 42%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=success]{--prx-rich-card-tone-color: var(--praxis-success, #2e7d32);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-card-tone-color) 12%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 48%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=warning]{--prx-rich-card-tone-color: var(--praxis-warning, #ed6c02);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 86%, var(--prx-rich-card-tone-color) 14%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 56%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=danger]{--prx-rich-card-tone-color: var(--md-sys-color-error, #d32f2f);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 84%, var(--prx-rich-card-tone-color) 16%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 62%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card--interactive{cursor:pointer}.prx-rich-card--interactive:focus-visible{outline:3px solid color-mix(in srgb,var(--md-sys-color-primary, #6750a4) 72%,transparent);outline-offset:2px}.prx-rich-card--selected,.prx-rich-card--active{border-color:var(--md-sys-color-primary, #6750a4);box-shadow:inset 0 0 0 1px var(--md-sys-color-primary, #6750a4)}.prx-rich-card--disabled:not(.prx-rich-card--loading){opacity:.62;cursor:default}.prx-rich-card--loading{cursor:progress}.prx-rich-card-media{display:flex;align-items:center;justify-content:center;min-width:0;border-radius:12px;background:color-mix(in srgb,var(--prx-rich-card-tone-color) 18%,var(--md-sys-color-surface-container-high, #ece6f0));overflow:hidden;aspect-ratio:16 / 9}.prx-rich-card-media[data-kind=icon],.prx-rich-card-media[data-kind=avatar]{aspect-ratio:auto;min-height:64px;padding:12px}.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar]{min-height:48px;padding:8px}.prx-rich-card-media[data-placement=leading],.prx-rich-card-media[data-placement=trailing]{aspect-ratio:auto;min-height:100%}.prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card-media[data-kind=avatar][data-placement=trailing]{align-self:start;min-height:64px}.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar][data-placement=trailing],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar][data-placement=trailing]{min-height:48px}.prx-rich-card-media--background{position:absolute;inset:0;z-index:0;border-radius:inherit;opacity:.18}.prx-rich-card-media--background~*{position:relative;z-index:1}.prx-rich-card-media__asset{width:100%;height:100%;object-fit:cover}.prx-rich-card-media__icon{font-size:40px;color:var(--prx-rich-card-tone-color)}.prx-rich-card-media__avatar{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--prx-rich-card-tone-color) 22%,var(--md-sys-color-primary-container, #e8def8));color:var(--prx-rich-card-tone-on-bg);font-weight:700}.prx-rich-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.prx-rich-card-header__content{min-width:0}.prx-rich-card-header__action{flex:0 0 auto}.prx-rich-card-heading{display:grid;gap:4px;min-width:0}.prx-rich-card-title{font-weight:600}.prx-rich-card-subtitle,.prx-rich-metric-caption{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-metric{display:flex;flex-direction:column;gap:4px}.prx-rich-metric-value{font-size:20px;font-weight:700}.prx-rich-progress{display:flex;flex-direction:column;gap:4px}.prx-rich-progress-bar{width:100%}.prx-rich-action-button,.prx-rich-card-actions,.prx-rich-callout__actions,.prx-rich-empty-state__actions,.prx-rich-record-summary__actions,.prx-rich-disclosure__actions,.prx-rich-accordion__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.prx-rich-action-button{appearance:none;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:999px;background:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-on-surface, #1d1b20);padding:8px 12px;cursor:pointer}.prx-rich-action-button:disabled{opacity:.56;cursor:default}.prx-rich-action-button--raised,.prx-rich-action-button--primary{background:var(--md-sys-color-primary, #6750a4);color:var(--md-sys-color-on-primary, #fff)}.prx-rich-callout,.prx-rich-empty-state,.prx-rich-record-summary,.prx-rich-decision-package,.prx-rich-disclosure,.prx-rich-accordion{border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:16px;padding:16px;background:var(--md-sys-color-surface, #fff)}.prx-rich-callout[data-tone=warning]{background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,#ffb300 12%)}.prx-rich-callout[data-tone=danger]{background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,#d32f2f 12%)}.prx-rich-callout__title,.prx-rich-empty-state__title,.prx-rich-record-summary__title,.prx-rich-decision-package__title,.prx-rich-stat-group__title,.prx-rich-accordion__title,.prx-rich-key-value-list__title{font-weight:700;margin-bottom:4px}.prx-rich-decision-package{--prx-rich-decision-package-accent: var(--md-sys-color-primary, #6750a4);display:grid;grid-template-columns:minmax(0,1fr) minmax(136px,auto);gap:16px;border-color:color-mix(in srgb,var(--prx-rich-decision-package-accent) 42%,var(--md-sys-color-outline-variant, #cac4d0));background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,var(--prx-rich-decision-package-accent) 12%)}.prx-rich-decision-package[data-status=approved],.prx-rich-decision-package[data-status=published]{--prx-rich-decision-package-accent: var(--praxis-success, #2e7d32)}.prx-rich-decision-package[data-status=draft],.prx-rich-decision-package[data-status=simulated],.prx-rich-decision-package[data-risk=medium],.prx-rich-decision-package[data-risk=high]{--prx-rich-decision-package-accent: var(--praxis-warning, #ed6c02)}.prx-rich-decision-package[data-status=reverted],.prx-rich-decision-package[data-risk=critical]{--prx-rich-decision-package-accent: var(--md-sys-color-error, #d32f2f)}.prx-rich-decision-package__main{display:grid;gap:8px;min-width:0}.prx-rich-decision-package__eyebrow,.prx-rich-decision-package__evidence,.prx-rich-decision-package__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.prx-rich-decision-package__title{font-size:20px;line-height:1.15}.prx-rich-decision-package__subtitle,.prx-rich-decision-package__summary,.prx-rich-decision-package__meta,.prx-rich-decision-package__property dt,.prx-rich-decision-package__evidence-item small{color:var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-decision-package__properties{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0}.prx-rich-decision-package__property{min-width:0}.prx-rich-decision-package__property dt,.prx-rich-decision-package__property dd{margin:0;overflow-wrap:anywhere}.prx-rich-decision-package__property dd{font-weight:700}.prx-rich-decision-package__evidence-item{display:inline-flex;flex-direction:column;gap:1px;border:1px solid color-mix(in srgb,var(--prx-rich-decision-package-accent) 24%,var(--md-sys-color-outline-variant, #cac4d0));border-radius:12px;padding:6px 8px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 76%,transparent);font-size:12px}.prx-rich-decision-package__aside{display:grid;align-content:start;justify-items:end;gap:10px;min-width:0}.prx-rich-decision-package__confidence{display:grid;justify-items:center;min-width:96px;border-radius:16px;padding:12px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 72%,transparent)}.prx-rich-decision-package__confidence span{font-size:28px;font-weight:800;line-height:1}.prx-rich-decision-package__confidence small{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:11px;font-weight:700;text-transform:uppercase}@media(max-width:640px){.prx-rich-decision-package{grid-template-columns:minmax(0,1fr)}.prx-rich-decision-package__aside{justify-items:start}}.prx-rich-empty-state{align-items:center;text-align:center}.prx-rich-key-value-list__items,.prx-rich-stat-group__items,.prx-rich-record-summary__fields{display:grid;gap:8px;margin:0}.prx-rich-stat-group[data-layout=inline] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}.prx-rich-stat-group[data-layout=grid] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}.prx-rich-stat-group__item{--prx-rich-stat-tone-color: var(--md-sys-color-outline, #79747e);--prx-rich-stat-tone-bg: var(--md-sys-color-surface, #fff);--prx-rich-stat-tone-border: var(--md-sys-color-outline-variant, #cac4d0);display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:2px;align-items:start;min-width:0;padding:12px;border:1px solid var(--prx-rich-stat-tone-border);border-radius:12px;background:var(--prx-rich-stat-tone-bg)}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__items{gap:6px}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group[data-layout=inline] .prx-rich-stat-group__items,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group[data-layout=grid] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(148px,100%),1fr))}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__item{column-gap:8px;padding:8px 10px;border-radius:var(--pdx-page-card-radius, 10px);background:color-mix(in srgb,var(--prx-rich-stat-tone-bg) 78%,transparent)}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__icon,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__value{font-size:20px}.prx-rich-stat-group__item[data-tone=info]{--prx-rich-stat-tone-color: var(--praxis-info, #0b5cad);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-stat-tone-color) 12%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 34%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=success]{--prx-rich-stat-tone-color: var(--praxis-success, #2e7d32);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-stat-tone-color) 12%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 38%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=warning]{--prx-rich-stat-tone-color: var(--praxis-warning, #b26a00);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 86%, var(--prx-rich-stat-tone-color) 14%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 46%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=danger]{--prx-rich-stat-tone-color: var(--md-sys-color-error, #d32f2f);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 84%, var(--prx-rich-stat-tone-color) 16%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 54%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item-header{display:flex;gap:8px;align-items:center;min-width:0}.prx-rich-stat-group__item-content{display:grid;gap:4px;min-width:0}.prx-rich-stat-group__icon{color:var(--prx-rich-stat-tone-color);font-size:24px;line-height:1;margin-top:1px}.prx-rich-stat-group__item:not(.prx-rich-stat-group__item--with-icon){grid-template-columns:minmax(0,1fr)}.prx-rich-stat-group__label,.prx-rich-stat-group__subtitle,.prx-rich-stat-group__caption{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-stat-group__value{color:var(--md-sys-color-on-surface, #1d1b20);font-size:24px;font-weight:700;line-height:1.2}.prx-rich-tabs{display:flex;flex-direction:column;gap:12px;min-width:0}.prx-rich-tabs__title,.prx-rich-tabs__tab--active{font-weight:700}.prx-rich-tabs__subtitle{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px;margin-top:-8px}.prx-rich-tabs__tablist{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--md-sys-color-outline-variant, #cac4d0);padding-bottom:8px}.prx-rich-tabs[data-appearance=pills] .prx-rich-tabs__tablist{border-bottom:0;padding-bottom:0}.prx-rich-tabs__tab{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:8px 12px;border:0;border-radius:999px;background:transparent;color:var(--md-sys-color-on-surface, #1d1b20);cursor:pointer}.prx-rich-tabs[data-appearance=underline] .prx-rich-tabs__tab{border-radius:0;border-bottom:2px solid transparent;padding-inline:0;padding-top:0;padding-bottom:8px}.prx-rich-tabs__tab--active{color:var(--md-sys-color-primary, #6750a4)}.prx-rich-tabs[data-appearance=underline] .prx-rich-tabs__tab--active{border-bottom-color:var(--md-sys-color-primary, #6750a4)}.prx-rich-tabs[data-appearance=pills] .prx-rich-tabs__tab--active{background:color-mix(in srgb,var(--md-sys-color-primary, #6750a4) 14%,#fff)}.prx-rich-tabs__tab:disabled{cursor:not-allowed;opacity:.55}.prx-rich-tabs__panel{display:block;min-width:0}.prx-rich-key-value-list__item,.prx-rich-record-summary__field{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr);gap:12px;margin:0}.prx-rich-key-value-list[data-layout=stacked] .prx-rich-key-value-list__item{grid-template-columns:minmax(0,1fr);gap:4px}.prx-rich-key-value-list__item dt,.prx-rich-record-summary__field dt{color:var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-key-value-list__item dd,.prx-rich-record-summary__field dd{margin:0;display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}.prx-rich-related-record{display:grid;gap:14px;min-width:0;padding:16px;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:12px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 94%,transparent)}.prx-rich-related-record__copy{display:grid;gap:10px;min-width:0}.prx-rich-related-record__relation{color:var(--md-sys-color-primary, #6750a4);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0}.prx-rich-related-record__title-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;min-width:0}.prx-rich-related-record__title-row:not(.prx-rich-related-record__title-row--with-icon){grid-template-columns:minmax(0,1fr)}.prx-rich-related-record__icon{color:var(--md-sys-color-primary, #6750a4);font-size:24px;line-height:1}.prx-rich-related-record__title{font-size:18px;font-weight:700;line-height:1.25;min-width:0}.prx-rich-related-record__subtitle,.prx-rich-related-record__meta,.prx-rich-related-record__hint{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px;line-height:1.45}.prx-rich-related-record__fields{display:grid;gap:8px;margin:0;padding:0}.prx-rich-related-record__field{display:grid;grid-template-columns:minmax(0,140px) minmax(0,1fr);gap:8px 12px;align-items:start;min-width:0;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant, #cac4d0) 52%,transparent)}.prx-rich-related-record__field dt{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px}.prx-rich-related-record__field dd{margin:0;font-weight:600;min-width:0}.prx-rich-related-record__hint{grid-column:2}.prx-rich-related-record__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.prx-rich-disclosure__summary,.prx-rich-accordion__summary{cursor:pointer;display:flex;gap:8px;align-items:center;list-style:none}.prx-rich-disclosure__content,.prx-rich-accordion__content{margin-top:12px}.prx-rich-media-block{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-width:0}.prx-rich-media-block__avatar,.prx-rich-media-block__body,.prx-rich-media-block__trailing{min-width:0}.prx-rich-media-block__body{display:flex;flex-direction:column;gap:6px}.prx-rich-media-block__title{font-weight:700}.prx-rich-media-block__subtitle{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px}.prx-rich-media-block__meta{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-media-block__trailing{display:flex;align-items:center;justify-content:flex-end}.prx-rich-timeline{--prx-rich-timeline-marker-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-primary, #fff);--prx-rich-timeline-connector-color: var(--md-sys-color-outline-variant, #cac4d0);--prx-rich-timeline-item-gap: 16px;--prx-rich-timeline-title-color: currentColor;--prx-rich-timeline-title-font-size: inherit;--prx-rich-timeline-title-font-weight: 700;--prx-rich-timeline-item-title-color: currentColor;--prx-rich-timeline-item-title-font-size: inherit;--prx-rich-timeline-item-title-font-weight: 600;--prx-rich-timeline-item-subtitle-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-subtitle-font-size: 12px;--prx-rich-timeline-item-meta-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-meta-font-size: 12px;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 400;--prx-rich-timeline-item-body-background: transparent;--prx-rich-timeline-item-body-border: 0;--prx-rich-timeline-item-body-border-radius: 6px;--prx-rich-timeline-item-body-padding: 12px;display:flex;flex-direction:column;gap:12px;min-width:0}.prx-rich-timeline__title{color:var(--prx-rich-timeline-title-color);font-size:var(--prx-rich-timeline-title-font-size);font-weight:var(--prx-rich-timeline-title-font-weight)}.prx-rich-timeline__items{display:flex;flex-direction:column;gap:0;list-style:none;margin:0;padding:0}.prx-rich-timeline__item{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);grid-template-areas:\". marker body\";column-gap:16px;align-items:flex-start;min-height:64px;min-width:0;position:relative}.prx-rich-timeline--vertical .prx-rich-timeline__item{padding-block-end:var(--prx-rich-timeline-item-gap)}.prx-rich-timeline--vertical .prx-rich-timeline__item:last-child{padding-block-end:0}.prx-rich-timeline--marker-color-primary,.prx-rich-timeline__item--marker-color-primary{--prx-rich-timeline-marker-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-primary, #fff)}.prx-rich-timeline--marker-color-secondary,.prx-rich-timeline__item--marker-color-secondary{--prx-rich-timeline-marker-color: var(--md-sys-color-secondary, #625b71);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-secondary, #fff)}.prx-rich-timeline--marker-color-tertiary,.prx-rich-timeline__item--marker-color-tertiary{--prx-rich-timeline-marker-color: var(--md-sys-color-tertiary, #7d5260);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-tertiary, #fff)}.prx-rich-timeline--marker-color-success,.prx-rich-timeline__item--marker-color-success{--prx-rich-timeline-marker-color: var(--praxis-success, #146c43);--prx-rich-timeline-on-marker-color: var(--praxis-on-success, #fff)}.prx-rich-timeline--marker-color-warning,.prx-rich-timeline__item--marker-color-warning{--prx-rich-timeline-marker-color: var(--praxis-warning, #b26a00);--prx-rich-timeline-on-marker-color: var(--praxis-on-warning, #1d1b20)}.prx-rich-timeline--marker-color-error,.prx-rich-timeline__item--marker-color-error{--prx-rich-timeline-marker-color: var(--md-sys-color-error, #ba1a1a);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-error, #fff)}.prx-rich-timeline--marker-color-info,.prx-rich-timeline__item--marker-color-info{--prx-rich-timeline-marker-color: var(--praxis-info, #0b5cad);--prx-rich-timeline-on-marker-color: var(--praxis-on-info, #fff)}.prx-rich-timeline--marker-color-neutral,.prx-rich-timeline__item--marker-color-neutral{--prx-rich-timeline-marker-color: var(--md-sys-color-outline, #79747e);--prx-rich-timeline-on-marker-color: var(--md-sys-color-surface, #fffbfe)}.prx-rich-timeline--connector-color-primary,.prx-rich-timeline__item--connector-color-primary{--prx-rich-timeline-connector-color: var(--md-sys-color-primary, #6750a4)}.prx-rich-timeline--connector-color-secondary,.prx-rich-timeline__item--connector-color-secondary{--prx-rich-timeline-connector-color: var(--md-sys-color-secondary, #625b71)}.prx-rich-timeline--connector-color-tertiary,.prx-rich-timeline__item--connector-color-tertiary{--prx-rich-timeline-connector-color: var(--md-sys-color-tertiary, #7d5260)}.prx-rich-timeline--connector-color-success,.prx-rich-timeline__item--connector-color-success{--prx-rich-timeline-connector-color: var(--praxis-success, #146c43)}.prx-rich-timeline--connector-color-warning,.prx-rich-timeline__item--connector-color-warning{--prx-rich-timeline-connector-color: var(--praxis-warning, #b26a00)}.prx-rich-timeline--connector-color-error,.prx-rich-timeline__item--connector-color-error{--prx-rich-timeline-connector-color: var(--md-sys-color-error, #ba1a1a)}.prx-rich-timeline--connector-color-info,.prx-rich-timeline__item--connector-color-info{--prx-rich-timeline-connector-color: var(--praxis-info, #0b5cad)}.prx-rich-timeline--connector-color-neutral,.prx-rich-timeline__item--connector-color-neutral{--prx-rich-timeline-connector-color: var(--md-sys-color-outline, #79747e)}.prx-rich-timeline__item--has-opposite{grid-template-areas:\"opposite marker body\"}.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd){grid-template-areas:\"body marker opposite\"}.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd){grid-template-areas:\"body marker .\"}.prx-rich-timeline__item-opposite{grid-area:opposite;color:var(--prx-rich-timeline-opposite-color);font-size:var(--prx-rich-timeline-opposite-font-size);font-weight:var(--prx-rich-timeline-opposite-font-weight);line-height:1.35;min-width:0;overflow-wrap:anywhere;padding-top:1px;text-align:end}.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite{text-align:start}.prx-rich-timeline__item-body{background:var(--prx-rich-timeline-item-body-background);border:var(--prx-rich-timeline-item-body-border);border-radius:var(--prx-rich-timeline-item-body-border-radius);padding:var(--prx-rich-timeline-item-body-padding)}.prx-rich-timeline__item-subtitle{color:var(--prx-rich-timeline-item-subtitle-color);font-size:var(--prx-rich-timeline-item-subtitle-font-size)}.prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 20px;display:inline-flex;align-items:flex-start;align-self:stretch;grid-area:marker;justify-content:center;justify-self:center;min-height:64px;position:relative;width:32px}.prx-rich-timeline--marker-dot .prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 10px}.prx-rich-timeline--marker-icon .prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 18px}.prx-rich-timeline__item-marker>*{position:relative;z-index:1}.prx-rich-timeline__item-marker:after{border-left:1px solid var(--prx-rich-timeline-connector-color);bottom:0;content:\"\";left:50%;position:absolute;top:var(--prx-rich-timeline-marker-size);transform:translate(-50%)}.prx-rich-timeline__item:last-child .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:dashed}.prx-rich-timeline--connector-none .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline--horizontal .prx-rich-timeline__items{flex-direction:row;gap:0;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity}.prx-rich-timeline__items:focus-visible{border-radius:4px;outline:2px solid var(--md-sys-color-primary, #6750a4);outline-offset:2px}.prx-rich-timeline--horizontal .prx-rich-timeline__item,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item{grid-template-columns:minmax(176px,1fr);grid-template-areas:\"opposite\" \"marker\" \"body\";grid-template-rows:auto 32px 1fr;min-height:0;min-width:min(240px,80vw);padding-inline-end:calc(var(--prx-rich-timeline-item-gap) * .75);scroll-snap-align:start}.prx-rich-timeline--horizontal .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite){grid-template-areas:\"marker\" \"body\";grid-template-rows:32px 1fr}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker{align-items:center;align-self:center;justify-content:flex-start;justify-self:stretch;min-height:32px;width:100%}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker:after{border-left:0;border-top:1px solid var(--prx-rich-timeline-connector-color);bottom:auto;left:var(--prx-rich-timeline-marker-size);right:0;top:50%;transform:translateY(-50%)}.prx-rich-timeline--horizontal.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:dashed}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:dashed}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:solid}.prx-rich-timeline--horizontal .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-start;text-align:start}.prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{content:\"\";border-left-style:dashed}.prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{content:\"\";border-left-style:solid}.prx-rich-timeline__item--connector-none .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline__item-icon{align-items:center;border:2px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--prx-rich-timeline-marker-color);display:inline-flex;font-size:18px;height:20px;justify-content:center;line-height:18px;width:20px}.prx-rich-timeline__item-dot{width:10px;height:10px;border-radius:50%;background:var(--prx-rich-timeline-marker-color);border:2px solid transparent;box-sizing:border-box;display:inline-block}.prx-rich-timeline__item-number{align-items:center;background:var(--prx-rich-timeline-marker-color);border:2px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--prx-rich-timeline-on-marker-color);display:inline-flex;font-size:11px;font-weight:700;height:20px;justify-content:center;line-height:20px;min-width:20px;padding:0 5px}.prx-rich-timeline--marker-style-outlined .prx-rich-timeline__item-marker>*,.prx-rich-timeline__item--marker-style-outlined .prx-rich-timeline__item-marker>*{background:transparent;border-color:var(--prx-rich-timeline-marker-color);color:var(--prx-rich-timeline-marker-color)}.prx-rich-timeline--marker-style-outlined .prx-rich-timeline__item-dot,.prx-rich-timeline__item--marker-style-outlined .prx-rich-timeline__item-dot{background:var(--md-sys-color-surface, #fffbfe)}.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-dot,.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-number,.prx-rich-timeline--marker-style-filled .prx-rich-timeline__item-icon,.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-icon{background:var(--prx-rich-timeline-marker-color);border-color:transparent;color:var(--prx-rich-timeline-on-marker-color)}.prx-rich-timeline__item-body{display:flex;flex-direction:column;gap:4px;grid-area:body;min-width:0}.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-end;text-align:end}.prx-rich-timeline__item-title{color:var(--prx-rich-timeline-item-title-color);font-size:var(--prx-rich-timeline-item-title-font-size);font-weight:var(--prx-rich-timeline-item-title-font-weight)}.prx-rich-timeline--emphasis-subtle{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-title-font-weight: 500;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-timeline--density-compact{--prx-rich-timeline-item-gap: 10px;--prx-rich-timeline-item-body-padding: 10px}.prx-rich-timeline--density-spacious{--prx-rich-timeline-item-gap: 24px;--prx-rich-timeline-item-body-padding: 14px}.prx-rich-timeline--emphasis-strong{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-title-font-weight: 700;--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-item-title-font-weight: 700;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-opposite-font-weight: 700}.prx-rich-timeline--emphasis-hero{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-title-font-size: 20px;--prx-rich-timeline-title-font-weight: 800;--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-item-title-font-size: 17px;--prx-rich-timeline-item-title-font-weight: 800;--prx-rich-timeline-opposite-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-opposite-font-size: 14px;--prx-rich-timeline-opposite-font-weight: 800;--prx-rich-timeline-item-body-background: color-mix( in srgb, var(--md-sys-color-primary, #6750a4) 8%, transparent );--prx-rich-timeline-item-body-border-radius: 8px;--prx-rich-timeline-item-body-padding: 14px}.prx-rich-timeline--text-prominent{--prx-rich-timeline-opposite-font-size: 14px;--prx-rich-timeline-opposite-font-weight: 700;--prx-rich-timeline-item-title-font-size: 15px;--prx-rich-timeline-item-title-font-weight: 700}.prx-rich-timeline--text-eyebrow{--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 800}.prx-rich-timeline--text-eyebrow .prx-rich-timeline__item-opposite{letter-spacing:0;text-transform:uppercase}.prx-rich-timeline--text-label{--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 700;--prx-rich-timeline-item-title-font-size: 14px;--prx-rich-timeline-item-title-font-weight: 600}.prx-rich-timeline__item-subtitle,.prx-rich-timeline__item-meta,.prx-rich-timeline__empty{color:var(--prx-rich-timeline-item-subtitle-color);font-size:var(--prx-rich-timeline-item-subtitle-font-size)}.prx-rich-timeline__item-meta{color:var(--prx-rich-timeline-item-meta-color);font-size:var(--prx-rich-timeline-item-meta-font-size)}.prx-rich-timeline__item-badge{display:inline-flex;align-items:flex-start;margin-top:2px}@media(max-width:640px){.prx-rich-timeline--horizontal .prx-rich-timeline__items{flex-direction:column;overflow-x:visible;padding-bottom:0;scroll-snap-type:none}.prx-rich-timeline--horizontal .prx-rich-timeline__item,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item{min-width:0;padding-inline-end:0;scroll-snap-align:none;width:100%}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker{align-items:flex-start;align-self:stretch;justify-content:center;justify-self:center;min-height:64px;width:32px}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker:after{border-left:1px solid var(--prx-rich-timeline-connector-color);border-top:0;bottom:0;left:50%;right:auto;top:var(--prx-rich-timeline-marker-size);transform:translate(-50%)}.prx-rich-timeline--horizontal.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after,.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:dashed;border-top-style:solid}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:solid}.prx-rich-timeline__item--has-opposite,.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd),.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd){grid-template-columns:32px minmax(0,1fr);grid-template-areas:\"marker opposite\" \"marker body\";grid-template-rows:auto 1fr;column-gap:12px}.prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--horizontal .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd),.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd){grid-template-columns:32px minmax(0,1fr);grid-template-areas:\"marker body\";grid-template-rows:1fr;column-gap:12px}.prx-rich-timeline__item-opposite,.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite,.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-start;text-align:start}}\n"] }]
|
|
4458
|
+
`, styles: [".prx-rich-content-root{display:block;min-width:0;max-width:100%}.prx-rich-content-root:not(.prx-rich-content-root--inline){display:grid;gap:var(--prx-rich-content-block-gap, 12px)}.prx-rich-content-root--inline{display:inline-flex;align-items:var(--prx-rich-content-inline-align-items, center);flex-wrap:var(--prx-rich-content-inline-flex-wrap, nowrap);gap:var(--prx-rich-content-inline-gap, 6px);min-width:0;max-width:100%;vertical-align:middle}.prx-rich-node{min-width:0;max-width:100%}.prx-rich-node--inline{display:inline-flex;align-items:center;min-width:0;max-width:100%}.prx-rich-compose{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}.prx-rich-compose.direction-column{flex-direction:column;align-items:stretch}.prx-rich-compose.wrap{flex-wrap:wrap}.prx-rich-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:var(--md-sys-color-primary-container, #e8def8);color:var(--md-sys-color-on-primary-container, #21005d);font-size:12px;line-height:20px}.prx-rich-link{color:var(--md-sys-color-primary, #6750a4);text-decoration:underline;text-underline-offset:2px}.prx-rich-text,.prx-rich-link,.prx-rich-badge,.prx-rich-card-title,.prx-rich-card-subtitle,.prx-rich-card-body,.prx-rich-card-footer,.prx-rich-cta-group__title,.prx-rich-cta-group__subtitle,.prx-rich-cta-group__message,.prx-rich-key-value-list__title,.prx-rich-key-value-list__label,.prx-rich-key-value-list__value,.prx-rich-stat-group__title,.prx-rich-stat-group__subtitle,.prx-rich-stat-group__label,.prx-rich-stat-group__value,.prx-rich-stat-group__caption,.prx-rich-tabs__title,.prx-rich-tabs__subtitle,.prx-rich-record-summary__title,.prx-rich-record-summary__subtitle,.prx-rich-record-summary__meta,.prx-rich-record-summary__field-label,.prx-rich-record-summary__field-value,.prx-rich-lookup-result__title,.prx-rich-lookup-result__subtitle,.prx-rich-lookup-result__meta,.prx-rich-lookup-result__message,.prx-rich-lookup-card__title,.prx-rich-lookup-card__subtitle,.prx-rich-lookup-card__meta,.prx-rich-lookup-card__message,.prx-rich-related-record__title,.prx-rich-related-record__subtitle,.prx-rich-related-record__meta,.prx-rich-related-record__relation,.prx-rich-timeline__title,.prx-rich-timeline__subtitle,.prx-rich-timeline__item-title,.prx-rich-timeline__item-subtitle,.prx-rich-timeline__item-meta{min-width:0;max-width:100%;overflow-wrap:anywhere}.prx-rich-text,.prx-rich-link{display:inline-block}.prx-rich-node[data-rich-node-type=avatar]{display:inline-flex;width:40px;height:40px;border-radius:50%;background:var(--md-sys-color-surface-container-high, #ece6f0);color:var(--md-sys-color-on-surface, #1d1b20)}.prx-rich-avatar{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:inherit;background:inherit;color:inherit;overflow:hidden}.prx-rich-avatar-image{width:100%;height:100%;object-fit:cover}.prx-rich-avatar-fallback{font-weight:600}.prx-rich-card{--prx-rich-card-tone-color: var(--md-sys-color-outline-variant, #cac4d0);--prx-rich-card-tone-bg: var(--md-sys-color-surface, #fff);--prx-rich-card-tone-on-bg: var(--md-sys-color-on-surface, #1d1b20);display:flex;flex-direction:column;position:relative;gap:12px;padding:16px;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:16px;background:var(--prx-rich-card-tone-bg);color:var(--prx-rich-card-tone-on-bg);overflow:hidden;min-width:0;max-width:100%}.prx-rich-card[data-size=sm],.prx-rich-card[data-density=compact]{gap:8px;padding:12px;border-radius:12px}.prx-rich-content-root.prx-rich-content-root--widget-card{--prx-rich-content-block-gap: 8px}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card{gap:8px;padding:12px;border-radius:var(--pdx-page-card-radius, 10px);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 82%,transparent);box-shadow:none}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card[data-variant=elevated],.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card[data-variant=filled]{border-color:color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 88%,transparent);box-shadow:none}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-heading,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-body,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-actions,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-card-footer{gap:6px}.prx-rich-card[data-size=lg]{gap:16px;padding:20px}.prx-rich-card[data-orientation=horizontal]{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing{grid-template-columns:minmax(120px,.38fr) minmax(0,1fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-icon,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-avatar{grid-template-columns:minmax(72px,148px) minmax(0,1fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing{grid-template-columns:minmax(0,1fr) minmax(120px,.38fr)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing.prx-rich-card--media-icon,.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing.prx-rich-card--media-avatar{grid-template-columns:minmax(0,1fr) minmax(72px,148px)}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading>:not(.prx-rich-card-media){grid-column:2}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-leading>.prx-rich-card-media[data-placement=leading]{grid-column:1;grid-row:1 / -1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing>:not(.prx-rich-card-media){grid-column:1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-trailing>.prx-rich-card-media[data-placement=trailing]{grid-column:2;grid-row:1 / -1}.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-top>.prx-rich-card-media[data-placement=top],.prx-rich-card[data-orientation=horizontal].prx-rich-card--media-background>:not(.prx-rich-card-media){grid-column:1}.prx-rich-card[data-variant=plain]{border-color:transparent;background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 64%,transparent)}.prx-rich-card[data-variant=elevated]{border-color:transparent;box-shadow:0 4px 18px color-mix(in srgb,var(--md-sys-color-shadow, #000) 16%,transparent)}.prx-rich-card[data-variant=filled]{background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 72%,var(--md-sys-color-surface-container, #f3edf7))}.prx-rich-card[data-variant=transparent]{border-color:color-mix(in srgb,var(--md-sys-color-outline-variant, #cac4d0) 64%,transparent);background:color-mix(in srgb,var(--prx-rich-card-tone-bg) 72%,transparent)}.prx-rich-card[data-tone=info]{--prx-rich-card-tone-color: var(--praxis-info, #0b5cad);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-card-tone-color) 12%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 42%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=success]{--prx-rich-card-tone-color: var(--praxis-success, #2e7d32);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-card-tone-color) 12%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 48%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=warning]{--prx-rich-card-tone-color: var(--praxis-warning, #ed6c02);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 86%, var(--prx-rich-card-tone-color) 14%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 56%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card[data-tone=danger]{--prx-rich-card-tone-color: var(--md-sys-color-error, #d32f2f);--prx-rich-card-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 84%, var(--prx-rich-card-tone-color) 16%);border-color:color-mix(in srgb,var(--prx-rich-card-tone-color) 62%,var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-card--interactive{cursor:pointer}.prx-rich-card--interactive:focus-visible{outline:3px solid color-mix(in srgb,var(--md-sys-color-primary, #6750a4) 72%,transparent);outline-offset:2px}.prx-rich-card--selected,.prx-rich-card--active{border-color:var(--md-sys-color-primary, #6750a4);box-shadow:inset 0 0 0 1px var(--md-sys-color-primary, #6750a4)}.prx-rich-card--disabled:not(.prx-rich-card--loading){opacity:.62;cursor:default}.prx-rich-card--loading{cursor:progress}.prx-rich-card-media{display:flex;align-items:center;justify-content:center;min-width:0;border-radius:12px;background:color-mix(in srgb,var(--prx-rich-card-tone-color) 18%,var(--md-sys-color-surface-container-high, #ece6f0));overflow:hidden;aspect-ratio:16 / 9}.prx-rich-card-media[data-kind=icon],.prx-rich-card-media[data-kind=avatar]{aspect-ratio:auto;min-height:64px;padding:12px}.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar]{min-height:48px;padding:8px}.prx-rich-card-media[data-placement=leading],.prx-rich-card-media[data-placement=trailing]{aspect-ratio:auto;min-height:100%}.prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card-media[data-kind=avatar][data-placement=trailing]{align-self:start;min-height:64px}.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card[data-size=sm] .prx-rich-card-media[data-kind=avatar][data-placement=trailing],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon][data-placement=leading],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=icon][data-placement=trailing],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar][data-placement=leading],.prx-rich-card[data-density=compact] .prx-rich-card-media[data-kind=avatar][data-placement=trailing]{min-height:48px}.prx-rich-card-media--background{position:absolute;inset:0;z-index:0;border-radius:inherit;opacity:.18}.prx-rich-card-media--background~*{position:relative;z-index:1}.prx-rich-card-media__asset{width:100%;height:100%;object-fit:cover}.prx-rich-card-media__icon{font-size:40px;color:var(--prx-rich-card-tone-color)}.prx-rich-card-media__avatar{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--prx-rich-card-tone-color) 22%,var(--md-sys-color-primary-container, #e8def8));color:var(--prx-rich-card-tone-on-bg);font-weight:700}.prx-rich-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}.prx-rich-card-header__content{min-width:0}.prx-rich-card-header__action{flex:0 0 auto}.prx-rich-card-heading{display:grid;gap:4px;min-width:0}.prx-rich-card-title{font-weight:600}.prx-rich-card-subtitle,.prx-rich-metric-caption{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-metric{display:grid;gap:4px;min-width:0}.prx-rich-metric--with-icon{grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:start}.prx-rich-metric-icon{color:var(--md-sys-color-primary, #6750a4);font-size:20px;line-height:1.2;margin-top:2px}.prx-rich-metric-content{display:grid;gap:4px;min-width:0}.prx-rich-metric-value{font-size:20px;font-weight:700}.prx-rich-progress{display:flex;flex-direction:column;gap:4px}.prx-rich-progress-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.prx-rich-progress-label,.prx-rich-progress-percent{min-width:0;color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px;font-weight:600}.prx-rich-progress-percent{flex:0 0 auto;color:var(--md-sys-color-on-surface, #1d1b20)}.prx-rich-progress-bar{width:100%}.prx-rich-action-button,.prx-rich-card-actions,.prx-rich-callout__actions,.prx-rich-empty-state__actions,.prx-rich-record-summary__actions,.prx-rich-disclosure__actions,.prx-rich-accordion__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.prx-rich-action-button{appearance:none;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:999px;background:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-on-surface, #1d1b20);padding:8px 12px;cursor:pointer}.prx-rich-action-button:disabled{opacity:.56;cursor:default}.prx-rich-action-button--raised,.prx-rich-action-button--primary{background:var(--md-sys-color-primary, #6750a4);color:var(--md-sys-color-on-primary, #fff)}.prx-rich-callout,.prx-rich-empty-state,.prx-rich-record-summary,.prx-rich-decision-package,.prx-rich-disclosure,.prx-rich-accordion{border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:16px;padding:16px;background:var(--md-sys-color-surface, #fff)}.prx-rich-callout[data-tone=warning]{background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,#ffb300 12%)}.prx-rich-callout[data-tone=danger]{background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,#d32f2f 12%)}.prx-rich-callout__title,.prx-rich-empty-state__title,.prx-rich-record-summary__title,.prx-rich-decision-package__title,.prx-rich-stat-group__title,.prx-rich-accordion__title,.prx-rich-key-value-list__title{font-weight:700;margin-bottom:4px}.prx-rich-decision-package{--prx-rich-decision-package-accent: var(--md-sys-color-primary, #6750a4);display:grid;grid-template-columns:minmax(0,1fr) minmax(136px,auto);gap:16px;border-color:color-mix(in srgb,var(--prx-rich-decision-package-accent) 42%,var(--md-sys-color-outline-variant, #cac4d0));background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 88%,var(--prx-rich-decision-package-accent) 12%)}.prx-rich-decision-package[data-status=approved],.prx-rich-decision-package[data-status=published]{--prx-rich-decision-package-accent: var(--praxis-success, #2e7d32)}.prx-rich-decision-package[data-status=draft],.prx-rich-decision-package[data-status=simulated],.prx-rich-decision-package[data-risk=medium],.prx-rich-decision-package[data-risk=high]{--prx-rich-decision-package-accent: var(--praxis-warning, #ed6c02)}.prx-rich-decision-package[data-status=reverted],.prx-rich-decision-package[data-risk=critical]{--prx-rich-decision-package-accent: var(--md-sys-color-error, #d32f2f)}.prx-rich-decision-package__main{display:grid;gap:8px;min-width:0}.prx-rich-decision-package__eyebrow,.prx-rich-decision-package__evidence,.prx-rich-decision-package__actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.prx-rich-decision-package__title{font-size:20px;line-height:1.15}.prx-rich-decision-package__subtitle,.prx-rich-decision-package__summary,.prx-rich-decision-package__meta,.prx-rich-decision-package__property dt,.prx-rich-decision-package__evidence-item small{color:var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-decision-package__properties{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:0}.prx-rich-decision-package__property{min-width:0}.prx-rich-decision-package__property dt,.prx-rich-decision-package__property dd{margin:0;overflow-wrap:anywhere}.prx-rich-decision-package__property dd{font-weight:700}.prx-rich-decision-package__evidence-item{display:inline-flex;flex-direction:column;gap:1px;border:1px solid color-mix(in srgb,var(--prx-rich-decision-package-accent) 24%,var(--md-sys-color-outline-variant, #cac4d0));border-radius:12px;padding:6px 8px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 76%,transparent);font-size:12px}.prx-rich-decision-package__aside{display:grid;align-content:start;justify-items:end;gap:10px;min-width:0}.prx-rich-decision-package__confidence{display:grid;justify-items:center;min-width:96px;border-radius:16px;padding:12px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 72%,transparent)}.prx-rich-decision-package__confidence span{font-size:28px;font-weight:800;line-height:1}.prx-rich-decision-package__confidence small{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:11px;font-weight:700;text-transform:uppercase}@media(max-width:640px){.prx-rich-decision-package{grid-template-columns:minmax(0,1fr)}.prx-rich-decision-package__aside{justify-items:start}}.prx-rich-empty-state{align-items:center;text-align:center}.prx-rich-key-value-list__items,.prx-rich-stat-group__items,.prx-rich-record-summary__fields{display:grid;gap:8px;margin:0}.prx-rich-stat-group[data-layout=inline] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}.prx-rich-stat-group[data-layout=grid] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr))}.prx-rich-stat-group__item{--prx-rich-stat-tone-color: var(--md-sys-color-outline, #79747e);--prx-rich-stat-tone-bg: var(--md-sys-color-surface, #fff);--prx-rich-stat-tone-border: var(--md-sys-color-outline-variant, #cac4d0);display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:2px;align-items:start;min-width:0;padding:12px;border:1px solid var(--prx-rich-stat-tone-border);border-radius:12px;background:var(--prx-rich-stat-tone-bg)}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__items{gap:6px}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group[data-layout=inline] .prx-rich-stat-group__items,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group[data-layout=grid] .prx-rich-stat-group__items{grid-template-columns:repeat(auto-fit,minmax(min(148px,100%),1fr))}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__item{column-gap:8px;padding:8px 10px;border-radius:var(--pdx-page-card-radius, 10px);background:color-mix(in srgb,var(--prx-rich-stat-tone-bg) 78%,transparent)}.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__icon,.prx-rich-content-root.prx-rich-content-root--widget-card .prx-rich-stat-group__value{font-size:20px}.prx-rich-stat-group__item[data-tone=info]{--prx-rich-stat-tone-color: var(--praxis-info, #0b5cad);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-stat-tone-color) 12%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 34%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=success]{--prx-rich-stat-tone-color: var(--praxis-success, #2e7d32);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 88%, var(--prx-rich-stat-tone-color) 12%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 38%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=warning]{--prx-rich-stat-tone-color: var(--praxis-warning, #b26a00);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 86%, var(--prx-rich-stat-tone-color) 14%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 46%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item[data-tone=danger]{--prx-rich-stat-tone-color: var(--md-sys-color-error, #d32f2f);--prx-rich-stat-tone-bg: color-mix(in srgb, var(--md-sys-color-surface, #fff) 84%, var(--prx-rich-stat-tone-color) 16%);--prx-rich-stat-tone-border: color-mix(in srgb, var(--prx-rich-stat-tone-color) 54%, var(--md-sys-color-outline-variant, #cac4d0))}.prx-rich-stat-group__item-header{display:flex;gap:8px;align-items:center;min-width:0}.prx-rich-stat-group__item-content{display:grid;gap:4px;min-width:0}.prx-rich-stat-group__icon{color:var(--prx-rich-stat-tone-color);font-size:24px;line-height:1;margin-top:1px}.prx-rich-stat-group__item:not(.prx-rich-stat-group__item--with-icon){grid-template-columns:minmax(0,1fr)}.prx-rich-stat-group__label,.prx-rich-stat-group__subtitle,.prx-rich-stat-group__caption{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-stat-group__value{color:var(--md-sys-color-on-surface, #1d1b20);font-size:24px;font-weight:700;line-height:1.2}.prx-rich-tabs{display:flex;flex-direction:column;gap:12px;min-width:0}.prx-rich-tabs__title,.prx-rich-tabs__tab--active{font-weight:700}.prx-rich-tabs__subtitle{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px;margin-top:-8px}.prx-rich-tabs__tablist{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--md-sys-color-outline-variant, #cac4d0);padding-bottom:8px}.prx-rich-tabs[data-appearance=pills] .prx-rich-tabs__tablist{border-bottom:0;padding-bottom:0}.prx-rich-tabs__tab{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:8px 12px;border:0;border-radius:999px;background:transparent;color:var(--md-sys-color-on-surface, #1d1b20);cursor:pointer}.prx-rich-tabs[data-appearance=underline] .prx-rich-tabs__tab{border-radius:0;border-bottom:2px solid transparent;padding-inline:0;padding-top:0;padding-bottom:8px}.prx-rich-tabs__tab--active{color:var(--md-sys-color-primary, #6750a4)}.prx-rich-tabs[data-appearance=underline] .prx-rich-tabs__tab--active{border-bottom-color:var(--md-sys-color-primary, #6750a4)}.prx-rich-tabs[data-appearance=pills] .prx-rich-tabs__tab--active{background:color-mix(in srgb,var(--md-sys-color-primary, #6750a4) 14%,#fff)}.prx-rich-tabs__tab:disabled{cursor:not-allowed;opacity:.55}.prx-rich-tabs__panel{display:block;min-width:0}.prx-rich-key-value-list__item,.prx-rich-record-summary__field{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr);gap:12px;margin:0}.prx-rich-key-value-list[data-layout=stacked] .prx-rich-key-value-list__item{grid-template-columns:minmax(0,1fr);gap:4px}.prx-rich-key-value-list__item dt,.prx-rich-record-summary__field dt{color:var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-key-value-list__item dd,.prx-rich-record-summary__field dd{margin:0;display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}.prx-rich-related-record{display:grid;gap:14px;min-width:0;padding:16px;border:1px solid var(--md-sys-color-outline-variant, #cac4d0);border-radius:12px;background:color-mix(in srgb,var(--md-sys-color-surface, #fff) 94%,transparent)}.prx-rich-related-record__copy{display:grid;gap:10px;min-width:0}.prx-rich-related-record__relation{color:var(--md-sys-color-primary, #6750a4);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0}.prx-rich-related-record__title-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;min-width:0}.prx-rich-related-record__title-row:not(.prx-rich-related-record__title-row--with-icon){grid-template-columns:minmax(0,1fr)}.prx-rich-related-record__icon{color:var(--md-sys-color-primary, #6750a4);font-size:24px;line-height:1}.prx-rich-related-record__title{font-size:18px;font-weight:700;line-height:1.25;min-width:0}.prx-rich-related-record__subtitle,.prx-rich-related-record__meta,.prx-rich-related-record__hint{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px;line-height:1.45}.prx-rich-related-record__fields{display:grid;gap:8px;margin:0;padding:0}.prx-rich-related-record__field{display:grid;grid-template-columns:minmax(0,140px) minmax(0,1fr);gap:8px 12px;align-items:start;min-width:0;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant, #cac4d0) 52%,transparent)}.prx-rich-related-record__field dt{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px}.prx-rich-related-record__field dd{margin:0;font-weight:600;min-width:0}.prx-rich-related-record__hint{grid-column:2}.prx-rich-related-record__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.prx-rich-disclosure__summary,.prx-rich-accordion__summary{cursor:pointer;display:flex;gap:8px;align-items:center;list-style:none}.prx-rich-disclosure__content,.prx-rich-accordion__content{margin-top:12px}.prx-rich-media-block{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-width:0}.prx-rich-media-block__avatar,.prx-rich-media-block__body,.prx-rich-media-block__trailing{min-width:0}.prx-rich-media-block__body{display:flex;flex-direction:column;gap:6px}.prx-rich-media-block__title{font-weight:700}.prx-rich-media-block__subtitle{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:13px}.prx-rich-media-block__meta{color:var(--md-sys-color-on-surface-variant, #49454f);font-size:12px}.prx-rich-media-block__trailing{display:flex;align-items:center;justify-content:flex-end}.prx-rich-timeline{--prx-rich-timeline-marker-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-primary, #fff);--prx-rich-timeline-connector-color: var(--md-sys-color-outline-variant, #cac4d0);--prx-rich-timeline-item-gap: 16px;--prx-rich-timeline-title-color: currentColor;--prx-rich-timeline-title-font-size: inherit;--prx-rich-timeline-title-font-weight: 700;--prx-rich-timeline-item-title-color: currentColor;--prx-rich-timeline-item-title-font-size: inherit;--prx-rich-timeline-item-title-font-weight: 600;--prx-rich-timeline-item-subtitle-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-subtitle-font-size: 12px;--prx-rich-timeline-item-meta-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-meta-font-size: 12px;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 400;--prx-rich-timeline-item-body-background: transparent;--prx-rich-timeline-item-body-border: 0;--prx-rich-timeline-item-body-border-radius: 6px;--prx-rich-timeline-item-body-padding: 12px;display:flex;flex-direction:column;gap:12px;min-width:0}.prx-rich-timeline__title{color:var(--prx-rich-timeline-title-color);font-size:var(--prx-rich-timeline-title-font-size);font-weight:var(--prx-rich-timeline-title-font-weight)}.prx-rich-timeline__items{display:flex;flex-direction:column;gap:0;list-style:none;margin:0;padding:0}.prx-rich-timeline__item{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);grid-template-areas:\". marker body\";column-gap:16px;align-items:flex-start;min-height:64px;min-width:0;position:relative}.prx-rich-timeline--vertical .prx-rich-timeline__item{padding-block-end:var(--prx-rich-timeline-item-gap)}.prx-rich-timeline--vertical .prx-rich-timeline__item:last-child{padding-block-end:0}.prx-rich-timeline--marker-color-primary,.prx-rich-timeline__item--marker-color-primary{--prx-rich-timeline-marker-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-primary, #fff)}.prx-rich-timeline--marker-color-secondary,.prx-rich-timeline__item--marker-color-secondary{--prx-rich-timeline-marker-color: var(--md-sys-color-secondary, #625b71);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-secondary, #fff)}.prx-rich-timeline--marker-color-tertiary,.prx-rich-timeline__item--marker-color-tertiary{--prx-rich-timeline-marker-color: var(--md-sys-color-tertiary, #7d5260);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-tertiary, #fff)}.prx-rich-timeline--marker-color-success,.prx-rich-timeline__item--marker-color-success{--prx-rich-timeline-marker-color: var(--praxis-success, #146c43);--prx-rich-timeline-on-marker-color: var(--praxis-on-success, #fff)}.prx-rich-timeline--marker-color-warning,.prx-rich-timeline__item--marker-color-warning{--prx-rich-timeline-marker-color: var(--praxis-warning, #b26a00);--prx-rich-timeline-on-marker-color: var(--praxis-on-warning, #1d1b20)}.prx-rich-timeline--marker-color-error,.prx-rich-timeline__item--marker-color-error{--prx-rich-timeline-marker-color: var(--md-sys-color-error, #ba1a1a);--prx-rich-timeline-on-marker-color: var(--md-sys-color-on-error, #fff)}.prx-rich-timeline--marker-color-info,.prx-rich-timeline__item--marker-color-info{--prx-rich-timeline-marker-color: var(--praxis-info, #0b5cad);--prx-rich-timeline-on-marker-color: var(--praxis-on-info, #fff)}.prx-rich-timeline--marker-color-neutral,.prx-rich-timeline__item--marker-color-neutral{--prx-rich-timeline-marker-color: var(--md-sys-color-outline, #79747e);--prx-rich-timeline-on-marker-color: var(--md-sys-color-surface, #fffbfe)}.prx-rich-timeline--connector-color-primary,.prx-rich-timeline__item--connector-color-primary{--prx-rich-timeline-connector-color: var(--md-sys-color-primary, #6750a4)}.prx-rich-timeline--connector-color-secondary,.prx-rich-timeline__item--connector-color-secondary{--prx-rich-timeline-connector-color: var(--md-sys-color-secondary, #625b71)}.prx-rich-timeline--connector-color-tertiary,.prx-rich-timeline__item--connector-color-tertiary{--prx-rich-timeline-connector-color: var(--md-sys-color-tertiary, #7d5260)}.prx-rich-timeline--connector-color-success,.prx-rich-timeline__item--connector-color-success{--prx-rich-timeline-connector-color: var(--praxis-success, #146c43)}.prx-rich-timeline--connector-color-warning,.prx-rich-timeline__item--connector-color-warning{--prx-rich-timeline-connector-color: var(--praxis-warning, #b26a00)}.prx-rich-timeline--connector-color-error,.prx-rich-timeline__item--connector-color-error{--prx-rich-timeline-connector-color: var(--md-sys-color-error, #ba1a1a)}.prx-rich-timeline--connector-color-info,.prx-rich-timeline__item--connector-color-info{--prx-rich-timeline-connector-color: var(--praxis-info, #0b5cad)}.prx-rich-timeline--connector-color-neutral,.prx-rich-timeline__item--connector-color-neutral{--prx-rich-timeline-connector-color: var(--md-sys-color-outline, #79747e)}.prx-rich-timeline__item--has-opposite{grid-template-areas:\"opposite marker body\"}.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd){grid-template-areas:\"body marker opposite\"}.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd){grid-template-areas:\"body marker .\"}.prx-rich-timeline__item-opposite{grid-area:opposite;color:var(--prx-rich-timeline-opposite-color);font-size:var(--prx-rich-timeline-opposite-font-size);font-weight:var(--prx-rich-timeline-opposite-font-weight);line-height:1.35;min-width:0;overflow-wrap:anywhere;padding-top:1px;text-align:end}.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite{text-align:start}.prx-rich-timeline__item-body{background:var(--prx-rich-timeline-item-body-background);border:var(--prx-rich-timeline-item-body-border);border-radius:var(--prx-rich-timeline-item-body-border-radius);padding:var(--prx-rich-timeline-item-body-padding)}.prx-rich-timeline__item-subtitle{color:var(--prx-rich-timeline-item-subtitle-color);font-size:var(--prx-rich-timeline-item-subtitle-font-size)}.prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 22px;display:inline-flex;align-items:flex-start;align-self:stretch;grid-area:marker;justify-content:center;justify-self:center;min-height:64px;position:relative;width:max(32px,var(--prx-rich-timeline-marker-size))}.prx-rich-timeline--marker-dot .prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 10px}.prx-rich-timeline--marker-icon .prx-rich-timeline__item-marker{--prx-rich-timeline-marker-size: 24px}.prx-rich-timeline__item-marker>*{position:relative;z-index:1}.prx-rich-timeline__item-marker:after{border-left:1px solid var(--prx-rich-timeline-connector-color);bottom:0;content:\"\";left:50%;position:absolute;top:var(--prx-rich-timeline-marker-size);transform:translate(-50%)}.prx-rich-timeline__item:last-child .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:dashed}.prx-rich-timeline--connector-none .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline--horizontal .prx-rich-timeline__items{flex-direction:row;gap:0;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity}.prx-rich-timeline__items:focus-visible{border-radius:4px;outline:2px solid var(--md-sys-color-primary, #6750a4);outline-offset:2px}.prx-rich-timeline--horizontal .prx-rich-timeline__item,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item{grid-template-columns:minmax(176px,1fr);grid-template-areas:\"opposite\" \"marker\" \"body\";grid-template-rows:auto 32px 1fr;min-height:0;min-width:min(240px,80vw);padding-inline-end:calc(var(--prx-rich-timeline-item-gap) * .75);scroll-snap-align:start}.prx-rich-timeline--horizontal .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite){grid-template-areas:\"marker\" \"body\";grid-template-rows:32px 1fr}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker{align-items:center;align-self:center;justify-content:flex-start;justify-self:stretch;min-height:32px;width:100%}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker:after{border-left:0;border-top:1px solid var(--prx-rich-timeline-connector-color);bottom:auto;left:var(--prx-rich-timeline-marker-size);right:0;top:50%;transform:translateY(-50%)}.prx-rich-timeline--horizontal.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:dashed}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:dashed}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:solid}.prx-rich-timeline--horizontal .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite,.prx-rich-timeline--horizontal .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-start;text-align:start}.prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{content:\"\";border-left-style:dashed}.prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{content:\"\";border-left-style:solid}.prx-rich-timeline__item--connector-none .prx-rich-timeline__item-marker:after{content:none}.prx-rich-timeline__item-icon{align-items:center;border:2px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--prx-rich-timeline-marker-color);display:inline-flex;font-size:calc(var(--prx-rich-timeline-marker-size) - 8px);height:var(--prx-rich-timeline-marker-size);justify-content:center;line-height:1;width:var(--prx-rich-timeline-marker-size)}.prx-rich-timeline__item-dot{width:10px;height:10px;border-radius:50%;background:var(--prx-rich-timeline-marker-color);border:2px solid transparent;box-sizing:border-box;display:inline-block}.prx-rich-timeline__item-number{align-items:center;background:var(--prx-rich-timeline-marker-color);border:2px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--prx-rich-timeline-on-marker-color);display:inline-flex;font-size:11px;font-weight:700;height:var(--prx-rich-timeline-marker-size);justify-content:center;line-height:1;min-width:var(--prx-rich-timeline-marker-size);padding:0 5px}.prx-rich-timeline--marker-style-outlined .prx-rich-timeline__item-marker>*,.prx-rich-timeline__item--marker-style-outlined .prx-rich-timeline__item-marker>*{background:transparent;border-color:var(--prx-rich-timeline-marker-color);color:var(--prx-rich-timeline-marker-color)}.prx-rich-timeline--marker-style-outlined .prx-rich-timeline__item-dot,.prx-rich-timeline__item--marker-style-outlined .prx-rich-timeline__item-dot{background:var(--md-sys-color-surface, #fffbfe)}.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-dot,.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-number,.prx-rich-timeline--marker-style-filled .prx-rich-timeline__item-icon,.prx-rich-timeline__item--marker-style-filled .prx-rich-timeline__item-icon{background:var(--prx-rich-timeline-marker-color);border-color:transparent;color:var(--prx-rich-timeline-on-marker-color)}.prx-rich-timeline__item-body{display:flex;flex-direction:column;gap:4px;grid-area:body;min-width:0}.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-end;text-align:end}.prx-rich-timeline__item-title{color:var(--prx-rich-timeline-item-title-color);font-size:var(--prx-rich-timeline-item-title-font-size);font-weight:var(--prx-rich-timeline-item-title-font-weight)}.prx-rich-timeline--emphasis-subtle{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface-variant, #49454f);--prx-rich-timeline-item-title-font-weight: 500;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface-variant, #49454f)}.prx-rich-timeline--density-compact{--prx-rich-timeline-item-gap: 10px;--prx-rich-timeline-item-body-padding: 10px}.prx-rich-timeline--density-spacious{--prx-rich-timeline-item-gap: 24px;--prx-rich-timeline-item-body-padding: 14px}.prx-rich-timeline--emphasis-strong{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-title-font-weight: 700;--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-item-title-font-weight: 700;--prx-rich-timeline-opposite-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-opposite-font-weight: 700}.prx-rich-timeline--emphasis-hero{--prx-rich-timeline-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-title-font-size: 20px;--prx-rich-timeline-title-font-weight: 800;--prx-rich-timeline-item-title-color: var(--md-sys-color-on-surface, #1d1b20);--prx-rich-timeline-item-title-font-size: 17px;--prx-rich-timeline-item-title-font-weight: 800;--prx-rich-timeline-opposite-color: var(--md-sys-color-primary, #6750a4);--prx-rich-timeline-opposite-font-size: 14px;--prx-rich-timeline-opposite-font-weight: 800;--prx-rich-timeline-item-body-background: color-mix( in srgb, var(--md-sys-color-primary, #6750a4) 8%, transparent );--prx-rich-timeline-item-body-border-radius: 8px;--prx-rich-timeline-item-body-padding: 14px}.prx-rich-timeline--text-prominent{--prx-rich-timeline-opposite-font-size: 14px;--prx-rich-timeline-opposite-font-weight: 700;--prx-rich-timeline-item-title-font-size: 15px;--prx-rich-timeline-item-title-font-weight: 700}.prx-rich-timeline--text-eyebrow{--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 800}.prx-rich-timeline--text-eyebrow .prx-rich-timeline__item-opposite{letter-spacing:0;text-transform:uppercase}.prx-rich-timeline--text-label{--prx-rich-timeline-opposite-font-size: 12px;--prx-rich-timeline-opposite-font-weight: 700;--prx-rich-timeline-item-title-font-size: 14px;--prx-rich-timeline-item-title-font-weight: 600}.prx-rich-timeline__item-subtitle,.prx-rich-timeline__item-meta,.prx-rich-timeline__empty{color:var(--prx-rich-timeline-item-subtitle-color);font-size:var(--prx-rich-timeline-item-subtitle-font-size)}.prx-rich-timeline__item-meta{color:var(--prx-rich-timeline-item-meta-color);font-size:var(--prx-rich-timeline-item-meta-font-size)}.prx-rich-timeline__item-badge{display:inline-flex;align-items:flex-start;margin-top:2px}@media(max-width:640px){.prx-rich-timeline--horizontal .prx-rich-timeline__items{flex-direction:column;overflow-x:visible;padding-bottom:0;scroll-snap-type:none}.prx-rich-timeline--horizontal .prx-rich-timeline__item,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item{min-width:0;padding-inline-end:0;scroll-snap-align:none;width:100%}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker{align-items:flex-start;align-self:stretch;justify-content:center;justify-self:center;min-height:64px;width:32px}.prx-rich-timeline--horizontal .prx-rich-timeline__item-marker:after{border-left:1px solid var(--prx-rich-timeline-connector-color);border-top:0;bottom:0;left:50%;right:auto;top:var(--prx-rich-timeline-marker-size);transform:translate(-50%)}.prx-rich-timeline--horizontal.prx-rich-timeline--connector-dashed .prx-rich-timeline__item-marker:after,.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-dashed .prx-rich-timeline__item-marker:after{border-left-style:dashed;border-top-style:solid}.prx-rich-timeline--horizontal .prx-rich-timeline__item--connector-solid .prx-rich-timeline__item-marker:after{border-left-style:solid;border-top-style:solid}.prx-rich-timeline__item--has-opposite,.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd),.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd){grid-template-columns:32px minmax(0,1fr);grid-template-areas:\"marker opposite\" \"marker body\";grid-template-rows:auto 1fr;column-gap:12px}.prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--horizontal .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--horizontal.prx-rich-timeline--left .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite),.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd),.prx-rich-timeline--horizontal.prx-rich-timeline--alternate .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite).prx-rich-timeline__item--odd,.prx-rich-timeline--horizontal.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--has-opposite):not(.prx-rich-timeline__item--odd){grid-template-columns:32px minmax(0,1fr);grid-template-areas:\"marker body\";grid-template-rows:1fr;column-gap:12px}.prx-rich-timeline__item-opposite,.prx-rich-timeline--left .prx-rich-timeline__item--has-opposite .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate .prx-rich-timeline__item--has-opposite.prx-rich-timeline__item--odd .prx-rich-timeline__item-opposite,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item--has-opposite:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-opposite,.prx-rich-timeline--left .prx-rich-timeline__item-body,.prx-rich-timeline--alternate .prx-rich-timeline__item--odd .prx-rich-timeline__item-body,.prx-rich-timeline--alternate-reverse .prx-rich-timeline__item:not(.prx-rich-timeline__item--odd) .prx-rich-timeline__item-body{align-items:flex-start;text-align:start}}\n"] }]
|
|
4352
4459
|
}], propDecorators: { document: [{ type: i0.Input, args: [{ isSignal: true, alias: "document", required: false }] }], nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], context: [{ type: i0.Input, args: [{ isSignal: true, alias: "context", required: false }] }], hostCapabilities: [{ type: i0.Input, args: [{ isSignal: true, alias: "hostCapabilities", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], rootClassName: [{
|
|
4353
4460
|
type: Input
|
|
4354
4461
|
}] } });
|
|
@@ -4390,6 +4497,14 @@ const SUPPORTED_NODE_TYPES = new Set([
|
|
|
4390
4497
|
'timeline',
|
|
4391
4498
|
'preset',
|
|
4392
4499
|
]);
|
|
4500
|
+
const SUPPORTED_CONTEXT_SCOPES = new Set([
|
|
4501
|
+
'row',
|
|
4502
|
+
'computed',
|
|
4503
|
+
'detail',
|
|
4504
|
+
'meta',
|
|
4505
|
+
'user',
|
|
4506
|
+
'tenant',
|
|
4507
|
+
]);
|
|
4393
4508
|
const STYLE_NAME_PATTERN = /^--[a-zA-Z0-9-_]+$|^[a-z][a-zA-Z0-9-]*$/;
|
|
4394
4509
|
const CLASS_NAME_PATTERN = /^[a-zA-Z_][a-zA-Z0-9_-]*(\s+[a-zA-Z_][a-zA-Z0-9_-]*)*$/;
|
|
4395
4510
|
const UNSAFE_STYLE_VALUE_PATTERN = /(?:javascript\s*:|vbscript\s*:|data\s*:|expression\s*\(|@import|-moz-binding|behavior\s*:)/i;
|
|
@@ -4406,6 +4521,7 @@ function validateRichContentDocument(value) {
|
|
|
4406
4521
|
if (value['version'] !== SUPPORTED_DOCUMENT_VERSION) {
|
|
4407
4522
|
addIssue(issues, '$.version', 'editor.validation.documentVersion', 'The document version must be "1.0.0".');
|
|
4408
4523
|
}
|
|
4524
|
+
validateContextConfig(value['context'], '$.context', issues);
|
|
4409
4525
|
if (!Array.isArray(value['nodes'])) {
|
|
4410
4526
|
addIssue(issues, '$.nodes', 'editor.validation.documentNodes', 'The document must include a nodes array.');
|
|
4411
4527
|
}
|
|
@@ -4783,6 +4899,7 @@ function validateBaseNode(node, path, issues) {
|
|
|
4783
4899
|
validateOptionalClassName(node, 'className', path, issues);
|
|
4784
4900
|
validateOptionalStringArray(node, 'requiresCapabilities', path, issues);
|
|
4785
4901
|
validateEnum(node, 'capabilityMode', ['all', 'any'], path, issues, false);
|
|
4902
|
+
validateContextConfig(node['bindings'], `${path}.bindings`, issues);
|
|
4786
4903
|
validateStyleObject(node['style'], `${path}.style`, issues);
|
|
4787
4904
|
validateRuleExpression(node['visibleWhen'], `${path}.visibleWhen`, issues);
|
|
4788
4905
|
validateRuleExpression(node['disabledWhen'], `${path}.disabledWhen`, issues);
|
|
@@ -4790,6 +4907,39 @@ function validateBaseNode(node, path, issues) {
|
|
|
4790
4907
|
validateClassWhen(node['classWhen'], `${path}.classWhen`, issues);
|
|
4791
4908
|
validateStyleWhen(node['styleWhen'], `${path}.styleWhen`, issues);
|
|
4792
4909
|
}
|
|
4910
|
+
function validateContextConfig(value, path, issues) {
|
|
4911
|
+
if (value === undefined)
|
|
4912
|
+
return;
|
|
4913
|
+
if (!isRecord(value)) {
|
|
4914
|
+
addIssue(issues, path, 'editor.validation.objectField', 'Context configuration must be an object.');
|
|
4915
|
+
return;
|
|
4916
|
+
}
|
|
4917
|
+
if (value['scopes'] !== undefined) {
|
|
4918
|
+
if (!Array.isArray(value['scopes'])) {
|
|
4919
|
+
addIssue(issues, `${path}.scopes`, 'editor.validation.contextScopes', 'Context scopes must be an array of supported scope names.');
|
|
4920
|
+
}
|
|
4921
|
+
else {
|
|
4922
|
+
value['scopes'].forEach((scope, index) => {
|
|
4923
|
+
if (typeof scope !== 'string' ||
|
|
4924
|
+
!SUPPORTED_CONTEXT_SCOPES.has(scope)) {
|
|
4925
|
+
addIssue(issues, `${path}.scopes[${index}]`, 'editor.validation.contextScopes', 'Context scopes must use supported scope names.');
|
|
4926
|
+
}
|
|
4927
|
+
});
|
|
4928
|
+
}
|
|
4929
|
+
}
|
|
4930
|
+
if (value['aliases'] !== undefined) {
|
|
4931
|
+
if (!isRecord(value['aliases'])) {
|
|
4932
|
+
addIssue(issues, `${path}.aliases`, 'editor.validation.contextAliases', 'Context aliases must be an object with string values.');
|
|
4933
|
+
}
|
|
4934
|
+
else {
|
|
4935
|
+
Object.entries(value['aliases']).forEach(([alias, target]) => {
|
|
4936
|
+
if (typeof target !== 'string') {
|
|
4937
|
+
addIssue(issues, `${path}.aliases.${alias}`, 'editor.validation.contextAliases', 'Context aliases must be an object with string values.');
|
|
4938
|
+
}
|
|
4939
|
+
});
|
|
4940
|
+
}
|
|
4941
|
+
}
|
|
4942
|
+
}
|
|
4793
4943
|
function validateActionRef(value, path, issues) {
|
|
4794
4944
|
if (!isRecord(value)) {
|
|
4795
4945
|
addIssue(issues, path, 'editor.validation.objectField', 'Action configuration must be an object.');
|
|
@@ -5841,6 +5991,21 @@ function stringifyScalar(value) {
|
|
|
5841
5991
|
return '';
|
|
5842
5992
|
}
|
|
5843
5993
|
|
|
5994
|
+
const ADVANCED_JSON_ONLY_NODE_FIELDS = [
|
|
5995
|
+
'bindings',
|
|
5996
|
+
'disabledWhen',
|
|
5997
|
+
'loadWhen',
|
|
5998
|
+
'classWhen',
|
|
5999
|
+
'styleWhen',
|
|
6000
|
+
];
|
|
6001
|
+
const RICH_BLOCK_CONTEXT_SCOPES = [
|
|
6002
|
+
'row',
|
|
6003
|
+
'computed',
|
|
6004
|
+
'detail',
|
|
6005
|
+
'meta',
|
|
6006
|
+
'user',
|
|
6007
|
+
'tenant',
|
|
6008
|
+
];
|
|
5844
6009
|
const EMPTY_DOCUMENT = {
|
|
5845
6010
|
kind: 'praxis.rich-content',
|
|
5846
6011
|
version: '1.0.0',
|
|
@@ -5860,6 +6025,7 @@ class PraxisRichContentConfigEditor {
|
|
|
5860
6025
|
editableNodeTypes = EDITABLE_TOP_LEVEL_NODE_TYPES;
|
|
5861
6026
|
presenterNodeTypes = EDITABLE_PRESENTER_NODE_TYPES;
|
|
5862
6027
|
cardContentNodeTypes = EDITABLE_CARD_CONTENT_NODE_TYPES;
|
|
6028
|
+
advancedJsonOnlyNodeFields = ADVANCED_JSON_ONLY_NODE_FIELDS;
|
|
5863
6029
|
presetOptions = this.presetRegistry.list();
|
|
5864
6030
|
documentJson = '';
|
|
5865
6031
|
layout = 'block';
|
|
@@ -5872,8 +6038,12 @@ class PraxisRichContentConfigEditor {
|
|
|
5872
6038
|
nodeCount = 0;
|
|
5873
6039
|
nodeTypeSummary = '';
|
|
5874
6040
|
selectedNodeIndex = 0;
|
|
6041
|
+
activeEditorPanel = 'guided';
|
|
6042
|
+
advancedRulesOpen = false;
|
|
6043
|
+
advancedJsonFieldErrors = {};
|
|
5875
6044
|
initialInputs = this.normalizeInputs(this.inputs);
|
|
5876
6045
|
pendingRemoval = null;
|
|
6046
|
+
advancedJsonFieldDrafts = {};
|
|
5877
6047
|
ngOnChanges(changes) {
|
|
5878
6048
|
if (changes['inputs']) {
|
|
5879
6049
|
this.load(this.normalizeInputs(this.inputs), false);
|
|
@@ -5886,7 +6056,7 @@ class PraxisRichContentConfigEditor {
|
|
|
5886
6056
|
}
|
|
5887
6057
|
getSettingsValue() {
|
|
5888
6058
|
const document = this.parseDocument();
|
|
5889
|
-
if (!document)
|
|
6059
|
+
if (!document || this.hasAdvancedJsonFieldErrors())
|
|
5890
6060
|
return null;
|
|
5891
6061
|
return {
|
|
5892
6062
|
inputs: {
|
|
@@ -5913,6 +6083,7 @@ class PraxisRichContentConfigEditor {
|
|
|
5913
6083
|
this.isDirty$.next(!this.matchesInitialState());
|
|
5914
6084
|
}
|
|
5915
6085
|
onDocumentJsonChange() {
|
|
6086
|
+
this.clearAdvancedJsonFieldState();
|
|
5916
6087
|
this.parseDocument();
|
|
5917
6088
|
this.markDirty();
|
|
5918
6089
|
}
|
|
@@ -5926,6 +6097,19 @@ class PraxisRichContentConfigEditor {
|
|
|
5926
6097
|
}
|
|
5927
6098
|
selectTopLevelNode(index) {
|
|
5928
6099
|
this.selectedNodeIndex = index;
|
|
6100
|
+
this.advancedRulesOpen = false;
|
|
6101
|
+
}
|
|
6102
|
+
selectEditorPanel(panel) {
|
|
6103
|
+
this.activeEditorPanel = panel;
|
|
6104
|
+
this.cdr.markForCheck();
|
|
6105
|
+
}
|
|
6106
|
+
openAdvancedRules() {
|
|
6107
|
+
this.advancedRulesOpen = true;
|
|
6108
|
+
this.cdr.markForCheck();
|
|
6109
|
+
}
|
|
6110
|
+
onAdvancedRulesToggle(event) {
|
|
6111
|
+
const target = event.target;
|
|
6112
|
+
this.advancedRulesOpen = target?.open === true;
|
|
5929
6113
|
}
|
|
5930
6114
|
addTopLevelNode() {
|
|
5931
6115
|
const document = this.ensureEditableDocument();
|
|
@@ -6734,6 +6918,203 @@ class PraxisRichContentConfigEditor {
|
|
|
6734
6918
|
setStyleEntry(node, this.getFirstStyleName(node), propertyValue);
|
|
6735
6919
|
this.syncStructuredDocumentChange();
|
|
6736
6920
|
}
|
|
6921
|
+
hasDocumentContext() {
|
|
6922
|
+
return (!!this.parsedDocument?.context ||
|
|
6923
|
+
!!this.getDocumentContextFieldError('scopes') ||
|
|
6924
|
+
!!this.getDocumentContextFieldError('aliases'));
|
|
6925
|
+
}
|
|
6926
|
+
getDocumentContextScopes() {
|
|
6927
|
+
const key = this.getDocumentContextFieldKey('scopes');
|
|
6928
|
+
if (Object.prototype.hasOwnProperty.call(this.advancedJsonFieldDrafts, key)) {
|
|
6929
|
+
return this.advancedJsonFieldDrafts[key] ?? '';
|
|
6930
|
+
}
|
|
6931
|
+
return this.parsedDocument?.context?.scopes?.join(', ') ?? '';
|
|
6932
|
+
}
|
|
6933
|
+
setDocumentContextScopes(value) {
|
|
6934
|
+
const key = this.getDocumentContextFieldKey('scopes');
|
|
6935
|
+
this.advancedJsonFieldDrafts[key] = value;
|
|
6936
|
+
const scopes = value
|
|
6937
|
+
.split(',')
|
|
6938
|
+
.map((item) => item.trim())
|
|
6939
|
+
.filter(Boolean);
|
|
6940
|
+
const invalidScopes = scopes.filter((scope) => !RICH_BLOCK_CONTEXT_SCOPES.includes(scope));
|
|
6941
|
+
if (invalidScopes.length) {
|
|
6942
|
+
this.setAdvancedJsonFieldInvalid(key, this.tx('editor.validation.contextScopes', 'Use supported context scopes only.'));
|
|
6943
|
+
return;
|
|
6944
|
+
}
|
|
6945
|
+
delete this.advancedJsonFieldDrafts[key];
|
|
6946
|
+
delete this.advancedJsonFieldErrors[key];
|
|
6947
|
+
this.updateDocumentContext((context) => {
|
|
6948
|
+
if (scopes.length) {
|
|
6949
|
+
context.scopes = scopes;
|
|
6950
|
+
}
|
|
6951
|
+
else {
|
|
6952
|
+
delete context.scopes;
|
|
6953
|
+
}
|
|
6954
|
+
});
|
|
6955
|
+
}
|
|
6956
|
+
getDocumentContextAliasesValue() {
|
|
6957
|
+
const key = this.getDocumentContextFieldKey('aliases');
|
|
6958
|
+
if (Object.prototype.hasOwnProperty.call(this.advancedJsonFieldDrafts, key)) {
|
|
6959
|
+
return this.advancedJsonFieldDrafts[key] ?? '';
|
|
6960
|
+
}
|
|
6961
|
+
const aliases = this.parsedDocument?.context?.aliases;
|
|
6962
|
+
return aliases ? this.stringify(aliases) : '';
|
|
6963
|
+
}
|
|
6964
|
+
setDocumentContextAliases(value) {
|
|
6965
|
+
const key = this.getDocumentContextFieldKey('aliases');
|
|
6966
|
+
const trimmed = value.trim();
|
|
6967
|
+
this.advancedJsonFieldDrafts[key] = value;
|
|
6968
|
+
if (!trimmed) {
|
|
6969
|
+
delete this.advancedJsonFieldDrafts[key];
|
|
6970
|
+
delete this.advancedJsonFieldErrors[key];
|
|
6971
|
+
this.updateDocumentContext((context) => {
|
|
6972
|
+
delete context.aliases;
|
|
6973
|
+
});
|
|
6974
|
+
return;
|
|
6975
|
+
}
|
|
6976
|
+
let aliases;
|
|
6977
|
+
try {
|
|
6978
|
+
aliases = JSON.parse(trimmed);
|
|
6979
|
+
}
|
|
6980
|
+
catch {
|
|
6981
|
+
this.setAdvancedJsonFieldInvalid(key, this.tx('editor.validation.invalidFieldJson', 'Enter valid JSON.'));
|
|
6982
|
+
return;
|
|
6983
|
+
}
|
|
6984
|
+
if (!isPlainRecord(aliases) ||
|
|
6985
|
+
Object.values(aliases).some((alias) => typeof alias !== 'string')) {
|
|
6986
|
+
this.setAdvancedJsonFieldInvalid(key, this.tx('editor.validation.contextAliases', 'Context aliases must be a JSON object with string values.'));
|
|
6987
|
+
return;
|
|
6988
|
+
}
|
|
6989
|
+
delete this.advancedJsonFieldDrafts[key];
|
|
6990
|
+
delete this.advancedJsonFieldErrors[key];
|
|
6991
|
+
this.updateDocumentContext((context) => {
|
|
6992
|
+
context.aliases = aliases;
|
|
6993
|
+
});
|
|
6994
|
+
}
|
|
6995
|
+
getDocumentContextFieldError(field) {
|
|
6996
|
+
return this.advancedJsonFieldErrors[this.getDocumentContextFieldKey(field)] ?? '';
|
|
6997
|
+
}
|
|
6998
|
+
getDocumentContextAliasesPlaceholder() {
|
|
6999
|
+
return '{\n "owner": "decision.owner",\n "risk": "decision.risk"\n}';
|
|
7000
|
+
}
|
|
7001
|
+
getAdvancedJsonOnlyFields(node) {
|
|
7002
|
+
const source = node;
|
|
7003
|
+
return ADVANCED_JSON_ONLY_NODE_FIELDS.filter((field) => source[field] !== undefined);
|
|
7004
|
+
}
|
|
7005
|
+
getAdvancedJsonFieldValue(index, node, field) {
|
|
7006
|
+
const key = this.getAdvancedJsonFieldKey(index, field);
|
|
7007
|
+
if (Object.prototype.hasOwnProperty.call(this.advancedJsonFieldDrafts, key)) {
|
|
7008
|
+
return this.advancedJsonFieldDrafts[key] ?? '';
|
|
7009
|
+
}
|
|
7010
|
+
const value = node[field];
|
|
7011
|
+
return value === undefined ? '' : this.stringify(value);
|
|
7012
|
+
}
|
|
7013
|
+
setAdvancedJsonField(index, field, value) {
|
|
7014
|
+
const key = this.getAdvancedJsonFieldKey(index, field);
|
|
7015
|
+
const trimmed = value.trim();
|
|
7016
|
+
this.advancedJsonFieldDrafts[key] = value;
|
|
7017
|
+
if (!trimmed) {
|
|
7018
|
+
const node = this.ensureEditableDocument().nodes[index];
|
|
7019
|
+
delete node[field];
|
|
7020
|
+
delete this.advancedJsonFieldDrafts[key];
|
|
7021
|
+
delete this.advancedJsonFieldErrors[key];
|
|
7022
|
+
this.syncStructuredDocumentChange();
|
|
7023
|
+
return;
|
|
7024
|
+
}
|
|
7025
|
+
let parsed;
|
|
7026
|
+
try {
|
|
7027
|
+
parsed = JSON.parse(trimmed);
|
|
7028
|
+
}
|
|
7029
|
+
catch {
|
|
7030
|
+
this.setAdvancedJsonFieldInvalid(key, this.tx('editor.validation.invalidFieldJson', 'Enter valid JSON.'));
|
|
7031
|
+
return;
|
|
7032
|
+
}
|
|
7033
|
+
if (!this.isAdvancedJsonFieldShapeValid(field, parsed)) {
|
|
7034
|
+
this.setAdvancedJsonFieldInvalid(key, this.getAdvancedJsonFieldShapeError(field));
|
|
7035
|
+
return;
|
|
7036
|
+
}
|
|
7037
|
+
const nextDocument = this.cloneValue(this.ensureEditableDocument());
|
|
7038
|
+
const node = nextDocument.nodes[index];
|
|
7039
|
+
node[field] = parsed;
|
|
7040
|
+
const nextJson = this.stringify(nextDocument);
|
|
7041
|
+
const validation = validateRichContentDocument(nextDocument);
|
|
7042
|
+
if (!validation.valid) {
|
|
7043
|
+
this.setAdvancedJsonFieldInvalid(key, this.tx('editor.validation.invalidCanonicalField', 'The JSON is valid but does not match the rich-content contract.'));
|
|
7044
|
+
return;
|
|
7045
|
+
}
|
|
7046
|
+
this.parsedDocument = nextDocument;
|
|
7047
|
+
this.documentJson = nextJson;
|
|
7048
|
+
delete this.advancedJsonFieldDrafts[key];
|
|
7049
|
+
delete this.advancedJsonFieldErrors[key];
|
|
7050
|
+
this.parseDocument();
|
|
7051
|
+
this.markDirty();
|
|
7052
|
+
}
|
|
7053
|
+
getAdvancedJsonFieldError(index, field) {
|
|
7054
|
+
return this.advancedJsonFieldErrors[this.getAdvancedJsonFieldKey(index, field)] ?? '';
|
|
7055
|
+
}
|
|
7056
|
+
getAdvancedJsonFieldPlaceholder(field) {
|
|
7057
|
+
switch (field) {
|
|
7058
|
+
case 'bindings':
|
|
7059
|
+
return '{\n "scopes": ["row"],\n "aliases": {\n "risk": "decision.risk"\n }\n}';
|
|
7060
|
+
case 'classWhen':
|
|
7061
|
+
return '[\n {\n "className": "is-active",\n "expr": { "var": "row.active" }\n }\n]';
|
|
7062
|
+
case 'styleWhen':
|
|
7063
|
+
return '[\n {\n "style": { "color": "var(--md-sys-color-primary)" },\n "expr": { "var": "row.active" }\n }\n]';
|
|
7064
|
+
default:
|
|
7065
|
+
return '{\n "var": "row.active"\n}';
|
|
7066
|
+
}
|
|
7067
|
+
}
|
|
7068
|
+
getAdvancedJsonFieldKey(index, field) {
|
|
7069
|
+
return `${index}:${field}`;
|
|
7070
|
+
}
|
|
7071
|
+
getDocumentContextFieldKey(field) {
|
|
7072
|
+
return `document:context:${field}`;
|
|
7073
|
+
}
|
|
7074
|
+
updateDocumentContext(update) {
|
|
7075
|
+
const document = this.ensureEditableDocument();
|
|
7076
|
+
const context = {
|
|
7077
|
+
...(document.context ?? {}),
|
|
7078
|
+
};
|
|
7079
|
+
update(context);
|
|
7080
|
+
if (context.scopes?.length || Object.keys(context.aliases ?? {}).length) {
|
|
7081
|
+
document.context = context;
|
|
7082
|
+
}
|
|
7083
|
+
else {
|
|
7084
|
+
delete document.context;
|
|
7085
|
+
}
|
|
7086
|
+
this.syncStructuredDocumentChange();
|
|
7087
|
+
}
|
|
7088
|
+
setAdvancedJsonFieldInvalid(key, message) {
|
|
7089
|
+
this.advancedJsonFieldErrors[key] = message;
|
|
7090
|
+
this.valid = false;
|
|
7091
|
+
this.errorMessage = message;
|
|
7092
|
+
this.isValid$.next(false);
|
|
7093
|
+
this.markDirty();
|
|
7094
|
+
this.cdr.markForCheck();
|
|
7095
|
+
}
|
|
7096
|
+
clearAdvancedJsonFieldState() {
|
|
7097
|
+
this.advancedJsonFieldDrafts = {};
|
|
7098
|
+
this.advancedJsonFieldErrors = {};
|
|
7099
|
+
}
|
|
7100
|
+
hasAdvancedJsonFieldErrors() {
|
|
7101
|
+
return Object.keys(this.advancedJsonFieldErrors).length > 0;
|
|
7102
|
+
}
|
|
7103
|
+
isAdvancedJsonFieldShapeValid(field, value) {
|
|
7104
|
+
if (field === 'classWhen' || field === 'styleWhen') {
|
|
7105
|
+
return Array.isArray(value);
|
|
7106
|
+
}
|
|
7107
|
+
if (field === 'bindings') {
|
|
7108
|
+
return isPlainRecord(value);
|
|
7109
|
+
}
|
|
7110
|
+
return value === null || isPlainRecord(value);
|
|
7111
|
+
}
|
|
7112
|
+
getAdvancedJsonFieldShapeError(field) {
|
|
7113
|
+
if (field === 'classWhen' || field === 'styleWhen') {
|
|
7114
|
+
return this.tx('editor.validation.advancedArrayField', 'This field must be a JSON array.');
|
|
7115
|
+
}
|
|
7116
|
+
return this.tx('editor.validation.advancedObjectField', 'This field must be a JSON object.');
|
|
7117
|
+
}
|
|
6737
7118
|
requestTopLevelNodeRemoval(index) {
|
|
6738
7119
|
this.pendingRemoval = { scope: 'nodes', index };
|
|
6739
7120
|
}
|
|
@@ -6881,6 +7262,12 @@ class PraxisRichContentConfigEditor {
|
|
|
6881
7262
|
.filter((issue) => issue.path === path || issue.path.startsWith(`${path}.`))
|
|
6882
7263
|
.map((issue) => this.tx(issue.messageKey, issue.fallback));
|
|
6883
7264
|
}
|
|
7265
|
+
getIssueCount(path) {
|
|
7266
|
+
return this.validationIssues.filter((issue) => issue.path === path || issue.path.startsWith(`${path}.`)).length;
|
|
7267
|
+
}
|
|
7268
|
+
getSelectedNodeIssueCount() {
|
|
7269
|
+
return this.getIssueCount(`$.nodes[${this.selectedNodeIndex}]`);
|
|
7270
|
+
}
|
|
6884
7271
|
isEditableNodeType(type) {
|
|
6885
7272
|
return EDITABLE_TOP_LEVEL_NODE_TYPES.includes(type);
|
|
6886
7273
|
}
|
|
@@ -6888,6 +7275,7 @@ class PraxisRichContentConfigEditor {
|
|
|
6888
7275
|
return EDITABLE_PRESENTER_NODE_TYPES.includes(type);
|
|
6889
7276
|
}
|
|
6890
7277
|
load(inputs, dirty) {
|
|
7278
|
+
this.clearAdvancedJsonFieldState();
|
|
6891
7279
|
const document = inputs.document ?? EMPTY_DOCUMENT;
|
|
6892
7280
|
const layout = inputs.layout === 'inline' ? 'inline' : 'block';
|
|
6893
7281
|
const rootClassName = typeof inputs.rootClassName === 'string' ? inputs.rootClassName : '';
|
|
@@ -7249,12 +7637,18 @@ class PraxisRichContentConfigEditor {
|
|
|
7249
7637
|
return null;
|
|
7250
7638
|
}
|
|
7251
7639
|
const document = parsed;
|
|
7252
|
-
this.valid = true;
|
|
7253
|
-
this.errorMessage = '';
|
|
7254
|
-
this.isValid$.next(true);
|
|
7255
7640
|
this.parsedDocument = document;
|
|
7256
7641
|
this.reconcileSelectedNodeIndex(document);
|
|
7257
7642
|
this.updateDocumentOverview(document);
|
|
7643
|
+
if (this.hasAdvancedJsonFieldErrors()) {
|
|
7644
|
+
this.valid = false;
|
|
7645
|
+
this.errorMessage = this.tx('editor.validation.invalidFieldJson', 'Enter valid JSON.');
|
|
7646
|
+
this.isValid$.next(false);
|
|
7647
|
+
return document;
|
|
7648
|
+
}
|
|
7649
|
+
this.valid = true;
|
|
7650
|
+
this.errorMessage = '';
|
|
7651
|
+
this.isValid$.next(true);
|
|
7258
7652
|
return document;
|
|
7259
7653
|
}
|
|
7260
7654
|
catch (error) {
|
|
@@ -7427,6 +7821,54 @@ class PraxisRichContentConfigEditor {
|
|
|
7427
7821
|
</label>
|
|
7428
7822
|
</div>
|
|
7429
7823
|
|
|
7824
|
+
<details
|
|
7825
|
+
class="prx-rich-editor__document-context"
|
|
7826
|
+
[open]="hasDocumentContext()"
|
|
7827
|
+
>
|
|
7828
|
+
<summary>
|
|
7829
|
+
<span>{{ tx('editor.documentContext', 'Document context') }}</span>
|
|
7830
|
+
<small>
|
|
7831
|
+
{{
|
|
7832
|
+
tx(
|
|
7833
|
+
'editor.documentContextHelp',
|
|
7834
|
+
'Canonical data scopes and aliases available to rich-content bindings.'
|
|
7835
|
+
)
|
|
7836
|
+
}}
|
|
7837
|
+
</small>
|
|
7838
|
+
</summary>
|
|
7839
|
+
<fieldset class="prx-rich-editor__field-group">
|
|
7840
|
+
<legend>{{ tx('editor.documentContextFields', 'Context contract') }}</legend>
|
|
7841
|
+
<label class="prx-rich-editor__wide-field">
|
|
7842
|
+
<span>{{ tx('editor.field.contextScopes', 'Context scopes') }}</span>
|
|
7843
|
+
<input
|
|
7844
|
+
[ngModel]="getDocumentContextScopes()"
|
|
7845
|
+
(ngModelChange)="setDocumentContextScopes($event)"
|
|
7846
|
+
[placeholder]="tx('editor.placeholder.contextScopes', 'row, user, tenant')"
|
|
7847
|
+
[class.invalid]="getDocumentContextFieldError('scopes')"
|
|
7848
|
+
/>
|
|
7849
|
+
@if (getDocumentContextFieldError('scopes')) {
|
|
7850
|
+
<small class="prx-rich-editor__field-error">
|
|
7851
|
+
{{ getDocumentContextFieldError('scopes') }}
|
|
7852
|
+
</small>
|
|
7853
|
+
}
|
|
7854
|
+
</label>
|
|
7855
|
+
<label class="prx-rich-editor__wide-field prx-rich-editor__json-field">
|
|
7856
|
+
<span>{{ tx('editor.field.contextAliases', 'Context aliases') }}</span>
|
|
7857
|
+
<textarea
|
|
7858
|
+
[ngModel]="getDocumentContextAliasesValue()"
|
|
7859
|
+
(ngModelChange)="setDocumentContextAliases($event)"
|
|
7860
|
+
[placeholder]="getDocumentContextAliasesPlaceholder()"
|
|
7861
|
+
[class.invalid]="getDocumentContextFieldError('aliases')"
|
|
7862
|
+
></textarea>
|
|
7863
|
+
@if (getDocumentContextFieldError('aliases')) {
|
|
7864
|
+
<small class="prx-rich-editor__field-error">
|
|
7865
|
+
{{ getDocumentContextFieldError('aliases') }}
|
|
7866
|
+
</small>
|
|
7867
|
+
}
|
|
7868
|
+
</label>
|
|
7869
|
+
</fieldset>
|
|
7870
|
+
</details>
|
|
7871
|
+
|
|
7430
7872
|
<ng-template
|
|
7431
7873
|
#presenterFields
|
|
7432
7874
|
let-node="node"
|
|
@@ -7867,7 +8309,59 @@ class PraxisRichContentConfigEditor {
|
|
|
7867
8309
|
</div>
|
|
7868
8310
|
</ng-template>
|
|
7869
8311
|
|
|
7870
|
-
<
|
|
8312
|
+
<nav
|
|
8313
|
+
class="prx-rich-editor__tabs"
|
|
8314
|
+
[attr.aria-label]="tx('editor.workbenchTabs', 'Editor sections')"
|
|
8315
|
+
role="tablist"
|
|
8316
|
+
>
|
|
8317
|
+
<button
|
|
8318
|
+
type="button"
|
|
8319
|
+
role="tab"
|
|
8320
|
+
class="prx-rich-editor__tab"
|
|
8321
|
+
[class.prx-rich-editor__tab--active]="activeEditorPanel === 'guided'"
|
|
8322
|
+
[attr.aria-selected]="activeEditorPanel === 'guided'"
|
|
8323
|
+
(click)="selectEditorPanel('guided')"
|
|
8324
|
+
data-testid="rich-content-guided-tab"
|
|
8325
|
+
>
|
|
8326
|
+
{{ tx('editor.guidedEditing', 'Guided editing') }}
|
|
8327
|
+
</button>
|
|
8328
|
+
<button
|
|
8329
|
+
type="button"
|
|
8330
|
+
role="tab"
|
|
8331
|
+
class="prx-rich-editor__tab"
|
|
8332
|
+
[class.prx-rich-editor__tab--active]="activeEditorPanel === 'preview'"
|
|
8333
|
+
[attr.aria-selected]="activeEditorPanel === 'preview'"
|
|
8334
|
+
(click)="selectEditorPanel('preview')"
|
|
8335
|
+
data-testid="rich-content-preview-tab"
|
|
8336
|
+
>
|
|
8337
|
+
{{ tx('editor.preview', 'Preview') }}
|
|
8338
|
+
</button>
|
|
8339
|
+
<button
|
|
8340
|
+
type="button"
|
|
8341
|
+
role="tab"
|
|
8342
|
+
class="prx-rich-editor__tab"
|
|
8343
|
+
[class.prx-rich-editor__tab--active]="activeEditorPanel === 'json'"
|
|
8344
|
+
[attr.aria-selected]="activeEditorPanel === 'json'"
|
|
8345
|
+
(click)="selectEditorPanel('json')"
|
|
8346
|
+
data-testid="rich-content-json-tab"
|
|
8347
|
+
>
|
|
8348
|
+
{{ tx('editor.document', 'Advanced JSON') }}
|
|
8349
|
+
@if (!valid || validationIssues.length) {
|
|
8350
|
+
<span class="prx-rich-editor__tab-badge">
|
|
8351
|
+
{{
|
|
8352
|
+
validationIssues.length || tx('editor.invalidBadge', 'Invalid')
|
|
8353
|
+
}}
|
|
8354
|
+
</span>
|
|
8355
|
+
}
|
|
8356
|
+
</button>
|
|
8357
|
+
</nav>
|
|
8358
|
+
|
|
8359
|
+
@if (activeEditorPanel === 'guided') {
|
|
8360
|
+
<section
|
|
8361
|
+
class="prx-rich-editor__blocks"
|
|
8362
|
+
role="tabpanel"
|
|
8363
|
+
[attr.aria-label]="tx('editor.guidedEditing', 'Guided editing')"
|
|
8364
|
+
>
|
|
7871
8365
|
<header class="prx-rich-editor__section-header">
|
|
7872
8366
|
<div>
|
|
7873
8367
|
<h3>{{ tx('editor.blocks', 'Blocks') }}</h3>
|
|
@@ -7931,8 +8425,11 @@ class PraxisRichContentConfigEditor {
|
|
|
7931
8425
|
{{ tx('editor.block', 'Block') }} {{ nodeIndex + 1 }}
|
|
7932
8426
|
</span>
|
|
7933
8427
|
<strong>{{ tx('editor.nodeType.' + node.type, node.type) }}</strong>
|
|
7934
|
-
@if (
|
|
7935
|
-
<small>
|
|
8428
|
+
@if (getIssueCount('$.nodes[' + nodeIndex + ']'); as issueCount) {
|
|
8429
|
+
<small>
|
|
8430
|
+
{{ tx('editor.hasIssues', 'Needs attention') }}
|
|
8431
|
+
<span class="prx-rich-editor__issue-count">{{ issueCount }}</span>
|
|
8432
|
+
</small>
|
|
7936
8433
|
}
|
|
7937
8434
|
</button>
|
|
7938
8435
|
}
|
|
@@ -7953,6 +8450,28 @@ class PraxisRichContentConfigEditor {
|
|
|
7953
8450
|
</p>
|
|
7954
8451
|
</div>
|
|
7955
8452
|
</header>
|
|
8453
|
+
<div
|
|
8454
|
+
class="prx-rich-editor__intent-strip"
|
|
8455
|
+
[attr.aria-label]="tx('editor.intentNavigation', 'Property sections')"
|
|
8456
|
+
>
|
|
8457
|
+
<span>
|
|
8458
|
+
<strong>{{ tx('editor.intent.content', 'Content') }}</strong>
|
|
8459
|
+
<small>{{ tx('editor.intent.contentHelp', 'Primary block fields') }}</small>
|
|
8460
|
+
</span>
|
|
8461
|
+
<span>
|
|
8462
|
+
<strong>{{ tx('editor.intent.presentation', 'Presentation') }}</strong>
|
|
8463
|
+
<small>{{ tx('editor.intent.presentationHelp', 'Visual affordances') }}</small>
|
|
8464
|
+
</span>
|
|
8465
|
+
<button type="button" (click)="openAdvancedRules()">
|
|
8466
|
+
<strong>{{ tx('editor.intent.dataRules', 'Data and rules') }}</strong>
|
|
8467
|
+
<small>{{ tx('editor.intent.dataRulesHelp', 'Metadata and gates') }}</small>
|
|
8468
|
+
@if (getSelectedNodeIssueCount(); as selectedIssueCount) {
|
|
8469
|
+
<span class="prx-rich-editor__issue-count">
|
|
8470
|
+
{{ selectedIssueCount }}
|
|
8471
|
+
</span>
|
|
8472
|
+
}
|
|
8473
|
+
</button>
|
|
8474
|
+
</div>
|
|
7956
8475
|
<div class="prx-rich-editor__node-list">
|
|
7957
8476
|
@for (node of parsedDocument?.nodes ?? []; track node.id ?? $index; let nodeIndex = $index) {
|
|
7958
8477
|
@if (selectedNodeIndex === nodeIndex) {
|
|
@@ -10608,83 +11127,148 @@ class PraxisRichContentConfigEditor {
|
|
|
10608
11127
|
</p>
|
|
10609
11128
|
}
|
|
10610
11129
|
}
|
|
10611
|
-
<
|
|
10612
|
-
|
|
10613
|
-
|
|
10614
|
-
|
|
10615
|
-
|
|
10616
|
-
|
|
10617
|
-
|
|
10618
|
-
|
|
10619
|
-
|
|
10620
|
-
|
|
10621
|
-
|
|
10622
|
-
|
|
10623
|
-
|
|
10624
|
-
|
|
10625
|
-
|
|
10626
|
-
|
|
10627
|
-
/>
|
|
10628
|
-
</label>
|
|
10629
|
-
<label>
|
|
10630
|
-
<span>{{ tx('editor.field.requiresCapabilities', 'Capabilities') }}</span>
|
|
10631
|
-
<input
|
|
10632
|
-
[ngModel]="getCapabilityList(node)"
|
|
10633
|
-
(ngModelChange)="setCapabilityList($index, $event)"
|
|
10634
|
-
[placeholder]="tx('editor.placeholder.requiresCapabilities', 'form.mode.edit, employee.open')"
|
|
10635
|
-
/>
|
|
10636
|
-
</label>
|
|
10637
|
-
<label>
|
|
10638
|
-
<span>{{ tx('editor.field.capabilityMode', 'Capability mode') }}</span>
|
|
10639
|
-
<select
|
|
10640
|
-
[ngModel]="getStringField(node, 'capabilityMode') || 'all'"
|
|
10641
|
-
(ngModelChange)="setStringField($index, 'capabilityMode', $event)"
|
|
10642
|
-
>
|
|
10643
|
-
<option value="all">{{ tx('editor.capabilityMode.all', 'All') }}</option>
|
|
10644
|
-
<option value="any">{{ tx('editor.capabilityMode.any', 'Any') }}</option>
|
|
10645
|
-
</select>
|
|
10646
|
-
</label>
|
|
10647
|
-
</fieldset>
|
|
11130
|
+
<details
|
|
11131
|
+
class="prx-rich-editor__advanced-group"
|
|
11132
|
+
[open]="advancedRulesOpen"
|
|
11133
|
+
(toggle)="onAdvancedRulesToggle($event)"
|
|
11134
|
+
>
|
|
11135
|
+
<summary>
|
|
11136
|
+
<span>{{ tx('editor.advancedDataRules', 'Advanced data and rules') }}</span>
|
|
11137
|
+
<small>
|
|
11138
|
+
{{
|
|
11139
|
+
tx(
|
|
11140
|
+
'editor.advancedDataRulesHelp',
|
|
11141
|
+
'Metadata, capability gates, visibility and safe style.'
|
|
11142
|
+
)
|
|
11143
|
+
}}
|
|
11144
|
+
</small>
|
|
11145
|
+
</summary>
|
|
10648
11146
|
|
|
10649
|
-
|
|
10650
|
-
|
|
10651
|
-
|
|
10652
|
-
|
|
10653
|
-
|
|
10654
|
-
|
|
10655
|
-
|
|
10656
|
-
|
|
10657
|
-
|
|
10658
|
-
|
|
10659
|
-
|
|
10660
|
-
|
|
10661
|
-
|
|
10662
|
-
|
|
10663
|
-
|
|
10664
|
-
|
|
10665
|
-
|
|
10666
|
-
|
|
10667
|
-
|
|
11147
|
+
<fieldset class="prx-rich-editor__field-group">
|
|
11148
|
+
<legend>{{ tx('editor.commonMetadata', 'Common metadata') }}</legend>
|
|
11149
|
+
<label>
|
|
11150
|
+
<span>{{ tx('editor.field.testId', 'Test id') }}</span>
|
|
11151
|
+
<input
|
|
11152
|
+
[ngModel]="getStringField(node, 'testId')"
|
|
11153
|
+
(ngModelChange)="setStringField($index, 'testId', $event)"
|
|
11154
|
+
[placeholder]="tx('editor.placeholder.testId', 'rich-hero-title')"
|
|
11155
|
+
/>
|
|
11156
|
+
</label>
|
|
11157
|
+
<label>
|
|
11158
|
+
<span>{{ tx('editor.field.className', 'CSS class') }}</span>
|
|
11159
|
+
<input
|
|
11160
|
+
[ngModel]="getStringField(node, 'className')"
|
|
11161
|
+
(ngModelChange)="setStringField($index, 'className', $event)"
|
|
11162
|
+
[placeholder]="tx('editor.placeholder.className', 'hero-title')"
|
|
11163
|
+
/>
|
|
11164
|
+
</label>
|
|
11165
|
+
<label>
|
|
11166
|
+
<span>{{ tx('editor.field.requiresCapabilities', 'Capabilities') }}</span>
|
|
11167
|
+
<input
|
|
11168
|
+
[ngModel]="getCapabilityList(node)"
|
|
11169
|
+
(ngModelChange)="setCapabilityList($index, $event)"
|
|
11170
|
+
[placeholder]="tx('editor.placeholder.requiresCapabilities', 'form.mode.edit, employee.open')"
|
|
11171
|
+
/>
|
|
11172
|
+
</label>
|
|
11173
|
+
<label>
|
|
11174
|
+
<span>{{ tx('editor.field.capabilityMode', 'Capability mode') }}</span>
|
|
11175
|
+
<select
|
|
11176
|
+
[ngModel]="getStringField(node, 'capabilityMode') || 'all'"
|
|
11177
|
+
(ngModelChange)="setStringField($index, 'capabilityMode', $event)"
|
|
11178
|
+
>
|
|
11179
|
+
<option value="all">{{ tx('editor.capabilityMode.all', 'All') }}</option>
|
|
11180
|
+
<option value="any">{{ tx('editor.capabilityMode.any', 'Any') }}</option>
|
|
11181
|
+
</select>
|
|
11182
|
+
</label>
|
|
11183
|
+
</fieldset>
|
|
10668
11184
|
|
|
10669
|
-
|
|
10670
|
-
|
|
10671
|
-
|
|
10672
|
-
|
|
10673
|
-
|
|
10674
|
-
|
|
10675
|
-
|
|
10676
|
-
|
|
10677
|
-
|
|
10678
|
-
|
|
10679
|
-
|
|
10680
|
-
|
|
10681
|
-
|
|
10682
|
-
|
|
10683
|
-
|
|
10684
|
-
|
|
10685
|
-
|
|
10686
|
-
|
|
10687
|
-
|
|
11185
|
+
<fieldset class="prx-rich-editor__field-group">
|
|
11186
|
+
<legend>{{ tx('editor.visibilityRule', 'Visibility rule') }}</legend>
|
|
11187
|
+
<label>
|
|
11188
|
+
<span>{{ tx('editor.field.visibleWhenPath', 'Context path') }}</span>
|
|
11189
|
+
<input
|
|
11190
|
+
[ngModel]="getVisibleWhenPath(node)"
|
|
11191
|
+
(ngModelChange)="setVisibleWhenPath($index, $event)"
|
|
11192
|
+
[placeholder]="tx('editor.placeholder.visibleWhenPath', 'row.active')"
|
|
11193
|
+
/>
|
|
11194
|
+
</label>
|
|
11195
|
+
<label>
|
|
11196
|
+
<span>{{ tx('editor.field.visibleWhenValue', 'Expected value') }}</span>
|
|
11197
|
+
<input
|
|
11198
|
+
[ngModel]="getVisibleWhenValue(node)"
|
|
11199
|
+
(ngModelChange)="setVisibleWhenValue($index, $event)"
|
|
11200
|
+
[placeholder]="tx('editor.placeholder.visibleWhenValue', 'true')"
|
|
11201
|
+
/>
|
|
11202
|
+
</label>
|
|
11203
|
+
</fieldset>
|
|
11204
|
+
|
|
11205
|
+
<fieldset class="prx-rich-editor__field-group">
|
|
11206
|
+
<legend>{{ tx('editor.safeStyle', 'Safe style') }}</legend>
|
|
11207
|
+
<label>
|
|
11208
|
+
<span>{{ tx('editor.field.styleName', 'CSS property') }}</span>
|
|
11209
|
+
<input
|
|
11210
|
+
[ngModel]="getFirstStyleName(node)"
|
|
11211
|
+
(ngModelChange)="setFirstStyleName($index, $event)"
|
|
11212
|
+
[placeholder]="tx('editor.placeholder.styleName', 'color')"
|
|
11213
|
+
/>
|
|
11214
|
+
</label>
|
|
11215
|
+
<label>
|
|
11216
|
+
<span>{{ tx('editor.field.styleValue', 'CSS value') }}</span>
|
|
11217
|
+
<input
|
|
11218
|
+
[ngModel]="getFirstStyleValue(node)"
|
|
11219
|
+
(ngModelChange)="setFirstStyleValue($index, $event)"
|
|
11220
|
+
[placeholder]="tx('editor.placeholder.styleValue', 'var(--md-sys-color-primary)')"
|
|
11221
|
+
/>
|
|
11222
|
+
</label>
|
|
11223
|
+
</fieldset>
|
|
11224
|
+
|
|
11225
|
+
@if (getAdvancedJsonOnlyFields(node).length) {
|
|
11226
|
+
<aside class="prx-rich-editor__advanced-json-map">
|
|
11227
|
+
<strong>{{ tx('editor.advancedJsonFields', 'Advanced JSON fields present') }}</strong>
|
|
11228
|
+
<p>
|
|
11229
|
+
{{
|
|
11230
|
+
tx(
|
|
11231
|
+
'editor.advancedJsonFieldsHelp',
|
|
11232
|
+
'These canonical fields are preserved by guided edits and remain editable in the Advanced JSON tab.'
|
|
11233
|
+
)
|
|
11234
|
+
}}
|
|
11235
|
+
</p>
|
|
11236
|
+
<div class="prx-rich-editor__advanced-json-chips">
|
|
11237
|
+
@for (field of getAdvancedJsonOnlyFields(node); track field) {
|
|
11238
|
+
<code>{{ field }}</code>
|
|
11239
|
+
}
|
|
11240
|
+
</div>
|
|
11241
|
+
</aside>
|
|
11242
|
+
}
|
|
11243
|
+
|
|
11244
|
+
<fieldset class="prx-rich-editor__field-group prx-rich-editor__json-fieldset">
|
|
11245
|
+
<legend>{{ tx('editor.advancedJsonEditor', 'Advanced JSON editor') }}</legend>
|
|
11246
|
+
<p class="prx-rich-editor__field-help">
|
|
11247
|
+
{{
|
|
11248
|
+
tx(
|
|
11249
|
+
'editor.advancedJsonEditorHelp',
|
|
11250
|
+
'Edit canonical data bindings and JsonLogic rule fields without leaving guided editing.'
|
|
11251
|
+
)
|
|
11252
|
+
}}
|
|
11253
|
+
</p>
|
|
11254
|
+
@for (field of advancedJsonOnlyNodeFields; track field) {
|
|
11255
|
+
<label class="prx-rich-editor__wide-field prx-rich-editor__json-field">
|
|
11256
|
+
<span>{{ tx('editor.field.' + field, field) }}</span>
|
|
11257
|
+
<textarea
|
|
11258
|
+
[ngModel]="getAdvancedJsonFieldValue(nodeIndex, node, field)"
|
|
11259
|
+
(ngModelChange)="setAdvancedJsonField(nodeIndex, field, $event)"
|
|
11260
|
+
[placeholder]="getAdvancedJsonFieldPlaceholder(field)"
|
|
11261
|
+
[class.invalid]="getAdvancedJsonFieldError(nodeIndex, field)"
|
|
11262
|
+
></textarea>
|
|
11263
|
+
@if (getAdvancedJsonFieldError(nodeIndex, field)) {
|
|
11264
|
+
<small class="prx-rich-editor__field-error">
|
|
11265
|
+
{{ getAdvancedJsonFieldError(nodeIndex, field) }}
|
|
11266
|
+
</small>
|
|
11267
|
+
}
|
|
11268
|
+
</label>
|
|
11269
|
+
}
|
|
11270
|
+
</fieldset>
|
|
11271
|
+
</details>
|
|
10688
11272
|
</div>
|
|
10689
11273
|
</article>
|
|
10690
11274
|
}
|
|
@@ -10698,22 +11282,59 @@ class PraxisRichContentConfigEditor {
|
|
|
10698
11282
|
</p>
|
|
10699
11283
|
}
|
|
10700
11284
|
</section>
|
|
11285
|
+
}
|
|
10701
11286
|
|
|
10702
|
-
|
|
11287
|
+
@if (activeEditorPanel === 'preview') {
|
|
11288
|
+
<section
|
|
11289
|
+
class="prx-rich-editor__preview-panel"
|
|
11290
|
+
role="tabpanel"
|
|
11291
|
+
[attr.aria-label]="tx('editor.preview', 'Preview')"
|
|
11292
|
+
>
|
|
10703
11293
|
<header class="prx-rich-editor__section-header">
|
|
10704
11294
|
<div>
|
|
10705
|
-
<h3>{{ tx('editor.
|
|
11295
|
+
<h3>{{ tx('editor.preview', 'Preview') }}</h3>
|
|
10706
11296
|
<p>
|
|
10707
11297
|
{{
|
|
10708
11298
|
tx(
|
|
10709
|
-
'editor.
|
|
10710
|
-
'
|
|
11299
|
+
'editor.previewHelp',
|
|
11300
|
+
'Inspect the materialized document without mixing preview with authoring fields.'
|
|
10711
11301
|
)
|
|
10712
11302
|
}}
|
|
10713
11303
|
</p>
|
|
10714
11304
|
</div>
|
|
10715
11305
|
</header>
|
|
10716
|
-
|
|
11306
|
+
@if (parsedDocument) {
|
|
11307
|
+
<div class="prx-rich-editor__preview prx-rich-editor__preview--large">
|
|
11308
|
+
<praxis-rich-content
|
|
11309
|
+
[document]="parsedDocument"
|
|
11310
|
+
[layout]="layout"
|
|
11311
|
+
[rootClassName]="rootClassName"
|
|
11312
|
+
></praxis-rich-content>
|
|
11313
|
+
</div>
|
|
11314
|
+
} @else {
|
|
11315
|
+
<p class="prx-rich-editor__empty">
|
|
11316
|
+
{{ tx('editor.previewUnavailable', 'Preview is unavailable until the document is valid.') }}
|
|
11317
|
+
</p>
|
|
11318
|
+
}
|
|
11319
|
+
</section>
|
|
11320
|
+
}
|
|
11321
|
+
|
|
11322
|
+
@if (activeEditorPanel === 'json') {
|
|
11323
|
+
<section class="prx-rich-editor__document-panel">
|
|
11324
|
+
<header class="prx-rich-editor__section-header">
|
|
11325
|
+
<div>
|
|
11326
|
+
<h3>{{ tx('editor.document', 'Advanced JSON') }}</h3>
|
|
11327
|
+
<p>
|
|
11328
|
+
{{
|
|
11329
|
+
tx(
|
|
11330
|
+
'editor.documentAdvancedHelp',
|
|
11331
|
+
'Use JSON for diagnostics, migration and advanced fields that are not yet surfaced by guided controls.'
|
|
11332
|
+
)
|
|
11333
|
+
}}
|
|
11334
|
+
</p>
|
|
11335
|
+
</div>
|
|
11336
|
+
</header>
|
|
11337
|
+
<div class="prx-rich-editor__workbench">
|
|
10717
11338
|
<label class="prx-rich-editor__document">
|
|
10718
11339
|
<span>{{ tx('editor.documentJson', 'Canonical document JSON') }}</span>
|
|
10719
11340
|
<textarea
|
|
@@ -10749,18 +11370,6 @@ class PraxisRichContentConfigEditor {
|
|
|
10749
11370
|
</dl>
|
|
10750
11371
|
</section>
|
|
10751
11372
|
|
|
10752
|
-
@if (parsedDocument) {
|
|
10753
|
-
<section>
|
|
10754
|
-
<h3>{{ tx('editor.preview', 'Preview') }}</h3>
|
|
10755
|
-
<div class="prx-rich-editor__preview">
|
|
10756
|
-
<praxis-rich-content
|
|
10757
|
-
[document]="parsedDocument"
|
|
10758
|
-
[layout]="layout"
|
|
10759
|
-
[rootClassName]="rootClassName"
|
|
10760
|
-
></praxis-rich-content>
|
|
10761
|
-
</div>
|
|
10762
|
-
</section>
|
|
10763
|
-
}
|
|
10764
11373
|
</aside>
|
|
10765
11374
|
</div>
|
|
10766
11375
|
</section>
|
|
@@ -10793,6 +11402,7 @@ class PraxisRichContentConfigEditor {
|
|
|
10793
11402
|
}}
|
|
10794
11403
|
</p>
|
|
10795
11404
|
}
|
|
11405
|
+
}
|
|
10796
11406
|
|
|
10797
11407
|
<div class="prx-rich-editor__actions">
|
|
10798
11408
|
<button type="button" (click)="reset()">
|
|
@@ -10803,7 +11413,7 @@ class PraxisRichContentConfigEditor {
|
|
|
10803
11413
|
</button>
|
|
10804
11414
|
</div>
|
|
10805
11415
|
</section>
|
|
10806
|
-
`, isInline: true, styles: [":host{display:block;min-width:0}.prx-rich-editor{display:grid;gap:18px;color:var(--md-sys-color-on-surface, #1f2937)}.prx-rich-editor__header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.prx-rich-editor__header h2{margin:0;font-size:1.25rem}.prx-rich-editor__header p{margin:6px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673)}.prx-rich-editor__eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--md-sys-color-primary, #3154e7)}.prx-rich-editor__status{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,#16a34a 12%,transparent);color:#166534;font-size:.78rem;font-weight:700}.prx-rich-editor__status.invalid{background:color-mix(in srgb,#dc2626 12%,transparent);color:#991b1b}.prx-rich-editor__grid{display:grid;gap:14px;grid-template-columns:minmax(0,180px) minmax(0,1fr)}.prx-rich-editor__blocks{display:grid;gap:14px}.prx-rich-editor__authoring-shell{display:grid;gap:14px;grid-template-columns:minmax(220px,.34fr) minmax(0,1fr);align-items:start}.prx-rich-editor__structure,.prx-rich-editor__properties,.prx-rich-editor__document-panel{min-width:0;display:grid;gap:12px}.prx-rich-editor__structure{position:sticky;top:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__structure-summary{display:grid;gap:4px}.prx-rich-editor__structure-summary span{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.82rem;font-weight:500}.prx-rich-editor__structure-list{display:grid;gap:8px}.prx-rich-editor__structure-item{display:grid;gap:3px;width:100%;padding:10px;text-align:left;color:var(--md-sys-color-on-surface, #1f2937);background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__structure-item--selected{border-color:var(--md-sys-color-primary, #3154e7);background:color-mix(in srgb,var(--md-sys-color-primary, #3154e7) 8%,var(--md-sys-color-surface, #fff))}.prx-rich-editor__structure-item small{color:#991b1b;font-weight:700}.prx-rich-editor__section-header,.prx-rich-editor__node-header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.prx-rich-editor__section-header h3,.prx-rich-editor__node-header h4{margin:0}.prx-rich-editor__section-header p,.prx-rich-editor__node-note,.prx-rich-editor__empty{margin:6px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.88rem}.prx-rich-editor__add-block,.prx-rich-editor__node-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.prx-rich-editor__add-block label{min-width:180px}.prx-rich-editor__node-list{display:grid;gap:12px}.prx-rich-editor__node-card{display:grid;gap:14px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:14px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__node-eyebrow{margin:0 0 4px;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.75rem;font-weight:700;text-transform:uppercase}.prx-rich-editor__node-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.prx-rich-editor__wide-field,.prx-rich-editor__node-note{grid-column:1 / -1}.prx-rich-editor__field-group,.prx-rich-editor__nested-editor,.prx-rich-editor__nested-node{grid-column:1 / -1;display:grid;gap:12px}.prx-rich-editor__field-group,.prx-rich-editor__nested-node{margin:0;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px}.prx-rich-editor__field-group{grid-template-columns:repeat(2,minmax(0,1fr))}.prx-rich-editor__field-group legend{padding:0 4px;font-weight:700}.prx-rich-editor__nested-header,.prx-rich-editor__nested-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.prx-rich-editor__quick-actions{display:flex;flex-wrap:wrap;gap:8px}.prx-rich-editor__node-grid textarea{min-height:96px;font-family:inherit}label,.prx-rich-editor__document{display:grid;gap:7px;font-weight:700}.prx-rich-editor__checkbox-field{display:flex;gap:10px;align-items:center;align-self:end}.prx-rich-editor__checkbox-field input[type=checkbox]{width:auto}input,select,textarea{box-sizing:border-box;width:100%;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:12px;padding:10px 12px;font:inherit;color:inherit;background:var(--md-sys-color-surface, #fff)}textarea{min-height:360px;resize:vertical;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.86rem;line-height:1.45}.prx-rich-editor__workbench{display:grid;gap:14px;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}.prx-rich-editor__inspector{display:grid;align-content:start;gap:14px;min-width:0;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__inspector h3{margin:0 0 8px;font-size:.95rem}.prx-rich-editor__inspector dl{display:grid;gap:8px;margin:0}.prx-rich-editor__inspector dl div{display:grid;gap:2px}.prx-rich-editor__inspector dt{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:700}.prx-rich-editor__inspector dd{margin:0;overflow-wrap:anywhere;font-weight:600}.prx-rich-editor__preview{max-height:260px;overflow:auto;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__help{margin:-8px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.85rem}.prx-rich-editor__error{margin:0;padding:10px 12px;border-radius:8px;color:#991b1b;background:color-mix(in srgb,#dc2626 9%,transparent)}.prx-rich-editor__error p{margin:0}.prx-rich-editor__error ul{display:grid;gap:6px;margin:8px 0 0;padding-inline-start:18px}.prx-rich-editor__error code{margin-right:4px;font-family:Cascadia Code,Fira Code,Consolas,monospace}.prx-rich-editor__actions{display:flex;flex-wrap:wrap;gap:10px}button{border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:8px 14px;background:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-primary, #3154e7);font-weight:700;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}@media(max-width:760px){.prx-rich-editor__header,.prx-rich-editor__section-header,.prx-rich-editor__node-header,.prx-rich-editor__authoring-shell,.prx-rich-editor__grid,.prx-rich-editor__field-group,.prx-rich-editor__node-grid,.prx-rich-editor__workbench{grid-template-columns:1fr;display:grid}.prx-rich-editor__structure{position:static}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PraxisRichContent, selector: "praxis-rich-content", inputs: ["document", "nodes", "context", "hostCapabilities", "layout", "rootClassName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
11416
|
+
`, isInline: true, styles: [":host{display:block;min-width:0;width:100%;max-width:100%;box-sizing:border-box}.prx-rich-editor{display:grid;gap:18px;min-width:0;color:var(--md-sys-color-on-surface, #1f2937)}.prx-rich-editor__header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.prx-rich-editor__header h2{margin:0;font-size:1.25rem}.prx-rich-editor__header p{margin:6px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673)}.prx-rich-editor__eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--md-sys-color-primary, #3154e7)}.prx-rich-editor__status{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,#16a34a 12%,transparent);color:#166534;font-size:.78rem;font-weight:700}.prx-rich-editor__status.invalid{background:color-mix(in srgb,#dc2626 12%,transparent);color:#991b1b}.prx-rich-editor__grid{display:grid;gap:14px;grid-template-columns:minmax(0,180px) minmax(0,1fr)}.prx-rich-editor__tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-bottom:1px solid var(--md-sys-color-outline-variant, #d7dce5)}.prx-rich-editor__tab{margin-block-end:-1px;border-radius:8px 8px 0 0;border-bottom-color:transparent;color:var(--md-sys-color-on-surface-variant, #5f6673);background:transparent}.prx-rich-editor__tab--active{border-color:var(--md-sys-color-outline-variant, #d7dce5);border-bottom-color:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-primary, #3154e7);background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__tab-badge,.prx-rich-editor__issue-count{display:inline-flex;min-width:1.35em;min-height:1.35em;padding:0 .38em;border-radius:999px;align-items:center;justify-content:center;background:color-mix(in srgb,#dc2626 14%,transparent);color:#991b1b;font-size:.72rem;font-weight:800;line-height:1}.prx-rich-editor__tab-badge{margin-inline-start:6px}.prx-rich-editor__blocks{display:grid;gap:14px}.prx-rich-editor__authoring-shell{display:grid;gap:14px;grid-template-columns:minmax(220px,.34fr) minmax(0,1fr);align-items:start}.prx-rich-editor__structure,.prx-rich-editor__properties,.prx-rich-editor__document-panel,.prx-rich-editor__preview-panel{min-width:0;display:grid;gap:12px}.prx-rich-editor__structure{position:sticky;top:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__structure-summary{display:grid;gap:4px}.prx-rich-editor__structure-summary span{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.82rem;font-weight:500}.prx-rich-editor__structure-list{display:grid;gap:8px}.prx-rich-editor__structure-item{display:grid;gap:3px;width:100%;padding:10px;text-align:left;color:var(--md-sys-color-on-surface, #1f2937);background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__structure-item--selected{border-color:var(--md-sys-color-primary, #3154e7);background:color-mix(in srgb,var(--md-sys-color-primary, #3154e7) 8%,var(--md-sys-color-surface, #fff))}.prx-rich-editor__structure-item small{color:#991b1b;font-weight:700}.prx-rich-editor__intent-strip{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.prx-rich-editor__intent-strip span,.prx-rich-editor__intent-strip button{min-width:0;display:grid;gap:3px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:10px 12px;text-align:left;color:var(--md-sys-color-on-surface, #1f2937);background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__intent-strip button{position:relative}.prx-rich-editor__intent-strip small{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:600}.prx-rich-editor__intent-strip .prx-rich-editor__issue-count{position:absolute;inset-block-start:8px;inset-inline-end:8px}.prx-rich-editor__section-header,.prx-rich-editor__node-header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.prx-rich-editor__section-header h3,.prx-rich-editor__node-header h4{margin:0}.prx-rich-editor__section-header p,.prx-rich-editor__node-note,.prx-rich-editor__empty{margin:6px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.88rem}.prx-rich-editor__add-block,.prx-rich-editor__node-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.prx-rich-editor__add-block label{min-width:180px}.prx-rich-editor__node-list{display:grid;gap:12px}.prx-rich-editor__node-card{display:grid;gap:14px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:14px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__node-eyebrow{margin:0 0 4px;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.75rem;font-weight:700;text-transform:uppercase}.prx-rich-editor__node-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.prx-rich-editor__wide-field,.prx-rich-editor__node-note{grid-column:1 / -1}.prx-rich-editor__field-group,.prx-rich-editor__nested-editor,.prx-rich-editor__nested-node{grid-column:1 / -1;display:grid;gap:12px}.prx-rich-editor__field-group,.prx-rich-editor__nested-node{margin:0;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px}.prx-rich-editor__document-context{display:grid;gap:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__document-context summary{display:flex;gap:10px;align-items:center;justify-content:space-between;cursor:pointer;font-weight:800}.prx-rich-editor__document-context summary small{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:600}.prx-rich-editor__document-context[open] summary{margin-block-end:12px}.prx-rich-editor__field-group{grid-template-columns:repeat(2,minmax(0,1fr))}.prx-rich-editor__field-group legend{padding:0 4px;font-weight:700}.prx-rich-editor__field-help{grid-column:1 / -1;margin:0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.84rem}.prx-rich-editor__json-fieldset{margin-block-start:12px}.prx-rich-editor__json-field{display:grid;gap:6px}.prx-rich-editor__json-field textarea{min-height:96px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.8rem;line-height:1.45}.prx-rich-editor__field-error{color:var(--md-sys-color-error, #ba1a1a);font-size:.78rem;font-weight:700}.prx-rich-editor__advanced-group{grid-column:1 / -1;display:grid;gap:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:color-mix(in srgb,var(--md-sys-color-surface-container-lowest, #fff) 88%,var(--md-sys-color-primary, #3154e7) 4%)}.prx-rich-editor__advanced-group summary{display:flex;gap:10px;align-items:center;justify-content:space-between;cursor:pointer;font-weight:800}.prx-rich-editor__advanced-group summary small{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:600}.prx-rich-editor__advanced-group[open]{padding-block-end:14px}.prx-rich-editor__advanced-group[open] summary{margin-block-end:12px}.prx-rich-editor__advanced-group .prx-rich-editor__field-group+.prx-rich-editor__field-group{margin-block-start:12px}.prx-rich-editor__advanced-json-map{display:grid;gap:8px;margin-block-start:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__advanced-json-map p{margin:0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.84rem}.prx-rich-editor__advanced-json-chips{display:flex;flex-wrap:wrap;gap:6px}.prx-rich-editor__advanced-json-chips code{border-radius:999px;padding:4px 8px;background:color-mix(in srgb,var(--md-sys-color-primary, #3154e7) 12%,transparent);color:var(--md-sys-color-primary, #3154e7);font-size:.76rem;font-weight:700}.prx-rich-editor__nested-header,.prx-rich-editor__nested-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.prx-rich-editor__quick-actions{display:flex;flex-wrap:wrap;gap:8px}.prx-rich-editor__node-grid textarea{min-height:96px;font-family:inherit}label,.prx-rich-editor__document{display:grid;gap:7px;font-weight:700}.prx-rich-editor__checkbox-field{display:flex;gap:10px;align-items:center;align-self:end}.prx-rich-editor__checkbox-field input[type=checkbox]{width:auto}input,select,textarea{box-sizing:border-box;width:100%;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:12px;padding:10px 12px;font:inherit;color:inherit;background:var(--md-sys-color-surface, #fff)}textarea{min-height:360px;resize:vertical;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.86rem;line-height:1.45}.prx-rich-editor__workbench{display:grid;gap:14px;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}.prx-rich-editor__inspector{display:grid;align-content:start;gap:14px;min-width:0;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__inspector h3{margin:0 0 8px;font-size:.95rem}.prx-rich-editor__inspector dl{display:grid;gap:8px;margin:0}.prx-rich-editor__inspector dl div{display:grid;gap:2px}.prx-rich-editor__inspector dt{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:700}.prx-rich-editor__inspector dd{margin:0;overflow-wrap:anywhere;font-weight:600}.prx-rich-editor__preview{max-height:260px;overflow:auto;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__preview--large{max-height:min(68vh,760px)}.prx-rich-editor__help{margin:-8px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.85rem}.prx-rich-editor__error{margin:0;padding:10px 12px;border-radius:8px;color:#991b1b;background:color-mix(in srgb,#dc2626 9%,transparent)}.prx-rich-editor__error p{margin:0}.prx-rich-editor__error ul{display:grid;gap:6px;margin:8px 0 0;padding-inline-start:18px}.prx-rich-editor__error code{margin-right:4px;font-family:Cascadia Code,Fira Code,Consolas,monospace}.prx-rich-editor__actions{display:flex;flex-wrap:wrap;gap:10px}button{border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:8px 14px;background:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-primary, #3154e7);font-weight:700;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}@media(max-width:760px){.prx-rich-editor__header,.prx-rich-editor__section-header,.prx-rich-editor__node-header,.prx-rich-editor__authoring-shell,.prx-rich-editor__intent-strip,.prx-rich-editor__grid,.prx-rich-editor__document-context summary,.prx-rich-editor__field-group,.prx-rich-editor__node-grid,.prx-rich-editor__workbench{grid-template-columns:1fr;display:grid}.prx-rich-editor__structure{position:static}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: PraxisRichContent, selector: "praxis-rich-content", inputs: ["document", "nodes", "context", "hostCapabilities", "layout", "rootClassName"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10807
11417
|
}
|
|
10808
11418
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisRichContentConfigEditor, decorators: [{
|
|
10809
11419
|
type: Component,
|
|
@@ -10869,6 +11479,54 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
10869
11479
|
</label>
|
|
10870
11480
|
</div>
|
|
10871
11481
|
|
|
11482
|
+
<details
|
|
11483
|
+
class="prx-rich-editor__document-context"
|
|
11484
|
+
[open]="hasDocumentContext()"
|
|
11485
|
+
>
|
|
11486
|
+
<summary>
|
|
11487
|
+
<span>{{ tx('editor.documentContext', 'Document context') }}</span>
|
|
11488
|
+
<small>
|
|
11489
|
+
{{
|
|
11490
|
+
tx(
|
|
11491
|
+
'editor.documentContextHelp',
|
|
11492
|
+
'Canonical data scopes and aliases available to rich-content bindings.'
|
|
11493
|
+
)
|
|
11494
|
+
}}
|
|
11495
|
+
</small>
|
|
11496
|
+
</summary>
|
|
11497
|
+
<fieldset class="prx-rich-editor__field-group">
|
|
11498
|
+
<legend>{{ tx('editor.documentContextFields', 'Context contract') }}</legend>
|
|
11499
|
+
<label class="prx-rich-editor__wide-field">
|
|
11500
|
+
<span>{{ tx('editor.field.contextScopes', 'Context scopes') }}</span>
|
|
11501
|
+
<input
|
|
11502
|
+
[ngModel]="getDocumentContextScopes()"
|
|
11503
|
+
(ngModelChange)="setDocumentContextScopes($event)"
|
|
11504
|
+
[placeholder]="tx('editor.placeholder.contextScopes', 'row, user, tenant')"
|
|
11505
|
+
[class.invalid]="getDocumentContextFieldError('scopes')"
|
|
11506
|
+
/>
|
|
11507
|
+
@if (getDocumentContextFieldError('scopes')) {
|
|
11508
|
+
<small class="prx-rich-editor__field-error">
|
|
11509
|
+
{{ getDocumentContextFieldError('scopes') }}
|
|
11510
|
+
</small>
|
|
11511
|
+
}
|
|
11512
|
+
</label>
|
|
11513
|
+
<label class="prx-rich-editor__wide-field prx-rich-editor__json-field">
|
|
11514
|
+
<span>{{ tx('editor.field.contextAliases', 'Context aliases') }}</span>
|
|
11515
|
+
<textarea
|
|
11516
|
+
[ngModel]="getDocumentContextAliasesValue()"
|
|
11517
|
+
(ngModelChange)="setDocumentContextAliases($event)"
|
|
11518
|
+
[placeholder]="getDocumentContextAliasesPlaceholder()"
|
|
11519
|
+
[class.invalid]="getDocumentContextFieldError('aliases')"
|
|
11520
|
+
></textarea>
|
|
11521
|
+
@if (getDocumentContextFieldError('aliases')) {
|
|
11522
|
+
<small class="prx-rich-editor__field-error">
|
|
11523
|
+
{{ getDocumentContextFieldError('aliases') }}
|
|
11524
|
+
</small>
|
|
11525
|
+
}
|
|
11526
|
+
</label>
|
|
11527
|
+
</fieldset>
|
|
11528
|
+
</details>
|
|
11529
|
+
|
|
10872
11530
|
<ng-template
|
|
10873
11531
|
#presenterFields
|
|
10874
11532
|
let-node="node"
|
|
@@ -11309,7 +11967,59 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
11309
11967
|
</div>
|
|
11310
11968
|
</ng-template>
|
|
11311
11969
|
|
|
11312
|
-
<
|
|
11970
|
+
<nav
|
|
11971
|
+
class="prx-rich-editor__tabs"
|
|
11972
|
+
[attr.aria-label]="tx('editor.workbenchTabs', 'Editor sections')"
|
|
11973
|
+
role="tablist"
|
|
11974
|
+
>
|
|
11975
|
+
<button
|
|
11976
|
+
type="button"
|
|
11977
|
+
role="tab"
|
|
11978
|
+
class="prx-rich-editor__tab"
|
|
11979
|
+
[class.prx-rich-editor__tab--active]="activeEditorPanel === 'guided'"
|
|
11980
|
+
[attr.aria-selected]="activeEditorPanel === 'guided'"
|
|
11981
|
+
(click)="selectEditorPanel('guided')"
|
|
11982
|
+
data-testid="rich-content-guided-tab"
|
|
11983
|
+
>
|
|
11984
|
+
{{ tx('editor.guidedEditing', 'Guided editing') }}
|
|
11985
|
+
</button>
|
|
11986
|
+
<button
|
|
11987
|
+
type="button"
|
|
11988
|
+
role="tab"
|
|
11989
|
+
class="prx-rich-editor__tab"
|
|
11990
|
+
[class.prx-rich-editor__tab--active]="activeEditorPanel === 'preview'"
|
|
11991
|
+
[attr.aria-selected]="activeEditorPanel === 'preview'"
|
|
11992
|
+
(click)="selectEditorPanel('preview')"
|
|
11993
|
+
data-testid="rich-content-preview-tab"
|
|
11994
|
+
>
|
|
11995
|
+
{{ tx('editor.preview', 'Preview') }}
|
|
11996
|
+
</button>
|
|
11997
|
+
<button
|
|
11998
|
+
type="button"
|
|
11999
|
+
role="tab"
|
|
12000
|
+
class="prx-rich-editor__tab"
|
|
12001
|
+
[class.prx-rich-editor__tab--active]="activeEditorPanel === 'json'"
|
|
12002
|
+
[attr.aria-selected]="activeEditorPanel === 'json'"
|
|
12003
|
+
(click)="selectEditorPanel('json')"
|
|
12004
|
+
data-testid="rich-content-json-tab"
|
|
12005
|
+
>
|
|
12006
|
+
{{ tx('editor.document', 'Advanced JSON') }}
|
|
12007
|
+
@if (!valid || validationIssues.length) {
|
|
12008
|
+
<span class="prx-rich-editor__tab-badge">
|
|
12009
|
+
{{
|
|
12010
|
+
validationIssues.length || tx('editor.invalidBadge', 'Invalid')
|
|
12011
|
+
}}
|
|
12012
|
+
</span>
|
|
12013
|
+
}
|
|
12014
|
+
</button>
|
|
12015
|
+
</nav>
|
|
12016
|
+
|
|
12017
|
+
@if (activeEditorPanel === 'guided') {
|
|
12018
|
+
<section
|
|
12019
|
+
class="prx-rich-editor__blocks"
|
|
12020
|
+
role="tabpanel"
|
|
12021
|
+
[attr.aria-label]="tx('editor.guidedEditing', 'Guided editing')"
|
|
12022
|
+
>
|
|
11313
12023
|
<header class="prx-rich-editor__section-header">
|
|
11314
12024
|
<div>
|
|
11315
12025
|
<h3>{{ tx('editor.blocks', 'Blocks') }}</h3>
|
|
@@ -11373,8 +12083,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
11373
12083
|
{{ tx('editor.block', 'Block') }} {{ nodeIndex + 1 }}
|
|
11374
12084
|
</span>
|
|
11375
12085
|
<strong>{{ tx('editor.nodeType.' + node.type, node.type) }}</strong>
|
|
11376
|
-
@if (
|
|
11377
|
-
<small>
|
|
12086
|
+
@if (getIssueCount('$.nodes[' + nodeIndex + ']'); as issueCount) {
|
|
12087
|
+
<small>
|
|
12088
|
+
{{ tx('editor.hasIssues', 'Needs attention') }}
|
|
12089
|
+
<span class="prx-rich-editor__issue-count">{{ issueCount }}</span>
|
|
12090
|
+
</small>
|
|
11378
12091
|
}
|
|
11379
12092
|
</button>
|
|
11380
12093
|
}
|
|
@@ -11395,6 +12108,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
11395
12108
|
</p>
|
|
11396
12109
|
</div>
|
|
11397
12110
|
</header>
|
|
12111
|
+
<div
|
|
12112
|
+
class="prx-rich-editor__intent-strip"
|
|
12113
|
+
[attr.aria-label]="tx('editor.intentNavigation', 'Property sections')"
|
|
12114
|
+
>
|
|
12115
|
+
<span>
|
|
12116
|
+
<strong>{{ tx('editor.intent.content', 'Content') }}</strong>
|
|
12117
|
+
<small>{{ tx('editor.intent.contentHelp', 'Primary block fields') }}</small>
|
|
12118
|
+
</span>
|
|
12119
|
+
<span>
|
|
12120
|
+
<strong>{{ tx('editor.intent.presentation', 'Presentation') }}</strong>
|
|
12121
|
+
<small>{{ tx('editor.intent.presentationHelp', 'Visual affordances') }}</small>
|
|
12122
|
+
</span>
|
|
12123
|
+
<button type="button" (click)="openAdvancedRules()">
|
|
12124
|
+
<strong>{{ tx('editor.intent.dataRules', 'Data and rules') }}</strong>
|
|
12125
|
+
<small>{{ tx('editor.intent.dataRulesHelp', 'Metadata and gates') }}</small>
|
|
12126
|
+
@if (getSelectedNodeIssueCount(); as selectedIssueCount) {
|
|
12127
|
+
<span class="prx-rich-editor__issue-count">
|
|
12128
|
+
{{ selectedIssueCount }}
|
|
12129
|
+
</span>
|
|
12130
|
+
}
|
|
12131
|
+
</button>
|
|
12132
|
+
</div>
|
|
11398
12133
|
<div class="prx-rich-editor__node-list">
|
|
11399
12134
|
@for (node of parsedDocument?.nodes ?? []; track node.id ?? $index; let nodeIndex = $index) {
|
|
11400
12135
|
@if (selectedNodeIndex === nodeIndex) {
|
|
@@ -14050,83 +14785,148 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
14050
14785
|
</p>
|
|
14051
14786
|
}
|
|
14052
14787
|
}
|
|
14053
|
-
<
|
|
14054
|
-
|
|
14055
|
-
|
|
14056
|
-
|
|
14057
|
-
|
|
14058
|
-
|
|
14059
|
-
|
|
14060
|
-
|
|
14061
|
-
|
|
14062
|
-
|
|
14063
|
-
|
|
14064
|
-
|
|
14065
|
-
|
|
14066
|
-
|
|
14067
|
-
|
|
14068
|
-
|
|
14069
|
-
/>
|
|
14070
|
-
</label>
|
|
14071
|
-
<label>
|
|
14072
|
-
<span>{{ tx('editor.field.requiresCapabilities', 'Capabilities') }}</span>
|
|
14073
|
-
<input
|
|
14074
|
-
[ngModel]="getCapabilityList(node)"
|
|
14075
|
-
(ngModelChange)="setCapabilityList($index, $event)"
|
|
14076
|
-
[placeholder]="tx('editor.placeholder.requiresCapabilities', 'form.mode.edit, employee.open')"
|
|
14077
|
-
/>
|
|
14078
|
-
</label>
|
|
14079
|
-
<label>
|
|
14080
|
-
<span>{{ tx('editor.field.capabilityMode', 'Capability mode') }}</span>
|
|
14081
|
-
<select
|
|
14082
|
-
[ngModel]="getStringField(node, 'capabilityMode') || 'all'"
|
|
14083
|
-
(ngModelChange)="setStringField($index, 'capabilityMode', $event)"
|
|
14084
|
-
>
|
|
14085
|
-
<option value="all">{{ tx('editor.capabilityMode.all', 'All') }}</option>
|
|
14086
|
-
<option value="any">{{ tx('editor.capabilityMode.any', 'Any') }}</option>
|
|
14087
|
-
</select>
|
|
14088
|
-
</label>
|
|
14089
|
-
</fieldset>
|
|
14788
|
+
<details
|
|
14789
|
+
class="prx-rich-editor__advanced-group"
|
|
14790
|
+
[open]="advancedRulesOpen"
|
|
14791
|
+
(toggle)="onAdvancedRulesToggle($event)"
|
|
14792
|
+
>
|
|
14793
|
+
<summary>
|
|
14794
|
+
<span>{{ tx('editor.advancedDataRules', 'Advanced data and rules') }}</span>
|
|
14795
|
+
<small>
|
|
14796
|
+
{{
|
|
14797
|
+
tx(
|
|
14798
|
+
'editor.advancedDataRulesHelp',
|
|
14799
|
+
'Metadata, capability gates, visibility and safe style.'
|
|
14800
|
+
)
|
|
14801
|
+
}}
|
|
14802
|
+
</small>
|
|
14803
|
+
</summary>
|
|
14090
14804
|
|
|
14091
|
-
|
|
14092
|
-
|
|
14093
|
-
|
|
14094
|
-
|
|
14095
|
-
|
|
14096
|
-
|
|
14097
|
-
|
|
14098
|
-
|
|
14099
|
-
|
|
14100
|
-
|
|
14101
|
-
|
|
14102
|
-
|
|
14103
|
-
|
|
14104
|
-
|
|
14105
|
-
|
|
14106
|
-
|
|
14107
|
-
|
|
14108
|
-
|
|
14109
|
-
|
|
14805
|
+
<fieldset class="prx-rich-editor__field-group">
|
|
14806
|
+
<legend>{{ tx('editor.commonMetadata', 'Common metadata') }}</legend>
|
|
14807
|
+
<label>
|
|
14808
|
+
<span>{{ tx('editor.field.testId', 'Test id') }}</span>
|
|
14809
|
+
<input
|
|
14810
|
+
[ngModel]="getStringField(node, 'testId')"
|
|
14811
|
+
(ngModelChange)="setStringField($index, 'testId', $event)"
|
|
14812
|
+
[placeholder]="tx('editor.placeholder.testId', 'rich-hero-title')"
|
|
14813
|
+
/>
|
|
14814
|
+
</label>
|
|
14815
|
+
<label>
|
|
14816
|
+
<span>{{ tx('editor.field.className', 'CSS class') }}</span>
|
|
14817
|
+
<input
|
|
14818
|
+
[ngModel]="getStringField(node, 'className')"
|
|
14819
|
+
(ngModelChange)="setStringField($index, 'className', $event)"
|
|
14820
|
+
[placeholder]="tx('editor.placeholder.className', 'hero-title')"
|
|
14821
|
+
/>
|
|
14822
|
+
</label>
|
|
14823
|
+
<label>
|
|
14824
|
+
<span>{{ tx('editor.field.requiresCapabilities', 'Capabilities') }}</span>
|
|
14825
|
+
<input
|
|
14826
|
+
[ngModel]="getCapabilityList(node)"
|
|
14827
|
+
(ngModelChange)="setCapabilityList($index, $event)"
|
|
14828
|
+
[placeholder]="tx('editor.placeholder.requiresCapabilities', 'form.mode.edit, employee.open')"
|
|
14829
|
+
/>
|
|
14830
|
+
</label>
|
|
14831
|
+
<label>
|
|
14832
|
+
<span>{{ tx('editor.field.capabilityMode', 'Capability mode') }}</span>
|
|
14833
|
+
<select
|
|
14834
|
+
[ngModel]="getStringField(node, 'capabilityMode') || 'all'"
|
|
14835
|
+
(ngModelChange)="setStringField($index, 'capabilityMode', $event)"
|
|
14836
|
+
>
|
|
14837
|
+
<option value="all">{{ tx('editor.capabilityMode.all', 'All') }}</option>
|
|
14838
|
+
<option value="any">{{ tx('editor.capabilityMode.any', 'Any') }}</option>
|
|
14839
|
+
</select>
|
|
14840
|
+
</label>
|
|
14841
|
+
</fieldset>
|
|
14110
14842
|
|
|
14111
|
-
|
|
14112
|
-
|
|
14113
|
-
|
|
14114
|
-
|
|
14115
|
-
|
|
14116
|
-
|
|
14117
|
-
|
|
14118
|
-
|
|
14119
|
-
|
|
14120
|
-
|
|
14121
|
-
|
|
14122
|
-
|
|
14123
|
-
|
|
14124
|
-
|
|
14125
|
-
|
|
14126
|
-
|
|
14127
|
-
|
|
14128
|
-
|
|
14129
|
-
|
|
14843
|
+
<fieldset class="prx-rich-editor__field-group">
|
|
14844
|
+
<legend>{{ tx('editor.visibilityRule', 'Visibility rule') }}</legend>
|
|
14845
|
+
<label>
|
|
14846
|
+
<span>{{ tx('editor.field.visibleWhenPath', 'Context path') }}</span>
|
|
14847
|
+
<input
|
|
14848
|
+
[ngModel]="getVisibleWhenPath(node)"
|
|
14849
|
+
(ngModelChange)="setVisibleWhenPath($index, $event)"
|
|
14850
|
+
[placeholder]="tx('editor.placeholder.visibleWhenPath', 'row.active')"
|
|
14851
|
+
/>
|
|
14852
|
+
</label>
|
|
14853
|
+
<label>
|
|
14854
|
+
<span>{{ tx('editor.field.visibleWhenValue', 'Expected value') }}</span>
|
|
14855
|
+
<input
|
|
14856
|
+
[ngModel]="getVisibleWhenValue(node)"
|
|
14857
|
+
(ngModelChange)="setVisibleWhenValue($index, $event)"
|
|
14858
|
+
[placeholder]="tx('editor.placeholder.visibleWhenValue', 'true')"
|
|
14859
|
+
/>
|
|
14860
|
+
</label>
|
|
14861
|
+
</fieldset>
|
|
14862
|
+
|
|
14863
|
+
<fieldset class="prx-rich-editor__field-group">
|
|
14864
|
+
<legend>{{ tx('editor.safeStyle', 'Safe style') }}</legend>
|
|
14865
|
+
<label>
|
|
14866
|
+
<span>{{ tx('editor.field.styleName', 'CSS property') }}</span>
|
|
14867
|
+
<input
|
|
14868
|
+
[ngModel]="getFirstStyleName(node)"
|
|
14869
|
+
(ngModelChange)="setFirstStyleName($index, $event)"
|
|
14870
|
+
[placeholder]="tx('editor.placeholder.styleName', 'color')"
|
|
14871
|
+
/>
|
|
14872
|
+
</label>
|
|
14873
|
+
<label>
|
|
14874
|
+
<span>{{ tx('editor.field.styleValue', 'CSS value') }}</span>
|
|
14875
|
+
<input
|
|
14876
|
+
[ngModel]="getFirstStyleValue(node)"
|
|
14877
|
+
(ngModelChange)="setFirstStyleValue($index, $event)"
|
|
14878
|
+
[placeholder]="tx('editor.placeholder.styleValue', 'var(--md-sys-color-primary)')"
|
|
14879
|
+
/>
|
|
14880
|
+
</label>
|
|
14881
|
+
</fieldset>
|
|
14882
|
+
|
|
14883
|
+
@if (getAdvancedJsonOnlyFields(node).length) {
|
|
14884
|
+
<aside class="prx-rich-editor__advanced-json-map">
|
|
14885
|
+
<strong>{{ tx('editor.advancedJsonFields', 'Advanced JSON fields present') }}</strong>
|
|
14886
|
+
<p>
|
|
14887
|
+
{{
|
|
14888
|
+
tx(
|
|
14889
|
+
'editor.advancedJsonFieldsHelp',
|
|
14890
|
+
'These canonical fields are preserved by guided edits and remain editable in the Advanced JSON tab.'
|
|
14891
|
+
)
|
|
14892
|
+
}}
|
|
14893
|
+
</p>
|
|
14894
|
+
<div class="prx-rich-editor__advanced-json-chips">
|
|
14895
|
+
@for (field of getAdvancedJsonOnlyFields(node); track field) {
|
|
14896
|
+
<code>{{ field }}</code>
|
|
14897
|
+
}
|
|
14898
|
+
</div>
|
|
14899
|
+
</aside>
|
|
14900
|
+
}
|
|
14901
|
+
|
|
14902
|
+
<fieldset class="prx-rich-editor__field-group prx-rich-editor__json-fieldset">
|
|
14903
|
+
<legend>{{ tx('editor.advancedJsonEditor', 'Advanced JSON editor') }}</legend>
|
|
14904
|
+
<p class="prx-rich-editor__field-help">
|
|
14905
|
+
{{
|
|
14906
|
+
tx(
|
|
14907
|
+
'editor.advancedJsonEditorHelp',
|
|
14908
|
+
'Edit canonical data bindings and JsonLogic rule fields without leaving guided editing.'
|
|
14909
|
+
)
|
|
14910
|
+
}}
|
|
14911
|
+
</p>
|
|
14912
|
+
@for (field of advancedJsonOnlyNodeFields; track field) {
|
|
14913
|
+
<label class="prx-rich-editor__wide-field prx-rich-editor__json-field">
|
|
14914
|
+
<span>{{ tx('editor.field.' + field, field) }}</span>
|
|
14915
|
+
<textarea
|
|
14916
|
+
[ngModel]="getAdvancedJsonFieldValue(nodeIndex, node, field)"
|
|
14917
|
+
(ngModelChange)="setAdvancedJsonField(nodeIndex, field, $event)"
|
|
14918
|
+
[placeholder]="getAdvancedJsonFieldPlaceholder(field)"
|
|
14919
|
+
[class.invalid]="getAdvancedJsonFieldError(nodeIndex, field)"
|
|
14920
|
+
></textarea>
|
|
14921
|
+
@if (getAdvancedJsonFieldError(nodeIndex, field)) {
|
|
14922
|
+
<small class="prx-rich-editor__field-error">
|
|
14923
|
+
{{ getAdvancedJsonFieldError(nodeIndex, field) }}
|
|
14924
|
+
</small>
|
|
14925
|
+
}
|
|
14926
|
+
</label>
|
|
14927
|
+
}
|
|
14928
|
+
</fieldset>
|
|
14929
|
+
</details>
|
|
14130
14930
|
</div>
|
|
14131
14931
|
</article>
|
|
14132
14932
|
}
|
|
@@ -14140,7 +14940,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
14140
14940
|
</p>
|
|
14141
14941
|
}
|
|
14142
14942
|
</section>
|
|
14943
|
+
}
|
|
14143
14944
|
|
|
14945
|
+
@if (activeEditorPanel === 'preview') {
|
|
14946
|
+
<section
|
|
14947
|
+
class="prx-rich-editor__preview-panel"
|
|
14948
|
+
role="tabpanel"
|
|
14949
|
+
[attr.aria-label]="tx('editor.preview', 'Preview')"
|
|
14950
|
+
>
|
|
14951
|
+
<header class="prx-rich-editor__section-header">
|
|
14952
|
+
<div>
|
|
14953
|
+
<h3>{{ tx('editor.preview', 'Preview') }}</h3>
|
|
14954
|
+
<p>
|
|
14955
|
+
{{
|
|
14956
|
+
tx(
|
|
14957
|
+
'editor.previewHelp',
|
|
14958
|
+
'Inspect the materialized document without mixing preview with authoring fields.'
|
|
14959
|
+
)
|
|
14960
|
+
}}
|
|
14961
|
+
</p>
|
|
14962
|
+
</div>
|
|
14963
|
+
</header>
|
|
14964
|
+
@if (parsedDocument) {
|
|
14965
|
+
<div class="prx-rich-editor__preview prx-rich-editor__preview--large">
|
|
14966
|
+
<praxis-rich-content
|
|
14967
|
+
[document]="parsedDocument"
|
|
14968
|
+
[layout]="layout"
|
|
14969
|
+
[rootClassName]="rootClassName"
|
|
14970
|
+
></praxis-rich-content>
|
|
14971
|
+
</div>
|
|
14972
|
+
} @else {
|
|
14973
|
+
<p class="prx-rich-editor__empty">
|
|
14974
|
+
{{ tx('editor.previewUnavailable', 'Preview is unavailable until the document is valid.') }}
|
|
14975
|
+
</p>
|
|
14976
|
+
}
|
|
14977
|
+
</section>
|
|
14978
|
+
}
|
|
14979
|
+
|
|
14980
|
+
@if (activeEditorPanel === 'json') {
|
|
14144
14981
|
<section class="prx-rich-editor__document-panel">
|
|
14145
14982
|
<header class="prx-rich-editor__section-header">
|
|
14146
14983
|
<div>
|
|
@@ -14191,18 +15028,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
14191
15028
|
</dl>
|
|
14192
15029
|
</section>
|
|
14193
15030
|
|
|
14194
|
-
@if (parsedDocument) {
|
|
14195
|
-
<section>
|
|
14196
|
-
<h3>{{ tx('editor.preview', 'Preview') }}</h3>
|
|
14197
|
-
<div class="prx-rich-editor__preview">
|
|
14198
|
-
<praxis-rich-content
|
|
14199
|
-
[document]="parsedDocument"
|
|
14200
|
-
[layout]="layout"
|
|
14201
|
-
[rootClassName]="rootClassName"
|
|
14202
|
-
></praxis-rich-content>
|
|
14203
|
-
</div>
|
|
14204
|
-
</section>
|
|
14205
|
-
}
|
|
14206
15031
|
</aside>
|
|
14207
15032
|
</div>
|
|
14208
15033
|
</section>
|
|
@@ -14235,6 +15060,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
14235
15060
|
}}
|
|
14236
15061
|
</p>
|
|
14237
15062
|
}
|
|
15063
|
+
}
|
|
14238
15064
|
|
|
14239
15065
|
<div class="prx-rich-editor__actions">
|
|
14240
15066
|
<button type="button" (click)="reset()">
|
|
@@ -14245,10 +15071,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
14245
15071
|
</button>
|
|
14246
15072
|
</div>
|
|
14247
15073
|
</section>
|
|
14248
|
-
`, styles: [":host{display:block;min-width:0}.prx-rich-editor{display:grid;gap:18px;color:var(--md-sys-color-on-surface, #1f2937)}.prx-rich-editor__header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.prx-rich-editor__header h2{margin:0;font-size:1.25rem}.prx-rich-editor__header p{margin:6px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673)}.prx-rich-editor__eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--md-sys-color-primary, #3154e7)}.prx-rich-editor__status{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,#16a34a 12%,transparent);color:#166534;font-size:.78rem;font-weight:700}.prx-rich-editor__status.invalid{background:color-mix(in srgb,#dc2626 12%,transparent);color:#991b1b}.prx-rich-editor__grid{display:grid;gap:14px;grid-template-columns:minmax(0,180px) minmax(0,1fr)}.prx-rich-editor__blocks{display:grid;gap:14px}.prx-rich-editor__authoring-shell{display:grid;gap:14px;grid-template-columns:minmax(220px,.34fr) minmax(0,1fr);align-items:start}.prx-rich-editor__structure,.prx-rich-editor__properties,.prx-rich-editor__document-panel{min-width:0;display:grid;gap:12px}.prx-rich-editor__structure{position:sticky;top:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__structure-summary{display:grid;gap:4px}.prx-rich-editor__structure-summary span{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.82rem;font-weight:500}.prx-rich-editor__structure-list{display:grid;gap:8px}.prx-rich-editor__structure-item{display:grid;gap:3px;width:100%;padding:10px;text-align:left;color:var(--md-sys-color-on-surface, #1f2937);background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__structure-item--selected{border-color:var(--md-sys-color-primary, #3154e7);background:color-mix(in srgb,var(--md-sys-color-primary, #3154e7) 8%,var(--md-sys-color-surface, #fff))}.prx-rich-editor__structure-item small{color:#991b1b;font-weight:700}.prx-rich-editor__section-header,.prx-rich-editor__node-header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.prx-rich-editor__section-header h3,.prx-rich-editor__node-header h4{margin:0}.prx-rich-editor__section-header p,.prx-rich-editor__node-note,.prx-rich-editor__empty{margin:6px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.88rem}.prx-rich-editor__add-block,.prx-rich-editor__node-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.prx-rich-editor__add-block label{min-width:180px}.prx-rich-editor__node-list{display:grid;gap:12px}.prx-rich-editor__node-card{display:grid;gap:14px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:14px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__node-eyebrow{margin:0 0 4px;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.75rem;font-weight:700;text-transform:uppercase}.prx-rich-editor__node-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.prx-rich-editor__wide-field,.prx-rich-editor__node-note{grid-column:1 / -1}.prx-rich-editor__field-group,.prx-rich-editor__nested-editor,.prx-rich-editor__nested-node{grid-column:1 / -1;display:grid;gap:12px}.prx-rich-editor__field-group,.prx-rich-editor__nested-node{margin:0;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px}.prx-rich-editor__field-group{grid-template-columns:repeat(2,minmax(0,1fr))}.prx-rich-editor__field-group legend{padding:0 4px;font-weight:700}.prx-rich-editor__nested-header,.prx-rich-editor__nested-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.prx-rich-editor__quick-actions{display:flex;flex-wrap:wrap;gap:8px}.prx-rich-editor__node-grid textarea{min-height:96px;font-family:inherit}label,.prx-rich-editor__document{display:grid;gap:7px;font-weight:700}.prx-rich-editor__checkbox-field{display:flex;gap:10px;align-items:center;align-self:end}.prx-rich-editor__checkbox-field input[type=checkbox]{width:auto}input,select,textarea{box-sizing:border-box;width:100%;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:12px;padding:10px 12px;font:inherit;color:inherit;background:var(--md-sys-color-surface, #fff)}textarea{min-height:360px;resize:vertical;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.86rem;line-height:1.45}.prx-rich-editor__workbench{display:grid;gap:14px;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}.prx-rich-editor__inspector{display:grid;align-content:start;gap:14px;min-width:0;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__inspector h3{margin:0 0 8px;font-size:.95rem}.prx-rich-editor__inspector dl{display:grid;gap:8px;margin:0}.prx-rich-editor__inspector dl div{display:grid;gap:2px}.prx-rich-editor__inspector dt{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:700}.prx-rich-editor__inspector dd{margin:0;overflow-wrap:anywhere;font-weight:600}.prx-rich-editor__preview{max-height:260px;overflow:auto;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__help{margin:-8px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.85rem}.prx-rich-editor__error{margin:0;padding:10px 12px;border-radius:8px;color:#991b1b;background:color-mix(in srgb,#dc2626 9%,transparent)}.prx-rich-editor__error p{margin:0}.prx-rich-editor__error ul{display:grid;gap:6px;margin:8px 0 0;padding-inline-start:18px}.prx-rich-editor__error code{margin-right:4px;font-family:Cascadia Code,Fira Code,Consolas,monospace}.prx-rich-editor__actions{display:flex;flex-wrap:wrap;gap:10px}button{border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:8px 14px;background:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-primary, #3154e7);font-weight:700;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}@media(max-width:760px){.prx-rich-editor__header,.prx-rich-editor__section-header,.prx-rich-editor__node-header,.prx-rich-editor__authoring-shell,.prx-rich-editor__grid,.prx-rich-editor__field-group,.prx-rich-editor__node-grid,.prx-rich-editor__workbench{grid-template-columns:1fr;display:grid}.prx-rich-editor__structure{position:static}}\n"] }]
|
|
15074
|
+
`, styles: [":host{display:block;min-width:0;width:100%;max-width:100%;box-sizing:border-box}.prx-rich-editor{display:grid;gap:18px;min-width:0;color:var(--md-sys-color-on-surface, #1f2937)}.prx-rich-editor__header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.prx-rich-editor__header h2{margin:0;font-size:1.25rem}.prx-rich-editor__header p{margin:6px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673)}.prx-rich-editor__eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--md-sys-color-primary, #3154e7)}.prx-rich-editor__status{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,#16a34a 12%,transparent);color:#166534;font-size:.78rem;font-weight:700}.prx-rich-editor__status.invalid{background:color-mix(in srgb,#dc2626 12%,transparent);color:#991b1b}.prx-rich-editor__grid{display:grid;gap:14px;grid-template-columns:minmax(0,180px) minmax(0,1fr)}.prx-rich-editor__tabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-bottom:1px solid var(--md-sys-color-outline-variant, #d7dce5)}.prx-rich-editor__tab{margin-block-end:-1px;border-radius:8px 8px 0 0;border-bottom-color:transparent;color:var(--md-sys-color-on-surface-variant, #5f6673);background:transparent}.prx-rich-editor__tab--active{border-color:var(--md-sys-color-outline-variant, #d7dce5);border-bottom-color:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-primary, #3154e7);background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__tab-badge,.prx-rich-editor__issue-count{display:inline-flex;min-width:1.35em;min-height:1.35em;padding:0 .38em;border-radius:999px;align-items:center;justify-content:center;background:color-mix(in srgb,#dc2626 14%,transparent);color:#991b1b;font-size:.72rem;font-weight:800;line-height:1}.prx-rich-editor__tab-badge{margin-inline-start:6px}.prx-rich-editor__blocks{display:grid;gap:14px}.prx-rich-editor__authoring-shell{display:grid;gap:14px;grid-template-columns:minmax(220px,.34fr) minmax(0,1fr);align-items:start}.prx-rich-editor__structure,.prx-rich-editor__properties,.prx-rich-editor__document-panel,.prx-rich-editor__preview-panel{min-width:0;display:grid;gap:12px}.prx-rich-editor__structure{position:sticky;top:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__structure-summary{display:grid;gap:4px}.prx-rich-editor__structure-summary span{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.82rem;font-weight:500}.prx-rich-editor__structure-list{display:grid;gap:8px}.prx-rich-editor__structure-item{display:grid;gap:3px;width:100%;padding:10px;text-align:left;color:var(--md-sys-color-on-surface, #1f2937);background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__structure-item--selected{border-color:var(--md-sys-color-primary, #3154e7);background:color-mix(in srgb,var(--md-sys-color-primary, #3154e7) 8%,var(--md-sys-color-surface, #fff))}.prx-rich-editor__structure-item small{color:#991b1b;font-weight:700}.prx-rich-editor__intent-strip{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.prx-rich-editor__intent-strip span,.prx-rich-editor__intent-strip button{min-width:0;display:grid;gap:3px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:10px 12px;text-align:left;color:var(--md-sys-color-on-surface, #1f2937);background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__intent-strip button{position:relative}.prx-rich-editor__intent-strip small{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:600}.prx-rich-editor__intent-strip .prx-rich-editor__issue-count{position:absolute;inset-block-start:8px;inset-inline-end:8px}.prx-rich-editor__section-header,.prx-rich-editor__node-header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.prx-rich-editor__section-header h3,.prx-rich-editor__node-header h4{margin:0}.prx-rich-editor__section-header p,.prx-rich-editor__node-note,.prx-rich-editor__empty{margin:6px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.88rem}.prx-rich-editor__add-block,.prx-rich-editor__node-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.prx-rich-editor__add-block label{min-width:180px}.prx-rich-editor__node-list{display:grid;gap:12px}.prx-rich-editor__node-card{display:grid;gap:14px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:14px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__node-eyebrow{margin:0 0 4px;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.75rem;font-weight:700;text-transform:uppercase}.prx-rich-editor__node-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.prx-rich-editor__wide-field,.prx-rich-editor__node-note{grid-column:1 / -1}.prx-rich-editor__field-group,.prx-rich-editor__nested-editor,.prx-rich-editor__nested-node{grid-column:1 / -1;display:grid;gap:12px}.prx-rich-editor__field-group,.prx-rich-editor__nested-node{margin:0;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px}.prx-rich-editor__document-context{display:grid;gap:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__document-context summary{display:flex;gap:10px;align-items:center;justify-content:space-between;cursor:pointer;font-weight:800}.prx-rich-editor__document-context summary small{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:600}.prx-rich-editor__document-context[open] summary{margin-block-end:12px}.prx-rich-editor__field-group{grid-template-columns:repeat(2,minmax(0,1fr))}.prx-rich-editor__field-group legend{padding:0 4px;font-weight:700}.prx-rich-editor__field-help{grid-column:1 / -1;margin:0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.84rem}.prx-rich-editor__json-fieldset{margin-block-start:12px}.prx-rich-editor__json-field{display:grid;gap:6px}.prx-rich-editor__json-field textarea{min-height:96px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.8rem;line-height:1.45}.prx-rich-editor__field-error{color:var(--md-sys-color-error, #ba1a1a);font-size:.78rem;font-weight:700}.prx-rich-editor__advanced-group{grid-column:1 / -1;display:grid;gap:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:color-mix(in srgb,var(--md-sys-color-surface-container-lowest, #fff) 88%,var(--md-sys-color-primary, #3154e7) 4%)}.prx-rich-editor__advanced-group summary{display:flex;gap:10px;align-items:center;justify-content:space-between;cursor:pointer;font-weight:800}.prx-rich-editor__advanced-group summary small{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:600}.prx-rich-editor__advanced-group[open]{padding-block-end:14px}.prx-rich-editor__advanced-group[open] summary{margin-block-end:12px}.prx-rich-editor__advanced-group .prx-rich-editor__field-group+.prx-rich-editor__field-group{margin-block-start:12px}.prx-rich-editor__advanced-json-map{display:grid;gap:8px;margin-block-start:12px;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__advanced-json-map p{margin:0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.84rem}.prx-rich-editor__advanced-json-chips{display:flex;flex-wrap:wrap;gap:6px}.prx-rich-editor__advanced-json-chips code{border-radius:999px;padding:4px 8px;background:color-mix(in srgb,var(--md-sys-color-primary, #3154e7) 12%,transparent);color:var(--md-sys-color-primary, #3154e7);font-size:.76rem;font-weight:700}.prx-rich-editor__nested-header,.prx-rich-editor__nested-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.prx-rich-editor__quick-actions{display:flex;flex-wrap:wrap;gap:8px}.prx-rich-editor__node-grid textarea{min-height:96px;font-family:inherit}label,.prx-rich-editor__document{display:grid;gap:7px;font-weight:700}.prx-rich-editor__checkbox-field{display:flex;gap:10px;align-items:center;align-self:end}.prx-rich-editor__checkbox-field input[type=checkbox]{width:auto}input,select,textarea{box-sizing:border-box;width:100%;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:12px;padding:10px 12px;font:inherit;color:inherit;background:var(--md-sys-color-surface, #fff)}textarea{min-height:360px;resize:vertical;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.86rem;line-height:1.45}.prx-rich-editor__workbench{display:grid;gap:14px;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}.prx-rich-editor__inspector{display:grid;align-content:start;gap:14px;min-width:0;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface-container-lowest, #fff)}.prx-rich-editor__inspector h3{margin:0 0 8px;font-size:.95rem}.prx-rich-editor__inspector dl{display:grid;gap:8px;margin:0}.prx-rich-editor__inspector dl div{display:grid;gap:2px}.prx-rich-editor__inspector dt{color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.78rem;font-weight:700}.prx-rich-editor__inspector dd{margin:0;overflow-wrap:anywhere;font-weight:600}.prx-rich-editor__preview{max-height:260px;overflow:auto;border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:12px;background:var(--md-sys-color-surface, #fff)}.prx-rich-editor__preview--large{max-height:min(68vh,760px)}.prx-rich-editor__help{margin:-8px 0 0;color:var(--md-sys-color-on-surface-variant, #5f6673);font-size:.85rem}.prx-rich-editor__error{margin:0;padding:10px 12px;border-radius:8px;color:#991b1b;background:color-mix(in srgb,#dc2626 9%,transparent)}.prx-rich-editor__error p{margin:0}.prx-rich-editor__error ul{display:grid;gap:6px;margin:8px 0 0;padding-inline-start:18px}.prx-rich-editor__error code{margin-right:4px;font-family:Cascadia Code,Fira Code,Consolas,monospace}.prx-rich-editor__actions{display:flex;flex-wrap:wrap;gap:10px}button{border:1px solid var(--md-sys-color-outline-variant, #d7dce5);border-radius:8px;padding:8px 14px;background:var(--md-sys-color-surface, #fff);color:var(--md-sys-color-primary, #3154e7);font-weight:700;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}@media(max-width:760px){.prx-rich-editor__header,.prx-rich-editor__section-header,.prx-rich-editor__node-header,.prx-rich-editor__authoring-shell,.prx-rich-editor__intent-strip,.prx-rich-editor__grid,.prx-rich-editor__document-context summary,.prx-rich-editor__field-group,.prx-rich-editor__node-grid,.prx-rich-editor__workbench{grid-template-columns:1fr;display:grid}.prx-rich-editor__structure{position:static}}\n"] }]
|
|
14249
15075
|
}], propDecorators: { inputs: [{
|
|
14250
15076
|
type: Input
|
|
14251
15077
|
}] } });
|
|
15078
|
+
function isPlainRecord(value) {
|
|
15079
|
+
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
15080
|
+
}
|
|
14252
15081
|
|
|
14253
15082
|
const DEFAULT_RICH_CONTENT_DOCUMENT = {
|
|
14254
15083
|
kind: 'praxis.rich-content',
|
|
@@ -17389,6 +18218,188 @@ const RICH_CONTENT_INSERTION_PRESETS = [
|
|
|
17389
18218
|
},
|
|
17390
18219
|
},
|
|
17391
18220
|
},
|
|
18221
|
+
{
|
|
18222
|
+
id: 'corporate-information-surface',
|
|
18223
|
+
label: 'Corporate information surface',
|
|
18224
|
+
description: 'Enterprise starter for SAP-like record details with KPIs, dates, currency, notes, progress, timeline and governed decision context.',
|
|
18225
|
+
icon: 'business_center',
|
|
18226
|
+
inputs: {
|
|
18227
|
+
document: {
|
|
18228
|
+
kind: 'praxis.rich-content',
|
|
18229
|
+
version: '1.0.0',
|
|
18230
|
+
nodes: [
|
|
18231
|
+
{
|
|
18232
|
+
type: 'recordSummary',
|
|
18233
|
+
title: 'Purchase order OC-4500128391',
|
|
18234
|
+
subtitle: 'Companhia Global de Servicos S.A.',
|
|
18235
|
+
meta: 'Aguardando aprovacao fiscal',
|
|
18236
|
+
fields: [
|
|
18237
|
+
{ label: 'CNPJ fornecedor', value: '12.345.678/0001-99' },
|
|
18238
|
+
{ label: 'CPF solicitante', value: '990.000.000-47' },
|
|
18239
|
+
{ label: 'Prioridade', value: 'Alta' },
|
|
18240
|
+
],
|
|
18241
|
+
},
|
|
18242
|
+
{
|
|
18243
|
+
type: 'statGroup',
|
|
18244
|
+
title: 'Operational signals',
|
|
18245
|
+
subtitle: 'Dense indicators for enterprise work queues.',
|
|
18246
|
+
layout: 'grid',
|
|
18247
|
+
items: [
|
|
18248
|
+
{
|
|
18249
|
+
label: 'Valor liquido',
|
|
18250
|
+
value: 'R$ 1.268.114,52',
|
|
18251
|
+
caption: 'Apos impostos e estorno',
|
|
18252
|
+
icon: 'payments',
|
|
18253
|
+
tone: 'success',
|
|
18254
|
+
},
|
|
18255
|
+
{
|
|
18256
|
+
label: 'SLA restante',
|
|
18257
|
+
value: '18,5h',
|
|
18258
|
+
caption: 'Sem atraso',
|
|
18259
|
+
icon: 'schedule',
|
|
18260
|
+
tone: 'info',
|
|
18261
|
+
},
|
|
18262
|
+
{
|
|
18263
|
+
label: 'Risco',
|
|
18264
|
+
value: 'Medio',
|
|
18265
|
+
caption: 'Retencao fiscal pendente',
|
|
18266
|
+
icon: 'gpp_maybe',
|
|
18267
|
+
tone: 'warning',
|
|
18268
|
+
},
|
|
18269
|
+
],
|
|
18270
|
+
},
|
|
18271
|
+
{
|
|
18272
|
+
type: 'propertySheet',
|
|
18273
|
+
title: 'Calendario e valores',
|
|
18274
|
+
columns: 2,
|
|
18275
|
+
items: [
|
|
18276
|
+
{ label: 'Competencia', value: '04/2026' },
|
|
18277
|
+
{ label: 'Emissao', value: '28/04/2026' },
|
|
18278
|
+
{ label: 'Vencimento', value: '30 de maio de 2026' },
|
|
18279
|
+
{ label: 'Ultima atualizacao', value: '02/05/2026 16:45' },
|
|
18280
|
+
{ label: 'Valor bruto', value: 'R$ 1.389.420,75' },
|
|
18281
|
+
{ label: 'Imposto retido', value: 'R$ 121.306,23' },
|
|
18282
|
+
],
|
|
18283
|
+
},
|
|
18284
|
+
{
|
|
18285
|
+
type: 'keyValueList',
|
|
18286
|
+
title: 'Notas e listas corporativas',
|
|
18287
|
+
layout: 'stacked',
|
|
18288
|
+
items: [
|
|
18289
|
+
{
|
|
18290
|
+
label: 'Centros de custo',
|
|
18291
|
+
value: '1100 - Operacoes Brasil, 2200 - TI Corporativa, 3300 - Facilities',
|
|
18292
|
+
badge: 'rateio',
|
|
18293
|
+
},
|
|
18294
|
+
{
|
|
18295
|
+
label: 'Aprovadores',
|
|
18296
|
+
value: 'Gerencia financeira, Controladoria, Juridico tributario',
|
|
18297
|
+
badge: '3 niveis',
|
|
18298
|
+
},
|
|
18299
|
+
{
|
|
18300
|
+
label: 'Observacao',
|
|
18301
|
+
value: 'Contrato com retencao fiscal e aprovacao em multiplos niveis.',
|
|
18302
|
+
badge: 'nota',
|
|
18303
|
+
},
|
|
18304
|
+
],
|
|
18305
|
+
},
|
|
18306
|
+
{
|
|
18307
|
+
type: 'progress',
|
|
18308
|
+
label: 'Completude de aprovacao',
|
|
18309
|
+
valueExpr: '${row.approvalProgress}',
|
|
18310
|
+
max: 100,
|
|
18311
|
+
showPercent: true,
|
|
18312
|
+
},
|
|
18313
|
+
{
|
|
18314
|
+
type: 'timeline',
|
|
18315
|
+
title: 'Historico operacional',
|
|
18316
|
+
orientation: 'horizontal',
|
|
18317
|
+
order: 'normal',
|
|
18318
|
+
position: 'alternate',
|
|
18319
|
+
connectorVariant: 'dashed',
|
|
18320
|
+
connectorColor: 'neutral',
|
|
18321
|
+
markerVariant: 'number',
|
|
18322
|
+
markerColor: 'primary',
|
|
18323
|
+
markerStyle: 'filled',
|
|
18324
|
+
emphasis: 'strong',
|
|
18325
|
+
density: 'comfortable',
|
|
18326
|
+
textAppearance: 'prominent',
|
|
18327
|
+
items: [
|
|
18328
|
+
{
|
|
18329
|
+
id: 'created',
|
|
18330
|
+
title: 'Documento criado',
|
|
18331
|
+
subtitle: 'Importado da NF-e e associado ao contrato.',
|
|
18332
|
+
opposite: '28/04/2026',
|
|
18333
|
+
badge: 'origem',
|
|
18334
|
+
markerColor: 'info',
|
|
18335
|
+
},
|
|
18336
|
+
{
|
|
18337
|
+
id: 'tax-review',
|
|
18338
|
+
title: 'Analise fiscal',
|
|
18339
|
+
subtitle: 'Retencao e rateio em validacao.',
|
|
18340
|
+
opposite: '02/05/2026',
|
|
18341
|
+
badge: 'pendente',
|
|
18342
|
+
markerColor: 'warning',
|
|
18343
|
+
},
|
|
18344
|
+
{
|
|
18345
|
+
id: 'approval',
|
|
18346
|
+
title: 'Aprovacao final',
|
|
18347
|
+
subtitle: 'Pronto para decisao governada.',
|
|
18348
|
+
opposite: 'SLA 18,5h',
|
|
18349
|
+
badge: 'proximo',
|
|
18350
|
+
markerColor: 'success',
|
|
18351
|
+
markerStyle: 'outlined',
|
|
18352
|
+
},
|
|
18353
|
+
],
|
|
18354
|
+
},
|
|
18355
|
+
{
|
|
18356
|
+
type: 'decisionPackage',
|
|
18357
|
+
title: 'Decision package',
|
|
18358
|
+
subtitle: 'Fiscal approval',
|
|
18359
|
+
summary: 'Approve, request evidence or escalate from a governed host action.',
|
|
18360
|
+
status: 'simulated',
|
|
18361
|
+
owner: 'Controladoria',
|
|
18362
|
+
policySource: 'Fiscal retention policy',
|
|
18363
|
+
version: '2026.05',
|
|
18364
|
+
confidence: 82,
|
|
18365
|
+
risk: 'medium',
|
|
18366
|
+
lastReviewed: '2026-05-02',
|
|
18367
|
+
primaryAction: {
|
|
18368
|
+
type: 'actionButton',
|
|
18369
|
+
label: 'Approve package',
|
|
18370
|
+
variant: 'raised',
|
|
18371
|
+
color: 'primary',
|
|
18372
|
+
action: { actionId: 'purchaseOrder.approval.approve' },
|
|
18373
|
+
},
|
|
18374
|
+
secondaryActions: [
|
|
18375
|
+
{
|
|
18376
|
+
type: 'actionButton',
|
|
18377
|
+
label: 'Request evidence',
|
|
18378
|
+
variant: 'stroked',
|
|
18379
|
+
action: { actionId: 'purchaseOrder.approval.requestEvidence' },
|
|
18380
|
+
},
|
|
18381
|
+
],
|
|
18382
|
+
},
|
|
18383
|
+
{
|
|
18384
|
+
type: 'actionCard',
|
|
18385
|
+
title: 'Open governed workflow',
|
|
18386
|
+
subtitle: 'Host-mediated operation',
|
|
18387
|
+
message: 'Use actionCard for SAP-like enterprise flows that need audit, permission checks and contextual dispatch.',
|
|
18388
|
+
meta: 'surface.open',
|
|
18389
|
+
ctaLabel: 'Open detail',
|
|
18390
|
+
variant: 'raised',
|
|
18391
|
+
color: 'primary',
|
|
18392
|
+
action: { actionId: 'purchaseOrder.detail.open' },
|
|
18393
|
+
},
|
|
18394
|
+
],
|
|
18395
|
+
},
|
|
18396
|
+
context: {
|
|
18397
|
+
row: {
|
|
18398
|
+
approvalProgress: 58,
|
|
18399
|
+
},
|
|
18400
|
+
},
|
|
18401
|
+
},
|
|
18402
|
+
},
|
|
17392
18403
|
{
|
|
17393
18404
|
id: 'stat-group',
|
|
17394
18405
|
label: 'Stat group',
|