@arclux/arc-ui 1.5.2 → 1.6.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arclux/arc-ui",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "ARC UI — Lit Web Components implementing the Arclight design system.",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -29,13 +29,13 @@ export class ArcCard extends LitElement {
29
29
  :host([interactive]) .card { cursor: pointer; }
30
30
 
31
31
  .card__inner {
32
- padding: var(--space-xl) var(--space-lg);
32
+ padding: var(--space-lg);
33
33
  }
34
34
 
35
35
  /* Padding variants */
36
36
  :host([padding="none"]) .card__inner { padding: 0; }
37
- :host([padding="sm"]) .card__inner { padding: var(--space-md) var(--space-sm); }
38
- :host([padding="lg"]) .card__inner { padding: var(--space-2xl) var(--space-xl); }
37
+ :host([padding="sm"]) .card__inner { padding: var(--space-sm); }
38
+ :host([padding="lg"]) .card__inner { padding: var(--space-xl); }
39
39
 
40
40
  .card__body {
41
41
  flex: 1;
@@ -8,6 +8,7 @@ export class ArcFeatureCard extends LitElement {
8
8
  heading: { type: String },
9
9
  description: { type: String },
10
10
  href: { type: String },
11
+ action: { type: String, reflect: true },
11
12
  };
12
13
 
13
14
  static styles = [
@@ -19,7 +20,7 @@ export class ArcFeatureCard extends LitElement {
19
20
  .card { height: 100%; }
20
21
 
21
22
  .card__inner {
22
- padding: var(--space-xl) var(--space-lg);
23
+ padding: var(--space-lg);
23
24
  gap: var(--space-md);
24
25
  z-index: 1;
25
26
  }
@@ -63,6 +64,35 @@ export class ArcFeatureCard extends LitElement {
63
64
  margin: 0;
64
65
  }
65
66
 
67
+ .card__action {
68
+ display: inline-flex;
69
+ align-items: center;
70
+ gap: 6px;
71
+ font-family: var(--font-accent);
72
+ font-size: var(--text-xs);
73
+ font-weight: 600;
74
+ letter-spacing: 1.5px;
75
+ text-transform: uppercase;
76
+ color: var(--text-ghost);
77
+ transition: color var(--transition-fast), gap var(--transition-fast);
78
+ }
79
+
80
+ .card:hover .card__action {
81
+ color: var(--accent-primary);
82
+ gap: 10px;
83
+ }
84
+
85
+ .card__action-arrow {
86
+ display: inline-block;
87
+ width: 14px;
88
+ height: 14px;
89
+ transition: transform var(--transition-fast);
90
+ }
91
+
92
+ .card:hover .card__action-arrow {
93
+ transform: translateX(2px);
94
+ }
95
+
66
96
  .card__rule {
67
97
  width: 32px;
68
98
  height: 1px;
@@ -74,7 +104,7 @@ export class ArcFeatureCard extends LitElement {
74
104
  .card:hover .card__rule { opacity: 0.5; width: 48px; }
75
105
 
76
106
  @media (max-width: 768px) {
77
- .card__inner { padding: var(--space-lg) var(--space-md); }
107
+ .card__inner { padding: var(--space-md); }
78
108
  }
79
109
 
80
110
  @media (prefers-reduced-motion: reduce) {
@@ -95,6 +125,7 @@ export class ArcFeatureCard extends LitElement {
95
125
  this.heading = '';
96
126
  this.description = '';
97
127
  this.href = '';
128
+ this.action = '';
98
129
  }
99
130
 
100
131
  render() {
@@ -103,6 +134,14 @@ export class ArcFeatureCard extends LitElement {
103
134
  <div class="card__icon" part="icon"><slot name="icon">${this.icon}</slot></div>
104
135
  <h3 class="card__title" part="title">${this.heading}</h3>
105
136
  <p class="card__desc" part="description">${this.description}</p>
137
+ ${this.action && this.href ? html`
138
+ <span class="card__action" part="action">
139
+ ${this.action}
140
+ <svg class="card__action-arrow" viewBox="0 0 16 16" fill="none" aria-hidden="true">
141
+ <path d="M3 8h10M9 4l4 4-4 4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
142
+ </svg>
143
+ </span>
144
+ ` : ''}
106
145
  <span class="card__rule"></span>
107
146
  </div>
108
147
  `;
@@ -24,7 +24,7 @@ export class ArcFileUpload extends LitElement {
24
24
  align-items: center;
25
25
  justify-content: center;
26
26
  gap: var(--space-sm);
27
- padding: var(--space-xl) var(--space-lg);
27
+ padding: var(--space-lg);
28
28
  border: 2px dashed var(--border-default);
29
29
  border-radius: var(--radius-lg);
30
30
  background: var(--bg-surface);