codexly-ui 0.10.87 → 0.10.89

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.
@@ -24,9 +24,15 @@
24
24
  --clx-text: #0f172a; /* slate-900 — body text */
25
25
  --clx-text-label: #475569; /* slate-600 — field labels */
26
26
  --clx-text-muted: #64748b; /* slate-500 — secondary text, body in alerts */
27
- --clx-text-subtle: #94a3b8; /* slate-400 — hints, placeholders, idle nav */
27
+ --clx-text-subtle: #94a3b8; /* slate-400 — hints, idle nav */
28
28
  --clx-text-faint: #cbd5e1; /* slate-300 — out-of-range calendar days */
29
29
 
30
+ /* Fixed input placeholder color — intentionally NOT derived from --clx-text-subtle:
31
+ a custom theme can set --clx-text-subtle close to --clx-text-label (e.g. via the
32
+ theme picker), which collapses placeholder/typed-text contrast. Placeholders need
33
+ a guaranteed-low-contrast color regardless of the user's theme customization. */
34
+ --clx-placeholder: #94a3b8; /* slate-400 */
35
+
30
36
  /* ── Borders ── */
31
37
  --clx-border: #e2e8f0; /* slate-200 — default input/card border */
32
38
  --clx-border-soft: #f1f5f9; /* slate-100 — card/modal header-footer divider */
@@ -63,6 +69,10 @@
63
69
  --clx-text-subtle: #64748b; /* slate-500 */
64
70
  --clx-text-faint: #475569; /* slate-600 */
65
71
 
72
+ /* Fixed input placeholder color — see :root definition above for why this is independent
73
+ of --clx-text-subtle. */
74
+ --clx-placeholder: #64748b; /* slate-500 */
75
+
66
76
  /* ── Borders ── */
67
77
  --clx-border: #334155; /* slate-700 */
68
78
  --clx-border-soft: #1e293b; /* slate-800 */
@@ -87,6 +97,7 @@
87
97
  --color-clx-text-muted: var(--clx-text-muted);
88
98
  --color-clx-text-subtle: var(--clx-text-subtle);
89
99
  --color-clx-text-faint: var(--clx-text-faint);
100
+ --color-clx-placeholder: var(--clx-placeholder);
90
101
  --color-clx-border: var(--clx-border);
91
102
  --color-clx-border-soft: var(--clx-border-soft);
92
103
  --color-clx-primary: var(--clx-primary);
@@ -9,7 +9,7 @@
9
9
  @source inline("text-{black,white}");
10
10
  @source inline("focus:ring-2 focus-within:ring-2 ring-2");
11
11
  @source inline("{bg,border,text}-clx-{surface,surface-2,surface-3,bg,text,text-label,text-muted,text-subtle,text-faint,border,border-soft}");
12
- @source inline("placeholder:text-clx-text-subtle");
12
+ @source inline("placeholder:text-clx-placeholder");
13
13
 
14
14
  /* ── Shared backdrop base ── */
15
15
  .clx-modal-backdrop,
@@ -700,8 +700,10 @@ class ClxSocialIconComponent {
700
700
  size = input(undefined, ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
701
701
  _color = computed(() => this.color() ?? this._themeSvc.config().primaryColor, ...(ngDevMode ? [{ debugName: "_color" }] : /* istanbul ignore next */ []));
702
702
  _size = computed(() => this.size() ?? this._themeSvc.config().defaultSize, ...(ngDevMode ? [{ debugName: "_size" }] : /* istanbul ignore next */ []));
703
- _viewBox = computed(() => SOCIAL_ICON_DEFS[this.platform()].viewBox, ...(ngDevMode ? [{ debugName: "_viewBox" }] : /* istanbul ignore next */ []));
704
- _markup = computed(() => this._sanitizer.bypassSecurityTrustHtml(SOCIAL_ICON_DEFS[this.platform()].markup), ...(ngDevMode ? [{ debugName: "_markup" }] : /* istanbul ignore next */ []));
703
+ _markup = computed(() => {
704
+ const def = SOCIAL_ICON_DEFS[this.platform()];
705
+ return this._sanitizer.bypassSecurityTrustHtml(`<svg viewBox="${def.viewBox}" class="w-full h-full">${def.markup}</svg>`);
706
+ }, ...(ngDevMode ? [{ debugName: "_markup" }] : /* istanbul ignore next */ []));
705
707
  _hostClass = computed(() => {
706
708
  const { color, shade } = parseColorInput(this._color());
707
709
  const base = resolveColor(this._color());
@@ -721,14 +723,14 @@ class ClxSocialIconComponent {
721
723
  return `inline-flex items-center justify-center rounded-xl transition-colors duration-200 cursor-pointer ${sizeClass} ${cls}`;
722
724
  }, ...(ngDevMode ? [{ debugName: "_hostClass" }] : /* istanbul ignore next */ []));
723
725
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxSocialIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
724
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: ClxSocialIconComponent, isStandalone: true, selector: "a[clx-social-icon], button[clx-social-icon]", inputs: { platform: { classPropertyName: "platform", publicName: "platform", isSignal: true, isRequired: true, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_hostClass()", "attr.aria-label": "platform()" } }, ngImport: i0, template: `<svg [attr.viewBox]="_viewBox()" [innerHTML]="_markup()" class="w-full h-full"></svg>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
726
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.15", type: ClxSocialIconComponent, isStandalone: true, selector: "a[clx-social-icon], button[clx-social-icon]", inputs: { platform: { classPropertyName: "platform", publicName: "platform", isSignal: true, isRequired: true, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_hostClass()", "attr.aria-label": "platform()" } }, ngImport: i0, template: `<span class="w-full h-full [&>svg]:w-full [&>svg]:h-full" [innerHTML]="_markup()"></span>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
725
727
  }
726
728
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: ClxSocialIconComponent, decorators: [{
727
729
  type: Component,
728
730
  args: [{
729
731
  selector: 'a[clx-social-icon], button[clx-social-icon]',
730
732
  standalone: true,
731
- template: `<svg [attr.viewBox]="_viewBox()" [innerHTML]="_markup()" class="w-full h-full"></svg>`,
733
+ template: `<span class="w-full h-full [&>svg]:w-full [&>svg]:h-full" [innerHTML]="_markup()"></span>`,
732
734
  encapsulation: ViewEncapsulation.None,
733
735
  changeDetection: ChangeDetectionStrategy.OnPush,
734
736
  host: {
@@ -2006,7 +2008,8 @@ const CLX_BG_SECTION = 'bg-clx-surface-2'; // card/modal header+footer
2006
2008
  const CLX_BG_ICON_WRAP = 'bg-clx-surface-3'; // empty-state icon wrapper
2007
2009
  const CLX_BG_ADDON = 'bg-clx-surface-3'; // prefix/suffix text addon
2008
2010
  // ── Placeholder ───────────────────────────────────────────────────────────────
2009
- const CLX_PLACEHOLDER = 'placeholder:text-clx-text-subtle';
2011
+ // Fixed color independent of --clx-text-subtle — see _theme.css for why.
2012
+ const CLX_PLACEHOLDER = 'placeholder:text-clx-placeholder';
2010
2013
  // ── Disabled borders ──────────────────────────────────────────────────────────
2011
2014
  const CLX_BORDER_DISABLED = 'border-clx-border';
2012
2015
  // ── Addon (prefix/suffix text) ────────────────────────────────────────────────