@ihabdevteam/core 0.351.0 → 0.352.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,62 @@ All notable changes to this project will be documented in this file.
7
7
  > 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
8
8
  > 제 이야기를 못 찾는다.
9
9
 
10
+ ## 0.352.0 — 알림 문자 칸 · 문자 바이트를 재는 자 (314)
11
+
12
+ 사장님 지시(2026-10-21, 말귀 청 (314)): *"sms 도 이메일처럼 디자인 시스템 페이지에서
13
+ 카테고리 추가해서 항목별로 볼 수 있도록"*.
14
+
15
+ ### 왜 — 흩어진 글은 어긋나도 안 보인다
16
+
17
+ 말귀가 보내는 문자 글이 **여섯 파일에 흩어져** 있었다. 그래서 방문 알림만 머리말이
18
+ `[기관명]` 으로 다른 것을(나머지 일곱은 `[말귀]`) **다음 날에야** 알았다. 한자리에 모으면
19
+ 그 자리에서 보인다 — 지금은 **열 통이 모두 `[말귀]`** 다.
20
+
21
+ ### 재는 자는 코어가 — 같은 셈이 두 벌이 되지 않게
22
+
23
+ ```
24
+ eucKrBytes(text) 한글 2 · ASCII 1 · 줄바꿈 2
25
+ smsTypeFor(text) 'SMS' | 'LMS'
26
+ measureSmsText(text) { bytes, type, limit, over }
27
+ SMS_BYTE_LIMIT 90 · LMS_BYTE_LIMIT 2000
28
+ ```
29
+
30
+ **90바이트**가 단문(18원)과 장문(45원)을 가르는데 한글이 2바이트라 **글자 수로는 가늠이
31
+ 안 된다**(45자가 90바이트). 말귀가 같은 셈을 들고 있어 **한 결정이 두 곳에 적힐 자리**였다 —
32
+ 그쪽이 제 것을 걷고 이것을 쓴다. 그래서 **뜻이 한 글자도 다르면 안 되고**, 못이 그쪽 값을
33
+ 그대로 박았다(`test/smsBytes.test.ts`).
34
+
35
+ > 참 EUC-KR 인코더가 아니라 **그 자가 재는 값을 흉내 낸 셈**이다. `\r\n` 이 든 글은 4로
36
+ > **크게** 잡는데, 크게 잡는 쪽은 안전하다(단문에 들 것을 장문으로 보낼 뿐 잘리지 않는다).
37
+ > 두 자리 다 말귀가 쓰던 셈 그대로이고, 고치려면 **양쪽을 같은 날 고친다.**
38
+
39
+ ### 받아서 그리는 블록 — `NotifyTextPreview`
40
+
41
+ 문자 본문과 알림톡 본문을 나란히 두고 문자 쪽에 바이트와 갈래를 적는다. 한계를 넘으면
42
+ **색만이 아니라 글로도** 말한다(`한계 넘음`).
43
+
44
+ **글은 쓰는 쪽이 넘긴다.** 코어가 문안을 들고 있으면 반드시 낡으므로, 코어가 쥐는 것은
45
+ 재는 자와 그리는 꼴뿐이다. 곁말은 `meta` 로 **이름·값 짝**을 받는다 — `to`·`when` 처럼
46
+ 칸을 박으면 *"보내는 함수"* 나 *"알림톡 환경변수"* 를 적을 자리가 없다.
47
+
48
+ ### 놀이터 — eMail 과 같은 꼴
49
+
50
+ 메뉴에 **SMS** 묶음을 더하고 **갈래마다 한 줄**(열 통). `Components` 묶음 **밖**에 둔다 —
51
+ 코어가 그리는 조각이 아니라 앱이 보내는 글이고, 섞으면 *"이것도 코어가 그린다"* 로 읽힌다.
52
+ 한 쪽에 쌓지 않는 것도 메일 쪽에서 배운 것이다(쌓으면 메뉴에 한 줄만 서서 열어 봐야 안다).
53
+
54
+ 열 통이 지금은 다 단문인데 **`인증번호 (보호자 동의)` 가 89바이트**로 한 칸 남았다 —
55
+ 글을 한 자만 늘려도 값이 두 배가 된다. 그 수가 쪽마다 적힌다.
56
+
57
+ ### 세우며 겪은 것
58
+
59
+ - **없는 CSS 토큰**(`--color-lightWhite`)을 적었다. 없는 변수는 **조용히 아무 꼴도 안 낸다** —
60
+ 쓰는 변수 여섯을 `tokens.css` 와 대조해 잡았다. 지난 판의 `--font-label-m` 과 같은 흠이다.
61
+ - 놀이터 조각들의 프롭을 **짐작으로** 적었다(`PageParagraph.text`·`CodeBox.code`·`ApiMeta.name`).
62
+ 넷이 타입에서 걸렸고, **참 꼴을 읽고** 고쳤다.
63
+ - `headingFamily` 못이 박아 둔 `<h4>` 를 잡았다 — 담는 것 안에 서는 블록이라 `titleLevel` 을
64
+ 열었다(`ChartSection` 과 같은 규약).
65
+
10
66
  ## 0.351.0 — 체크박스를 누르면 폰에서 창이 맨 위로 튀던 것
11
67
 
12
68
  ### 체크박스를 누르면 폰에서 창이 맨 위로 튀던 것