hazo_ui 6.11.2 → 6.12.3

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/CHANGE_LOG.md CHANGED
@@ -5,6 +5,84 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## v6.12.3 (2026-09-30)
9
+
10
+ ### Changed — i18n string wiring
11
+
12
+ - Hardcoded English in `canvas_text_toolbar`, `error_banner`, `error_page`,
13
+ `hazo_ui_confirm_dialog`, `hazo_ui_icon_picker`, `hazo_ui_multi_sort_dialog`,
14
+ `loading_timeout`, `notification_item`, `notification_panel` and `toaster`
15
+ now goes through `t()`. Prop defaults (`title`, `description`,
16
+ `cancelLabel`, ...) resolve via `t()` so consumer overrides still win.
17
+ - `src/locales/en.json` gains the matching keys (`sort.*`, `canvas_toolbar.*`,
18
+ `toast.permission_*`, `error.*`, `loading.taking_longer`, `notification.*`,
19
+ `confirm.cancel`, `icon_picker.search_placeholder`, `common.*`).
20
+ Additive only; English output is unchanged.
21
+
22
+ ### Added — test-app
23
+
24
+ - `/translations` page + `/api/i18n/[...path]` route (via
25
+ `hazo_i18n/api` `createI18nRoutes`) with a "Translate with AI" flow, sidebar
26
+ entry, `config/hazo_i18n_config.ini` + `hazo_llm_api_config.ini`.
27
+ - `src/lib/llm_init.ts` loads `hazo_llm_api/server` with `optional_import`
28
+ instead of a static import. A static import is bundled as a separate module
29
+ instance from the runtime copy `hazo_i18n`'s `translateMessages` resolves,
30
+ so init ran on the wrong instance and every chunk failed with "LLM API not
31
+ initialized". Verified: 25/25 chunks ok.
32
+ - `next.config.js`: `hazo_i18n`/`hazo_connect` transpile + source aliases,
33
+ `sql.js` server external. Generated `.hazo-i18n/` and `*.sqlite` ignored.
34
+
35
+ ## v6.12.2 (2026-09-30)
36
+
37
+ ### Fixed — `useFullscreen`
38
+
39
+ - The fullscreen toggle silently did nothing on iOS Safari. iOS Safari has no
40
+ `requestFullscreen` at all for arbitrary elements (not a missing vendor
41
+ prefix — the method is simply absent), so `enter()` hit its
42
+ `!document.documentElement.requestFullscreen` guard and returned without
43
+ ever flipping `isFullscreen`, and `fullscreenchange` never fired to sync it
44
+ either. Any consumer driving a CSS-based fullscreen layout off
45
+ `isFullscreen` (GoTimer's `TimerShellV2`, for example — a `fixed inset-0
46
+ z-[9999]` overlay with no dependency on the real browser fullscreen state)
47
+ got a dead button on iPhone with no error.
48
+ `enter()`/`exit()`/`toggle()` now detect API support up front and, when
49
+ it's missing, track `isFullscreen` as plain local state instead of no-op'ing
50
+ — the real browser-chrome-hiding effect is still unavailable on iOS (a
51
+ platform limitation, not fixable from JS), but the CSS-driven fullscreen
52
+ layout itself now activates correctly. Added
53
+ `src/hooks/__tests__/use_fullscreen.test.ts` covering both the
54
+ native-API and no-API-available paths.
55
+
56
+ ## v6.12.1 (2026-09-29)
57
+
58
+ ### Fixed / Added — `HazoUiEtaProgress`/`HazoUiProgressBar`
59
+
60
+ - Bar fill used `bg-accent`, which reads as a near-invisible low-contrast tint
61
+ against several theme presets — switched to `bg-primary` to match the rest
62
+ of the design system's progress/loading affordances.
63
+ - New optional `showPercent` (percentage text next to the label, default
64
+ `false`) and `size` (bar height in px, default `8`) props on both
65
+ `HazoUiEtaProgress` and `HazoUiProgressBar`. Purely additive — no existing
66
+ caller's behavior changes.
67
+
68
+ ## v6.12.0 (2026-09-20)
69
+
70
+ ### Changed — migrated onto the canonical `hazo_core/i18n` bridge
71
+
72
+ hazo_ui's own baked-in strings (login buttons, table/filter-dialog labels,
73
+ kanban, browser-tab, RTE toolbar tooltips under the `rte.*` namespace, etc.)
74
+ now go through `createPackageT` from `hazo_core/i18n` instead of this
75
+ package's local `src/lib/create_package_t.ts` (deleted). Catalog stays a flat
76
+ `src/locales/en.json` with `{{var}}` interpolation — no reshaping needed.
77
+ `hazo_i18n` added as an optional peer dependency (`^0.5.0`); `hazo_core` peer
78
+ bumped to `^2.4.0` (first version shipping the `/i18n` sub-export). No public
79
+ API change — the bridge was never re-exported from `src/index.ts`.
80
+
81
+ The `rte.*` namespace (Tiptap rich-text-editor toolbar strings) already lived
82
+ in the single `en.json` catalog by the time this migration ran — there was no
83
+ separate `TiptapI18nProvider`/`en.ts`/`si.ts`/`sv.ts` locale system left to
84
+ merge; that consolidation had already happened in an earlier session.
85
+
8
86
  ## v6.11.2 (2026-09-01)
9
87
 
10
88
  ### Fixed — `hazo_state` peer dependency range never resolved
@@ -99,7 +99,7 @@ The following peer dependencies are required:
99
99
  - [ ] React (^18.0.0 or ^19.0.0)
100
100
  - [ ] React DOM (^18.0.0 or ^19.0.0)
101
101
  - [ ] hazo_core (^1.2.0)
102
- - [ ] hazo_state (^0.1.0) — the `hazo_ui` barrel statically imports `hazo_state/client` (for `HazoUiEtaProgress`), so this is **required** even if you don't use the ETA progress bar.
102
+ - [ ] hazo_state (^0.6.3) — the `hazo_ui` barrel statically imports `hazo_state/client` (for `HazoUiEtaProgress`), so this is **required** even if you don't use the ETA progress bar.
103
103
 
104
104
  If not already installed:
105
105
 
@@ -143,7 +143,7 @@ npm install @radix-ui/react-dialog @radix-ui/react-popover @radix-ui/react-selec
143
143
  - **Slider**: `@radix-ui/react-slider`
144
144
  - **InputAffix**: No additional dependencies (uses the base shadcn/ui `Input` component)
145
145
  - **HazoUiProgressBar, useEtaProgress, median, computeEta, easeToward**: No additional dependencies
146
- - **HazoUiEtaProgress**: `hazo_state` (^0.1.0) — a **required** peer dep of hazo_ui (the barrel imports it unconditionally), so it is always installed regardless of which components you use.
146
+ - **HazoUiEtaProgress**: `hazo_state` (^0.6.3) — a **required** peer dep of hazo_ui (the barrel imports it unconditionally), so it is always installed regardless of which components you use.
147
147
 
148
148
  ### 4. Configure Tailwind CSS
149
149