@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
package/traits/index.js CHANGED
@@ -9,75 +9,75 @@
9
9
  import './traits-host.js';
10
10
 
11
11
  // input-interaction
12
- export { pressable } from './pressable.js';
13
- export { focusable } from './focusable.js';
14
- export { hoverable } from './hoverable.js';
15
- export { activeState } from './active-state.js';
16
- export { longPress } from './long-press.js';
17
- export { droppable } from './droppable.js';
18
- export { droppableCollection } from './droppable-collection.js';
12
+ export { pressable } from './pressable/pressable.js';
13
+ export { focusable } from './focusable/focusable.js';
14
+ export { hoverable } from './hoverable/hoverable.js';
15
+ export { activeState } from './active-state/active-state.js';
16
+ export { longPress } from './long-press/long-press.js';
17
+ export { droppable } from './droppable/droppable.js';
18
+ export { droppableCollection } from './droppable-collection/droppable-collection.js';
19
19
 
20
20
  // keyboard-navigation
21
- export { keyboardNav } from './keyboard-nav.js';
22
- export { rovingTabindex } from './roving-tabindex.js';
23
- export { typeahead } from './typeahead.js';
24
- export { hotkey } from './hotkey.js';
25
- export { focusTrap } from './focus-trap.js';
26
- export { focusRestore } from './focus-restore.js';
27
- export { arrowGridNav } from './arrow-grid-nav.js';
28
- export { keyboardReorderable } from './keyboard-reorderable.js';
21
+ export { keyboardNav } from './keyboard-nav/keyboard-nav.js';
22
+ export { rovingTabindex } from './roving-tabindex/roving-tabindex.js';
23
+ export { typeahead } from './typeahead/typeahead.js';
24
+ export { hotkey } from './hotkey/hotkey.js';
25
+ export { focusTrap } from './focus-trap/focus-trap.js';
26
+ export { focusRestore } from './focus-restore/focus-restore.js';
27
+ export { arrowGridNav } from './arrow-grid-nav/arrow-grid-nav.js';
28
+ export { keyboardReorderable } from './keyboard-reorderable/keyboard-reorderable.js';
29
29
 
30
30
  // forms-data
31
- export { validation } from './validation.js';
32
- export { dirtyState } from './dirty-state.js';
33
- export { resettable } from './resettable.js';
34
- export { inputMask } from './input-mask.js';
31
+ export { validation } from './validation/validation.js';
32
+ export { dirtyState } from './dirty-state/dirty-state.js';
33
+ export { resettable } from './resettable/resettable.js';
34
+ export { inputMask } from './input-mask/input-mask.js';
35
35
 
36
36
  // layout-measurement
37
- export { resizeObserver } from './resize-observer.js';
38
- export { intersectionObserver } from './intersection-observer.js';
39
- export { anchorPositioning } from './anchor-positioning.js';
40
- export { portal } from './portal.js';
41
- export { scrollLock } from './scroll-lock.js';
42
- export { scrollProgress } from './scroll-progress.js';
37
+ export { resizeObserver } from './resize-observer/resize-observer.js';
38
+ export { intersectionObserver } from './intersection-observer/intersection-observer.js';
39
+ export { anchorPositioning } from './anchor-positioning/anchor-positioning.js';
40
+ export { portal } from './portal/portal.js';
41
+ export { scrollLock } from './scroll-lock/scroll-lock.js';
42
+ export { scrollProgress } from './scroll-progress/scroll-progress.js';
43
43
 
44
44
  // motion-positioning
45
- export { draggable } from './draggable.js';
46
- export { tossable } from './tossable.js';
47
- export { resizable } from './resizable.js';
48
- export { inertiaDrag } from './inertia-drag.js';
49
- export { snapToGrid } from './snap-to-grid.js';
50
- export { dragGhost } from './drag-ghost.js';
51
- export { dropTarget } from './drop-target.js';
52
- export { layoutAnimation } from './layout-animation.js';
53
- export { viewTransition } from './view-transition.js';
54
- export { draggableListItem } from './draggable-list-item.js';
45
+ export { draggable } from './draggable/draggable.js';
46
+ export { tossable } from './tossable/tossable.js';
47
+ export { resizable } from './resizable/resizable.js';
48
+ export { inertiaDrag } from './inertia-drag/inertia-drag.js';
49
+ export { snapToGrid } from './snap-to-grid/snap-to-grid.js';
50
+ export { dragGhost } from './drag-ghost/drag-ghost.js';
51
+ export { dropTarget } from './drop-target/drop-target.js';
52
+ export { layoutAnimation } from './layout-animation/layout-animation.js';
53
+ export { viewTransition } from './view-transition/view-transition.js';
54
+ export { draggableListItem } from './draggable-list-item/draggable-list-item.js';
55
55
 
