@praxisui/core 9.0.48 → 9.0.50
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 +8 -0
- package/ai/component-registry.json +2 -2
- package/fesm2022/praxisui-core.mjs +90 -24
- package/package.json +1 -1
- package/types/praxisui-core.d.ts +3 -0
package/README.md
CHANGED
|
@@ -212,6 +212,14 @@ those descriptors only in its render projection, so the authored and persisted
|
|
|
212
212
|
document keeps stable semantic keys. Plain strings remain untouched, and
|
|
213
213
|
framework chrome continues to come from each library's i18n catalog.
|
|
214
214
|
|
|
215
|
+
During generic document traversal, a record containing only `{ key }` remains
|
|
216
|
+
structural. A descriptor must also carry `text` or `params` to be localized.
|
|
217
|
+
This keeps contracts such as analytics mappings (`{ key: "status" }`) intact,
|
|
218
|
+
even if a page catalog happens to use the same key. Typed component metadata
|
|
219
|
+
may still resolve key-only `PraxisTextValue` values directly through
|
|
220
|
+
`PraxisI18nService`; the UI Composition Plan compiler also materializes
|
|
221
|
+
fallback `text` for page-owned key-only copy before persistence.
|
|
222
|
+
|
|
215
223
|
### Composition link delivery and failures
|
|
216
224
|
|
|
217
225
|
Composition links execute in their persisted array order inside one synchronous
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-31T15:53:16.439Z",
|
|
4
4
|
"packageName": "@praxisui/core",
|
|
5
|
-
"packageVersion": "9.0.
|
|
5
|
+
"packageVersion": "9.0.50",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 4,
|
|
@@ -20509,7 +20509,8 @@ function resolvePraxisI18nDocument(document, options) {
|
|
|
20509
20509
|
options.i18n.getFallbackLocale();
|
|
20510
20510
|
const ancestors = new Set();
|
|
20511
20511
|
const visit = (value) => {
|
|
20512
|
-
if (isPraxisI18nMessageDescriptor(value)
|
|
20512
|
+
if (isPraxisI18nMessageDescriptor(value) &&
|
|
20513
|
+
isExplicitDocumentMessageDescriptor(value)) {
|
|
20513
20514
|
return resolveDescriptor(value, locale, fallbackLocale, options);
|
|
20514
20515
|
}
|
|
20515
20516
|
if (Array.isArray(value)) {
|
|
@@ -20555,6 +20556,17 @@ function isPraxisI18nMessageDescriptor(value) {
|
|
|
20555
20556
|
(typeof text === 'string' && !!text)) &&
|
|
20556
20557
|
(params == null || isPlainRecord(params)));
|
|
20557
20558
|
}
|
|
20559
|
+
/**
|
|
20560
|
+
* Generic document traversal needs stronger evidence than the public
|
|
20561
|
+
* descriptor guard. Key-only records are common structural contracts (for
|
|
20562
|
+
* example analytics field mappings), so only descriptors with an explicit
|
|
20563
|
+
* text fallback or interpolation params are localized. Typed consumers can
|
|
20564
|
+
* continue to resolve key-only descriptors directly through PraxisI18nService.
|
|
20565
|
+
*/
|
|
20566
|
+
function isExplicitDocumentMessageDescriptor(descriptor) {
|
|
20567
|
+
return (Object.prototype.hasOwnProperty.call(descriptor, 'text') ||
|
|
20568
|
+
Object.prototype.hasOwnProperty.call(descriptor, 'params'));
|
|
20569
|
+
}
|
|
20558
20570
|
function resolveDescriptor(descriptor, locale, fallbackLocale, options) {
|
|
20559
20571
|
const key = descriptor.key?.trim();
|
|
20560
20572
|
if (!key) {
|
|
@@ -38102,6 +38114,7 @@ class DynamicWidgetContextToolbarComponent {
|
|
|
38102
38114
|
assistantLabel = '';
|
|
38103
38115
|
assistantTooltip = '';
|
|
38104
38116
|
showComponentSettings = false;
|
|
38117
|
+
componentSettingsBusy = input(false, { ...(ngDevMode ? { debugName: "componentSettingsBusy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
38105
38118
|
componentSettingsLabel = '';
|
|
38106
38119
|
componentSettingsTooltip = '';
|
|
38107
38120
|
showShellSettings = false;
|
|
@@ -38115,7 +38128,7 @@ class DynamicWidgetContextToolbarComponent {
|
|
|
38115
38128
|
shellSettings = new EventEmitter();
|
|
38116
38129
|
remove = new EventEmitter();
|
|
38117
38130
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicWidgetContextToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
38118
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetContextToolbarComponent, isStandalone: true, selector: "praxis-dynamic-widget-context-toolbar", inputs: { toolbarLabel: "toolbarLabel", contextLabel: "contextLabel", contextTooltip: "contextTooltip", showAssistant: "showAssistant", assistantLabel: "assistantLabel", assistantTooltip: "assistantTooltip", showComponentSettings: "showComponentSettings", componentSettingsLabel: "componentSettingsLabel", componentSettingsTooltip: "componentSettingsTooltip", showShellSettings: "showShellSettings", shellSettingsLabel: "shellSettingsLabel", shellSettingsTooltip: "shellSettingsTooltip", showRemove: "showRemove", moreActionsLabel: "moreActionsLabel", removeLabel: "removeLabel" }, outputs: { assistant: "assistant", componentSettings: "componentSettings", shellSettings: "shellSettings", remove: "remove" }, ngImport: i0, template: `
|
|
38131
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetContextToolbarComponent, isStandalone: true, selector: "praxis-dynamic-widget-context-toolbar", inputs: { toolbarLabel: { classPropertyName: "toolbarLabel", publicName: "toolbarLabel", isSignal: false, isRequired: false, transformFunction: null }, contextLabel: { classPropertyName: "contextLabel", publicName: "contextLabel", isSignal: false, isRequired: false, transformFunction: null }, contextTooltip: { classPropertyName: "contextTooltip", publicName: "contextTooltip", isSignal: false, isRequired: false, transformFunction: null }, showAssistant: { classPropertyName: "showAssistant", publicName: "showAssistant", isSignal: false, isRequired: false, transformFunction: null }, assistantLabel: { classPropertyName: "assistantLabel", publicName: "assistantLabel", isSignal: false, isRequired: false, transformFunction: null }, assistantTooltip: { classPropertyName: "assistantTooltip", publicName: "assistantTooltip", isSignal: false, isRequired: false, transformFunction: null }, showComponentSettings: { classPropertyName: "showComponentSettings", publicName: "showComponentSettings", isSignal: false, isRequired: false, transformFunction: null }, componentSettingsBusy: { classPropertyName: "componentSettingsBusy", publicName: "componentSettingsBusy", isSignal: true, isRequired: false, transformFunction: null }, componentSettingsLabel: { classPropertyName: "componentSettingsLabel", publicName: "componentSettingsLabel", isSignal: false, isRequired: false, transformFunction: null }, componentSettingsTooltip: { classPropertyName: "componentSettingsTooltip", publicName: "componentSettingsTooltip", isSignal: false, isRequired: false, transformFunction: null }, showShellSettings: { classPropertyName: "showShellSettings", publicName: "showShellSettings", isSignal: false, isRequired: false, transformFunction: null }, shellSettingsLabel: { classPropertyName: "shellSettingsLabel", publicName: "shellSettingsLabel", isSignal: false, isRequired: false, transformFunction: null }, shellSettingsTooltip: { classPropertyName: "shellSettingsTooltip", publicName: "shellSettingsTooltip", isSignal: false, isRequired: false, transformFunction: null }, showRemove: { classPropertyName: "showRemove", publicName: "showRemove", isSignal: false, isRequired: false, transformFunction: null }, moreActionsLabel: { classPropertyName: "moreActionsLabel", publicName: "moreActionsLabel", isSignal: false, isRequired: false, transformFunction: null }, removeLabel: { classPropertyName: "removeLabel", publicName: "removeLabel", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { assistant: "assistant", componentSettings: "componentSettings", shellSettings: "shellSettings", remove: "remove" }, ngImport: i0, template: `
|
|
38119
38132
|
<div
|
|
38120
38133
|
class="pdx-widget-context-toolbar"
|
|
38121
38134
|
[class.pdx-widget-context-toolbar--with-context]="!!contextLabel"
|
|
@@ -38151,6 +38164,8 @@ class DynamicWidgetContextToolbarComponent {
|
|
|
38151
38164
|
size="dense"
|
|
38152
38165
|
type="button"
|
|
38153
38166
|
data-testid="dynamic-widget-component-settings"
|
|
38167
|
+
[busy]="componentSettingsBusy()"
|
|
38168
|
+
[disabled]="componentSettingsBusy()"
|
|
38154
38169
|
[matTooltip]="componentSettingsTooltip"
|
|
38155
38170
|
[attr.aria-label]="componentSettingsLabel"
|
|
38156
38171
|
(click)="componentSettings.emit()"
|
|
@@ -38231,6 +38246,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
38231
38246
|
size="dense"
|
|
38232
38247
|
type="button"
|
|
38233
38248
|
data-testid="dynamic-widget-component-settings"
|
|
38249
|
+
[busy]="componentSettingsBusy()"
|
|
38250
|
+
[disabled]="componentSettingsBusy()"
|
|
38234
38251
|
[matTooltip]="componentSettingsTooltip"
|
|
38235
38252
|
[attr.aria-label]="componentSettingsLabel"
|
|
38236
38253
|
(click)="componentSettings.emit()"
|
|
@@ -38280,7 +38297,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
38280
38297
|
type: Input
|
|
38281
38298
|
}], showComponentSettings: [{
|
|
38282
38299
|
type: Input
|
|
38283
|
-
}], componentSettingsLabel: [{
|
|
38300
|
+
}], componentSettingsBusy: [{ type: i0.Input, args: [{ isSignal: true, alias: "componentSettingsBusy", required: false }] }], componentSettingsLabel: [{
|
|
38284
38301
|
type: Input
|
|
38285
38302
|
}], componentSettingsTooltip: [{
|
|
38286
38303
|
type: Input
|
|
@@ -38452,6 +38469,7 @@ class DynamicWidgetPageComponent {
|
|
|
38452
38469
|
diagnostics: [],
|
|
38453
38470
|
};
|
|
38454
38471
|
configEditorContextRequests = new Map();
|
|
38472
|
+
pendingWidgetComponentSettings = signal(new Set(), ...(ngDevMode ? [{ debugName: "pendingWidgetComponentSettings" }] : /* istanbul ignore next */ []));
|
|
38455
38473
|
nextConfigEditorContextRequestId = 0;
|
|
38456
38474
|
layout;
|
|
38457
38475
|
canvas;
|
|
@@ -39882,6 +39900,9 @@ class DynamicWidgetPageComponent {
|
|
|
39882
39900
|
const metadata = this.componentMetadata?.get(widget.definition?.id || '');
|
|
39883
39901
|
return !!metadata?.configEditor?.component;
|
|
39884
39902
|
}
|
|
39903
|
+
isWidgetComponentSettingsPending(key) {
|
|
39904
|
+
return this.pendingWidgetComponentSettings().has(key);
|
|
39905
|
+
}
|
|
39885
39906
|
canRemoveWidgets() {
|
|
39886
39907
|
return this.isAuthoringCapabilityEnabled('widgetRemoval');
|
|
39887
39908
|
}
|
|
@@ -40343,28 +40364,49 @@ class DynamicWidgetPageComponent {
|
|
|
40343
40364
|
: undefined;
|
|
40344
40365
|
const requestId = ++this.nextConfigEditorContextRequestId;
|
|
40345
40366
|
this.configEditorContextRequests.set(key, requestId);
|
|
40346
|
-
|
|
40347
|
-
|
|
40348
|
-
|
|
40349
|
-
|
|
40350
|
-
|
|
40351
|
-
|
|
40352
|
-
|
|
40353
|
-
|
|
40354
|
-
|
|
40355
|
-
|
|
40356
|
-
|
|
40357
|
-
|
|
40358
|
-
|
|
40359
|
-
|
|
40360
|
-
|
|
40361
|
-
|
|
40362
|
-
|
|
40367
|
+
this.setWidgetComponentSettingsPending(key, true);
|
|
40368
|
+
try {
|
|
40369
|
+
const contextResult = await this.resolveWidgetConfigEditorContext(metadata, page, widget, key, persistedInputs, materializedInputs);
|
|
40370
|
+
if (this.configEditorContextRequests.get(key) !== requestId) {
|
|
40371
|
+
return;
|
|
40372
|
+
}
|
|
40373
|
+
const ref = this.settingsPanel.open({
|
|
40374
|
+
id: `dynamic-page-component:${key}`,
|
|
40375
|
+
title: metadata.configEditor?.title ||
|
|
40376
|
+
metadata.friendlyName ||
|
|
40377
|
+
this.t('controls.componentSettings', 'Configurar conteudo'),
|
|
40378
|
+
content: {
|
|
40379
|
+
component: editor,
|
|
40380
|
+
inputs: {
|
|
40381
|
+
inputs: persistedInputs,
|
|
40382
|
+
context: contextResult.context ?? {},
|
|
40383
|
+
contextDiagnostics: contextResult.diagnostics ?? [],
|
|
40384
|
+
widgetKey: key,
|
|
40385
|
+
widgetType: widget.definition?.id,
|
|
40386
|
+
},
|
|
40363
40387
|
},
|
|
40364
|
-
}
|
|
40388
|
+
});
|
|
40389
|
+
ref.applied$.subscribe((result) => this.applyWidgetComponentInputs(key, result, false));
|
|
40390
|
+
ref.saved$.subscribe((result) => this.applyWidgetComponentInputs(key, result, true));
|
|
40391
|
+
}
|
|
40392
|
+
finally {
|
|
40393
|
+
if (this.configEditorContextRequests.get(key) === requestId) {
|
|
40394
|
+
this.configEditorContextRequests.delete(key);
|
|
40395
|
+
this.setWidgetComponentSettingsPending(key, false);
|
|
40396
|
+
}
|
|
40397
|
+
}
|
|
40398
|
+
}
|
|
40399
|
+
setWidgetComponentSettingsPending(key, pending) {
|
|
40400
|
+
this.pendingWidgetComponentSettings.update((current) => {
|
|
40401
|
+
const next = new Set(current);
|
|
40402
|
+
if (pending) {
|
|
40403
|
+
next.add(key);
|
|
40404
|
+
}
|
|
40405
|
+
else {
|
|
40406
|
+
next.delete(key);
|
|
40407
|
+
}
|
|
40408
|
+
return next;
|
|
40365
40409
|
});
|
|
40366
|
-
ref.applied$.subscribe((result) => this.applyWidgetComponentInputs(key, result, false));
|
|
40367
|
-
ref.saved$.subscribe((result) => this.applyWidgetComponentInputs(key, result, true));
|
|
40368
40410
|
}
|
|
40369
40411
|
async resolveWidgetConfigEditorContext(metadata, page, widget, key, persistedInputs, materializedInputs) {
|
|
40370
40412
|
const resolver = metadata.configEditor?.contextResolver;
|
|
@@ -42452,6 +42494,9 @@ class DynamicWidgetPageComponent {
|
|
|
42452
42494
|
[showComponentSettings]="
|
|
42453
42495
|
canOpenWidgetComponentSettings(w.key)
|
|
42454
42496
|
"
|
|
42497
|
+
[componentSettingsBusy]="
|
|
42498
|
+
isWidgetComponentSettingsPending(w.key)
|
|
42499
|
+
"
|
|
42455
42500
|
[componentSettingsLabel]="componentSettingsLabel()"
|
|
42456
42501
|
[componentSettingsTooltip]="componentSettingsTooltip()"
|
|
42457
42502
|
[showShellSettings]="canOpenWidgetShellSettings()"
|
|
@@ -42566,6 +42611,9 @@ class DynamicWidgetPageComponent {
|
|
|
42566
42611
|
[showComponentSettings]="
|
|
42567
42612
|
canOpenWidgetComponentSettings(w.key)
|
|
42568
42613
|
"
|
|
42614
|
+
[componentSettingsBusy]="
|
|
42615
|
+
isWidgetComponentSettingsPending(w.key)
|
|
42616
|
+
"
|
|
42569
42617
|
[componentSettingsLabel]="
|
|
42570
42618
|
componentSettingsLabel()
|
|
42571
42619
|
"
|
|
@@ -42642,6 +42690,9 @@ class DynamicWidgetPageComponent {
|
|
|
42642
42690
|
[showComponentSettings]="
|
|
42643
42691
|
canOpenWidgetComponentSettings(w.key)
|
|
42644
42692
|
"
|
|
42693
|
+
[componentSettingsBusy]="
|
|
42694
|
+
isWidgetComponentSettingsPending(w.key)
|
|
42695
|
+
"
|
|
42645
42696
|
[componentSettingsLabel]="componentSettingsLabel()"
|
|
42646
42697
|
[componentSettingsTooltip]="
|
|
42647
42698
|
componentSettingsTooltip()
|
|
@@ -42708,6 +42759,9 @@ class DynamicWidgetPageComponent {
|
|
|
42708
42759
|
[showComponentSettings]="
|
|
42709
42760
|
canOpenWidgetComponentSettings(w.key)
|
|
42710
42761
|
"
|
|
42762
|
+
[componentSettingsBusy]="
|
|
42763
|
+
isWidgetComponentSettingsPending(w.key)
|
|
42764
|
+
"
|
|
42711
42765
|
[componentSettingsLabel]="componentSettingsLabel()"
|
|
42712
42766
|
[componentSettingsTooltip]="componentSettingsTooltip()"
|
|
42713
42767
|
[showShellSettings]="canOpenWidgetShellSettings()"
|
|
@@ -42732,7 +42786,7 @@ class DynamicWidgetPageComponent {
|
|
|
42732
42786
|
</div>
|
|
42733
42787
|
}
|
|
42734
42788
|
</div>
|
|
42735
|
-
`, isInline: true, styles: [":host{display:block;min-width:0}.pdx-page-wrapper{position:relative;display:block;background:var(--pdx-page-bg, transparent);color:var(--pdx-page-color, inherit)}.pdx-page{display:grid;gap:var(--pdx-page-gap, 12px);grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-wrapper.editing .pdx-page--canvas{padding-block-start:var(--pdx-canvas-context-toolbar-safe-area, 22px);padding-block-end:22px;padding-inline:22px;box-sizing:border-box}.pdx-page-settings{position:sticky;top:8px;z-index:2;color:inherit;margin-bottom:6px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:6px;min-width:0;min-height:0}.pdx-widget--interactive{cursor:pointer}.pdx-widget--selected:before{content:\"\";position:absolute;inset:0;border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);border-radius:14px;pointer-events:none;z-index:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent),0 8px 20px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent)}.pdx-widget--canvas{align-self:stretch;--pdx-resize-gradient-horizontal: linear-gradient( 90deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-vertical: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-se: linear-gradient( 135deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-sw: linear-gradient( 225deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-widget--canvas:after{content:\"\";position:absolute;inset:0;padding:2px;border-radius:14px;background:var(--pdx-active-resize-gradient);opacity:0;pointer-events:none;transition:opacity .14s ease,filter .14s ease;filter:saturate(1.02) drop-shadow(0 0 5px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.pdx-widget--canvas-selected:before,.pdx-widget--canvas-blocked:before{content:\"\";position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:1;transition:opacity .14s ease,box-shadow .14s ease,border-color .14s ease}.pdx-widget--canvas-blocked:before{border:1px solid color-mix(in srgb,var(--md-sys-color-error) 74%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 20%,transparent),0 10px 24px color-mix(in srgb,var(--md-sys-color-error) 12%,transparent)}.pdx-widget--canvas:has(.pdx-canvas-resize:hover):after,.pdx-widget--canvas:has(.pdx-canvas-resize:focus-visible):after{opacity:.82}.pdx-widget--canvas:has(.pdx-canvas-resize--north:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-horizontal)}.pdx-widget--canvas:has(.pdx-canvas-resize--east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-vertical)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-sw)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize{position:absolute;z-index:7;border:0;padding:0;margin:0;background:transparent;touch-action:none;cursor:pointer;opacity:0;pointer-events:none;transform:scale(.94);transition:opacity .14s ease,transform .14s ease,filter .14s ease;filter:saturate(.9)}.pdx-widget--canvas:hover .pdx-canvas-resize,.pdx-widget--canvas:focus-within .pdx-canvas-resize,.pdx-widget--canvas-selected .pdx-canvas-resize{opacity:.88;pointer-events:auto;transform:scale(1);filter:saturate(1)}.pdx-widget--canvas:has(.pdx-shell.expanded) .pdx-canvas-resize,.pdx-widget--canvas:has(.pdx-shell.fullscreen) .pdx-canvas-resize{opacity:0;pointer-events:none;transform:scale(.94)}.pdx-canvas-resize-grip{display:block;width:9px;height:9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 42%,var(--md-sys-color-outline-variant) 58%);background:color-mix(in srgb,var(--md-sys-color-surface) 92%,var(--md-sys-color-primary) 8%);box-shadow:0 1px 4px color-mix(in srgb,var(--md-sys-color-shadow) 10%,transparent);transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:color-mix(in srgb,var(--md-sys-color-primary) 58%,var(--md-sys-color-outline-variant) 42%);background:color-mix(in srgb,var(--md-sys-color-surface) 84%,var(--md-sys-color-primary) 16%);box-shadow:0 2px 7px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent);transform:scale(1.04)}.pdx-canvas-resize--north,.pdx-canvas-resize--south{left:50%;width:52px;height:44px;margin-left:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-22px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-22px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:44px;height:52px;margin-top:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-22px;cursor:ew-resize}.pdx-canvas-resize--west{left:-22px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-22px;right:-22px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-22px;left:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-22px;right:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-22px;left:-22px;cursor:nesw-resize}.pdx-canvas-snap-preview{position:relative;align-self:stretch;border-radius:12px;pointer-events:none;z-index:0;background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent),color-mix(in srgb,var(--md-sys-color-tertiary) 12%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 42%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 55%,transparent);animation:pdx-snap-preview-pulse .48s ease-out infinite alternate}.pdx-canvas-snap-preview:before,.pdx-canvas-snap-preview:after{content:\"\";position:absolute;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-primary) 82%,var(--md-sys-color-tertiary) 18%);opacity:.72}.pdx-canvas-snap-preview:before{inset:0 auto 0 0;width:3px}.pdx-canvas-snap-preview:after{inset:0 0 auto;height:3px}.pdx-canvas-snap-preview--invalid{background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-error) 18%,transparent),color-mix(in srgb,var(--md-sys-color-error-container) 22%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 58%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 40%,transparent)}.pdx-canvas-snap-preview--invalid:before,.pdx-canvas-snap-preview--invalid:after{background:color-mix(in srgb,var(--md-sys-color-error) 86%,var(--md-sys-color-error-container) 14%)}.pdx-canvas-resize:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:transparent;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 20%,transparent),var(--mat-elevation-level3)}.pdx-canvas-resize--north:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-horizontal)}.pdx-canvas-resize--east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-vertical)}.pdx-canvas-resize--north-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-sw)}.pdx-canvas-resize--north-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-west:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{transform:scale(1.08)}@keyframes pdx-snap-preview-pulse{0%{opacity:.72;transform:scale(.996)}to{opacity:1;transform:scale(1)}}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pdx-group{display:grid;gap:12px;grid-column:1 / -1;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low) 76%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent)}.pdx-group--hero{padding:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--md-sys-color-primary-container) 42%,transparent),color-mix(in srgb,var(--md-sys-color-surface-container-low) 86%,transparent))}.pdx-group--rail{align-self:start}.pdx-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.pdx-group-title{font-size:.95rem;font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-group-content{display:grid;gap:12px}.pdx-group-content--stack{grid-template-columns:minmax(0,1fr)}.pdx-group-content--row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.pdx-group-content--grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.pdx-group-tabs{display:grid;gap:12px}.pdx-tabs-header{display:flex;flex-wrap:wrap;gap:8px}.pdx-tab-chip{appearance:none;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-lowest);color:var(--md-sys-color-on-surface);border-radius:999px;padding:8px 12px;font:inherit;cursor:pointer}.pdx-tab-chip.active{border-color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary-container) 78%,transparent);color:var(--md-sys-color-on-primary-container)}.pdx-page-wrapper.editing .pdx-widget-settings{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { kind: "component", type: DynamicWidgetContextToolbarComponent, selector: "praxis-dynamic-widget-context-toolbar", inputs: ["toolbarLabel", "contextLabel", "contextTooltip", "showAssistant", "assistantLabel", "assistantTooltip", "showComponentSettings", "componentSettingsLabel", "componentSettingsTooltip", "showShellSettings", "shellSettingsLabel", "shellSettingsTooltip", "showRemove", "moreActionsLabel", "removeLabel"], outputs: ["assistant", "componentSettings", "shellSettings", "remove"] }, { kind: "directive", type: DynamicWidgetLoaderDirective, selector: "[dynamicWidgetLoader]", inputs: ["dynamicWidgetLoader", "ownerWidgetKey", "context", "strictValidation", "autoWireOutputs"], outputs: ["widgetEvent", "widgetDiagnostic"], exportAs: ["dynamicWidgetLoader"] }, { kind: "component", type: WidgetShellComponent, selector: "praxis-widget-shell", inputs: ["shell", "context", "dragSurfaceEnabled", "dragSurfaceLabel"], outputs: ["action", "dragSurfacePointerDown", "dragSurfaceKeydown"] }] });
|
|
42789
|
+
`, isInline: true, styles: [":host{display:block;min-width:0}.pdx-page-wrapper{position:relative;display:block;background:var(--pdx-page-bg, transparent);color:var(--pdx-page-color, inherit)}.pdx-page{display:grid;gap:var(--pdx-page-gap, 12px);grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-wrapper.editing .pdx-page--canvas{padding-block-start:var(--pdx-canvas-context-toolbar-safe-area, 22px);padding-block-end:22px;padding-inline:22px;box-sizing:border-box}.pdx-page-settings{position:sticky;top:8px;z-index:2;color:inherit;margin-bottom:6px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:6px;min-width:0;min-height:0}.pdx-widget--interactive{cursor:pointer}.pdx-widget--selected:before{content:\"\";position:absolute;inset:0;border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);border-radius:14px;pointer-events:none;z-index:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent),0 8px 20px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent)}.pdx-widget--canvas{align-self:stretch;--pdx-resize-gradient-horizontal: linear-gradient( 90deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-vertical: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-se: linear-gradient( 135deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-sw: linear-gradient( 225deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-widget--canvas:after{content:\"\";position:absolute;inset:0;padding:2px;border-radius:14px;background:var(--pdx-active-resize-gradient);opacity:0;pointer-events:none;transition:opacity .14s ease,filter .14s ease;filter:saturate(1.02) drop-shadow(0 0 5px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.pdx-widget--canvas-selected:before,.pdx-widget--canvas-blocked:before{content:\"\";position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:1;transition:opacity .14s ease,box-shadow .14s ease,border-color .14s ease}.pdx-widget--canvas-blocked:before{border:1px solid color-mix(in srgb,var(--md-sys-color-error) 74%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 20%,transparent),0 10px 24px color-mix(in srgb,var(--md-sys-color-error) 12%,transparent)}.pdx-widget--canvas:has(.pdx-canvas-resize:hover):after,.pdx-widget--canvas:has(.pdx-canvas-resize:focus-visible):after{opacity:.82}.pdx-widget--canvas:has(.pdx-canvas-resize--north:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-horizontal)}.pdx-widget--canvas:has(.pdx-canvas-resize--east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-vertical)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-sw)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize{position:absolute;z-index:7;border:0;padding:0;margin:0;background:transparent;touch-action:none;cursor:pointer;opacity:0;pointer-events:none;transform:scale(.94);transition:opacity .14s ease,transform .14s ease,filter .14s ease;filter:saturate(.9)}.pdx-widget--canvas:hover .pdx-canvas-resize,.pdx-widget--canvas:focus-within .pdx-canvas-resize,.pdx-widget--canvas-selected .pdx-canvas-resize{opacity:.88;pointer-events:auto;transform:scale(1);filter:saturate(1)}.pdx-widget--canvas:has(.pdx-shell.expanded) .pdx-canvas-resize,.pdx-widget--canvas:has(.pdx-shell.fullscreen) .pdx-canvas-resize{opacity:0;pointer-events:none;transform:scale(.94)}.pdx-canvas-resize-grip{display:block;width:9px;height:9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 42%,var(--md-sys-color-outline-variant) 58%);background:color-mix(in srgb,var(--md-sys-color-surface) 92%,var(--md-sys-color-primary) 8%);box-shadow:0 1px 4px color-mix(in srgb,var(--md-sys-color-shadow) 10%,transparent);transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:color-mix(in srgb,var(--md-sys-color-primary) 58%,var(--md-sys-color-outline-variant) 42%);background:color-mix(in srgb,var(--md-sys-color-surface) 84%,var(--md-sys-color-primary) 16%);box-shadow:0 2px 7px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent);transform:scale(1.04)}.pdx-canvas-resize--north,.pdx-canvas-resize--south{left:50%;width:52px;height:44px;margin-left:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-22px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-22px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:44px;height:52px;margin-top:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-22px;cursor:ew-resize}.pdx-canvas-resize--west{left:-22px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-22px;right:-22px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-22px;left:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-22px;right:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-22px;left:-22px;cursor:nesw-resize}.pdx-canvas-snap-preview{position:relative;align-self:stretch;border-radius:12px;pointer-events:none;z-index:0;background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent),color-mix(in srgb,var(--md-sys-color-tertiary) 12%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 42%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 55%,transparent);animation:pdx-snap-preview-pulse .48s ease-out infinite alternate}.pdx-canvas-snap-preview:before,.pdx-canvas-snap-preview:after{content:\"\";position:absolute;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-primary) 82%,var(--md-sys-color-tertiary) 18%);opacity:.72}.pdx-canvas-snap-preview:before{inset:0 auto 0 0;width:3px}.pdx-canvas-snap-preview:after{inset:0 0 auto;height:3px}.pdx-canvas-snap-preview--invalid{background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-error) 18%,transparent),color-mix(in srgb,var(--md-sys-color-error-container) 22%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 58%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 40%,transparent)}.pdx-canvas-snap-preview--invalid:before,.pdx-canvas-snap-preview--invalid:after{background:color-mix(in srgb,var(--md-sys-color-error) 86%,var(--md-sys-color-error-container) 14%)}.pdx-canvas-resize:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:transparent;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 20%,transparent),var(--mat-elevation-level3)}.pdx-canvas-resize--north:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-horizontal)}.pdx-canvas-resize--east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-vertical)}.pdx-canvas-resize--north-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-sw)}.pdx-canvas-resize--north-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-west:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{transform:scale(1.08)}@keyframes pdx-snap-preview-pulse{0%{opacity:.72;transform:scale(.996)}to{opacity:1;transform:scale(1)}}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pdx-group{display:grid;gap:12px;grid-column:1 / -1;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low) 76%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent)}.pdx-group--hero{padding:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--md-sys-color-primary-container) 42%,transparent),color-mix(in srgb,var(--md-sys-color-surface-container-low) 86%,transparent))}.pdx-group--rail{align-self:start}.pdx-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.pdx-group-title{font-size:.95rem;font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-group-content{display:grid;gap:12px}.pdx-group-content--stack{grid-template-columns:minmax(0,1fr)}.pdx-group-content--row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.pdx-group-content--grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.pdx-group-tabs{display:grid;gap:12px}.pdx-tabs-header{display:flex;flex-wrap:wrap;gap:8px}.pdx-tab-chip{appearance:none;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-lowest);color:var(--md-sys-color-on-surface);border-radius:999px;padding:8px 12px;font:inherit;cursor:pointer}.pdx-tab-chip.active{border-color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary-container) 78%,transparent);color:var(--md-sys-color-on-primary-container)}.pdx-page-wrapper.editing .pdx-widget-settings{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { kind: "component", type: DynamicWidgetContextToolbarComponent, selector: "praxis-dynamic-widget-context-toolbar", inputs: ["toolbarLabel", "contextLabel", "contextTooltip", "showAssistant", "assistantLabel", "assistantTooltip", "showComponentSettings", "componentSettingsBusy", "componentSettingsLabel", "componentSettingsTooltip", "showShellSettings", "shellSettingsLabel", "shellSettingsTooltip", "showRemove", "moreActionsLabel", "removeLabel"], outputs: ["assistant", "componentSettings", "shellSettings", "remove"] }, { kind: "directive", type: DynamicWidgetLoaderDirective, selector: "[dynamicWidgetLoader]", inputs: ["dynamicWidgetLoader", "ownerWidgetKey", "context", "strictValidation", "autoWireOutputs"], outputs: ["widgetEvent", "widgetDiagnostic"], exportAs: ["dynamicWidgetLoader"] }, { kind: "component", type: WidgetShellComponent, selector: "praxis-widget-shell", inputs: ["shell", "context", "dragSurfaceEnabled", "dragSurfaceLabel"], outputs: ["action", "dragSurfacePointerDown", "dragSurfaceKeydown"] }] });
|
|
42736
42790
|
}
|
|
42737
42791
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicWidgetPageComponent, decorators: [{
|
|
42738
42792
|
type: Component,
|
|
@@ -42847,6 +42901,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
42847
42901
|
[showComponentSettings]="
|
|
42848
42902
|
canOpenWidgetComponentSettings(w.key)
|
|
42849
42903
|
"
|
|
42904
|
+
[componentSettingsBusy]="
|
|
42905
|
+
isWidgetComponentSettingsPending(w.key)
|
|
42906
|
+
"
|
|
42850
42907
|
[componentSettingsLabel]="componentSettingsLabel()"
|
|
42851
42908
|
[componentSettingsTooltip]="componentSettingsTooltip()"
|
|
42852
42909
|
[showShellSettings]="canOpenWidgetShellSettings()"
|
|
@@ -42961,6 +43018,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
42961
43018
|
[showComponentSettings]="
|
|
42962
43019
|
canOpenWidgetComponentSettings(w.key)
|
|
42963
43020
|
"
|
|
43021
|
+
[componentSettingsBusy]="
|
|
43022
|
+
isWidgetComponentSettingsPending(w.key)
|
|
43023
|
+
"
|
|
42964
43024
|
[componentSettingsLabel]="
|
|
42965
43025
|
componentSettingsLabel()
|
|
42966
43026
|
"
|
|
@@ -43037,6 +43097,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
43037
43097
|
[showComponentSettings]="
|
|
43038
43098
|
canOpenWidgetComponentSettings(w.key)
|
|
43039
43099
|
"
|
|
43100
|
+
[componentSettingsBusy]="
|
|
43101
|
+
isWidgetComponentSettingsPending(w.key)
|
|
43102
|
+
"
|
|
43040
43103
|
[componentSettingsLabel]="componentSettingsLabel()"
|
|
43041
43104
|
[componentSettingsTooltip]="
|
|
43042
43105
|
componentSettingsTooltip()
|
|
@@ -43103,6 +43166,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
43103
43166
|
[showComponentSettings]="
|
|
43104
43167
|
canOpenWidgetComponentSettings(w.key)
|
|
43105
43168
|
"
|
|
43169
|
+
[componentSettingsBusy]="
|
|
43170
|
+
isWidgetComponentSettingsPending(w.key)
|
|
43171
|
+
"
|
|
43106
43172
|
[componentSettingsLabel]="componentSettingsLabel()"
|
|
43107
43173
|
[componentSettingsTooltip]="componentSettingsTooltip()"
|
|
43108
43174
|
[showShellSettings]="canOpenWidgetShellSettings()"
|
package/package.json
CHANGED
package/types/praxisui-core.d.ts
CHANGED
|
@@ -16561,6 +16561,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
|
|
|
16561
16561
|
private pageState;
|
|
16562
16562
|
private pageRuntime;
|
|
16563
16563
|
private readonly configEditorContextRequests;
|
|
16564
|
+
private readonly pendingWidgetComponentSettings;
|
|
16564
16565
|
private nextConfigEditorContextRequestId;
|
|
16565
16566
|
private layout?;
|
|
16566
16567
|
private canvas?;
|
|
@@ -16680,6 +16681,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
|
|
|
16680
16681
|
canOpenPageSettings(): boolean;
|
|
16681
16682
|
canOpenWidgetShellSettings(): boolean;
|
|
16682
16683
|
canOpenWidgetComponentSettings(key: string): boolean;
|
|
16684
|
+
protected isWidgetComponentSettingsPending(key: string): boolean;
|
|
16683
16685
|
canRemoveWidgets(): boolean;
|
|
16684
16686
|
canRequestWidgetAssistant(): boolean;
|
|
16685
16687
|
canSelectWidgets(): boolean;
|
|
@@ -16726,6 +16728,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
|
|
|
16726
16728
|
private lookup;
|
|
16727
16729
|
openWidgetShellSettings(key: string): void;
|
|
16728
16730
|
openWidgetComponentSettings(key: string): Promise<void>;
|
|
16731
|
+
private setWidgetComponentSettingsPending;
|
|
16729
16732
|
private resolveWidgetConfigEditorContext;
|
|
16730
16733
|
private isConfigEditorContextResult;
|
|
16731
16734
|
private readMaterializedInputsForWidget;
|