@ihabdevteam/core 0.231.0 → 0.232.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 +44 -0
- package/dist/components.cjs.js +179 -179
- package/dist/components.esm.css +1 -1
- package/dist/hooks.cjs.js +3 -3
- package/dist/i18n.cjs.js +3 -3
- package/dist/ihabdevteam-core.cjs.js +184 -184
- package/dist/ihabdevteam-core.d.ts +47 -6
- package/dist/packages/core/src/components/TextField.css +34 -0
- package/dist/packages/core/src/components/TextField.d.ts +11 -1
- package/dist/packages/core/src/components/TextField.js +8 -3
- package/dist/packages/core/src/components/useComboboxSuggestions.d.ts +35 -4
- package/dist/packages/core/src/components/useComboboxSuggestions.js +27 -11
- package/dist/packages/core/src/components.d.ts +1 -1
- package/dist/packages/core/src/i18n/locales/en.json +1 -0
- package/dist/packages/core/src/i18n/locales/ko.json +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,50 @@ All notable changes to this project will be documented in this file.
|
|
|
7
7
|
> 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
|
|
8
8
|
> 제 이야기를 못 찾는다.
|
|
9
9
|
|
|
10
|
+
## 0.232.0
|
|
11
|
+
|
|
12
|
+
### `TextField` 의 자동완성이 **글자 하나보다 두꺼운 줄**을 받는다 (말귀 요청 ㊻)
|
|
13
|
+
|
|
14
|
+
코어는 콤보박스를 **이미 할 줄 안다** — `role="combobox"` · `aria-autocomplete` · `aria-haspopup` ·
|
|
15
|
+
`aria-expanded` · `aria-controls` · `aria-activedescendant` 를 스스로 셈해 붙이고, 목록을 포털로
|
|
16
|
+
그리고, ↓↑ 와 한글 조합 가리기까지 쥔다. 그런데 `suggestions` 가 `string[]` 뿐이라 **담기지
|
|
17
|
+
않는 자리**가 있었다: 줄 하나가 `이름 + 갈래` 이고, 거르는 셈이 초성이며, 고르는 것이 '값
|
|
18
|
+
채우기' 가 아니라 '어디로 가기' 인 화면 찾기.
|
|
19
|
+
|
|
20
|
+
그래서 말귀는 `querySelector('input')` 으로 `role`·`aria-*` 를 손수 붙이고 목록·줄·↓↑·조합
|
|
21
|
+
가리기를 **통째로 다시 적고** 있었다. 코어가 쥔 것을 못 쓰고 베끼는 꼴이다.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
suggestions?: (string | TextFieldSuggestion)[] // { id, label, hint? }
|
|
25
|
+
filterSuggestions?: false | ((후보, 글) => 후보) // false 면 안 거른다
|
|
26
|
+
onSelectSuggestion?: (item) => void // 주면 칸에 값을 안 넣는다
|
|
27
|
+
autoActiveFirst?: boolean // 열자마자 첫 줄을 짚는다
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- **`hint`** 는 줄 오른쪽에 흐리게 서는 갈래 글자(`숙제` · `나의 단어표`). 좁으면 **이름이 먼저
|
|
31
|
+
줄고 갈래는 안 줄인다** — 같은 이름 둘을 가리는 것이 그 글자가 선 까닭이라 잘리면 뜻이 없다.
|
|
32
|
+
- **`filterSuggestions: false`** 는 빈 값에서도 그대로 낸다. 부르는 쪽이 이미 고른 것을 여기서
|
|
33
|
+
또 비우면 그 셈을 버리는 꼴이다. 초성 찾기(`matchesChoseongSearch`, 이 꾸러미의 `utils`)처럼
|
|
34
|
+
셈이 다른 자리에 쓴다.
|
|
35
|
+
- **`autoActiveFirst`** 는 `onSelectSuggestion` 과 **안 묶었다.** 고르는 것이 가기인데도 친
|
|
36
|
+
글자를 그대로 쓰고 싶은 칸이 있다(검색어를 그대로 보내는 자리) — 서로 다른 결정이다.
|
|
37
|
+
|
|
38
|
+
**기존 쓰임은 그대로다.** `string[]` 을 주면 전과 한 글자도 안 달라진다. `useComboboxSuggestions`
|
|
39
|
+
는 넘긴 꼴을 그대로 돌려주는 **제네릭**이 되어, `filtered` 로 목록을 그리던 코드도 안 바뀐다.
|
|
40
|
+
|
|
41
|
+
### 고를 것이 없다는 말을 **들려준다**
|
|
42
|
+
|
|
43
|
+
전에는 걸리는 후보가 0 이면 목록을 안 그리고 끝이었다. 눈으로는 "아무것도 안 떴다" 가
|
|
44
|
+
보이지만 **낭독기로는 아무 일도 안 일어난 것과 못 가린다** — 쳤는데 반응이 없는지, 맞는 것이
|
|
45
|
+
없는지를 모른다. `role="status"` 한 줄이 `맞는 항목이 없습니다` 를 알린다(영어도 있다).
|
|
46
|
+
|
|
47
|
+
**칸은 늘 서 있고 글만 드나든다.** 영역째 세웠다 치우면 낭독기가 첫 글을 놓친다 — 사는 영역은
|
|
48
|
+
미리 있어야 바뀐 것을 읽는다. `suggestions` 를 안 쓰는 칸에는 아예 안 선다.
|
|
49
|
+
|
|
50
|
+
### 새 공개 타입 — `TextFieldSuggestion`
|
|
51
|
+
|
|
52
|
+
`import { type TextFieldSuggestion } from '@ihabdevteam/core/components'`.
|
|
53
|
+
|
|
10
54
|
## 0.231.0
|
|
11
55
|
|
|
12
56
|
### `TrainingBlockButton` 의 '더보기' 가 **그 칸 이름**을 읽는다 (말귀 요청 ㊺)
|