@ihabdevteam/core 0.330.0 → 0.331.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/CHANGELOG.md CHANGED
@@ -7,6 +7,59 @@ All notable changes to this project will be documented in this file.
7
7
  > 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
8
8
  > 제 이야기를 못 찾는다.
9
9
 
10
+ ## 0.331.0 — (307) 다시 듣기 셋 — 사장님 지적 · 말귀_1 실측
11
+
12
+ ### ① 줄을 **가운데**로 맞춘다 — `baseline` 이 아니다
13
+
14
+ `baseline` 이면 `display:flex` 인 단추의 **제 안 아이콘 바닥**이 기준선이 된다. 그래서 32px
15
+ 단추가 줄 높이를 정하고 26px 낱말이 위로 밀렸다. 브라우저 실측(놀이터 1280px, 한 줄짜리
16
+ 여섯 줄): `baseline` → **3.5px** 어긋남, `center` → **0**. 말귀_1 이 앱에서 3px 로 같은 것을 쟀다.
17
+
18
+ > 0.328.0 에서 단추에만 `align-self: center` 를 건 것은 **아무 일도 안 했다** — 단추가 이미
19
+ > 줄을 꽉 채우니 제 안에서 가운데로 가도 그대로다. 줄을 맞춰야 한다. 그 글이 남아 있으면
20
+ > 다음 사람이 또 그 길로 가므로 함께 걷었다.
21
+
22
+ ### ② 단추가 **변형을 받지 않는다** — 기본이다
23
+
24
+ 사장님이 화면에서 두 번 짚으셨다. 앱은 이 자리를 못 바꾼다 — 코어가 넘기는 prop 이고,
25
+ 앱 CSS 로 코어를 겨누지 않는 것이 이 집 규약이다. 그래서 코어가 뗀다.
26
+
27
+ ### ③ **코어가 그 문항을 읽을 때 쓴 길을 그대로 탄다**
28
+
29
+ 0.328.0 은 부르는 쪽이 넘긴 주소 하나만 봤다. 그래서 **정식 음원이 없는 낱말에는 단추가
30
+ 아예 안 섰다** — 말귀_1 실측으로 다섯 줄 중 둘(다른 판에서는 다섯 중 셋)이 그랬다.
31
+ 그런데 **훈련 중에는 다 들렸다**: 코어가 리졸버와 합성으로 읽어 주고 있었다. 다시 듣기만
32
+ 반쪽을 보고 있었던 것이다.
33
+
34
+ 길은 넷이다 — ① 넘긴 날 주소 ② `urlResolver`(저장소의 정식 음원) ③ `fallbackUrlResolver`
35
+ (그때 합성) ④ 브라우저 `speechSynthesis`. 이 차례가 `TrainingWordCard` 와
36
+ `TrainingStepAudioPlayer` 에 **두 벌**로 적혀 있었고, 팝업에 세 벌째를 쓰지 않으려고
37
+ `src/components/Training/questionSoundRoute.ts` 하나로 모았다. **재생과 임자(자물쇠)는 거기서
38
+ 안 다룬다** — 부르는 쪽마다 쥐는 법이 다르고 그 다름이 각자의 내력에 적혀 있다.
39
+
40
+ 이제 단추가 서는 조건은 "주소를 받았나" 가 아니라 **"코어가 이것을 읽을 길이 있나"** 다.
41
+ 앱이 주소를 지어 넘기지 않아도 된다.
42
+
43
+ **날 주소는 누름 그 자리에서 튼다.** 차례를 다 모은 뒤에 틀도록 짰더니 `await` 가 하나
44
+ 끼었고, 그러면 자동재생 막음이 `play()` 를 거절할 수 있다 — 누름의 표가 `await` 를 못 넘는
45
+ 브라우저가 있다. 시험 셋이 그 바뀜을 잡았다.
46
+
47
+ **임자 셈으로 "못 틀었다" 와 "사람이 멈췄다" 를 가른다.** `done` 은 둘 다 거짓이다. 그것만
48
+ 보고 다음 주소로 넘어가면 **멈추라고 누른 사람이 다음 소리를 듣는다.**
49
+
50
+ 브라우저 끝까지 실측(놀이터, 주소가 하나도 없는 여섯 줄): 단추 6/6 · 누르니
51
+ `speechSynthesis.speaking === true` · 이름표가 `1번 듣기 멈춤` · 다시 누르니 멈춤 · 오류 0.
52
+
53
+ ### 옛 결정 하나를 **고쳐 적는다**
54
+
55
+ (303) 때 *"못 찾으면 단추를 안 그린다 — 안 넘기는 쪽은 지금과 똑같아야 한다"* 로 적어 둔
56
+ 것이 반쪽이었다. 그 글을 시험 머리말에서 고치고, 길이 **하나도 없을 때만** 안 선다로 바꿨다.
57
+ 그 둘을 세던 못도 다시 적었다 — jsdom 에 말소리가 없어 **우연히** 초록이던 자리다.
58
+
59
+ 못 일곱을 더 세우고 **다섯 가지로 깨 봤다**(단추 조건을 옛 꼴로 · 폴백을 길에서 빼기 ·
60
+ 임자 셈 빼기 · `baseline` 되돌리기 · 변형 되살리기). 임자 셈 깨기는 **처음에 안 울렸다** —
61
+ 고리 머리의 검사가 남아 반만 뺀 것이었다. 제대로 빼니 울었다.
62
+
10
63
  ## 0.330.0 — (304) 문턱이 **헛돌았다** — 말귀_1 실측 (0.328.0 회귀)
11
64
 
12
65
  말귀_1 이 앱에서 쟀다: 375×812 채점지에서 그려진 재생 단추가 **9.5px** 인데