kaafil-react-uikit 0.11.8 → 0.13.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 (55) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/dist/admin/index.cjs +363 -381
  3. package/dist/admin/index.cjs.map +1 -1
  4. package/dist/admin/index.js +6 -24
  5. package/dist/admin/index.js.map +1 -1
  6. package/dist/chunk-5QFW5GL4.cjs +24 -0
  7. package/dist/chunk-5QFW5GL4.cjs.map +1 -0
  8. package/dist/{chunk-5ORJRFXZ.cjs → chunk-64AFXHOF.cjs} +6 -4
  9. package/dist/chunk-64AFXHOF.cjs.map +1 -0
  10. package/dist/{chunk-YJJ4DI42.js → chunk-AKJLIH5A.js} +6 -4
  11. package/dist/chunk-AKJLIH5A.js.map +1 -0
  12. package/dist/{chunk-ZKLX6YRT.js → chunk-BT2ZX3JY.js} +5 -5
  13. package/dist/{chunk-ZKLX6YRT.js.map → chunk-BT2ZX3JY.js.map} +1 -1
  14. package/dist/{chunk-U6IE2UYL.js → chunk-CJLQ2Z4Q.js} +3 -3
  15. package/dist/{chunk-U6IE2UYL.js.map → chunk-CJLQ2Z4Q.js.map} +1 -1
  16. package/dist/{chunk-F2ENMVT7.js → chunk-DXDSCQLC.js} +3 -3
  17. package/dist/{chunk-F2ENMVT7.js.map → chunk-DXDSCQLC.js.map} +1 -1
  18. package/dist/{chunk-ARXY3ZA7.cjs → chunk-GD5UU4G6.cjs} +85 -85
  19. package/dist/{chunk-ARXY3ZA7.cjs.map → chunk-GD5UU4G6.cjs.map} +1 -1
  20. package/dist/{chunk-RCWSMWQD.js → chunk-IAKK2CKB.js} +3 -3
  21. package/dist/{chunk-RCWSMWQD.js.map → chunk-IAKK2CKB.js.map} +1 -1
  22. package/dist/chunk-JOUTGBUJ.js +22 -0
  23. package/dist/chunk-JOUTGBUJ.js.map +1 -0
  24. package/dist/{chunk-KJSQLVBR.cjs → chunk-JY2C4S3J.cjs} +55 -55
  25. package/dist/{chunk-KJSQLVBR.cjs.map → chunk-JY2C4S3J.cjs.map} +1 -1
  26. package/dist/chunk-KFOCETDW.cjs +12 -0
  27. package/dist/{chunk-YKBA4WQJ.cjs.map → chunk-KFOCETDW.cjs.map} +1 -1
  28. package/dist/{chunk-T5JYKERY.cjs → chunk-LSOV3FJL.cjs} +12 -12
  29. package/dist/{chunk-T5JYKERY.cjs.map → chunk-LSOV3FJL.cjs.map} +1 -1
  30. package/dist/{chunk-XGPX7TYV.js → chunk-LW2YB7VC.js} +3 -3
  31. package/dist/{chunk-XGPX7TYV.js.map → chunk-LW2YB7VC.js.map} +1 -1
  32. package/dist/{chunk-6QSHORU3.cjs → chunk-MLVS5KS6.cjs} +17 -17
  33. package/dist/{chunk-6QSHORU3.cjs.map → chunk-MLVS5KS6.cjs.map} +1 -1
  34. package/dist/{chunk-XWU5MCY3.cjs → chunk-TCVXLZ4H.cjs} +9 -9
  35. package/dist/{chunk-XWU5MCY3.cjs.map → chunk-TCVXLZ4H.cjs.map} +1 -1
  36. package/dist/{chunk-LJO2FGFD.js → chunk-TFFHYZMZ.js} +5 -5
  37. package/dist/{chunk-LJO2FGFD.js.map → chunk-TFFHYZMZ.js.map} +1 -1
  38. package/dist/{chunk-VHBGE4BY.cjs → chunk-XNZU6ZLX.cjs} +4 -4
  39. package/dist/{chunk-VHBGE4BY.cjs.map → chunk-XNZU6ZLX.cjs.map} +1 -1
  40. package/dist/{chunk-LOLQNRIK.js → chunk-YSJXNKCU.js} +3 -3
  41. package/dist/{chunk-LOLQNRIK.js.map → chunk-YSJXNKCU.js.map} +1 -1
  42. package/dist/core/index.cjs +107 -107
  43. package/dist/core/index.js +10 -10
  44. package/dist/manager/index.cjs +273 -298
  45. package/dist/manager/index.cjs.map +1 -1
  46. package/dist/manager/index.d.cts +46 -2
  47. package/dist/manager/index.d.ts +46 -2
  48. package/dist/manager/index.js +21 -46
  49. package/dist/manager/index.js.map +1 -1
  50. package/dist/traveller/index.cjs +35 -35
  51. package/dist/traveller/index.js +5 -5
  52. package/package.json +14 -14
  53. package/dist/chunk-5ORJRFXZ.cjs.map +0 -1
  54. package/dist/chunk-YJJ4DI42.js.map +0 -1
  55. package/dist/chunk-YKBA4WQJ.cjs +0 -12
