@celestia-island/hikari 0.55.191 → 0.55.192

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celestia-island/hikari",
3
- "version": "0.55.191",
3
+ "version": "0.55.192",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Hikari Vue 3 component library — production-grade UI components based on shittim-chest design system",
@@ -1,5 +1,5 @@
1
1
  import { computed, defineComponent, onUnmounted, ref, watch, type PropType } from "vue";
2
- import { Check, Monitor, MoonStar, Palette, Sun, Trash as Trash2 } from "lucide-vue-next";
2
+ import { Monitor, MoonStar, Palette, Sun, Trash as Trash2 } from "lucide-vue-next";
3
3
  import {
4
4
  HDivider,
5
5
  solarAltitude,
@@ -274,12 +274,15 @@ export const HkThemePanelContent = defineComponent({
274
274
  data-active={currentTheme.value === th.id || undefined}
275
275
  onClick={() => onSelectTheme(th.id)}
276
276
  >
277
+ {/* The selected-check fallback is RETIRED (2026-10-21
278
+ user direction): selection is conveyed by the row's
279
+ data-active wash alone — with the leading icon cell
280
+ gone across hosts, the leftover check read as a
281
+ stray icon. No leading slot = no leading mark. */}
277
282
  {leadingSlot ? (
278
283
  <span class="hk-menu-item-icon s-theme-item-lead">
279
284
  {leadingSlot(scope)}
280
285
  </span>
281
- ) : currentTheme.value === th.id ? (
282
- <span class="hk-menu-item-icon s-theme-item-check"><Check size={14} /></span>
283
286
  ) : null}
284
287
  <span class="s-theme-item-name">{displayName}</span>
285
288
  {nameSuffixSlot ? (
@@ -329,10 +329,9 @@
329
329
  margin-inline-end: 2rem;
330
330
  }
331
331
 
332
- .s-theme-item-check {
333
- flex-shrink: 0;
334
- color: rgb(var(--color-primary));
335
- }
332
+ /* The selected-check cell retired with its render branch (2026-10-21
333
+ * user direction): the active row's data-active wash is the sole
334
+ * selection indicator. */
336
335
 
337
336
  /* Hover/active states come verbatim from the unified mi.item spec included
338
337
  * on .s-theme-item-btn above — former local copies deleted (R3 sweep). */
@@ -280,9 +280,12 @@ describe("HkThemeToggle color-mode group", () => {
280
280
  }
281
281
  expect(customRows).toBe(1);
282
282
 
283
- // Active check glyph sits inside the pill, leading the name.
283
+ // The active row's selection indicator is the data-active wash alone:
284
+ // the check glyph retired with the leading-icon cell (2026-10-21 user
285
+ // direction). No leading mark renders without an item-leading slot.
284
286
  const activeBtn = document.body.querySelector<HTMLButtonElement>(".s-theme-item-btn[data-active]");
285
- expect(activeBtn?.querySelector(".s-theme-item-check")).toBeTruthy();
287
+ expect(activeBtn).toBeTruthy();
288
+ expect(activeBtn?.querySelector(".s-theme-item-check")).toBeNull();
286
289
 
287
290
  // The ROW is the pill (2026-10-01): the active state surfaces on the
288
291
  // row element too, so the highlight spans the full row width instead
@@ -25,7 +25,7 @@ export { type ThemeItemScope } from "./HkThemePanelContent";
25
25
  *
26
26
  * Theme rows are host-customizable through three scoped slots (all render
27
27
  * in the popover AND the mobile bottom sheet — same DOM):
28
- * · `item-leading` — replaces the selected-check cell; renders for
28
+ * · `item-leading` — renders for
29
29
  * every row in the fixed icon cell so names align regardless of the
30
30
  * active row. Scope: `ThemeItemScope` (id/name/isCustom/preset).
31
31
  * · `item-name-suffix` — an inline cell rendered INSIDE the row button,