@adia-ai/web-components 0.3.0 → 0.3.1

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 (120) hide show
  1. package/components/card/card.js +1 -1
  2. package/components/row/row.js +1 -1
  3. package/package.json +1 -1
  4. package/traits/{active-state.js → active-state/active-state.js} +1 -1
  5. package/traits/{active-state.test.js → active-state/active-state.test.js} +1 -1
  6. package/traits/{anchor-positioning.js → anchor-positioning/anchor-positioning.js} +1 -1
  7. package/traits/{anchor-positioning.test.js → anchor-positioning/anchor-positioning.test.js} +1 -1
  8. package/traits/{announcer.js → announcer/announcer.js} +1 -1
  9. package/traits/{announcer.test.js → announcer/announcer.test.js} +1 -1
  10. package/traits/{arrow-grid-nav.js → arrow-grid-nav/arrow-grid-nav.js} +1 -1
  11. package/traits/{arrow-grid-nav.test.js → arrow-grid-nav/arrow-grid-nav.test.js} +1 -1
  12. package/traits/{attention-pulse.js → attention-pulse/attention-pulse.js} +2 -2
  13. package/traits/{attention-pulse.test.js → attention-pulse/attention-pulse.test.js} +1 -1
  14. package/traits/{confetti.js → confetti/confetti.js} +2 -2
  15. package/traits/{confetti.test.js → confetti/confetti.test.js} +1 -1
  16. package/traits/{confetti-burst.js → confetti-burst/confetti-burst.js} +3 -3
  17. package/traits/{confetti-burst.test.js → confetti-burst/confetti-burst.test.js} +2 -2
  18. package/traits/{count-up.js → count-up/count-up.js} +2 -2
  19. package/traits/{count-up.test.js → count-up/count-up.test.js} +1 -1
  20. package/traits/declarative.test.js +3 -3
  21. package/traits/{dirty-state.js → dirty-state/dirty-state.js} +1 -1
  22. package/traits/{dirty-state.test.js → dirty-state/dirty-state.test.js} +1 -1
  23. package/traits/{drag-ghost.js → drag-ghost/drag-ghost.js} +1 -1
  24. package/traits/{drag-ghost.test.js → drag-ghost/drag-ghost.test.js} +1 -1
  25. package/traits/{draggable.js → draggable/draggable.js} +1 -1
  26. package/traits/{draggable.test.js → draggable/draggable.test.js} +1 -1
  27. package/traits/{draggable-list-item.js → draggable-list-item/draggable-list-item.js} +2 -2
  28. package/traits/{draggable-list-item.test.js → draggable-list-item/draggable-list-item.test.js} +1 -1
  29. package/traits/{drop-target.js → drop-target/drop-target.js} +1 -1
  30. package/traits/{drop-target.test.js → drop-target/drop-target.test.js} +1 -1
  31. package/traits/{droppable.js → droppable/droppable.js} +1 -1
  32. package/traits/{droppable.test.js → droppable/droppable.test.js} +1 -1
  33. package/traits/{droppable-collection.js → droppable-collection/droppable-collection.js} +1 -1
  34. package/traits/{droppable-collection.test.js → droppable-collection/droppable-collection.test.js} +1 -1
  35. package/traits/{error-shake.js → error-shake/error-shake.js} +2 -2
  36. package/traits/{error-shake.test.js → error-shake/error-shake.test.js} +1 -1
  37. package/traits/{fade-presence.js → fade-presence/fade-presence.js} +1 -1
  38. package/traits/{fade-presence.test.js → fade-presence/fade-presence.test.js} +1 -1
  39. package/traits/{focus-restore.js → focus-restore/focus-restore.js} +1 -1
  40. package/traits/{focus-restore.test.js → focus-restore/focus-restore.test.js} +1 -1
  41. package/traits/{focus-trap.js → focus-trap/focus-trap.js} +1 -1
  42. package/traits/{focus-trap.test.js → focus-trap/focus-trap.test.js} +1 -1
  43. package/traits/{focusable.js → focusable/focusable.js} +1 -1
  44. package/traits/{focusable.test.js → focusable/focusable.test.js} +1 -1
  45. package/traits/{glow-focus.js → glow-focus/glow-focus.js} +2 -2
  46. package/traits/{glow-focus.test.js → glow-focus/glow-focus.test.js} +1 -1
  47. package/traits/{gradient-shift.js → gradient-shift/gradient-shift.js} +2 -2
  48. package/traits/{gradient-shift.test.js → gradient-shift/gradient-shift.test.js} +1 -1
  49. package/traits/{haptic-feedback.js → haptic-feedback/haptic-feedback.js} +1 -1
  50. package/traits/{haptic-feedback.test.js → haptic-feedback/haptic-feedback.test.js} +1 -1
  51. package/traits/{hotkey.js → hotkey/hotkey.js} +1 -1
  52. package/traits/{hotkey.test.js → hotkey/hotkey.test.js} +1 -1
  53. package/traits/{hoverable.js → hoverable/hoverable.js} +1 -1
  54. package/traits/{hoverable.test.js → hoverable/hoverable.test.js} +1 -1
  55. package/traits/index.js +56 -56
  56. package/traits/{inertia-drag.js → inertia-drag/inertia-drag.js} +1 -1
  57. package/traits/{inertia-drag.test.js → inertia-drag/inertia-drag.test.js} +1 -1
  58. package/traits/{input-mask.js → input-mask/input-mask.js} +1 -1
  59. package/traits/{input-mask.test.js → input-mask/input-mask.test.js} +1 -1
  60. package/traits/{intersection-observer.js → intersection-observer/intersection-observer.js} +1 -1
  61. package/traits/{intersection-observer.test.js → intersection-observer/intersection-observer.test.js} +1 -1
  62. package/traits/{keyboard-nav.js → keyboard-nav/keyboard-nav.js} +1 -1
  63. package/traits/{keyboard-nav.test.js → keyboard-nav/keyboard-nav.test.js} +1 -1
  64. package/traits/{keyboard-reorderable.js → keyboard-reorderable/keyboard-reorderable.js} +2 -2
  65. package/traits/{keyboard-reorderable.test.js → keyboard-reorderable/keyboard-reorderable.test.js} +1 -1
  66. package/traits/{layout-animation.js → layout-animation/layout-animation.js} +2 -2
  67. package/traits/{layout-animation.test.js → layout-animation/layout-animation.test.js} +1 -1
  68. package/traits/{long-press.js → long-press/long-press.js} +1 -1
  69. package/traits/{long-press.test.js → long-press/long-press.test.js} +1 -1
  70. package/traits/{magnetic-hover.js → magnetic-hover/magnetic-hover.js} +2 -2
  71. package/traits/{magnetic-hover.test.js → magnetic-hover/magnetic-hover.test.js} +1 -1
  72. package/traits/{noise-texture.js → noise-texture/noise-texture.js} +1 -1
  73. package/traits/{noise-texture.test.js → noise-texture/noise-texture.test.js} +1 -1
  74. package/traits/{parallax.js → parallax/parallax.js} +2 -2
  75. package/traits/{parallax.test.js → parallax/parallax.test.js} +1 -1
  76. package/traits/{portal.js → portal/portal.js} +1 -1
  77. package/traits/{portal.test.js → portal/portal.test.js} +1 -1
  78. package/traits/{pressable.js → pressable/pressable.js} +1 -1
  79. package/traits/{pressable.test.js → pressable/pressable.test.js} +1 -1
  80. package/traits/{resettable.js → resettable/resettable.js} +1 -1
  81. package/traits/{resettable.test.js → resettable/resettable.test.js} +1 -1
  82. package/traits/{resizable.js → resizable/resizable.js} +1 -1
  83. package/traits/{resizable.test.js → resizable/resizable.test.js} +1 -1
  84. package/traits/{resize-observer.js → resize-observer/resize-observer.js} +1 -1
  85. package/traits/{resize-observer.test.js → resize-observer/resize-observer.test.js} +1 -1
  86. package/traits/{ripple.js → ripple/ripple.js} +2 -2
  87. package/traits/{ripple.test.js → ripple/ripple.test.js} +1 -1
  88. package/traits/{roving-tabindex.js → roving-tabindex/roving-tabindex.js} +1 -1
  89. package/traits/{roving-tabindex.test.js → roving-tabindex/roving-tabindex.test.js} +1 -1
  90. package/traits/{scale-press.js → scale-press/scale-press.js} +1 -1
  91. package/traits/{scale-press.test.js → scale-press/scale-press.test.js} +1 -1
  92. package/traits/{scroll-lock.js → scroll-lock/scroll-lock.js} +1 -1
  93. package/traits/{scroll-lock.test.js → scroll-lock/scroll-lock.test.js} +1 -1
  94. package/traits/{scroll-progress.js → scroll-progress/scroll-progress.js} +1 -1
  95. package/traits/{scroll-progress.test.js → scroll-progress/scroll-progress.test.js} +1 -1
  96. package/traits/{shimmer-loading.js → shimmer-loading/shimmer-loading.js} +2 -2
  97. package/traits/{shimmer-loading.test.js → shimmer-loading/shimmer-loading.test.js} +1 -1
  98. package/traits/{snap-to-grid.js → snap-to-grid/snap-to-grid.js} +1 -1
  99. package/traits/{snap-to-grid.test.js → snap-to-grid/snap-to-grid.test.js} +1 -1
  100. package/traits/{sound-feedback.js → sound-feedback/sound-feedback.js} +1 -1
  101. package/traits/{sound-feedback.test.js → sound-feedback/sound-feedback.test.js} +1 -1
  102. package/traits/{spring-animate.js → spring-animate/spring-animate.js} +1 -1
  103. package/traits/{spring-animate.test.js → spring-animate/spring-animate.test.js} +1 -1
  104. package/traits/{success-checkmark.js → success-checkmark/success-checkmark.js} +2 -2
  105. package/traits/{success-checkmark.test.js → success-checkmark/success-checkmark.test.js} +1 -1
  106. package/traits/{tilt-hover.js → tilt-hover/tilt-hover.js} +2 -2
  107. package/traits/{tilt-hover.test.js → tilt-hover/tilt-hover.test.js} +1 -1
  108. package/traits/{tossable.js → tossable/tossable.js} +1 -1
  109. package/traits/{tossable.test.js → tossable/tossable.test.js} +1 -1
  110. package/traits/traits-host.test.js +2 -2
  111. package/traits/{typeahead.js → typeahead/typeahead.js} +1 -1
  112. package/traits/{typeahead.test.js → typeahead/typeahead.test.js} +1 -1
  113. package/traits/{typewriter.js → typewriter/typewriter.js} +2 -2
  114. package/traits/{typewriter.test.js → typewriter/typewriter.test.js} +1 -1
  115. package/traits/{validation.js → validation/validation.js} +1 -1
  116. package/traits/{validation.test.js → validation/validation.test.js} +1 -1
  117. package/traits/{view-transition.js → view-transition/view-transition.js} +2 -2
  118. package/traits/{view-transition.test.js → view-transition/view-transition.test.js} +2 -2
  119. /package/traits/{announcer-stage.js → announcer/announcer-stage.js} +0 -0
  120. /package/traits/{confetti-stage.js → confetti/confetti-stage.js} +0 -0
