@acorex-platform/module-platform-dev-tools-client 0.0.57 → 0.0.59

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.
@@ -1346,7 +1346,7 @@ class AXPlatformExplorerEntityDetailComponent {
1346
1346
  return value;
1347
1347
  }
1348
1348
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPlatformExplorerEntityDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1349
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPlatformExplorerEntityDetailComponent, isStandalone: true, selector: "axp-platform-explorer-entity-detail", inputs: { payload: { classPropertyName: "payload", publicName: "payload", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "flex flex-col flex-1 min-h-0" }, ngImport: i0, template: "<div class=\"flex flex-col flex-1 min-h-0\">\n <!-- ----- Loading entity layout ----- -->\n @if (loading()) {\n <div class=\"flex flex-1 items-center justify-center p-6\">\n <ax-loading></ax-loading>\n </div>\n }\n <!-- ----- Entity catalog query failed ----- -->\n @else if (loadError()) {\n <axp-state-message\n icon=\"fa-light fa-triangle-exclamation\"\n [title]=\"'@platform-dev-tools:module.messages.load-error-title'\"\n [description]=\"'@platform-dev-tools:module.messages.load-error'\"\n />\n }\n <!-- ----- Entity documentation with field or action inspector ----- -->\n @else if (detail(); as d) {\n <ax-drawer-container class=\"axp-platform-explorer__docs\">\n <ax-content class=\"axp-platform-explorer__docs-main\">\n <div class=\"axp-platform-explorer__docs-shell\">\n <div class=\"axp-platform-explorer__docs-chrome\">\n <!--->\n <!-- ----- Attached plugins as chips ----- -->\n @if (d.plugins.length) {\n <div class=\"axp-platform-explorer__docs-plugins\">\n @for (plugin of d.plugins; track plugin.name) {\n <span class=\"axp-platform-explorer__docs-chip\">\n <i class=\"fa-light fa-plug\" aria-hidden=\"true\"></i>\n {{ (plugin.title || plugin.name) | translate | async }}\n </span>\n }\n </div>\n }\n <!--->\n <!-- ----- Field column headers stay outside the scrolling rows ----- -->\n @if (isFieldSection() && properties().length) {\n <div class=\"axp-platform-explorer__docs-table-head\" role=\"row\">\n <span role=\"columnheader\">{{ '@platform-dev-tools:module.terms.field' | translate | async }}</span>\n <span role=\"columnheader\">\n {{ '@platform-dev-tools:module.property-details.data-type' | translate | async }}\n </span>\n <span role=\"columnheader\">\n {{ '@platform-dev-tools:module.property-details.nullable' | translate | async }}\n </span>\n </div>\n }\n </div>\n\n <!--->\n <!-- ----- Field table ----- -->\n @if (isFieldSection()) {\n <div class=\"axp-platform-explorer__docs-list\">\n <!--->\n <!-- ----- Empty property list ----- -->\n @if (properties().length === 0) {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.messages.no-properties' | translate | async }}\n </p>\n }\n <!-- ----- Field rows ----- -->\n @else {\n <div class=\"axp-platform-explorer__table-wrap axp-platform-explorer__table-wrap--fields\">\n <table class=\"axp-platform-explorer__table axp-platform-explorer__table--fields\">\n <thead class=\"sr-only\">\n <tr>\n <th>{{ '@platform-dev-tools:module.terms.field' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.property-details.data-type' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.property-details.nullable' | translate | async }}</th>\n </tr>\n </thead>\n <tbody>\n @for (row of properties(); track row.name) {\n <tr\n class=\"axp-platform-explorer__table-row\"\n [class.axp-platform-explorer__table-row--selected]=\"isSelected(row.name)\"\n (click)=\"selectProperty(row.name)\"\n >\n <td>\n <button\n type=\"button\"\n class=\"axp-platform-explorer__field-button\"\n [attr.aria-pressed]=\"isSelected(row.name)\"\n (click)=\"selectProperty(row.name); $event.stopPropagation()\"\n >\n <code dir=\"ltr\">{{ row.name }}</code>\n </button>\n <!--->\n <!-- ----- Translated property title under the field name ----- -->\n @if (row.title) {\n <div class=\"axp-platform-explorer__field-title\">\n {{ row.title | translate | async }}\n </div>\n }\n </td>\n <td>\n <!--->\n <!-- ----- Stored data type chip ----- -->\n @if (row.dataType) {\n <span class=\"axp-platform-explorer__type-chip\" dir=\"ltr\">{{ row.dataType }}</span>\n }\n <!-- ----- Missing data type ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </td>\n <td>\n <ng-container\n *ngTemplateOutlet=\"boolCell; context: { value: flagValue(row.details, 'nullable') }\"\n />\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <p class=\"axp-platform-explorer__docs-footnote\">\n {{ '@platform-dev-tools:module.property-details.select-field' | translate | async }}\n </p>\n </div>\n }\n <!-- ----- Action table ----- -->\n @else if (activeLayout(); as layout) {\n <div class=\"axp-platform-explorer__docs-list axp-platform-explorer__docs-list--padded\">\n <div class=\"axp-platform-explorer__docs-toolbar\">\n <div>\n <h2 class=\"axp-platform-explorer__docs-heading\">\n {{ ('@platform-dev-tools:module.layouts.' + layout.kind) | translate | async }}\n </h2>\n <p class=\"axp-platform-explorer__docs-count\">\n {{ ('@platform-dev-tools:module.layouts.' + layout.kind + '-hint') | translate | async }}\n </p>\n <p class=\"axp-platform-explorer__docs-count\">\n <!--->\n <!-- ----- Filtered action count ----- -->\n @if (actionQuery().trim()) {\n {{\n '@platform-dev-tools:module.action-details.action-count-filtered'\n | translate: { params: { shown: filteredActions().length, count: layout.actionCount } }\n | async\n }}\n }\n <!-- ----- Full action count ----- -->\n @else {\n {{\n '@platform-dev-tools:module.layouts.action-count'\n | translate: { params: { count: layout.actionCount } }\n | async\n }}\n }\n </p>\n </div>\n <ax-search-box\n class=\"axp-platform-explorer__docs-search\"\n look=\"fill\"\n [delayTime]=\"200\"\n [value]=\"actionQuery()\"\n [placeholder]=\"\n ('@platform-dev-tools:module.action-details.search-actions' | translate | async) ?? ''\n \"\n (onValueChanged)=\"onActionSearchChanged($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"flex flex-wrap items-center gap-1.5 mb-4\">\n <!--->\n <!-- ----- Related entity identity ----- -->\n @if (layout.relatedEntity) {\n <code class=\"text-xs bg-lighter px-1.5 py-0.5 rounded\">{{ layout.relatedEntity }}</code>\n }\n <!--->\n <!-- ----- Related layout type ----- -->\n @if (layout.relatedLayoutType) {\n <span class=\"inline-flex items-center rounded-full bg-lighter px-2 py-0.5 text-xs text-muted\">\n {{\n ('@platform-dev-tools:module.layouts.related-types.' + layout.relatedLayoutType)\n | translate | async\n }}\n </span>\n }\n <!--->\n <!-- ----- List query views ----- -->\n @for (view of layout.views; track view.name) {\n <span class=\"inline-flex items-center rounded-full bg-lighter px-2 py-0.5 text-xs text-muted\">\n {{ (view.title || view.name) | translate | async }}\n </span>\n }\n </div>\n <!--->\n <!-- ----- Optional stored layout title ----- -->\n @if (layout.layoutTitle) {\n <p class=\"m-0 mb-2 text-sm\">{{ layout.layoutTitle | translate | async }}</p>\n }\n <!--->\n <!-- ----- Optional stored layout description ----- -->\n @if (layout.layoutDescription) {\n <p class=\"m-0 mb-3 text-sm text-muted\">{{ layout.layoutDescription | translate | async }}</p>\n }\n\n <!--->\n <!-- ----- Empty action list ----- -->\n @if (layout.actionCount === 0) {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.messages.no-actions' | translate | async }}\n </p>\n }\n <!-- ----- Search matched no actions ----- -->\n @else if (filteredActions().length === 0) {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.action-details.no-matching-actions' | translate | async }}\n </p>\n }\n <!-- ----- Action rows ----- -->\n @else {\n <div class=\"axp-platform-explorer__table-wrap axp-platform-explorer__table-wrap--fields\">\n <table class=\"axp-platform-explorer__table axp-platform-explorer__table--fields\">\n <thead>\n <tr>\n <th>{{ '@platform-dev-tools:module.action-details.item' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.action-details.type' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.action-details.priority' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.action-details.scope' | translate | async }}</th>\n </tr>\n </thead>\n <tbody>\n @for (action of filteredActions(); track action.id) {\n <tr\n class=\"axp-platform-explorer__table-row\"\n [class.axp-platform-explorer__table-row--selected]=\"isActionSelected(action.id)\"\n (click)=\"selectAction(action.id)\"\n >\n <td>\n <div [style.padding-inline-start.rem]=\"action.depth\">\n <button\n type=\"button\"\n class=\"axp-platform-explorer__field-button\"\n [attr.aria-pressed]=\"isActionSelected(action.id)\"\n (click)=\"selectAction(action.id); $event.stopPropagation()\"\n >\n <!--->\n <!-- ----- Action icon from the layout ----- -->\n @if (action.icon) {\n <i class=\"text-muted me-1\" [ngClass]=\"action.icon\" aria-hidden=\"true\"></i>\n }\n <code dir=\"ltr\">{{ action.commandName || action.name || '\u2013' }}</code>\n </button>\n <!--->\n <!-- ----- Translated action title ----- -->\n @if (action.title) {\n <div class=\"axp-platform-explorer__field-title\">\n {{ action.title | translate | async }}\n </div>\n }\n </div>\n </td>\n <td>\n <!--->\n <!-- ----- Action type chip ----- -->\n @if (action.typeLabel) {\n <span class=\"axp-platform-explorer__type-chip\">{{ action.typeLabel }}</span>\n }\n <!-- ----- Missing action type ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </td>\n <td>\n <span\n class=\"axp-platform-explorer__priority\"\n [class.is-primary]=\"action.priority === 'primary'\"\n >\n {{\n ('@platform-dev-tools:module.action-details.priorities.' + action.priority)\n | translate | async\n }}\n </span>\n </td>\n <td class=\"text-muted\">\n {{\n ('@platform-dev-tools:module.action-details.scopes.' + action.scope) | translate | async\n }}\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <p class=\"axp-platform-explorer__docs-footnote\">\n {{ '@platform-dev-tools:module.action-details.select-action' | translate | async }}\n </p>\n </div>\n }\n </div>\n </ax-content>\n <ax-drawer\n class=\"axp-platform-explorer__docs-side\"\n [location]=\"'end'\"\n [mode]=\"'push'\"\n [collapsed]=\"!inspectorOpen()\"\n >\n <ax-content\n class=\"axp-platform-explorer__docs-detail\"\n [attr.aria-label]=\"inspectorAriaKey() | translate | async\"\n >\n <!--->\n <!-- ----- Selected field definition ----- -->\n @if (isFieldSection()) {\n <ng-container *ngTemplateOutlet=\"fieldDetail\" />\n }\n <!-- ----- Selected action definition ----- -->\n @else {\n <ng-container *ngTemplateOutlet=\"actionDetail\" />\n }\n </ax-content>\n </ax-drawer>\n </ax-drawer-container>\n }\n</div>\n\n<ng-template #boolCell let-value=\"value\">\n <!-- ----- Affirmative flag ----- -->\n @if (value === true) {\n <span class=\"axp-platform-explorer__yes\">\n <i class=\"fa-light fa-check\" aria-hidden=\"true\"></i>\n {{ '@platform-dev-tools:module.property-details.yes' | translate | async }}\n </span>\n }\n <!-- ----- Negative flag ----- -->\n @else if (value === false) {\n {{ '@platform-dev-tools:module.property-details.no' | translate | async }}\n }\n <!-- ----- Unknown flag ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n</ng-template>\n\n<ng-template #kvList let-pairs=\"pairs\">\n <dl class=\"axp-platform-explorer__docs-dl axp-platform-explorer__docs-dl--json\">\n @for (pair of pairs; track pair.path) {\n <dt>\n <code dir=\"ltr\">{{ pair.path || '\u2013' }}</code>\n </dt>\n <dd>\n <code dir=\"ltr\">{{ pair.value }}</code>\n </dd>\n }\n </dl>\n</ng-template>\n\n<ng-template #fieldDetail>\n <!-- ----- Selected field definition ----- -->\n @if (selectedProperty(); as field) {\n <div class=\"axp-platform-explorer__docs-detail-header\">\n <div class=\"axp-platform-explorer__docs-eyebrow\">\n {{ '@platform-dev-tools:module.property-details.field-definition' | translate | async }}\n </div>\n <h2 class=\"axp-platform-explorer__docs-detail-title\">\n {{ (field.title || field.name) | translate | async }}\n </h2>\n <code class=\"axp-platform-explorer__docs-key\" dir=\"ltr\">{{ field.name }}</code>\n <!--->\n <!-- ----- Plugin source of the selected field ----- -->\n @if (field.pluginTitle) {\n <span class=\"axp-platform-explorer__docs-chip axp-platform-explorer__docs-chip--field\">\n <i class=\"fa-light fa-plug\" aria-hidden=\"true\"></i>\n {{ field.pluginTitle | translate | async }}\n </span>\n }\n </div>\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.terms.description' | translate | async }}</h3>\n <p class=\"axp-platform-explorer__docs-description\">\n <!--->\n <!-- ----- Translated field description ----- -->\n @if (field.description) {\n {{ field.description | translate | async }}\n }\n <!-- ----- Missing field description ----- -->\n @else {\n {{ '@platform-dev-tools:module.property-details.no-description' | translate | async }}\n }\n </p>\n </section>\n <!--->\n <!-- ----- Schema flags and scalar pairs ----- -->\n @if (selectedSchemaEntries(); as schema) {\n <!--->\n <!-- ----- Render schema when at least one entry exists ----- -->\n @if (schema.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.property-details.schema' | translate | async }}</h3>\n <dl class=\"axp-platform-explorer__docs-dl\">\n @for (entry of schema; track entry.labelKey) {\n <dt>{{ ('@platform-dev-tools:module.property-details.' + entry.labelKey) | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Boolean schema flags ----- -->\n @if (entry.kind === 'flag') {\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: entry.on }\" />\n }\n <!-- ----- Schema scalar values ----- -->\n @else {\n <!--->\n <!-- ----- Data type shown as a chip ----- -->\n @if (isTypePair(entry.labelKey)) {\n <span class=\"axp-platform-explorer__type-chip\" dir=\"ltr\">{{ entry.value }}</span>\n }\n <!-- ----- Code-like schema values ----- -->\n @else if (isCodePair(entry.labelKey)) {\n <code dir=\"ltr\">{{ entry.value }}</code>\n }\n <!-- ----- Plain schema values ----- -->\n @else {\n {{ entry.value }}\n }\n }\n </dd>\n }\n </dl>\n </section>\n }\n }\n <!--->\n <!-- ----- Presentation flags and widget pairs ----- -->\n @if (selectedPresentationEntries(); as presentation) {\n <!--->\n <!-- ----- Render presentation when at least one entry exists ----- -->\n @if (presentation.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.property-details.presentation' | translate | async }}</h3>\n <dl class=\"axp-platform-explorer__docs-dl\">\n @for (entry of presentation; track entry.labelKey) {\n <dt>{{ ('@platform-dev-tools:module.property-details.' + entry.labelKey) | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Boolean presentation flags ----- -->\n @if (entry.kind === 'flag') {\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: entry.on }\" />\n }\n <!-- ----- Presentation scalar values ----- -->\n @else {\n <!--->\n <!-- ----- Widget identifiers as code ----- -->\n @if (isCodePair(entry.labelKey) || isTypePair(entry.labelKey)) {\n <code dir=\"ltr\">{{ entry.value }}</code>\n }\n <!-- ----- Plain presentation values ----- -->\n @else {\n {{ entry.value }}\n }\n }\n </dd>\n }\n </dl>\n </section>\n }\n }\n <!--->\n <!-- ----- Widget triggers ----- -->\n @if (field.details.triggers.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.property-details.triggers' | translate | async }}</h3>\n <div class=\"axp-platform-explorer__prop-stack\">\n @for (trigger of field.details.triggers; track $index) {\n <div class=\"axp-platform-explorer__prop-card\">\n <div class=\"axp-platform-explorer__prop-trigger\">\n <span class=\"text-muted text-xs\">\n {{ '@platform-dev-tools:module.property-details.event' | translate | async }}\n </span>\n <code>{{ trigger.event || '\u2013' }}</code>\n <i class=\"fa-light fa-arrow-right text-muted\" aria-hidden=\"true\"></i>\n <span class=\"text-muted text-xs\">\n {{ '@platform-dev-tools:module.property-details.action' | translate | async }}\n </span>\n <code>{{ trigger.action || '\u2013' }}</code>\n </div>\n <!--->\n <!-- ----- Disabled trigger badge ----- -->\n @if (trigger.disabled) {\n <span class=\"axp-platform-explorer__prop-flag\">\n {{ '@platform-dev-tools:module.property-details.disabled' | translate | async }}\n </span>\n }\n </div>\n }\n </div>\n </section>\n }\n <!--->\n <!-- ----- Validation rules ----- -->\n @if (field.details.validations.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.property-details.validations' | translate | async }}</h3>\n <div class=\"axp-platform-explorer__prop-stack\">\n @for (rule of field.details.validations; track $index) {\n <div class=\"axp-platform-explorer__prop-card\">\n <div class=\"flex flex-wrap items-center gap-2\">\n <code>{{ rule.rule }}</code>\n <!--->\n <!-- ----- Disabled validation badge ----- -->\n @if (rule.disabled) {\n <span class=\"axp-platform-explorer__prop-flag\">\n {{ '@platform-dev-tools:module.property-details.disabled' | translate | async }}\n </span>\n }\n </div>\n <!--->\n <!-- ----- Validation message ----- -->\n @if (rule.message) {\n <p class=\"m-0 text-xs text-muted\">{{ rule.message | translate | async }}</p>\n }\n <!--->\n <!-- ----- Flattened validation options ----- -->\n @if (rule.optionsPairs.length) {\n <ng-container *ngTemplateOutlet=\"kvList; context: { pairs: rule.optionsPairs }\" />\n }\n </div>\n }\n </div>\n </section>\n }\n <!--->\n <!-- ----- Flattened nested JSON (widget options, transforms, children) ----- -->\n @if (field.details.jsonBlocks.length) {\n @for (block of field.details.jsonBlocks; track block.labelKey) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ ('@platform-dev-tools:module.property-details.' + block.labelKey) | translate | async }}</h3>\n <ng-container *ngTemplateOutlet=\"kvList; context: { pairs: block.pairs }\" />\n </section>\n }\n }\n }\n <!-- ----- No field selected ----- -->\n @else {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.property-details.select-field' | translate | async }}\n </p>\n }\n</ng-template>\n\n<ng-template #actionDetail>\n <!-- ----- Selected action definition ----- -->\n @if (selectedAction(); as action) {\n <div class=\"axp-platform-explorer__docs-detail-header\">\n <div class=\"axp-platform-explorer__docs-eyebrow\">\n {{ '@platform-dev-tools:module.action-details.action-definition' | translate | async }}\n </div>\n <h2 class=\"axp-platform-explorer__docs-detail-title\">\n {{ (action.title || action.commandName || action.name || '\u2013') | translate | async }}\n </h2>\n <code class=\"axp-platform-explorer__docs-key\" dir=\"ltr\">{{ action.commandName || action.name || '\u2013' }}</code>\n </div>\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.behavior' | translate | async }}</h3>\n <dl class=\"axp-platform-explorer__docs-dl\">\n <dt>{{ '@platform-dev-tools:module.action-details.type' | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Action type ----- -->\n @if (action.typeLabel) {\n <span class=\"axp-platform-explorer__type-chip\">{{ action.typeLabel }}</span>\n }\n <!-- ----- Missing action type ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.priority' | translate | async }}</dt>\n <dd>\n {{ ('@platform-dev-tools:module.action-details.priorities.' + action.priority) | translate | async }}\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.scope' | translate | async }}</dt>\n <dd>{{ ('@platform-dev-tools:module.action-details.scopes.' + action.scope) | translate | async }}</dd>\n <dt>{{ '@platform-dev-tools:module.action-details.default' | translate | async }}</dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: action.isDefault }\" />\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.separated' | translate | async }}</dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: action.separated }\" />\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.hidden' | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Hidden yes/no ----- -->\n @if (hiddenFlag(action) !== undefined) {\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: hiddenFlag(action) }\" />\n }\n <!-- ----- Hidden expression ----- -->\n @else if (hiddenExpression(action); as expression) {\n <code dir=\"ltr\">{{ expression }}</code>\n }\n <!-- ----- Hidden unknown ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.disabled' | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Disabled yes/no ----- -->\n @if (disabledFlag(action) !== undefined) {\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: disabledFlag(action) }\" />\n }\n <!-- ----- Disabled expression ----- -->\n @else if (disabledExpression(action); as expression) {\n <code dir=\"ltr\">{{ expression }}</code>\n }\n <!-- ----- Disabled unknown ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </dd>\n <!--->\n <!-- ----- Named action key ----- -->\n @if (action.name) {\n <dt>{{ '@platform-dev-tools:module.terms.name' | translate | async }}</dt>\n <dd>\n <code dir=\"ltr\">{{ action.name }}</code>\n </dd>\n }\n <!--->\n <!-- ----- Color token ----- -->\n @if (action.color) {\n <dt>{{ '@platform-dev-tools:module.action-details.color' | translate | async }}</dt>\n <dd>\n <code dir=\"ltr\">{{ action.color }}</code>\n </dd>\n }\n <!--->\n <!-- ----- Sort order ----- -->\n @if (action.order != null) {\n <dt>{{ '@platform-dev-tools:module.action-details.order' | translate | async }}</dt>\n <dd>{{ action.order }}</dd>\n }\n </dl>\n </section>\n <!--->\n <!-- ----- Keyboard shortcuts ----- -->\n @if (action.shortcuts.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.shortcuts' | translate | async }}</h3>\n <div class=\"flex flex-wrap gap-1.5\">\n @for (shortcut of action.shortcuts; track shortcut) {\n <code>{{ shortcut }}</code>\n }\n </div>\n </section>\n }\n <!--->\n <!-- ----- Permission keys ----- -->\n @if (action.permissions.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.terms.permissions' | translate | async }}</h3>\n <div class=\"flex flex-wrap gap-1.5\">\n @for (permission of action.permissions; track permission) {\n <code>{{ permission }}</code>\n }\n </div>\n </section>\n }\n <!--->\n <!-- ----- Dynamic submenu expression ----- -->\n @if (action.submenuExpression) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.submenu' | translate | async }}</h3>\n <code dir=\"ltr\">{{ action.submenuExpression }}</code>\n </section>\n }\n <!--->\n <!-- ----- Flattened command options ----- -->\n @if (action.optionsPairs.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.options' | translate | async }}</h3>\n <ng-container *ngTemplateOutlet=\"kvList; context: { pairs: action.optionsPairs }\" />\n </section>\n }\n <!--->\n <!-- ----- Flattened command metadata ----- -->\n @if (action.metadataPairs.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.metadata' | translate | async }}</h3>\n <ng-container *ngTemplateOutlet=\"kvList; context: { pairs: action.metadataPairs }\" />\n </section>\n }\n }\n <!-- ----- No action selected ----- -->\n @else {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.action-details.select-action' | translate | async }}\n </p>\n }\n</ng-template>\n", styles: ["@layer properties;ax-drawer-container.axp-platform-explorer__docs,ax-content.axp-platform-explorer__docs-main{height:100%;min-height:0}.axp-platform-explorer__docs-main{display:flex;height:100%;min-height:0px;min-width:0px;flex:1;flex-direction:column;overflow:hidden;display:flex!important;overflow:hidden!important}.axp-platform-explorer__docs-shell{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.axp-platform-explorer__docs-chrome{z-index:20;flex-shrink:0;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);scrollbar-gutter:stable}.axp-platform-explorer__docs-chrome:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}.axp-platform-explorer__docs-plugins{display:flex;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 1.5);padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 3)}.axp-platform-explorer__docs-table-head{display:grid;grid-template-columns:46% minmax(0,1fr) minmax(0,1fr);margin-inline:calc(var(--spacing, .25rem) * 6);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));background-color:rgba(var(--ax-sys-color-lighter-surface));text-align:start;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-table-head{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-table-head>*{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-platform-explorer__docs-chip{display:inline-flex;align-items:center;gap:var(--spacing, .25rem);border-radius:calc(infinity * 1px);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));background:rgb(var(--ax-sys-color-warning-lightest-surface));color:rgb(var(--ax-sys-color-on-warning-lightest-surface));border:1px solid rgb(var(--ax-sys-color-border-warning-lightest-surface))}.axp-platform-explorer__docs-chip--field{margin-top:calc(var(--spacing, .25rem) * 1.5)}.axp-platform-explorer__docs-list{min-height:0px;min-width:0px;overflow:auto;padding-inline:calc(var(--spacing, .25rem) * 6);padding-top:0;padding-bottom:calc(var(--spacing, .25rem) * 5);scrollbar-gutter:stable}.axp-platform-explorer__docs-list--padded{padding-top:calc(var(--spacing, .25rem) * 5)}.axp-platform-explorer__docs-toolbar{margin-bottom:calc(var(--spacing, .25rem) * 5);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3)}.axp-platform-explorer__docs-heading{margin:0;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-platform-explorer__docs-count{margin:0;margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-count{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-search{width:calc(var(--spacing, .25rem) * 52);max-width:100%}.axp-platform-explorer__docs-empty,.axp-platform-explorer__docs-footnote{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-empty,.axp-platform-explorer__docs-footnote{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-empty{padding-block:calc(var(--spacing, .25rem) * 8);text-align:center}.axp-platform-explorer__docs-footnote{margin:0;padding-top:calc(var(--spacing, .25rem) * 4)}.axp-platform-explorer__docs-side{width:calc(var(--spacing, .25rem) * 80);border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface))}.axp-platform-explorer__docs-detail{display:flex;height:100%;min-width:0px;flex-direction:column;overflow:auto;background-color:rgba(var(--ax-sys-color-lighter-surface));padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 5)}.axp-platform-explorer__docs-eyebrow{margin-bottom:calc(var(--spacing, .25rem) * 2.5);font-size:11px;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking: var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:rgba(var(--ax-sys-color-text-default));text-transform:uppercase}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-eyebrow{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-detail-title{margin:0;margin-bottom:var(--spacing, .25rem);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);overflow-wrap:break-word}.axp-platform-explorer__docs-key{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-primary-surface))}.axp-platform-explorer__docs-detail-block{margin-top:calc(var(--spacing, .25rem) * 4);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-top:calc(var(--spacing, .25rem) * 4)}.axp-platform-explorer__docs-detail-block h3{margin:0;margin-bottom:calc(var(--spacing, .25rem) * 2.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-platform-explorer__docs-description{margin:0;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-description{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-dl{margin:0;display:grid;column-gap:calc(var(--spacing, .25rem) * 3);row-gap:calc(var(--spacing, .25rem) * 2.5);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));grid-template-columns:minmax(0,1fr) auto}.axp-platform-explorer__docs-dl dt{color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-dl dt{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-dl dd{margin:0;max-width:calc(var(--spacing, .25rem) * 40);text-align:end;overflow-wrap:break-word}.axp-platform-explorer__docs-actions{display:flex;min-height:0px;flex:1;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3);overflow:auto;padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 5)}.axp-platform-explorer__docs-layout{margin-top:calc(var(--spacing, .25rem) * 6);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3);padding-inline:0px}.axp-platform-explorer__docs-actions .axp-platform-explorer__docs-layout{margin-top:0}.axp-platform-explorer__table-wrap{overflow-x:auto;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface))}.axp-platform-explorer__table-wrap--fields{overflow:visible;border-radius:0;border-style:var(--tw-border-style);border-width:0px}.axp-platform-explorer__table{width:100%;min-width:36rem;border-collapse:collapse;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}.axp-platform-explorer__table--fields{min-width:0px;table-layout:fixed}.axp-platform-explorer__table--fields th:first-child{width:46%}.axp-platform-explorer__table th{background-color:rgba(var(--ax-sys-color-lighter-surface));text-align:start;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgba(var(--ax-sys-color-text-default));border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__table th{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__table--fields thead.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}.axp-platform-explorer__table td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);vertical-align:middle;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.axp-platform-explorer__table--fields tbody tr{cursor:pointer}.axp-platform-explorer__table-row--alt td{background-color:rgba(var(--ax-sys-color-lighter-surface))}.axp-platform-explorer__table-row:hover td,.axp-platform-explorer__table-row--selected td{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}.axp-platform-explorer__table-row--selected td:first-child{box-shadow:inset 3px 0 0 var(--ax-color-primary, currentColor)}:dir(rtl) .axp-platform-explorer__table-row--selected td:first-child{box-shadow:inset -3px 0 0 var(--ax-color-primary, currentColor)}.axp-platform-explorer__table tbody tr:last-child td{border-bottom-style:var(--tw-border-style);border-bottom-width:0px}.axp-platform-explorer__table-detail td{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 3)}.axp-platform-explorer__docs-dl--json{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.axp-platform-explorer__docs-dl--json dd{max-width:none}.axp-platform-explorer__docs-dl--json dt code,.axp-platform-explorer__docs-dl--json dd code{background-color:transparent;padding:0;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));word-break:break-all}.axp-platform-explorer__field-button{margin:0;display:inline-flex;appearance:none;align-items:center;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:0;text-align:start;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.axp-platform-explorer__field-button code{background-color:transparent;padding:0;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}.axp-platform-explorer__table-row--selected .axp-platform-explorer__field-button{color:rgba(var(--ax-sys-color-primary-surface))}.axp-platform-explorer__field-button:hover{text-decoration:underline;text-underline-offset:3px}.axp-platform-explorer__field-title{margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__field-title{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__type-chip{display:inline-block;border-radius:.25rem;background-color:rgba(var(--ax-sys-color-lighter-surface));padding-inline:calc(var(--spacing, .25rem) * 1.5);padding-block:calc(var(--spacing, .25rem) * .5);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.axp-platform-explorer__unknown{color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__unknown{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__yes{display:inline-flex;align-items:center;gap:var(--spacing, .25rem);color:rgba(var(--ax-sys-color-primary-surface))}.axp-platform-explorer__yes i{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.axp-platform-explorer__prop-toggle,.axp-platform-explorer__prop-toggle-spacer{display:inline-flex;height:calc(var(--spacing, .25rem) * 7);width:calc(var(--spacing, .25rem) * 7);flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--radius-md, .375rem)}.axp-platform-explorer__prop-toggle{cursor:pointer;appearance:none;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__prop-toggle{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__prop-toggle:hover{background-color:rgba(var(--ax-sys-color-lighter-surface));color:rgba(var(--ax-sys-color-primary-surface))}.axp-platform-explorer__prop-toggle i{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.axp-platform-explorer__prop-toggle.is-open i{rotate:90deg}.axp-platform-explorer__prop-details{margin-inline-start:calc(var(--spacing, .25rem) * 9);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding:calc(var(--spacing, .25rem) * 4)}.axp-platform-explorer__prop-flags{display:flex;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}.axp-platform-explorer__prop-flag{display:inline-flex;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 2.5);padding-block:var(--spacing, .25rem);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.axp-platform-explorer__prop-pairs{margin:0;display:grid;column-gap:calc(var(--spacing, .25rem) * 6);row-gap:calc(var(--spacing, .25rem) * 2);grid-template-columns:minmax(7rem,11rem) minmax(0,1fr)}.axp-platform-explorer__prop-pairs dt{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__prop-pairs dt{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__prop-pairs dd{margin:0;min-width:0px}.axp-platform-explorer__prop-pairs code,.axp-platform-explorer__prop-card code,.axp-platform-explorer__prop-trigger code{border-radius:.25rem;background-color:rgba(var(--ax-sys-color-lighter-surface));padding-inline:calc(var(--spacing, .25rem) * 1.5);padding-block:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));word-break:break-all}.axp-platform-explorer__prop-section{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-platform-explorer__prop-section-title{margin:0;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking: var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:rgba(var(--ax-sys-color-text-default));text-transform:uppercase}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__prop-section-title{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__prop-stack{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-platform-explorer__prop-card{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-platform-explorer__prop-trigger{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-platform-explorer__prop-json{margin:0;max-height:calc(var(--spacing, .25rem) * 48);overflow:auto;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding:calc(var(--spacing, .25rem) * 3);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.axp-platform-explorer__table--actions{min-width:36rem}.axp-platform-explorer__priority{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__priority{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__priority.is-primary{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgba(var(--ax-sys-color-primary-surface))}@media(max-width:760px){.axp-platform-explorer__docs-side{width:calc(var(--spacing, .25rem) * 72)}.axp-platform-explorer__docs-plugins,.axp-platform-explorer__docs-list,.axp-platform-explorer__docs-actions{padding-inline:calc(var(--spacing, .25rem) * 5)}.axp-platform-explorer__docs-table-head{margin-inline:calc(var(--spacing, .25rem) * 5)}}@media(max-width:440px){.axp-platform-explorer__docs-toolbar{display:block}.axp-platform-explorer__docs-search{margin-top:calc(var(--spacing, .25rem) * 3);width:100%}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-tracking{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial;--tw-tracking: initial;--tw-duration: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2$1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i3$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i5.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "transition", "closeOnBackdropClick", "backdropClass", "collapsed", "singleOpenMode"], outputs: ["onBackdropClick", "collapsedStateChanged"] }, { kind: "component", type: i5.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1349
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXPlatformExplorerEntityDetailComponent, isStandalone: true, selector: "axp-platform-explorer-entity-detail", inputs: { payload: { classPropertyName: "payload", publicName: "payload", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "flex flex-col flex-1 min-h-0" }, ngImport: i0, template: "<div class=\"flex flex-col flex-1 min-h-0\">\n <!-- ----- Loading entity layout ----- -->\n @if (loading()) {\n <div class=\"flex flex-1 items-center justify-center p-6\">\n <ax-loading></ax-loading>\n </div>\n }\n <!-- ----- Entity catalog query failed ----- -->\n @else if (loadError()) {\n <axp-state-message\n icon=\"fa-light fa-triangle-exclamation\"\n [title]=\"'@platform-dev-tools:module.messages.load-error-title'\"\n [description]=\"'@platform-dev-tools:module.messages.load-error'\"\n />\n }\n <!-- ----- Entity documentation with field or action inspector ----- -->\n @else if (detail(); as d) {\n <ax-drawer-container class=\"axp-platform-explorer__docs\">\n <ax-content class=\"axp-platform-explorer__docs-main\">\n <div class=\"axp-platform-explorer__docs-shell\">\n <div class=\"axp-platform-explorer__docs-chrome\">\n <!--->\n <!-- ----- Attached plugins as chips ----- -->\n @if (d.plugins.length) {\n <div class=\"axp-platform-explorer__docs-plugins\">\n @for (plugin of d.plugins; track plugin.name) {\n <span class=\"axp-platform-explorer__docs-chip\">\n <i class=\"fa-light fa-plug\" aria-hidden=\"true\"></i>\n {{ (plugin.title || plugin.name) | translate | async }}\n </span>\n }\n </div>\n }\n <!--->\n <!-- ----- Field column headers stay outside the scrolling rows ----- -->\n @if (isFieldSection() && properties().length) {\n <div class=\"axp-platform-explorer__docs-table-head\" role=\"row\">\n <span role=\"columnheader\">{{ '@platform-dev-tools:module.terms.field' | translate | async }}</span>\n <span role=\"columnheader\">\n {{ '@platform-dev-tools:module.property-details.data-type' | translate | async }}\n </span>\n <span role=\"columnheader\">\n {{ '@platform-dev-tools:module.property-details.nullable' | translate | async }}\n </span>\n </div>\n }\n </div>\n\n <!--->\n <!-- ----- Field table ----- -->\n @if (isFieldSection()) {\n <div class=\"axp-platform-explorer__docs-list\">\n <!--->\n <!-- ----- Empty property list ----- -->\n @if (properties().length === 0) {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.messages.no-properties' | translate | async }}\n </p>\n }\n <!-- ----- Field rows ----- -->\n @else {\n <div class=\"axp-platform-explorer__table-wrap axp-platform-explorer__table-wrap--fields\">\n <table class=\"axp-platform-explorer__table axp-platform-explorer__table--fields\">\n <thead class=\"sr-only\">\n <tr>\n <th>{{ '@platform-dev-tools:module.terms.field' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.property-details.data-type' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.property-details.nullable' | translate | async }}</th>\n </tr>\n </thead>\n <tbody>\n @for (row of properties(); track row.name) {\n <tr\n class=\"axp-platform-explorer__table-row\"\n [class.axp-platform-explorer__table-row--selected]=\"isSelected(row.name)\"\n (click)=\"selectProperty(row.name)\"\n >\n <td>\n <button\n type=\"button\"\n class=\"axp-platform-explorer__field-button\"\n [attr.aria-pressed]=\"isSelected(row.name)\"\n (click)=\"selectProperty(row.name); $event.stopPropagation()\"\n >\n <code dir=\"ltr\">{{ row.name }}</code>\n </button>\n <!--->\n <!-- ----- Translated property title under the field name ----- -->\n @if (row.title) {\n <div class=\"axp-platform-explorer__field-title\">\n {{ row.title | translate | async }}\n </div>\n }\n </td>\n <td>\n <!--->\n <!-- ----- Stored data type chip ----- -->\n @if (row.dataType) {\n <span class=\"axp-platform-explorer__type-chip\" dir=\"ltr\">{{ row.dataType }}</span>\n }\n <!-- ----- Missing data type ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </td>\n <td>\n <ng-container\n *ngTemplateOutlet=\"boolCell; context: { value: flagValue(row.details, 'nullable') }\"\n />\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <p class=\"axp-platform-explorer__docs-footnote\">\n {{ '@platform-dev-tools:module.property-details.select-field' | translate | async }}\n </p>\n </div>\n }\n <!-- ----- Action table ----- -->\n @else if (activeLayout(); as layout) {\n <div class=\"axp-platform-explorer__docs-list axp-platform-explorer__docs-list--padded\">\n <div class=\"axp-platform-explorer__docs-toolbar\">\n <div>\n <h2 class=\"axp-platform-explorer__docs-heading\">\n {{ ('@platform-dev-tools:module.layouts.' + layout.kind) | translate | async }}\n </h2>\n <p class=\"axp-platform-explorer__docs-count\">\n {{ ('@platform-dev-tools:module.layouts.' + layout.kind + '-hint') | translate | async }}\n </p>\n <p class=\"axp-platform-explorer__docs-count\">\n <!--->\n <!-- ----- Filtered action count ----- -->\n @if (actionQuery().trim()) {\n {{\n '@platform-dev-tools:module.action-details.action-count-filtered'\n | translate: { params: { shown: filteredActions().length, count: layout.actionCount } }\n | async\n }}\n }\n <!-- ----- Full action count ----- -->\n @else {\n {{\n '@platform-dev-tools:module.layouts.action-count'\n | translate: { params: { count: layout.actionCount } }\n | async\n }}\n }\n </p>\n </div>\n <ax-search-box\n class=\"axp-platform-explorer__docs-search\"\n look=\"fill\"\n [delayTime]=\"200\"\n [value]=\"actionQuery()\"\n [placeholder]=\"\n ('@platform-dev-tools:module.action-details.search-actions' | translate | async) ?? ''\n \"\n (onValueChanged)=\"onActionSearchChanged($event)\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n </div>\n <div class=\"flex flex-wrap items-center gap-1.5 mb-4\">\n <!--->\n <!-- ----- Related entity identity ----- -->\n @if (layout.relatedEntity) {\n <code class=\"text-xs bg-lighter px-1.5 py-0.5 rounded\">{{ layout.relatedEntity }}</code>\n }\n <!--->\n <!-- ----- Related layout type ----- -->\n @if (layout.relatedLayoutType) {\n <span class=\"inline-flex items-center rounded-full bg-lighter px-2 py-0.5 text-xs text-muted\">\n {{\n ('@platform-dev-tools:module.layouts.related-types.' + layout.relatedLayoutType)\n | translate | async\n }}\n </span>\n }\n <!--->\n <!-- ----- List query views ----- -->\n @for (view of layout.views; track view.name) {\n <span class=\"inline-flex items-center rounded-full bg-lighter px-2 py-0.5 text-xs text-muted\">\n {{ (view.title || view.name) | translate | async }}\n </span>\n }\n </div>\n <!--->\n <!-- ----- Optional stored layout title ----- -->\n @if (layout.layoutTitle) {\n <p class=\"m-0 mb-2 text-sm\">{{ layout.layoutTitle | translate | async }}</p>\n }\n <!--->\n <!-- ----- Optional stored layout description ----- -->\n @if (layout.layoutDescription) {\n <p class=\"m-0 mb-3 text-sm text-muted\">{{ layout.layoutDescription | translate | async }}</p>\n }\n\n <!--->\n <!-- ----- Empty action list ----- -->\n @if (layout.actionCount === 0) {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.messages.no-actions' | translate | async }}\n </p>\n }\n <!-- ----- Search matched no actions ----- -->\n @else if (filteredActions().length === 0) {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.action-details.no-matching-actions' | translate | async }}\n </p>\n }\n <!-- ----- Action rows ----- -->\n @else {\n <div class=\"axp-platform-explorer__table-wrap axp-platform-explorer__table-wrap--fields\">\n <table class=\"axp-platform-explorer__table axp-platform-explorer__table--fields\">\n <thead>\n <tr>\n <th>{{ '@platform-dev-tools:module.action-details.item' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.action-details.type' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.action-details.priority' | translate | async }}</th>\n <th>{{ '@platform-dev-tools:module.action-details.scope' | translate | async }}</th>\n </tr>\n </thead>\n <tbody>\n @for (action of filteredActions(); track action.id) {\n <tr\n class=\"axp-platform-explorer__table-row\"\n [class.axp-platform-explorer__table-row--selected]=\"isActionSelected(action.id)\"\n (click)=\"selectAction(action.id)\"\n >\n <td>\n <div [style.padding-inline-start.rem]=\"action.depth\">\n <button\n type=\"button\"\n class=\"axp-platform-explorer__field-button\"\n [attr.aria-pressed]=\"isActionSelected(action.id)\"\n (click)=\"selectAction(action.id); $event.stopPropagation()\"\n >\n <!--->\n <!-- ----- Action icon from the layout ----- -->\n @if (action.icon) {\n <i class=\"text-muted me-1\" [ngClass]=\"action.icon\" aria-hidden=\"true\"></i>\n }\n <code dir=\"ltr\">{{ action.commandName || action.name || '\u2013' }}</code>\n </button>\n <!--->\n <!-- ----- Translated action title ----- -->\n @if (action.title) {\n <div class=\"axp-platform-explorer__field-title\">\n {{ action.title | translate | async }}\n </div>\n }\n </div>\n </td>\n <td>\n <!--->\n <!-- ----- Action type chip ----- -->\n @if (action.typeLabel) {\n <span class=\"axp-platform-explorer__type-chip\">{{ action.typeLabel }}</span>\n }\n <!-- ----- Missing action type ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </td>\n <td>\n <span\n class=\"axp-platform-explorer__priority\"\n [class.is-primary]=\"action.priority === 'primary'\"\n >\n {{\n ('@platform-dev-tools:module.action-details.priorities.' + action.priority)\n | translate | async\n }}\n </span>\n </td>\n <td class=\"text-muted\">\n {{\n ('@platform-dev-tools:module.action-details.scopes.' + action.scope) | translate | async\n }}\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n\n <p class=\"axp-platform-explorer__docs-footnote\">\n {{ '@platform-dev-tools:module.action-details.select-action' | translate | async }}\n </p>\n </div>\n }\n </div>\n </ax-content>\n <ax-drawer\n class=\"axp-platform-explorer__docs-side\"\n [location]=\"'end'\"\n [mode]=\"'push'\"\n [collapsed]=\"!inspectorOpen()\"\n >\n <ax-content\n class=\"axp-platform-explorer__docs-detail\"\n [attr.aria-label]=\"inspectorAriaKey() | translate | async\"\n >\n <!--->\n <!-- ----- Selected field definition ----- -->\n @if (isFieldSection()) {\n <ng-container *ngTemplateOutlet=\"fieldDetail\" />\n }\n <!-- ----- Selected action definition ----- -->\n @else {\n <ng-container *ngTemplateOutlet=\"actionDetail\" />\n }\n </ax-content>\n </ax-drawer>\n </ax-drawer-container>\n }\n</div>\n\n<ng-template #boolCell let-value=\"value\">\n <!-- ----- Affirmative flag ----- -->\n @if (value === true) {\n <span class=\"axp-platform-explorer__yes\">\n <i class=\"fa-light fa-check\" aria-hidden=\"true\"></i>\n {{ '@platform-dev-tools:module.property-details.yes' | translate | async }}\n </span>\n }\n <!-- ----- Negative flag ----- -->\n @else if (value === false) {\n {{ '@platform-dev-tools:module.property-details.no' | translate | async }}\n }\n <!-- ----- Unknown flag ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n</ng-template>\n\n<ng-template #kvList let-pairs=\"pairs\">\n <dl class=\"axp-platform-explorer__docs-dl axp-platform-explorer__docs-dl--json\">\n @for (pair of pairs; track pair.path) {\n <dt>\n <code dir=\"ltr\">{{ pair.path || '\u2013' }}</code>\n </dt>\n <dd>\n <code dir=\"ltr\">{{ pair.value }}</code>\n </dd>\n }\n </dl>\n</ng-template>\n\n<ng-template #fieldDetail>\n <!-- ----- Selected field definition ----- -->\n @if (selectedProperty(); as field) {\n <div class=\"axp-platform-explorer__docs-detail-header\">\n <div class=\"axp-platform-explorer__docs-eyebrow\">\n {{ '@platform-dev-tools:module.property-details.field-definition' | translate | async }}\n </div>\n <h2 class=\"axp-platform-explorer__docs-detail-title\">\n {{ (field.title || field.name) | translate | async }}\n </h2>\n <code class=\"axp-platform-explorer__docs-key\" dir=\"ltr\">{{ field.name }}</code>\n <!--->\n <!-- ----- Plugin source of the selected field ----- -->\n @if (field.pluginTitle) {\n <span class=\"axp-platform-explorer__docs-chip axp-platform-explorer__docs-chip--field\">\n <i class=\"fa-light fa-plug\" aria-hidden=\"true\"></i>\n {{ field.pluginTitle | translate | async }}\n </span>\n }\n </div>\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.terms.description' | translate | async }}</h3>\n <p class=\"axp-platform-explorer__docs-description\">\n <!--->\n <!-- ----- Translated field description ----- -->\n @if (field.description) {\n {{ field.description | translate | async }}\n }\n <!-- ----- Missing field description ----- -->\n @else {\n {{ '@platform-dev-tools:module.property-details.no-description' | translate | async }}\n }\n </p>\n </section>\n <!--->\n <!-- ----- Schema flags and scalar pairs ----- -->\n @if (selectedSchemaEntries(); as schema) {\n <!--->\n <!-- ----- Render schema when at least one entry exists ----- -->\n @if (schema.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.property-details.schema' | translate | async }}</h3>\n <dl class=\"axp-platform-explorer__docs-dl\">\n @for (entry of schema; track entry.labelKey) {\n <dt>{{ ('@platform-dev-tools:module.property-details.' + entry.labelKey) | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Boolean schema flags ----- -->\n @if (entry.kind === 'flag') {\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: entry.on }\" />\n }\n <!-- ----- Schema scalar values ----- -->\n @else {\n <!--->\n <!-- ----- Data type shown as a chip ----- -->\n @if (isTypePair(entry.labelKey)) {\n <span class=\"axp-platform-explorer__type-chip\" dir=\"ltr\">{{ entry.value }}</span>\n }\n <!-- ----- Code-like schema values ----- -->\n @else if (isCodePair(entry.labelKey)) {\n <code dir=\"ltr\">{{ entry.value }}</code>\n }\n <!-- ----- Plain schema values ----- -->\n @else {\n {{ entry.value }}\n }\n }\n </dd>\n }\n </dl>\n </section>\n }\n }\n <!--->\n <!-- ----- Presentation flags and widget pairs ----- -->\n @if (selectedPresentationEntries(); as presentation) {\n <!--->\n <!-- ----- Render presentation when at least one entry exists ----- -->\n @if (presentation.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.property-details.presentation' | translate | async }}</h3>\n <dl class=\"axp-platform-explorer__docs-dl\">\n @for (entry of presentation; track entry.labelKey) {\n <dt>{{ ('@platform-dev-tools:module.property-details.' + entry.labelKey) | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Boolean presentation flags ----- -->\n @if (entry.kind === 'flag') {\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: entry.on }\" />\n }\n <!-- ----- Presentation scalar values ----- -->\n @else {\n <!--->\n <!-- ----- Widget identifiers as code ----- -->\n @if (isCodePair(entry.labelKey) || isTypePair(entry.labelKey)) {\n <code dir=\"ltr\">{{ entry.value }}</code>\n }\n <!-- ----- Plain presentation values ----- -->\n @else {\n {{ entry.value }}\n }\n }\n </dd>\n }\n </dl>\n </section>\n }\n }\n <!--->\n <!-- ----- Widget triggers ----- -->\n @if (field.details.triggers.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.property-details.triggers' | translate | async }}</h3>\n <div class=\"axp-platform-explorer__prop-stack\">\n @for (trigger of field.details.triggers; track $index) {\n <div class=\"axp-platform-explorer__prop-card\">\n <div class=\"axp-platform-explorer__prop-trigger\">\n <span class=\"text-muted text-xs\">\n {{ '@platform-dev-tools:module.property-details.event' | translate | async }}\n </span>\n <code>{{ trigger.event || '\u2013' }}</code>\n <i class=\"fa-light fa-arrow-right text-muted\" aria-hidden=\"true\"></i>\n <span class=\"text-muted text-xs\">\n {{ '@platform-dev-tools:module.property-details.action' | translate | async }}\n </span>\n <code>{{ trigger.action || '\u2013' }}</code>\n </div>\n <!--->\n <!-- ----- Disabled trigger badge ----- -->\n @if (trigger.disabled) {\n <span class=\"axp-platform-explorer__prop-flag\">\n {{ '@platform-dev-tools:module.property-details.disabled' | translate | async }}\n </span>\n }\n </div>\n }\n </div>\n </section>\n }\n <!--->\n <!-- ----- Validation rules ----- -->\n @if (field.details.validations.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.property-details.validations' | translate | async }}</h3>\n <div class=\"axp-platform-explorer__prop-stack\">\n @for (rule of field.details.validations; track $index) {\n <div class=\"axp-platform-explorer__prop-card\">\n <div class=\"flex flex-wrap items-center gap-2\">\n <code>{{ rule.rule }}</code>\n <!--->\n <!-- ----- Disabled validation badge ----- -->\n @if (rule.disabled) {\n <span class=\"axp-platform-explorer__prop-flag\">\n {{ '@platform-dev-tools:module.property-details.disabled' | translate | async }}\n </span>\n }\n </div>\n <!--->\n <!-- ----- Validation message ----- -->\n @if (rule.message) {\n <p class=\"m-0 text-xs text-muted\">{{ rule.message | translate | async }}</p>\n }\n <!--->\n <!-- ----- Flattened validation options ----- -->\n @if (rule.optionsPairs.length) {\n <ng-container *ngTemplateOutlet=\"kvList; context: { pairs: rule.optionsPairs }\" />\n }\n </div>\n }\n </div>\n </section>\n }\n <!--->\n <!-- ----- Flattened nested JSON (widget options, transforms, children) ----- -->\n @if (field.details.jsonBlocks.length) {\n @for (block of field.details.jsonBlocks; track block.labelKey) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ ('@platform-dev-tools:module.property-details.' + block.labelKey) | translate | async }}</h3>\n <ng-container *ngTemplateOutlet=\"kvList; context: { pairs: block.pairs }\" />\n </section>\n }\n }\n }\n <!-- ----- No field selected ----- -->\n @else {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.property-details.select-field' | translate | async }}\n </p>\n }\n</ng-template>\n\n<ng-template #actionDetail>\n <!-- ----- Selected action definition ----- -->\n @if (selectedAction(); as action) {\n <div class=\"axp-platform-explorer__docs-detail-header\">\n <div class=\"axp-platform-explorer__docs-eyebrow\">\n {{ '@platform-dev-tools:module.action-details.action-definition' | translate | async }}\n </div>\n <h2 class=\"axp-platform-explorer__docs-detail-title\">\n {{ (action.title || action.commandName || action.name || '\u2013') | translate | async }}\n </h2>\n <code class=\"axp-platform-explorer__docs-key\" dir=\"ltr\">{{ action.commandName || action.name || '\u2013' }}</code>\n </div>\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.behavior' | translate | async }}</h3>\n <dl class=\"axp-platform-explorer__docs-dl\">\n <dt>{{ '@platform-dev-tools:module.action-details.type' | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Action type ----- -->\n @if (action.typeLabel) {\n <span class=\"axp-platform-explorer__type-chip\">{{ action.typeLabel }}</span>\n }\n <!-- ----- Missing action type ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.priority' | translate | async }}</dt>\n <dd>\n {{ ('@platform-dev-tools:module.action-details.priorities.' + action.priority) | translate | async }}\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.scope' | translate | async }}</dt>\n <dd>{{ ('@platform-dev-tools:module.action-details.scopes.' + action.scope) | translate | async }}</dd>\n <dt>{{ '@platform-dev-tools:module.action-details.default' | translate | async }}</dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: action.isDefault }\" />\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.separated' | translate | async }}</dt>\n <dd>\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: action.separated }\" />\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.hidden' | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Hidden yes/no ----- -->\n @if (hiddenFlag(action) !== undefined) {\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: hiddenFlag(action) }\" />\n }\n <!-- ----- Hidden expression ----- -->\n @else if (hiddenExpression(action); as expression) {\n <code dir=\"ltr\">{{ expression }}</code>\n }\n <!-- ----- Hidden unknown ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </dd>\n <dt>{{ '@platform-dev-tools:module.action-details.disabled' | translate | async }}</dt>\n <dd>\n <!--->\n <!-- ----- Disabled yes/no ----- -->\n @if (disabledFlag(action) !== undefined) {\n <ng-container *ngTemplateOutlet=\"boolCell; context: { value: disabledFlag(action) }\" />\n }\n <!-- ----- Disabled expression ----- -->\n @else if (disabledExpression(action); as expression) {\n <code dir=\"ltr\">{{ expression }}</code>\n }\n <!-- ----- Disabled unknown ----- -->\n @else {\n <span class=\"axp-platform-explorer__unknown\">\u2013</span>\n }\n </dd>\n <!--->\n <!-- ----- Named action key ----- -->\n @if (action.name) {\n <dt>{{ '@platform-dev-tools:module.terms.name' | translate | async }}</dt>\n <dd>\n <code dir=\"ltr\">{{ action.name }}</code>\n </dd>\n }\n <!--->\n <!-- ----- Color token ----- -->\n @if (action.color) {\n <dt>{{ '@platform-dev-tools:module.action-details.color' | translate | async }}</dt>\n <dd>\n <code dir=\"ltr\">{{ action.color }}</code>\n </dd>\n }\n <!--->\n <!-- ----- Sort order ----- -->\n @if (action.order != null) {\n <dt>{{ '@platform-dev-tools:module.action-details.order' | translate | async }}</dt>\n <dd>{{ action.order }}</dd>\n }\n </dl>\n </section>\n <!--->\n <!-- ----- Keyboard shortcuts ----- -->\n @if (action.shortcuts.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.shortcuts' | translate | async }}</h3>\n <div class=\"flex flex-wrap gap-1.5\">\n @for (shortcut of action.shortcuts; track shortcut) {\n <code>{{ shortcut }}</code>\n }\n </div>\n </section>\n }\n <!--->\n <!-- ----- Permission keys ----- -->\n @if (action.permissions.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.terms.permissions' | translate | async }}</h3>\n <div class=\"flex flex-wrap gap-1.5\">\n @for (permission of action.permissions; track permission) {\n <code>{{ permission }}</code>\n }\n </div>\n </section>\n }\n <!--->\n <!-- ----- Dynamic submenu expression ----- -->\n @if (action.submenuExpression) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.submenu' | translate | async }}</h3>\n <code dir=\"ltr\">{{ action.submenuExpression }}</code>\n </section>\n }\n <!--->\n <!-- ----- Flattened command options ----- -->\n @if (action.optionsPairs.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.options' | translate | async }}</h3>\n <ng-container *ngTemplateOutlet=\"kvList; context: { pairs: action.optionsPairs }\" />\n </section>\n }\n <!--->\n <!-- ----- Flattened command metadata ----- -->\n @if (action.metadataPairs.length) {\n <section class=\"axp-platform-explorer__docs-detail-block\">\n <h3>{{ '@platform-dev-tools:module.action-details.metadata' | translate | async }}</h3>\n <ng-container *ngTemplateOutlet=\"kvList; context: { pairs: action.metadataPairs }\" />\n </section>\n }\n }\n <!-- ----- No action selected ----- -->\n @else {\n <p class=\"axp-platform-explorer__docs-empty\">\n {{ '@platform-dev-tools:module.action-details.select-action' | translate | async }}\n </p>\n }\n</ng-template>\n", styles: ["@layer properties;ax-drawer-container.axp-platform-explorer__docs,ax-content.axp-platform-explorer__docs-main{height:100%;min-height:0}.axp-platform-explorer__docs-main{display:flex;height:100%;min-height:0px;min-width:0px;flex:1;flex-direction:column;overflow:hidden;display:flex!important;overflow:hidden!important}.axp-platform-explorer__docs-shell{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;overflow:hidden}.axp-platform-explorer__docs-chrome{z-index:20;flex-shrink:0;background-color:var(--color-lightest);color:var(--color-on-lightest);border-color:var(--color-border-lightest);scrollbar-gutter:stable}.axp-platform-explorer__docs-chrome:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:var(--color-dark);color:var(--color-on-dark);border-color:var(--color-border-dark)}.axp-platform-explorer__docs-plugins{display:flex;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 1.5);padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 3)}.axp-platform-explorer__docs-table-head{display:grid;grid-template-columns:46% minmax(0,1fr) minmax(0,1fr);margin-inline:calc(var(--spacing, .25rem) * 6);border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));background-color:rgba(var(--ax-sys-color-lighter-surface));text-align:start;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-table-head{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-table-head>*{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-platform-explorer__docs-chip{display:inline-flex;align-items:center;gap:var(--spacing, .25rem);border-radius:calc(infinity * 1px);padding-inline:calc(var(--spacing, .25rem) * 2);padding-block:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));background:rgb(var(--ax-sys-color-warning-lightest-surface));color:rgb(var(--ax-sys-color-on-warning-lightest-surface));border:1px solid rgb(var(--ax-sys-color-border-warning-lightest-surface))}.axp-platform-explorer__docs-chip--field{margin-top:calc(var(--spacing, .25rem) * 1.5)}.axp-platform-explorer__docs-list{min-height:0px;min-width:0px;overflow:auto;padding-inline:calc(var(--spacing, .25rem) * 6);padding-top:0;padding-bottom:calc(var(--spacing, .25rem) * 5);scrollbar-gutter:stable}.axp-platform-explorer__docs-list--padded{padding-top:calc(var(--spacing, .25rem) * 5)}.axp-platform-explorer__docs-toolbar{margin-bottom:calc(var(--spacing, .25rem) * 5);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 3)}.axp-platform-explorer__docs-heading{margin:0;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-platform-explorer__docs-count{margin:0;margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-count{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-search{width:calc(var(--spacing, .25rem) * 52);max-width:100%}.axp-platform-explorer__docs-empty,.axp-platform-explorer__docs-footnote{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-empty,.axp-platform-explorer__docs-footnote{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-empty{padding-block:calc(var(--spacing, .25rem) * 8);text-align:center}.axp-platform-explorer__docs-footnote{margin:0;padding-top:calc(var(--spacing, .25rem) * 4)}.axp-platform-explorer__docs-side{width:calc(var(--spacing, .25rem) * 80);border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface))}.axp-platform-explorer__docs-detail{display:flex;height:100%;min-width:0px;flex-direction:column;overflow:auto;background-color:rgba(var(--ax-sys-color-lighter-surface));padding-inline:calc(var(--spacing, .25rem) * 5);padding-block:calc(var(--spacing, .25rem) * 5)}.axp-platform-explorer__docs-eyebrow{margin-bottom:calc(var(--spacing, .25rem) * 2.5);font-size:11px;--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking: var(--tracking-widest, .1em);letter-spacing:var(--tracking-widest, .1em);color:rgba(var(--ax-sys-color-text-default));text-transform:uppercase}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-eyebrow{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-detail-title{margin:0;margin-bottom:var(--spacing, .25rem);font-size:var(--text-lg, 1.125rem);line-height:var(--tw-leading, var(--text-lg--line-height, calc(1.75 / 1.125)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);overflow-wrap:break-word}.axp-platform-explorer__docs-key{font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-primary-surface))}.axp-platform-explorer__docs-detail-block{margin-top:calc(var(--spacing, .25rem) * 4);border-top-style:var(--tw-border-style);border-top-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-top:calc(var(--spacing, .25rem) * 4)}.axp-platform-explorer__docs-detail-block h3{margin:0;margin-bottom:calc(var(--spacing, .25rem) * 2.5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600)}.axp-platform-explorer__docs-description{margin:0;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-description{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-dl{margin:0;display:grid;column-gap:calc(var(--spacing, .25rem) * 3);row-gap:calc(var(--spacing, .25rem) * 2.5);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));grid-template-columns:minmax(0,1fr) auto}.axp-platform-explorer__docs-dl dt{color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__docs-dl dt{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__docs-dl dd{margin:0;max-width:calc(var(--spacing, .25rem) * 40);text-align:end;overflow-wrap:break-word}.axp-platform-explorer__docs-actions{display:flex;min-height:0px;flex:1;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3);overflow:auto;padding-inline:calc(var(--spacing, .25rem) * 6);padding-block:calc(var(--spacing, .25rem) * 5)}.axp-platform-explorer__docs-layout{margin-top:calc(var(--spacing, .25rem) * 6);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 3);padding-inline:0px}.axp-platform-explorer__docs-actions .axp-platform-explorer__docs-layout{margin-top:0}.axp-platform-explorer__table-wrap{overflow-x:auto;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface))}.axp-platform-explorer__table-wrap--fields{overflow:visible;border-radius:0;border-style:var(--tw-border-style);border-width:0px}.axp-platform-explorer__table{width:100%;min-width:36rem;border-collapse:collapse;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}.axp-platform-explorer__table--fields{min-width:0px;table-layout:fixed}.axp-platform-explorer__table--fields th:first-child{width:46%}.axp-platform-explorer__table th{background-color:rgba(var(--ax-sys-color-lighter-surface));text-align:start;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500);color:rgba(var(--ax-sys-color-text-default));border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__table th{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__table--fields thead.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}.axp-platform-explorer__table td{border-bottom-style:var(--tw-border-style);border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 4);vertical-align:middle;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.axp-platform-explorer__table--fields tbody tr{cursor:pointer}.axp-platform-explorer__table-row--alt td{background-color:rgba(var(--ax-sys-color-lighter-surface))}.axp-platform-explorer__table-row:hover td,.axp-platform-explorer__table-row--selected td{background-color:rgba(var(--ax-sys-color-primary-lightest-surface))}.axp-platform-explorer__table-row--selected td:first-child{box-shadow:inset 3px 0 0 var(--ax-color-primary, currentColor)}:dir(rtl) .axp-platform-explorer__table-row--selected td:first-child{box-shadow:inset -3px 0 0 var(--ax-color-primary, currentColor)}.axp-platform-explorer__table tbody tr:last-child td{border-bottom-style:var(--tw-border-style);border-bottom-width:0px}.axp-platform-explorer__table-detail td{padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 3)}.axp-platform-explorer__docs-dl--json{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.axp-platform-explorer__docs-dl--json dd{max-width:none}.axp-platform-explorer__docs-dl--json dt code,.axp-platform-explorer__docs-dl--json dd code{background-color:transparent;padding:0;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));word-break:break-all}.axp-platform-explorer__field-button{margin:0;display:inline-flex;appearance:none;align-items:center;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;padding:0;text-align:start;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-font-weight: var(--font-weight-medium, 500);font-weight:var(--font-weight-medium, 500)}.axp-platform-explorer__field-button code{background-color:transparent;padding:0;font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)))}.axp-platform-explorer__table-row--selected .axp-platform-explorer__field-button{color:rgba(var(--ax-sys-color-primary-surface))}.axp-platform-explorer__field-button:hover{text-decoration:underline;text-underline-offset:3px}.axp-platform-explorer__field-title{margin-top:calc(var(--spacing, .25rem) * .5);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__field-title{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__type-chip{display:inline-block;border-radius:.25rem;background-color:rgba(var(--ax-sys-color-lighter-surface));padding-inline:calc(var(--spacing, .25rem) * 1.5);padding-block:calc(var(--spacing, .25rem) * .5);font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.axp-platform-explorer__unknown{color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__unknown{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__yes{display:inline-flex;align-items:center;gap:var(--spacing, .25rem);color:rgba(var(--ax-sys-color-primary-surface))}.axp-platform-explorer__yes i{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.axp-platform-explorer__prop-toggle,.axp-platform-explorer__prop-toggle-spacer{display:inline-flex;height:calc(var(--spacing, .25rem) * 7);width:calc(var(--spacing, .25rem) * 7);flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--radius-md, .375rem)}.axp-platform-explorer__prop-toggle{cursor:pointer;appearance:none;border-style:var(--tw-border-style);border-width:0px;background-color:transparent;color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__prop-toggle{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__prop-toggle:hover{background-color:rgba(var(--ax-sys-color-lighter-surface));color:rgba(var(--ax-sys-color-primary-surface))}.axp-platform-explorer__prop-toggle i{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function, cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration, var(--default-transition-duration, .15s));--tw-duration: .15s;transition-duration:.15s}.axp-platform-explorer__prop-toggle.is-open i{rotate:90deg}.axp-platform-explorer__prop-details{margin-inline-start:calc(var(--spacing, .25rem) * 9);display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 4);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding:calc(var(--spacing, .25rem) * 4)}.axp-platform-explorer__prop-flags{display:flex;flex-wrap:wrap;gap:calc(var(--spacing, .25rem) * 2)}.axp-platform-explorer__prop-flag{display:inline-flex;align-items:center;gap:calc(var(--spacing, .25rem) * 1.5);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 2.5);padding-block:var(--spacing, .25rem);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.axp-platform-explorer__prop-pairs{margin:0;display:grid;column-gap:calc(var(--spacing, .25rem) * 6);row-gap:calc(var(--spacing, .25rem) * 2);grid-template-columns:minmax(7rem,11rem) minmax(0,1fr)}.axp-platform-explorer__prop-pairs dt{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__prop-pairs dt{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__prop-pairs dd{margin:0;min-width:0px}.axp-platform-explorer__prop-pairs code,.axp-platform-explorer__prop-card code,.axp-platform-explorer__prop-trigger code{border-radius:.25rem;background-color:rgba(var(--ax-sys-color-lighter-surface));padding-inline:calc(var(--spacing, .25rem) * 1.5);padding-block:calc(var(--spacing, .25rem) * .5);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));word-break:break-all}.axp-platform-explorer__prop-section{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-platform-explorer__prop-section-title{margin:0;font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);--tw-tracking: var(--tracking-wide, .025em);letter-spacing:var(--tracking-wide, .025em);color:rgba(var(--ax-sys-color-text-default));text-transform:uppercase}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__prop-section-title{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__prop-stack{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2)}.axp-platform-explorer__prop-card{display:flex;flex-direction:column;gap:calc(var(--spacing, .25rem) * 2);border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding-inline:calc(var(--spacing, .25rem) * 3);padding-block:calc(var(--spacing, .25rem) * 2.5)}.axp-platform-explorer__prop-trigger{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--spacing, .25rem) * 2)}.axp-platform-explorer__prop-json{margin:0;max-height:calc(var(--spacing, .25rem) * 48);overflow:auto;border-radius:var(--radius-md, .375rem);border-style:var(--tw-border-style);border-width:1px;border-color:rgba(var(--ax-sys-color-lightest-surface));padding:calc(var(--spacing, .25rem) * 3);font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));--tw-leading: var(--leading-relaxed, 1.625);line-height:var(--leading-relaxed, 1.625);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.axp-platform-explorer__table--actions{min-width:36rem}.axp-platform-explorer__priority{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)));color:rgba(var(--ax-sys-color-text-default))}@supports (color: color-mix(in lab,red,red)){.axp-platform-explorer__priority{color:color-mix(in oklab,rgba(var(--ax-sys-color-text-default)) 80%,transparent)}}.axp-platform-explorer__priority.is-primary{--tw-font-weight: var(--font-weight-semibold, 600);font-weight:var(--font-weight-semibold, 600);color:rgba(var(--ax-sys-color-primary-surface))}@media(max-width:760px){.axp-platform-explorer__docs-side{width:calc(var(--spacing, .25rem) * 72)}.axp-platform-explorer__docs-plugins,.axp-platform-explorer__docs-list,.axp-platform-explorer__docs-actions{padding-inline:calc(var(--spacing, .25rem) * 5)}.axp-platform-explorer__docs-table-head{margin-inline:calc(var(--spacing, .25rem) * 5)}}@media(max-width:440px){.axp-platform-explorer__docs-toolbar{display:block}.axp-platform-explorer__docs-search{margin-top:calc(var(--spacing, .25rem) * 3);width:100%}}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: \"*\"; inherits: false;}@property --tw-tracking{syntax: \"*\"; inherits: false;}@property --tw-duration{syntax: \"*\"; inherits: false;}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style: solid;--tw-font-weight: initial;--tw-tracking: initial;--tw-duration: initial;--tw-leading: initial}}}\n/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2$1.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i3$1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDrawerModule }, { kind: "component", type: i5.AXDrawerComponent, selector: "ax-drawer", inputs: ["location", "showBackdrop", "mode", "transition", "closeOnBackdropClick", "backdropClass", "collapsed", "singleOpenMode"], outputs: ["collapsedChange", "onBackdropClick", "collapsedStateChanged"] }, { kind: "component", type: i5.AXDrawerContainerComponent, selector: "ax-drawer-container" }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "titleParams", "descriptionParams", "look"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1350
1350
  }
1351
1351
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPlatformExplorerEntityDetailComponent, decorators: [{
1352
1352
  type: Component,