apexgrid-skill 2.1.1 → 2.2.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/SKILL.md CHANGED
@@ -12,8 +12,8 @@ description: >
12
12
  model, and the `dataPipelineConfiguration` hooks for server-side data.
13
13
  metadata:
14
14
  author: ApexCharts
15
- version: "2.1.0"
16
- library_version: "3.3.0"
15
+ version: "2.2.0"
16
+ library_version: "3.4.0"
17
17
  category: data-visualization
18
18
  tags: [grid, data-grid, table, web-component, lit, apex-grid]
19
19
  docs: https://github.com/apexcharts/apexgrid
@@ -373,6 +373,24 @@ Single-shot events (no `-ing` pair):
373
373
 
374
374
  Operand reference, multi-column sort, and server-side hooks: `references/sort-and-filter.md` and `references/data-pipeline.md`. Row pinning/reorder, undo/redo, validators, column groups, state/schema, and localization: `references/state-and-features.md`.
375
375
 
376
+ ### Keyboard & accessibility (3.4)
377
+
378
+ The grid ships full keyboard operation and screen-reader support out of the box; there's nothing to enable. The body uses a **roving-tabindex** focus model: the active cell is the body's single tab stop, so `Tab` moves into and out of the grid in one step, and real focus follows arrow-key navigation (screen readers track cell-to-cell movement).
379
+
380
+ | Key | Moves / does |
381
+ |---|---|
382
+ | Arrow keys | Move the active cell one cell up / down / left / right |
383
+ | Home / End | Move to the **first / last cell of the current row** |
384
+ | Ctrl/Cmd+Home / Ctrl/Cmd+End | Jump to the grid's first / last cell |
385
+ | PageUp / PageDown | Page-scroll by a viewport |
386
+ | Enter or F2 | Open the active cell's editor (editing is no longer pointer-only) |
387
+
388
+ Keyboard-driven commit (Enter) or cancel (Escape) returns focus to the cell, so navigation continues from where you left off.
389
+
390
+ **Editing behavior:** clearing a `number` or `currency` editor now commits `null` (previously it wrote `NaN`). An empty or unparseable numeric input leaves the cell empty rather than poisoning the row.
391
+
392
+ **Announcements:** sorting, filtering, selection, paging, row pinning, row reorder, expansion, and undo / redo each announce through a localized live region, and the host applies a localized `aria-label` ("Data grid") plus `aria-multiselectable` when multi-row selection is on. The strings are locale keys (`announce.*`, `header.*`, `grid.label`, `editor.rating`); override them via `localeText` (see `references/state-and-features.md`).
393
+
376
394
  ---
377
395
 
378
396
  ## 6. Pitfalls — ❌ Wrong vs ✅ Correct
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apexgrid-skill",
3
- "version": "2.1.1",
3
+ "version": "2.2.0",
4
4
  "description": "AI coding skill for the apex-grid web component — structured reference docs that help AI assistants (Claude, Cursor, Copilot, etc.) generate correct apex-grid code.",
5
5
  "keywords": [
6
6
  "apex-grid",
@@ -173,6 +173,8 @@ import { required, min, max, pattern, custom } from 'apex-grid';
173
173
 
174
174
  Built-in factories: `required(message?)`, `min(limit, message?)`, `max(limit, message?)`, `pattern(regex, message?)`, `custom(fn)`. `min`/`max`/`pattern` pass on empty / non-numeric values — compose with `required`. See `references/state-and-features.md` for the `Validator` / `ValidatorContext` shapes and the `cellValidationFailed` payload.
175
175
 
176
+ **Numeric editing (3.4):** clearing a `number` or `currency` editor now commits `null`, not `NaN`. An empty or unparseable numeric input leaves the cell empty instead of writing `NaN` into the row. Editing also opens from the keyboard now (Enter or F2 on the active cell), not only by pointer; see SKILL.md §5 for the full keyboard model. Separately, a spreadsheet-style error value (an object carrying a `#...` code, such as an enterprise formula engine's `#VALUE!`) renders as its code in typed `number` / `currency` columns rather than coercing to `NaN` and showing an empty cell.
177
+
176
178
  ## Auto-generation — the fastest demo
177
179
 
178
180
  The shortest possible "just show me a table" example:
@@ -1,6 +1,6 @@
1
1
  # State, Localization & Interaction Features (3.1+)
2
2
 
3
- > Everything here landed in **apex-grid 3.1 – 3.3** on top of the 3.0 API. The setup rules from `SKILL.md` (register + bounded host height, no theme import) still apply. Row pinning / reordering, undo-redo, and validators are all **opt-in** via a config object — off by default.
3
+ > Everything here landed in **apex-grid 3.1 – 3.4** on top of the 3.0 API. The setup rules from `SKILL.md` (register + bounded host height, no theme import) still apply. Row pinning / reordering, undo-redo, and validators are all **opt-in** via a config object — off by default.
4
4
 
5
5
  ## Row pinning — sticky top / bottom bands
6
6
 
@@ -172,6 +172,8 @@ grid.localize('pagination.summary', { start: 1, end: 25, total: 100 }); // res
172
172
 
173
173
  Exports: `EN_LOCALE` (the default dictionary / source of truth for keys), `esLocale` (ready-made Spanish), `interpolate` (`{token}` substitution), `localize`, and the types `GridLocaleKey` / `GridLocaleText` / `LocaleParams`. `grid.localize(key, params?, fallback?)` applies any `localeText` override over the English default and interpolates `{placeholder}` tokens; `fallback` covers keys outside the built-in set (e.g. a custom operand label).
174
174
 
175
+ **3.4 key changes** (both English and Spanish): the accessibility work added live-region announcement keys (`announce.*`, e.g. `announce.sortedAscending`, `announce.page`, `announce.rowSelected`, `announce.undoOne`), header control / sort-state labels (`header.*`, e.g. `header.sortedAscending`, `header.filterColumn`, `header.columnMenu`), the host label `grid.label` ("Data grid"), and `editor.rating`. The `ai.noAdapter` key was **removed** (drop it from any `localeText` override you kept). `EN_LOCALE` remains the source of truth for the full, current key list.
176
+
175
177
  ## Column menu & column separator
176
178
 
177
179
  | Property | Type | Default | Notes |