@adia-ai/web-components 0.8.19 → 0.8.20

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 (119) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/components/nav-group/nav-group.a2ui.json +5 -0
  3. package/components/nav-group/nav-group.class.js +14 -6
  4. package/components/nav-group/nav-group.css +5 -2
  5. package/components/nav-group/nav-group.d.ts +2 -0
  6. package/components/nav-group/nav-group.yaml +4 -0
  7. package/dist/theme-provider.min.js +1 -1
  8. package/dist/web-components.min.css +1 -1
  9. package/dist/web-components.min.js +2 -2
  10. package/dist/web-components.sheet.js +1 -1
  11. package/package.json +2 -1
  12. package/components/adia-mark/adia-mark.test.js +0 -69
  13. package/components/adia-wordmark/adia-wordmark.test.js +0 -69
  14. package/components/agent-artifact/agent-artifact.test.js +0 -61
  15. package/components/alert/alert.test.js +0 -364
  16. package/components/color-picker/color-picker.test.js +0 -96
  17. package/components/combobox/combobox.test.js +0 -256
  18. package/components/command/command.test.js +0 -99
  19. package/components/date-range-picker/date-range-picker.test.js +0 -387
  20. package/components/datetime-picker/datetime-picker.test.js +0 -454
  21. package/components/demo-toggle/demo-toggle.test.js +0 -102
  22. package/components/description-list/description-list.test.js +0 -72
  23. package/components/display-field/display-field.test.js +0 -115
  24. package/components/empty-state/empty-state.test.js +0 -77
  25. package/components/field/field.test.js +0 -260
  26. package/components/fields/fields.test.js +0 -88
  27. package/components/inline-message/inline-message.test.js +0 -203
  28. package/components/input/input.test.js +0 -335
  29. package/components/integration-card/integration-card.test.js +0 -318
  30. package/components/link/link.test.js +0 -143
  31. package/components/list/list.test.js +0 -106
  32. package/components/list-window/list-window.test.js +0 -303
  33. package/components/loading-overlay/loading-overlay.test.js +0 -257
  34. package/components/menu/menu.test.js +0 -176
  35. package/components/nav/nav.test.js +0 -428
  36. package/components/nav-group/nav-group.test.js +0 -67
  37. package/components/option-card/option-card.test.js +0 -32
  38. package/components/pagination/pagination.test.js +0 -195
  39. package/components/select/select.test.js +0 -481
  40. package/components/slider/slider.test.js +0 -202
  41. package/components/spinner/spinner.test.js +0 -272
  42. package/components/stat/stat.test.js +0 -108
  43. package/components/step-progress/step-progress.test.js +0 -129
  44. package/components/swatch/swatch.test.js +0 -563
  45. package/components/table/table.test.js +0 -479
  46. package/components/table-toolbar/table-toolbar.test.js +0 -152
  47. package/components/tag/tag.test.js +0 -137
  48. package/components/tags-input/tags-input.test.js +0 -477
  49. package/components/text/text.test.js +0 -202
  50. package/components/theme-provider/theme-provider.test.js +0 -94
  51. package/components/time-picker/time-picker.test.js +0 -287
  52. package/components/timeline/timeline.test.js +0 -31
  53. package/components/toggle-scheme/toggle-scheme.test.js +0 -110
  54. package/components/tree/tree.test.js +0 -312
  55. package/core/element.test.js +0 -389
  56. package/core/icons.test.js +0 -187
  57. package/core/logical-children.test.js +0 -54
  58. package/core/markdown.test.js +0 -47
  59. package/core/responsive.test.js +0 -121
  60. package/core/template.test.js +0 -611
  61. package/traits/active-state/active-state.test.js +0 -28
  62. package/traits/anchor-positioning/anchor-positioning.test.js +0 -122
  63. package/traits/announcer/announcer.test.js +0 -268
  64. package/traits/arrow-grid-nav/arrow-grid-nav.test.js +0 -375
  65. package/traits/attention-pulse/attention-pulse.test.js +0 -26
  66. package/traits/confetti/confetti.test.js +0 -46
  67. package/traits/confetti-burst/confetti-burst.test.js +0 -46
  68. package/traits/count-up/count-up.test.js +0 -54
  69. package/traits/declarative.test.js +0 -138
  70. package/traits/dirty-state/dirty-state.test.js +0 -45
  71. package/traits/drag-ghost/drag-ghost.test.js +0 -19
  72. package/traits/draggable/draggable.test.js +0 -60
  73. package/traits/draggable-list-item/draggable-list-item.test.js +0 -51
  74. package/traits/drop-target/drop-target.test.js +0 -241
  75. package/traits/droppable/droppable.test.js +0 -54
  76. package/traits/droppable-collection/droppable-collection.test.js +0 -99
  77. package/traits/error-shake/error-shake.test.js +0 -114
  78. package/traits/fade-presence/fade-presence.test.js +0 -20
  79. package/traits/focus-restore/focus-restore.test.js +0 -202
  80. package/traits/focus-trap/focus-trap.test.js +0 -42
  81. package/traits/focusable/focusable.test.js +0 -53
  82. package/traits/glow-focus/glow-focus.test.js +0 -31
  83. package/traits/gradient-shift/gradient-shift.test.js +0 -22
  84. package/traits/haptic-feedback/haptic-feedback.test.js +0 -52
  85. package/traits/hotkey/hotkey.test.js +0 -61
  86. package/traits/hoverable/hoverable.test.js +0 -24
  87. package/traits/inertia-drag/inertia-drag.test.js +0 -33
  88. package/traits/input-mask/input-mask.test.js +0 -151
  89. package/traits/intersection-observer/intersection-observer.test.js +0 -38
  90. package/traits/keyboard-nav/keyboard-nav.test.js +0 -41
  91. package/traits/keyboard-reorderable/keyboard-reorderable.test.js +0 -45
  92. package/traits/layout-animation/layout-animation.test.js +0 -114
  93. package/traits/long-press/long-press.test.js +0 -244
  94. package/traits/magnetic-hover/magnetic-hover.test.js +0 -30
  95. package/traits/noise-texture/noise-texture.test.js +0 -20
  96. package/traits/parallax/parallax.test.js +0 -26
  97. package/traits/portal/portal.test.js +0 -30
  98. package/traits/pressable/pressable.test.js +0 -73
  99. package/traits/resettable/resettable.test.js +0 -100
  100. package/traits/resizable/resizable.test.js +0 -39
  101. package/traits/resize-observer/resize-observer.test.js +0 -38
  102. package/traits/ripple/ripple.test.js +0 -32
  103. package/traits/roving-tabindex/roving-tabindex.test.js +0 -28
  104. package/traits/scale-press/scale-press.test.js +0 -39
  105. package/traits/scroll-lock/scroll-lock.test.js +0 -45
  106. package/traits/scroll-progress/scroll-progress.test.js +0 -182
  107. package/traits/shimmer-loading/shimmer-loading.test.js +0 -43
  108. package/traits/smoke.test.js +0 -111
  109. package/traits/snap-to-grid/snap-to-grid.test.js +0 -40
  110. package/traits/sound-feedback/sound-feedback.test.js +0 -26
  111. package/traits/spring-animate/spring-animate.test.js +0 -28
  112. package/traits/success-checkmark/success-checkmark.test.js +0 -120
  113. package/traits/tilt-hover/tilt-hover.test.js +0 -32
  114. package/traits/tossable/tossable.test.js +0 -31
  115. package/traits/traits-host.test.js +0 -73
  116. package/traits/typeahead/typeahead.test.js +0 -38
  117. package/traits/typewriter/typewriter.test.js +0 -47
  118. package/traits/validation/validation.test.js +0 -93
  119. package/traits/view-transition/view-transition.test.js +0 -268
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog — @adia-ai/web-components
2
2
 
