codexly-ui 0.19.7 → 0.19.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/codexly-ui.mjs +31 -7
- package/fesm2022/codexly-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/codexly-ui.d.ts +29 -13
package/fesm2022/codexly-ui.mjs
CHANGED
|
@@ -690,6 +690,7 @@ class ClxThemeService {
|
|
|
690
690
|
/** Resolved border color for ClxCardComponent (outlined/elevated variants) — falls back to
|
|
691
691
|
* primaryColor when unset. Per-instance `[color]` input on clx-card still takes precedence. */
|
|
692
692
|
cardBorderColor = computed(() => this._config().cardBorderColor ?? this._config().primaryColor, ...(ngDevMode ? [{ debugName: "cardBorderColor" }] : /* istanbul ignore next */ []));
|
|
693
|
+
cardIconColor = computed(() => this._config().cardIconColor ?? this._config().primaryColor, ...(ngDevMode ? [{ debugName: "cardIconColor" }] : /* istanbul ignore next */ []));
|
|
693
694
|
/** Resolved divider/border color for ClxListComponent — falls back to primaryColor when unset.
|
|
694
695
|
* Per-instance `[color]` input on clx-list still takes precedence. */
|
|
695
696
|
listBorderColor = computed(() => this._config().listBorderColor ?? this._config().primaryColor, ...(ngDevMode ? [{ debugName: "listBorderColor" }] : /* istanbul ignore next */ []));
|
|
@@ -1624,6 +1625,11 @@ class ClxCardComponent {
|
|
|
1624
1625
|
/** Optional secondary line under headerTitle. */
|
|
1625
1626
|
headerSubtitle = input(undefined, ...(ngDevMode ? [{ debugName: "headerSubtitle" }] : /* istanbul ignore next */ []));
|
|
1626
1627
|
_color = computed(() => this.color() ?? this._themeSvc.cardBorderColor(), ...(ngDevMode ? [{ debugName: "_color" }] : /* istanbul ignore next */ []));
|
|
1628
|
+
/** Header icon badge: explicit [color] → theme cardIconColor → primaryColor (same fallback chain
|
|
1629
|
+
* as clx-collapse / the form controls). */
|
|
1630
|
+
_iconColor = computed(() => this.color() ?? this._themeSvc.cardIconColor(), ...(ngDevMode ? [{ debugName: "_iconColor" }] : /* istanbul ignore next */ []));
|
|
1631
|
+
_iconWrapCls = computed(() => `w-8 h-8 rounded-lg flex items-center justify-center shrink-0 ${resolveColor(this._iconColor()).bgMuted}`, ...(ngDevMode ? [{ debugName: "_iconWrapCls" }] : /* istanbul ignore next */ []));
|
|
1632
|
+
_iconCls = computed(() => resolveColor(this._iconColor()).textSubtle, ...(ngDevMode ? [{ debugName: "_iconCls" }] : /* istanbul ignore next */ []));
|
|
1627
1633
|
_titleClass = computed(() => `text-sm font-[${this._themeSvc.cardTitleStyle().weight}] text-clx-text-label leading-tight truncate`, ...(ngDevMode ? [{ debugName: "_titleClass" }] : /* istanbul ignore next */ []));
|
|
1628
1634
|
_headerSlot = contentChild(ClxCardHeaderDirective, ...(ngDevMode ? [{ debugName: "_headerSlot" }] : /* istanbul ignore next */ []));
|
|
1629
1635
|
_headerActionsSlot = contentChild(ClxCardHeaderActionsDirective, ...(ngDevMode ? [{ debugName: "_headerActionsSlot" }] : /* istanbul ignore next */ []));
|
|
@@ -1679,8 +1685,8 @@ class ClxCardComponent {
|
|
|
1679
1685
|
<div class="clx-card-header flex w-full items-center justify-between gap-3 px-4 py-3 border-b border-clx-border-soft">
|
|
1680
1686
|
<div class="flex items-center gap-3 min-w-0">
|
|
1681
1687
|
@if (icon()) {
|
|
1682
|
-
<div class="
|
|
1683
|
-
<span clx-icon [name]="icon()!" size="sm" class="
|
|
1688
|
+
<div [class]="_iconWrapCls()">
|
|
1689
|
+
<span clx-icon [name]="icon()!" size="sm" [class]="_iconCls()"></span>
|
|
1684
1690
|
</div>
|
|
1685
1691
|
}
|
|
1686
1692
|
<div class="flex flex-col min-w-0">
|
|
@@ -1731,8 +1737,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
1731
1737
|
<div class="clx-card-header flex w-full items-center justify-between gap-3 px-4 py-3 border-b border-clx-border-soft">
|
|
1732
1738
|
<div class="flex items-center gap-3 min-w-0">
|
|
1733
1739
|
@if (icon()) {
|
|
1734
|
-
<div class="
|
|
1735
|
-
<span clx-icon [name]="icon()!" size="sm" class="
|
|
1740
|
+
<div [class]="_iconWrapCls()">
|
|
1741
|
+
<span clx-icon [name]="icon()!" size="sm" [class]="_iconCls()"></span>
|
|
1736
1742
|
</div>
|
|
1737
1743
|
}
|
|
1738
1744
|
<div class="flex flex-col min-w-0">
|
|
@@ -1822,7 +1828,9 @@ class ClxCollapseComponent {
|
|
|
1822
1828
|
dividerThickness = input(2, ...(ngDevMode ? [{ debugName: "dividerThickness" }] : /* istanbul ignore next */ []));
|
|
1823
1829
|
/** Two-way bindable: [(expanded)]="..." */
|
|
1824
1830
|
expanded = model(false, ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
|
|
1825
|
-
|
|
1831
|
+
/** Explicit [color] → theme collapseColor → primaryColor (same fallback chain as clx-input's
|
|
1832
|
+
* formControls.input). */
|
|
1833
|
+
_color = computed(() => this.color() ?? this._themeSvc.config().collapseColor ?? this._themeSvc.config().primaryColor, ...(ngDevMode ? [{ debugName: "_color" }] : /* istanbul ignore next */ []));
|
|
1826
1834
|
_size = computed(() => (this.size() ?? this._themeSvc.config().defaultSize), ...(ngDevMode ? [{ debugName: "_size" }] : /* istanbul ignore next */ []));
|
|
1827
1835
|
_sizeConfig = computed(() => COLLAPSE_SIZE_MAP[this._size()], ...(ngDevMode ? [{ debugName: "_sizeConfig" }] : /* istanbul ignore next */ []));
|
|
1828
1836
|
_iconCls = computed(() => {
|
|
@@ -11852,6 +11860,8 @@ class ClxProfileComponent {
|
|
|
11852
11860
|
color = input(undefined, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
11853
11861
|
menuItems = input([], ...(ngDevMode ? [{ debugName: "menuItems" }] : /* istanbul ignore next */ []));
|
|
11854
11862
|
signOutLabel = input('Cerrar sesión', ...(ngDevMode ? [{ debugName: "signOutLabel" }] : /* istanbul ignore next */ []));
|
|
11863
|
+
/** Small line under the sign-out item — e.g. the app version. Hidden when empty. */
|
|
11864
|
+
footerText = input('', ...(ngDevMode ? [{ debugName: "footerText" }] : /* istanbul ignore next */ []));
|
|
11855
11865
|
// ── Outputs ─────────────────────────────────────────────────────────────────
|
|
11856
11866
|
menuAction = output();
|
|
11857
11867
|
signOut = output();
|
|
@@ -11901,7 +11911,7 @@ class ClxProfileComponent {
|
|
|
11901
11911
|
this._close();
|
|
11902
11912
|
}
|
|
11903
11913
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11904
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxProfileComponent, isStandalone: true, selector: "clx-profile", inputs: { firstName: { classPropertyName: "firstName", publicName: "firstName", isSignal: true, isRequired: false, transformFunction: null }, lastName: { classPropertyName: "lastName", publicName: "lastName", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, avatarSrc: { classPropertyName: "avatarSrc", publicName: "avatarSrc", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: false, transformFunction: null }, signOutLabel: { classPropertyName: "signOutLabel", publicName: "signOutLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuAction: "menuAction", signOut: "signOut" }, host: { classAttribute: "relative inline-flex items-center" }, ngImport: i0, template: `
|
|
11914
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.15", type: ClxProfileComponent, isStandalone: true, selector: "clx-profile", inputs: { firstName: { classPropertyName: "firstName", publicName: "firstName", isSignal: true, isRequired: false, transformFunction: null }, lastName: { classPropertyName: "lastName", publicName: "lastName", isSignal: true, isRequired: false, transformFunction: null }, username: { classPropertyName: "username", publicName: "username", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, avatarSrc: { classPropertyName: "avatarSrc", publicName: "avatarSrc", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: false, transformFunction: null }, signOutLabel: { classPropertyName: "signOutLabel", publicName: "signOutLabel", isSignal: true, isRequired: false, transformFunction: null }, footerText: { classPropertyName: "footerText", publicName: "footerText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuAction: "menuAction", signOut: "signOut" }, host: { classAttribute: "relative inline-flex items-center" }, ngImport: i0, template: `
|
|
11905
11915
|
<!-- ── Trigger ─────────────────────────────────────────────────────────── -->
|
|
11906
11916
|
<button
|
|
11907
11917
|
#origin="cdkOverlayOrigin"
|
|
@@ -11968,6 +11978,13 @@ class ClxProfileComponent {
|
|
|
11968
11978
|
(itemClick)="_onSignOut()" />
|
|
11969
11979
|
</div>
|
|
11970
11980
|
|
|
11981
|
+
<!-- App version / build — small, below sign out -->
|
|
11982
|
+
@if (footerText()) {
|
|
11983
|
+
<div class="border-t border-clx-border-soft px-4 py-2 text-center text-[11px] text-clx-text-subtle select-text">
|
|
11984
|
+
{{ footerText() }}
|
|
11985
|
+
</div>
|
|
11986
|
+
}
|
|
11987
|
+
|
|
11971
11988
|
</div>
|
|
11972
11989
|
</ng-template>
|
|
11973
11990
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: ClxAvatarComponent, selector: "clx-avatar", inputs: ["src", "initials", "iconName", "color", "size", "shape", "alt"] }, { kind: "component", type: ClxBadgeComponent, selector: "span[clx-badge]", inputs: ["variant", "color", "size", "shape", "positioned"] }, { kind: "component", type: ClxMenuItemComponent, selector: "clx-menu-item", inputs: ["label", "icon", "active", "style", "nested", "collapsed", "routerLink", "routerLinkActiveOptions"], outputs: ["itemClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
@@ -12045,6 +12062,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
12045
12062
|
(itemClick)="_onSignOut()" />
|
|
12046
12063
|
</div>
|
|
12047
12064
|
|
|
12065
|
+
<!-- App version / build — small, below sign out -->
|
|
12066
|
+
@if (footerText()) {
|
|
12067
|
+
<div class="border-t border-clx-border-soft px-4 py-2 text-center text-[11px] text-clx-text-subtle select-text">
|
|
12068
|
+
{{ footerText() }}
|
|
12069
|
+
</div>
|
|
12070
|
+
}
|
|
12071
|
+
|
|
12048
12072
|
</div>
|
|
12049
12073
|
</ng-template>
|
|
12050
12074
|
`,
|
|
@@ -12052,7 +12076,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
12052
12076
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12053
12077
|
host: { class: 'relative inline-flex items-center' },
|
|
12054
12078
|
}]
|
|
12055
|
-
}], propDecorators: { firstName: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstName", required: false }] }], lastName: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastName", required: false }] }], username: [{ type: i0.Input, args: [{ isSignal: true, alias: "username", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], menuItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuItems", required: false }] }], signOutLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "signOutLabel", required: false }] }], menuAction: [{ type: i0.Output, args: ["menuAction"] }], signOut: [{ type: i0.Output, args: ["signOut"] }] } });
|
|
12079
|
+
}], propDecorators: { firstName: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstName", required: false }] }], lastName: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastName", required: false }] }], username: [{ type: i0.Input, args: [{ isSignal: true, alias: "username", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], menuItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuItems", required: false }] }], signOutLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "signOutLabel", required: false }] }], footerText: [{ type: i0.Input, args: [{ isSignal: true, alias: "footerText", required: false }] }], menuAction: [{ type: i0.Output, args: ["menuAction"] }], signOut: [{ type: i0.Output, args: ["signOut"] }] } });
|
|
12056
12080
|
|
|
12057
12081
|
const DRAWER_SIZE_MAP = {
|
|
12058
12082
|
sm: 'w-[320px]',
|