@vibes.diy/base 14.3.21 → 14.3.22

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 (222) hide show
  1. package/components/StyleControls.js +27 -3
  2. package/components/StyleControls.js.map +1 -1
  3. package/components/VibesSwitch.d.ts +1 -2
  4. package/components/VibesSwitch.js +4 -59
  5. package/components/VibesSwitch.js.map +1 -1
  6. package/components/chip-fast-path.d.ts +6 -0
  7. package/components/chip-fast-path.js +2 -0
  8. package/components/chip-fast-path.js.map +1 -0
  9. package/components/editor-tabs.d.ts +3 -0
  10. package/components/editor-tabs.js +1 -0
  11. package/components/editor-tabs.js.map +1 -1
  12. package/components/index.d.ts +2 -17
  13. package/components/index.js +2 -17
  14. package/components/index.js.map +1 -1
  15. package/components/vibe-menu/VibeMenu.d.ts +16 -0
  16. package/components/vibe-menu/VibeMenu.js +99 -0
  17. package/components/vibe-menu/VibeMenu.js.map +1 -0
  18. package/components/vibe-menu/cards/AccountCard.d.ts +40 -0
  19. package/components/vibe-menu/cards/AccountCard.js +234 -0
  20. package/components/vibe-menu/cards/AccountCard.js.map +1 -0
  21. package/components/vibe-menu/cards/CodeCard.d.ts +20 -0
  22. package/components/vibe-menu/cards/CodeCard.js +109 -0
  23. package/components/vibe-menu/cards/CodeCard.js.map +1 -0
  24. package/components/vibe-menu/cards/CodeModeWorkspace.d.ts +31 -0
  25. package/components/vibe-menu/cards/CodeModeWorkspace.js +107 -0
  26. package/components/vibe-menu/cards/CodeModeWorkspace.js.map +1 -0
  27. package/components/vibe-menu/cards/HomeCard.d.ts +22 -0
  28. package/components/vibe-menu/cards/HomeCard.js +64 -0
  29. package/components/vibe-menu/cards/HomeCard.js.map +1 -0
  30. package/components/vibe-menu/cards/ShareCard.d.ts +9 -0
  31. package/components/vibe-menu/cards/ShareCard.js +84 -0
  32. package/components/vibe-menu/cards/ShareCard.js.map +1 -0
  33. package/components/vibe-menu/cards/ShareDrills.d.ts +35 -0
  34. package/components/vibe-menu/cards/ShareDrills.js +146 -0
  35. package/components/vibe-menu/cards/ShareDrills.js.map +1 -0
  36. package/components/vibe-menu/cards/ShareLinkRows.d.ts +6 -0
  37. package/components/vibe-menu/cards/ShareLinkRows.js +27 -0
  38. package/components/vibe-menu/cards/ShareLinkRows.js.map +1 -0
  39. package/components/vibe-menu/cards/share-actions.d.ts +13 -0
  40. package/components/vibe-menu/cards/share-actions.js +37 -0
  41. package/components/vibe-menu/cards/share-actions.js.map +1 -0
  42. package/components/vibe-menu/cards/share-card.styles.d.ts +1 -0
  43. package/components/vibe-menu/cards/share-card.styles.js +90 -0
  44. package/components/vibe-menu/cards/share-card.styles.js.map +1 -0
  45. package/components/vibe-menu/cards/share-copy.d.ts +24 -0
  46. package/components/vibe-menu/cards/share-copy.js +64 -0
  47. package/components/vibe-menu/cards/share-copy.js.map +1 -0
  48. package/components/vibe-menu/cards/share-parts.d.ts +46 -0
  49. package/components/vibe-menu/cards/share-parts.js +87 -0
  50. package/components/vibe-menu/cards/share-parts.js.map +1 -0
  51. package/components/vibe-menu/code-tabs.d.ts +11 -0
  52. package/components/vibe-menu/code-tabs.js +32 -0
  53. package/components/vibe-menu/code-tabs.js.map +1 -0
  54. package/components/vibe-menu/copy.d.ts +7 -0
  55. package/components/vibe-menu/copy.js +13 -0
  56. package/components/vibe-menu/copy.js.map +1 -0
  57. package/components/vibe-menu/fixtures.d.ts +42 -0
  58. package/components/vibe-menu/fixtures.js +184 -0
  59. package/components/vibe-menu/fixtures.js.map +1 -0
  60. package/components/vibe-menu/geometry.d.ts +24 -0
  61. package/components/vibe-menu/geometry.js +28 -0
  62. package/components/vibe-menu/geometry.js.map +1 -0
  63. package/components/vibe-menu/index.d.ts +42 -0
  64. package/components/vibe-menu/index.js +43 -0
  65. package/components/vibe-menu/index.js.map +1 -0
  66. package/components/vibe-menu/menu-state.d.ts +42 -0
  67. package/components/vibe-menu/menu-state.js +82 -0
  68. package/components/vibe-menu/menu-state.js.map +1 -0
  69. package/components/vibe-menu/moments.d.ts +13 -0
  70. package/components/vibe-menu/moments.js +39 -0
  71. package/components/vibe-menu/moments.js.map +1 -0
  72. package/components/vibe-menu/motion.d.ts +10 -0
  73. package/components/vibe-menu/motion.js +10 -0
  74. package/components/vibe-menu/motion.js.map +1 -0
  75. package/components/vibe-menu/open-resolver.d.ts +46 -0
  76. package/components/vibe-menu/open-resolver.js +91 -0
  77. package/components/vibe-menu/open-resolver.js.map +1 -0
  78. package/components/vibe-menu/parts/AccessToggle.d.ts +13 -0
  79. package/components/vibe-menu/parts/AccessToggle.js +58 -0
  80. package/components/vibe-menu/parts/AccessToggle.js.map +1 -0
  81. package/components/vibe-menu/parts/ActionPill.d.ts +18 -0
  82. package/components/vibe-menu/parts/ActionPill.js +21 -0
  83. package/components/vibe-menu/parts/ActionPill.js.map +1 -0
  84. package/components/vibe-menu/parts/BackRow.d.ts +8 -0
  85. package/components/vibe-menu/parts/BackRow.js +10 -0
  86. package/components/vibe-menu/parts/BackRow.js.map +1 -0
  87. package/components/vibe-menu/parts/Chip.d.ts +37 -0
  88. package/components/vibe-menu/parts/Chip.js +62 -0
  89. package/components/vibe-menu/parts/Chip.js.map +1 -0
  90. package/components/vibe-menu/parts/Composer.d.ts +39 -0
  91. package/components/vibe-menu/parts/Composer.js +47 -0
  92. package/components/vibe-menu/parts/Composer.js.map +1 -0
  93. package/components/vibe-menu/parts/DoneButton.d.ts +5 -0
  94. package/components/vibe-menu/parts/DoneButton.js +5 -0
  95. package/components/vibe-menu/parts/DoneButton.js.map +1 -0
  96. package/components/vibe-menu/parts/Glyph.d.ts +9 -0
  97. package/components/vibe-menu/parts/Glyph.js +123 -0
  98. package/components/vibe-menu/parts/Glyph.js.map +1 -0
  99. package/components/vibe-menu/parts/GrantControls.d.ts +13 -0
  100. package/components/vibe-menu/parts/GrantControls.js +61 -0
  101. package/components/vibe-menu/parts/GrantControls.js.map +1 -0
  102. package/components/vibe-menu/parts/MemberRow.d.ts +37 -0
  103. package/components/vibe-menu/parts/MemberRow.js +70 -0
  104. package/components/vibe-menu/parts/MemberRow.js.map +1 -0
  105. package/components/vibe-menu/parts/MenuCard.d.ts +10 -0
  106. package/components/vibe-menu/parts/MenuCard.js +7 -0
  107. package/components/vibe-menu/parts/MenuCard.js.map +1 -0
  108. package/components/vibe-menu/parts/MomentLine.d.ts +23 -0
  109. package/components/vibe-menu/parts/MomentLine.js +58 -0
  110. package/components/vibe-menu/parts/MomentLine.js.map +1 -0
  111. package/components/vibe-menu/parts/Row.d.ts +41 -0
  112. package/components/vibe-menu/parts/Row.js +60 -0
  113. package/components/vibe-menu/parts/Row.js.map +1 -0
  114. package/components/vibe-menu/parts/SectionStrip.d.ts +14 -0
  115. package/components/vibe-menu/parts/SectionStrip.js +26 -0
  116. package/components/vibe-menu/parts/SectionStrip.js.map +1 -0
  117. package/components/vibe-menu/parts/VibesSwitchGlass.d.ts +24 -0
  118. package/components/vibe-menu/parts/VibesSwitchGlass.js +66 -0
  119. package/components/vibe-menu/parts/VibesSwitchGlass.js.map +1 -0
  120. package/components/vibe-menu/parts/radio-keys.d.ts +5 -0
  121. package/components/vibe-menu/parts/radio-keys.js +13 -0
  122. package/components/vibe-menu/parts/radio-keys.js.map +1 -0
  123. package/components/vibe-menu/parts/use-composer-draft.d.ts +9 -0
  124. package/components/vibe-menu/parts/use-composer-draft.js +94 -0
  125. package/components/vibe-menu/parts/use-composer-draft.js.map +1 -0
  126. package/components/vibe-menu/share-fixtures.d.ts +15 -0
  127. package/components/vibe-menu/share-fixtures.js +72 -0
  128. package/components/vibe-menu/share-fixtures.js.map +1 -0
  129. package/components/vibe-menu/shell/VibeMenuShell.d.ts +30 -0
  130. package/components/vibe-menu/shell/VibeMenuShell.js +124 -0
  131. package/components/vibe-menu/shell/VibeMenuShell.js.map +1 -0
  132. package/components/vibe-menu/shell/menu-sequence.d.ts +20 -0
  133. package/components/vibe-menu/shell/menu-sequence.js +35 -0
  134. package/components/vibe-menu/shell/menu-sequence.js.map +1 -0
  135. package/components/vibe-menu/shell/outline-geometry.d.ts +63 -0
  136. package/components/vibe-menu/shell/outline-geometry.js +83 -0
  137. package/components/vibe-menu/shell/outline-geometry.js.map +1 -0
  138. package/components/vibe-menu/shell/shell.styles.d.ts +1 -0
  139. package/components/vibe-menu/shell/shell.styles.js +386 -0
  140. package/components/vibe-menu/shell/shell.styles.js.map +1 -0
  141. package/components/vibe-menu/shell/useMenuSequencer.d.ts +33 -0
  142. package/components/vibe-menu/shell/useMenuSequencer.js +490 -0
  143. package/components/vibe-menu/shell/useMenuSequencer.js.map +1 -0
  144. package/components/vibe-menu/slices.d.ts +182 -0
  145. package/components/vibe-menu/slices.js +5 -0
  146. package/components/vibe-menu/slices.js.map +1 -0
  147. package/components/vibe-menu/use-remix-hint.d.ts +9 -0
  148. package/components/vibe-menu/use-remix-hint.js +21 -0
  149. package/components/vibe-menu/use-remix-hint.js.map +1 -0
  150. package/components/vibe-menu/vibe-menu.styles.d.ts +5 -0
  151. package/components/vibe-menu/vibe-menu.styles.js +1424 -0
  152. package/components/vibe-menu/vibe-menu.styles.js.map +1 -0
  153. package/package.json +4 -4
  154. package/components/AccountView.d.ts +0 -10
  155. package/components/AccountView.js +0 -31
  156. package/components/AccountView.js.map +0 -1
  157. package/components/AdminModeControl.d.ts +0 -7
  158. package/components/AdminModeControl.js +0 -9
  159. package/components/AdminModeControl.js.map +0 -1
  160. package/components/CodingIndicator.d.ts +0 -6
  161. package/components/CodingIndicator.js +0 -53
  162. package/components/CodingIndicator.js.map +0 -1
  163. package/components/CreditsDetailMenu.d.ts +0 -15
  164. package/components/CreditsDetailMenu.js +0 -97
  165. package/components/CreditsDetailMenu.js.map +0 -1
  166. package/components/CreditsRingView.d.ts +0 -15
  167. package/components/CreditsRingView.js +0 -77
  168. package/components/CreditsRingView.js.map +0 -1
  169. package/components/EditorTabStrip.d.ts +0 -10
  170. package/components/EditorTabStrip.js +0 -15
  171. package/components/EditorTabStrip.js.map +0 -1
  172. package/components/LinkLineControls.d.ts +0 -9
  173. package/components/LinkLineControls.js +0 -72
  174. package/components/LinkLineControls.js.map +0 -1
  175. package/components/MadeHereView.d.ts +0 -8
  176. package/components/MadeHereView.js +0 -37
  177. package/components/MadeHereView.js.map +0 -1
  178. package/components/RecentVibesList.d.ts +0 -19
  179. package/components/RecentVibesList.js +0 -106
  180. package/components/RecentVibesList.js.map +0 -1
  181. package/components/RecommendedView.d.ts +0 -22
  182. package/components/RecommendedView.js +0 -172
  183. package/components/RecommendedView.js.map +0 -1
  184. package/components/RemixInviteView.d.ts +0 -4
  185. package/components/RemixInviteView.js +0 -11
  186. package/components/RemixInviteView.js.map +0 -1
  187. package/components/SeedDataOffer.d.ts +0 -8
  188. package/components/SeedDataOffer.js +0 -15
  189. package/components/SeedDataOffer.js.map +0 -1
  190. package/components/SignedInDiscoveryView.d.ts +0 -17
  191. package/components/SignedInDiscoveryView.js +0 -30
  192. package/components/SignedInDiscoveryView.js.map +0 -1
  193. package/components/SignedOutDiscoveryView.d.ts +0 -7
  194. package/components/SignedOutDiscoveryView.js +0 -15
  195. package/components/SignedOutDiscoveryView.js.map +0 -1
  196. package/components/SignedOutSavePrompt.d.ts +0 -4
  197. package/components/SignedOutSavePrompt.js +0 -33
  198. package/components/SignedOutSavePrompt.js.map +0 -1
  199. package/components/UnifiedVibeCard.d.ts +0 -129
  200. package/components/UnifiedVibeCard.js +0 -1658
  201. package/components/UnifiedVibeCard.js.map +0 -1
  202. package/components/UnifiedVibeCardSettings.styles.d.ts +0 -3
  203. package/components/UnifiedVibeCardSettings.styles.js +0 -95
  204. package/components/UnifiedVibeCardSettings.styles.js.map +0 -1
  205. package/components/UnifiedVibeCardShare.styles.d.ts +0 -3
  206. package/components/UnifiedVibeCardShare.styles.js +0 -72
  207. package/components/UnifiedVibeCardShare.styles.js.map +0 -1
  208. package/components/ViewerAccessSummary.d.ts +0 -28
  209. package/components/ViewerAccessSummary.js +0 -105
  210. package/components/ViewerAccessSummary.js.map +0 -1
  211. package/components/ViewerStandingView.d.ts +0 -7
  212. package/components/ViewerStandingView.js +0 -10
  213. package/components/ViewerStandingView.js.map +0 -1
  214. package/hooks/useCardFloat.d.ts +0 -6
  215. package/hooks/useCardFloat.js +0 -191
  216. package/hooks/useCardFloat.js.map +0 -1
  217. package/hooks/useHomeMotionPress.d.ts +0 -17
  218. package/hooks/useHomeMotionPress.js +0 -93
  219. package/hooks/useHomeMotionPress.js.map +0 -1
  220. package/motion/card-motion-source.d.ts +0 -23
  221. package/motion/card-motion-source.js +0 -50
  222. package/motion/card-motion-source.js.map +0 -1
