Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ All notable changes to `ichava/core` follow [Keep a Changelog](https://keepachan

### Changed

- **The icon-sets catalog lists `ichava/icon-sets-openmoji` and counts emoji as Twemoji only.** `icon-sets.json` gains the openmoji set (8,568 icons, `latest_version` null until the pack is tagged), and the emoji set's count, description and licence follow icon-sets-emoji#99 (3,435 Twemoji icons; OpenMoji moved out). `docs/installation.md`'s pack table follows, as `InstallationPackTableTest` requires. Edited by hand: `bin/sync-icon-sets.php` counts a pack at its latest tag, and emoji's `v0.1.0` still carries the OpenMoji sets until the release re-squash, so the nightly sync will propose emoji's old count back until then.
- **The sanitiser keeps `display`, `color` and `marker-*`, each behind a value guard** (parity with ichava/icon-sets-sync#85). A dry run of OpenMoji 17 stripped `display="none"` from 13 subdivision flags, so their hidden shapes would render. `resources/security/svg-policy.json` now matches icon-sets-sync's copy byte for byte (sha256 `7a7c07fd…`): it allows the five names and adds `_allowedAttributes_addendum_presentation`. `display` must be bare keywords, `color` must pass `SvgCssGuard`, and `marker-start`/`marker-mid`/`marker-end` must be `none` or `url(#id)`; `display="url(x)"`, `marker-end="url(https://e/x)"`, `color: expression(…)` and `sodipodi:docname` are still stripped. The sanitiser also drops non-whitespace text and CDATA directly under `<svg>` or `<g>` and keeps the indentation; text in `<title>`, `<desc>`, `<text>` and `<tspan>` is untouched. Across 142,247 pack SVGs, 36 outputs changed: 17 for `display`, 17 for `color`, and 2 for stray text (OpenMoji's 1F684 high-speed train, eos-icons' link-off). `RENDER_PIPELINE_VERSION` is now 4, because the stray-text rule changes output that the attribute hash does not see. `tests/Unit/SvgPresentationParityTest.php`, with `tests/fixtures/svg/presentation-vectors.json` shared with react-icon-browser and js-icon-components.
- **Doctor's `--format=json` prints a report** instead of the table: `{passed, checks: [...]}`. The table output and the exit code are unchanged.
- **Kind decides render-time budgets by every row.** `IconRegistry::render()` and `kindOf()` used the category and pack kind only; an item or rule kind now applies too, so render agrees with the stored row.
Expand Down
3 changes: 2 additions & 1 deletion docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,8 @@ the repositories block in step 1, then require it. Some of the public ones:
|---|---|---|
| `ichava/icon-sets-tabler` | 6,238 | `https://github.com/ichava/icon-sets-tabler` |
| `ichava/icon-sets-flag` | 542 | `https://github.com/ichava/icon-sets-flag` |
| `ichava/icon-sets-emoji` | 10,567 | `https://github.com/ichava/icon-sets-emoji` |
| `ichava/icon-sets-emoji` | 3,435 | `https://github.com/ichava/icon-sets-emoji` |
| `ichava/icon-sets-openmoji` | 8,568 | `https://github.com/ichava/icon-sets-openmoji` |

```bash
composer require ichava/icon-sets-tabler:^0.1
Expand Down
25 changes: 21 additions & 4 deletions icon-sets.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,32 @@
"package": "ichava/icon-sets-emoji",
"repository": "ichava/icon-sets-emoji",
"title": "Emoji Sets",
"description": "Multi-source emoji bundle (Twemoji, OpenMoji color, OpenMoji black). Unicode 17 / Emoji 17 spec. Categorised by Unicode CLDR groups.",
"license": "MIT (code) / CC-BY 4.0 (Twemoji assets) / CC-BY-SA 4.0 (OpenMoji assets)",
"icon_count": 10567,
"description": "Twemoji, Twitter/X's open-source emoji set, as SVG. Unicode 17 / Emoji 17 spec. Categorised by Unicode CLDR groups. OpenMoji is in ichava/icon-sets-openmoji.",
"license": "MIT (code) / CC-BY 4.0 (Twemoji assets)",
"icon_count": 3435,
"variants": [
"default"
],
"latest_version": "0.1.0",
"icon_counts": {
"icon": 10567,
"icon": 3435,
"illustration": 0
}
},
{
"key": "openmoji",
"package": "ichava/icon-sets-openmoji",
"repository": "ichava/icon-sets-openmoji",
"title": "OpenMoji",
"description": "OpenMoji emoji in two sets (colour and black outline), Unicode emoji 16.0, grouped by Unicode CLDR category. Moved verbatim from ichava/icon-sets-emoji.",
"license": "MIT (code) / CC-BY-SA 4.0 (OpenMoji assets)",
"icon_count": 8568,
"variants": [
"default"
],
"latest_version": null,
"icon_counts": {
"icon": 8568,
"illustration": 0
}
}
Expand Down
Loading