56
56
  // animation-feedback
57
- export { ripple } from './ripple.js';
58
- export { springAnimate } from './spring-animate.js';
59
- export { fadePresence } from './fade-presence.js';
60
- export { scalePress } from './scale-press.js';
61
- export { tiltHover } from './tilt-hover.js';
62
- export { errorShake } from './error-shake.js';
63
- export { successCheckmark } from './success-checkmark.js';
57
+ export { ripple } from './ripple/ripple.js';
58
+ export { springAnimate } from './spring-animate/spring-animate.js';
59
+ export { fadePresence } from './fade-presence/fade-presence.js';
60
+ export { scalePress } from './scale-press/scale-press.js';
61
+ export { tiltHover } from './tilt-hover/tilt-hover.js';
62
+ export { errorShake } from './error-shake/error-shake.js';
63
+ export { successCheckmark } from './success-checkmark/success-checkmark.js';
64
64
 
65
65
  // visual-dynamics
66
- export { glowFocus } from './glow-focus.js';
67
- export { gradientShift } from './gradient-shift.js';
68
- export { parallax } from './parallax.js';
69
- export { shimmerLoading } from './shimmer-loading.js';
70
- export { noiseTexture } from './noise-texture.js';
66
+ export { glowFocus } from './glow-focus/glow-focus.js';
67
+ export { gradientShift } from './gradient-shift/gradient-shift.js';
68
+ export { parallax } from './parallax/parallax.js';
69
+ export { shimmerLoading } from './shimmer-loading/shimmer-loading.js';
70
+ export { noiseTexture } from './noise-texture/noise-texture.js';
71
71
 
72
72
  // interaction-delight
73
- export { magneticHover } from './magnetic-hover.js';
74
- export { confetti } from './confetti.js';
75
- export { confettiBurst } from './confetti-burst.js';
73
+ export { magneticHover } from './magnetic-hover/magnetic-hover.js';
74
+ export { confetti } from './confetti/confetti.js';
75
+ export { confettiBurst } from './confetti-burst/confetti-burst.js';
76
76
 
77
77
  // audio-haptics-sensory
