@ihabdevteam/core 0.140.0 → 0.142.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.
Files changed (32) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/components.cjs.js +179 -179
  3. package/dist/hooks.cjs.js +1 -1
  4. package/dist/i18n.cjs.js +1 -1
  5. package/dist/ihabdevteam-core.cjs.js +184 -184
  6. package/dist/ihabdevteam-core.d.ts +21 -9
  7. package/dist/packages/core/src/components/BulkBar.js +37 -3
  8. package/dist/packages/core/src/components/PaymentPlan.d.ts +2 -2
  9. package/dist/packages/core/src/components/Popup/Popup.d.ts +5 -5
  10. package/dist/packages/core/src/components/Popup/Popup.js +6 -7
  11. package/dist/packages/core/src/components/Popup/customerDetailUtils.d.ts +1 -1
  12. package/dist/packages/core/src/components/Popup/customerDetailUtils.js +1 -1
  13. package/dist/packages/core/src/components/Tooltip/Tooltip.js +6 -0
  14. package/dist/packages/core/src/components/Training/TrainingBlock.js +2 -1
  15. package/dist/packages/core/src/components/Training/TrainingPagePopup.js +4 -0
  16. package/dist/packages/core/src/components/Training/TrainingStepAudioPlayer.js +4 -1
  17. package/dist/packages/core/src/components/Training/TrainingStepTextBox.js +3 -1
  18. package/dist/packages/core/src/components/Training/useTTSPlayback.js +2 -1
  19. package/dist/packages/core/src/components/Word/wordTablePrint.js +3 -1
  20. package/dist/packages/core/src/hooks/inputModality.d.ts +2 -0
  21. package/dist/packages/core/src/hooks/inputModality.js +31 -0
  22. package/dist/packages/core/src/hooks/useDocumentTitle.d.ts +12 -0
  23. package/dist/packages/core/src/hooks/useDocumentTitle.js +7 -6
  24. package/dist/packages/core/src/hooks/useEditableList.js +3 -3
  25. package/dist/packages/core/src/hooks/useTablePaging.js +2 -1
  26. package/dist/packages/core/src/utils/textSort.d.ts +10 -0
  27. package/dist/packages/core/src/utils/textSort.js +16 -11
  28. package/dist/packages/core/src/utils/theme.js +5 -2
  29. package/dist/packages/core/src/version.d.ts +1 -1
  30. package/dist/packages/core/src/version.js +1 -1
  31. package/dist/utils.cjs.js +2 -2
  32. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,60 @@ All notable changes to this project will be documented in this file.
7
7
  > 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
8
8
  > 제 이야기를 못 찾는다.
9
9
 
