@cahyo-dimas/freeday 3.3.0 → 3.3.1

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
@@ -9,6 +9,34 @@ benar. Perubahan seperti itu ditulis di bawah `### Changed: BREAKING (types)`
9
9
  lama → tipe baru, dan cara menyempitkannya — bukan di bawah `### Added`, betapapun aditifnya dari
10
10
  sisi kit.
11
11
 
12
+ ## [3.3.1] - 2026-09-07
13
+
14
+ **Tautan lewati yang tak punya tujuan, di tiga stack sekaligus.** `#056` (dari `keamanan-cluster`)
15
+ menunjuk satu kalimat di COMPONENTS.md — *"the markup below is for stacks without an adapter (and is
16
+ what the wrapper renders)"* — lalu menunjukkan bahwa untuk `.fdy-app__main` kalimat itu tidak benar.
17
+ Markup mentahnya membawa `id="main"`; ketiga wrapper typed tidak membawa apa pun. Jadi `.fdy-skip`
18
+ yang didokumentasikan dengan `href="#main"` merender tautan yang menerima fokus lalu tidak
19
+ memindahkan siapa pun. Ini bentuk kegagalan yang paling sulit terlihat: tak ada galat, tak ada yang
20
+ tampak salah, dan pemeriksaan visual tak akan pernah menangkapnya — app yang melaporkannya memilih
21
+ **tidak memasang tautan lewati sama sekali**, karena tak ada yang bisa dituju.
22
+
23
+ ### Fixed
24
+ - **`FdyAppShell` merender `<main id="main" tabindex="-1">` di Vue, React dan Blazor** (`#056` §1).
25
+ `id` menyamakan wrapper dengan markup mentah yang sudah didokumentasikan; `tabindex="-1"` diambil
26
+ dari `docs/reference-screen.html`, yang selama ini lebih benar daripada skeleton di COMPONENTS.md —
27
+ tanpa itu tautan fragmen menggulung halaman tanpa memindahkan fokus, sehingga Tab berikutnya
28
+ melanjutkan dari tempat pembaca tadi, bukan dari tempat ia dikirim. Skeleton COMPONENTS.md ikut
29
+ disamakan. Dijaga uji paritas baru di `browser/adapter.mjs` (Vue, React) dan
30
+ `test/blazor/FdyAppShellTests.cs` (Blazor).
31
+
32
+ ### Docs
33
+ - **`.fdy-title-page` menyebut level headingnya di dalam shell** (`#056` §2). Tabel tipografi
34
+ menuliskan `<h1>`, "One per screen", sementara `docs/reference-screen.html` memakai
35
+ `<h2 class="fdy-title-page">` karena `.fdy-app__title` di topbar sudah menjadi `<h1>` layar itu.
36
+ Menyusun keduanya persis seperti dokumentasi menghasilkan dua `<h1>` — yang justru dilarang
37
+ kalimat di sebelahnya. Tabelnya kini menyebut kedua kasus; keputusan yang dipakai adalah keputusan
38
+ yang sudah diambil reference screen, bukan keputusan baru.
39
+
12
40
  ## [3.3.0] - 2026-08-28
13
41
 
14
42
  **Tiga kemampuan yang sebenarnya sudah ada di kit ini, dan tak satu pun bisa diminta.** `#054` dan
package/COMPONENTS.md CHANGED
@@ -156,7 +156,10 @@ positioning rules differ, and only above the breakpoint. It also changes which s
156
156
  On the raw path, if you add or remove the class yourself, call
157
157
  **`FreedayAppShell.refresh(root)`** afterwards — the shell has to re-read the DOM, or `inert` and
158
158
  `aria-expanded` keep describing the arrangement you just left.
159
- - Also: `.fdy-skip`, the skip-to-content link, first child of the shell.
159
+ - Also: `.fdy-skip`, the skip-to-content link, first child of the shell. Its target is
160
+ `__main`, which carries `id="main"` **and `tabindex="-1"`** — without the latter a fragment
161
+ link scrolls the page without moving focus, so the next Tab resumes from where the reader
162
+ was, not from where they were sent. The typed wrappers render both.
160
163
  - **Behaviour: `freeday-app-shell.js`.** Opt in with `data-fdy-app` on the root. The markup below
161
164
  is unchanged. It owns the toggle in both modes plus everything an overlay needs that hand-rolling
162
165
  reliably forgets: Escape, backdrop click, closing when a `.fdy-nav__item` is followed, focus moved