78
- export { soundFeedback } from './sound-feedback.js';
79
- export { hapticFeedback } from './haptic-feedback.js';
80
- export { typewriter } from './typewriter.js';
81
- export { countUp } from './count-up.js';
82
- export { attentionPulse } from './attention-pulse.js';
83
- export { announcer } from './announcer.js';
78
+ export { soundFeedback } from './sound-feedback/sound-feedback.js';
79
+ export { hapticFeedback } from './haptic-feedback/haptic-feedback.js';
80
+ export { typewriter } from './typewriter/typewriter.js';
81
+ export { countUp } from './count-up/count-up.js';
82
+ export { attentionPulse } from './attention-pulse/attention-pulse.js';
83
+ export { announcer } from './announcer/announcer.js';
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  const FRICTION = 0.95;
4
4
  const MIN_VELOCITY = 0.5;
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { inertiaDrag } from './inertia-drag.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  function pointer(host, type, x, y) {
6
6
  host.dispatchEvent(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
  * Built-in named patterns. User-supplied patterns override these.
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { inputMask } from './input-mask.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
  * Drive an `input` event with a new value and a caret-position guess.
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  export const intersectionObserver = defineTrait({
4
4
  name: 'intersection-observer',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
2
2
  import { intersectionObserver } from './intersection-observer.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('intersection-observer', () => {
6
6
  let originalIO;
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  const KEY_MAP = {
4
4
  ArrowUp: 'nav-up',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { keyboardNav } from './keyboard-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
  describe('keyboard-nav', () => {
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
  * `keyboard-reorderable` — keyboard alternative to `draggable-list-item`.
@@ -28,7 +28,7 @@ import { defineTrait } from './define.js';
28
28
  * narrations.
29
29
  */
30
30
 
31
- import { announce } from './announcer-stage.js';
31
+ import { announce } from '../announcer/announcer-stage.js';
32
32
 
33
33
  // Same debounce gate as draggable-list-item — module-private throttle
34
34
  // for drop-target-change announcements; immediate calls supersede.
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { keyboardReorderable } from './keyboard-reorderable.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. Keyboard-reorderable is the WCAG 2.5.7 +
6
6
  // ARIA 1.1 alternative to draggable-list-item for the
@@ -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
  * layout-animation — FLIP (First / Last / Invert / Play) layout transitions.
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { layoutAnimation } from './layout-animation.js';
3
- import { mountHost, connectTrait, spyEvent, resetDOM, raf } from './test-helpers.js';
3
+ import { mountHost, connectTrait, spyEvent, resetDOM, raf } from '../test-helpers.js';
4
4
 
5
5
  describe('layout-animation', () => {
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 longPress = defineTrait({
4
4
  name: 'long-press',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach, vi } from 'vitest';
2
2
  import { longPress } from './long-press.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
  function pointerDown(host, x = 0, y = 0) {
6
6
  host.dispatchEvent(new PointerEvent('pointerdown', { clientX: x, clientY: y, bubbles: true }));
@@ -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 magneticHover = defineTrait({
5
5
  name: 'magnetic-hover',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { magneticHover } from './magnetic-hover.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('magnetic-hover', () => {
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 noiseTexture = defineTrait({
4
4
  name: 'noise-texture',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { noiseTexture } from './noise-texture.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('noise-texture', () => {
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 parallax = defineTrait({
5
5
  name: 'parallax',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { parallax } from './parallax.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('parallax', () => {
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 portal = defineTrait({
4
4
  name: 'portal',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { portal } from './portal.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('portal', () => {
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 pressable = defineTrait({
4
4
  name: 'pressable',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { pressable } from './pressable.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('pressable', () => {
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
  * Listens for the host's enclosing form's `reset` event and snaps the host's
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { resettable } from './resettable.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 mountInForm(initialValue = 'initial') {
6
6
  const form = document.createElement('form');
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  const EDGE_SIZE = 8;
4
4
  const EDGES = ['top', 'right', 'bottom', 'left'];
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { resizable } from './resizable.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('resizable', () => {
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 resizeObserver = defineTrait({
4
4
  name: 'resize-observer',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
2
2
  import { resizeObserver } from './resize-observer.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('resize-observer', () => {
6
6
  let originalRO;
@@ -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 ripple = defineTrait({
5
5
  name: 'ripple',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { ripple } from './ripple.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('ripple', () => {
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 rovingTabindex = defineTrait({
4
4
  name: 'roving-tabindex',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { rovingTabindex } from './roving-tabindex.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  function tabbableChild(host) {
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 scalePress = defineTrait({
4
4
  name: 'scale-press',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { scalePress } from './scale-press.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('scale-press', () => {
6
6
  beforeEach(resetDOM);
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  let lockCount = 0;
4
4
  let savedOverflow = '';
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { scrollLock } from './scroll-lock.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('scroll-lock', () => {
6
6
  beforeEach(() => {
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  /**
4
4
  * scroll-progress — surfaces page or element scroll progress as a 0..1
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
2
2
  import { scrollProgress } from './scroll-progress.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('scroll-progress', () => {
6
6
  let originalRAF;
@@ -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 shimmerLoading = defineTrait({
5
5
  name: 'shimmer-loading',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { shimmerLoading } from './shimmer-loading.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('shimmer-loading', () => {
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 snapToGrid = defineTrait({
4
4
  name: 'snap-to-grid',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { snapToGrid } from './snap-to-grid.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('snap-to-grid', () => {
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 soundFeedback = defineTrait({
4
4
  name: 'sound-feedback',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { soundFeedback } from './sound-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('sound-feedback', () => {
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 springAnimate = defineTrait({
4
4
  name: 'spring-animate',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { springAnimate } from './spring-animate.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('spring-animate', () => {
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
  /**
5
5
  * `success-checkmark` — SVG path stroke-draw animation. "I confirmed it
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { successCheckmark } from './success-checkmark.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
  // Helper: query the SVG that the trait stamps. As of the overflow:hidden
6
6
  // fix, the SVG renders at body level (position: fixed) so it can't be
@@ -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 tiltHover = defineTrait({
5
5
  name: 'tilt-hover',
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { tiltHover } from './tilt-hover.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  describe('tilt-hover', () => {
6
6
  beforeEach(resetDOM);
@@ -1,4 +1,4 @@
1
- import { defineTrait } from './define.js';
1
+ import { defineTrait } from '../define.js';
2
2
 
3
3
  const FRICTION = 0.92;
4
4
  const BOUNCE_FACTOR = -0.6;
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach } from 'vitest';
2
2
  import { tossable } from './tossable.js';
3
- import { mountHost, connectTrait, resetDOM } from './test-helpers.js';
3
+ import { mountHost, connectTrait, resetDOM } from '../test-helpers.js';
4
4
 
5
5
  function pointer(host, type, x, y) {
6
6
  host.dispatchEvent(new PointerEvent(type, { clientX: x, clientY: y, pointerId: 1, bubbles: true }));
@@ -8,8 +8,8 @@
8
8
 
9
9
  import { describe, it, expect, beforeEach } from 'vitest';
10
10
  import './traits-host.js';
11
- import './pressable.js';
12
- import './hoverable.js';
11
+ import './pressable/pressable.js';
12
+ import './hoverable/hoverable.js';
13
13
  import { resetDOM } from './test-helpers.js';
14
14
 
15
15
  describe('<traits-host>', () => {