@@ -1,191 +0,0 @@
1
- import { createContext, useContext, useEffect, useRef, useState } from "react";
2
- import { browserCardMotion } from "../motion/card-motion-source.js";
3
- export const CardMotionContext = createContext(browserCardMotion);
4
- const clamp = (value) => Math.max(-1, Math.min(1, value));
5
- const delta = (value, baseline) => ((value - baseline + 540) % 360) - 180;
6
- export function useCardFloat(ref, open, controlsRef) {
7
- const source = useContext(CardMotionContext);
8
- const [allowed, setAllowed] = useState(false);
9
- const [off, setOff] = useState(false);
10
- const [reduced, setReduced] = useState(false);
11
- const [status, setStatus] = useState("");
12
- const request = useRef(0);
13
- const pending = useRef(false);
14
- useEffect(() => {
15
- const preference = window.matchMedia("(prefers-reduced-motion: reduce)");
16
- const update = () => setReduced(preference.matches);
17
- update();
18
- preference.addEventListener("change", update);
19
- return () => preference.removeEventListener("change", update);
20
- }, []);
21
- useEffect(() => {
22
- let live = true;
23
- if (open && !reduced && !off) {
24
- void source.canStartAutomatically().then((automatic) => {
25
- if (live && automatic)
26
- setAllowed(true);
27
- });
28
- }
29
- return () => {
30
- live = false;
31
- };
32
- }, [source, open, reduced, off]);
33
- useEffect(() => () => {
34
- request.current += 1;
35
- }, []);
36
- useEffect(() => {
37
- const root = ref.current;
38
- if (root === null)
39
- return;
40
- const controls = controlsRef?.current;
41
- const surfaces = controls ? [root, controls] : [root];
42
- const neutral = () => {
43
- surfaces.forEach((surface) => {
44
- surface.style.removeProperty("--vibe-float-x");
45
- surface.style.removeProperty("--vibe-float-y");
46
- });
47
- root.removeAttribute("data-vibe-floating");
48
- controls?.removeAttribute("data-vibe-floating-controls");
49
- };
50
- neutral();
51
- if (!open || !allowed || off || reduced)
52
- return;
53
- let baseline;
54
- let target = { x: 0, y: 0 };
55
- let current = { x: 0, y: 0 };
56
- let frame = 0;
57
- let pointerHeld = false;
58
- let touchHeld = false;
59
- let scrollUntil = 0;
60
- let resumeTimer;
61
- const editing = () => {
62
- const active = document.activeElement;
63
- return active !== null && root.contains(active) && active.matches("input,textarea,select,[contenteditable=true]");
64
- };
65
- function schedule() {
66
- if (frame === 0 && !document.hidden)
67
- frame = requestAnimationFrame(paint);
68
- }
69
- function paint() {
70
- frame = 0;
71
- if (pointerHeld || touchHeld || editing() || performance.now() < scrollUntil)
72
- return;
73
- current = { x: current.x + (target.x - current.x) * 0.12, y: current.y + (target.y - current.y) * 0.12 };
74
- surfaces.forEach((surface) => {
75
- surface.style.setProperty("--vibe-float-x", String(current.x));
76
- surface.style.setProperty("--vibe-float-y", String(current.y));
77
- });
78
- if (Math.abs(target.x - current.x) + Math.abs(target.y - current.y) > 0.001)
79
- schedule();
80
- }
81
- const unsubscribe = source.subscribe((reading) => {
82
- if (document.hidden)
83
- return;
84
- if (baseline === undefined || baseline.angle !== reading.angle) {
85
- baseline = reading;
86
- target = { x: 0, y: 0 };
87
- }
88
- else {
89
- const angle = (reading.angle * Math.PI) / 180;
90
- const dx = delta(reading.gamma, baseline.gamma);
91
- const dy = delta(reading.beta, baseline.beta);
92
- target = {
93
- x: clamp((dx * Math.cos(angle) + dy * Math.sin(angle)) / 20),
94
- y: clamp((dy * Math.cos(angle) - dx * Math.sin(angle)) / 20),
95
- };
96
- }
97
- root.setAttribute("data-vibe-floating", "true");
98
- controls?.setAttribute("data-vibe-floating-controls", "true");
99
- schedule();
100
- });
101
- const hold = () => {
102
- pointerHeld = true;
103
- };
104
- const release = () => {
105
- pointerHeld = false;
106
- schedule();
107
- };
108
- const holdTouch = () => {
109
- touchHeld = true;
110
- };
111
- const releaseTouch = (event) => {
112
- touchHeld = event.touches.length > 0;
113
- schedule();
114
- };
115
- const reset = () => {
116
- baseline = undefined;
117
- target = { x: 0, y: 0 };
118
- current = { x: 0, y: 0 };
119
- pointerHeld = false;
120
- touchHeld = false;
121
- cancelAnimationFrame(frame);
122
- frame = 0;
123
- neutral();
124
- };
125
- const scroll = () => {
126
- scrollUntil = performance.now() + 160;
127
- clearTimeout(resumeTimer);
128
- resumeTimer = setTimeout(schedule, 160);
129
- };
130
- surfaces.forEach((surface) => {
131
- surface.addEventListener("pointerdown", hold, true);
132
- surface.addEventListener("touchstart", holdTouch, { passive: true });
133
- });
134
- root.addEventListener("scroll", scroll, true);
135
- root.addEventListener("focusout", schedule);
136
- window.addEventListener("pointerup", release);
137
- window.addEventListener("pointercancel", release);
138
- window.addEventListener("touchend", releaseTouch);
139
- window.addEventListener("touchcancel", releaseTouch);
140
- window.addEventListener("blur", reset);
141
- document.addEventListener("visibilitychange", reset);
142
- return () => {
143
- unsubscribe();
144
- cancelAnimationFrame(frame);
145
- clearTimeout(resumeTimer);
146
- neutral();
147
- surfaces.forEach((surface) => {
148
- surface.removeEventListener("pointerdown", hold, true);
149
- surface.removeEventListener("touchstart", holdTouch);
150
- });
151
- root.removeEventListener("scroll", scroll, true);
152
- root.removeEventListener("focusout", schedule);
153
- window.removeEventListener("pointerup", release);
154
- window.removeEventListener("pointercancel", release);
155
- window.removeEventListener("touchend", releaseTouch);
156
- window.removeEventListener("touchcancel", releaseTouch);
157
- window.removeEventListener("blur", reset);
158
- document.removeEventListener("visibilitychange", reset);
159
- };
160
- }, [ref, open, allowed, off, reduced, source, controlsRef]);
161
- function toggle() {
162
- if (reduced) {
163
- setStatus("Float follows your reduced-motion setting.");
164
- return;
165
- }
166
- if (pending.current)
167
- return;
168
- if (allowed && !off) {
169
- setOff(true);
170
- setStatus("Float off.");
171
- return;
172
- }
173
- const token = ++request.current;
174
- pending.current = true;
175
- void source.requestPermission().then((granted) => {
176
- if (request.current !== token)
177
- return;
178
- pending.current = false;
179
- setAllowed(granted);
180
- setOff(false);
181
- setStatus(granted ? "Float enabled when tilt readings are available." : "Motion access is unavailable. Float stays still.");
182
- }, () => {
183
- if (request.current !== token)
184
- return;
185
- pending.current = false;
186
- setStatus("Motion access is unavailable. Float stays still.");
187
- });
188
- }
189
- return { toggle, status };
190
- }
191
- //# sourceMappingURL=useCardFloat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCardFloat.js","sourceRoot":"","sources":["../../jsr/hooks/useCardFloat.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { MouseEvent, PointerEvent, KeyboardEvent, TouchEvent } from "react";
2
- interface HomeMotionPressOptions {
3
- readonly onHome: () => void;
4
- readonly onLongPress?: () => void;
5
- }
6
- export declare function useHomeMotionPress({ onHome, onLongPress }: HomeMotionPressOptions): {
7
- onClick: (event: MouseEvent<HTMLButtonElement>) => void;
8
- onPointerDown: (event: PointerEvent<HTMLButtonElement>) => void;
9
- onPointerMove: (event: PointerEvent<HTMLButtonElement>) => void;
10
- onPointerUp: (event: PointerEvent<HTMLButtonElement>) => void;
11
- onPointerCancel: () => void;
12
- onPointerLeave: () => void;
13
- onKeyDown: (event: KeyboardEvent<HTMLButtonElement>) => void;
14
- onTouchStart: (event: TouchEvent<HTMLButtonElement>) => void;
15
- onContextMenu: (event: MouseEvent<HTMLButtonElement>) => void;
16
- };
17
- export {};
@@ -1,93 +0,0 @@
1
- import { useEffect, useRef } from "react";
2
- const HOLD_MS = 500;
3
- const MOVE_TOLERANCE_PX = 10;
4
- export function useHomeMotionPress({ onHome, onLongPress }) {
5
- const press = useRef(undefined);
6
- const suppressClick = useRef(false);
7
- useEffect(() => {
8
- function cancelOtherPointer(event) {
9
- if (press.current !== undefined && event.pointerId !== press.current.pointerId)
10
- press.current = undefined;
11
- }
12
- function cancel() {
13
- press.current = undefined;
14
- suppressClick.current = false;
15
- }
16
- window.addEventListener("pointerdown", cancelOtherPointer, true);
17
- window.addEventListener("blur", cancel);
18
- return () => {
19
- window.removeEventListener("pointerdown", cancelOtherPointer, true);
20
- window.removeEventListener("blur", cancel);
21
- };
22
- }, []);
23
- function cancelPress() {
24
- press.current = undefined;
25
- }
26
- function onPointerDown(event) {
27
- suppressClick.current = false;
28
- press.current = undefined;
29
- if (onLongPress === undefined || event.isPrimary === false || event.button !== 0)
30
- return;
31
- press.current = { pointerId: event.pointerId, x: event.clientX, y: event.clientY, started: Date.now() };
32
- }
33
- function onPointerMove(event) {
34
- const origin = press.current;
35
- if (origin === undefined)
36
- return;
37
- if (event.pointerId !== origin.pointerId ||
38
- Math.hypot(event.clientX - origin.x, event.clientY - origin.y) > MOVE_TOLERANCE_PX) {
39
- cancelPress();
40
- }
41
- }
42
- function onPointerUp(event) {
43
- const origin = press.current;
44
- cancelPress();
45
- if (origin === undefined || event.pointerId !== origin.pointerId || onLongPress === undefined)
46
- return;
47
- if (Math.hypot(event.clientX - origin.x, event.clientY - origin.y) > MOVE_TOLERANCE_PX)
48
- return;
49
- if (Date.now() - origin.started < HOLD_MS)
50
- return;
51
- suppressClick.current = true;
52
- onLongPress();
53
- }
54
- function onClick(event) {
55
- const suppress = suppressClick.current;
56
- suppressClick.current = false;
57
- if (suppress === true && event.detail !== 0) {
58
- event.preventDefault();
59
- event.stopPropagation();
60
- return;
61
- }
62
- onHome();
63
- }
64
- function onKeyDown(event) {
65
- suppressClick.current = false;
66
- cancelPress();
67
- if (event.altKey === true && event.key === "Enter" && onLongPress !== undefined) {
68
- event.preventDefault();
69
- if (event.repeat === false)
70
- onLongPress();
71
- }
72
- }
73
- function onTouchStart(event) {
74
- if (event.touches.length > 1)
75
- cancelPress();
76
- }
77
- function onContextMenu(event) {
78
- if (press.current !== undefined || suppressClick.current === true)
79
- event.preventDefault();
80
- }
81
- return {
82
- onClick,
83
- onPointerDown,
84
- onPointerMove,
85
- onPointerUp,
86
- onPointerCancel: cancelPress,
87
- onPointerLeave: cancelPress,
88
- onKeyDown,
89
- onTouchStart,
90
- onContextMenu,
91
- };
92
- }
93
- //# sourceMappingURL=useHomeMotionPress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHomeMotionPress.js","sourceRoot":"","sources":["../../jsr/hooks/useHomeMotionPress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG1C,MAAM,OAAO,GAAG,GAAG,CAAC;AACpB,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAQ7B,MAAM,UAAU,kBAAkB,CAAC,EAAE,MAAM,EAAE,WAAW,EAA0B;IAChF,MAAM,KAAK,GAAG,MAAM,CAA2E,SAAS,CAAC,CAAC;IAC1G,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,kBAAkB,CAAC,KAA8B;YACxD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,CAAC,SAAS;gBAAE,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;QAC5G,CAAC;QACD,SAAS,MAAM;YACb,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1B,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;YACpE,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,WAAW;QAClB,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,SAAS,aAAa,CAAC,KAAsC;QAE3D,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;QAC1B,IAAI,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACzF,KAAK,CAAC,OAAO,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC1G,CAAC;IAED,SAAS,aAAa,CAAC,KAAsC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,IACE,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;YACpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAClF,CAAC;YACD,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,SAAS,WAAW,CAAC,KAAsC;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,WAAW,EAAE,CAAC;QACd,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO;QACtG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,iBAAiB;YAAE,OAAO;QAC/F,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,GAAG,OAAO;YAAE,OAAO;QAClD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,WAAW,EAAE,CAAC;IAChB,CAAC;IAED,SAAS,OAAO,CAAC,KAAoC;QACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC;QACvC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QAE9B,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,MAAM,EAAE,CAAC;IACX,CAAC;IAED,SAAS,SAAS,CAAC,KAAuC;QACxD,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9B,WAAW,EAAE,CAAC;QACd,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAChF,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK;gBAAE,WAAW,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,SAAS,YAAY,CAAC,KAAoC;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,WAAW,EAAE,CAAC;IAC9C,CAAC;IAED,SAAS,aAAa,CAAC,KAAoC;QACzD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI;YAAE,KAAK,CAAC,cAAc,EAAE,CAAC;IAC5F,CAAC;IAED,OAAO;QACL,OAAO;QACP,aAAa;QACb,aAAa;QACb,WAAW;QACX,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,WAAW;QAC3B,SAAS;QACT,YAAY;QACZ,aAAa;KACd,CAAC;AACJ,CAAC"}
@@ -1,23 +0,0 @@
1
- export interface CardMotionReading {
2
- readonly beta: number;
3
- readonly gamma: number;
4
- readonly angle: number;
5
- }
6
- export interface CardMotionSource {
7
- canStartAutomatically(): Promise<boolean>;
8
- requestPermission(): Promise<boolean>;
9
- subscribe(read: (reading: CardMotionReading) => void): () => void;
10
- }
11
- export interface OrientationConstructor {
12
- requestPermission?: () => Promise<string>;
13
- }
14
- export interface SensorPermissions {
15
- query(descriptor: {
16
- name: string;
17
- }): Promise<{
18
- readonly state: PermissionState;
19
- }>;
20
- }
21
- export declare function canStartMotionAutomatically(api: OrientationConstructor | undefined, permissions?: SensorPermissions): Promise<boolean>;
22
- export declare function decodeCardMotionReading(event: Pick<DeviceOrientationEvent, "isTrusted" | "beta" | "gamma">, angle: number): CardMotionReading | undefined;
23
- export declare const browserCardMotion: CardMotionSource;
@@ -1,50 +0,0 @@
1
- export async function canStartMotionAutomatically(api, permissions) {
2
- if (api === undefined)
3
- return false;
4
- if (api.requestPermission === undefined)
5
- return true;
6
- if (permissions === undefined)
7
- return false;
8
- const states = await Promise.allSettled([
9
- Promise.resolve().then(() => permissions.query({ name: "accelerometer" })),
10
- Promise.resolve().then(() => permissions.query({ name: "gyroscope" })),
11
- ]);
12
- return states.every((result) => result.status === "fulfilled" && result.value.state === "granted");
13
- }
14
- export function decodeCardMotionReading(event, angle) {
15
- if (!event.isTrusted || event.beta === null || event.gamma === null)
16
- return undefined;
17
- if (!Number.isFinite(event.beta) || !Number.isFinite(event.gamma) || !Number.isFinite(angle))
18
- return undefined;
19
- return { beta: event.beta, gamma: event.gamma, angle };
20
- }
21
- function orientation() {
22
- if (typeof window === "undefined" || !window.isSecureContext || !("DeviceOrientationEvent" in window))
23
- return undefined;
24
- const constructor = window.DeviceOrientationEvent;
25
- return constructor;
26
- }
27
- export const browserCardMotion = {
28
- canStartAutomatically() {
29
- const permissions = typeof navigator === "undefined" ? undefined : navigator.permissions;
30
- return canStartMotionAutomatically(orientation(), permissions);
31
- },
32
- requestPermission() {
33
- const api = orientation();
34
- if (api === undefined)
35
- return Promise.resolve(false);
36
- return api.requestPermission === undefined
37
- ? Promise.resolve(true)
38
- : api.requestPermission().then((permission) => permission === "granted");
39
- },
40
- subscribe(read) {
41
- function receive(event) {
42
- const reading = decodeCardMotionReading(event, window.screen.orientation?.angle ?? 0);
43
- if (reading !== undefined)
44
- read(reading);
45
- }
46
- window.addEventListener("deviceorientation", receive);
47
- return () => window.removeEventListener("deviceorientation", receive);
48
- },
49
- };
50
- //# sourceMappingURL=card-motion-source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"card-motion-source.js","sourceRoot":"","sources":["../../jsr/motion/card-motion-source.ts"],"names":[],"mappings":"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"}