@@ -209,7 +212,7 @@ tall containing block. The brand goes in the **sidebar** (sized to match the top
209
212
  <h1 class="fdy-app__title">Invoices</h1><!-- auto-spacer: pushes what follows right -->
210
213
  <!-- topbar actions -->
211
214
  </header>
212
- <main class="fdy-app__main" id="main"><!-- .fdy-page goes here --></main>
215
+ <main class="fdy-app__main" id="main" tabindex="-1"><!-- .fdy-page goes here --></main>
213
216
  </div>
214
217
 
215
218
  <div class="fdy-app__backdrop"></div>
@@ -283,7 +286,7 @@ One role per level of hierarchy. Never re-use a card title for a page title.
283
286
  | Class | Element | Use |
284
287
  |---|---|---|
285
288
  | `.fdy-eyebrow` | `<p>` | Small uppercase label above a title. Optional. |
286
- | `.fdy-title-page` | `<h1>` | One per screen. |
289
+ | `.fdy-title-page` | `<h1>` · `<h2>` in a shell | One `<h1>` per screen. Standalone page: `<h1>`. Inside `.fdy-app`, the topbar's `.fdy-app__title` is already that `<h1>`, so the page title steps down to `<h2>` — as `docs/reference-screen.html` does. |
287
290
  | `.fdy-title-section` | `<h2>` | A region inside the page. |
288
291
  | `.fdy-title-card` | `<h3>` | A title inside a card or row (`.fdy-card__title` is equivalent). |
289
292
  | `.fdy-text-muted` · `.fdy-text-subtle` | any | Secondary / tertiary text colour. |
package/README.id.md CHANGED
@@ -5,7 +5,7 @@
5
5
  > **Lebih banyak _free day_ buat dev. UI kit-nya sudah siap pakai.**
6
6
 
7
7
  [![Live docs](https://img.shields.io/badge/docs-live-2050d8?style=flat-square)](https://cahyo-dimas.github.io/freeday-ui-kit/)
8
- [![Release](https://img.shields.io/badge/release-v3.3.0-0078d4?style=flat-square)](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.3.0)
8
+ [![Release](https://img.shields.io/badge/release-v3.3.1-0078d4?style=flat-square)](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.3.1)
9
9
 
10
10
  UI KIT yang token-driven & framework-agnostic. Satu sumber kebenaran untuk warna, tipografi,
11
11
  spasi, dan komponen. Blueprint: `docs/superpowers/specs/2026-07-21-freeday-ui-kit-design.md`.
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  > **More free days for devs. The UI kit is ready to use.**
6
6
 
7
7
  [![Live docs](https://img.shields.io/badge/docs-live-2050d8?style=flat-square)](https://cahyo-dimas.github.io/freeday-ui-kit/)
8
- [![Release](https://img.shields.io/badge/release-v3.3.0-0078d4?style=flat-square)](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.3.0)
8
+ [![Release](https://img.shields.io/badge/release-v3.3.1-0078d4?style=flat-square)](https://github.com/cahyo-dimas/freeday-ui-kit/tree/v3.3.1)
9
9
 
10
10
  A token-driven, framework-agnostic UI kit. One source of truth for color, typography,
11
11
  spacing, and components. Blueprint: `docs/superpowers/specs/2026-07-21-freeday-ui-kit-design.md`.
@@ -41,7 +41,7 @@
41
41
  @TopbarContent
42
42
  </header>
43
43
 
44
- <main class="fdy-app__main">
44
+ <main class="fdy-app__main" id="main" tabindex="-1">
45
45
  @ChildContent
46
46
  </main>
47
47
  </div>
@@ -186,7 +186,7 @@ export function FdyAppShell(props: FdyAppShellProps): JSX.Element {
186
186
  {props.topbar}
187
187
  </header>
188
188
 
189
- <main className="fdy-app__main">{props.children}</main>
189
+ <main className="fdy-app__main" id="main" tabIndex={-1}>{props.children}</main>
190
190
  </div>
191
191
 
192
192
  <div
@@ -180,7 +180,7 @@ onBeforeUnmount((): void => {
180
180
  <slot name="topbar" />
181
181
  </header>
182
182
 
183
- <main class="fdy-app__main">
183
+ <main class="fdy-app__main" id="main" tabindex="-1">
184
184
  <slot />
185
185
  </main>
186
186
  </div>
@@ -191,7 +191,7 @@ live docs also have a copy button per component.
191
191
  ```bash
192
192
  npm i @cahyo-dimas/freeday
193
193
  ```
194
- Lands in `package.json` as `"@cahyo-dimas/freeday": "^3.3.0"` (public npm package). `dist/` is
194
+ Lands in `package.json` as `"@cahyo-dimas/freeday": "^3.3.1"` (public npm package). `dist/` is
195
195
  committed and published → no build step; `npm ci` runs without auth.
196
196
 
197
197
  ### 2. Import the CSS + enhancers **once** in your entry (`src/main.ts`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cahyo-dimas/freeday",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "Freeday: token-driven, framework-agnostic UI KIT (design source-of-truth).",
5
5
  "type": "module",
6
6
  "license": "MIT",