@@ -24,7 +24,7 @@
24
24
  */
25
25
 
26
26
  import { UIElement } from '../../core/element.js';
27
- import { draggable } from '../../traits/draggable.js';
27
+ import { draggable } from '../../traits/draggable/draggable.js';
28
28
 
29
29
  class UICard extends UIElement {
30
30
  static properties = {
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import { UIElement } from '../../core/element.js';
9
- import { draggable } from '../../traits/draggable.js';
9
+ import { draggable } from '../../traits/draggable/draggable.js';
10
10
 
11
11
  class UIRow extends UIElement {
12
12
  static properties = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adia-ai/web-components",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "AdiaUI web components \u2014 vanilla custom elements. A2UI runtime (renderer, registry, streams, wiring) lives in @adia-ai/a2ui-runtime.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  export const activeState = defineTrait({
4
4
  name: 'active-state',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { activeState } from './active-state.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('active-state', () => {
6
6
  beforeEach(resetDOM);
@@ -18,7 +18,7 @@
18
18
  * consumers and DevTools sessions can see which path actually ran.
19
19
  */
20
20
 
21
- import { defineTrait } from './define.js';
21
+ import { defineTrait } from '../define.js';
22
22
 
23
23
  /**
24
24
  * Feature-detect both halves of the API we depend on. Chrome 125+ and
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { anchorPositioning } from './anchor-positioning.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  /**
6
6
  * Note on test environment: happy-dom does not implement
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
  import { announce, getRegion } from './announcer-stage.js';
3
3
 
4
4
  /**
@@ -1,7 +1,7 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { announcer } from './announcer.js';
3
3
  import { _resetRegions, getRegion } from './announcer-stage.js';
4
- import { mountHost, connectTrait, spyEvent, resetDOM, tick, wait } from './test-helpers.js';
4
+ import { mountHost, connectTrait, spyEvent, resetDOM, tick, wait } from '../test-helpers.js';
5
5
 
6
6
  // happy-dom doesn't speak — we assert region textContent instead.
7
7
  async function settleAnnounce() {
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  /**
4
4
  * 2D arrow-key navigation for grids — calendars, menubars, color pickers,
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { arrowGridNav } from './arrow-grid-nav.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  /**
6
6
  * Build a row-flat grid with `total` cells laid out in `cols` columns.
@@ -1,5 +1,5 @@
1
- import { defineTrait } from './define.js';
2
- import { prefersReducedMotion } from './motion.js';
1
+ import { defineTrait } from '../define.js';
2
+ import { prefersReducedMotion } from '../motion.js';
3
3
 
4
4
  export const attentionPulse = defineTrait({
5
5
  name: 'attention-pulse',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { attentionPulse } from './attention-pulse.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('attention-pulse', () => {
6
6
  beforeEach(resetDOM);
@@ -1,5 +1,5 @@
1
- import { defineTrait } from './define.js';
2
- import { prefersReducedMotion } from './motion.js';
1
+ import { defineTrait } from '../define.js';
2
+ import { prefersReducedMotion } from '../motion.js';
3
3
  import { getStage, viewportCenterOf, spawnParticle, SHARED_COLORS } from './confetti-stage.js';
4
4
 
5
5
  /**
@@ -1,7 +1,7 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { confetti } from './confetti.js';
3
3
  import { _resetStage } from './confetti-stage.js';
4
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
4
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
5
5
 
6
6
  describe('confetti', () => {
7
7
  beforeEach(() => {
@@ -1,6 +1,6 @@
1
- import { defineTrait } from './define.js';
2
- import { prefersReducedMotion } from './motion.js';
3
- import { getStage, viewportCenterOf, spawnParticle, SHARED_COLORS } from './confetti-stage.js';
1
+ import { defineTrait } from '../define.js';
2
+ import { prefersReducedMotion } from '../motion.js';
3
+ import { getStage, viewportCenterOf, spawnParticle, SHARED_COLORS } from '../confetti/confetti-stage.js';
4
4
 
5
5
  /**
6
6
  * `confetti-burst` — upward fountain on connect + on every `press`.
@@ -1,7 +1,7 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { confettiBurst } from './confetti-burst.js';
3
- import { _resetStage } from './confetti-stage.js';
4
- import { mountHost, connectTrait, spyEvent, resetDOM, wait } from './test-helpers.js';
3
+ import { _resetStage } from '../confetti/confetti-stage.js';
4
+ import { mountHost, connectTrait, spyEvent, resetDOM, wait } from '../test-helpers.js';
5
5
 
6
6
  describe('confetti-burst', () => {
7
7
  beforeEach(() => {
@@ -1,5 +1,5 @@
1
- import { defineTrait } from './define.js';
2
- import { prefersReducedMotion } from './motion.js';
1
+ import { defineTrait } from '../define.js';
2
+ import { prefersReducedMotion } from '../motion.js';
3
3
 
4
4
  export const countUp = defineTrait({
5
5
  name: 'count-up',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { countUp } from './count-up.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM, wait, raf } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM, wait, raf } from '../test-helpers.js';
4
4
 
5
5
  describe('count-up', () => {
6
6
  beforeEach(resetDOM);
@@ -13,9 +13,9 @@
13
13
 
14
14
  import { describe, it, expect, beforeEach, vi } from 'vitest';
15
15
  import { UIElement } from '../core/element.js';
16
- import { pressable } from './pressable.js';
17
- import { focusable } from './focusable.js';
18
- import { hoverable } from './hoverable.js';
16
+ import { pressable } from './pressable/pressable.js';
17
+ import { focusable } from './focusable/focusable.js';
18
+ import { hoverable } from './hoverable/hoverable.js';
19
19
  import { resetDOM } from './test-helpers.js';
20
20
 
21
21
  let counter = 0;
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  export const dirtyState = defineTrait({
4
4
  name: 'dirty-state',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { dirtyState } from './dirty-state.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('dirty-state', () => {
6
6
  beforeEach(resetDOM);
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  export const dragGhost = defineTrait({
4
4
  name: 'drag-ghost',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { dragGhost } from './drag-ghost.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('drag-ghost', () => {
6
6
  beforeEach(resetDOM);
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  export const draggable = defineTrait({
4
4
  name: 'draggable',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { draggable } from './draggable.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  function pointer(host, type, x, y) {
6
6
  const ev = new PointerEvent(type, { clientX: x, clientY: y, pointerId: 1, bubbles: true });
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  /**
4
4
  * `draggable-list-item` — pointer-driven list-reorder lifter.
@@ -39,7 +39,7 @@ import { defineTrait } from './define.js';
39
39
  * aria-live regions so screen-reader narration is single-stream.
40
40
  */
41
41
 
42
- import { announce } from './announcer-stage.js';
42
+ import { announce } from '../announcer/announcer-stage.js';
43
43
 
44
44
  // Drop-target-change announcements are debounced at 200 ms (per
45
45
  // a11y-live-region-drag-announcements.md research note); other phases
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { draggableListItem } from './draggable-list-item.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  // Minimal smoke coverage. The draggable-list-item trait is the pointer
6
6
  // driver for the apps/tasks/ DnD model. The cases
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  /**
4
4
  * Declarative drop zone — wires the host into the HTML5 drag-and-drop
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { dropTarget } from './drop-target.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  /**
6
6
  * happy-dom's DragEvent constructor does NOT preserve the `dataTransfer`
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  /**
4
4
  * `droppable` — marks an element as a drop target for `draggable-list-item`.
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { droppable } from './droppable.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  // Minimal smoke coverage. The droppable trait is authored against the
6
6
  // apps/tasks/ DnD coordinator and assumes a sibling
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  /**
4
4
  * `droppable-collection` — coordinator over a tree of `droppable` children.
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { droppableCollection } from './droppable-collection.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  // Minimal smoke coverage. The droppable-collection trait coordinates
6
6
  // child droppables of the apps/tasks/ DnD model;
@@ -1,5 +1,5 @@
1
- import { defineTrait } from './define.js';
2
- import { prefersReducedMotion } from './motion.js';
1
+ import { defineTrait } from '../define.js';
2
+ import { prefersReducedMotion } from '../motion.js';
3
3
 
4
4
  /**
5
5
  * `error-shake` — horizontal lateral oscillation on validation failure.
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { errorShake } from './error-shake.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM, wait } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM, wait } from '../test-helpers.js';
4
4
 
5
5
  describe('error-shake', () => {
6
6
  beforeEach(resetDOM);
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  export const fadePresence = defineTrait({
4
4
  name: 'fade-presence',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { fadePresence } from './fade-presence.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('fade-presence', () => {
6
6
  beforeEach(resetDOM);
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  /**
4
4
  * `focus-restore` — capture the previously-focused element on connect,
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { focusRestore } from './focus-restore.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  function focusableTrigger(label = 'Trigger') {
6
6
  const btn = document.createElement('button');
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  const FOCUSABLE_SELECTOR = 'a[href], [role="button"][tabindex], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]), [contenteditable]';
4
4
 
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { focusTrap } from './focus-trap.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  function focusableChild(host, label) {
6
6
  const btn = document.createElement('button');
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  export const focusable = defineTrait({
4
4
  name: 'focusable',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { focusable } from './focusable.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('focusable', () => {
6
6
  beforeEach(resetDOM);
@@ -1,5 +1,5 @@
1
- import { defineTrait } from './define.js';
2
- import { prefersReducedMotion } from './motion.js';
1
+ import { defineTrait } from '../define.js';
2
+ import { prefersReducedMotion } from '../motion.js';
3
3
 
4
4
  export const glowFocus = defineTrait({
5
5
  name: 'glow-focus',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { glowFocus } from './glow-focus.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('glow-focus', () => {
6
6
  beforeEach(resetDOM);
@@ -1,5 +1,5 @@
1
- import { defineTrait } from './define.js';
2
- import { prefersReducedMotion } from './motion.js';
1
+ import { defineTrait } from '../define.js';
2
+ import { prefersReducedMotion } from '../motion.js';
3
3
 
4
4
  export const gradientShift = defineTrait({
5
5
  name: 'gradient-shift',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { gradientShift } from './gradient-shift.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('gradient-shift', () => {
6
6
  beforeEach(resetDOM);
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  export const hapticFeedback = defineTrait({
4
4
  name: 'haptic-feedback',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
2
2
  import { hapticFeedback } from './haptic-feedback.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('haptic-feedback', () => {
6
6
  let originalVibrate;
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  function isMac() {
4
4
  if (typeof navigator !== 'undefined') {
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { hotkey } from './hotkey.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('hotkey', () => {
6
6
  beforeEach(resetDOM);
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  export const hoverable = defineTrait({
4
4
  name: 'hoverable',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { hoverable } from './hoverable.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('hoverable', () => {
6
6
  beforeEach(resetDOM);