@blotch/dolan 0.0.0-stage → 22.2.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 (273) hide show
  1. package/dist/commands/add.d.ts +22 -0
  2. package/dist/commands/add.js +132 -0
  3. package/dist/commands/add.js.map +1 -0
  4. package/dist/commands/add.test.d.ts +1 -0
  5. package/dist/commands/add.test.js +209 -0
  6. package/dist/commands/add.test.js.map +1 -0
  7. package/dist/commands/diff.d.ts +13 -0
  8. package/dist/commands/diff.js +155 -0
  9. package/dist/commands/diff.js.map +1 -0
  10. package/dist/commands/diff.test.d.ts +1 -0
  11. package/dist/commands/diff.test.js +327 -0
  12. package/dist/commands/diff.test.js.map +1 -0
  13. package/dist/commands/doctor.d.ts +15 -0
  14. package/dist/commands/doctor.js +248 -0
  15. package/dist/commands/doctor.js.map +1 -0
  16. package/dist/commands/doctor.test.d.ts +1 -0
  17. package/dist/commands/doctor.test.js +301 -0
  18. package/dist/commands/doctor.test.js.map +1 -0
  19. package/dist/commands/eject.d.ts +11 -0
  20. package/dist/commands/eject.js +55 -0
  21. package/dist/commands/eject.js.map +1 -0
  22. package/dist/commands/eject.test.d.ts +1 -0
  23. package/dist/commands/eject.test.js +151 -0
  24. package/dist/commands/eject.test.js.map +1 -0
  25. package/dist/commands/info.d.ts +1 -0
  26. package/dist/commands/info.js +73 -0
  27. package/dist/commands/info.js.map +1 -0
  28. package/dist/commands/info.test.d.ts +1 -0
  29. package/dist/commands/info.test.js +143 -0
  30. package/dist/commands/info.test.js.map +1 -0
  31. package/dist/commands/init.d.ts +1 -0
  32. package/dist/commands/init.js +98 -0
  33. package/dist/commands/init.js.map +1 -0
  34. package/dist/commands/init.test.d.ts +1 -0
  35. package/dist/commands/init.test.js +154 -0
  36. package/dist/commands/init.test.js.map +1 -0
  37. package/dist/commands/list.d.ts +16 -0
  38. package/dist/commands/list.js +124 -0
  39. package/dist/commands/list.js.map +1 -0
  40. package/dist/commands/list.test.d.ts +1 -0
  41. package/dist/commands/list.test.js +285 -0
  42. package/dist/commands/list.test.js.map +1 -0
  43. package/dist/commands/outdated.d.ts +13 -0
  44. package/dist/commands/outdated.js +116 -0
  45. package/dist/commands/outdated.js.map +1 -0
  46. package/dist/commands/outdated.test.d.ts +1 -0
  47. package/dist/commands/outdated.test.js +208 -0
  48. package/dist/commands/outdated.test.js.map +1 -0
  49. package/dist/commands/remove.d.ts +18 -0
  50. package/dist/commands/remove.js +161 -0
  51. package/dist/commands/remove.js.map +1 -0
  52. package/dist/commands/remove.test.d.ts +1 -0
  53. package/dist/commands/remove.test.js +361 -0
  54. package/dist/commands/remove.test.js.map +1 -0
  55. package/dist/commands/theme.d.ts +1 -0
  56. package/dist/commands/theme.js +66 -0
  57. package/dist/commands/theme.js.map +1 -0
  58. package/dist/commands/theme.test.d.ts +1 -0
  59. package/dist/commands/theme.test.js +133 -0
  60. package/dist/commands/theme.test.js.map +1 -0
  61. package/dist/commands/update.d.ts +31 -0
  62. package/dist/commands/update.js +601 -0
  63. package/dist/commands/update.js.map +1 -0
  64. package/dist/commands/update.test.d.ts +1 -0
  65. package/dist/commands/update.test.js +1233 -0
  66. package/dist/commands/update.test.js.map +1 -0
  67. package/dist/config.d.ts +11 -0
  68. package/dist/config.js +19 -0
  69. package/dist/config.js.map +1 -0
  70. package/dist/config.test.d.ts +1 -0
  71. package/dist/config.test.js +48 -0
  72. package/dist/config.test.js.map +1 -0
  73. package/dist/index.d.ts +2 -0
  74. package/dist/index.js +89 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/lockfile.d.ts +21 -0
  77. package/dist/lockfile.js +39 -0
  78. package/dist/lockfile.js.map +1 -0
  79. package/dist/registry.d.ts +14 -0
  80. package/dist/registry.js +85 -0
  81. package/dist/registry.js.map +1 -0
  82. package/dist/registry.test.d.ts +1 -0
  83. package/dist/registry.test.js +95 -0
  84. package/dist/registry.test.js.map +1 -0
  85. package/dist/test-utils.d.ts +16 -0
  86. package/dist/test-utils.js +65 -0
  87. package/dist/test-utils.js.map +1 -0
  88. package/dist/ui/components/accordion/accordion.test.ts +194 -0
  89. package/dist/ui/components/accordion/accordion.ts +173 -0
  90. package/dist/ui/components/accordion/index.ts +6 -0
  91. package/dist/ui/components/action-sheet/action-sheet.test.ts +211 -0
  92. package/dist/ui/components/action-sheet/action-sheet.ts +353 -0
  93. package/dist/ui/components/action-sheet/index.ts +6 -0
  94. package/dist/ui/components/alert/alert.test.ts +48 -0
  95. package/dist/ui/components/alert/alert.ts +104 -0
  96. package/dist/ui/components/alert/index.ts +1 -0
  97. package/dist/ui/components/alert-dialog/alert-dialog.test.ts +141 -0
  98. package/dist/ui/components/alert-dialog/alert-dialog.ts +243 -0
  99. package/dist/ui/components/alert-dialog/index.ts +7 -0
  100. package/dist/ui/components/area-chart/area-chart-render.test.ts +121 -0
  101. package/dist/ui/components/area-chart/area-chart.test.ts +158 -0
  102. package/dist/ui/components/area-chart/area-chart.ts +349 -0
  103. package/dist/ui/components/area-chart/index.ts +6 -0
  104. package/dist/ui/components/aspect-ratio/aspect-ratio.test.ts +10 -0
  105. package/dist/ui/components/aspect-ratio/aspect-ratio.ts +28 -0
  106. package/dist/ui/components/aspect-ratio/index.ts +1 -0
  107. package/dist/ui/components/avatar/avatar.test.ts +69 -0
  108. package/dist/ui/components/avatar/avatar.ts +131 -0
  109. package/dist/ui/components/avatar/index.ts +1 -0
  110. package/dist/ui/components/badge/badge.test.ts +49 -0
  111. package/dist/ui/components/badge/badge.ts +97 -0
  112. package/dist/ui/components/badge/index.ts +1 -0
  113. package/dist/ui/components/bar-chart/bar-chart-render.test.ts +174 -0
  114. package/dist/ui/components/bar-chart/bar-chart.test.ts +73 -0
  115. package/dist/ui/components/bar-chart/bar-chart.ts +327 -0
  116. package/dist/ui/components/bar-chart/index.ts +6 -0
  117. package/dist/ui/components/bottom-sheet/bottom-sheet.test.ts +163 -0
  118. package/dist/ui/components/bottom-sheet/bottom-sheet.ts +339 -0
  119. package/dist/ui/components/bottom-sheet/index.ts +1 -0
  120. package/dist/ui/components/button/button-render.test.ts +113 -0
  121. package/dist/ui/components/button/button.test.ts +70 -0
  122. package/dist/ui/components/button/button.ts +170 -0
  123. package/dist/ui/components/button/index.ts +6 -0
  124. package/dist/ui/components/button-group/button-group-render.test.ts +146 -0
  125. package/dist/ui/components/button-group/button-group.test.ts +54 -0
  126. package/dist/ui/components/button-group/button-group.ts +209 -0
  127. package/dist/ui/components/button-group/index.ts +8 -0
  128. package/dist/ui/components/candlestick-chart/candlestick-chart-render.test.ts +174 -0
  129. package/dist/ui/components/candlestick-chart/candlestick-chart.test.ts +96 -0
  130. package/dist/ui/components/candlestick-chart/candlestick-chart.ts +355 -0
  131. package/dist/ui/components/candlestick-chart/index.ts +7 -0
  132. package/dist/ui/components/card/card.test.ts +110 -0
  133. package/dist/ui/components/card/card.ts +162 -0
  134. package/dist/ui/components/card/index.ts +8 -0
  135. package/dist/ui/components/cartesian-chart/cartesian-chart-render.test.ts +188 -0
  136. package/dist/ui/components/cartesian-chart/cartesian-chart.test.ts +549 -0
  137. package/dist/ui/components/cartesian-chart/cartesian-chart.ts +1140 -0
  138. package/dist/ui/components/cartesian-chart/index.ts +18 -0
  139. package/dist/ui/components/checkbox/checkbox.test.ts +59 -0
  140. package/dist/ui/components/checkbox/checkbox.ts +96 -0
  141. package/dist/ui/components/checkbox/index.ts +1 -0
  142. package/dist/ui/components/collapsible/collapsible.test.ts +112 -0
  143. package/dist/ui/components/collapsible/collapsible.ts +122 -0
  144. package/dist/ui/components/collapsible/index.ts +5 -0
  145. package/dist/ui/components/dialog/dialog.test.ts +157 -0
  146. package/dist/ui/components/dialog/dialog.ts +248 -0
  147. package/dist/ui/components/dialog/index.ts +7 -0
  148. package/dist/ui/components/empty-state/empty-state.test.ts +60 -0
  149. package/dist/ui/components/empty-state/empty-state.ts +46 -0
  150. package/dist/ui/components/empty-state/index.ts +1 -0
  151. package/dist/ui/components/icon/icon.test.ts +52 -0
  152. package/dist/ui/components/icon/icon.ts +54 -0
  153. package/dist/ui/components/icon/icons.ts +569 -0
  154. package/dist/ui/components/icon/index.ts +2 -0
  155. package/dist/ui/components/input/index.ts +1 -0
  156. package/dist/ui/components/input/input.test.ts +134 -0
  157. package/dist/ui/components/input/input.ts +189 -0
  158. package/dist/ui/components/label/index.ts +1 -0
  159. package/dist/ui/components/label/label.test.ts +38 -0
  160. package/dist/ui/components/label/label.ts +24 -0
  161. package/dist/ui/components/line-chart/index.ts +6 -0
  162. package/dist/ui/components/line-chart/line-chart-render.test.ts +121 -0
  163. package/dist/ui/components/line-chart/line-chart.test.ts +81 -0
  164. package/dist/ui/components/line-chart/line-chart.ts +273 -0
  165. package/dist/ui/components/list/index.ts +1 -0
  166. package/dist/ui/components/list/list.test.ts +35 -0
  167. package/dist/ui/components/list/list.ts +71 -0
  168. package/dist/ui/components/nav-drawer/index.ts +8 -0
  169. package/dist/ui/components/nav-drawer/nav-drawer.test.ts +267 -0
  170. package/dist/ui/components/nav-drawer/nav-drawer.ts +504 -0
  171. package/dist/ui/components/pagination/index.ts +1 -0
  172. package/dist/ui/components/pagination/pagination.test.ts +96 -0
  173. package/dist/ui/components/pagination/pagination.ts +147 -0
  174. package/dist/ui/components/progress/index.ts +1 -0
  175. package/dist/ui/components/progress/progress.test.ts +71 -0
  176. package/dist/ui/components/progress/progress.ts +118 -0
  177. package/dist/ui/components/radio-group/index.ts +1 -0
  178. package/dist/ui/components/radio-group/radio-group.test.ts +115 -0
  179. package/dist/ui/components/radio-group/radio-group.ts +129 -0
  180. package/dist/ui/components/scatter-chart/index.ts +6 -0
  181. package/dist/ui/components/scatter-chart/scatter-chart-render.test.ts +157 -0
  182. package/dist/ui/components/scatter-chart/scatter-chart.test.ts +57 -0
  183. package/dist/ui/components/scatter-chart/scatter-chart.ts +277 -0
  184. package/dist/ui/components/scroll-area/index.ts +1 -0
  185. package/dist/ui/components/scroll-area/scroll-area.test.ts +40 -0
  186. package/dist/ui/components/scroll-area/scroll-area.ts +73 -0
  187. package/dist/ui/components/select/index.ts +1 -0
  188. package/dist/ui/components/select/select.test.ts +107 -0
  189. package/dist/ui/components/select/select.ts +146 -0
  190. package/dist/ui/components/separator/index.ts +1 -0
  191. package/dist/ui/components/separator/separator.test.ts +26 -0
  192. package/dist/ui/components/separator/separator.ts +45 -0
  193. package/dist/ui/components/sheet/index.ts +7 -0
  194. package/dist/ui/components/sheet/sheet.test.ts +44 -0
  195. package/dist/ui/components/sheet/sheet.ts +114 -0
  196. package/dist/ui/components/skeleton/index.ts +1 -0
  197. package/dist/ui/components/skeleton/skeleton.test.ts +13 -0
  198. package/dist/ui/components/skeleton/skeleton.ts +45 -0
  199. package/dist/ui/components/spinner/index.ts +1 -0
  200. package/dist/ui/components/spinner/spinner.test.ts +39 -0
  201. package/dist/ui/components/spinner/spinner.ts +83 -0
  202. package/dist/ui/components/switch/index.ts +1 -0
  203. package/dist/ui/components/switch/switch.test.ts +63 -0
  204. package/dist/ui/components/switch/switch.ts +98 -0
  205. package/dist/ui/components/tabs/index.ts +1 -0
  206. package/dist/ui/components/tabs/tabs.test.ts +199 -0
  207. package/dist/ui/components/tabs/tabs.ts +317 -0
  208. package/dist/ui/components/textarea/index.ts +1 -0
  209. package/dist/ui/components/textarea/textarea.test.ts +138 -0
  210. package/dist/ui/components/textarea/textarea.ts +221 -0
  211. package/dist/ui/components/toast/index.ts +9 -0
  212. package/dist/ui/components/toast/toast-state.test.ts +54 -0
  213. package/dist/ui/components/toast/toast-state.ts +46 -0
  214. package/dist/ui/components/toast/toast.test.ts +342 -0
  215. package/dist/ui/components/toast/toast.ts +527 -0
  216. package/dist/ui/components/toggle/index.ts +7 -0
  217. package/dist/ui/components/toggle/toggle.test.ts +186 -0
  218. package/dist/ui/components/toggle/toggle.ts +218 -0
  219. package/dist/ui/components/typography/index.ts +5 -0
  220. package/dist/ui/components/typography/typography.test.ts +55 -0
  221. package/dist/ui/components/typography/typography.ts +44 -0
  222. package/dist/ui/theme/dark.css +41 -0
  223. package/dist/ui/theme/default.css +56 -0
  224. package/dist/ui/theme/tailwind-plugin.test.ts +124 -0
  225. package/dist/ui/theme/tailwind-plugin.ts +151 -0
  226. package/dist/ui/utils/animate.test.ts +324 -0
  227. package/dist/ui/utils/animate.ts +544 -0
  228. package/dist/ui/utils/cn.test.ts +27 -0
  229. package/dist/ui/utils/cn.ts +6 -0
  230. package/dist/utils/analyze.d.ts +32 -0
  231. package/dist/utils/analyze.js +109 -0
  232. package/dist/utils/analyze.js.map +1 -0
  233. package/dist/utils/analyze.test.d.ts +1 -0
  234. package/dist/utils/analyze.test.js +146 -0
  235. package/dist/utils/analyze.test.js.map +1 -0
  236. package/dist/utils/animate.d.ts +210 -0
  237. package/dist/utils/animate.js +423 -0
  238. package/dist/utils/animate.js.map +1 -0
  239. package/dist/utils/animate.test.d.ts +1 -0
  240. package/dist/utils/animate.test.js +365 -0
  241. package/dist/utils/animate.test.js.map +1 -0
  242. package/dist/utils/banner.d.ts +1 -0
  243. package/dist/utils/banner.js +15 -0
  244. package/dist/utils/banner.js.map +1 -0
  245. package/dist/utils/banner.test.d.ts +1 -0
  246. package/dist/utils/banner.test.js +29 -0
  247. package/dist/utils/banner.test.js.map +1 -0
  248. package/dist/utils/cn.d.ts +2 -0
  249. package/dist/utils/cn.js +6 -0
  250. package/dist/utils/cn.js.map +1 -0
  251. package/dist/utils/cn.test.d.ts +1 -0
  252. package/dist/utils/cn.test.js +21 -0
  253. package/dist/utils/cn.test.js.map +1 -0
  254. package/dist/utils/format.d.ts +31 -0
  255. package/dist/utils/format.js +95 -0
  256. package/dist/utils/format.js.map +1 -0
  257. package/dist/utils/format.test.d.ts +1 -0
  258. package/dist/utils/format.test.js +71 -0
  259. package/dist/utils/format.test.js.map +1 -0
  260. package/dist/utils/logger.d.ts +6 -0
  261. package/dist/utils/logger.js +16 -0
  262. package/dist/utils/logger.js.map +1 -0
  263. package/dist/utils/logger.test.d.ts +1 -0
  264. package/dist/utils/logger.test.js +36 -0
  265. package/dist/utils/logger.test.js.map +1 -0
  266. package/dist/utils/resolve-paths.d.ts +12 -0
  267. package/dist/utils/resolve-paths.js +29 -0
  268. package/dist/utils/resolve-paths.js.map +1 -0
  269. package/dist/utils/resolve-paths.test.d.ts +1 -0
  270. package/dist/utils/resolve-paths.test.js +52 -0
  271. package/dist/utils/resolve-paths.test.js.map +1 -0
  272. package/package.json +56 -4
  273. package/README.md +0 -3
