@ihabdevteam/core 0.309.0 → 0.311.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 +80 -0
- package/dist/components.cjs.js +15 -15
- package/dist/components.esm.css +2 -2
- package/dist/hooks.cjs.js +3 -3
- package/dist/i18n.cjs.js +3 -3
- package/dist/ihabdevteam-core.cjs.js +185 -185
- package/dist/ihabdevteam-core.d.ts +120 -10
- package/dist/packages/core/src/components/CountTile.css +4 -0
- package/dist/packages/core/src/components/CountTile.d.ts +11 -1
- package/dist/packages/core/src/components/CountTile.js +2 -2
- package/dist/packages/core/src/components/Popup/Popup.css +12 -0
- package/dist/packages/core/src/components/Popup/Popup.d.ts +11 -0
- package/dist/packages/core/src/components/Popup/Popup.js +4 -2
- package/dist/packages/core/src/components/Tooltip/TrainingTooltip.d.ts +31 -3
- package/dist/packages/core/src/components/Tooltip/TrainingTooltip.js +25 -13
- package/dist/packages/core/src/components/Training/TrainingBlock.css +18 -0
- package/dist/packages/core/src/components/Training/TrainingBlockGrid.d.ts +27 -0
- package/dist/packages/core/src/components/Training/TrainingBlockGrid.js +65 -0
- package/dist/packages/core/src/components/Training/TrainingStep.d.ts +10 -2
- package/dist/packages/core/src/components/Training/TrainingStep.js +2 -2
- package/dist/packages/core/src/components/Training/TrainingStepCard.d.ts +4 -1
- package/dist/packages/core/src/components/Training/TrainingStepCard.js +2 -2
- package/dist/packages/core/src/components/Training/TrainingStepCardOrder.d.ts +4 -1
- package/dist/packages/core/src/components/Training/TrainingStepCardOrder.js +2 -2
- package/dist/packages/core/src/components/Training/TrainingStepConfirm.d.ts +4 -1
- package/dist/packages/core/src/components/Training/TrainingStepConfirm.js +2 -2
- package/dist/packages/core/src/components/Training/TrainingStepConfirmWithText.d.ts +4 -1
- package/dist/packages/core/src/components/Training/TrainingStepConfirmWithText.js +2 -2
- package/dist/packages/core/src/components/Training/TrainingStepOrderList.d.ts +1 -1
- package/dist/packages/core/src/components/Training/TrainingStepOrderList.js +2 -2
- package/dist/packages/core/src/components/Training/trainingStepOrderListTypes.d.ts +3 -0
- package/dist/packages/core/src/components/Training/trainingStepOrderListTypes.js +0 -4
- package/dist/packages/core/src/components.d.ts +3 -1
- package/dist/packages/core/src/components.js +1 -0
- package/dist/packages/core/src/i18n/locales/en.json +0 -1
- package/dist/packages/core/src/i18n/locales/ko.json +0 -1
- package/dist/packages/core/src/utils/blockGrid.d.ts +16 -0
- package/dist/packages/core/src/utils/blockGrid.js +28 -0
- package/dist/packages/core/src/utils.d.ts +1 -0
- package/dist/packages/core/src/utils.js +1 -0
- package/dist/packages/core/src/version.d.ts +1 -1
- package/dist/packages/core/src/version.js +1 -1
- package/dist/utils.cjs.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,86 @@ All notable changes to this project will be documented in this file.
|
|
|
7
7
|
> 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
|
|
8
8
|
> 제 이야기를 못 찾는다.
|
|
9
9
|
|
|
10
|
+
## 0.311.0
|
|
11
|
+
|
|
12
|
+
사용자 지시(2026-10-10): *"오버라이드하거나 반복적으로 주입하는 건 코어에 요청해서 공통으로."* 그 결로
|
|
13
|
+
말귀가 넷을 청했다((108)~(111)). 넷 다 **앱이 코어 위에 덧칠하거나 코어 치수를 베껴 들고 있던 자리**다.
|
|
14
|
+
|
|
15
|
+
### (108) `Popup.footerNote` — 바닥 줄 **위**의 한 줄 안내 띠
|
|
16
|
+
|
|
17
|
+
숙제 창 둘(회원 `info` · 매니저 `.hwd-foot`)이 `.popup-footer` 에 글줄을 싣느라 각자 덧칠했고 **벌써
|
|
18
|
+
둘이 달랐다**(한쪽만 실선). `footerNote` 한 칸 — 최소 높이 40 · 위로 숨 · 왼쪽 정렬 · `role="note"`.
|
|
19
|
+
바닥 줄(`buttons`·`footer`·`footerStart/End`)과 **따로** 서고, 바닥 줄이 없어도 선다. 실선은
|
|
20
|
+
`footerNoteDivider` 로 **값으로** 고른다(창마다 있고 없고가 갈리던 자리라서).
|
|
21
|
+
|
|
22
|
+
### (109) `CountTile.hoverAccent` — 본색 호버 테두리를 prop 하나로
|
|
23
|
+
|
|
24
|
+
앱이 `.training-card__types .count-tile--interactive:hover { border-color: var(--color-main) }` 로 코어를
|
|
25
|
+
덮고 있었다. `hoverAccent` 를 켜면 호버 테두리가 `--color-main`. **어디서 켜는지는 앱이 정한다** —
|
|
26
|
+
`TrainingCard` 가 대신 넘기는 꼴로 두면 자리가 둘이 되어 한쪽만 바뀌는 날이 온다. 반응 안 하는 타일에
|
|
27
|
+
켜도 아무 일이 없다(`--accent` 는 `--interactive` 가 붙을 때만, 색 규칙은 `:hover` 에만 — 쉼 상태까지
|
|
28
|
+
파랗던 앱 실수 `b43fe2179` 를 코어에 들이지 않는다; 못이 그 규칙이 생기면 운다).
|
|
29
|
+
|
|
30
|
+
### (110) `TrainingBlockGrid` — 접힐 때만 고르게, **치수는 재서**
|
|
31
|
+
|
|
32
|
+
정사각 카드 다섯이 넷+하나로 접혀 마지막 한 장이 빈 판 가운데 떠 보였다(사용자 보고). 앱이 코어 치수
|
|
33
|
+
넷(창 1140 · 좌우 40 · 안쪽 90 실측 · 카드 200/190)을 **베껴 들고** 칸 수를 세어 `--run-cols` 로 주입했다
|
|
34
|
+
— 코어가 하나라도 바꾸면 어긋난다. 새 그리드는 **제 폭과 첫 카드의 폭을 잰다**(`ResizeObserver`) —
|
|
35
|
+
베낀 수가 **0** 이다. CSS 에 200·190·1140 이 안 적혀 있는 것을 못이 센다. 규칙은 앱의 못이 세어 둔 표
|
|
36
|
+
그대로(*"무조건이 아니라 개행될 때만"*): 한 줄에 다 들면 그대로, 접히면 5→3+2 · 6→3+3 · 7→4+3.
|
|
37
|
+
순수 셈 `balancedColumns`·`columnsFitting` 은 `utils` 로도 나간다. 진짜 폭으로 접히는지는 `LIVE-ONLY-CHECKS` 8번.
|
|
38
|
+
|
|
39
|
+
### (111) `TrainingTooltip.groups` — 자료를 손에 들고 주는 길
|
|
40
|
+
|
|
41
|
+
`plan` 길은 **풀에서 찾는다**. 단어 숙제 세트는 문장 풀에 없어 못 그렸고, 앱이 `tooltip-training__*`
|
|
42
|
+
클래스를 **빌려** 같은 모양을 손으로 짰다. `groups`(이름표 + `trainingData[]`)로 **같은 상자**를 쓴다 —
|
|
43
|
+
두 길이 한 모양으로 모여 그려지는 쪽은 어느 길로 왔는지 모른다. `groups` 를 주면 `plan` 은 안 본다.
|
|
44
|
+
`plan` 길은 그대로다 — 넣으며 한 번 "찾은 자료가 있어야 묶음이 선다" 로 바꿨다가 옛 못 넷이 울었다
|
|
45
|
+
(풀에 없는 항목만 든 계획에도 상자·머리글은 떠야 한다 — 타일 호버가 그 상자를 기다린다).
|
|
46
|
+
|
|
47
|
+
### 걷은 열쇠 — `training.answerLockedHint`
|
|
48
|
+
|
|
49
|
+
0.310.0 에서 기본 글줄을 걷고 열쇠만 남겼더니 앱 못(`deadI18nKeys`)이 "안 쓰는 열쇠" 로 붉었다. 코어에
|
|
50
|
+
부르는 곳 0 · 앱에 켤 자리 0 — *아직 안 쓰인 길을 미리 내 둔 것*이다. **걷는다.** 켜는 자리가 생기는 날
|
|
51
|
+
그 앱 사전에 둔다. 이 열쇠로 `t()` 를 부르던 소비자는 없다(두 저장소 0건).
|
|
52
|
+
|
|
53
|
+
## 0.310.0
|
|
54
|
+
|
|
55
|
+
### `TrainingStep.lockedHint` — **주는 곳에서만 선다, 기본값이 없다** (말귀 요청 (107), 사용자 지시)
|
|
56
|
+
|
|
57
|
+
사용자가 실행 창의 *"다 들으면 고를 수 있어요."* 를 보고 *"이거 뭐야. 누가 추가했어, 제거해"*
|
|
58
|
+
(2026-10-10). 출처는 (99) — 0.302.0 부터 잠긴 단계 바로 다음 차례에 그 말이 **기본으로** 섰고
|
|
59
|
+
`null` 을 줘야 꺼졌다. 그런데 **앱에서는 끌 길이 없었다**: 그 단계는 코어 러너(`TrainingPagePopup`
|
|
60
|
+
의 `ConfirmWithTextStep` 등)가 세워서 앱이 `lockedHint` 를 만질 자리가 없다(앱 저장소 0건).
|
|
61
|
+
|
|
62
|
+
이제 `lockedHint` 를 **준 곳에서만** 그 줄이 선다. 안 주면(또는 `null`) 아무것도 안 선다.
|
|
63
|
+
열쇠 `training.answerLockedHint` 는 남겨 두었다 — 켜고 싶은 자리는 `lockedHint={t('training.answerLockedHint')}`.
|
|
64
|
+
|
|
65
|
+
(99) 의 낭독기 쪽 까닭(단추가 진짜 `disabled` 라 초점이 안 가 까닭을 들을 길이 없다)은 그대로
|
|
66
|
+
참이다 — **주면** 여전히 `role="status"` 다. 코어가 보이지 않는 줄을 몰래 세우지는 않는다 —
|
|
67
|
+
걷으라 하신 것은 화면의 그 글줄이고, 숨긴 노드도 "누가 추가한 것" 이다. 그 길은 앱이 정한다.
|
|
68
|
+
|
|
69
|
+
못(`test/answerLockedHint.test.tsx`)을 **뒤집었다**: 여섯 단계를 다 돌려 전에는 1줄을 셌고 이제
|
|
70
|
+
**0줄**을 센다 — 누가 기본을 다시 두면 여섯이 한꺼번에 운다. 주면 서고 · 바로 다음 차례에만 ·
|
|
71
|
+
열리면 사라지고 · 단추는 여전히 잠겨 있는 것은 그대로 지킨다. `LIVE-ONLY-CHECKS` 5번도 같은
|
|
72
|
+
자로 **반대 값**(0)을 기다린다.
|
|
73
|
+
|
|
74
|
+
### 그리고 **다섯 겉싸개가 `lockedHint` 를 안 넘기고 있었다** — (107) 을 하다 찾음
|
|
75
|
+
|
|
76
|
+
기본을 끄고 "주는 곳에서만" 을 못으로 세우려고 겉싸개(`TrainingStepConfirmWithText`)에 `lockedHint`
|
|
77
|
+
를 줘 봤더니 **아무 데도 안 닿았다.** 다섯 겉싸개(`ConfirmWithText` · `Confirm` · `Card` · `CardOrder` ·
|
|
78
|
+
`OrderList`) 모두 그 prop 을 받지도 넘기지도 않았다 — (99) 때 못이 맨 `TrainingStep` 에만 줘 보고
|
|
79
|
+
끝나서 **여섯 중 하나만** 열린 문이었다. 기본이 켜져 있던 동안은 아무도 몰랐다(안 줘도 섰으니까).
|
|
80
|
+
기본을 끄는 순간 *"주는 곳에서만 선다"* 가 *"아무 데서도 못 세운다"* 가 될 자리였다.
|
|
81
|
+
|
|
82
|
+
다섯 겉싸개가 이제 `lockedHint?: ReactNode | null` 을 받아 그대로 넘긴다. 못은 같은 여섯 목록으로
|
|
83
|
+
**안 주면 0줄 · 주면 1줄** 을 둘 다 센다. 둘 다 깨뜨려 확인했다(기본을 다시 두면 여섯이 울고, 겉싸개
|
|
84
|
+
하나의 넘김을 걷으면 그 하나가 운다).
|
|
85
|
+
|
|
86
|
+
> **기본값은 그것을 끌 자리가 있는지 먼저 센다.** (99) 는 자리를 여섯으로 세어 고쳤지만, 그
|
|
87
|
+
> 말을 **끌 수 있는 자리가 0** 인 것은 안 셌다 — 그리고 **켤 수 있는 자리도 하나**였다. 둘 다
|
|
88
|
+
> 기본값이 켜져 있어서 안 보였다. 청한 쪽이 아니라 쓰는 쪽이 보고 걷으라 했다.
|
|
89
|
+
|
|
10
90
|
## 0.309.0
|
|
11
91
|
|
|
12
92
|
### `CountTile` — **반응하는 타일이면 반응하는 것처럼 보인다** (말귀 요청 (105))
|