Changelog
Local release history
This records wdj changes. Upstream Kumo releases are maintained separately.
# Changelog## 2026-10-12 — Open-source alpha preparation- Document installation from GitHub; the PyPI name `wdj` belongs to another project.- Retain complete Kumo and Alpine MIT licenses, ECharts NOTICE and bundled D3 license.- Describe upstream reference copies accurately and keep them out of the wheel.- Replace placeholder project URLs, synchronize the 675-example count and use SPDX package metadata.- Remove the vulnerable build-only `braces` dependency through the watcher 2.6.0 override.- Add contribution templates, dependency monitoring, Django 6.0/6.1 CI and wheel/sdist validation.## 2026-10-12 — Documentation search in the Sidebar- Pin a Search trigger below the sidebar header, including mobile and collapsed navigation.- Search the complete navigation inventory in a grouped CommandPalette with titles, descriptions, keywords and canonical destinations.- Support Ctrl/Cmd+K, arrow/Enter navigation, result counts, empty states, a touch close button and focus restoration without closing the underlying mobile drawer.## 2026-10-12 — Grouped Toolbar and composed filters- Replace padded, separated controls with a compact shared surface, 1px dividers, outer corners and common 20/26/36/40px heights.- Add explicit ToolbarItem composition around existing controls; Select and Combobox keep their styled popups, values and native form behavior.- Reproduce the reference search, select, combobox, input shorthand/group, sizing, button, link and accessible-label examples. Add a working search/status/reset recipe.- Add roving focus, caret-boundary navigation, popup key ownership and RTL/HTMX regression coverage.## 2026-10-12 — ButtonGroup split-button correction- Replace the inert caret and mismatched labelled dropdown with working primary/secondary split buttons and matched small/base/large examples.- Preserve shared 1px seams, native focus, logical RTL corners, wrapped links, single children and vertical groups.- Fix square/circle Button padding and fixed dimensions; share the primary gradient and ring with square Dropdown triggers.- Add rendered geometry, touch/keyboard menu and accessibility regressions.## 2026-10-11 — Recursive Sidebar and searchable popups- Add reference-shaped nested Sidebar groups, account/zone controls, loading toggles, quick search and contained mobile previews with Back/Home drill navigation.- Support arbitrary child depth, targeted scrolling across views and IDs, collapsed-rail resizing and nested disclosure transition events.- Add Combobox button/search-inside, placeholder, ghost-trigger and grouped examples with accent-insensitive filtering, form reset and native fallback.- Align Dropdown/Combobox padding and rows; place nested Dropdown menus laterally in native top-layer popovers and constrain them to the viewport.## 2026-10-11 — Styled Select dropdown defaults- Use the Alpine dropdown in every default Select example, with explicit native mode and a no-JavaScript fallback.- Match Kumo popup padding, background, row radii, group separators and size-specific trigger icons; restore visible selection checkmarks.- Disable loading controls and show a skeleton; preserve empty/zero values, escaped placeholders, native form submission and reset.## 2026-10-11 — Shared card padding and documentation layout- Give titled cards the same default body padding as untitled surfaces; preserve explicit flush content.- Align card headers with their content and let panels shrink within responsive grids.- Tighten overview/accessibility section spacing, align the accessibility heading, and keep its mapping table in a focusable local scroll region on phones.## 2026-10-11 — Documentation navigation by purpose- Group onboarding, design guidance, catalogs, integration examples and development resources into seven sidebar sections.- Keep Getting started visible and automatically open the active page's section on desktop and mobile.- Move catalog overviews into their sections and consolidate duplicate chart links while retaining route aliases.## 2026-10-11 — Dimension showcase alignment and state icons- Align control surfaces under one label in each dimension grid cell.- Keep copy/check and reveal/hide icons mutually exclusive across shared controls.- Scale calendar trigger widths and corner radii with the field size; update DatePicker dimension guidance.## 2026-10-11 — Styled calendar defaults- Default date/datetime and range fields to the wdj popup; retain explicit native mode and native time/month controls.- Remove native date fields from the Alpine calendar and use one icon trigger anchored to the entire field.- Match measured Kumo grid/day/navigation sizes, Sunday-first variable rows, neutral selections and range bands; retain accessible contrast in both themes.- Preserve datetime time values, ISO Django form values, HTMX mounting, keyboard entry and native form reset.## 2026-10-11 — Combobox localization- Expose escaped search, listbox, empty-result, required-selection and chip-removal labels for Combobox/Autocomplete.- Preserve localized chip labels after selection, HTMX mounting and form reset; document the API and test desktop/phone behavior across three browser engines.## 2026-10-11 — Calendar completion and browser portability- Add localized inline/popup calendars, configurable week start and responsive multiple months; validate editable single/multiple/range values and submit separately named range fields.- Expose escaped action/validation labels and preserve a keyboard entry when earlier month panels are disabled.- Render Select/Combobox lists in native manual popovers above clipped containers; enforce required multiple values and HTMX minimum query length.- Complete all four Drawer edges, pending dismissal protection and trigger focus restoration in WebKit.- Add customized map marker colors/radii/descriptions, accessible tooltips and bounded flat-map panning.- Replace approximate code coloring with free Pygments grammars and multiline token state; expand the catalog to 652 live examples.- Fix mobile sidebar backdrop activation/focus and Tabs overflow controls in Firefox/WebKit. Add repeatable three-engine verification, full-page layout/axe coverage and precise test-platform limits.- Preserve Combobox option tap activation with native buttons; validate date/month/time/datetime-local format, bounds and step when Windows WebKit falls back to text, including overnight time bounds and reset.## 2026-10-11 — Form state regressions- Restore calendar selection/month, TagInput and multiple Combobox chips/CSV on native form reset; respect cancelled resets.- Synchronize custom Select after native change events, clear transient validation on reset and preserve server-rendered errors.- Recalculate date-range validity, table selection summaries and autoresizing textarea height after reset.- Reject unavailable dates entered in the calendar's native field; synchronize the submitted value before emitting date-change events.- Add desktop/phone regression coverage, including forms mounted through HTMX.## 2026-10-11 — Complete upstream page audit- Map all 72 upstream source pages to local destinations; compare the 65 public navigation pages on desktop and mobile.- Expand the catalog to 65 entries and 643 live examples, with actual Django API tables and individual source-copy actions.- Add directed Flow diagrams, layered native dialogs, single/multiple/range calendars, rich Alpine Select, offline country/bubble maps and a draggable SVG globe.- Add escaped lexical code highlighting, external chart legends, chart interactions, resizable columns, nested choice menus and targeted sidebar scrolling.- Complete supporting docs, chart colors, registry, an advanced integration guide and explicit remaining adaptation limits.- Expand route, keyboard, touch, HTMX replacement, source-copy, mobile layout and axe checks across the full page inventory.All notable changes to wdj are documented here. The format is based on[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project aimsto follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).## [Unreleased]### Added- Kumo Tabs fidelity pass: shared sliding indicator, segmented overflow controls, mouse drag, measured compact typography/padding, manual or automatic focus activation, controlled Alpine selection events and dynamic-count examples.- Complete multi-example showcase inventory: 453 live snippets across 60 in-scope entries, with generated anchors and isolated page navigation data.- Native MenuBar, reusable Text/Label/Field, PageHeader composition, ResourceListPage and confirmation-gated DeleteResource demo blocks.- Server-built Sankey and sparkline options; category, step, stacked area, threshold, zoom, horizontal/grouped bar, pie and nested donut examples.- Local/multiple combobox examples and keyboard/focus handling after HTMX swaps.- Full catalog axe scans in both themes and regression coverage for open dialogs, mobile layouts, sidebar persistence, Django Forms selection and native ranges.- Complete integration and interaction guides, a live `/guide/` playground, local Alpine Tabs with rich panels, keyboard navigation and disabled skipping.- Exclusive native accordions and independent nested chevrons; slider defaults, finite bounds, decimal steps, selected-track styling, pointer/keyboard use and reset.- Audit of presentation commands across every in-scope catalog page, separate demo feedback, validated popover forms, modal triggers and repeated HTMX initialization.- Pagination recalculates page limits after page-size changes and leaves URL/HTMX navigation to the server. Mobile sidebar controls are inert while hidden and return focus on close; chart observers and listeners are cleaned up on removal.- Django snippets in the usage/installation guides are compiled by a regression test.- Eight composite blocks, including five wdj compositions with three examples each; a `/blocks/` index and documentation sidebar grouped like Kumo.- PageHeader breadcrumb divider, title/description spacing and shared tabs/actions row, with responsive hero and long-navigation examples.- Live `/dimensions/` comparison and rendered height checks; Switch and compact Tabs sizing aligned to Kumo, plus xs clear/copy button bounds and line-height fixes.- Whole-catalog mobile layout and axe coverage, portrait/landscape touch flows, clipboard checks and presentation commands in a mobile Chromium context.- Narrow grid/field layouts and wrapping pagination; readable stacked native date ranges, contained sidebar bounds and viewport-constrained native popovers.- 15 new Kumo-parity components implemented and integrated into the catalog: - `ButtonGroup` (split buttons, joined action controls) - `ClipboardText` (read-only text with one-click copy button and feedback) - `InlineCopyText` (compact borderless copy control for IDs and tokens) - `SensitiveInput` (masked secret input with reveal toggle and copy button) - `Code` (inline and block code display with language hint and copy button) - `Collapsible` (accessible `<details>` disclosure with smooth chevron rotation) - `Meter` (progress and quota bar with formatted values and status variants) - `InputGroup` (inputs with joined prefix, suffix, and addon attachments) - `LayerCard` (compound surface card with distinct primary and secondary layers) - `Grid` (responsive CSS grid layout container with preset column configurations) - `Toolbar` (horizontal action bar with grouped controls and keyboard arrow navigation) - `TableOfContents` (page section navigation tree with active link indicator) - `CommandPalette` (accessible spotlight search overlay with Cmd+K / Ctrl+K shortcut) - `DateRangePicker` (paired native date inputs with preset ranges) - `TagInput` (interactive multi-value badge input for tags and recipients)- Added new Lucide icons to runtime bundle: `command`, `terminal`, `hash`, `corner-down-left`.- Extended `wdj.js` with delegated behaviors for clipboard copying (`data-wdj-copy`), sensitive input toggle (`data-wdj-sensitive-toggle`), tag management (`data-wdj-tag-input`), command palette live search and arrow navigation (`data-wdj-command-palette`), and toolbar keyboard navigation (`role="toolbar"`).- `Chart` component: server-built Apache ECharts options (`wdj.charts.line`, `bar`, `donut`, semantic/categorical palettes), theme-aware canvas theming, a loading skeleton, and `wdj_json` for breakout-safe embedding. ECharts 6.1.0 is vendored and loaded only on opt-in pages.- Sidebar rewritten on Alpine: labelled groups, icon-only collapse with tooltips, hover-peek, drag-to-resize (pointer + keyboard), sliding views, loading skeleton, mobile drawer with scroll-lock, and `right` / `contained` layouts.- Kumo-style multi-example component pages: catalog entries can declare an `examples` list rendered as titled live previews with collapsible source.- Home page shows concrete live examples (buttons, badges, inputs, chart, table) instead of a bare hero.- `docs/reference/kumo/site/kumo_skill.html` — local capture of the Kumo design skill; its 15 rules are applied to component and demo markup (see `docs/REFERENCES.md` and `docs/DECISIONS.md` #17).### Changed- Correct Django Forms radio/multiple/grouped choice mapping, disabled state, automatic IDs and the native PasswordInput value policy.- Native date inputs and the Drawer adaptation are honestly marked partial. Maps remain excluded by the repository rules.- Inclusive, bounded date presets; range ordering; two-handle sliders; normalized tags; disabled link buttons; sensitive reveal/copy; dropdown and toolbar keys.- Accessible names for collapsed sidebar links, native selects and command dialogs; solid destructive fill and API text contrast in the dark theme.- 14px content typography, reference rem sizing and ring outlines on surfaces with shadows; compiled CSS is rebuilt.- `wdj.js` now loads **before** Alpine so it can register `wdjSidebar` / `wdjChart` on `alpine:init`; swapped fragments are initialised with `Alpine.initTree`.- Tag library: `wdjd` was renamed to the documented `wdj_uid`.- Sidebar/table/headings drop `font-bold` and `tracking-*/uppercase` per the design skill; hover states no longer transition colour.## [0.1.0] - 2026-10-10First public pre-release. Server-rendered Django + HTMX components inspired byCloudflare Kumo. Independent project, not affiliated with Cloudflare.### Added- Token layer and base styles in `assets/css/wdj.css`, compiled with Tailwind CSS v4.3.3 (matching the Kumo compiler baseline). Light/dark via `light-dark()` and `color-scheme`; `.theme-icon-*` swap rules; `.wdj-range` slider styling.- `wdj` template tag library: `wdj_icon` (with `**kwargs`: `class`/`class_`, `size`, `title`), `wdj_attrs`, `wdj_uid`, `wdj_get`, `wdj_classes`, `wdj_page_items`, and the `wdj_component` block tag for HTML slots.- 31 components and 2 partial components across four batches: - **A** button, link, input, textarea, checkbox, radio, switch, select (partial), field, label, badge, banner, card, separator, loader, skeleton, empty, typography - **B** sidebar, header, breadcrumbs, tabs, dropdown, pagination - **C** dialog, drawer, tooltip, popover, toast - **D** table, date-picker, combobox (partial), slider- `wdj.js`: delegated interactions for theme switching, auto-resize, sliders, dialogs/drawers, dropdowns, sidebar, table selection, combobox keyboard navigation, toasts, banners, and HTMX integration (`wdj:toast`, focus restoration, error toasts).- Vendored runtime assets (HTMX 2.0.11, Alpine.js 3.17.4, 77 Lucide icons) with a committed icon `manifest.json` and licence files.- Showcase/docs demo app (`showcase`) with a component catalog, per-component example pages, accessibility and install pages.- Server-driven resources table demo (`resources`) with in-memory synthetic data (deterministic, seed 20260101) exercising sort, filter, paginate and select over the full dataset.- pytest suite: template-tag unit tests, render/ARIA tests, and integration tests across every route.- Browser suite (`tests/e2e/`, `browser` marker): Playwright interaction tests (theme, dialog, dropdown, table sort, server-side combobox) and axe-core accessibility scans of the main pages. Runs from a separate GIL Python venv; skips cleanly in the default venv.- Documentation: `README.md`, `docs/DECISIONS.md`, `docs/REFERENCES.md`, `COMPONENT_STATUS.md`, `CONTRIBUTING.md`, `SECURITY.md`, `AGENTS.md`, `NOTICE`, `LICENSE`.### Notes- The demo requires no database (`DATABASES = {}`).- `GlobeMap` / `ChoroplethMap` are intentionally out of scope; charts are implemented via vendored ECharts (see `docs/DECISIONS.md`, decision 14).[Unreleased]: https://example.invalid/wdj/compare/v0.1.0...HEAD[0.1.0]: https://example.invalid/wdj/releases/tag/v0.1.0- Focused wdj design skill with 15 canonical rule examples and five runnable screen recipes, a sidebar-linked `/design-skill/` guide and a complete ZIP download.- Correct concentric-corner example and the wdj-specific 14px token mapping in design references; live previews render the same source distributed to users.