@iyulab/modern-app 0.44.0 → 0.44.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.44.2] - 2026-10-07
4
+
5
+ ### Fixed
6
+
7
+ - **`u-empty-state variant="error"` announces the reason, not only the title.** The alert was the title alone, so a
8
+ screen reader heard "Couldn't load" while the screen showed why — and the reason decides the next step (try again,
9
+ ask for permission, change the query). The alert is now the title and the description together (a new `message`
10
+ part wraps them); the actions stay outside it. The other variants stay quiet.
11
+
12
+ ## [0.44.1] - 2026-10-07
13
+
14
+ ### Fixed
15
+
16
+ - The master›detail examples (`docs/lob-primitives.md` and the `u-master-detail-layout` skill reference) read the
17
+ selection from `e.detail.selected`, which `u-rich-table`'s `selection-change` does not carry, and typed the event as
18
+ a `SelectionChangeEvent` that no package exports. They read `e.detail.selectedRows[0]`, typed by `RichTableEventMap`.
19
+
3
20
  ## [0.44.0] - 2026-10-07
4
21
 
5
22
  ### Added
@@ -1,5 +1,5 @@
1
1
  import { StyledElement } from '../internals/StyledElement.js';
2
- type ElementParts = 'host' | 'icon' | 'title' | 'description' | 'actions';
2
+ type ElementParts = 'host' | 'icon' | 'message' | 'title' | 'description' | 'actions';
3
3
  /**
4
4
  * 빈 상태 — 목록·검색 결과가 비었을 때.
5
5
  *
@@ -36,8 +36,12 @@ var d = class extends n {
36
36
  <div class="icon" part="icon" aria-hidden="true">
37
37
  <slot name="icon">${e.icon}</slot>
38
38
  </div>
39
- <p class="title" part="title" role=${this.variant === "error" ? "alert" : s}>${this.title || e.title}</p>
40
- ${t ? o`<p class="description" part="description">${t}</p>` : s}
39
+ <!-- 오류는 경보다 — 그 범위는 이 상태가 전하는 사실 전체(제목 + 사유)다. 사유가 다음 행동(다시 시도 · 권한 요청 ·
40
+ 조건 고치기)을 가르므로 제목만 읽히면 듣는 사람이 다른 사실을 받는다. 행동 슬롯은 밖. -->
41
+ <div class="message" part="message" role=${this.variant === "error" ? "alert" : s}>
42
+ <p class="title" part="title">${this.title || e.title}</p>
43
+ ${t ? o`<p class="description" part="description">${t}</p>` : s}
44
+ </div>
41
45
  <div class="actions ${this.hasActions ? "" : "empty"}" part="actions">
42
46
  <slot name="actions"
43
47
  @slotchange=${(e) => this.hasActions = i(e.target)}
@@ -19,6 +19,13 @@ var t = e`
19
19
  opacity: 0.7;
20
20
  }
21
21
 
22
+ /* 제목과 사유의 묶음 — 오류 변형의 경보 범위. 배치는 호스트와 같은 가운데 세로 줄. */
23
+ .message {
24
+ display: flex;
25
+ flex-direction: column;
26
+ align-items: center;
27
+ }
28
+
22
29
  .title {
23
30
  margin: 0;
24
31
  font-size: var(--u-text-subtitle-size, 16px);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@iyulab/modern-app",
3
3
  "description": "web-framework by iyulab based on lit-element",
4
- "version": "0.44.0",
4
+ "version": "0.44.2",
5
5
  "keywords": [
6
6
  "iyulab",
7
7
  "web-framework",
@@ -16,7 +16,7 @@ for both and a user with a filter still applied reads it as *"my data disappeare
16
16
 
17
17
  <u-empty-state variant="no-results"></u-empty-state>
18
18
 
19
- <!-- The list could not be loaded — the next step is trying again. The title is announced (role="alert"). -->
19
+ <!-- The list could not be loaded — the next step is trying again. The title and the reason (description) are announced together (role="alert") — the reason decides what to do next. -->
20
20
  <u-empty-state variant="error" description="Request failed (503)">
21
21
  <u-button slot="actions">Try again</u-button>
22
22
  </u-empty-state>
@@ -43,6 +43,7 @@ for both and a user with a filter still applied reads it as *"my data disappeare
43
43
  | Part | Description |
44
44
  |------|-------------|
45
45
  | `icon` · `title` · `description` · `actions` | The four regions |
46
+ | `message` | Wraps `title` and `description` — the alert of `variant="error"` |
46
47
 
47
48
  ## CSS Custom Properties
48
49
 
@@ -13,7 +13,7 @@ Swap the `detail` slot's content when the selection changes:
13
13
 
14
14
  ```html
15
15
  <u-master-detail-layout>
16
- <u-rich-table @selection-change=${e => (detail = renderRecord(e.detail.selected))}>
16
+ <u-rich-table @selection-change=${e => (detail = renderRecord(e.detail.selectedRows[0]))}>
17
17
  …
18
18
  </u-rich-table>
19
19
  <div slot="detail">${detail}</div>