@chenzy-design/core 0.3.1 → 0.4.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 (283) hide show
  1. package/dist/ai-chat-dialogue.d.ts +300 -0
  2. package/dist/ai-chat-dialogue.d.ts.map +1 -0
  3. package/dist/ai-chat-dialogue.js +699 -0
  4. package/dist/ai-chat-dialogue.js.map +1 -0
  5. package/dist/ai-chat-dialogue.test.d.ts +2 -0
  6. package/dist/ai-chat-dialogue.test.d.ts.map +1 -0
  7. package/dist/ai-chat-dialogue.test.js +338 -0
  8. package/dist/ai-chat-dialogue.test.js.map +1 -0
  9. package/dist/ai-chat-input.d.ts +191 -0
  10. package/dist/ai-chat-input.d.ts.map +1 -0
  11. package/dist/ai-chat-input.js +274 -0
  12. package/dist/ai-chat-input.js.map +1 -0
  13. package/dist/ai-chat-input.test.d.ts +2 -0
  14. package/dist/ai-chat-input.test.d.ts.map +1 -0
  15. package/dist/ai-chat-input.test.js +339 -0
  16. package/dist/ai-chat-input.test.js.map +1 -0
  17. package/dist/audio-player.d.ts +154 -0
  18. package/dist/audio-player.d.ts.map +1 -0
  19. package/dist/audio-player.js +254 -0
  20. package/dist/audio-player.js.map +1 -0
  21. package/dist/audio-player.test.d.ts +2 -0
  22. package/dist/audio-player.test.d.ts.map +1 -0
  23. package/dist/audio-player.test.js +275 -0
  24. package/dist/audio-player.test.js.map +1 -0
  25. package/dist/back-top.d.ts +4 -1
  26. package/dist/back-top.d.ts.map +1 -1
  27. package/dist/back-top.js +5 -2
  28. package/dist/back-top.js.map +1 -1
  29. package/dist/back-top.test.js +3 -2
  30. package/dist/back-top.test.js.map +1 -1
  31. package/dist/calendar.d.ts +132 -44
  32. package/dist/calendar.d.ts.map +1 -1
  33. package/dist/calendar.js +413 -70
  34. package/dist/calendar.js.map +1 -1
  35. package/dist/calendar.test.js +160 -76
  36. package/dist/calendar.test.js.map +1 -1
  37. package/dist/chat.d.ts +172 -0
  38. package/dist/chat.d.ts.map +1 -0
  39. package/dist/chat.js +210 -0
  40. package/dist/chat.js.map +1 -0
  41. package/dist/chat.test.d.ts +2 -0
  42. package/dist/chat.test.d.ts.map +1 -0
  43. package/dist/chat.test.js +181 -0
  44. package/dist/chat.test.js.map +1 -0
  45. package/dist/code-highlight.d.ts +30 -0
  46. package/dist/code-highlight.d.ts.map +1 -0
  47. package/dist/code-highlight.js +37 -0
  48. package/dist/code-highlight.js.map +1 -0
  49. package/dist/code-highlight.test.d.ts +2 -0
  50. package/dist/code-highlight.test.d.ts.map +1 -0
  51. package/dist/code-highlight.test.js +36 -0
  52. package/dist/code-highlight.test.js.map +1 -0
  53. package/dist/collapsible.d.ts +41 -0
  54. package/dist/collapsible.d.ts.map +1 -0
  55. package/dist/collapsible.js +33 -0
  56. package/dist/collapsible.js.map +1 -0
  57. package/dist/collapsible.test.d.ts +2 -0
  58. package/dist/collapsible.test.d.ts.map +1 -0
  59. package/dist/collapsible.test.js +57 -0
  60. package/dist/collapsible.test.js.map +1 -0
  61. package/dist/color-value.d.ts +60 -0
  62. package/dist/color-value.d.ts.map +1 -0
  63. package/dist/color-value.js +165 -0
  64. package/dist/color-value.js.map +1 -0
  65. package/dist/color-value.test.d.ts +2 -0
  66. package/dist/color-value.test.d.ts.map +1 -0
  67. package/dist/color-value.test.js +104 -0
  68. package/dist/color-value.test.js.map +1 -0
  69. package/dist/config-provider.d.ts +76 -37
  70. package/dist/config-provider.d.ts.map +1 -1
  71. package/dist/config-provider.js +107 -32
  72. package/dist/config-provider.js.map +1 -1
  73. package/dist/config-provider.test.js +123 -60
  74. package/dist/config-provider.test.js.map +1 -1
  75. package/dist/cropper.d.ts +164 -0
  76. package/dist/cropper.d.ts.map +1 -0
  77. package/dist/cropper.js +841 -0
  78. package/dist/cropper.js.map +1 -0
  79. package/dist/cropper.test.d.ts +2 -0
  80. package/dist/cropper.test.d.ts.map +1 -0
  81. package/dist/cropper.test.js +259 -0
  82. package/dist/cropper.test.js.map +1 -0
  83. package/dist/drag-move.d.ts +119 -0
  84. package/dist/drag-move.d.ts.map +1 -0
  85. package/dist/drag-move.js +237 -0
  86. package/dist/drag-move.js.map +1 -0
  87. package/dist/drag-move.test.d.ts +2 -0
  88. package/dist/drag-move.test.d.ts.map +1 -0
  89. package/dist/drag-move.test.js +304 -0
  90. package/dist/drag-move.test.js.map +1 -0
  91. package/dist/editable.d.ts +24 -4
  92. package/dist/editable.d.ts.map +1 -1
  93. package/dist/editable.js +18 -0
  94. package/dist/editable.js.map +1 -1
  95. package/dist/editable.test.js +55 -2
  96. package/dist/editable.test.js.map +1 -1
  97. package/dist/ellipsis.d.ts +13 -0
  98. package/dist/ellipsis.d.ts.map +1 -1
  99. package/dist/ellipsis.js +36 -0
  100. package/dist/ellipsis.js.map +1 -1
  101. package/dist/ellipsis.test.js +37 -1
  102. package/dist/ellipsis.test.js.map +1 -1
  103. package/dist/form-path.d.ts +19 -0
  104. package/dist/form-path.d.ts.map +1 -0
  105. package/dist/form-path.js +97 -0
  106. package/dist/form-path.js.map +1 -0
  107. package/dist/form-path.test.d.ts +2 -0
  108. package/dist/form-path.test.d.ts.map +1 -0
  109. package/dist/form-path.test.js +57 -0
  110. package/dist/form-path.test.js.map +1 -0
  111. package/dist/form-validate.d.ts +13 -0
  112. package/dist/form-validate.d.ts.map +1 -0
  113. package/dist/form-validate.js +204 -0
  114. package/dist/form-validate.js.map +1 -0
  115. package/dist/form.d.ts +91 -18
  116. package/dist/form.d.ts.map +1 -1
  117. package/dist/form.js +170 -115
  118. package/dist/form.js.map +1 -1
  119. package/dist/form.test.js +349 -76
  120. package/dist/form.test.js.map +1 -1
  121. package/dist/highlight.d.ts +42 -32
  122. package/dist/highlight.d.ts.map +1 -1
  123. package/dist/highlight.js +67 -41
  124. package/dist/highlight.js.map +1 -1
  125. package/dist/highlight.test.js +73 -32
  126. package/dist/highlight.test.js.map +1 -1
  127. package/dist/hotkeys.d.ts +151 -0
  128. package/dist/hotkeys.d.ts.map +1 -0
  129. package/dist/hotkeys.js +188 -0
  130. package/dist/hotkeys.js.map +1 -0
  131. package/dist/hotkeys.test.d.ts +2 -0
  132. package/dist/hotkeys.test.d.ts.map +1 -0
  133. package/dist/hotkeys.test.js +170 -0
  134. package/dist/hotkeys.test.js.map +1 -0
  135. package/dist/index.d.ts +33 -17
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +32 -13
  138. package/dist/index.js.map +1 -1
  139. package/dist/input.d.ts +34 -0
  140. package/dist/input.d.ts.map +1 -0
  141. package/dist/input.js +54 -0
  142. package/dist/input.js.map +1 -0
  143. package/dist/input.test.d.ts +2 -0
  144. package/dist/input.test.d.ts.map +1 -0
  145. package/dist/input.test.js +56 -0
  146. package/dist/input.test.js.map +1 -0
  147. package/dist/markdown-render.d.ts +49 -0
  148. package/dist/markdown-render.d.ts.map +1 -0
  149. package/dist/markdown-render.js +61 -0
  150. package/dist/markdown-render.js.map +1 -0
  151. package/dist/markdown-render.test.d.ts +2 -0
  152. package/dist/markdown-render.test.d.ts.map +1 -0
  153. package/dist/markdown-render.test.js +106 -0
  154. package/dist/markdown-render.test.js.map +1 -0
  155. package/dist/notification.d.ts +40 -31
  156. package/dist/notification.d.ts.map +1 -1
  157. package/dist/notification.js +86 -70
  158. package/dist/notification.js.map +1 -1
  159. package/dist/notification.test.js +62 -39
  160. package/dist/notification.test.js.map +1 -1
  161. package/dist/numeral.d.ts +32 -0
  162. package/dist/numeral.d.ts.map +1 -0
  163. package/dist/numeral.js +67 -0
  164. package/dist/numeral.js.map +1 -0
  165. package/dist/numeral.test.d.ts +2 -0
  166. package/dist/numeral.test.d.ts.map +1 -0
  167. package/dist/numeral.test.js +59 -0
  168. package/dist/numeral.test.js.map +1 -0
  169. package/dist/overflow-list.d.ts +9 -40
  170. package/dist/overflow-list.d.ts.map +1 -1
  171. package/dist/overflow-list.js +9 -70
  172. package/dist/overflow-list.js.map +1 -1
  173. package/dist/overflow-list.test.js +1 -122
  174. package/dist/overflow-list.test.js.map +1 -1
  175. package/dist/pagination.d.ts +17 -0
  176. package/dist/pagination.d.ts.map +1 -1
  177. package/dist/pagination.js +48 -0
  178. package/dist/pagination.js.map +1 -1
  179. package/dist/pagination.test.js +40 -1
  180. package/dist/pagination.test.js.map +1 -1
  181. package/dist/pincode.d.ts +79 -0
  182. package/dist/pincode.d.ts.map +1 -0
  183. package/dist/pincode.js +119 -0
  184. package/dist/pincode.js.map +1 -0
  185. package/dist/pincode.test.d.ts +2 -0
  186. package/dist/pincode.test.d.ts.map +1 -0
  187. package/dist/pincode.test.js +151 -0
  188. package/dist/pincode.test.js.map +1 -0
  189. package/dist/progress.d.ts +32 -30
  190. package/dist/progress.d.ts.map +1 -1
  191. package/dist/progress.js +257 -64
  192. package/dist/progress.js.map +1 -1
  193. package/dist/progress.test.js +50 -47
  194. package/dist/progress.test.js.map +1 -1
  195. package/dist/resizable.d.ts +200 -0
  196. package/dist/resizable.d.ts.map +1 -0
  197. package/dist/resizable.js +329 -0
  198. package/dist/resizable.js.map +1 -0
  199. package/dist/resizable.test.d.ts +2 -0
  200. package/dist/resizable.test.d.ts.map +1 -0
  201. package/dist/resizable.test.js +302 -0
  202. package/dist/resizable.test.js.map +1 -0
  203. package/dist/scroll-list.d.ts +69 -62
  204. package/dist/scroll-list.d.ts.map +1 -1
  205. package/dist/scroll-list.js +103 -144
  206. package/dist/scroll-list.js.map +1 -1
  207. package/dist/scroll-list.test.js +100 -110
  208. package/dist/scroll-list.test.js.map +1 -1
  209. package/dist/sidebar.d.ts +46 -0
  210. package/dist/sidebar.d.ts.map +1 -0
  211. package/dist/sidebar.js +65 -0
  212. package/dist/sidebar.js.map +1 -0
  213. package/dist/sidebar.test.d.ts +2 -0
  214. package/dist/sidebar.test.d.ts.map +1 -0
  215. package/dist/sidebar.test.js +88 -0
  216. package/dist/sidebar.test.js.map +1 -0
  217. package/dist/spin.d.ts +5 -5
  218. package/dist/spin.d.ts.map +1 -1
  219. package/dist/spin.js +13 -39
  220. package/dist/spin.js.map +1 -1
  221. package/dist/spin.test.js +2 -26
  222. package/dist/spin.test.js.map +1 -1
  223. package/dist/toast.d.ts +33 -30
  224. package/dist/toast.d.ts.map +1 -1
  225. package/dist/toast.js +77 -72
  226. package/dist/toast.js.map +1 -1
  227. package/dist/toast.test.js +63 -37
  228. package/dist/toast.test.js.map +1 -1
  229. package/dist/tree.d.ts +22 -5
  230. package/dist/tree.d.ts.map +1 -1
  231. package/dist/tree.js +61 -9
  232. package/dist/tree.js.map +1 -1
  233. package/dist/tree.test.js +72 -1
  234. package/dist/tree.test.js.map +1 -1
  235. package/dist/user-guide.d.ts +73 -0
  236. package/dist/user-guide.d.ts.map +1 -0
  237. package/dist/user-guide.js +95 -0
  238. package/dist/user-guide.js.map +1 -0
  239. package/dist/user-guide.test.d.ts +2 -0
  240. package/dist/user-guide.test.d.ts.map +1 -0
  241. package/dist/user-guide.test.js +109 -0
  242. package/dist/user-guide.test.js.map +1 -0
  243. package/dist/video-player.d.ts +196 -0
  244. package/dist/video-player.d.ts.map +1 -0
  245. package/dist/video-player.js +461 -0
  246. package/dist/video-player.js.map +1 -0
  247. package/dist/video-player.test.d.ts +2 -0
  248. package/dist/video-player.test.d.ts.map +1 -0
  249. package/dist/video-player.test.js +435 -0
  250. package/dist/video-player.test.js.map +1 -0
  251. package/package.json +17 -1
  252. package/dist/banner.d.ts +0 -19
  253. package/dist/banner.d.ts.map +0 -1
  254. package/dist/banner.js +0 -20
  255. package/dist/banner.js.map +0 -1
  256. package/dist/banner.test.d.ts +0 -2
  257. package/dist/banner.test.d.ts.map +0 -1
  258. package/dist/banner.test.js +0 -29
  259. package/dist/banner.test.js.map +0 -1
  260. package/dist/breakpoints.d.ts +0 -30
  261. package/dist/breakpoints.d.ts.map +0 -1
  262. package/dist/breakpoints.js +0 -45
  263. package/dist/breakpoints.js.map +0 -1
  264. package/dist/breakpoints.test.d.ts +0 -2
  265. package/dist/breakpoints.test.d.ts.map +0 -1
  266. package/dist/breakpoints.test.js +0 -46
  267. package/dist/breakpoints.test.js.map +0 -1
  268. package/dist/lottie-icon.d.ts +0 -88
  269. package/dist/lottie-icon.d.ts.map +0 -1
  270. package/dist/lottie-icon.js +0 -84
  271. package/dist/lottie-icon.js.map +0 -1
  272. package/dist/lottie-icon.test.d.ts +0 -2
  273. package/dist/lottie-icon.test.d.ts.map +0 -1
  274. package/dist/lottie-icon.test.js +0 -88
  275. package/dist/lottie-icon.test.js.map +0 -1
  276. package/dist/sider.d.ts +0 -26
  277. package/dist/sider.d.ts.map +0 -1
  278. package/dist/sider.js +0 -55
  279. package/dist/sider.js.map +0 -1
  280. package/dist/sider.test.d.ts +0 -2
  281. package/dist/sider.test.d.ts.map +0 -1
  282. package/dist/sider.test.js +0 -29
  283. package/dist/sider.test.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-player.js","sourceRoot":"","sources":["../src/video-player.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=video-player.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-player.test.d.ts","sourceRoot":"","sources":["../src/video-player.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,435 @@
