@ihabdevteam/core 0.149.0 → 0.151.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 +60 -0
- package/dist/components.cjs.js +199 -186
- package/dist/components.esm.css +5 -5
- package/dist/hooks.cjs.js +5 -1
- package/dist/i18n.cjs.js +3 -3
- package/dist/ihabdevteam-core-tokens.css +1 -1
- package/dist/ihabdevteam-core.cjs.js +200 -187
- package/dist/ihabdevteam-core.css +1 -1
- package/dist/ihabdevteam-core.d.ts +407 -69
- package/dist/packages/core/src/components/Accordion.d.ts +6 -0
- package/dist/packages/core/src/components/Accordion.js +5 -2
- package/dist/packages/core/src/components/Alert.d.ts +7 -1
- package/dist/packages/core/src/components/Alert.js +12 -3
- package/dist/packages/core/src/components/BarChart.js +7 -2
- package/dist/packages/core/src/components/Board.d.ts +5 -2
- package/dist/packages/core/src/components/Board.js +9 -3
- package/dist/packages/core/src/components/BottomNav.js +5 -4
- package/dist/packages/core/src/components/Breadcrumb.css +9 -0
- package/dist/packages/core/src/components/Breadcrumb.d.ts +12 -1
- package/dist/packages/core/src/components/Breadcrumb.js +8 -2
- package/dist/packages/core/src/components/BulkBar.css +2 -0
- package/dist/packages/core/src/components/BulkBar.js +21 -2
- package/dist/packages/core/src/components/Button.d.ts +12 -2
- package/dist/packages/core/src/components/Button.js +70 -13
- package/dist/packages/core/src/components/Calendar.d.ts +6 -1
- package/dist/packages/core/src/components/Calendar.js +3 -3
- package/dist/packages/core/src/components/DatePicker.d.ts +7 -1
- package/dist/packages/core/src/components/DatePicker.js +25 -15
- package/dist/packages/core/src/components/Dropdown.d.ts +1 -0
- package/dist/packages/core/src/components/Dropdown.js +7 -5
- package/dist/packages/core/src/components/Effect/EffectPartyPopperHost.d.ts +12 -1
- package/dist/packages/core/src/components/Effect/EffectPartyPopperHost.js +25 -8
- package/dist/packages/core/src/components/EmptyState.d.ts +5 -1
- package/dist/packages/core/src/components/EmptyState.js +4 -1
- package/dist/packages/core/src/components/ErrorState.d.ts +5 -2
- package/dist/packages/core/src/components/ErrorState.js +3 -1
- package/dist/packages/core/src/components/FileUpload.d.ts +9 -1
- package/dist/packages/core/src/components/FileUpload.js +8 -2
- package/dist/packages/core/src/components/FilterSectionInfo.js +14 -2
- package/dist/packages/core/src/components/Header.js +8 -5
- package/dist/packages/core/src/components/HearingDeviceInfo.js +2 -1
- package/dist/packages/core/src/components/Icon.d.ts +2 -1
- package/dist/packages/core/src/components/Icon.js +4 -1
- package/dist/packages/core/src/components/Loader.css +28 -0
- package/dist/packages/core/src/components/Loader.d.ts +5 -1
- package/dist/packages/core/src/components/Loader.js +4 -2
- package/dist/packages/core/src/components/NoticeBox.d.ts +1 -1
- package/dist/packages/core/src/components/NoticeBox.js +15 -6
- package/dist/packages/core/src/components/PanelRow.js +2 -1
- package/dist/packages/core/src/components/PassCard/PassCard.d.ts +8 -2
- package/dist/packages/core/src/components/PassCard/PassCard.js +25 -10
- package/dist/packages/core/src/components/PassCard/passCardProduct.d.ts +1 -1
- package/dist/packages/core/src/components/PassCard/passCardProduct.js +11 -2
- package/dist/packages/core/src/components/Popup/ConfirmPopup.d.ts +11 -2
- package/dist/packages/core/src/components/Popup/ConfirmPopup.js +18 -3
- package/dist/packages/core/src/components/Popup/DeviceSideTable.js +10 -8
- package/dist/packages/core/src/components/Popup/ListPopup.js +6 -6
- package/dist/packages/core/src/components/Popup/LoadTablePopup.css +7 -0
- package/dist/packages/core/src/components/Popup/LoadTablePopup.js +27 -5
- package/dist/packages/core/src/components/Popup/Popup.d.ts +8 -0
- package/dist/packages/core/src/components/Popup/Popup.js +6 -3
- package/dist/packages/core/src/components/Popup/SaveTablePopup.d.ts +5 -1
- package/dist/packages/core/src/components/Popup/TrainingResultPopup.css +3 -0
- package/dist/packages/core/src/components/Popup/TrainingResultPopup.d.ts +5 -0
- package/dist/packages/core/src/components/Popup/TrainingResultPopup.js +10 -4
- package/dist/packages/core/src/components/Popup/WordDataUpdatePopup.css +9 -0
- package/dist/packages/core/src/components/ProgressIndicator.css +5 -0
- package/dist/packages/core/src/components/ProgressIndicator.d.ts +3 -1
- package/dist/packages/core/src/components/ProgressIndicator.js +5 -3
- package/dist/packages/core/src/components/PromoBannerBg/promoBannerBg.d.ts +4 -1
- package/dist/packages/core/src/components/PromoBannerBg/promoBannerBg.js +27 -15
- package/dist/packages/core/src/components/Rating.d.ts +8 -2
- package/dist/packages/core/src/components/Rating.js +22 -8
- package/dist/packages/core/src/components/Report/ReportDocument.d.ts +10 -7
- package/dist/packages/core/src/components/Report/ReportDocument.js +39 -13
- package/dist/packages/core/src/components/RingChart.d.ts +1 -1
- package/dist/packages/core/src/components/RingChart.js +1 -1
- package/dist/packages/core/src/components/SegmentedControl.d.ts +4 -0
- package/dist/packages/core/src/components/SegmentedControl.js +9 -1
- package/dist/packages/core/src/components/ShortcutBadge.css +16 -1
- package/dist/packages/core/src/components/ShortcutBadge.d.ts +1 -0
- package/dist/packages/core/src/components/SideNav.js +8 -2
- package/dist/packages/core/src/components/SummaryStrip.d.ts +1 -1
- package/dist/packages/core/src/components/SummaryStrip.js +2 -2
- package/dist/packages/core/src/components/Table.d.ts +1 -1
- package/dist/packages/core/src/components/Table.js +4 -1
- package/dist/packages/core/src/components/Tabs.d.ts +1 -0
- package/dist/packages/core/src/components/Tabs.js +4 -1
- package/dist/packages/core/src/components/TextField.css +5 -6
- package/dist/packages/core/src/components/TextField.js +46 -3
- package/dist/packages/core/src/components/Toast.js +16 -2
- package/dist/packages/core/src/components/Tooltip/Tooltip.css +3 -1
- package/dist/packages/core/src/components/Tooltip/Tooltip.js +5 -2
- package/dist/packages/core/src/components/Tooltip/tooltipConstants.d.ts +10 -2
- package/dist/packages/core/src/components/Tooltip/tooltipConstants.js +10 -2
- package/dist/packages/core/src/components/TopBanner.d.ts +1 -1
- package/dist/packages/core/src/components/TopBanner.js +66 -8
- package/dist/packages/core/src/components/Training/AudioPlayerWaveForm.d.ts +1 -0
- package/dist/packages/core/src/components/Training/AudioPlayerWaveForm.js +65 -15
- package/dist/packages/core/src/components/Training/NoisePlayerContext.d.ts +3 -2
- package/dist/packages/core/src/components/Training/NoisePlayerContext.js +10 -4
- package/dist/packages/core/src/components/Training/TrainingBlockButton.css +7 -0
- package/dist/packages/core/src/components/Training/TrainingBlockButton.js +3 -1
- package/dist/packages/core/src/components/Training/TrainingPagePopup.d.ts +18 -5
- package/dist/packages/core/src/components/Training/TrainingPagePopup.js +93 -28
- package/dist/packages/core/src/components/Training/TrainingPagePopupBottom.d.ts +1 -0
- package/dist/packages/core/src/components/Training/TrainingPagePopupBottom.js +16 -3
- package/dist/packages/core/src/components/Training/TrainingStepAudioPlayer.js +29 -11
- package/dist/packages/core/src/components/Training/TrainingStepCard.js +19 -3
- package/dist/packages/core/src/components/Training/TrainingStepTitle.js +15 -1
- package/dist/packages/core/src/components/Training/TrainingWordCard.css +16 -0
- package/dist/packages/core/src/components/Training/TrainingWordCard.d.ts +6 -0
- package/dist/packages/core/src/components/Training/TrainingWordCard.js +7 -2
- package/dist/packages/core/src/components/Training/trainingBlockButtonTypes.d.ts +2 -2
- package/dist/packages/core/src/components/Training/trainingMissStats.d.ts +10 -0
- package/dist/packages/core/src/components/Training/trainingMissStats.js +19 -1
- package/dist/packages/core/src/components/Training/useFloatingFocus.d.ts +13 -0
- package/dist/packages/core/src/components/Training/useFloatingFocus.js +59 -0
- package/dist/packages/core/src/components/Training/useNoiseFade.js +20 -11
- package/dist/packages/core/src/components/Training/useProgressTicker.d.ts +0 -18
- package/dist/packages/core/src/components/Training/useProgressTicker.js +59 -14
- package/dist/packages/core/src/components/Training/useTTSPlayback.d.ts +1 -1
- package/dist/packages/core/src/components/Training/useTTSPlayback.js +56 -25
- package/dist/packages/core/src/components/Training/useWaveReady.d.ts +4 -1
- package/dist/packages/core/src/components/Training/useWaveReady.js +17 -8
- package/dist/packages/core/src/components/UpdateAlert.css +4 -2
- package/dist/packages/core/src/components/UpdateAlert.d.ts +3 -1
- package/dist/packages/core/src/components/UpdateAlert.js +21 -1
- package/dist/packages/core/src/components/Word/PhonemeSelectBlock.d.ts +2 -0
- package/dist/packages/core/src/components/Word/PhonemeSelectBlock.js +12 -4
- package/dist/packages/core/src/components/Word/WordSearchResultBlock.d.ts +6 -0
- package/dist/packages/core/src/components/Word/WordSearchResultBlock.js +26 -13
- package/dist/packages/core/src/components/Word/WordTableBlock.js +24 -21
- package/dist/packages/core/src/components/Word/WordTableThumbnail.js +1 -1
- package/dist/packages/core/src/components/Word/useWordTableDisplaySettings.js +7 -10
- package/dist/packages/core/src/components/Word/useWordTablePrint.d.ts +1 -1
- package/dist/packages/core/src/components/Word/useWordTablePrint.js +9 -3
- package/dist/packages/core/src/components/Word/wordScoreStats.d.ts +14 -1
- package/dist/packages/core/src/components/Word/wordScoreStats.js +7 -3
- package/dist/packages/core/src/components/Word/wordTablePrint.js +15 -3
- package/dist/packages/core/src/components/Word/wordTableReview.d.ts +58 -1
- package/dist/packages/core/src/components/Word/wordTableReview.js +75 -17
- package/dist/packages/core/src/components/Word/wordTableSettings.d.ts +9 -0
- package/dist/packages/core/src/components/Word/wordTableSettings.js +11 -0
- package/dist/packages/core/src/components/WordTable.css +10 -0
- package/dist/packages/core/src/components/WordTable.js +39 -26
- package/dist/packages/core/src/components/barChartTypes.d.ts +2 -2
- package/dist/packages/core/src/components/buttonTypes.d.ts +8 -0
- package/dist/packages/core/src/components/updateAlertStack.d.ts +2 -0
- package/dist/packages/core/src/components/updateAlertStack.js +68 -0
- package/dist/packages/core/src/components/useCalendarMonth.d.ts +4 -1
- package/dist/packages/core/src/components/useCalendarMonth.js +6 -3
- package/dist/packages/core/src/components/useComboboxSuggestions.d.ts +7 -0
- package/dist/packages/core/src/components/useComboboxSuggestions.js +21 -2
- package/dist/packages/core/src/components/wordTableLayout.d.ts +4 -0
- package/dist/packages/core/src/components/wordTableLayout.js +6 -0
- package/dist/packages/core/src/components.d.ts +2 -1
- package/dist/packages/core/src/components.js +1 -1
- package/dist/packages/core/src/hooks/bodyScrollLock.js +8 -2
- package/dist/packages/core/src/hooks/focusReturn.d.ts +12 -0
- package/dist/packages/core/src/hooks/focusReturn.js +49 -0
- package/dist/packages/core/src/hooks/touchToggle.d.ts +22 -0
- package/dist/packages/core/src/hooks/touchToggle.js +114 -0
- package/dist/packages/core/src/hooks/useAnchoredMenu.d.ts +12 -3
- package/dist/packages/core/src/hooks/useAnchoredMenu.js +37 -3
- package/dist/packages/core/src/hooks/useDailyTrainingSelection.d.ts +4 -2
- package/dist/packages/core/src/hooks/useDailyTrainingSelection.js +23 -11
- package/dist/packages/core/src/hooks/useIcon.js +29 -5
- package/dist/packages/core/src/hooks/useLucideIcon.d.ts +4 -0
- package/dist/packages/core/src/hooks/useLucideIcon.js +4 -0
- package/dist/packages/core/src/hooks/usePendingPress.d.ts +9 -0
- package/dist/packages/core/src/hooks/usePendingPress.js +26 -0
- package/dist/packages/core/src/hooks/usePrefersReducedMotion.d.ts +15 -0
- package/dist/packages/core/src/hooks/usePrefersReducedMotion.js +26 -0
- package/dist/packages/core/src/hooks/useRelativeDay.d.ts +2 -2
- package/dist/packages/core/src/hooks/useRelativeDay.js +12 -5
- package/dist/packages/core/src/hooks/useTablePaging.d.ts +27 -2
- package/dist/packages/core/src/hooks/useTablePaging.js +37 -5
- package/dist/packages/core/src/hooks/useWordAttributeFilter.d.ts +7 -0
- package/dist/packages/core/src/hooks/useWordAttributeFilter.js +25 -0
- package/dist/packages/core/src/i18n/index.js +9 -1
- package/dist/packages/core/src/i18n/locales/en.json +24 -2
- package/dist/packages/core/src/i18n/locales/ko.json +24 -2
- package/dist/packages/core/src/tokens.css +5 -0
- package/dist/packages/core/src/types/wordSearch.d.ts +12 -0
- package/dist/packages/core/src/utils/csv.d.ts +7 -2
- package/dist/packages/core/src/utils/csv.js +12 -5
- package/dist/packages/core/src/utils/dailySelectionUtils.js +44 -14
- package/dist/packages/core/src/utils/date.d.ts +8 -0
- package/dist/packages/core/src/utils/date.js +44 -10
- package/dist/packages/core/src/utils/format.d.ts +1 -1
- package/dist/packages/core/src/utils/format.js +6 -7
- package/dist/packages/core/src/utils/noiseSettingsStore.d.ts +7 -3
- package/dist/packages/core/src/utils/phonemeConvert.d.ts +9 -0
- package/dist/packages/core/src/utils/phonemeConvert.js +11 -0
- package/dist/packages/core/src/utils/phonemePairSearch.d.ts +7 -1
- package/dist/packages/core/src/utils/phonemePairSearch.js +45 -21
- package/dist/packages/core/src/utils/safeHref.d.ts +8 -0
- package/dist/packages/core/src/utils/safeHref.js +24 -0
- package/dist/packages/core/src/utils/savedWordTables.d.ts +19 -3
- package/dist/packages/core/src/utils/savedWordTables.js +27 -19
- package/dist/packages/core/src/utils/textSort.d.ts +9 -0
- package/dist/packages/core/src/utils/textSort.js +37 -1
- package/dist/packages/core/src/utils/wordAttributeFilterCodes.d.ts +31 -0
- package/dist/packages/core/src/utils/wordAttributeFilterCodes.js +163 -0
- package/dist/packages/core/src/utils/wordContrast.d.ts +4 -2
- package/dist/packages/core/src/utils/wordContrast.js +8 -2
- package/dist/packages/core/src/utils/wordTrainingGenerators.d.ts +5 -2
- package/dist/packages/core/src/utils/wordTrainingGenerators.js +52 -2
- package/dist/packages/core/src/utils/wordTrainingPool.js +2 -2
- package/dist/packages/core/src/utils/wordTrainingRuntime.js +15 -7
- package/dist/packages/core/src/utils/wordTrainingRuntimeTypes.d.ts +1 -1
- package/dist/packages/core/src/utils/wordTrainingRuntimeTypes.js +5 -4
- package/dist/packages/core/src/utils/wornDate.d.ts +12 -0
- package/dist/packages/core/src/utils/wornDate.js +15 -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 +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,66 @@ All notable changes to this project will be documented in this file.
|
|
|
7
7
|
> 적은 글이라, 지금 이름으로 고쳐 놓으면 그 시절에 그 이름으로 받은 사람이
|
|
8
8
|
> 제 이야기를 못 찾는다.
|
|
9
9
|
|
|
10
|
+
## 0.151.0
|
|
11
|
+
|
|
12
|
+
**결정 판** — 그동안 "결정 필요" 로 남겨 둔 항목을 사용자 지시(2026-09-15 "결정이 필요한 것 모두 진행해")로 정해 구현했다.
|
|
13
|
+
동작 계약이 바뀌는 것이 많아 **소비자에게 먼저** 를 꼭 읽는다.
|
|
14
|
+
|
|
15
|
+
### 소비자에게 먼저 — 계약이 바뀜
|
|
16
|
+
|
|
17
|
+
- **`saveTable` 은 `SavedWordTable | null`, `updateSavedTable` 은 `boolean`**: 브라우저 저장소가 차거나 거부하면 실패를 알린다(전에는 성공처럼 반환). `duplicateTable` 도 실패 시 null.
|
|
18
|
+
- **`escapeCsvField`**: 수식 시작(= + - @ 탭 CR) 앞에 탭 대신 작은따옴표 `'`.
|
|
19
|
+
- **`useTTSPlayback`**: speechSynthesis 가 없으면 `onDone(false)`(전에는 true) — 듣기 플레이어가 "이 기기에서는 음성을 들려줄 수 없습니다." 를 띄우고 흐름은 다음으로 간다. 문장 배열은 차례로 모두 말한다.
|
|
20
|
+
- **`useWaveReady().waitForReady`** 는 `Promise<boolean>` — 화면을 떠나면 `false`.
|
|
21
|
+
- **소음 설정 저장**: 판 중 변경은 멈춘 뒤 300ms 에 마지막 값만(떠날 때·pagehide·탭 숨김엔 즉시). 옛 기록(noiseRatio 없음)은 반올림 없이 0.1–2 로만 조임(0 은 0).
|
|
22
|
+
- **trainingMissStats**: 같은 answeredAt 이면 `id`(숫자 크기·글 사전순)가 큰 쪽이 최근, id 가 없으면 배열 뒤쪽이 최근.
|
|
23
|
+
- **Dropdown·Rating·Tabs** 는 값이 바뀔 때만 onChange(SegmentedControl 은 다시 누름도 부름). Rating 조작 모드는 소수 value 를 반올림.
|
|
24
|
+
- **시간대 없는 시각 글자**('2026-09-30T20:00:00')는 KST 벽시계 시각으로 읽는다(toKstYmd·formatYmd·toKstHm·formatDate*·normalizeDate·formatRelativeTime).
|
|
25
|
+
- **정렬**: 빈 값은 오름·내림 모두 맨 뒤(ListPopup·DeviceSideTable·`useTableSort().sortRows`). 칸순은 전화번호 꼴을 숫자 글자로 견준다. Table expandedId 는 String 비교.
|
|
26
|
+
- **Alert** role: danger·warning 은 alert, info·success 는 status(`live` prop 으로 덮어씀).
|
|
27
|
+
- **오늘의 훈련**: 유형별 시드·이웃한 날 겹침 방지 — **배포 날 오늘 세트가 한 번 바뀐다.**
|
|
28
|
+
- **단어훈련 문제**: 음소 바꾸기 질문이 바뀌는 음소를 말함 · 한 음절 포함 타깃이 고른 음소를 가진 음절 · 음소 합치기에서 소리 없는 초성 ㅇ 제외 · 1음절 조각 둘은 합성어 아님 · 런타임 '음소 구조 같은' 이 대립쌍 표와 같은 활음 정의.
|
|
29
|
+
- **WordSearchResultBlock**: searchQuery·resultCount 없이 items 만 주면 받은 순서가 기본. 대립쌍 등급순은 두 낱말 중 낮은 등급.
|
|
30
|
+
- **복습표·동형어**: `SavedWordTable.reviewOf?·reviewRound?`, `reviewMeta`, `cellKey`·`labelOfCellKey`, `WeakItem.key?`.
|
|
31
|
+
- **TrainingPagePopup `onComplete`** 인자에 `attempt`·`previousAttempts`(다시하기 전 판들). 결과 계산 중에는 완료가 막힌다(`TrainingResultPopup pending`).
|
|
32
|
+
- **폭죽**: `EffectPartyPopperHost` 가 `party:trigger` 를 듣는다 — Host 를 붙인 앱은 결과 창 폭죽이 실제로 나기 시작한다.
|
|
33
|
+
- **층(z-index)**: 페이지 < BulkBar(`--z-bulk-bar`) < 메뉴(`--z-menu`) < 창 < 툴팁 < 알림 < 토스트. UpdateAlert 가 둘이면 비켜 쌓인다.
|
|
34
|
+
|
|
35
|
+
### 더함
|
|
36
|
+
|
|
37
|
+
- Calendar·DatePicker `today` · PassCard `endInclusive`(종료일 당일 포함) · ConfirmPopup `initialFocus` · Accordion 항목 `id` · Breadcrumb `href`·`target`·`rel` · Button `ariaExpanded`·`ariaControls`·forwardRef ·
|
|
38
|
+
useTableSort `onSortChange` · 속성 필터 코드 도구(`toWordAttributeFilterCodes`·`wordAttributeFilterFromCodes`·`normalizeWordAttributeFilter`, config `attributeCodes`) · `TrainingCompleteResult` 타입.
|
|
39
|
+
|
|
40
|
+
### 바뀜 (접근성·터치·움직임·인쇄)
|
|
41
|
+
|
|
42
|
+
- 초점: 초점 중 막힌 단추는 aria-disabled 로 초점 유지 · BulkBar·Alert·NoticeBox·UpdateAlert 가 사라질 때 초점을 바깥으로 · 훈련 설정·문장 미리보기 창에 초점을 넣고 돌려줌(aria-expanded) · LoadTablePopup 삭제 뒤 다음 카드.
|
|
43
|
+
- 낭독기: Button 툴팁 문구를 설명으로 · SegmentedControl 개수를 이름에 · Toast 첫 문구 · indeterminate 진행에 aria-valuenow 없음 · ProgressIndicator announce 모든 variant · 삭제 단추 이름에 표 이름.
|
|
44
|
+
- 터치: 툴팁 톡 토글 · hover 로만 보이던 단추를 (hover: none) 에서 보임 · SideNav 는 (hover: hover) 에서만 :hover 판정 · PassCard·Rating 톡 뒤 상태 되돌림 · TopBanner 터치 멈춤.
|
|
45
|
+
- 움직임 줄이기: Popup·Tooltip·TrainingPagePopup 닫기 대기 0 · TopBanner 자동 넘김 없음 · 멈춘 진행 막대·천천히 도는 스피너. TopBanner 는 :focus-visible 일 때만 멈춤, 장 수가 줄면 범위 안으로.
|
|
46
|
+
- 겹창: TextField 후보 목록 body 포털 · DatePicker 창 안으로 조임 · 메뉴가 회전·크기 변경에 다시 잼.
|
|
47
|
+
- 인쇄·내려받기: BOM 한 번 · Blob 주소 1초 뒤 회수 · 인쇄 전 글꼴 최대 1초 대기 · 빈 파일명 기본값. `printWordTable()` 은 @deprecated.
|
|
48
|
+
- 보안: 메뉴 window.open 은 http(s)·상대·mailto·tel 만 · 인라인 SVG 의 <style>·바깥 url() 제거.
|
|
49
|
+
- 자료 방어: `words` 없는 표 항목 · 착용일 null · ReportDocument 내용 높이 바뀌면 다시 잼·큰 group 은 앞 장부터 채움 · 월 보기 합계는 그 달 날짜만 · 한글 조합 중 후보 목록 유지 · 막대 수 다시 잼 · 탭 복귀 뒤 소음 다시 켬 · '모두 듣기' 중 카드 누르면 멈춤 · 서버 렌더는 기본 언어로 시작.
|
|
50
|
+
- 작은 계약: RingChart hideCenter 명시 존중 · BarChart barWidth 2px 하한 · NoticeBox notices 닫기 · Icon 이미지 size · PhonemeSelectBlock showInfoButton 기본 true 로 바로잡음 · Board 빈 문구 i18n · ErrorState·EmptyState 다시 시도 중복 방지 · SummaryStrip title · ShortcutBadge static 배율 · FileUpload 던져도 같은 파일 다시 고름 · 단어 카드 재생도 스피커 자물쇠.
|
|
51
|
+
|
|
52
|
+
### 정한 채 두는 것 (바꾸지 않음)
|
|
53
|
+
|
|
54
|
+
- Popup `animateThen(cb)` 은 떠난 뒤에도 cb 를 부름 · ConfirmPopup 은 확인으로 닫혀도 onClose(JSDoc 을 동작에 맞춤) · TextField 카운터 UTF-16(네이티브와 같게) · POS_LABEL 등 한국어 상수 공개 유지 · 복습·복사 이름 꼬리 한국어 · check.svg → lucide 매핑 · CSV 선행 0 · 종이에 글자 크기 안 옮김.
|
|
55
|
+
|
|
56
|
+
### 아직 사용자 결정·다른 곳 일
|
|
57
|
+
|
|
58
|
+
- 요금제: light_* 레거시(개인 라이트)·homework 표 모순·TIER_RANK — 요금제 의미.
|
|
59
|
+
- Table 표 구조(aria-sort) · 말귀 DB user_settings GRANT 범위 · 모바일 훈련 시간 한 줄(서버 세션 id) · 단어표 드래그 순서의 키보드·터치 대안 · 칩 한 번 46–212ms 성능.
|
|
60
|
+
|
|
61
|
+
## 0.150.0
|
|
62
|
+
|
|
63
|
+
### 소비자에게 먼저
|
|
64
|
+
|
|
65
|
+
- **`useRelativeDay`**: 숙제 "오늘 / 어제 / N일 전" 을 24시간 단위가 아니라 **KST 달력날** 로 센다(사용자 결정 2026-09-15). 어제 23시(KST)에 온 숙제는 오늘 01시에
|
|
66
|
+
"어제"(전에는 "오늘"). 기기 시간대와 무관하고, 앞날은 전처럼 "오늘".
|
|
67
|
+
- **듣기 플레이어(TrainingStepAudioPlayer)**: 녹음 파일 없이 브라우저 음성 합성으로 말하는 중(TTS 리졸버 없음·실패) 멈춤 단추가 소리 없는 `<audio>` 를 재생하려 들고
|
|
68
|
+
말은 멈추지 않았다 — 이제 합성기를 멈추고 잇는다.
|
|
69
|
+
|
|
10
70
|
## 0.149.0
|
|
11
71
|
|
|
12
72
|
18차 검수 판이다 — 관리 훅(방문·예정)과 훈련 흐름(파형) 검수에서 재현된 것을 고쳤다.
|