@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 +28 -0
- package/COMPONENTS.md +6 -3
- package/README.id.md +1 -1
- package/README.md +1 -1
- package/adapters/blazor/FdyAppShell.razor +1 -1
- package/adapters/react/components/FdyAppShell.tsx +1 -1
- package/adapters/vue/components/FdyAppShell.vue +1 -1
- package/docs/getting-started.md +1 -1
- package/package.json +1 -1
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
|
[](https://cahyo-dimas.github.io/freeday-ui-kit/)
|
|
8
|
-
[](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
|
[](https://cahyo-dimas.github.io/freeday-ui-kit/)
|
|
8
|
-
[](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`.
|
|
@@ -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
|
package/docs/getting-started.md
CHANGED
|
@@ -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.
|
|
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`)
|