kaafil-react-uikit 0.10.1 → 0.10.2

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/CHANGELOG.md CHANGED
@@ -6,6 +6,24 @@ 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.10.2] — 2026-09-15
10
+
11
+ ### Fixed
12
+
13
+ - **An itinerary with no times no longer indents every row behind an empty
14
+ column.** `.kf-share-view__plan-time` is a fixed `inline-size` with
15
+ `flex-shrink: 0`, so it held its width whether or not it had anything in it.
16
+ When SOME rows carry a time that is correct — the ones without still need to
17
+ indent or the titles stop lining up. When NO row does, every title sat behind
18
+ a blank column that reads as a missing icon rather than as an absent time.
19
+
20
+ A `startTime` is optional on an itinerary item and a brochure day plan
21
+ usually has none — "Day 9: Solang Valley, free evening in Manali" is a whole
22
+ day, not an appointment — so the all-empty case is the common one, not the
23
+ edge. `TodayPlanSection` and `ItineraryDayStrip` now decide per LIST, not per
24
+ row: the column is dropped entirely when nothing in the day would fill it,
25
+ and kept for alignment as soon as one item would.
26
+
9
27
  ## [0.10.1] — 2026-09-15
10
28
 
11
29
  Two long-standing bugs that only bite together, found when the traveller
@@ -1274,6 +1274,11 @@ function HouseholdBanner({ label, names }) {
1274
1274
  }
1275
1275
  );
1276
1276
  }
1277
+
1278
+ // src/traveller/KaafilShareView/internal/sections/planRow.ts
1279
+ function usesTimeColumn(items) {
1280
+ return items.some((item) => item.startTime !== null || item.timeState === "now");
1281
+ }
1277
1282
  function ItineraryDayStrip({
1278
1283
  itinerary,
1279
1284
  timezone,
@@ -1283,6 +1288,7 @@ function ItineraryDayStrip({
1283
1288
  const { t } = chunkS53XNHRU_cjs.useKaafilChrome();
1284
1289
  const todayIndex = itinerary.days.findIndex((day) => day.isToday);
1285
1290
  const selectedDay = itinerary.days[selectedIndex] ?? itinerary.days[0];
1291
+ const showTime = usesTimeColumn(selectedDay?.items ?? []);
1286
1292
  if (itinerary.days.length === 0 || selectedDay === void 0) {
1287
1293
  return null;
1288
1294
  }
@@ -1332,7 +1338,7 @@ function ItineraryDayStrip({
1332
1338
  {
1333
1339
  className: `kf-share-view__row kf-share-view__plan-row kf-share-view__plan-row--${item.timeState}`,
1334
1340
  children: [
1335
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-share-view__plan-time kf-num", children: item.timeState === "now" ? t("chrome.shareView.plan.now") : item.startTime !== null ? formatTimeOfDay(item.startTime, timezone) : "" }),
1341
+ showTime ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-share-view__plan-time kf-num", children: item.timeState === "now" ? t("chrome.shareView.plan.now") : item.startTime !== null ? formatTimeOfDay(item.startTime, timezone) : "" }) : null,
1336
1342
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-share-view__plan-title", children: item.title })
1337
1343
  ]
1338
1344
  },
@@ -1647,6 +1653,7 @@ function TodayPlanSection({ itinerary, timezone }) {
1647
1653
  if (today === void 0 || today.items.length === 0) {
1648
1654
  return null;
1649
1655
  }
1656
+ const showTime = usesTimeColumn(today.items);
1650
1657
  return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.shareView.today.eyebrow"), children: [
1651
1658
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-share-view__eyebrow-row", children: [
1652
1659
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-eyebrow", children: t("chrome.shareView.today.eyebrow") }),
@@ -1657,7 +1664,7 @@ function TodayPlanSection({ itinerary, timezone }) {
1657
1664
  {
1658
1665
  className: `kf-share-view__row kf-share-view__plan-row kf-share-view__plan-row--${item.timeState}`,
1659
1666
  children: [
1660
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-share-view__plan-time kf-num", children: item.timeState === "now" ? t("chrome.shareView.plan.now") : item.startTime !== null ? formatTimeOfDay(item.startTime, timezone) : "" }),
1667
+ showTime ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-share-view__plan-time kf-num", children: item.timeState === "now" ? t("chrome.shareView.plan.now") : item.startTime !== null ? formatTimeOfDay(item.startTime, timezone) : "" }) : null,
1661
1668
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-share-view__plan-title", children: item.title })
1662
1669
  ]
1663
1670
  },