@ihabdevteam/core 0.351.0 → 0.353.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 +107 -0
- package/dist/components.cjs.js +179 -178
- package/dist/components.esm.css +1 -1
- package/dist/hooks.cjs.js +1 -1
- package/dist/i18n.cjs.js +1 -1
- package/dist/ihabdevteam-core.cjs.js +188 -187
- package/dist/ihabdevteam-core.d.ts +108 -1
- package/dist/packages/core/src/components/NotifyTextPreview.css +93 -0
- package/dist/packages/core/src/components/NotifyTextPreview.d.ts +65 -0
- package/dist/packages/core/src/components/NotifyTextPreview.js +15 -0
- package/dist/packages/core/src/components.d.ts +2 -0
- package/dist/packages/core/src/components.js +3 -0
- package/dist/packages/core/src/utils/smsBytes.d.ts +59 -0
- package/dist/packages/core/src/utils/smsBytes.js +69 -0
- package/dist/packages/core/src/utils.d.ts +2 -0
- package/dist/packages/core/src/utils.js +3 -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 +5 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,113 @@ All notable changes to this project will be documented in this file.
|
|
|
7
7
|
> 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
|
|
8
8
|
> 제 이야기를 못 찾는다.
|
|
9
9
|
|
|
10
|
+
## 0.353.0 — 알림 글 열셋을 채우고, **낡으면 우는 못**을 세운다 · 칸을 친다
|
|
11
|
+
|
|
12
|
+
### 하루 만에 낡았다
|
|
13
|
+
|
|
14
|
+
0.352.0 에서 놀이터에 SMS 칸을 세웠는데 **다음 날 낡았다.** 앱이 글을 늘렸고(SMS 셋 ·
|
|
15
|
+
메일 열) 놀이터는 그대로였는데 **아무것도 안 빨개져서** 사장님이 화면에서 발견하셨다.
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
앱 정본 SMS 13 · MAIL 15
|
|
19
|
+
놀이터 SMS 10 · MAIL 5
|
|
20
|
+
견주는 못 없음
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
(314) 에 말귀가 *"코어가 글을 들고 있으면 반드시 낡습니다"* 라고 적어 둔 그 자리다.
|
|
24
|
+
|
|
25
|
+
### 채웠다 — 손이 아니라 앱 파일에서 뽑아서
|
|
26
|
+
|
|
27
|
+
SMS 셋(환불 완료·환불 알림 관리자·토스 대시보드) · 메일 열(인증번호 다섯 · 연결 요청 ·
|
|
28
|
+
연결 결과 · 숙제 · 방문 · 보호자 동의 확인). 베끼기를 손으로 하면 틀리므로 앱의
|
|
29
|
+
`SMS_SAMPLES`·`MAIL_SAMPLES` 에서 **뽑아 지었다**.
|
|
30
|
+
|
|
31
|
+
**「되는 것」 과 「준비만 된 것」을 가른다** — 여덟은 아직 그 길로 안 나간다(폼만 마련).
|
|
32
|
+
그 사실을 `언제`·`보내는 자리` 에 그대로 적는다. 안 적으면 보는 사람이 **이미 나가는 줄 안다.**
|
|
33
|
+
|
|
34
|
+
### 낡으면 운다 — `test/notifyFormsNotStale.test.ts`
|
|
35
|
+
|
|
36
|
+
베낀 것은 낡는다. 막을 수 없으면 **낡았다는 것을 세게** 한다.
|
|
37
|
+
|
|
38
|
+
- 앱에 있는데 놀이터에 없으면 운다 · 놀이터에만 있어도 운다 · 맞춘 표가 낡아도 운다.
|
|
39
|
+
- **이웃이 없으면 "안 쟀다" 고 적는다** — CI 처럼 앱 저장소가 없는 자리에서 조용히 초록을
|
|
40
|
+
내면 가장 조용할 때가 가장 믿을 수 없을 때가 된다.
|
|
41
|
+
- 앱 코드를 **돌리지 않고 글로 읽는다**(열쇠만 필요하다). 글로 읽는 자는 빗나갈 수 있어
|
|
42
|
+
*"참으로 여럿을 읽었나"* 를 **먼저** 센다 — 0 개면 *"빠진 것 없음"* 으로 조용히 지나간다.
|
|
43
|
+
세 가지로 깨 보고 셋 다 붉어졌다.
|
|
44
|
+
|
|
45
|
+
### 메뉴 이름 겹침을 **묶음 안에서** 따진다
|
|
46
|
+
|
|
47
|
+
같은 사건을 문자와 메일 두 길로 보내게 되면서 `환불 완료 (본인)` 이 두 묶음에 서는 것이
|
|
48
|
+
바른 꼴이 됐다. 전에는 메뉴 **전체**에서 하나뿐이어야 해서 그것까지 겹침으로 셌다 —
|
|
49
|
+
사이드바는 묶음 머리를 **검색 중에도** 함께 보이므로 보는 사람에게는 안 겹친다.
|
|
50
|
+
한 묶음 안에서 겹치는 것은 그대로 운다(깨 보고 확인).
|
|
51
|
+
|
|
52
|
+
### 칸을 친다 (사장님이 화면에서 짚으심)
|
|
53
|
+
|
|
54
|
+
- **곁말이 줄끼리 안 맞았다.** `<dl>` 안에서 짝을 묶으려면 `<div>` 가 필요한데 거기에
|
|
55
|
+
grid 를 주면 **줄마다 이름 칸 너비를 따로** 센다. `display: contents` 로 그 칸을
|
|
56
|
+
레이아웃에서 없애니 맞았다(잰 값: 여섯 줄의 `dt`·`dd` 왼쪽이 한 값).
|
|
57
|
+
- **글칸에 테두리가 없었다** — 바탕색만으로는 칸으로 안 읽힌다.
|
|
58
|
+
- **한글이 낱말 가운데서 끊겼다**(`주/세요`). `word-break: keep-all` 로 바꾸고, 주소처럼
|
|
59
|
+
띄어쓰기 없는 긴 글만 `overflow-wrap: anywhere` 로 끊는다.
|
|
60
|
+
|
|
61
|
+
## 0.352.0 — 알림 문자 칸 · 문자 바이트를 재는 자 (314)
|
|
62
|
+
|
|
63
|
+
사장님 지시(2026-10-21, 말귀 청 (314)): *"sms 도 이메일처럼 디자인 시스템 페이지에서
|
|
64
|
+
카테고리 추가해서 항목별로 볼 수 있도록"*.
|
|
65
|
+
|
|
66
|
+
### 왜 — 흩어진 글은 어긋나도 안 보인다
|
|
67
|
+
|
|
68
|
+
말귀가 보내는 문자 글이 **여섯 파일에 흩어져** 있었다. 그래서 방문 알림만 머리말이
|
|
69
|
+
`[기관명]` 으로 다른 것을(나머지 일곱은 `[말귀]`) **다음 날에야** 알았다. 한자리에 모으면
|
|
70
|
+
그 자리에서 보인다 — 지금은 **열 통이 모두 `[말귀]`** 다.
|
|
71
|
+
|
|
72
|
+
### 재는 자는 코어가 — 같은 셈이 두 벌이 되지 않게
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
eucKrBytes(text) 한글 2 · ASCII 1 · 줄바꿈 2
|
|
76
|
+
smsTypeFor(text) 'SMS' | 'LMS'
|
|
77
|
+
measureSmsText(text) { bytes, type, limit, over }
|
|
78
|
+
SMS_BYTE_LIMIT 90 · LMS_BYTE_LIMIT 2000
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**90바이트**가 단문(18원)과 장문(45원)을 가르는데 한글이 2바이트라 **글자 수로는 가늠이
|
|
82
|
+
안 된다**(45자가 90바이트). 말귀가 같은 셈을 들고 있어 **한 결정이 두 곳에 적힐 자리**였다 —
|
|
83
|
+
그쪽이 제 것을 걷고 이것을 쓴다. 그래서 **뜻이 한 글자도 다르면 안 되고**, 못이 그쪽 값을
|
|
84
|
+
그대로 박았다(`test/smsBytes.test.ts`).
|
|
85
|
+
|
|
86
|
+
> 참 EUC-KR 인코더가 아니라 **그 자가 재는 값을 흉내 낸 셈**이다. `\r\n` 이 든 글은 4로
|
|
87
|
+
> **크게** 잡는데, 크게 잡는 쪽은 안전하다(단문에 들 것을 장문으로 보낼 뿐 잘리지 않는다).
|
|
88
|
+
> 두 자리 다 말귀가 쓰던 셈 그대로이고, 고치려면 **양쪽을 같은 날 고친다.**
|
|
89
|
+
|
|
90
|
+
### 받아서 그리는 블록 — `NotifyTextPreview`
|
|
91
|
+
|
|
92
|
+
문자 본문과 알림톡 본문을 나란히 두고 문자 쪽에 바이트와 갈래를 적는다. 한계를 넘으면
|
|
93
|
+
**색만이 아니라 글로도** 말한다(`한계 넘음`).
|
|
94
|
+
|
|
95
|
+
**글은 쓰는 쪽이 넘긴다.** 코어가 문안을 들고 있으면 반드시 낡으므로, 코어가 쥐는 것은
|
|
96
|
+
재는 자와 그리는 꼴뿐이다. 곁말은 `meta` 로 **이름·값 짝**을 받는다 — `to`·`when` 처럼
|
|
97
|
+
칸을 박으면 *"보내는 함수"* 나 *"알림톡 환경변수"* 를 적을 자리가 없다.
|
|
98
|
+
|
|
99
|
+
### 놀이터 — eMail 과 같은 꼴
|
|
100
|
+
|
|
101
|
+
메뉴에 **SMS** 묶음을 더하고 **갈래마다 한 줄**(열 통). `Components` 묶음 **밖**에 둔다 —
|
|
102
|
+
코어가 그리는 조각이 아니라 앱이 보내는 글이고, 섞으면 *"이것도 코어가 그린다"* 로 읽힌다.
|
|
103
|
+
한 쪽에 쌓지 않는 것도 메일 쪽에서 배운 것이다(쌓으면 메뉴에 한 줄만 서서 열어 봐야 안다).
|
|
104
|
+
|
|
105
|
+
열 통이 지금은 다 단문인데 **`인증번호 (보호자 동의)` 가 89바이트**로 한 칸 남았다 —
|
|
106
|
+
글을 한 자만 늘려도 값이 두 배가 된다. 그 수가 쪽마다 적힌다.
|
|
107
|
+
|
|
108
|
+
### 세우며 겪은 것
|
|
109
|
+
|
|
110
|
+
- **없는 CSS 토큰**(`--color-lightWhite`)을 적었다. 없는 변수는 **조용히 아무 꼴도 안 낸다** —
|
|
111
|
+
쓰는 변수 여섯을 `tokens.css` 와 대조해 잡았다. 지난 판의 `--font-label-m` 과 같은 흠이다.
|
|
112
|
+
- 놀이터 조각들의 프롭을 **짐작으로** 적었다(`PageParagraph.text`·`CodeBox.code`·`ApiMeta.name`).
|
|
113
|
+
넷이 타입에서 걸렸고, **참 꼴을 읽고** 고쳤다.
|
|
114
|
+
- `headingFamily` 못이 박아 둔 `<h4>` 를 잡았다 — 담는 것 안에 서는 블록이라 `titleLevel` 을
|
|
115
|
+
열었다(`ChartSection` 과 같은 규약).
|
|
116
|
+
|
|
10
117
|
## 0.351.0 — 체크박스를 누르면 폰에서 창이 맨 위로 튀던 것
|
|
11
118
|
|
|
12
119
|
### 체크박스를 누르면 폰에서 창이 맨 위로 튀던 것
|