@@ -0,0 +1,423 @@
1
+ /**
2
+ * Shared animation utility for @blotch/ui components.
3
+ *
4
+ * Centralizes all motion constants (durations, easing curves, scale factors)
5
+ * and provides reusable animation helpers that wrap the Lynx element.animate() API.
6
+ * This ensures a consistent, cohesive motion language across the entire component library.
7
+ */
8
+ // ---------------------------------------------------------------------------
9
+ // Constants
10
+ // ---------------------------------------------------------------------------
11
+ /**
12
+ * Duration constants in milliseconds
13
+ */
14
+ export const DURATION = {
15
+ /**
16
+ * Micro-interactions: checkbox tick, radio dot
17
+ */
18
+ instant: 100,
19
+ /**
20
+ * Press/release, thumb slide
21
+ */
22
+ fast: 150,
23
+ /**
24
+ * Overlays, content transitions
25
+ */
26
+ normal: 250,
27
+ /**
28
+ * Sheet/drawer slide, accordion expand
29
+ */
30
+ slow: 350,
31
+ };
32
+ /**
33
+ * Easing curves for different animation contexts
34
+ */
35
+ export const EASING = {
36
+ /**
37
+ * Entering elements — fast start, gentle stop
38
+ */
39
+ decelerate: 'cubic-bezier(0.0, 0.0, 0.2, 1)',
40
+ /**
41
+ * Exiting elements — gentle start, fast stop
42
+ */
43
+ accelerate: 'cubic-bezier(0.4, 0.0, 1, 1)',
44
+ /**
45
+ * General purpose movement
46
+ */
47
+ standard: 'cubic-bezier(0.4, 0.0, 0.2, 1)',
48
+ /**
49
+ * Bouncy overshoot — playful, energetic entrance
50
+ */
51
+ spring: 'cubic-bezier(0.34, 1.56, 0.64, 1)',
52
+ /**
53
+ * Gentle overshoot — refined entrance
54
+ */
55
+ springSubtle: 'cubic-bezier(0.22, 1.2, 0.36, 1)',
56
+ /**
57
+ * iOS-style sheet/drawer slide
58
+ */
59
+ sheet: 'cubic-bezier(0.32, 0.72, 0, 1)',
60
+ };
61
+ /**
62
+ * Scale factors for transform animations
63
+ */
64
+ export const SCALE = {
65
+ /**
66
+ * Button/toggle press
67
+ */
68
+ pressDown: 0.97,
69
+ /**
70
+ * List item / card press (lighter)
71
+ */
72
+ pressDownLight: 0.985,
73
+ /**
74
+ * Small elements popping in (check, radio dot)
75
+ */
76
+ popFrom: 0.6,
77
+ /**
78
+ * Dialog entrance starting scale
79
+ */
80
+ dialogFrom: 0.9,
81
+ /**
82
+ * Dialog exit ending scale
83
+ */
84
+ dialogTo: 0.95,
85
+ };
86
+ // ---------------------------------------------------------------------------
87
+ // Primitive Helpers
88
+ // ---------------------------------------------------------------------------
89
+ /**
90
+ * Fades an element in (opacity 0 → 1).
91
+ * Used for backdrops, content reveals, and soft entrances.
92
+ */
93
+ export const fadeIn = (el, options) => {
94
+ if (!el)
95
+ return undefined;
96
+ return el.animate([{ opacity: 0 }, { opacity: 1 }], {
97
+ duration: options?.duration ?? DURATION.normal,
98
+ easing: options?.easing ?? EASING.decelerate,
99
+ fill: options?.fill ?? 'forwards',
100
+ });
101
+ };
102
+ /**
103
+ * Fades an element out (opacity 1 → 0).
104
+ * Used for backdrops, content dismissals, and soft exits.
105
+ */
106
+ export const fadeOut = (el, options) => {
107
+ if (!el)
108
+ return undefined;
109
+ return el.animate([{ opacity: 1 }, { opacity: 0 }], {
110
+ duration: options?.duration ?? DURATION.fast,
111
+ easing: options?.easing ?? EASING.accelerate,
112
+ fill: options?.fill ?? 'forwards',
113
+ });
114
+ };
115
+ /**
116
+ * Scales and fades an element in — used for overlay panels (dialog, alert-dialog).
117
+ * Animates from a smaller scale + offset to full size.
118
+ */
119
+ export const scaleIn = (el, options) => {
120
+ if (!el)
121
+ return undefined;
122
+ const fromScale = options?.fromScale ?? SCALE.dialogFrom;
123
+ const fromY = options?.fromY ?? 10;
124
+ return el.animate([
125
+ { transform: `scale(${fromScale}) translateY(${fromY}px)`, opacity: 0 },
126
+ { transform: 'scale(1) translateY(0px)', opacity: 1 },
127
+ ], {
128
+ duration: options?.duration ?? DURATION.slow,
129
+ easing: options?.easing ?? EASING.springSubtle,
130
+ fill: options?.fill ?? 'forwards',
131
+ });
132
+ };
133
+ /**
134
+ * Scales and fades an element out — used for overlay panel exit.
135
+ */
136
+ export const scaleOut = (el, options) => {
137
+ if (!el)
138
+ return undefined;
139
+ const toScale = options?.toScale ?? SCALE.dialogTo;
140
+ const toY = options?.toY ?? 10;
141
+ return el.animate([
142
+ { transform: 'scale(1) translateY(0px)', opacity: 1 },
143
+ { transform: `scale(${toScale}) translateY(${toY}px)`, opacity: 0 },
144
+ ], {
145
+ duration: options?.duration ?? DURATION.fast,
146
+ easing: options?.easing ?? EASING.accelerate,
147
+ fill: options?.fill ?? 'forwards',
148
+ });
149
+ };
150
+ /**
151
+ * Slides an element in from a direction.
152
+ * Used for sheets (bottom), nav-drawers (left/right), toasts (bottom).
153
+ */
154
+ export const slideIn = (el, direction, options) => {
155
+ if (!el)
156
+ return undefined;
157
+ const translate = {
158
+ up: ['translateY(100%)', 'translateY(0%)'],
159
+ down: ['translateY(-100%)', 'translateY(0%)'],
160
+ left: ['translateX(-100%)', 'translateX(0%)'],
161
+ right: ['translateX(100%)', 'translateX(0%)'],
162
+ }[direction];
163
+ return el.animate([
164
+ { transform: translate[0], opacity: 0.8 },
165
+ { transform: translate[1], opacity: 1 },
166
+ ], {
167
+ duration: options?.duration ?? DURATION.slow,
168
+ easing: options?.easing ?? EASING.sheet,
169
+ fill: options?.fill ?? 'forwards',
170
+ });
171
+ };
172
+ /**
173
+ * Slides an element out to a direction.
174
+ */
175
+ export const slideOut = (el, direction, options) => {
176
+ if (!el)
177
+ return undefined;
178
+ const translate = {
179
+ up: ['translateY(0%)', 'translateY(-100%)'],
180
+ down: ['translateY(0%)', 'translateY(100%)'],
181
+ left: ['translateX(0%)', 'translateX(-100%)'],
182
+ right: ['translateX(0%)', 'translateX(100%)'],
183
+ }[direction];
184
+ return el.animate([
185
+ { transform: translate[0], opacity: 1 },
186
+ { transform: translate[1], opacity: 0.8 },
187
+ ], {
188
+ duration: options?.duration ?? DURATION.normal,
189
+ easing: options?.easing ?? EASING.accelerate,
190
+ fill: options?.fill ?? 'forwards',
191
+ });
192
+ };
193
+ /**
194
+ * Pops a small element in with spring physics.
195
+ * Used for checkbox marks, radio dots, badges.
196
+ */
197
+ export const popIn = (el, options) => {
198
+ if (!el)
199
+ return undefined;
200
+ const from = options?.fromScale ?? SCALE.popFrom;
201
+ return el.animate([
202
+ { transform: `scale(${from})`, opacity: 0 },
203
+ { transform: 'scale(1)', opacity: 1 },
204
+ ], {
205
+ duration: options?.duration ?? DURATION.fast,
206
+ easing: options?.easing ?? EASING.spring,
207
+ fill: options?.fill ?? 'forwards',
208
+ });
209
+ };
210
+ /**
211
+ * Pops a small element out (reverse of popIn).
212
+ */
213
+ export const popOut = (el, options) => {
214
+ if (!el)
215
+ return undefined;
216
+ const to = options?.toScale ?? 0.8;
217
+ return el.animate([
218
+ { transform: 'scale(1)', opacity: 1 },
219
+ { transform: `scale(${to})`, opacity: 0 },
220
+ ], {
221
+ duration: options?.duration ?? DURATION.instant,
222
+ easing: options?.easing ?? EASING.accelerate,
223
+ fill: options?.fill ?? 'forwards',
224
+ });
225
+ };
226
+ // ---------------------------------------------------------------------------
227
+ // Press Feedback Helpers
228
+ // ---------------------------------------------------------------------------
229
+ /**
230
+ * Drives a press-feedback transform with an inline CSS transition instead of
231
+ * the imperative `element.animate()` (Web Animations) API.
232
+ *
233
+ * WHY NOT `el.animate()`: it plays on iOS/Android (native runs the renderer on
234
+ * the main thread, where `__ElementAnimate` maps to a real native animation)
235
+ * but is a DEAD no-op on Lynx web. On web the app runs inside `@lynx-js/web-core`'s
236
+ * worker against an OFFSCREEN document; `element.animate()` there creates a live
237
+ * Web-Animation on the offscreen node that is never serialized to the real DOM,
238
+ * so the on-screen element never moves. (Verified in a headless browser: the
239
+ * press handlers fire and `el.element.animate()` runs without error, yet the
240
+ * rendered node's computed transform stays `none`.) Inline STYLE mutations, by
241
+ * contrast, ARE serialized offscreen→real — that is how every `[style.*]`
242
+ * binding renders on web — so a `transition` + `transform` written via
243
+ * `setStyle` animates identically on native and web.
244
+ *
245
+ * The "from" state is always the element's current transform, so setting the
246
+ * `transition` and the new `transform` together reliably triggers the
247
+ * transition on both platforms (no from-state reflow needed, unlike an
248
+ * entrance animation would require).
249
+ */
250
+ const transitionTransform = (el, transform, duration, easing) => {
251
+ if (!el?.setStyle)
252
+ return undefined;
253
+ el.setStyle('transition', `transform ${duration}ms ${easing}`);
254
+ el.setStyle('transform', transform);
255
+ // CSS transitions have no imperative handle to stop; re-pressing simply
256
+ // re-transitions from the current value. cancel() is a no-op kept for API
257
+ // parity with callers that store and cancel the previous handle.
258
+ return { cancel() { } };
259
+ };
260
+ /**
261
+ * Animates an element being pressed down (scale shrink).
262
+ *
263
+ * Wire this to BOTH the touch and mouse press-start events —
264
+ * `(bindtouchstart)` and `(bindmousedown)`. Native (iOS/Android) only ever
265
+ * fires touch events; Lynx web runs in the browser, where a mouse press fires
266
+ * `mousedown` and NEVER `touchstart`. Mouse events are inert on touch devices,
267
+ * so binding both yields identical press-and-hold feedback across platforms.
268
+ * See `transitionTransform` for why this uses a CSS transition, not
269
+ * `el.animate()`.
270
+ */
271
+ export const pressDown = (el, scale = SCALE.pressDown) => transitionTransform(el, `scale(${scale})`, DURATION.instant, EASING.standard);
272
+ /**
273
+ * Animates an element releasing from a press (scale back with spring).
274
+ *
275
+ * Wire this to the touch AND mouse release events — `(bindtouchend)` +
276
+ * `(bindtouchcancel)` and `(bindmouseup)` + `(bindmouseleave)`. See `pressDown`
277
+ * for why the mouse bindings are required on Lynx web. `mouseleave` is the
278
+ * `touchcancel` analogue: it restores the scale if the cursor leaves the
279
+ * element while still pressed.
280
+ */
281
+ export const pressRelease = (el) => transitionTransform(el, 'scale(1)', DURATION.fast, EASING.spring);
282
+ // ---------------------------------------------------------------------------
283
+ // Composite Helpers
284
+ // ---------------------------------------------------------------------------
285
+ /**
286
+ * Orchestrates opening an overlay (backdrop + panel entrance).
287
+ * Provides staggered timing — backdrop fades first, then panel enters.
288
+ */
289
+ export const overlayOpen = (backdrop, panel, type) => {
290
+ // Backdrop fades in immediately
291
+ const backdropAnim = fadeIn(backdrop, { duration: DURATION.normal });
292
+ // Panel enters with a 30ms stagger after backdrop
293
+ let panelAnim;
294
+ setTimeout(() => {
295
+ if (type === 'center') {
296
+ panelAnim = scaleIn(panel);
297
+ }
298
+ else if (type === 'bottom') {
299
+ panelAnim = slideIn(panel, 'up');
300
+ }
301
+ else if (type === 'left') {
302
+ panelAnim = slideIn(panel, 'left');
303
+ }
304
+ else {
305
+ panelAnim = slideIn(panel, 'right');
306
+ }
307
+ }, 30);
308
+ return { backdrop: backdropAnim, panel: panelAnim };
309
+ };
310
+ /**
311
+ * Orchestrates closing an overlay (panel exits, then backdrop fades).
312
+ * Returns total animation duration for cleanup scheduling.
313
+ */
314
+ export const overlayClose = (backdrop, panel, type) => {
315
+ // Panel exits immediately
316
+ if (type === 'center') {
317
+ scaleOut(panel, { duration: 180 });
318
+ }
319
+ else if (type === 'bottom') {
320
+ slideOut(panel, 'down', { duration: DURATION.normal });
321
+ }
322
+ else if (type === 'left') {
323
+ slideOut(panel, 'left', { duration: DURATION.normal });
324
+ }
325
+ else {
326
+ slideOut(panel, 'right', { duration: DURATION.normal });
327
+ }
328
+ // Backdrop fades out in parallel
329
+ fadeOut(backdrop, { duration: DURATION.normal });
330
+ // Return the longest duration for setTimeout cleanup
331
+ return type === 'center' ? 180 : DURATION.normal;
332
+ };
333
+ // ---------------------------------------------------------------------------
334
+ // Continuous Animation Helpers
335
+ // ---------------------------------------------------------------------------
336
+ /**
337
+ * Creates a continuous pulse animation (for skeleton loading states).
338
+ * Oscillates opacity between 1 and 0.5 indefinitely.
339
+ */
340
+ export const pulse = (el, options) => {
341
+ if (!el)
342
+ return undefined;
343
+ return el.animate([{ opacity: 1 }, { opacity: 0.5 }, { opacity: 1 }], {
344
+ duration: options?.duration ?? 1500,
345
+ easing: 'ease-in-out',
346
+ iterations: Infinity,
347
+ });
348
+ };
349
+ /**
350
+ * Creates a horizontal shake animation (for error states on inputs).
351
+ * Shakes ±4px then ±2px before settling.
352
+ */
353
+ export const shake = (el, options) => {
354
+ if (!el)
355
+ return undefined;
356
+ return el.animate([
357
+ { transform: 'translateX(0)' },
358
+ { transform: 'translateX(-4px)' },
359
+ { transform: 'translateX(4px)' },
360
+ { transform: 'translateX(-2px)' },
361
+ { transform: 'translateX(2px)' },
362
+ { transform: 'translateX(0)' },
363
+ ], {
364
+ duration: options?.duration ?? DURATION.slow,
365
+ easing: options?.easing ?? EASING.standard,
366
+ fill: 'forwards',
367
+ });
368
+ };
369
+ /**
370
+ * Animates a spring-based translation between two X positions.
371
+ * Used for switch thumbs with a squish effect at midpoint.
372
+ */
373
+ export const springTranslateX = (el, fromX, toX, options) => {
374
+ if (!el)
375
+ return undefined;
376
+ const midX = (fromX + toX) / 2;
377
+ return el.animate([
378
+ { transform: `translateX(${fromX}px) scale(1)` },
379
+ { transform: `translateX(${midX}px) scale(1.1)` },
380
+ { transform: `translateX(${toX}px) scale(1)` },
381
+ ], {
382
+ duration: options?.duration ?? 200,
383
+ easing: options?.easing ?? EASING.spring,
384
+ fill: options?.fill ?? 'forwards',
385
+ });
386
+ };
387
+ /**
388
+ * Content reveal animation — fade in with upward slide.
389
+ * Used for accordion content, tab content, alerts, etc.
390
+ */
391
+ export const revealIn = (el, options) => {
392
+ if (!el)
393
+ return undefined;
394
+ const fromY = options?.fromY ?? 8;
395
+ return el.animate([
396
+ { transform: `translateY(${fromY}px)`, opacity: 0 },
397
+ { transform: 'translateY(0)', opacity: 1 },
398
+ ], {
399
+ duration: options?.duration ?? DURATION.normal,
400
+ easing: options?.easing ?? EASING.decelerate,
401
+ fill: options?.fill ?? 'forwards',
402
+ });
403
+ };
404
+ /**
405
+ * Direction-aware slide + fade for tab content transitions.
406
+ * Slides from left or right based on navigation direction, creating
407
+ * a spatial relationship between tab panels.
408
+ */
409
+ export const directionalSlideIn = (el, direction, options) => {
410
+ if (!el)
411
+ return undefined;
412
+ const distance = options?.distance ?? 24;
413
+ const fromX = direction * distance;
414
+ return el.animate([
415
+ { transform: `translateX(${fromX}px)`, opacity: 0 },
416
+ { transform: 'translateX(0px)', opacity: 1 },
417
+ ], {
418
+ duration: options?.duration ?? DURATION.slow,
419
+ easing: options?.easing ?? EASING.springSubtle,
420
+ fill: options?.fill ?? 'forwards',
421
+ });
422
+ };
423
+ //# sourceMappingURL=animate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animate.js","sourceRoot":"","sources":["../../src/utils/animate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};