3
+ ## [0.8.20] — 2026-07-28
4
+
5
+ ### Fixed
6
+ - **The npm tarball no longer ships `*.test.js`** (gh#462) — the `files` roster excluded examples/html but never unit tests, so 108 test file(s) rode the 0.8.19 tarball. `!**/*.test.js` appended as the roster's LAST entry (npm's files globbing is order-sensitive — a leading exclude is overridden by later directory includes). Proof: `npm pack --dry-run` → 0 test files, runtime files intact.
7
+
8
+ ### Changed
9
+ - **`nav-group-ui`: the selected-look header color also keys on `[selected]`** — the CSS half of the gh#459 ruling (PR #460 corrected the icon weight, but the `--nav-group-fg-selected` header treatment still keyed on `[open]`, so an expanded-but-inactive group read as the active section while a collapsed-but-active one read plain — the exact screenshot that reopened this). The `[open]` indent rail stays structural.
10
+ - **`nav-group-ui`: the filled header glyph tracks `[selected]`, not `[open]`** (gh#459, operator ruling) — the fill marks the group containing the selected route; a merely-expanded group stays regular, and a collapsed-but-active one fills. `selected` becomes a declared reflected prop (yaml + types); `[open]` keeps driving `aria-expanded` only. Consumers that already set `[selected]` from active-route logic (the adiav2 admin shell does) get the corrected behavior with no changes.
11
+
12
+ ### Maintenance
13
+ - **`components/` touched in this release window** (6 file(s), e.g. `nav-group/nav-group.a2ui.json`) — carried by the entries above.
14
+ - **`dist/` bundles rebuilt** in this cut's window (4 file(s)) — regenerated from the source changes described above, not independent edits.
15
+
3
16
  ## [0.8.19] — 2026-07-27
4
17
 
5
18
  ### Added
@@ -36,6 +36,11 @@
36
36
  "type": "boolean",
37
37
  "default": false
38
38
  },
39
+ "selected": {
40
+ "description": "Marks the group containing the selected route (consumers set it from active-route logic). Drives the filled header glyph — selection, never mere expansion (gh#459).",
41
+ "type": "boolean",
42
+ "default": false
43
+ },
39
44
  "text": {
40
45
  "description": "Visible group label.",
41
46
  "type": "string",
@@ -35,6 +35,10 @@ export class UINavGroup extends UIElement {
35
35
  icon: { type: String, default: '', reflect: true },
36
36
  badge: { type: String, default: '', reflect: true },
37
37
  open: { type: Boolean, default: false, reflect: true },
38
+ // gh#459: marks the group that CONTAINS the selected route — drives the
39
+ // filled header glyph (selection, never mere expansion) and the CSS
40
+ // selected treatment. Consumers set it from their active-route logic.
41
+ selected: { type: Boolean, default: false, reflect: true },
38
42
  collapsible: { type: Boolean, default: true, reflect: true },
39
43
  variant: { type: String, default: '', reflect: true },
40
44
  };
@@ -87,13 +91,17 @@ export class UINavGroup extends UIElement {
87
91
 
88
92
  this.setAttribute('aria-expanded', String(this.open));
89
93
 
90
- // Mirrors nav-item-ui's selected → fill convention: an open group
91
- // reads as the active section via the same filled-glyph treatment
92
- // [open] already drives (nav-group.css's [open] > [slot=header] color
93
- // rule) a state-driven weight swap, not a CSS color change, since
94
- // Phosphor ships filled/regular as distinct SVGs.
94
+ // Mirrors nav-item-ui's selected → fill convention: the filled glyph
95
+ // marks SELECTION, not expansion (gh#459, operator ruling 2026-07-27)
96
+ // the group CONTAINING the selected route fills (consumers set [selected]
97
+ // on it), while a merely-expanded group stays regular. Keyed on the
98
+ // attribute so it works whether or not a consumer uses the property
99
+ // path; [open] keeps driving aria-expanded only. A state-driven weight
100
+ // swap, not a CSS color change, since Phosphor ships filled/regular as
101
+ // distinct SVGs.
95
102
  const iconEl = this.querySelector('[slot="header"] [slot="icon"] icon-ui');
96
- if (iconEl) iconEl.setAttribute('weight', this.open ? 'fill' : 'regular');
103
+ if (iconEl)
104
+ iconEl.setAttribute('weight', this.hasAttribute('selected') ? 'fill' : 'regular');
97
105
  }
98
106
 
99
107
  showPopover() {
@@ -49,8 +49,11 @@
49
49
  background: var(--nav-group-indent-rail-bg);
50
50
  pointer-events: none;
51
51
  }
52
- :scope[open] > [slot="header"],
53
- :scope[open] > [slot="header"] [slot="icon"] {
52
+ /* Selected-look header treatment keys on [selected] the CSS half of
53
+ gh issue 459 (PR 460 corrected the icon weight): the group CONTAINING
54
+ the selected route reads strong; a merely-expanded group does not. */
55
+ :scope[selected] > [slot="header"],
56
+ :scope[selected] > [slot="header"] [slot="icon"] {
54
57
  color: var(--nav-group-fg-selected);
55
58
  }
56
59
 
@@ -38,6 +38,8 @@ export class UINavGroup extends UIElement {
38
38
  icon: string;
39
39
  /** Inline-expanded state. Toggled by header click when [collapsible]. */
40
40
  open: boolean;
41
+ /** Marks the group containing the selected route (consumers set it from active-route logic). Drives the filled header glyph — selection, never mere expansion (gh#459). */
42
+ selected: boolean;
41
43
  /** Visible group label. */
42
44
  text: string;
43
45
  /** Visual treatment. Default ('') renders as a primary-rail group (icon row, caret, collapsible). 'section' renders the header as a static kicker label with always-visible children. When the parent <nav-ui> carries variant="section", this group inherits it via CSS cascade unless an explicit variant is set on the group. */
@@ -37,6 +37,10 @@ props:
37
37
  type: boolean
38
38
  default: false
39
39
  description: "Inline-expanded state. Toggled by header click when [collapsible]."
40
+ selected:
41
+ type: boolean
42
+ default: false
43
+ description: "Marks the group containing the selected route (consumers set it from active-route logic). Drives the filled header glyph — selection, never mere expansion (gh#459)."
40
44
  collapsible:
41
45
  type: boolean
42
46
  default: true