@ihabdevteam/core 0.312.0 → 0.314.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,84 @@ All notable changes to this project will be documented in this file.
7
7
  > 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
8
8
  > 제 이야기를 못 찾는다.
9
9
 
10
+ ## 0.314.0
11
+
12
+ ### (116) `LISTEN_IN_NOISE` 의 아이콘 — **폭죽(🎉)을 걷었다**
13
+
14
+ `party-popper` 였다. 넷 중 **첫째만** 그랬고 나머지 셋(`message-square` · `message-square-text` ·
15
+ `align-start-vertical`)은 뜻이 닿는다 — **자리를 채워 두고 안 고친 값**이다. 두 앱이
16
+ `configureTrainingCategories` 를 안 불러 기본값을 쓰므로 회원 `/my-homework` 와 매니저 고객 상세
17
+ 숙제 탭 **양쪽** 숙제 카드에 그대로 나갔고, 네 갈래 중 **가장 많이 쓰이는** 갈래라 치료사가 보는
18
+ 목록이 폭죽밭이었다(말귀_1 실측: DOM 에 `lucide lucide-party-popper`).
19
+
20
+ 같은 화면 안에서도 어긋났다 — **카드 타일은 폭죽인데 열면 실행 창 타일은 멀쩡한 주제 아이콘**이었다.
21
+ `audio-lines` 로 바꿨다(나머지 셋이 모두 '말·글 모양' 계열이라 소리 파형이 갈래를 가장 잘 가른다).
22
+
23
+ ### 자리를 세니 **둘**이었다
24
+
25
+ 말귀는 `utils/categories.ts` 의 `DEFAULT_TRAINING_TYPES` 를 짚었는데, `utils/CategoryData.ts` 에
26
+ `TRAINING_TYPES` 가 **또 한 벌** 있었다 — 그리고 **화면에 나가는 것은 그쪽**이다
27
+ (`translateTrainingTypes` 가 그 목록을 돈다). 짚어 준 쪽만 고쳤으면 **폭죽이 그대로 남았다.**
28
+
29
+ 못(`test/trainingTypeIconsAgree.test.ts`)은 값을 박지 않고 **두 목록이 어긋나지 못하게** 센다 —
30
+ 열쇠·아이콘이 같은가, 뜻이 안 닿는 아이콘(`party-popper` 류)이 없는가, 그 이름이 아이콘 세트에
31
+ 있는가. **값을 박으면 못이 결정을 지키는 것이 아니라 결정을 막는 것**이 되므로 그 쪽으로 안 썼다.
32
+ 놀이터 일곱 자리도 같이 바꿨다(같은 갈래를 그리는 자리들이다).
33
+
34
+ > **아직 안 올린 것 하나** — `getNoiseTypeOptions` 의 '기본'(`defaultNoise`)도 `party-popper` 다.
35
+ > 형제 셋은 `car`(길거리) · `message-square-more`(와글와글) · `coffee`(식당) 로 **그 자리를 그리는데**
36
+ > 첫째만 뜻이 없다 — **같은 꼴, 다른 결정**이다. 보이는 것이 바뀌는 일이라 **사장님께 올린다**
37
+ > (어느 아이콘이 '기본 소음' 을 뜻하는지는 고르는 일이다).
38
+
39
+ ## 0.313.0
40
+
41
+ **(113)~(115) 를 고치고 나서 코어를 제 손으로 뒤졌다**(사장님 지시 2026-10-10). 말귀가 짚은 셋이 *한 자리*가
42
+ 아니라 **종류**라고 보고, 같은 종류를 세어 봤다 — **셋 다 둘째·셋째 자리가 있었다.**
43
+
44
+ > **어제 오늘 네 번째다.** 청을 받아 고치면서 *자리를 세지 않아* 한쪽만 고친 것: (99) 잠김 안내 ·
45
+ > `onRoundFinished` 세 겹 · (104) `renderResultPopup` 셋 · 그리고 이 셋. **고치는 쪽은 자리를 센다** 를
46
+ > 적어 두고도 안 했다. 그래서 이번엔 **파일마다 하나씩이 아니라 "그런 자리가 없다" 를 세는 못**으로 바꿨다.
47
+
48
+ ### (114) 의 둘째 자리 — `I18nProvider`
49
+
50
+ 프로바이더 값을 리터럴로 바로 넘기는 자리가 **둘**이었다. (114) 로 `WordDataProvider` 만 고치고 닫았다.
51
+ `I18nProvider` 도 앱 전체를 감싸고 `useI18n()` 은 공개 훅이다. **값은 늘 같은데 객체만 새로** 나는 꼴이라
52
+ 가장 안 보인다 — 값이 틀리지 않으니 아무도 안 묻는다. `useMemo` 로 묶었다.
53
+
54
+ ### (115) 의 둘째·셋째 자리 — `useAnchoredMenu` · `TextField`
55
+
56
+ **문서 전체의 굴림을 capture 로 받아 레이아웃을 읽는 자리**가 둘 더 있었다. `useAnchoredMenu` 는
57
+ `DatePicker` 가 `onScroll: 'reposition'` 을 주므로 달력이 열린 동안 굴리면 `getBoundingClientRect()` 가
58
+ 틀마다 여러 번 돌았고, `TextField` 는 뜬 목록의 자리를 같은 꼴로 따라갔다. 둘 다 rAF 로 모았다 —
59
+ **`close` 길은 그대로 즉시다**(미루면 앵커에서 떨어진 판이 한 틀 더 허공에 남는다).
60
+
61
+ ### `WordTable` 끌기 — 길을 갈랐다
62
+
63
+ *문턱을 넘었나* 는 **안 미룬다**(길게누름을 거두는 판정이라 미루면 손가락을 움직였는데도 끌기가 익는다).
64
+ *밑에 어느 칸인가* 는 `elementFromPoint` + 상태 바꾸기라 **모았다.** 그리고 **떼는 순간에 밀린 셈을
65
+ 먼저 치른다** — 안 그러면 같은 틀 안에 떼면 **떨어뜨린 자리를 잃는다.** 그 자리는 **옛 못이 짚었다**
66
+ (`wordTableReorder0916`): 모으는 고침을 할 때는 *그 값을 읽는 쪽*도 봐야 한다.
67
+
68
+ ### 안 고친 것도 까닭을 **그 줄 옆에** 적었다
69
+
70
+ 세어 보니 잦은 이벤트를 듣는 자리가 열넷이고, 그중 **다섯은 미루면 틀린다**:
71
+ `WordTable` touchmove(`preventDefault()` 는 못 미룬다) · `Table` pointermove(저장값을 곧바로 써야 한다) ·
72
+ `BarChart` scroll(닫기만 한다) · `wordTablePrint` resize 둘(같은 함수를 `beforeprint` 가 부른다 — 미루면
73
+ 옛 배율로 인쇄된다). `Table` 의 resize 는 **한 번 모아 봤다가 되돌렸다** — 불리언 상태라 React 가 멈추고,
74
+ 옛 못이 그 배선을 글자로 박아 두었다(모을 값이 없다).
75
+
76
+ ### 못은 **종류**를 센다 — 그리고 세 번 고쳐 세웠다
77
+
78
+ - 프로바이더: `.Provider value={{ … }}` 가 **없다**
79
+ - 잦은 이벤트: 모으거나, **그 줄 앞 열두 줄 안에** `안-모음:` 표가 있다
80
+
81
+ 둘째 못을 세 번 고쳤다. ① *파일 안에 rAF 나 "미루면" 같은 말이 있으면 통과* → **내가 써 둔 설명글이
82
+ escape 를 채워** 옛 꼴로 되돌려도 조용했다(**글이 못을 재웠다**). ② 표를 그 줄 옆에서만 보게 조이니
83
+ **멀쩡한 자리 둘**을 짚었다(핸들러가 위에 멀리 정의된 꼴) → **핸들러 이름을 따라가** 그 몸을 본다.
84
+ ③ 그 따라가기를 `\b` 로 썼더니 **한글 이름 뒤에서 영영 안 맞아**(`\b` 는 아스키 기준) 멀쩡한 여섯을
85
+ 짚었다 — 저장소에 이미 적어 둔 함정인데 또 밟았다. 그리고 `handleScroll → 자리다시 → rAF` 처럼
86
+ **한 다리 건너**도 따라가게 했다. 지금 못에는 **뽑개 제 시험 넷**이 함께 있다.
87
+
10
88
  ## 0.312.0
11
89
 
12
90
  사장님 지시로 돌린 최적화 전수 검수(말귀 `docs/OPTIMIZATION_AUDIT_2026-10-10.md`)에서 코어 몫 셋((113)~(115)).