1
+ // @vitest-environment jsdom
2
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
3
+ import { createVideoPlayerFoundation, DEFAULT_CONTROLS_LIST, DEFAULT_PLAYBACK_RATE_LIST, progressValueFromPointer, segmentValueWidth, buildMarkerSegments, formatTimeDisplay, } from './video-player.js';
4
+ const locale = {
5
+ loading: 'Loading',
6
+ stall: 'Stalled',
7
+ mirror: 'Mirrored',
8
+ cancelMirror: 'Mirror off',
9
+ rateChange: 'Rate: ${rate}',
10
+ qualityChange: 'Quality: ${quality}',
11
+ routeChange: 'Route: ${route}',
12
+ };
13
+ /** A fake <video> with just the surface the foundation touches. */
14
+ function makeVideo() {
15
+ const listeners = new Map();
16
+ return {
17
+ paused: true,
18
+ currentTime: 0,
19
+ duration: 100,
20
+ volume: 1,
21
+ playbackRate: 1,
22
+ buffered: {
23
+ length: 1,
24
+ end: () => 42,
25
+ },
26
+ play: vi.fn(function () {
27
+ this.paused = false;
28
+ return Promise.resolve();
29
+ }),
30
+ pause: vi.fn(function () {
31
+ this.paused = true;
32
+ }),
33
+ requestPictureInPicture: vi.fn(() => Promise.resolve({})),
34
+ addEventListener: (t, cb) => {
35
+ listeners.set(t, [...(listeners.get(t) ?? []), cb]);
36
+ },
37
+ removeEventListener: (t, cb) => {
38
+ listeners.set(t, (listeners.get(t) ?? []).filter((l) => l !== cb));
39
+ },
40
+ _emit: (t) => (listeners.get(t) ?? []).forEach((l) => l(new Event(t))),
41
+ };
42
+ }
43
+ function setup(overrides) {
44
+ const video = makeVideo();
45
+ const wrapper = document.createElement('div');
46
+ document.body.appendChild(wrapper);
47
+ const state = {
48
+ isPlaying: false,
49
+ muted: false,
50
+ volume: 100,
51
+ currentTime: 0,
52
+ isMirror: false,
53
+ ...overrides?.state,
54
+ };
55
+ const props = {
56
+ volume: 100,
57
+ muted: false,
58
+ seekTime: 10,
59
+ controlsList: DEFAULT_CONTROLS_LIST,
60
+ ...overrides?.props,
61
+ };
62
+ const calls = {};
63
+ const rec = (name) => (...args) => {
64
+ (calls[name] ??= []).push(args);
65
+ };
66
+ const adapter = {
67
+ getVideo: () => video,
68
+ getVideoWrapper: () => wrapper,
69
+ notifyPlay: rec('notifyPlay'),
70
+ notifyPause: rec('notifyPause'),
71
+ notifyQualityChange: rec('notifyQualityChange'),
72
+ notifyRateChange: rec('notifyRateChange'),
73
+ notifyRouteChange: rec('notifyRouteChange'),
74
+ notifyVolumeChange: rec('notifyVolumeChange'),
75
+ setBufferedValue: (v) => {
76
+ rec('setBufferedValue')(v);
77
+ },
78
+ setCurrentTime: (v) => {
79
+ state.currentTime = v;
80
+ rec('setCurrentTime')(v);
81
+ },
82
+ setIsError: rec('setIsError'),
83
+ setIsMirror: (v) => {
84
+ state.isMirror = v;
85
+ rec('setIsMirror')(v);
86
+ },
87
+ setIsPlaying: (v) => {
88
+ state.isPlaying = v;
89
+ rec('setIsPlaying')(v);
90
+ },
91
+ setMuted: (v) => {
92
+ state.muted = v;
93
+ rec('setMuted')(v);
94
+ },
95
+ setNotificationContent: rec('setNotificationContent'),
96
+ setPlaybackRate: rec('setPlaybackRate'),
97
+ setQuality: rec('setQuality'),
98
+ setRoute: rec('setRoute'),
99
+ setShowControls: rec('setShowControls'),
100
+ setShowNotification: rec('setShowNotification'),
101
+ setTotalTime: rec('setTotalTime'),
102
+ setVolume: (v) => {
103
+ state.volume = v;
104
+ rec('setVolume')(v);
105
+ },
106
+ };
107
+ const f = createVideoPlayerFoundation({
108
+ adapter,
109
+ getState: () => state,
110
+ getProps: () => props,
111
+ });
112
+ return { f, adapter, video, wrapper, state, calls };
113
+ }
114
+ describe('createVideoPlayerFoundation — play/pause', () => {
115
+ it('handlePlayOrPause plays when paused', () => {
116
+ const { f, video } = setup();
117
+ video.paused = true;
118
+ f.handlePlayOrPause();
119
+ expect(video.play).toHaveBeenCalled();
120
+ });
121
+ it('handlePlayOrPause pauses when playing', () => {
122
+ const { f, video } = setup();
123
+ video.paused = false;
124
+ f.handlePlayOrPause();
125
+ expect(video.pause).toHaveBeenCalled();
126
+ });
127
+ it('handleVideoPlay sets isPlaying + notifies', () => {
128
+ const { f, calls } = setup();
129
+ f.handleVideoPlay();
130
+ expect(calls.setIsPlaying).toEqual([[true]]);
131
+ expect(calls.notifyPlay).toHaveLength(1);
132
+ });
133
+ it('handleVideoPause sets isPlaying false + notifies', () => {
134
+ const { f, calls } = setup();
135
+ f.handleVideoPause();
136
+ expect(calls.setIsPlaying).toEqual([[false]]);
137
+ expect(calls.notifyPause).toHaveLength(1);
138
+ });
139
+ it('handleEnded stops + reveals controls', () => {
140
+ const { f, calls } = setup();
141
+ f.handleEnded();
142
+ expect(calls.setIsPlaying).toEqual([[false]]);
143
+ expect(calls.setShowControls).toEqual([[true]]);
144
+ });
145
+ });
146
+ describe('time change (NaN clamp)', () => {
147
+ it('sets currentTime for a valid value', () => {
148
+ const { f, video, calls } = setup();
149
+ f.handleTimeChange(30);
150
+ expect(video.currentTime).toBe(30);
151
+ expect(calls.setCurrentTime).toEqual([[30]]);
152
+ });
153
+ it('ignores NaN', () => {
154
+ const { f, video, calls } = setup();
155
+ video.currentTime = 5;
156
+ f.handleTimeChange(Number.NaN);
157
+ expect(video.currentTime).toBe(5);
158
+ expect(calls.setCurrentTime).toBeUndefined();
159
+ });
160
+ it('handleTimeUpdate mirrors video.currentTime', () => {
161
+ const { f, video, calls } = setup();
162
+ video.currentTime = 12.5;
163
+ f.handleTimeUpdate();
164
+ expect(calls.setCurrentTime).toEqual([[12.5]]);
165
+ });
166
+ it('handleDurationChange mirrors video.duration', () => {
167
+ const { f, video, calls } = setup();
168
+ video.duration = 250;
169
+ f.handleDurationChange();
170
+ expect(calls.setTotalTime).toEqual([[250]]);
171
+ });
172
+ });
173
+ describe('volume change (0–100 clamp + mute derivation)', () => {
174
+ it('floors and clamps negatives to 0 → muted', () => {
175
+ const { f, video, calls } = setup();
176
+ f.handleVolumeChange(-20);
177
+ expect(video.volume).toBe(0);
178
+ expect(calls.setVolume).toEqual([[0]]);
179
+ expect(calls.setMuted).toEqual([[true]]);
180
+ });
181
+ it('floors fractional volume, unmutes above 0', () => {
182
+ const { f, video, calls } = setup();
183
+ f.handleVolumeChange(55.9);
184
+ expect(calls.setVolume).toEqual([[55]]);
185
+ expect(video.volume).toBeCloseTo(0.55);
186
+ expect(calls.setMuted).toEqual([[false]]);
187
+ });
188
+ it('does NOT fire notifyVolumeChange (faithful to Semi)', () => {
189
+ const { f, calls } = setup();
190
+ f.handleVolumeChange(50);
191
+ expect(calls.notifyVolumeChange).toBeUndefined();
192
+ });
193
+ it('handleVolumeSilent mutes when unmuted', () => {
194
+ const { f, video, calls } = setup({ state: { muted: false, volume: 80 } });
195
+ f.handleVolumeSilent();
196
+ expect(video.volume).toBe(0);
197
+ expect(calls.setMuted).toEqual([[true]]);
198
+ });
199
+ it('handleVolumeSilent restores volume when muted', () => {
200
+ const { f, video, calls } = setup({ state: { muted: true, volume: 80 } });
201
+ f.handleVolumeSilent();
202
+ expect(video.volume).toBeCloseTo(0.8);
203
+ expect(calls.setVolume).toEqual([[80]]);
204
+ expect(calls.setMuted).toEqual([[false]]);
205
+ });
206
+ });
207
+ describe('rate / quality / route', () => {
208
+ it('handleRateChange sets rate + notifies + notifies label', () => {
209
+ const { f, video, calls } = setup();
210
+ f.handleRateChange({ label: '1.5x', value: 1.5 }, locale);
211
+ expect(video.playbackRate).toBe(1.5);
212
+ expect(calls.setPlaybackRate).toEqual([[1.5]]);
213
+ expect(calls.notifyRateChange).toEqual([[1.5]]);
214
+ expect(calls.setNotificationContent).toEqual([['Rate: 1.5x']]);
215
+ });
216
+ it('handleQualityChange sets quality + notifies + interpolates label', () => {
217
+ const { f, calls } = setup();
218
+ f.handleQualityChange({ label: '1080p', value: '1080p' }, locale);
219
+ expect(calls.setQuality).toEqual([['1080p']]);
220
+ expect(calls.notifyQualityChange).toEqual([['1080p']]);
221
+ expect(calls.setNotificationContent).toEqual([['Quality: 1080p']]);
222
+ });
223
+ it('handleRouteChange sets route + notifies + interpolates label', () => {
224
+ const { f, calls } = setup();
225
+ f.handleRouteChange({ label: 'Line 2', value: 'l2' }, locale);
226
+ expect(calls.setRoute).toEqual([['l2']]);
227
+ expect(calls.notifyRouteChange).toEqual([['l2']]);
228
+ expect(calls.setNotificationContent).toEqual([['Route: Line 2']]);
229
+ });
230
+ });
231
+ describe('mirror', () => {
232
+ it('toggles on with mirror notification', () => {
233
+ const { f, calls } = setup({ state: { isMirror: false } });
234
+ f.handleMirror(locale);
235
+ expect(calls.setIsMirror).toEqual([[true]]);
236
+ expect(calls.setNotificationContent).toEqual([['Mirrored']]);
237
+ });
238
+ it('toggles off with cancel notification', () => {
239
+ const { f, calls } = setup({ state: { isMirror: true } });
240
+ f.handleMirror(locale);
241
+ expect(calls.setIsMirror).toEqual([[false]]);
242
+ expect(calls.setNotificationContent).toEqual([['Mirror off']]);
243
+ });
244
+ });
245
+ describe('buffering notifications', () => {
246
+ it('handleWaiting shows loading', () => {
247
+ const { f, calls } = setup();
248
+ f.handleWaiting(locale);
249
+ expect(calls.setNotificationContent).toEqual([['Loading']]);
250
+ expect(calls.setShowNotification).toEqual([[true]]);
251
+ });
252
+ it('handleStalled shows stall', () => {
253
+ const { f, calls } = setup();
254
+ f.handleStalled(locale);
255
+ expect(calls.setNotificationContent).toEqual([['Stalled']]);
256
+ });
257
+ it('handleCanPlay hides notification', () => {
258
+ const { f, calls } = setup();
259
+ f.handleCanPlay();
260
+ expect(calls.setShowNotification).toEqual([[false]]);
261
+ });
262
+ it('handleProgress reports buffered end', () => {
263
+ const { f, calls } = setup();
264
+ f.handleProgress();
265
+ expect(calls.setBufferedValue).toEqual([[42]]);
266
+ });
267
+ it('handleError flags error', () => {
268
+ const { f, calls } = setup();
269
+ f.handleError();
270
+ expect(calls.setIsError).toEqual([[true]]);
271
+ });
272
+ });
273
+ describe('picture-in-picture', () => {
274
+ it('handlePictureInPicture requests PiP', () => {
275
+ const { f, video } = setup();
276
+ f.handlePictureInPicture();
277
+ expect(video.requestPictureInPicture).toHaveBeenCalled();
278
+ });
279
+ it('handleLeavePictureInPicture syncs isPlaying to !paused', () => {
280
+ const { f, video, calls } = setup();
281
+ video.paused = false;
282
+ f.handleLeavePictureInPicture();
283
+ expect(calls.setIsPlaying).toEqual([[true]]);
284
+ });
285
+ });
286
+ describe('keyboard map', () => {
287
+ it('Space toggles play/pause when focus is inside wrapper', () => {
288
+ const { f, video, wrapper } = setup();
289
+ const btn = document.createElement('button');
290
+ wrapper.appendChild(btn);
291
+ btn.focus();
292
+ video.paused = true;
293
+ f.handleBodyKeyDown(new KeyboardEvent('keydown', { key: ' ' }));
294
+ expect(video.play).toHaveBeenCalled();
295
+ });
296
+ it('ArrowLeft seeks back by seekTime', () => {
297
+ const { f, video, wrapper } = setup({ props: { seekTime: 10 }, state: { currentTime: 30 } });
298
+ wrapper.focus();
299
+ // jsdom: activeElement must be inside wrapper — put a focusable child
300
+ const btn = document.createElement('button');
301
+ wrapper.appendChild(btn);
302
+ btn.focus();
303
+ f.handleBodyKeyDown(new KeyboardEvent('keydown', { key: 'ArrowLeft' }));
304
+ expect(video.currentTime).toBe(20);
305
+ });
306
+ it('ArrowRight seeks forward by seekTime', () => {
307
+ const { f, video, wrapper } = setup({ props: { seekTime: 5 }, state: { currentTime: 30 } });
308
+ const btn = document.createElement('button');
309
+ wrapper.appendChild(btn);
310
+ btn.focus();
311
+ f.handleBodyKeyDown(new KeyboardEvent('keydown', { key: 'ArrowRight' }));
312
+ expect(video.currentTime).toBe(35);
313
+ });
314
+ it('ignores keys when focus is outside the wrapper', () => {
315
+ const { f, video } = setup();
316
+ const outside = document.createElement('button');
317
+ document.body.appendChild(outside);
318
+ outside.focus();
319
+ video.paused = true;
320
+ f.handleBodyKeyDown(new KeyboardEvent('keydown', { key: ' ' }));
321
+ expect(video.play).not.toHaveBeenCalled();
322
+ });
323
+ });
324
+ describe('controlsList gating', () => {
325
+ it('shouldShowControlItem reflects the list', () => {
326
+ const { f } = setup({ props: { controlsList: ['play', 'time'] } });
327
+ expect(f.shouldShowControlItem('play')).toBe(true);
328
+ expect(f.shouldShowControlItem('mirror')).toBe(false);
329
+ });
330
+ });
331
+ describe('init / destroy', () => {
332
+ it('init sets total time + applies initial volume', () => {
333
+ const { f, video, calls } = setup({ props: { volume: 60, muted: false } });
334
+ video.duration = 88;
335
+ f.init();
336
+ expect(calls.setTotalTime).toEqual([[88]]);
337
+ expect(calls.setVolume).toEqual([[60]]);
338
+ });
339
+ it('init with muted applies volume 0', () => {
340
+ const { f, calls } = setup({ props: { volume: 60, muted: true } });
341
+ f.init();
342
+ expect(calls.setVolume).toEqual([[0]]);
343
+ expect(calls.setMuted).toEqual([[true]]);
344
+ });
345
+ it('destroy clears the auto-hide timer without throwing', () => {
346
+ const { f } = setup();
347
+ f.handleMouseMove();
348
+ expect(() => f.destroy()).not.toThrow();
349
+ });
350
+ });
351
+ describe('controls auto-hide', () => {
352
+ beforeEach(() => vi.useFakeTimers());
353
+ it('shows controls immediately then hides after the delay', () => {
354
+ const { f, calls } = setup();
355
+ f.handleMouseMove();
356
+ expect(calls.setShowControls).toEqual([[true]]);
357
+ vi.advanceTimersByTime(3000);
358
+ expect(calls.setShowControls).toEqual([[true], [false]]);
359
+ vi.useRealTimers();
360
+ });
361
+ it('handleMouseLeaveWrapper hides only while playing', () => {
362
+ vi.useRealTimers();
363
+ const playing = setup({ state: { isPlaying: true } });
364
+ playing.f.handleMouseLeaveWrapper();
365
+ expect(playing.calls.setShowControls).toEqual([[false]]);
366
+ const paused = setup({ state: { isPlaying: false } });
367
+ paused.f.handleMouseLeaveWrapper();
368
+ expect(paused.calls.setShowControls).toBeUndefined();
369
+ });
370
+ });
371
+ describe('progress geometry helpers', () => {
372
+ it('progressValueFromPointer clamps to [0,1] * max', () => {
373
+ const rect = { left: 100, width: 200 };
374
+ expect(progressValueFromPointer(200, rect, 60).value).toBeCloseTo(30);
375
+ expect(progressValueFromPointer(50, rect, 60).value).toBe(0); // before start
376
+ expect(progressValueFromPointer(400, rect, 60).value).toBe(60); // past end
377
+ });
378
+ it('progressValueFromPointer guards width 0', () => {
379
+ expect(progressValueFromPointer(10, { left: 0, width: 0 }, 60)).toEqual({
380
+ percentage: 0,
381
+ value: 0,
382
+ offset: 10,
383
+ });
384
+ });
385
+ it('segmentValueWidth: before / inside / after a segment', () => {
386
+ const seg = { start: 10, end: 20 };
387
+ expect(segmentValueWidth(seg, 5)).toBe('0%');
388
+ expect(segmentValueWidth(seg, 15)).toBe('50%');
389
+ expect(segmentValueWidth(seg, 25)).toBe('calc(100% - 2px)');
390
+ });
391
+ it('buildMarkerSegments with no markers → single full-width segment', () => {
392
+ expect(buildMarkerSegments([], 100)).toEqual([{ start: 0, end: 100 }]);
393
+ });
394
+ it('buildMarkerSegments sorts + chains to totalTime', () => {
395
+ const segs = buildMarkerSegments([
396
+ { start: 30, title: 'c' },
397
+ { start: 0, title: 'a' },
398
+ { start: 10, title: 'b' },
399
+ ], 50);
400
+ expect(segs).toEqual([
401
+ { start: 0, end: 10, title: 'a' },
402
+ { start: 10, end: 30, title: 'b' },
403
+ { start: 30, end: 50, title: 'c' },
404
+ ]);
405
+ });
406
+ });
407
+ describe('formatTimeDisplay', () => {
408
+ it('formats MM:SS and H:MM:SS(严格对齐 Semi formatTime:分钟补零、NaN→00:00)', () => {
409
+ expect(formatTimeDisplay(0)).toBe('00:00');
410
+ expect(formatTimeDisplay(65)).toBe('01:05');
411
+ expect(formatTimeDisplay(3661)).toBe('1:01:01');
412
+ expect(formatTimeDisplay(Number.NaN)).toBe('00:00');
413
+ expect(formatTimeDisplay(-5)).toBe('00:00');
414
+ });
415
+ });
416
+ describe('exported defaults', () => {
417
+ it('DEFAULT_CONTROLS_LIST matches Semi order', () => {
418
+ expect(DEFAULT_CONTROLS_LIST).toEqual([
419
+ 'play',
420
+ 'next',
421
+ 'time',
422
+ 'volume',
423
+ 'playbackRate',
424
+ 'quality',
425
+ 'route',
426
+ 'mirror',
427
+ 'fullscreen',
428
+ 'pictureInPicture',
429
+ ]);
430
+ });
431
+ it('DEFAULT_PLAYBACK_RATE_LIST has 5 tiers 2.0→0.75', () => {
432
+ expect(DEFAULT_PLAYBACK_RATE_LIST.map((r) => r.value)).toEqual([2, 1.5, 1.25, 1, 0.75]);
433
+ });
434
+ });
435
+ //# sourceMappingURL=video-player.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-player.test.js","sourceRoot":"","sources":["../src/video-player.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,12 @@
1
1
  {
2
2
  "name": "@chenzy-design/core",
3
- "version": "0.3.1",
3
+ "version": "0.4.1",
4
4
  "license": "MIT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/chenzylab/chenzy-design.git",
8
+ "directory": "packages/core"
9
+ },
5
10
  "type": "module",
