@elasticias/ui 1.0.26 → 1.0.28

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.26",
3
+ "version": "1.0.28",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0",
@@ -152,6 +152,24 @@
152
152
  --text-mute: var(--ink-400);
153
153
  --text-soft: var(--ink-500);
154
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
+
155
173
  --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.4);
156
174
  --shadow-2: 0 8px 20px -8px rgba(0, 0, 0, 0.5);
157
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
 
@@ -4407,6 +4407,11 @@ type EfTableDensity = 'compact' | 'default' | 'comfortable';
4407
4407
  * 2. **`tbl-head-info` / `tbl-head-actions` slots**: still projected
4408
4408
  * so the consumer can render the count text + density / columns /
4409
4409
  * view-toggle buttons next to the table header.
4410
+ * 3. **`[loading]` is not optional.** Bind the screen's own loading
4411
+ * signal: without it the card can't tell "still fetching" from
4412
+ * "nothing to fetch" and greets a waiting user with the empty
4413
+ * state. While loading with no rows yet it shimmers `ef-skeleton`
4414
+ * rows (table and mobile list alike) and flags `aria-busy`.
4410
4415
  *
4411
4416
  * ```html
4412
4417
  * <ef-data-card
@@ -4499,10 +4504,27 @@ declare class EfDataCardComponent<TRow = any> implements AfterContentInit {
4499
4504
  readonly hidePager: _angular_core.InputSignalWithTransform<boolean, unknown>;
4500
4505
  /** Currently active sort. Header click toggles asc / desc. */
4501
4506
  readonly sort: _angular_core.InputSignal<EfDataCardSort>;
4507
+ /**
4508
+ * First load and every refresh. While true with no rows yet, the body
4509
+ * shimmers `ef-skeleton` placeholders instead of the empty state — a
4510
+ * list that is still loading must never say "nothing here yet". A
4511
+ * refresh that already has rows (paging, sorting, filtering) keeps
4512
+ * them on screen rather than blanking the table; either way the row
4513
+ * container is flagged `aria-busy`, as `ef-card` does.
4514
+ */
4502
4515
  readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
4503
4516
  /** Empty string = no error. Non-empty triggers an error chip in tbl-head. */
4504
4517
  readonly errorMsg: _angular_core.InputSignal<string>;
4505
4518
  readonly loadingKey: _angular_core.InputSignal<string>;
4519
+ /**
4520
+ * Placeholder rows drawn while the first load is in flight. The page
4521
+ * size is what the operator is about to get, so it sets the height —
4522
+ * clamped so a 100-per-page list doesn't shimmer a full screen of
4523
+ * bars, and a 5-per-page one still reads as a list.
4524
+ */
4525
+ readonly skeletonLines: _angular_core.Signal<number[]>;
4526
+ /** First load: nothing to show yet, so the rows are placeholders. */
4527
+ readonly showSkeleton: _angular_core.Signal<boolean>;
4506
4528
  /**
4507
4529
  * When `true`, double-clicking anywhere on a `<tr>` emits the row
4508
4530
  * via `rowDoubleClick` and the body rows render with