@kungal/ui-core 2.32.1 → 2.34.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.
Files changed (2) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/package.json +5 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # @kungal/ui-core
2
2
 
3
+ ## 2.34.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 13d9bb6: Icons now generate into two targets: the web bundle and a `kun_ui_icons` package on pub.dev
8
+
9
+ The icon list in `@kungal/ui-core` has always been the single source for every
10
+ icon KunUI renders — a fixed set, extracted from `@iconify-json` at build time
11
+ and inlined, so the library never fetches an icon at runtime. It now emits two
12
+ outputs from that one list instead of one:
13
+
14
+ - **`icons-data.ts` — byte-identical.** Nothing about the web layer changes.
15
+ Same icons, same data, same bundle size. The list itself moved out of
16
+ `gen-icons.mjs` into `scripts/icons-manifest.mjs` so both generators read it;
17
+ the generated file is unchanged.
18
+ - **`kun_ui_icons` on pub.dev**, generated into `packages/ui-icons-flutter`.
19
+ The NextMoe/KunGal apps are Flutter, and Flutter has no DOM to hand an SVG
20
+ body to — its native icon delivery is a font plus `IconData`, which is what
21
+ buys free `IconTheme` colour and size inheritance, `--tree-shake-icons`, and
22
+ no runtime dependency. So the generator outlines the icons and packs them
23
+ into a bundled TTF with one `const IconData` each:
24
+ `Icon(KunIcons.circleCheck)`. Its version is locked to the npm version, like
25
+ `kun_ui_tokens`: `2.33.0` here is `2.33.0` there.
26
+
27
+ lucide draws with **strokes**, and a font glyph has no stroke — only filled
28
+ contours. The generator therefore runs lucide's own font pipeline (rasterise at
29
+ 800px, trace back to an outline, pack at a 1000-unit em), which is the proof
30
+ these exact shapes convert: it is how lucide's official icon font is built. The
31
+ codepoints are allocated once into a committed manifest and never reassigned,
32
+ so an app compiled against an older version keeps rendering the icon it
33
+ compiled against.
34
+
35
+ One icon does not cross. `svg-spinners:90-ring-with-bg` is an _animated_ SVG,
36
+ and no static font format carries motion, so the Flutter package ships 30 of
37
+ the 31 bundled icons; a Flutter app wants a real progress-indicator widget for
38
+ that one anyway. Nothing about the spinner changes on the web.
39
+
40
+ Nothing to do as a consumer of the npm packages: no component, no icon and no
41
+ generated data changed.
42
+
43
+ ## 2.33.0
44
+
3
45
  ## 2.32.1
4
46
 
5
47
  ## 2.32.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kungal/ui-core",
3
- "version": "2.32.1",
3
+ "version": "2.34.0",
4
4
  "description": "KunUI framework-agnostic core — design types, cn(), variant matrix, radius system, utils. No Vue/React.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -45,6 +45,9 @@
45
45
  "devDependencies": {
46
46
  "@iconify-json/lucide": "^1.2.111",
47
47
  "@iconify-json/svg-spinners": "^1.2.4",
48
+ "oslllo-svg-fixer": "^6.0.1",
49
+ "svg2ttf": "^6.1.0",
50
+ "svgicons2svgfont": "^16.0.0",
48
51
  "tsup": "^8.5.0",
49
52
  "typescript": "^5.7.0"
50
53
  },
@@ -53,6 +56,7 @@
53
56
  "dev": "tsup --watch",
54
57
  "typecheck": "tsc --noEmit",
55
58
  "gen:icons": "node scripts/gen-icons.mjs",
59
+ "gen:icons:flutter": "node scripts/gen-icons-flutter.mjs",
56
60
  "gen:scales": "node scripts/gen-tw-scales.mjs",
57
61
  "clean": "rm -rf dist"
58
62
  }