package/CHANGELOG.md CHANGED
@@ -6,6 +6,86 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this package uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
  While on `0.x` a minor bump may carry a breaking change; the entry will say so.
8
8
 
9
+ ## [0.13.0] — 2026-09-21
10
+
11
+ ### Fixed
12
+
13
+ - **The manifest's diet figures were wrong, and quietly so.** `normalizeDiet`
14
+ existed as three verbatim copies in three families, and all three tested raw
15
+ EXACT EQUALITY against `V|VEG|VEGETARIAN` / `NV|NON-VEG|NONVEG|NON_VEG` /
16
+ `J|JAIN` over `Traveller.dietary` — a free-text column the CRM supplies, whose
17
+ own published example is `"Vegetarian, no nuts"`.
18
+
19
+ Case was handled; nothing else was. `"Pure veg"`, `"Vegetarian, no nuts"`,
20
+ `"Vegan"`, `"Halal"` and `"Non veg"` (space, no hyphen) all normalised to
21
+ `null`, which the UI rendered identically to "nothing recorded". A 20-pax trip
22
+ with twelve vegetarians spelled five ways showed a **`Veg 4 / 20`** stat card,
23
+ and the kitchen ordered four meals. The filter chips did not sum to the roster
24
+ and offered no bucket the other eight could appear in, so tapping "Veg" to
25
+ build a meal list silently excluded them.
26
+
27
+ There is now one implementation in `core/`, with 34 tests.
28
+
29
+ - **A traveller's dietary text could vanish from their profile.**
30
+ `deriveDietaryRows` pushed the Meal row with `value: mealPreference ?? ''`, so
31
+ when the CRM sent only `dietary`, the raw string was never rendered: a
32
+ `"Vegetarian, no nuts"` traveller showed a `V` badge and the nut allergy
33
+ appeared nowhere on the screen. The raw value is now shown when no separate
34
+ meal preference exists.
35
+
36
+ ### Changed
37
+
38
+ - **BREAKING — `ManifestDiet` is now `'V' | 'NV' | 'J' | 'OTHER'`.** An
39
+ exhaustive `switch` or a `Record<ManifestDiet, …>` in consumer code will no
40
+ longer compile until it handles `OTHER`. This is the fix, not a side effect:
41
+ the previous three-state set had nowhere to put a recorded-but-unrecognised
42
+ value, so it used `null` and the value disappeared. `null` now means only that
43
+ the column is empty, which is what makes the counts account for every
44
+ traveller.
45
+
46
+ `VEGAN` and `HALAL` bucket as `OTHER` rather than `V`. Folding them into the
47
+ vegetarian count would report them as served by the vegetarian meal and remove
48
+ the only signal that something further is needed.
49
+
50
+ - **A new "Other" diet filter chip**, with its `en`/`hi` labels, so the chip
51
+ counts plus the unrecorded remainder account for the whole roster.
52
+
53
+ - **`diet` is gone from the agency settings screen's rooming strategy picker.**
54
+ It was the last place a human could still select a heuristic key the engine had
55
+ stopped accepting.
56
+
57
+ - **Peer floor moves to `kaafil-js@^0.9.0`**, which is why this is a minor rather
58
+ than a patch on that count too. The engine no longer accepts `diet` in a
59
+ rooming `strategyOrder`, and `kaafil-js@0.8.0`'s `RoomingHeuristicKey` still
60
+ lists it — so on the old floor a consumer could write code that typechecks and
61
+ is then refused at runtime. Following the precedent 0.12.0 set: when the fix
62
+ lives elsewhere, the floor is how a consumer actually gets it.
63
+
64
+ ### Notes
65
+
66
+ - The bucket rules mirror the engine's own `dietBucketOf`, and were verified to
67
+ agree with it on 32 inputs including every edge case in the corpus. The engine
68
+ additionally publishes `facets.dietBuckets` and a `?dietBucket=` filter; this
69
+ package still buckets client-side and does not require either.
70
+
71
+ ## [0.12.0] — 2026-09-18
72
+
73
+ ### Changed
74
+
75
+ - **Peer floor moves to `kaafil-js@^0.8.0`**, which is why this is a minor and
76
+ not a patch: a consumer pinned to `0.7.x` can no longer install this version.
77
+ The previous floor move was shipped as a patch; that understated it, and this
78
+ entry says so rather than repeating it.
79
+
80
+ 0.8.0 makes a drain pull the lanes it applied something on. That closes the
81
+ gap 0.11.8 documented under "Known": a write enqueued without an
82
+ `entity`/`optimistic` pairing reaches the server and leaves the local
83
+ snapshot untouched, so a snapshot-backed list stayed missing its own
84
+ successful write until the screen was reopened. The Recent expenses list on
85
+ the manager's Money tab was the case found in the field. Nothing in this
86
+ package changed for it — the fix is in the engine, and this floor is how a
87
+ consumer actually gets it.
88
+
9
89
  ## [0.11.8] — 2026-09-18
10
90
 
11
91
  ### Fixed