@elasticias/ui 1.0.25 → 1.0.27

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": "@elasticias/ui",
3
- "version": "1.0.25",
3
+ "version": "1.0.27",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0",
@@ -60,10 +60,28 @@
60
60
  different components — so a render without the webfont looked
61
61
  different depending on which component drew it. Stacks match
62
62
  libs/tokens/typography.json, which is the contract that ships to
63
- web, iOS and Android. */
64
- --font-display: 'Bricolage Grotesque', system-ui, sans-serif;
65
- --font-ui: 'Manrope', system-ui, sans-serif;
66
- --font-mono: 'JetBrains Mono', ui-monospace, monospace;
63
+ web, iOS and Android.
64
+
65
+ Arabic sits inside each stack rather than in a `[dir='rtl']` override,
66
+ because a browser picks a face per glyph, not per element: Bricolage and
67
+ Manrope carry no Arabic, so Arabic characters fall through to Noto Sans
68
+ Arabic wherever they appear, and Latin characters keep their Latin face
69
+ wherever *they* appear. Overriding the stack under RTL would get the
70
+ common case wrong in both directions — a product code inside an Arabic
71
+ screen, an Arabic customer name inside a French one.
72
+
73
+ Noto Sans Arabic leads: it is the widest-covering of the two and is a
74
+ variable face, so it matches the weight range the Latin stacks already
75
+ use. Tajawal backs it up. Neither is downloaded by a session that renders
76
+ no Arabic — Google serves both with `unicode-range`, so the subset is
77
+ fetched only once a matching glyph is on the page. */
78
+ --font-display: 'Bricolage Grotesque', 'Noto Sans Arabic', 'Tajawal', system-ui, sans-serif;
79
+ --font-ui: 'Manrope', 'Noto Sans Arabic', 'Tajawal', system-ui, sans-serif;
80
+ /* Arabic is listed last here too. It cannot disturb figure alignment —
81
+ JetBrains Mono answers every digit — but it keeps Arabic text that lands
82
+ in a mono cell looking like the rest of the product rather than like
83
+ whatever the OS happened to pick. */
84
+ --font-mono: 'JetBrains Mono', ui-monospace, 'Noto Sans Arabic', monospace;
67
85
 
68
86
  /* ── Radii ───────────────────────────────────────────────────── */
69
87
  --r-sm: 8px;
@@ -134,6 +152,24 @@
134
152
  --text-mute: var(--ink-400);
135
153
  --text-soft: var(--ink-500);
136
154
  --ink-active: var(--ink-50);
155
+ /* Status pairs. Without these a chip kept its light pastel ground on a dark
156
+ page — the one place the dark theme visibly fell apart, because chips are
157
+ the densest colour in any list.
158
+
159
+ Each ground holds the status hue at low lightness, and each foreground was
160
+ lifted until it cleared 4.5:1 against that ground rather than picked by
161
+ eye. `onhold` keeps the neutral character of its light counterpart instead
162
+ of being pushed toward blue. Measured fg:bg — pending 5.82, processing
163
+ 4.68, shipped 4.53, delivered 7.20, cancelled 4.56, refunded 7.49,
164
+ onhold 4.96. */
165
+ --st-pending-fg: #fa8838; --st-pending-bg: #3f2512;
166
+ --st-processing-fg: #4c91e6; --st-processing-bg: #17273b;
167
+ --st-shipped-fg: #957acd; --st-shipped-bg: #251e33;
168
+ --st-delivered-fg: #5ad891; --st-delivered-bg: #1a3727;
169
+ --st-cancelled-fg: #e06161; --st-cancelled-bg: #391919;
170
+ --st-refunded-fg: #efc243; --st-refunded-bg: #3d3215;
171
+ --st-onhold-fg: #9096a2; --st-onhold-bg: #27282b;
172
+
137
173
  --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.4);
138
174
  --shadow-2: 0 8px 20px -8px rgba(0, 0, 0, 0.5);
139
175
  --shadow-3: 0 24px 60px -20px rgba(0, 0, 0, 0.7);
@@ -1261,7 +1261,7 @@
1261
1261
 
1262
1262
  .field .hint {
1263
1263
  font-size: 11px;
1264
- color: var(--text-soft);
1264
+ color: var(--text-mute);
1265
1265
  margin-top: 2px;
1266
1266
  }
1267
1267
 
@@ -1929,7 +1929,7 @@
1929
1929
 
1930
1930
  /* Placeholder state — muted, lighter weight, like an empty input. */
1931
1931
  .dp__field-trigger.is-placeholder .val {
1932
- color: var(--text-soft);
1932
+ color: var(--text-mute);
1933
1933
  font-weight: 500;
1934
1934
  }
1935
1935
 
@@ -3570,7 +3570,7 @@ input.ef-input[type='number'] {
3570
3570
 
3571
3571
  .es .p-select-label.p-placeholder,
3572
3572
  .es .p-multiselect-label.p-placeholder {
3573
- color: var(--text-soft);
3573
+ color: var(--text-mute);
3574
3574
  font-weight: 500;
3575
3575
  }
3576
3576