6
11
  "sideEffects": false,
7
12
  "exports": {
@@ -13,7 +18,18 @@
13
18
  "files": [
14
19
  "dist"
15
20
  ],
21
+ "dependencies": {
22
+ "async-validator": "^4.2.5",
23
+ "lodash-es": "^4.17.21",
24
+ "remark-gfm": "^4.0.1",
25
+ "remark-parse": "^11.0.0",
26
+ "remark-rehype": "^11.1.2",
27
+ "unified": "^11.0.5"
28
+ },
16
29
  "devDependencies": {
30
+ "@types/hast": "^3.0.4",
31
+ "@types/lodash-es": "^4.17.12",
32
+ "@types/mdast": "^4.0.4",
17
33
  "jsdom": "^27.4.0"
18
34
  },
19
35
  "scripts": {
package/dist/banner.d.ts DELETED
@@ -1,19 +0,0 @@
1
- /**
2
- * createBanner helpers — framework-agnostic role/aria-live resolution for Banner.
3
- * Pure functions only; the render layer (svelte runes) owns the open state.
4
- * See specs/components/feedback/Banner.spec.md §3.
5
- */
6
- export type BannerType = 'info' | 'success' | 'warning' | 'danger';
7
- export interface BannerRoleProps {
8
- /** alert for urgent (danger/warning), status for info/success, region for static */
9
- role: 'alert' | 'status' | 'region';
10
- 'aria-live'?: 'assertive' | 'polite';
11
- }
12
- /**
13
- * Resolve the root role + aria-live for a banner.
14
- * - Static (non-dynamically-inserted) banners use role=region to avoid noisy
15
- * announcements on first paint.
16
- * - Dynamic danger/warning announce assertively; info/success politely.
17
- */
18
- export declare function resolveBannerRole(type: BannerType, dynamic?: boolean): BannerRoleProps;
19
- //# sourceMappingURL=banner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,WAAW,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,UAAQ,GAAG,eAAe,CAMpF"}
package/dist/banner.js DELETED
@@ -1,20 +0,0 @@
1
- /**
2
- * createBanner helpers — framework-agnostic role/aria-live resolution for Banner.
3
- * Pure functions only; the render layer (svelte runes) owns the open state.
4
- * See specs/components/feedback/Banner.spec.md §3.
5
- */
6
- /**
7
- * Resolve the root role + aria-live for a banner.
8
- * - Static (non-dynamically-inserted) banners use role=region to avoid noisy
9
- * announcements on first paint.
10
- * - Dynamic danger/warning announce assertively; info/success politely.
11
- */
12
- export function resolveBannerRole(type, dynamic = false) {
13
- if (!dynamic)
14
- return { role: 'region' };
15
- if (type === 'danger' || type === 'warning') {
16
- return { role: 'alert', 'aria-live': 'assertive' };
17
- }
18
- return { role: 'status', 'aria-live': 'polite' };
19
- }
20
- //# sourceMappingURL=banner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../src/banner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAgB,EAAE,OAAO,GAAG,KAAK;IACjE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACxC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACnD,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=banner.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.test.d.ts","sourceRoot":"","sources":["../src/banner.test.ts"],"names":[],"mappings":""}
@@ -1,29 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { resolveBannerRole } from './banner.js';
3
- describe('resolveBannerRole', () => {
4
- it('static banners use region (no live noise)', () => {
5
- expect(resolveBannerRole('info')).toEqual({ role: 'region' });
6
- expect(resolveBannerRole('danger')).toEqual({ role: 'region' });
7
- });
8
- it('dynamic danger/warning announce assertively', () => {
9
- expect(resolveBannerRole('danger', true)).toEqual({
10
- role: 'alert',
11
- 'aria-live': 'assertive',
12
- });
13
- expect(resolveBannerRole('warning', true)).toEqual({
14
- role: 'alert',
15
- 'aria-live': 'assertive',
16
- });
17
- });
18
- it('dynamic info/success announce politely', () => {
19
- expect(resolveBannerRole('info', true)).toEqual({
20
- role: 'status',
21
- 'aria-live': 'polite',
22
- });
23
- expect(resolveBannerRole('success', true)).toEqual({
24
- role: 'status',
25
- 'aria-live': 'polite',
26
- });
27
- });
28
- });
29
- //# sourceMappingURL=banner.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.test.js","sourceRoot":"","sources":["../src/banner.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACjD,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9C,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACjD,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}