10
+ ## 0.142.0
11
+
12
+ 11차 검수 판이다 — 이번 밤에 고친 것들을 거꾸로 훑어 **그 수정이 만든 회귀** 를 고쳤다. 놀이터 문서를 0.133~0.141 동작에 맞췄다.
13
+ 걷거나 더한 공개 API 는 없다.
14
+
15
+ ### 소비자에게 먼저
16
+
17
+ - **Popup `animateThen` 되살림(0.139.0) 범위를 좁혔다**: 콜백이 **던지거나, 약속을 돌려주고 그 약속이 거절되거나 끝난 뒤에도 창이 남아
18
+ 있을 때만** 되살린다. 약속을 안 돌려주는 동기 콜백은 되살리지 않는다. 0.139~0.141 에서는 부모가 저장을 따로 기다렸다 창을 닫는
19
+ 흔한 꼴(`animateThen(handleSave)`, handleSave 는 onSave 만 부름)에서 **기다리는 사이 창이 다시 보이고 저장 단추가 다시 눌려 두 번
20
+ 저장** 될 수 있었다. 저장 실패에 창을 되살리고 싶으면 콜백이 저장 약속을 돌려준다(`animateThen(() => onSave(...))`).
21
+ - **초점 옮기기는 키보드로 눌렀을 때만** 한다(TrainingStepAudioPlayer 큰 '듣기', TrainingStepTextBox '문장 미리보기', TrainingBlock
22
+ 마지막 '더보기', TrainingPagePopup '다음 문제'). 0.138.0 부터 마우스로 눌러도 옮겨 '재생 / 멈춤'·'글자 크기 감소'·'문장 듣기' 초점 툴팁이 떴다.
23
+
24
+ ### 바뀜
25
+
26
+ - **칸순**: 0.136.0 의 글자 속 숫자 비교가 단위 붙은 소수·음수(`'12.5%'`·`'-10 dB'`)를 거꾸로 세웠다 — 그런 칸은 글자 차례로.
27
+ - **BulkBar**: 0.141.0 의 여유가 넘친 순간의 좁은 폭을 들고 있어, 막대가 넓어져도(옆 메뉴 접기) 쌓임이 안 풀렸다 — 막대 폭이 바뀌면 다시 잰다.
28
+ - **Tooltip**: 0.140.0 의 스크롤 닫기가 툴팁에서 body 로 빠진 메뉴·달력(data-tooltip-ignore)을 굴려도 툴팁을 닫았다.
29
+ - **놀이터**: Popup 크기(xlarge·fit)·층·fillBody·높이 변수·되살림, 툴팁 스크롤 닫힘, TrainingBlockButton row·Button tooltipOnly·Panel
30
+ compactRows 시연 등 스물여 곳을 지금 동작에 맞췄다. 소스 주석 몇 곳도.
31
+
32
+ ### 고치지 않은 것 — 결정·확인이 필요하다
33
+
34
+ - useEditableList: commitEdit 과 같은 동기 처리 안에서 부모가 새 목록을 넘기면 그 목록을 한 번 건너뛴다.
35
+ - escStack·후보 목록의 조합 중 키(229) 무시가 조합을 끝내는 키를 한 번만 보내는 브라우저에서는 두 번 누르게 할 수 있다 — 실기기 확인.
36
+ - 팝업 안에서 초점 툴팁이 떠 있으면 Esc 첫 번째는 툴팁만 닫는다.
37
+ - 앞 판에 적은 결정은 그대로.
38
+
39
+ ## 0.141.0
40
+
41
+ 10차 검수 판이다 — 렌더 되먹임·보안(주입) 검수에서 **재현된** 결함을 고쳤다. 보안 수정이 들어 있어 따로 판을 낸다.
42
+ 걷거나 더한 공개 API 는 없다.
43
+
44
+ ### 소비자에게 먼저
45
+
46
+ - **보안 — `applyTheme`·단어표 인쇄(`captureHtml`)**: 테마는 `light`·`dark`·`auto` 만 받는다(모르는 값은 `light`). 전에는 테마 값을 검증 없이
47
+ `<html data-theme>` 에 넣고, 인쇄·새 창·내려받기 문서가 그 값을 이스케이프 없이 끼워 넣어 `"><script>` 가 앱 출처에서 실행될 수 있었다
48
+ (테마가 서버 설정 JSON 에서 오는 앱에서).
49
+ - **BulkBar**: 단추를 세로로 쌓았다가 되돌리는 판단에 여유를 두었다 — 칩 수에 따라 단추 배치가 매 프레임 오가던 것.
50
+
51
+ ### 바뀜
52
+
53
+ - **BulkBar**: 칩이 넘쳐 단추를 쌓으면 칸이 넓어져 한 줄에 들고, 되돌리면 또 넘쳐 1초에 60번 배치가 뒤집혔다(말귀 단어 고름 막대, 데스크톱).
54
+ - **useTTSPlayback**: 음성 합성으로 재생하는 동안 매 프레임 상태를 올려 플레이어·파형이 초당 60번 다시 그려졌다.
55
+ - **useTablePaging**: `resetOn` 이 NaN 이면 렌더가 끝나지 않았다.
56
+
57
+ ### 고치지 않은 것 — 결정·확인이 필요하다
58
+
59
+ - `escapeCsvField` 가 수식 앞에 탭을 붙인다 — 앞 공백을 자르는 가져오기에서 풀릴 수 있다(`'` 접두로 바꿀지).
60
+ - SideNav·Header 의 `window.open(href)` 스킴 검사, useIcon DOMPurify 가 인라인 SVG 의 `<style>` 을 남기는 것.
61
+ - 소음 설정 저장이 슬라이더 한 칸마다 나간다(잠근 시험이 있어 두었다).
62
+ - 앞 판에 적은 결정은 그대로.
63
+
10
64
  ## 0.140.0
11
65
 
12
66
  9차 검수 판이다 — 가로지르는 검수 다섯(날짜 경계·한글 조합·터치·불완전한 자료·오버레이 쌓임)에서 **재현된** 결함을 고쳤다. 항목마다