@praxisui/page-builder 8.0.0-beta.26 → 8.0.0-beta.27
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/fesm2022/praxisui-page-builder.mjs +137 -33
- package/index.d.ts +15 -4
- package/package.json +4 -4
|
@@ -31,7 +31,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
31
31
|
import * as i7 from '@angular/material/tabs';
|
|
32
32
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
33
33
|
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
34
|
-
import { AI_STREAM_EVENT_TYPES, toPraxisAssistantConversationMessages, PraxisAssistantTurnOrchestratorService, PraxisAssistantSessionRegistryService, PraxisAiAssistantShellComponent } from '@praxisui/ai';
|
|
34
|
+
import { AI_STREAM_EVENT_TYPES, toPraxisAssistantConversationMessages, PraxisAssistantTurnOrchestratorService, PraxisAssistantSessionRegistryService, createPraxisAssistantViewportLayout, PraxisAiAssistantShellComponent } from '@praxisui/ai';
|
|
35
35
|
|
|
36
36
|
const PLACEHOLDER = 1;
|
|
37
37
|
|
|
@@ -11345,10 +11345,11 @@ class PageBuilderAgenticAuthoringService {
|
|
|
11345
11345
|
}
|
|
11346
11346
|
createEventSource(url) {
|
|
11347
11347
|
const factory = this.options?.eventSourceFactory;
|
|
11348
|
+
const options = { withCredentials: true };
|
|
11348
11349
|
if (factory) {
|
|
11349
|
-
return factory(url);
|
|
11350
|
+
return factory(url, options);
|
|
11350
11351
|
}
|
|
11351
|
-
return new EventSource(url);
|
|
11352
|
+
return new EventSource(url, options);
|
|
11352
11353
|
}
|
|
11353
11354
|
async probeTurnStreamEndpoint(url, abort) {
|
|
11354
11355
|
if (typeof fetch === 'undefined') {
|
|
@@ -12010,7 +12011,7 @@ function compileUiCompositionPlan(plan) {
|
|
|
12010
12011
|
layoutPreset: plan.layoutPreset,
|
|
12011
12012
|
canvas: clone(plan.canvas),
|
|
12012
12013
|
state: clone(plan.state),
|
|
12013
|
-
widgets: plan.widgets.map(toWidgetInstance),
|
|
12014
|
+
widgets: plan.widgets.map((widget) => toWidgetInstance(widget, plan.bindings ?? [])),
|
|
12014
12015
|
composition: {
|
|
12015
12016
|
version: '1.0.0',
|
|
12016
12017
|
links: (plan.bindings ?? []).map(toCompositionLink),
|
|
@@ -12170,17 +12171,32 @@ function validateNestedPath(nestedPath, diagnostics, path) {
|
|
|
12170
12171
|
});
|
|
12171
12172
|
}
|
|
12172
12173
|
}
|
|
12173
|
-
function toWidgetInstance(widget) {
|
|
12174
|
+
function toWidgetInstance(widget, bindings) {
|
|
12175
|
+
const outputs = linkedTopLevelOutputs(widget.key, widget.outputs, bindings);
|
|
12174
12176
|
return {
|
|
12175
12177
|
key: widget.key,
|
|
12176
12178
|
definition: {
|
|
12177
12179
|
id: widget.componentId,
|
|
12178
12180
|
bindingOrder: widget.bindingOrder,
|
|
12179
12181
|
inputs: clone(widget.inputs ?? {}),
|
|
12180
|
-
outputs
|
|
12182
|
+
outputs,
|
|
12181
12183
|
},
|
|
12182
12184
|
};
|
|
12183
12185
|
}
|
|
12186
|
+
function linkedTopLevelOutputs(widgetKey, declaredOutputs, bindings) {
|
|
12187
|
+
const outputs = clone(declaredOutputs ?? {});
|
|
12188
|
+
for (const binding of bindings) {
|
|
12189
|
+
const endpoint = binding.from;
|
|
12190
|
+
if (endpoint.kind !== 'component-port'
|
|
12191
|
+
|| endpoint.direction !== 'output'
|
|
12192
|
+
|| endpoint.widget !== widgetKey
|
|
12193
|
+
|| endpoint.nestedPath?.length) {
|
|
12194
|
+
continue;
|
|
12195
|
+
}
|
|
12196
|
+
outputs[endpoint.port] ??= 'emit';
|
|
12197
|
+
}
|
|
12198
|
+
return outputs;
|
|
12199
|
+
}
|
|
12184
12200
|
function toCompositionLink(binding) {
|
|
12185
12201
|
const transform = binding.transform ? toCompositionTransform(binding.transform) : undefined;
|
|
12186
12202
|
return {
|
|
@@ -13358,7 +13374,7 @@ class PageBuilderAgenticAuthoringTurnFlow {
|
|
|
13358
13374
|
}
|
|
13359
13375
|
shouldFallbackFromTurnStreamError(error) {
|
|
13360
13376
|
if (this.isTurnStreamConnectionError(error)) {
|
|
13361
|
-
return
|
|
13377
|
+
return true;
|
|
13362
13378
|
}
|
|
13363
13379
|
if (this.isTurnStreamStartTimeout(error)) {
|
|
13364
13380
|
return true;
|
|
@@ -13688,8 +13704,8 @@ class PageBuilderAgenticAuthoringTurnFlow {
|
|
|
13688
13704
|
|| operationKind === 'remove';
|
|
13689
13705
|
return !!intentResolution.valid
|
|
13690
13706
|
&& intentResolution.gate?.status === 'eligible'
|
|
13691
|
-
&& !!intentResolution.selectedCandidate
|
|
13692
13707
|
&& ((allowsMaterializedArtifactOperation
|
|
13708
|
+
&& !!intentResolution.selectedCandidate
|
|
13693
13709
|
&& (artifactKind === 'form'
|
|
13694
13710
|
|| artifactKind === 'dashboard'
|
|
13695
13711
|
|| artifactKind === 'table'))
|
|
@@ -13705,12 +13721,15 @@ class PageBuilderAgenticAuthoringTurnFlow {
|
|
|
13705
13721
|
return this.isExplicitPreviewCreationPrompt(prompt);
|
|
13706
13722
|
}
|
|
13707
13723
|
isGuidedPreviewIntent(intentResolution) {
|
|
13708
|
-
if (!intentResolution.valid || intentResolution.gate?.status !== 'eligible'
|
|
13724
|
+
if (!intentResolution.valid || intentResolution.gate?.status !== 'eligible') {
|
|
13709
13725
|
return false;
|
|
13710
13726
|
}
|
|
13711
13727
|
if (this.isExecutableIntent(intentResolution)) {
|
|
13712
13728
|
return true;
|
|
13713
13729
|
}
|
|
13730
|
+
if (!intentResolution.selectedCandidate) {
|
|
13731
|
+
return false;
|
|
13732
|
+
}
|
|
13714
13733
|
const artifactKind = intentResolution.artifactKind;
|
|
13715
13734
|
return (artifactKind === 'dashboard' || artifactKind === 'page' || artifactKind === 'table' || artifactKind === 'form')
|
|
13716
13735
|
&& (intentResolution.operationKind === 'compose' || intentResolution.operationKind === 'explore');
|
|
@@ -13759,9 +13778,19 @@ class PageBuilderAgenticAuthoringTurnFlow {
|
|
|
13759
13778
|
return action && artifact;
|
|
13760
13779
|
}
|
|
13761
13780
|
isExecutablePageCompositionIntent(intentResolution) {
|
|
13762
|
-
|
|
13763
|
-
|
|
13764
|
-
|
|
13781
|
+
if (intentResolution.artifactKind !== 'page') {
|
|
13782
|
+
return false;
|
|
13783
|
+
}
|
|
13784
|
+
if ((intentResolution.operationKind === 'compose' || intentResolution.operationKind === 'modify')
|
|
13785
|
+
&& intentResolution.authoringProfile === 'ui-composition-plan@0.1.0') {
|
|
13786
|
+
return true;
|
|
13787
|
+
}
|
|
13788
|
+
if (intentResolution.operationKind !== 'create') {
|
|
13789
|
+
return false;
|
|
13790
|
+
}
|
|
13791
|
+
return intentResolution.changeKind === 'create_master_detail'
|
|
13792
|
+
|| intentResolution.changeKind === 'create_tabbed_master_detail_form'
|
|
13793
|
+
|| intentResolution.changeKind === 'create_artifact';
|
|
13765
13794
|
}
|
|
13766
13795
|
resolveIntentClarification(intentResolution) {
|
|
13767
13796
|
const questions = this.readIntentResolutionStringList(intentResolution?.clarificationQuestions);
|
|
@@ -14094,6 +14123,7 @@ function projectKnowledgeTarget(changeSet, conceptKey) {
|
|
|
14094
14123
|
};
|
|
14095
14124
|
}
|
|
14096
14125
|
|
|
14126
|
+
const AGENTIC_PAGE_COMPOSITION_REQUEST_OUTPUT = 'agenticPageCompositionRequested';
|
|
14097
14127
|
class DynamicPageBuilderComponent {
|
|
14098
14128
|
dialog;
|
|
14099
14129
|
settingsPanel;
|
|
@@ -14129,6 +14159,7 @@ class DynamicPageBuilderComponent {
|
|
|
14129
14159
|
pageLifecycleBusy = false;
|
|
14130
14160
|
pageLifecycleResetRevision = null;
|
|
14131
14161
|
pageChange = new EventEmitter();
|
|
14162
|
+
pageSaveRequested = new EventEmitter();
|
|
14132
14163
|
agenticAuthoringApplied = new EventEmitter();
|
|
14133
14164
|
agenticAuthoringSharedRuleHandoff = new EventEmitter();
|
|
14134
14165
|
pageRestart = new EventEmitter();
|
|
@@ -14178,6 +14209,7 @@ class DynamicPageBuilderComponent {
|
|
|
14178
14209
|
agenticComponentCapabilitiesPromise;
|
|
14179
14210
|
agenticTurnController;
|
|
14180
14211
|
sharedRuleHandoffRevision = 0;
|
|
14212
|
+
agenticAuthoringPanelLayoutTouched = false;
|
|
14181
14213
|
constructor(dialog, settingsPanel) {
|
|
14182
14214
|
this.dialog = dialog;
|
|
14183
14215
|
this.settingsPanel = settingsPanel;
|
|
@@ -14206,6 +14238,24 @@ class DynamicPageBuilderComponent {
|
|
|
14206
14238
|
this.clearSelectedWidgetIfMissing(cloned);
|
|
14207
14239
|
this.pageChange.emit(cloned);
|
|
14208
14240
|
}
|
|
14241
|
+
onRuntimeWidgetEvent(event) {
|
|
14242
|
+
if (event.output !== AGENTIC_PAGE_COMPOSITION_REQUEST_OUTPUT) {
|
|
14243
|
+
return;
|
|
14244
|
+
}
|
|
14245
|
+
const payload = this.toRecord(event.payload);
|
|
14246
|
+
const prompt = typeof payload?.['prompt'] === 'string' ? payload['prompt'].trim() : '';
|
|
14247
|
+
if (!prompt) {
|
|
14248
|
+
return;
|
|
14249
|
+
}
|
|
14250
|
+
const ownerWidgetKey = typeof event.ownerWidgetKey === 'string' ? event.ownerWidgetKey.trim() : '';
|
|
14251
|
+
if (ownerWidgetKey && this.resolveWidgetByKey(ownerWidgetKey)) {
|
|
14252
|
+
this.selectedWidgetKey.set(ownerWidgetKey);
|
|
14253
|
+
this.agenticAuthoringWidgetContextKey.set(ownerWidgetKey);
|
|
14254
|
+
}
|
|
14255
|
+
this.agenticAuthoringPrompt.set(prompt);
|
|
14256
|
+
this.openAgenticAuthoring();
|
|
14257
|
+
void this.previewAgenticAuthoring();
|
|
14258
|
+
}
|
|
14209
14259
|
onConnectionEditorPageChange(next) {
|
|
14210
14260
|
const cloned = this.clonePage(next);
|
|
14211
14261
|
this.currentPage.set(cloned);
|
|
@@ -14214,7 +14264,7 @@ class DynamicPageBuilderComponent {
|
|
|
14214
14264
|
}
|
|
14215
14265
|
onRuntimeWidgetSelectionChange(widgetKey) {
|
|
14216
14266
|
this.selectedWidgetKey.set(widgetKey);
|
|
14217
|
-
if (this.agenticAuthoringWidgetContextKey()) {
|
|
14267
|
+
if (widgetKey && this.agenticAuthoringWidgetContextKey()) {
|
|
14218
14268
|
this.agenticAuthoringWidgetContextKey.set(widgetKey);
|
|
14219
14269
|
}
|
|
14220
14270
|
}
|
|
@@ -14257,7 +14307,7 @@ class DynamicPageBuilderComponent {
|
|
|
14257
14307
|
const type = resolved.componentId;
|
|
14258
14308
|
const next = this.clonePage(this.currentPage());
|
|
14259
14309
|
const key = `${type}-${generateId()}`;
|
|
14260
|
-
const inputs = this.defaultInputsFor(type, resolved.inputs);
|
|
14310
|
+
const inputs = this.defaultInputsFor(type, resolved.inputs, key);
|
|
14261
14311
|
const widgets = [...(next.widgets || []), { key, definition: { id: type, inputs } }];
|
|
14262
14312
|
next.widgets = widgets;
|
|
14263
14313
|
if (next.canvas) {
|
|
@@ -14284,9 +14334,11 @@ class DynamicPageBuilderComponent {
|
|
|
14284
14334
|
this.runtime?.openPageSettings();
|
|
14285
14335
|
}
|
|
14286
14336
|
saveCurrentPage() {
|
|
14287
|
-
const
|
|
14337
|
+
const runtimeSnapshot = this.runtime?.getPageSnapshot();
|
|
14338
|
+
const cloned = this.clonePage(runtimeSnapshot || this.currentPage());
|
|
14288
14339
|
this.currentPage.set(cloned);
|
|
14289
14340
|
this.pageChange.emit(cloned);
|
|
14341
|
+
this.pageSaveRequested.emit(this.clonePage(cloned));
|
|
14290
14342
|
}
|
|
14291
14343
|
applyConfigFromAdapter(config) {
|
|
14292
14344
|
if (!config.page)
|
|
@@ -14338,6 +14390,17 @@ class DynamicPageBuilderComponent {
|
|
|
14338
14390
|
this.agenticAuthoringError.set('');
|
|
14339
14391
|
this.syncAgenticAuthoringSession('minimized');
|
|
14340
14392
|
}
|
|
14393
|
+
onAgenticAuthoringLayoutChange(layout) {
|
|
14394
|
+
this.agenticAuthoringPanelLayoutTouched = true;
|
|
14395
|
+
this.agenticAuthoringPanelLayout.set(layout);
|
|
14396
|
+
}
|
|
14397
|
+
agenticAuthoringReviewRailActive() {
|
|
14398
|
+
return this.showSettings()
|
|
14399
|
+
&& this.enableAgenticAuthoring
|
|
14400
|
+
&& this.agenticAuthoringOpen()
|
|
14401
|
+
&& !!this.agenticAuthoringPreviewResult()?.valid
|
|
14402
|
+
&& !this.agenticAuthoringPanelLayoutTouched;
|
|
14403
|
+
}
|
|
14341
14404
|
showAgenticAuthoringDock() {
|
|
14342
14405
|
return this.showSettings()
|
|
14343
14406
|
&& this.enableAgenticAuthoring
|
|
@@ -14975,9 +15038,10 @@ class DynamicPageBuilderComponent {
|
|
|
14975
15038
|
if (this.isGenericDataSourceQuickReplyPrompt(prompt) && this.isConfirmationQuickReply(reply)) {
|
|
14976
15039
|
return this.agenticQuickReplyGovernedConfirmationPrompt(contextHints, visiblePrompt);
|
|
14977
15040
|
}
|
|
14978
|
-
|
|
14979
|
-
|
|
14980
|
-
|
|
15041
|
+
if (this.isHumanSafeResourceQuickReplyPrompt(prompt, contextHints)) {
|
|
15042
|
+
return prompt;
|
|
15043
|
+
}
|
|
15044
|
+
return this.agenticQuickReplyClarificationConfirmationPrompt(pendingClarification, visiblePrompt);
|
|
14981
15045
|
}
|
|
14982
15046
|
agenticQuickReplyClarificationConfirmationPrompt(pendingClarification, confirmationText) {
|
|
14983
15047
|
const sourcePrompt = (pendingClarification?.sourcePrompt || '').trim();
|
|
@@ -16005,6 +16069,7 @@ class DynamicPageBuilderComponent {
|
|
|
16005
16069
|
: state.statusText);
|
|
16006
16070
|
this.agenticAuthoringError.set(state.errorText);
|
|
16007
16071
|
this.agenticAuthoringPreviewResult.set(preview);
|
|
16072
|
+
this.moveAgenticAuthoringPanelToReviewSidecar(preview);
|
|
16008
16073
|
this.agenticAuthoringAttachments.set(state.attachments);
|
|
16009
16074
|
if (!this.sameSharedRuleHandoffIdentity(previousHandoff, handoff)) {
|
|
16010
16075
|
this.clearSharedRuleCockpitState();
|
|
@@ -16053,6 +16118,17 @@ class DynamicPageBuilderComponent {
|
|
|
16053
16118
|
this.agenticAuthoringSharedRuleHandoff.emit(resolved);
|
|
16054
16119
|
}
|
|
16055
16120
|
}
|
|
16121
|
+
moveAgenticAuthoringPanelToReviewSidecar(preview) {
|
|
16122
|
+
if (!preview?.valid || this.agenticAuthoringPanelLayoutTouched) {
|
|
16123
|
+
return;
|
|
16124
|
+
}
|
|
16125
|
+
this.agenticAuthoringPanelLayout.set(createPraxisAssistantViewportLayout({
|
|
16126
|
+
width: 440,
|
|
16127
|
+
height: 560,
|
|
16128
|
+
top: 96,
|
|
16129
|
+
margin: 24,
|
|
16130
|
+
}));
|
|
16131
|
+
}
|
|
16056
16132
|
resolveAgenticSharedRuleHandoff(state) {
|
|
16057
16133
|
const diagnostics = this.toRecord(state.diagnostics);
|
|
16058
16134
|
const intentResolution = this.toRecord(diagnostics?.['intentResolution']);
|
|
@@ -16295,7 +16371,7 @@ class DynamicPageBuilderComponent {
|
|
|
16295
16371
|
this.agenticAuthoringWidgetContextKey.set(null);
|
|
16296
16372
|
}
|
|
16297
16373
|
}
|
|
16298
|
-
defaultInputsFor(type, presetInputs) {
|
|
16374
|
+
defaultInputsFor(type, presetInputs, widgetKey) {
|
|
16299
16375
|
const metadata = this.componentMetadata.get(type);
|
|
16300
16376
|
const inputs = {};
|
|
16301
16377
|
for (const input of metadata?.inputs ?? []) {
|
|
@@ -16303,6 +16379,12 @@ class DynamicPageBuilderComponent {
|
|
|
16303
16379
|
inputs[input.name] = this.cloneValue(input.default);
|
|
16304
16380
|
}
|
|
16305
16381
|
}
|
|
16382
|
+
if (metadata?.authoringManifestRef?.componentId
|
|
16383
|
+
&& metadata.inputs?.some((input) => input.name === 'enableCustomization')
|
|
16384
|
+
&& presetInputs?.['enableCustomization'] === undefined) {
|
|
16385
|
+
inputs['enableCustomization'] = true;
|
|
16386
|
+
}
|
|
16387
|
+
this.applyWidgetIdentityDefaults(metadata?.inputs, inputs, presetInputs, widgetKey);
|
|
16306
16388
|
if (!presetInputs) {
|
|
16307
16389
|
return inputs;
|
|
16308
16390
|
}
|
|
@@ -16311,6 +16393,18 @@ class DynamicPageBuilderComponent {
|
|
|
16311
16393
|
...this.cloneValue(presetInputs),
|
|
16312
16394
|
};
|
|
16313
16395
|
}
|
|
16396
|
+
applyWidgetIdentityDefaults(metadataInputs, inputs, presetInputs, widgetKey) {
|
|
16397
|
+
if (!metadataInputs?.length || !widgetKey)
|
|
16398
|
+
return;
|
|
16399
|
+
const inputNames = new Set(metadataInputs.map((input) => input.name));
|
|
16400
|
+
for (const identityInput of ['componentInstanceId', 'tabsId', 'formId']) {
|
|
16401
|
+
if (inputNames.has(identityInput)
|
|
16402
|
+
&& inputs[identityInput] === undefined
|
|
16403
|
+
&& presetInputs?.[identityInput] === undefined) {
|
|
16404
|
+
inputs[identityInput] = widgetKey;
|
|
16405
|
+
}
|
|
16406
|
+
}
|
|
16407
|
+
}
|
|
16314
16408
|
resolveAgenticComponentId() {
|
|
16315
16409
|
const explicit = this.agenticAuthoringComponentId?.trim();
|
|
16316
16410
|
if (explicit)
|
|
@@ -16321,9 +16415,9 @@ class DynamicPageBuilderComponent {
|
|
|
16321
16415
|
return null;
|
|
16322
16416
|
}
|
|
16323
16417
|
resolveSelectedWidgetKey() {
|
|
16324
|
-
const
|
|
16325
|
-
if (
|
|
16326
|
-
return
|
|
16418
|
+
const pinnedSelection = this.agenticAuthoringWidgetContextKey();
|
|
16419
|
+
if (pinnedSelection && this.resolveWidgetByKey(pinnedSelection)) {
|
|
16420
|
+
return pinnedSelection;
|
|
16327
16421
|
}
|
|
16328
16422
|
return null;
|
|
16329
16423
|
}
|
|
@@ -16435,17 +16529,20 @@ class DynamicPageBuilderComponent {
|
|
|
16435
16529
|
return resolvePraxisPageBuilderText(this.i18n, key, fallback);
|
|
16436
16530
|
}
|
|
16437
16531
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DynamicPageBuilderComponent, deps: [{ token: i1.MatDialog }, { token: SETTINGS_PANEL_BRIDGE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
16438
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: DynamicPageBuilderComponent, isStandalone: true, selector: "praxis-dynamic-page-builder", inputs: { page: "page", context: "context", strictValidation: "strictValidation", autoPersist: "autoPersist", enableCustomization: "enableCustomization", showSettingsButton: "showSettingsButton", pageIdentity: "pageIdentity", componentInstanceId: "componentInstanceId", pageEditorComponent: "pageEditorComponent", enableAgenticAuthoring: "enableAgenticAuthoring", agenticAuthoringProvider: "agenticAuthoringProvider", agenticAuthoringModel: "agenticAuthoringModel", agenticAuthoringApiKey: "agenticAuthoringApiKey", agenticAuthoringComponentId: "agenticAuthoringComponentId", agenticAuthoringScope: "agenticAuthoringScope", agenticAuthoringEtag: "agenticAuthoringEtag", agenticAuthoringIncludeLlmDiagnostics: "agenticAuthoringIncludeLlmDiagnostics", agenticAuthoringEnableStreaming: "agenticAuthoringEnableStreaming", agenticAuthoringContextHints: "agenticAuthoringContextHints", showPageLifecycleActions: "showPageLifecycleActions", canDeleteSavedPage: "canDeleteSavedPage", pageLifecycleBusy: "pageLifecycleBusy", pageLifecycleResetRevision: "pageLifecycleResetRevision" }, outputs: { pageChange: "pageChange", agenticAuthoringApplied: "agenticAuthoringApplied", agenticAuthoringSharedRuleHandoff: "agenticAuthoringSharedRuleHandoff", pageRestart: "pageRestart", savedPageDeleteRequested: "savedPageDeleteRequested" }, providers: [
|
|
16532
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.17", type: DynamicPageBuilderComponent, isStandalone: true, selector: "praxis-dynamic-page-builder", inputs: { page: "page", context: "context", strictValidation: "strictValidation", autoPersist: "autoPersist", enableCustomization: "enableCustomization", showSettingsButton: "showSettingsButton", pageIdentity: "pageIdentity", componentInstanceId: "componentInstanceId", pageEditorComponent: "pageEditorComponent", enableAgenticAuthoring: "enableAgenticAuthoring", agenticAuthoringProvider: "agenticAuthoringProvider", agenticAuthoringModel: "agenticAuthoringModel", agenticAuthoringApiKey: "agenticAuthoringApiKey", agenticAuthoringComponentId: "agenticAuthoringComponentId", agenticAuthoringScope: "agenticAuthoringScope", agenticAuthoringEtag: "agenticAuthoringEtag", agenticAuthoringIncludeLlmDiagnostics: "agenticAuthoringIncludeLlmDiagnostics", agenticAuthoringEnableStreaming: "agenticAuthoringEnableStreaming", agenticAuthoringContextHints: "agenticAuthoringContextHints", showPageLifecycleActions: "showPageLifecycleActions", canDeleteSavedPage: "canDeleteSavedPage", pageLifecycleBusy: "pageLifecycleBusy", pageLifecycleResetRevision: "pageLifecycleResetRevision" }, outputs: { pageChange: "pageChange", pageSaveRequested: "pageSaveRequested", agenticAuthoringApplied: "agenticAuthoringApplied", agenticAuthoringSharedRuleHandoff: "agenticAuthoringSharedRuleHandoff", pageRestart: "pageRestart", savedPageDeleteRequested: "savedPageDeleteRequested" }, providers: [
|
|
16439
16533
|
providePraxisPageBuilderI18n(),
|
|
16440
16534
|
{ provide: DYNAMIC_PAGE_SHELL_EDITOR, useValue: WidgetShellEditorComponent },
|
|
16441
16535
|
], viewQueries: [{ propertyName: "runtime", first: true, predicate: ["runtime"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
16442
|
-
<div
|
|
16536
|
+
<div
|
|
16537
|
+
class="builder-shell"
|
|
16538
|
+
[class.builder-shell--agentic-review-rail]="agenticAuthoringReviewRailActive()"
|
|
16539
|
+
>
|
|
16443
16540
|
<praxis-dynamic-page
|
|
16444
16541
|
#runtime
|
|
16445
16542
|
[page]="currentPage()"
|
|
16446
16543
|
[context]="context"
|
|
16447
16544
|
[strictValidation]="strictValidation"
|
|
16448
|
-
[autoPersist]="
|
|
16545
|
+
[autoPersist]="false"
|
|
16449
16546
|
[enableCustomization]="showSettings()"
|
|
16450
16547
|
[showPageSettingsButton]="false"
|
|
16451
16548
|
[pageIdentity]="pageIdentity"
|
|
@@ -16453,6 +16550,7 @@ class DynamicPageBuilderComponent {
|
|
|
16453
16550
|
[pageEditorComponent]="pageEditorComponent"
|
|
16454
16551
|
[showWidgetAssistantButton]="enableAgenticAuthoring"
|
|
16455
16552
|
(pageChange)="onRuntimePageChange($event)"
|
|
16553
|
+
(widgetEvent)="onRuntimeWidgetEvent($event)"
|
|
16456
16554
|
(widgetSelectionChange)="onRuntimeWidgetSelectionChange($event)"
|
|
16457
16555
|
(widgetAssistantRequested)="openAgenticAuthoringForWidget($event)"
|
|
16458
16556
|
/>
|
|
@@ -16500,7 +16598,7 @@ class DynamicPageBuilderComponent {
|
|
|
16500
16598
|
(removeAttachment)="removeAgenticAttachment($event)"
|
|
16501
16599
|
(editMessage)="editAgenticMessage($event)"
|
|
16502
16600
|
(resendMessage)="resendAgenticMessage($event)"
|
|
16503
|
-
(layoutChange)="
|
|
16601
|
+
(layoutChange)="onAgenticAuthoringLayoutChange($event)"
|
|
16504
16602
|
(close)="minimizeAgenticAuthoring()"
|
|
16505
16603
|
/>
|
|
16506
16604
|
|
|
@@ -16778,7 +16876,7 @@ class DynamicPageBuilderComponent {
|
|
|
16778
16876
|
[visible]="showSettings()"
|
|
16779
16877
|
[canUndo]="false"
|
|
16780
16878
|
[canRedo]="false"
|
|
16781
|
-
[showSave]="
|
|
16879
|
+
[showSave]="hasPageWidgets()"
|
|
16782
16880
|
[showPreview]="hasPageWidgets()"
|
|
16783
16881
|
(add)="onAddComponent()"
|
|
16784
16882
|
(settings)="openPageSettings()"
|
|
@@ -16841,7 +16939,7 @@ class DynamicPageBuilderComponent {
|
|
|
16841
16939
|
</button>
|
|
16842
16940
|
</praxis-floating-toolbar>
|
|
16843
16941
|
</div>
|
|
16844
|
-
`, isInline: true, styles: [":host{display:block;position:relative;min-height:var(--pdx-page-builder-min-height, 420px)}.builder-shell{display:block;position:relative;min-height:inherit;height:100%}.agentic-diagnostics-panel{position:absolute;z-index:21;right:16px;width:min(520px,calc(100% - 32px));max-height:min(440px,calc(100% - 32px));overflow:auto;padding:12px;border:1px solid rgba(107,114,128,.28);border-radius:8px;background:#fffffff5;color:#111827;box-shadow:0 14px 36px #0000003d}.agentic-diagnostics-panel--collapsed{width:min(280px,calc(100% - 32px));max-height:58px;overflow:hidden;padding:10px 12px;pointer-events:auto}.agentic-diagnostics-panel__header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:700}.agentic-diagnostics-panel__header-actions{display:flex;align-items:center;gap:8px}.agentic-diagnostics-panel__badge{padding:2px 6px;border:1px solid rgba(107,114,128,.28);border-radius:8px;font-size:11px;font-weight:600;color:#4b5563}.agentic-diagnostics-panel__toggle,.shared-rule-cockpit__toggle{appearance:none;border:1px solid rgba(30,64,175,.18);border-radius:999px;background:#ffffffd6;color:#1e3a8a;cursor:pointer;font-size:11px;font-weight:700;line-height:1;padding:6px 9px;white-space:nowrap}.agentic-diagnostics-panel__description{margin:8px 0 10px;color:#4b5563;font-size:12px;line-height:1.4}.agentic-diagnostics-panel pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.45;color:#1f2937}praxis-ai-assistant-shell{position:relative;z-index:140}.builder-shell__agentic-toggle{position:relative}.builder-shell__agentic-toggle--open,.builder-shell__agentic-toggle--minimized{outline:2px solid rgba(96,165,250,.52);outline-offset:2px}.builder-shell__agentic-toggle--minimized:after{content:\"\";position:absolute;top:6px;right:6px;width:8px;height:8px;border:2px solid var(--md-sys-color-surface, #111827);border-radius:999px;background:#34d399}.shared-rule-cockpit{position:absolute;z-index:120;left:16px;bottom:88px;width:min(720px,calc(100% - 32px));max-height:min(560px,calc(100vh - 140px));padding:14px;border:1px solid rgba(30,64,175,.22);border-radius:12px;background:linear-gradient(135deg,#eff6fffa,#fffbebf5);color:#172554;box-shadow:0 18px 46px #0f172a38;overflow:auto;overscroll-behavior:contain}.shared-rule-cockpit--collapsed{width:min(360px,calc(100% - 32px));max-height:72px;overflow:hidden;padding:10px 12px}.shared-rule-cockpit__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.shared-rule-cockpit__header-actions{display:flex;align-items:center;gap:8px}.shared-rule-cockpit__header div{display:grid;gap:2px}.shared-rule-cockpit__header strong{font-size:14px;line-height:1.2}.shared-rule-cockpit__header span{color:#475569;font-size:12px;overflow-wrap:anywhere}.shared-rule-cockpit__badge{flex:0 0 auto;max-width:220px;padding:3px 8px;border:1px solid rgba(30,64,175,.2);border-radius:999px;background:#ffffffbd;color:#1e3a8a;font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-rule-cockpit__description,.shared-rule-cockpit__status,.shared-rule-cockpit__error{margin:10px 0 0;color:#334155;font-size:12px;line-height:1.45}.shared-rule-cockpit__error{color:#991b1b;font-weight:600}.shared-rule-cockpit__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.shared-rule-cockpit__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0}.shared-rule-cockpit__facts div{min-width:0;padding:8px;border-radius:10px;background:#ffffffb8}.shared-rule-cockpit__facts dt{color:#64748b;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.shared-rule-cockpit__facts dd{margin:4px 0 0;color:#0f172a;font-size:12px;overflow-wrap:anywhere}.shared-rule-cockpit__enforcement-matrix{display:grid;gap:10px;margin-top:12px;padding:10px;border:1px solid rgba(30,64,175,.14);border-radius:12px;background:#ffffff94}.shared-rule-cockpit__matrix-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.shared-rule-cockpit__matrix-header div{display:grid;gap:2px}.shared-rule-cockpit__matrix-header strong{color:#0f172a;font-size:12px}.shared-rule-cockpit__matrix-header span,.shared-rule-cockpit__matrix-source{color:#475569;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.shared-rule-cockpit__matrix-badge{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#16a34a1f;color:#166534;font-weight:800;white-space:nowrap}.shared-rule-cockpit__projection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shared-rule-cockpit__projection{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid rgba(15,23,42,.08);border-radius:11px;background:#f8fafcd1}.shared-rule-cockpit__projection[data-status=ready]{border-color:#16a34a33;background:#f0fdf4d1}.shared-rule-cockpit__projection span{color:#1d4ed8;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere}.shared-rule-cockpit__projection strong{color:#0f172a;font-size:12px}.shared-rule-cockpit__projection small,.shared-rule-cockpit__projection em{color:#475569;font-size:11px;font-style:normal;overflow-wrap:anywhere}.shared-rule-cockpit__matrix-source{margin:0}.shared-rule-cockpit__timeline{display:grid;gap:8px;max-height:190px;margin:12px 0 0;padding:0;overflow:auto;list-style:none}.shared-rule-cockpit__timeline-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:10px;border:1px solid rgba(30,64,175,.12);border-radius:12px;background:#ffffffc2}.shared-rule-cockpit__timeline-icon{display:grid;width:24px;height:24px;place-items:center;border-radius:999px;background:#1e40af1a;color:#1e3a8a;font-family:Material Icons;font-size:16px;line-height:1}.shared-rule-cockpit__timeline-item strong{color:#0f172a;font-size:12px;line-height:1.35}.shared-rule-cockpit__timeline-item p,.shared-rule-cockpit__timeline-item small,.shared-rule-cockpit__timeline-item time,.shared-rule-cockpit__timeline-empty{display:block;margin:3px 0 0;color:#475569;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.shared-rule-cockpit__timeline-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#0ea5e91f;color:#075985;font-size:10px;font-weight:700}.shared-rule-cockpit__timeline-empty{padding:10px;border-radius:12px;background:#ffffffa3}@media(max-width:720px){.shared-rule-cockpit{bottom:72px;max-height:calc(100vh - 112px)}.shared-rule-cockpit__facts,.shared-rule-cockpit__projection-grid{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: DynamicWidgetPageComponent, selector: "praxis-dynamic-page", inputs: ["page", "context", "strictValidation", "enableCustomization", "showPageSettingsButton", "shellEditorComponent", "pageEditorComponent", "autoPersist", "pageIdentity", "componentInstanceId", "showWidgetAssistantButton"], outputs: ["pageChange", "widgetEvent", "widgetSelectionChange", "widgetAssistantRequested", "widgetDiagnosticsChange"] }, { kind: "component", type: FloatingToolbarComponent, selector: "praxis-floating-toolbar", inputs: ["visible", "canUndo", "canRedo", "showSave", "showPreview"], outputs: ["add", "undo", "redo", "settings", "preview", "save"] }, { kind: "component", type: ConnectionEditorComponent, selector: "praxis-connection-editor", inputs: ["open", "page"], outputs: ["pageChange", "focusWidget", "openPageSettings"] }, { kind: "component", type: PraxisAiAssistantShellComponent, selector: "praxis-ai-assistant-shell", inputs: ["labels", "mode", "state", "contextItems", "attachments", "messages", "quickReplies", "prompt", "statusText", "errorText", "testIdPrefix", "panelTestId", "submitTestId", "applyTestId", "primaryAction", "secondaryActions", "governanceActions", "busy", "canSubmit", "canApply", "submitOnEnter", "showAttachAction", "enablePastedAttachments", "enableFileAttachments", "attachmentAccept", "attachmentMultiple", "draggable", "resizable", "minWidth", "minHeight", "margin", "layout"], outputs: ["promptChange", "submitPrompt", "apply", "retryTurn", "cancelTurn", "shellAction", "close", "attach", "attachmentsPasted", "attachmentsSelected", "removeAttachment", "messageAction", "editMessage", "resendMessage", "quickReply", "layoutChange"] }] });
|
|
16942
|
+
`, isInline: true, styles: [":host{display:block;position:relative;min-height:var(--pdx-page-builder-min-height, 420px)}.builder-shell{display:block;position:relative;min-height:inherit;height:100%}.agentic-diagnostics-panel{position:absolute;z-index:21;right:16px;width:min(520px,calc(100% - 32px));max-height:min(440px,calc(100% - 32px));overflow:auto;padding:12px;border:1px solid rgba(107,114,128,.28);border-radius:8px;background:#fffffff5;color:#111827;box-shadow:0 14px 36px #0000003d}.agentic-diagnostics-panel--collapsed{width:min(280px,calc(100% - 32px));max-height:58px;overflow:hidden;padding:10px 12px;pointer-events:auto}.agentic-diagnostics-panel__header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:700}.agentic-diagnostics-panel__header-actions{display:flex;align-items:center;gap:8px}.agentic-diagnostics-panel__badge{padding:2px 6px;border:1px solid rgba(107,114,128,.28);border-radius:8px;font-size:11px;font-weight:600;color:#4b5563}.agentic-diagnostics-panel__toggle,.shared-rule-cockpit__toggle{appearance:none;border:1px solid rgba(30,64,175,.18);border-radius:999px;background:#ffffffd6;color:#1e3a8a;cursor:pointer;font-size:11px;font-weight:700;line-height:1;padding:6px 9px;white-space:nowrap}.agentic-diagnostics-panel__description{margin:8px 0 10px;color:#4b5563;font-size:12px;line-height:1.4}.agentic-diagnostics-panel pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.45;color:#1f2937}praxis-ai-assistant-shell{position:relative;z-index:140}@media(min-width:1100px){.builder-shell--agentic-review-rail{box-sizing:border-box;padding-right:464px}}.builder-shell__agentic-toggle{position:relative}.builder-shell__agentic-toggle--open,.builder-shell__agentic-toggle--minimized{outline:2px solid rgba(96,165,250,.52);outline-offset:2px}.builder-shell__agentic-toggle--minimized:after{content:\"\";position:absolute;top:6px;right:6px;width:8px;height:8px;border:2px solid var(--md-sys-color-surface, #111827);border-radius:999px;background:#34d399}.shared-rule-cockpit{position:absolute;z-index:120;left:16px;bottom:88px;width:min(720px,calc(100% - 32px));max-height:min(560px,calc(100vh - 140px));padding:14px;border:1px solid rgba(30,64,175,.22);border-radius:12px;background:linear-gradient(135deg,#eff6fffa,#fffbebf5);color:#172554;box-shadow:0 18px 46px #0f172a38;overflow:auto;overscroll-behavior:contain}.shared-rule-cockpit--collapsed{width:min(360px,calc(100% - 32px));max-height:72px;overflow:hidden;padding:10px 12px}.shared-rule-cockpit__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.shared-rule-cockpit__header-actions{display:flex;align-items:center;gap:8px}.shared-rule-cockpit__header div{display:grid;gap:2px}.shared-rule-cockpit__header strong{font-size:14px;line-height:1.2}.shared-rule-cockpit__header span{color:#475569;font-size:12px;overflow-wrap:anywhere}.shared-rule-cockpit__badge{flex:0 0 auto;max-width:220px;padding:3px 8px;border:1px solid rgba(30,64,175,.2);border-radius:999px;background:#ffffffbd;color:#1e3a8a;font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-rule-cockpit__description,.shared-rule-cockpit__status,.shared-rule-cockpit__error{margin:10px 0 0;color:#334155;font-size:12px;line-height:1.45}.shared-rule-cockpit__error{color:#991b1b;font-weight:600}.shared-rule-cockpit__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.shared-rule-cockpit__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0}.shared-rule-cockpit__facts div{min-width:0;padding:8px;border-radius:10px;background:#ffffffb8}.shared-rule-cockpit__facts dt{color:#64748b;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.shared-rule-cockpit__facts dd{margin:4px 0 0;color:#0f172a;font-size:12px;overflow-wrap:anywhere}.shared-rule-cockpit__enforcement-matrix{display:grid;gap:10px;margin-top:12px;padding:10px;border:1px solid rgba(30,64,175,.14);border-radius:12px;background:#ffffff94}.shared-rule-cockpit__matrix-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.shared-rule-cockpit__matrix-header div{display:grid;gap:2px}.shared-rule-cockpit__matrix-header strong{color:#0f172a;font-size:12px}.shared-rule-cockpit__matrix-header span,.shared-rule-cockpit__matrix-source{color:#475569;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.shared-rule-cockpit__matrix-badge{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#16a34a1f;color:#166534;font-weight:800;white-space:nowrap}.shared-rule-cockpit__projection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shared-rule-cockpit__projection{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid rgba(15,23,42,.08);border-radius:11px;background:#f8fafcd1}.shared-rule-cockpit__projection[data-status=ready]{border-color:#16a34a33;background:#f0fdf4d1}.shared-rule-cockpit__projection span{color:#1d4ed8;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere}.shared-rule-cockpit__projection strong{color:#0f172a;font-size:12px}.shared-rule-cockpit__projection small,.shared-rule-cockpit__projection em{color:#475569;font-size:11px;font-style:normal;overflow-wrap:anywhere}.shared-rule-cockpit__matrix-source{margin:0}.shared-rule-cockpit__timeline{display:grid;gap:8px;max-height:190px;margin:12px 0 0;padding:0;overflow:auto;list-style:none}.shared-rule-cockpit__timeline-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:10px;border:1px solid rgba(30,64,175,.12);border-radius:12px;background:#ffffffc2}.shared-rule-cockpit__timeline-icon{display:grid;width:24px;height:24px;place-items:center;border-radius:999px;background:#1e40af1a;color:#1e3a8a;font-family:Material Icons;font-size:16px;line-height:1}.shared-rule-cockpit__timeline-item strong{color:#0f172a;font-size:12px;line-height:1.35}.shared-rule-cockpit__timeline-item p,.shared-rule-cockpit__timeline-item small,.shared-rule-cockpit__timeline-item time,.shared-rule-cockpit__timeline-empty{display:block;margin:3px 0 0;color:#475569;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.shared-rule-cockpit__timeline-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#0ea5e91f;color:#075985;font-size:10px;font-weight:700}.shared-rule-cockpit__timeline-empty{padding:10px;border-radius:12px;background:#ffffffa3}@media(max-width:720px){.shared-rule-cockpit{bottom:72px;max-height:calc(100vh - 112px)}.shared-rule-cockpit__facts,.shared-rule-cockpit__projection-grid{grid-template-columns:1fr}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: DynamicWidgetPageComponent, selector: "praxis-dynamic-page", inputs: ["page", "context", "strictValidation", "enableCustomization", "showPageSettingsButton", "shellEditorComponent", "pageEditorComponent", "autoPersist", "pageIdentity", "componentInstanceId", "showWidgetAssistantButton"], outputs: ["pageChange", "widgetEvent", "widgetSelectionChange", "widgetAssistantRequested", "widgetDiagnosticsChange"] }, { kind: "component", type: FloatingToolbarComponent, selector: "praxis-floating-toolbar", inputs: ["visible", "canUndo", "canRedo", "showSave", "showPreview"], outputs: ["add", "undo", "redo", "settings", "preview", "save"] }, { kind: "component", type: ConnectionEditorComponent, selector: "praxis-connection-editor", inputs: ["open", "page"], outputs: ["pageChange", "focusWidget", "openPageSettings"] }, { kind: "component", type: PraxisAiAssistantShellComponent, selector: "praxis-ai-assistant-shell", inputs: ["labels", "mode", "state", "contextItems", "attachments", "messages", "quickReplies", "prompt", "statusText", "errorText", "testIdPrefix", "panelTestId", "submitTestId", "applyTestId", "primaryAction", "secondaryActions", "governanceActions", "busy", "canSubmit", "canApply", "submitOnEnter", "showAttachAction", "enablePastedAttachments", "enableFileAttachments", "attachmentAccept", "attachmentMultiple", "draggable", "resizable", "minWidth", "minHeight", "margin", "layout"], outputs: ["promptChange", "submitPrompt", "apply", "retryTurn", "cancelTurn", "shellAction", "close", "attach", "attachmentsPasted", "attachmentsSelected", "removeAttachment", "messageAction", "editMessage", "resendMessage", "quickReply", "layoutChange"] }] });
|
|
16845
16943
|
}
|
|
16846
16944
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DynamicPageBuilderComponent, decorators: [{
|
|
16847
16945
|
type: Component,
|
|
@@ -16859,13 +16957,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
16859
16957
|
providePraxisPageBuilderI18n(),
|
|
16860
16958
|
{ provide: DYNAMIC_PAGE_SHELL_EDITOR, useValue: WidgetShellEditorComponent },
|
|
16861
16959
|
], template: `
|
|
16862
|
-
<div
|
|
16960
|
+
<div
|
|
16961
|
+
class="builder-shell"
|
|
16962
|
+
[class.builder-shell--agentic-review-rail]="agenticAuthoringReviewRailActive()"
|
|
16963
|
+
>
|
|
16863
16964
|
<praxis-dynamic-page
|
|
16864
16965
|
#runtime
|
|
16865
16966
|
[page]="currentPage()"
|
|
16866
16967
|
[context]="context"
|
|
16867
16968
|
[strictValidation]="strictValidation"
|
|
16868
|
-
[autoPersist]="
|
|
16969
|
+
[autoPersist]="false"
|
|
16869
16970
|
[enableCustomization]="showSettings()"
|
|
16870
16971
|
[showPageSettingsButton]="false"
|
|
16871
16972
|
[pageIdentity]="pageIdentity"
|
|
@@ -16873,6 +16974,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
16873
16974
|
[pageEditorComponent]="pageEditorComponent"
|
|
16874
16975
|
[showWidgetAssistantButton]="enableAgenticAuthoring"
|
|
16875
16976
|
(pageChange)="onRuntimePageChange($event)"
|
|
16977
|
+
(widgetEvent)="onRuntimeWidgetEvent($event)"
|
|
16876
16978
|
(widgetSelectionChange)="onRuntimeWidgetSelectionChange($event)"
|
|
16877
16979
|
(widgetAssistantRequested)="openAgenticAuthoringForWidget($event)"
|
|
16878
16980
|
/>
|
|
@@ -16920,7 +17022,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
16920
17022
|
(removeAttachment)="removeAgenticAttachment($event)"
|
|
16921
17023
|
(editMessage)="editAgenticMessage($event)"
|
|
16922
17024
|
(resendMessage)="resendAgenticMessage($event)"
|
|
16923
|
-
(layoutChange)="
|
|
17025
|
+
(layoutChange)="onAgenticAuthoringLayoutChange($event)"
|
|
16924
17026
|
(close)="minimizeAgenticAuthoring()"
|
|
16925
17027
|
/>
|
|
16926
17028
|
|
|
@@ -17198,7 +17300,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
17198
17300
|
[visible]="showSettings()"
|
|
17199
17301
|
[canUndo]="false"
|
|
17200
17302
|
[canRedo]="false"
|
|
17201
|
-
[showSave]="
|
|
17303
|
+
[showSave]="hasPageWidgets()"
|
|
17202
17304
|
[showPreview]="hasPageWidgets()"
|
|
17203
17305
|
(add)="onAddComponent()"
|
|
17204
17306
|
(settings)="openPageSettings()"
|
|
@@ -17261,7 +17363,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
17261
17363
|
</button>
|
|
17262
17364
|
</praxis-floating-toolbar>
|
|
17263
17365
|
</div>
|
|
17264
|
-
`, styles: [":host{display:block;position:relative;min-height:var(--pdx-page-builder-min-height, 420px)}.builder-shell{display:block;position:relative;min-height:inherit;height:100%}.agentic-diagnostics-panel{position:absolute;z-index:21;right:16px;width:min(520px,calc(100% - 32px));max-height:min(440px,calc(100% - 32px));overflow:auto;padding:12px;border:1px solid rgba(107,114,128,.28);border-radius:8px;background:#fffffff5;color:#111827;box-shadow:0 14px 36px #0000003d}.agentic-diagnostics-panel--collapsed{width:min(280px,calc(100% - 32px));max-height:58px;overflow:hidden;padding:10px 12px;pointer-events:auto}.agentic-diagnostics-panel__header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:700}.agentic-diagnostics-panel__header-actions{display:flex;align-items:center;gap:8px}.agentic-diagnostics-panel__badge{padding:2px 6px;border:1px solid rgba(107,114,128,.28);border-radius:8px;font-size:11px;font-weight:600;color:#4b5563}.agentic-diagnostics-panel__toggle,.shared-rule-cockpit__toggle{appearance:none;border:1px solid rgba(30,64,175,.18);border-radius:999px;background:#ffffffd6;color:#1e3a8a;cursor:pointer;font-size:11px;font-weight:700;line-height:1;padding:6px 9px;white-space:nowrap}.agentic-diagnostics-panel__description{margin:8px 0 10px;color:#4b5563;font-size:12px;line-height:1.4}.agentic-diagnostics-panel pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.45;color:#1f2937}praxis-ai-assistant-shell{position:relative;z-index:140}.builder-shell__agentic-toggle{position:relative}.builder-shell__agentic-toggle--open,.builder-shell__agentic-toggle--minimized{outline:2px solid rgba(96,165,250,.52);outline-offset:2px}.builder-shell__agentic-toggle--minimized:after{content:\"\";position:absolute;top:6px;right:6px;width:8px;height:8px;border:2px solid var(--md-sys-color-surface, #111827);border-radius:999px;background:#34d399}.shared-rule-cockpit{position:absolute;z-index:120;left:16px;bottom:88px;width:min(720px,calc(100% - 32px));max-height:min(560px,calc(100vh - 140px));padding:14px;border:1px solid rgba(30,64,175,.22);border-radius:12px;background:linear-gradient(135deg,#eff6fffa,#fffbebf5);color:#172554;box-shadow:0 18px 46px #0f172a38;overflow:auto;overscroll-behavior:contain}.shared-rule-cockpit--collapsed{width:min(360px,calc(100% - 32px));max-height:72px;overflow:hidden;padding:10px 12px}.shared-rule-cockpit__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.shared-rule-cockpit__header-actions{display:flex;align-items:center;gap:8px}.shared-rule-cockpit__header div{display:grid;gap:2px}.shared-rule-cockpit__header strong{font-size:14px;line-height:1.2}.shared-rule-cockpit__header span{color:#475569;font-size:12px;overflow-wrap:anywhere}.shared-rule-cockpit__badge{flex:0 0 auto;max-width:220px;padding:3px 8px;border:1px solid rgba(30,64,175,.2);border-radius:999px;background:#ffffffbd;color:#1e3a8a;font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-rule-cockpit__description,.shared-rule-cockpit__status,.shared-rule-cockpit__error{margin:10px 0 0;color:#334155;font-size:12px;line-height:1.45}.shared-rule-cockpit__error{color:#991b1b;font-weight:600}.shared-rule-cockpit__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.shared-rule-cockpit__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0}.shared-rule-cockpit__facts div{min-width:0;padding:8px;border-radius:10px;background:#ffffffb8}.shared-rule-cockpit__facts dt{color:#64748b;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.shared-rule-cockpit__facts dd{margin:4px 0 0;color:#0f172a;font-size:12px;overflow-wrap:anywhere}.shared-rule-cockpit__enforcement-matrix{display:grid;gap:10px;margin-top:12px;padding:10px;border:1px solid rgba(30,64,175,.14);border-radius:12px;background:#ffffff94}.shared-rule-cockpit__matrix-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.shared-rule-cockpit__matrix-header div{display:grid;gap:2px}.shared-rule-cockpit__matrix-header strong{color:#0f172a;font-size:12px}.shared-rule-cockpit__matrix-header span,.shared-rule-cockpit__matrix-source{color:#475569;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.shared-rule-cockpit__matrix-badge{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#16a34a1f;color:#166534;font-weight:800;white-space:nowrap}.shared-rule-cockpit__projection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shared-rule-cockpit__projection{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid rgba(15,23,42,.08);border-radius:11px;background:#f8fafcd1}.shared-rule-cockpit__projection[data-status=ready]{border-color:#16a34a33;background:#f0fdf4d1}.shared-rule-cockpit__projection span{color:#1d4ed8;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere}.shared-rule-cockpit__projection strong{color:#0f172a;font-size:12px}.shared-rule-cockpit__projection small,.shared-rule-cockpit__projection em{color:#475569;font-size:11px;font-style:normal;overflow-wrap:anywhere}.shared-rule-cockpit__matrix-source{margin:0}.shared-rule-cockpit__timeline{display:grid;gap:8px;max-height:190px;margin:12px 0 0;padding:0;overflow:auto;list-style:none}.shared-rule-cockpit__timeline-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:10px;border:1px solid rgba(30,64,175,.12);border-radius:12px;background:#ffffffc2}.shared-rule-cockpit__timeline-icon{display:grid;width:24px;height:24px;place-items:center;border-radius:999px;background:#1e40af1a;color:#1e3a8a;font-family:Material Icons;font-size:16px;line-height:1}.shared-rule-cockpit__timeline-item strong{color:#0f172a;font-size:12px;line-height:1.35}.shared-rule-cockpit__timeline-item p,.shared-rule-cockpit__timeline-item small,.shared-rule-cockpit__timeline-item time,.shared-rule-cockpit__timeline-empty{display:block;margin:3px 0 0;color:#475569;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.shared-rule-cockpit__timeline-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#0ea5e91f;color:#075985;font-size:10px;font-weight:700}.shared-rule-cockpit__timeline-empty{padding:10px;border-radius:12px;background:#ffffffa3}@media(max-width:720px){.shared-rule-cockpit{bottom:72px;max-height:calc(100vh - 112px)}.shared-rule-cockpit__facts,.shared-rule-cockpit__projection-grid{grid-template-columns:1fr}}\n"] }]
|
|
17366
|
+
`, styles: [":host{display:block;position:relative;min-height:var(--pdx-page-builder-min-height, 420px)}.builder-shell{display:block;position:relative;min-height:inherit;height:100%}.agentic-diagnostics-panel{position:absolute;z-index:21;right:16px;width:min(520px,calc(100% - 32px));max-height:min(440px,calc(100% - 32px));overflow:auto;padding:12px;border:1px solid rgba(107,114,128,.28);border-radius:8px;background:#fffffff5;color:#111827;box-shadow:0 14px 36px #0000003d}.agentic-diagnostics-panel--collapsed{width:min(280px,calc(100% - 32px));max-height:58px;overflow:hidden;padding:10px 12px;pointer-events:auto}.agentic-diagnostics-panel__header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:700}.agentic-diagnostics-panel__header-actions{display:flex;align-items:center;gap:8px}.agentic-diagnostics-panel__badge{padding:2px 6px;border:1px solid rgba(107,114,128,.28);border-radius:8px;font-size:11px;font-weight:600;color:#4b5563}.agentic-diagnostics-panel__toggle,.shared-rule-cockpit__toggle{appearance:none;border:1px solid rgba(30,64,175,.18);border-radius:999px;background:#ffffffd6;color:#1e3a8a;cursor:pointer;font-size:11px;font-weight:700;line-height:1;padding:6px 9px;white-space:nowrap}.agentic-diagnostics-panel__description{margin:8px 0 10px;color:#4b5563;font-size:12px;line-height:1.4}.agentic-diagnostics-panel pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;line-height:1.45;color:#1f2937}praxis-ai-assistant-shell{position:relative;z-index:140}@media(min-width:1100px){.builder-shell--agentic-review-rail{box-sizing:border-box;padding-right:464px}}.builder-shell__agentic-toggle{position:relative}.builder-shell__agentic-toggle--open,.builder-shell__agentic-toggle--minimized{outline:2px solid rgba(96,165,250,.52);outline-offset:2px}.builder-shell__agentic-toggle--minimized:after{content:\"\";position:absolute;top:6px;right:6px;width:8px;height:8px;border:2px solid var(--md-sys-color-surface, #111827);border-radius:999px;background:#34d399}.shared-rule-cockpit{position:absolute;z-index:120;left:16px;bottom:88px;width:min(720px,calc(100% - 32px));max-height:min(560px,calc(100vh - 140px));padding:14px;border:1px solid rgba(30,64,175,.22);border-radius:12px;background:linear-gradient(135deg,#eff6fffa,#fffbebf5);color:#172554;box-shadow:0 18px 46px #0f172a38;overflow:auto;overscroll-behavior:contain}.shared-rule-cockpit--collapsed{width:min(360px,calc(100% - 32px));max-height:72px;overflow:hidden;padding:10px 12px}.shared-rule-cockpit__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.shared-rule-cockpit__header-actions{display:flex;align-items:center;gap:8px}.shared-rule-cockpit__header div{display:grid;gap:2px}.shared-rule-cockpit__header strong{font-size:14px;line-height:1.2}.shared-rule-cockpit__header span{color:#475569;font-size:12px;overflow-wrap:anywhere}.shared-rule-cockpit__badge{flex:0 0 auto;max-width:220px;padding:3px 8px;border:1px solid rgba(30,64,175,.2);border-radius:999px;background:#ffffffbd;color:#1e3a8a;font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-rule-cockpit__description,.shared-rule-cockpit__status,.shared-rule-cockpit__error{margin:10px 0 0;color:#334155;font-size:12px;line-height:1.45}.shared-rule-cockpit__error{color:#991b1b;font-weight:600}.shared-rule-cockpit__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.shared-rule-cockpit__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0}.shared-rule-cockpit__facts div{min-width:0;padding:8px;border-radius:10px;background:#ffffffb8}.shared-rule-cockpit__facts dt{color:#64748b;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.shared-rule-cockpit__facts dd{margin:4px 0 0;color:#0f172a;font-size:12px;overflow-wrap:anywhere}.shared-rule-cockpit__enforcement-matrix{display:grid;gap:10px;margin-top:12px;padding:10px;border:1px solid rgba(30,64,175,.14);border-radius:12px;background:#ffffff94}.shared-rule-cockpit__matrix-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.shared-rule-cockpit__matrix-header div{display:grid;gap:2px}.shared-rule-cockpit__matrix-header strong{color:#0f172a;font-size:12px}.shared-rule-cockpit__matrix-header span,.shared-rule-cockpit__matrix-source{color:#475569;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.shared-rule-cockpit__matrix-badge{flex:0 0 auto;padding:3px 8px;border-radius:999px;background:#16a34a1f;color:#166534;font-weight:800;white-space:nowrap}.shared-rule-cockpit__projection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shared-rule-cockpit__projection{display:grid;gap:3px;min-width:0;padding:9px;border:1px solid rgba(15,23,42,.08);border-radius:11px;background:#f8fafcd1}.shared-rule-cockpit__projection[data-status=ready]{border-color:#16a34a33;background:#f0fdf4d1}.shared-rule-cockpit__projection span{color:#1d4ed8;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere}.shared-rule-cockpit__projection strong{color:#0f172a;font-size:12px}.shared-rule-cockpit__projection small,.shared-rule-cockpit__projection em{color:#475569;font-size:11px;font-style:normal;overflow-wrap:anywhere}.shared-rule-cockpit__matrix-source{margin:0}.shared-rule-cockpit__timeline{display:grid;gap:8px;max-height:190px;margin:12px 0 0;padding:0;overflow:auto;list-style:none}.shared-rule-cockpit__timeline-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:10px;border:1px solid rgba(30,64,175,.12);border-radius:12px;background:#ffffffc2}.shared-rule-cockpit__timeline-icon{display:grid;width:24px;height:24px;place-items:center;border-radius:999px;background:#1e40af1a;color:#1e3a8a;font-family:Material Icons;font-size:16px;line-height:1}.shared-rule-cockpit__timeline-item strong{color:#0f172a;font-size:12px;line-height:1.35}.shared-rule-cockpit__timeline-item p,.shared-rule-cockpit__timeline-item small,.shared-rule-cockpit__timeline-item time,.shared-rule-cockpit__timeline-empty{display:block;margin:3px 0 0;color:#475569;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.shared-rule-cockpit__timeline-badge{display:inline-flex;margin-left:6px;padding:2px 6px;border-radius:999px;background:#0ea5e91f;color:#075985;font-size:10px;font-weight:700}.shared-rule-cockpit__timeline-empty{padding:10px;border-radius:12px;background:#ffffffa3}@media(max-width:720px){.shared-rule-cockpit{bottom:72px;max-height:calc(100vh - 112px)}.shared-rule-cockpit__facts,.shared-rule-cockpit__projection-grid{grid-template-columns:1fr}}\n"] }]
|
|
17265
17367
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: undefined, decorators: [{
|
|
17266
17368
|
type: Optional
|
|
17267
17369
|
}, {
|
|
@@ -17318,6 +17420,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
|
|
|
17318
17420
|
type: Input
|
|
17319
17421
|
}], pageChange: [{
|
|
17320
17422
|
type: Output
|
|
17423
|
+
}], pageSaveRequested: [{
|
|
17424
|
+
type: Output
|
|
17321
17425
|
}], agenticAuthoringApplied: [{
|
|
17322
17426
|
type: Output
|
|
17323
17427
|
}], agenticAuthoringSharedRuleHandoff: [{
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MatDialogRef, MatDialog } from '@angular/material/dialog';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
3
|
import { EventEmitter, OnInit, WritableSignal, InjectionToken, Provider, OnChanges, Type, SimpleChanges } from '@angular/core';
|
|
4
|
-
import { ComponentDocMeta, ComponentMetadataRegistry, WidgetShellConfig, WidgetShellAction, EndpointRef, ComponentPortPathSegment, LinkIntent, CompositionLink, WidgetPageDefinition, TransformKind, SettingsValueProvider as SettingsValueProvider$1, WidgetPageGroupingDefinition, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeChangeSetFilters, DomainKnowledgeValidationResponse, DomainKnowledgeStatusTransitionRequest, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleDefinitionRequest, DomainRuleDefinition, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatusTransitionRequest, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleMaterializationFilters, DomainRuleMaterialization, DomainRuleTimelineResponse, WidgetPageCanvasLayout, WidgetPageStateInput, WidgetInstance, ComponentAuthoringManifest, DynamicWidgetPageComponent, SettingsPanelBridge, RichTimelineItem } from '@praxisui/core';
|
|
4
|
+
import { ComponentDocMeta, ComponentMetadataRegistry, WidgetShellConfig, WidgetShellAction, EndpointRef, ComponentPortPathSegment, LinkIntent, CompositionLink, WidgetPageDefinition, TransformKind, SettingsValueProvider as SettingsValueProvider$1, WidgetPageGroupingDefinition, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeChangeSetFilters, DomainKnowledgeValidationResponse, DomainKnowledgeStatusTransitionRequest, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleDefinitionRequest, DomainRuleDefinition, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatusTransitionRequest, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleMaterializationFilters, DomainRuleMaterialization, DomainRuleTimelineResponse, WidgetPageCanvasLayout, WidgetPageStateInput, WidgetInstance, ComponentAuthoringManifest, DynamicWidgetPageComponent, SettingsPanelBridge, WidgetEventEnvelope, RichTimelineItem } from '@praxisui/core';
|
|
5
5
|
export { WidgetShellComponent } from '@praxisui/core';
|
|
6
6
|
import * as rxjs from 'rxjs';
|
|
7
7
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
@@ -1160,7 +1160,10 @@ interface PageBuilderAgenticAuthoringEventSource {
|
|
|
1160
1160
|
addEventListener?(type: string, listener: (event: MessageEvent<string>) => void): void;
|
|
1161
1161
|
close(): void;
|
|
1162
1162
|
}
|
|
1163
|
-
|
|
1163
|
+
interface PageBuilderAgenticAuthoringEventSourceOptions {
|
|
1164
|
+
withCredentials?: boolean;
|
|
1165
|
+
}
|
|
1166
|
+
type PageBuilderAgenticAuthoringEventSourceFactory = (url: string, options?: PageBuilderAgenticAuthoringEventSourceOptions) => PageBuilderAgenticAuthoringEventSource;
|
|
1164
1167
|
interface PageBuilderAgenticAuthoringTurnStreamConnectionError {
|
|
1165
1168
|
readonly praxisAgenticTurnStreamConnectionError: true;
|
|
1166
1169
|
readonly cause: unknown;
|
|
@@ -1561,6 +1564,7 @@ interface PageBuilderGovernedContinuationAction {
|
|
|
1561
1564
|
interface AgenticAuthoringQuickReply extends PraxisAssistantShellQuickReply {
|
|
1562
1565
|
kind: string;
|
|
1563
1566
|
}
|
|
1567
|
+
type AgenticAuthoringPanelLayout = PraxisAssistantShellLayout;
|
|
1564
1568
|
type SharedRuleCockpitAction = 'definition' | 'simulation' | 'approve' | 'activate' | 'publication' | 'materializations' | 'timeline' | 'enforcement';
|
|
1565
1569
|
type ProjectKnowledgeCockpitAction = 'change-set' | 'validate' | 'approve' | 'reject' | 'apply' | 'readback';
|
|
1566
1570
|
interface SharedRuleEnforcementSummary {
|
|
@@ -1635,6 +1639,7 @@ declare class DynamicPageBuilderComponent implements OnChanges {
|
|
|
1635
1639
|
pageLifecycleBusy: boolean;
|
|
1636
1640
|
pageLifecycleResetRevision: number | string | null;
|
|
1637
1641
|
pageChange: EventEmitter<WidgetPageDefinition>;
|
|
1642
|
+
pageSaveRequested: EventEmitter<WidgetPageDefinition>;
|
|
1638
1643
|
agenticAuthoringApplied: EventEmitter<PageBuilderApplyResult>;
|
|
1639
1644
|
agenticAuthoringSharedRuleHandoff: EventEmitter<PageBuilderAgenticAuthoringSharedRuleHandoff>;
|
|
1640
1645
|
pageRestart: EventEmitter<void>;
|
|
@@ -1679,10 +1684,12 @@ declare class DynamicPageBuilderComponent implements OnChanges {
|
|
|
1679
1684
|
private agenticComponentCapabilitiesPromise?;
|
|
1680
1685
|
private agenticTurnController?;
|
|
1681
1686
|
private sharedRuleHandoffRevision;
|
|
1687
|
+
private agenticAuthoringPanelLayoutTouched;
|
|
1682
1688
|
constructor(dialog: MatDialog, settingsPanel: SettingsPanelBridge | null);
|
|
1683
1689
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1684
1690
|
showSettings(): boolean;
|
|
1685
1691
|
onRuntimePageChange(next: WidgetPageDefinition): void;
|
|
1692
|
+
onRuntimeWidgetEvent(event: WidgetEventEnvelope): void;
|
|
1686
1693
|
onConnectionEditorPageChange(next: WidgetPageDefinition): void;
|
|
1687
1694
|
onRuntimeWidgetSelectionChange(widgetKey: string | null): void;
|
|
1688
1695
|
togglePreview(): void;
|
|
@@ -1701,6 +1708,8 @@ declare class DynamicPageBuilderComponent implements OnChanges {
|
|
|
1701
1708
|
openAgenticAuthoringForWidget(widgetKey: string): void;
|
|
1702
1709
|
openAgenticAuthoringFromSession(session: PraxisAssistantSessionSnapshot): void;
|
|
1703
1710
|
minimizeAgenticAuthoring(): void;
|
|
1711
|
+
onAgenticAuthoringLayoutChange(layout: AgenticAuthoringPanelLayout): void;
|
|
1712
|
+
agenticAuthoringReviewRailActive(): boolean;
|
|
1704
1713
|
showAgenticAuthoringDock(): boolean;
|
|
1705
1714
|
agenticAuthoringMinimized(): boolean;
|
|
1706
1715
|
agenticAuthoringToggleLabel(): string;
|
|
@@ -1809,6 +1818,7 @@ declare class DynamicPageBuilderComponent implements OnChanges {
|
|
|
1809
1818
|
private applyAgenticPreviewLocally;
|
|
1810
1819
|
private applyAgenticTurnState;
|
|
1811
1820
|
private primeSharedRuleHandoff;
|
|
1821
|
+
private moveAgenticAuthoringPanelToReviewSidecar;
|
|
1812
1822
|
private resolveAgenticSharedRuleHandoff;
|
|
1813
1823
|
private resolveAgenticSharedRuleAssistantMessage;
|
|
1814
1824
|
private resolveSharedRuleHandoffRuleType;
|
|
@@ -1831,6 +1841,7 @@ declare class DynamicPageBuilderComponent implements OnChanges {
|
|
|
1831
1841
|
private clonePage;
|
|
1832
1842
|
private clearSelectedWidgetIfMissing;
|
|
1833
1843
|
private defaultInputsFor;
|
|
1844
|
+
private applyWidgetIdentityDefaults;
|
|
1834
1845
|
private resolveAgenticComponentId;
|
|
1835
1846
|
private resolveSelectedWidgetKey;
|
|
1836
1847
|
private resolveWidgetByKey;
|
|
@@ -1846,8 +1857,8 @@ declare class DynamicPageBuilderComponent implements OnChanges {
|
|
|
1846
1857
|
private cloneValue;
|
|
1847
1858
|
tx(key: string, fallback: string): string;
|
|
1848
1859
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicPageBuilderComponent, [null, { optional: true; }]>;
|
|
1849
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicPageBuilderComponent, "praxis-dynamic-page-builder", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showSettingsButton": { "alias": "showSettingsButton"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "enableAgenticAuthoring": { "alias": "enableAgenticAuthoring"; "required": false; }; "agenticAuthoringProvider": { "alias": "agenticAuthoringProvider"; "required": false; }; "agenticAuthoringModel": { "alias": "agenticAuthoringModel"; "required": false; }; "agenticAuthoringApiKey": { "alias": "agenticAuthoringApiKey"; "required": false; }; "agenticAuthoringComponentId": { "alias": "agenticAuthoringComponentId"; "required": false; }; "agenticAuthoringScope": { "alias": "agenticAuthoringScope"; "required": false; }; "agenticAuthoringEtag": { "alias": "agenticAuthoringEtag"; "required": false; }; "agenticAuthoringIncludeLlmDiagnostics": { "alias": "agenticAuthoringIncludeLlmDiagnostics"; "required": false; }; "agenticAuthoringEnableStreaming": { "alias": "agenticAuthoringEnableStreaming"; "required": false; }; "agenticAuthoringContextHints": { "alias": "agenticAuthoringContextHints"; "required": false; }; "showPageLifecycleActions": { "alias": "showPageLifecycleActions"; "required": false; }; "canDeleteSavedPage": { "alias": "canDeleteSavedPage"; "required": false; }; "pageLifecycleBusy": { "alias": "pageLifecycleBusy"; "required": false; }; "pageLifecycleResetRevision": { "alias": "pageLifecycleResetRevision"; "required": false; }; }, { "pageChange": "pageChange"; "agenticAuthoringApplied": "agenticAuthoringApplied"; "agenticAuthoringSharedRuleHandoff": "agenticAuthoringSharedRuleHandoff"; "pageRestart": "pageRestart"; "savedPageDeleteRequested": "savedPageDeleteRequested"; }, never, never, true, never>;
|
|
1860
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicPageBuilderComponent, "praxis-dynamic-page-builder", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showSettingsButton": { "alias": "showSettingsButton"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "enableAgenticAuthoring": { "alias": "enableAgenticAuthoring"; "required": false; }; "agenticAuthoringProvider": { "alias": "agenticAuthoringProvider"; "required": false; }; "agenticAuthoringModel": { "alias": "agenticAuthoringModel"; "required": false; }; "agenticAuthoringApiKey": { "alias": "agenticAuthoringApiKey"; "required": false; }; "agenticAuthoringComponentId": { "alias": "agenticAuthoringComponentId"; "required": false; }; "agenticAuthoringScope": { "alias": "agenticAuthoringScope"; "required": false; }; "agenticAuthoringEtag": { "alias": "agenticAuthoringEtag"; "required": false; }; "agenticAuthoringIncludeLlmDiagnostics": { "alias": "agenticAuthoringIncludeLlmDiagnostics"; "required": false; }; "agenticAuthoringEnableStreaming": { "alias": "agenticAuthoringEnableStreaming"; "required": false; }; "agenticAuthoringContextHints": { "alias": "agenticAuthoringContextHints"; "required": false; }; "showPageLifecycleActions": { "alias": "showPageLifecycleActions"; "required": false; }; "canDeleteSavedPage": { "alias": "canDeleteSavedPage"; "required": false; }; "pageLifecycleBusy": { "alias": "pageLifecycleBusy"; "required": false; }; "pageLifecycleResetRevision": { "alias": "pageLifecycleResetRevision"; "required": false; }; }, { "pageChange": "pageChange"; "pageSaveRequested": "pageSaveRequested"; "agenticAuthoringApplied": "agenticAuthoringApplied"; "agenticAuthoringSharedRuleHandoff": "agenticAuthoringSharedRuleHandoff"; "pageRestart": "pageRestart"; "savedPageDeleteRequested": "savedPageDeleteRequested"; }, never, never, true, never>;
|
|
1850
1861
|
}
|
|
1851
1862
|
|
|
1852
1863
|
export { ComponentPaletteDialogComponent, ConfirmDialogComponent, ConnectionEditorComponent, DynamicPageBuilderComponent, DynamicPageConfigEditorComponent, FloatingToolbarComponent, PAGE_BUILDER_AGENTIC_AUTHORING_OPTIONS, PAGE_BUILDER_AI_CAPABILITIES, PAGE_BUILDER_WIDGET_AI_CATALOGS, PLACEHOLDER, PRAXIS_PAGE_BUILDER_AUTHORING_MANIFEST, PageBuilderAgenticAuthoringService, PageConfigEditorComponent, TileToolbarComponent, WidgetShellEditorComponent, clearWidgetAiCatalogs, compileUiCompositionPlan, getPageAiCatalog, getWidgetAiCapabilities, providePageBuilderWidgetAiCatalogs, registerWidgetAiCatalog, registerWidgetAiCatalogs, validateUiCompositionPlan };
|
|
1853
|
-
export type { Capability, CapabilityCatalog, CapabilityCategory, ComponentPaletteData, ComponentPaletteSelection, ConfirmDialogData, PageBuilderAgenticAuthoringAttachmentSummary, PageBuilderAgenticAuthoringCandidate, PageBuilderAgenticAuthoringComponentCapabilitiesResult, PageBuilderAgenticAuthoringComponentCapability, PageBuilderAgenticAuthoringComponentCapabilityCatalog, PageBuilderAgenticAuthoringComponentCapabilityExample, PageBuilderAgenticAuthoringComponentFieldAlias, PageBuilderAgenticAuthoringConversationMessage, PageBuilderAgenticAuthoringEventSource, PageBuilderAgenticAuthoringEventSourceFactory, PageBuilderAgenticAuthoringGateResult, PageBuilderAgenticAuthoringIntentResolutionRequest, PageBuilderAgenticAuthoringIntentResolutionResult, PageBuilderAgenticAuthoringOptions, PageBuilderAgenticAuthoringPendingClarification, PageBuilderAgenticAuthoringPromptRequest, PageBuilderAgenticAuthoringProvider, PageBuilderAgenticAuthoringQuickReply, PageBuilderAgenticAuthoringResourceCandidatesRequest, PageBuilderAgenticAuthoringResourceCandidatesResult, PageBuilderAgenticAuthoringSharedRuleHandoff, PageBuilderAgenticAuthoringTarget, PageBuilderAgenticAuthoringTurnStreamConnectionError, PageBuilderAgenticAuthoringTurnStreamEvent, PageBuilderAgenticAuthoringTurnStreamRequest, PageBuilderAgenticAuthoringTurnStreamStartResponse, PageBuilderApplyRequest, PageBuilderApplyResult, PageBuilderCompiledFormPatch, PageBuilderMinimalFormPlanResult, PageBuilderPreviewDiagnostics, PageBuilderPreviewResult, PageBuilderProjectKnowledgeAudit, UiCompositionPlan, UiCompositionPlanBinding, UiCompositionPlanCompileResult, UiCompositionPlanComponentPortEndpoint, UiCompositionPlanDiagnostic, UiCompositionPlanEndpoint, UiCompositionPlanGlobalActionEndpoint, UiCompositionPlanInputSource, UiCompositionPlanSourceEndpoint, UiCompositionPlanStateEndpoint, UiCompositionPlanTargetEndpoint, UiCompositionPlanTransform, UiCompositionPlanWidget, ValueKind };
|
|
1864
|
+
export type { Capability, CapabilityCatalog, CapabilityCategory, ComponentPaletteData, ComponentPaletteSelection, ConfirmDialogData, PageBuilderAgenticAuthoringAttachmentSummary, PageBuilderAgenticAuthoringCandidate, PageBuilderAgenticAuthoringComponentCapabilitiesResult, PageBuilderAgenticAuthoringComponentCapability, PageBuilderAgenticAuthoringComponentCapabilityCatalog, PageBuilderAgenticAuthoringComponentCapabilityExample, PageBuilderAgenticAuthoringComponentFieldAlias, PageBuilderAgenticAuthoringConversationMessage, PageBuilderAgenticAuthoringEventSource, PageBuilderAgenticAuthoringEventSourceFactory, PageBuilderAgenticAuthoringEventSourceOptions, PageBuilderAgenticAuthoringGateResult, PageBuilderAgenticAuthoringIntentResolutionRequest, PageBuilderAgenticAuthoringIntentResolutionResult, PageBuilderAgenticAuthoringOptions, PageBuilderAgenticAuthoringPendingClarification, PageBuilderAgenticAuthoringPromptRequest, PageBuilderAgenticAuthoringProvider, PageBuilderAgenticAuthoringQuickReply, PageBuilderAgenticAuthoringResourceCandidatesRequest, PageBuilderAgenticAuthoringResourceCandidatesResult, PageBuilderAgenticAuthoringSharedRuleHandoff, PageBuilderAgenticAuthoringTarget, PageBuilderAgenticAuthoringTurnStreamConnectionError, PageBuilderAgenticAuthoringTurnStreamEvent, PageBuilderAgenticAuthoringTurnStreamRequest, PageBuilderAgenticAuthoringTurnStreamStartResponse, PageBuilderApplyRequest, PageBuilderApplyResult, PageBuilderCompiledFormPatch, PageBuilderMinimalFormPlanResult, PageBuilderPreviewDiagnostics, PageBuilderPreviewResult, PageBuilderProjectKnowledgeAudit, UiCompositionPlan, UiCompositionPlanBinding, UiCompositionPlanCompileResult, UiCompositionPlanComponentPortEndpoint, UiCompositionPlanDiagnostic, UiCompositionPlanEndpoint, UiCompositionPlanGlobalActionEndpoint, UiCompositionPlanInputSource, UiCompositionPlanSourceEndpoint, UiCompositionPlanStateEndpoint, UiCompositionPlanTargetEndpoint, UiCompositionPlanTransform, UiCompositionPlanWidget, ValueKind };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/page-builder",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.27",
|
|
4
4
|
"description": "Page and widget builder utilities for Praxis UI (grid, dynamic widgets, editors).",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^20.0.0",
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
"@angular/forms": "^20.0.0",
|
|
9
9
|
"@angular/cdk": "^20.0.0",
|
|
10
10
|
"@angular/material": "^20.0.0",
|
|
11
|
-
"@praxisui/ai": "^8.0.0-beta.
|
|
12
|
-
"@praxisui/core": "^8.0.0-beta.
|
|
13
|
-
"@praxisui/settings-panel": "^8.0.0-beta.
|
|
11
|
+
"@praxisui/ai": "^8.0.0-beta.27",
|
|
12
|
+
"@praxisui/core": "^8.0.0-beta.27",
|
|
13
|
+
"@praxisui/settings-panel": "^8.0.0-beta.27",
|
|
14
14
|
"rxjs": "~7.8.0"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|