@design-edito/tools 0.5.34 → 0.5.36
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.
- package/agnostic/colors/index.d.ts +1 -1
- package/agnostic/colors/index.js +1 -1
- package/agnostic/css/index.d.ts +2 -2
- package/agnostic/css/index.js +2 -2
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +13 -13
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +13 -13
- package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/index.js +1 -1
- package/agnostic/html/index.d.ts +2 -2
- package/agnostic/html/index.js +2 -2
- package/agnostic/index.d.ts +1 -1
- package/agnostic/index.js +1 -1
- package/agnostic/misc/index.d.ts +2 -2
- package/agnostic/misc/index.js +2 -2
- package/agnostic/numbers/index.d.ts +1 -1
- package/agnostic/numbers/index.js +1 -1
- package/agnostic/strings/index.d.ts +3 -3
- package/agnostic/strings/index.js +3 -3
- package/agnostic/subtitles/index.d.ts +1 -1
- package/agnostic/subtitles/index.js +1 -1
- package/agnostic/time/index.d.ts +1 -1
- package/agnostic/time/index.js +1 -1
- package/components/BeforeAfter/index.controlled.d.ts +10 -4
- package/components/BeforeAfter/index.controlled.js +2 -2
- package/components/BeforeAfter/index.js +4 -4
- package/components/Clippable/index.d.ts +5 -2
- package/components/Clippable/index.js +1 -1
- package/components/Gallery/index.d.ts +6 -3
- package/components/Gallery/index.js +1 -1
- package/components/ListLoader/index.d.ts +13 -6
- package/components/ListLoader/index.js +2 -2
- package/components/Scrllgngn/index.d.ts +6 -3
- package/components/Scrllgngn/index.js +4 -1
- package/components/Sequencer/index.d.ts +6 -3
- package/components/Sequencer/index.js +1 -1
- package/components/Video/index.controlled.d.ts +45 -10
- package/components/Video/index.controlled.js +15 -10
- package/components/Video/index.js +23 -23
- package/components/index.d.ts +1 -1
- package/components/index.js +1 -1
- package/node/@aws-s3/storage/directory/index.d.ts +1 -1
- package/node/@aws-s3/storage/directory/index.js +1 -1
- package/node/@google-cloud/storage/file/index.d.ts +1 -1
- package/node/@google-cloud/storage/file/index.js +1 -1
- package/node/files/index.d.ts +1 -1
- package/node/files/index.js +1 -1
- package/node/images/index.d.ts +1 -1
- package/node/images/index.js +1 -1
- package/node/images/transform/operations/index.d.ts +2 -2
- package/node/images/transform/operations/index.js +2 -2
- package/node/index.d.ts +1 -1
- package/node/index.js +1 -1
- package/package.json +1 -1
|
@@ -4,9 +4,9 @@ export * as convert from './convert/index.js'
|
|
|
4
4
|
export * as distance from './distance/index.js'
|
|
5
5
|
export * as grayscale from './grayscale/index.js'
|
|
6
6
|
export * as invert from './invert/index.js'
|
|
7
|
+
export * as lerp from './lerp/index.js'
|
|
7
8
|
export * as luminance from './luminance/index.js'
|
|
8
9
|
export * as palette from './palette/index.js'
|
|
9
10
|
export * as rotate from './rotate/index.js'
|
|
10
11
|
export * as tidy from './tidy/index.js'
|
|
11
12
|
export * as typechecks from './typechecks/index.js'
|
|
12
|
-
export * as lerp from './lerp/index.js'
|
package/agnostic/colors/index.js
CHANGED
|
@@ -4,9 +4,9 @@ export * as convert from './convert/index.js'
|
|
|
4
4
|
export * as distance from './distance/index.js'
|
|
5
5
|
export * as grayscale from './grayscale/index.js'
|
|
6
6
|
export * as invert from './invert/index.js'
|
|
7
|
+
export * as lerp from './lerp/index.js'
|
|
7
8
|
export * as luminance from './luminance/index.js'
|
|
8
9
|
export * as palette from './palette/index.js'
|
|
9
10
|
export * as rotate from './rotate/index.js'
|
|
10
11
|
export * as tidy from './tidy/index.js'
|
|
11
12
|
export * as typechecks from './typechecks/index.js'
|
|
12
|
-
export * as lerp from './lerp/index.js'
|
package/agnostic/css/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * as
|
|
1
|
+
export * as clss from './clss/index.js'
|
|
2
2
|
export * as generateNiceColor from './generate-nice-color/index.js'
|
|
3
3
|
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
4
4
|
export * as scale from './scale/index.js'
|
|
5
5
|
export * as stylesSet from './styles-set/index.js'
|
|
6
|
-
export * as
|
|
6
|
+
export * as bem from './bem/index.js'
|
package/agnostic/css/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * as
|
|
1
|
+
export * as clss from './clss/index.js'
|
|
2
2
|
export * as generateNiceColor from './generate-nice-color/index.js'
|
|
3
3
|
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
4
4
|
export * as scale from './scale/index.js'
|
|
5
5
|
export * as stylesSet from './styles-set/index.js'
|
|
6
|
-
export * as
|
|
6
|
+
export * as bem from './bem/index.js'
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
export * as addclass from './addclass/index.js'
|
|
2
|
-
export * as and from './and/index.js'
|
|
3
1
|
export * as add from './add/index.js'
|
|
2
|
+
export * as addclass from './addclass/index.js'
|
|
4
3
|
export * as append from './append/index.js'
|
|
5
4
|
export * as at from './at/index.js'
|
|
6
5
|
export * as call from './call/index.js'
|
|
6
|
+
export * as and from './and/index.js'
|
|
7
7
|
export * as clone from './clone/index.js'
|
|
8
|
-
export * as deleteproperties from './deleteproperties/index.js'
|
|
9
|
-
export * as getattribute from './getattribute/index.js'
|
|
10
8
|
export * as equals from './equals/index.js'
|
|
9
|
+
export * as deleteproperties from './deleteproperties/index.js'
|
|
11
10
|
export * as getproperties from './getproperties/index.js'
|
|
11
|
+
export * as getattribute from './getattribute/index.js'
|
|
12
12
|
export * as getproperty from './getproperty/index.js'
|
|
13
|
+
export * as if from './if/index.js'
|
|
13
14
|
export * as hjparse from './hjparse/index.js'
|
|
14
15
|
export * as hjstringify from './hjstringify/index.js'
|
|
15
|
-
export * as if from './if/index.js'
|
|
16
16
|
export * as initialize from './initialize/index.js'
|
|
17
|
+
export * as join from './join/index.js'
|
|
17
18
|
export * as length from './length/index.js'
|
|
18
19
|
export * as map from './map/index.js'
|
|
19
|
-
export * as join from './join/index.js'
|
|
20
20
|
export * as negate from './negate/index.js'
|
|
21
21
|
export * as notrailing from './notrailing/index.js'
|
|
22
|
-
export * as or from './or/index.js'
|
|
23
22
|
export * as pickrandom from './pickrandom/index.js'
|
|
24
23
|
export * as populate from './populate/index.js'
|
|
25
24
|
export * as print from './print/index.js'
|
|
26
25
|
export * as push from './push/index.js'
|
|
27
|
-
export * as pusheach from './pusheach/index.js'
|
|
28
26
|
export * as recordtoarray from './recordtoarray/index.js'
|
|
27
|
+
export * as pusheach from './pusheach/index.js'
|
|
28
|
+
export * as or from './or/index.js'
|
|
29
29
|
export * as removeattribute from './removeattribute/index.js'
|
|
30
|
-
export * as removeclass from './removeclass/index.js'
|
|
31
30
|
export * as renameproperty from './renameproperty/index.js'
|
|
32
|
-
export * as
|
|
31
|
+
export * as removeclass from './removeclass/index.js'
|
|
33
32
|
export * as replace from './replace/index.js'
|
|
33
|
+
export * as select from './select/index.js'
|
|
34
34
|
export * as set from './set/index.js'
|
|
35
35
|
export * as setattribute from './setattribute/index.js'
|
|
36
36
|
export * as setproperty from './setproperty/index.js'
|
|
37
37
|
export * as sorton from './sorton/index.js'
|
|
38
|
-
export * as split from './split/index.js'
|
|
39
38
|
export * as spread from './spread/index.js'
|
|
40
39
|
export * as toarray from './toarray/index.js'
|
|
41
|
-
export * as toggleclass from './toggleclass/index.js'
|
|
42
40
|
export * as toboolean from './toboolean/index.js'
|
|
41
|
+
export * as split from './split/index.js'
|
|
43
42
|
export * as toelement from './toelement/index.js'
|
|
43
|
+
export * as toggleclass from './toggleclass/index.js'
|
|
44
44
|
export * as tonodelist from './tonodelist/index.js'
|
|
45
45
|
export * as tonumber from './tonumber/index.js'
|
|
46
46
|
export * as torecord from './torecord/index.js'
|
|
47
47
|
export * as tonull from './tonull/index.js'
|
|
48
|
-
export * as toref from './toref/index.js'
|
|
49
48
|
export * as tostring from './tostring/index.js'
|
|
49
|
+
export * as toref from './toref/index.js'
|
|
50
50
|
export * as transformselected from './transformselected/index.js'
|
|
51
51
|
export * as totext from './totext/index.js'
|
|
52
52
|
export * as trim from './trim/index.js'
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
export * as addclass from './addclass/index.js'
|
|
2
|
-
export * as and from './and/index.js'
|
|
3
1
|
export * as add from './add/index.js'
|
|
2
|
+
export * as addclass from './addclass/index.js'
|
|
4
3
|
export * as append from './append/index.js'
|
|
5
4
|
export * as at from './at/index.js'
|
|
6
5
|
export * as call from './call/index.js'
|
|
6
|
+
export * as and from './and/index.js'
|
|
7
7
|
export * as clone from './clone/index.js'
|
|
8
|
-
export * as deleteproperties from './deleteproperties/index.js'
|
|
9
|
-
export * as getattribute from './getattribute/index.js'
|
|
10
8
|
export * as equals from './equals/index.js'
|
|
9
|
+
export * as deleteproperties from './deleteproperties/index.js'
|
|
11
10
|
export * as getproperties from './getproperties/index.js'
|
|
11
|
+
export * as getattribute from './getattribute/index.js'
|
|
12
12
|
export * as getproperty from './getproperty/index.js'
|
|
13
|
+
export * as if from './if/index.js'
|
|
13
14
|
export * as hjparse from './hjparse/index.js'
|
|
14
15
|
export * as hjstringify from './hjstringify/index.js'
|
|
15
|
-
export * as if from './if/index.js'
|
|
16
16
|
export * as initialize from './initialize/index.js'
|
|
17
|
+
export * as join from './join/index.js'
|
|
17
18
|
export * as length from './length/index.js'
|
|
18
19
|
export * as map from './map/index.js'
|
|
19
|
-
export * as join from './join/index.js'
|
|
20
20
|
export * as negate from './negate/index.js'
|
|
21
21
|
export * as notrailing from './notrailing/index.js'
|
|
22
|
-
export * as or from './or/index.js'
|
|
23
22
|
export * as pickrandom from './pickrandom/index.js'
|
|
24
23
|
export * as populate from './populate/index.js'
|
|
25
24
|
export * as print from './print/index.js'
|
|
26
25
|
export * as push from './push/index.js'
|
|
27
|
-
export * as pusheach from './pusheach/index.js'
|
|
28
26
|
export * as recordtoarray from './recordtoarray/index.js'
|
|
27
|
+
export * as pusheach from './pusheach/index.js'
|
|
28
|
+
export * as or from './or/index.js'
|
|
29
29
|
export * as removeattribute from './removeattribute/index.js'
|
|
30
|
-
export * as removeclass from './removeclass/index.js'
|
|
31
30
|
export * as renameproperty from './renameproperty/index.js'
|
|
32
|
-
export * as
|
|
31
|
+
export * as removeclass from './removeclass/index.js'
|
|
33
32
|
export * as replace from './replace/index.js'
|
|
33
|
+
export * as select from './select/index.js'
|
|
34
34
|
export * as set from './set/index.js'
|
|
35
35
|
export * as setattribute from './setattribute/index.js'
|
|
36
36
|
export * as setproperty from './setproperty/index.js'
|
|
37
37
|
export * as sorton from './sorton/index.js'
|
|
38
|
-
export * as split from './split/index.js'
|
|
39
38
|
export * as spread from './spread/index.js'
|
|
40
39
|
export * as toarray from './toarray/index.js'
|
|
41
|
-
export * as toggleclass from './toggleclass/index.js'
|
|
42
40
|
export * as toboolean from './toboolean/index.js'
|
|
41
|
+
export * as split from './split/index.js'
|
|
43
42
|
export * as toelement from './toelement/index.js'
|
|
43
|
+
export * as toggleclass from './toggleclass/index.js'
|
|
44
44
|
export * as tonodelist from './tonodelist/index.js'
|
|
45
45
|
export * as tonumber from './tonumber/index.js'
|
|
46
46
|
export * as torecord from './torecord/index.js'
|
|
47
47
|
export * as tonull from './tonull/index.js'
|
|
48
|
-
export * as toref from './toref/index.js'
|
|
49
48
|
export * as tostring from './tostring/index.js'
|
|
49
|
+
export * as toref from './toref/index.js'
|
|
50
50
|
export * as transformselected from './transformselected/index.js'
|
|
51
51
|
export * as totext from './totext/index.js'
|
|
52
52
|
export * as trim from './trim/index.js'
|
|
@@ -7,7 +7,7 @@ export * as guess from './guess/index.js'
|
|
|
7
7
|
export * as nodelist from './nodelist/index.js'
|
|
8
8
|
export * as null from './null/index.js'
|
|
9
9
|
export * as number from './number/index.js'
|
|
10
|
-
export * as record from './record/index.js'
|
|
11
10
|
export * as ref from './ref/index.js'
|
|
11
|
+
export * as record from './record/index.js'
|
|
12
12
|
export * as string from './string/index.js'
|
|
13
13
|
export * as text from './text/index.js'
|
|
@@ -7,7 +7,7 @@ export * as guess from './guess/index.js'
|
|
|
7
7
|
export * as nodelist from './nodelist/index.js'
|
|
8
8
|
export * as null from './null/index.js'
|
|
9
9
|
export * as number from './number/index.js'
|
|
10
|
-
export * as record from './record/index.js'
|
|
11
10
|
export * as ref from './ref/index.js'
|
|
11
|
+
export * as record from './record/index.js'
|
|
12
12
|
export * as string from './string/index.js'
|
|
13
13
|
export * as text from './text/index.js'
|
package/agnostic/html/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ export * as getNodeAncestors from './get-node-ancestors/index.js'
|
|
|
3
3
|
export * as getPositionInsideParent from './get-position-inside-parent/index.js'
|
|
4
4
|
export * as hyperJson from './hyper-json/index.js'
|
|
5
5
|
export * as insertNode from './insert-node/index.js'
|
|
6
|
-
export * as placeholders from './placeholders/index.js'
|
|
7
|
-
export * as replaceInElement from './replace-in-element/index.js'
|
|
8
6
|
export * as selectorToElement from './selector-to-element/index.js'
|
|
7
|
+
export * as placeholders from './placeholders/index.js'
|
|
9
8
|
export * as stringToNodes from './string-to-nodes/index.js'
|
|
9
|
+
export * as replaceInElement from './replace-in-element/index.js'
|
|
10
10
|
export * as watchSelection from './watch-selection/index.js'
|
package/agnostic/html/index.js
CHANGED
|
@@ -3,8 +3,8 @@ export * as getNodeAncestors from './get-node-ancestors/index.js'
|
|
|
3
3
|
export * as getPositionInsideParent from './get-position-inside-parent/index.js'
|
|
4
4
|
export * as hyperJson from './hyper-json/index.js'
|
|
5
5
|
export * as insertNode from './insert-node/index.js'
|
|
6
|
-
export * as placeholders from './placeholders/index.js'
|
|
7
|
-
export * as replaceInElement from './replace-in-element/index.js'
|
|
8
6
|
export * as selectorToElement from './selector-to-element/index.js'
|
|
7
|
+
export * as placeholders from './placeholders/index.js'
|
|
9
8
|
export * as stringToNodes from './string-to-nodes/index.js'
|
|
9
|
+
export * as replaceInElement from './replace-in-element/index.js'
|
|
10
10
|
export * as watchSelection from './watch-selection/index.js'
|
package/agnostic/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ export * as arrays from './arrays/index.js'
|
|
|
2
2
|
export * as booleans from './booleans/index.js'
|
|
3
3
|
export * as colors from './colors/index.js'
|
|
4
4
|
export * as css from './css/index.js'
|
|
5
|
-
export * as html from './html/index.js'
|
|
6
5
|
export * as errors from './errors/index.js'
|
|
6
|
+
export * as html from './html/index.js'
|
|
7
7
|
export * as misc from './misc/index.js'
|
|
8
8
|
export * as numbers from './numbers/index.js'
|
|
9
9
|
export * as objects from './objects/index.js'
|
package/agnostic/index.js
CHANGED
|
@@ -2,8 +2,8 @@ export * as arrays from './arrays/index.js'
|
|
|
2
2
|
export * as booleans from './booleans/index.js'
|
|
3
3
|
export * as colors from './colors/index.js'
|
|
4
4
|
export * as css from './css/index.js'
|
|
5
|
-
export * as html from './html/index.js'
|
|
6
5
|
export * as errors from './errors/index.js'
|
|
6
|
+
export * as html from './html/index.js'
|
|
7
7
|
export * as misc from './misc/index.js'
|
|
8
8
|
export * as numbers from './numbers/index.js'
|
|
9
9
|
export * as objects from './objects/index.js'
|
package/agnostic/misc/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * as assert from './assert/index.js'
|
|
2
2
|
export * as cast from './cast/index.js'
|
|
3
3
|
export * as connection from './connection/index.js'
|
|
4
|
+
export * as crossenv from './crossenv/index.js'
|
|
4
5
|
export * as crawler from './crawler/index.js'
|
|
5
6
|
export * as dataSize from './data-size/index.js'
|
|
6
7
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
7
|
-
export * as isNullish from './is-nullish/index.js'
|
|
8
8
|
export * as logs from './logs/index.js'
|
|
9
|
-
export * as
|
|
9
|
+
export * as isNullish from './is-nullish/index.js'
|
|
10
10
|
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
11
11
|
export * as normalizeExtension from './normalize-extension/index.js'
|
|
12
12
|
export * as outcome from './outcome/index.js'
|
package/agnostic/misc/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * as assert from './assert/index.js'
|
|
2
2
|
export * as cast from './cast/index.js'
|
|
3
3
|
export * as connection from './connection/index.js'
|
|
4
|
+
export * as crossenv from './crossenv/index.js'
|
|
4
5
|
export * as crawler from './crawler/index.js'
|
|
5
6
|
export * as dataSize from './data-size/index.js'
|
|
6
7
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
7
|
-
export * as isNullish from './is-nullish/index.js'
|
|
8
8
|
export * as logs from './logs/index.js'
|
|
9
|
-
export * as
|
|
9
|
+
export * as isNullish from './is-nullish/index.js'
|
|
10
10
|
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
11
11
|
export * as normalizeExtension from './normalize-extension/index.js'
|
|
12
12
|
export * as outcome from './outcome/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as absoluteModulo from './absolute-modulo/index.js'
|
|
2
2
|
export * as approximateRational from './approximate-rational/index.js'
|
|
3
|
-
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
4
3
|
export * as clamp from './clamp/index.js'
|
|
4
|
+
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
5
5
|
export * as interpolate from './interpolate/index.js'
|
|
6
6
|
export * as round from './round/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as absoluteModulo from './absolute-modulo/index.js'
|
|
2
2
|
export * as approximateRational from './approximate-rational/index.js'
|
|
3
|
-
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
4
3
|
export * as clamp from './clamp/index.js'
|
|
4
|
+
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
5
5
|
export * as interpolate from './interpolate/index.js'
|
|
6
6
|
export * as round from './round/index.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * as charCodes from './char-codes/index.js'
|
|
2
1
|
export * as matches from './matches/index.js'
|
|
3
|
-
export * as normalizeIndent from './normalize-indent/index.js'
|
|
4
2
|
export * as parseTable from './parse-table/index.js'
|
|
3
|
+
export * as charCodes from './char-codes/index.js'
|
|
4
|
+
export * as normalizeIndent from './normalize-indent/index.js'
|
|
5
5
|
export * as replaceAll from './replace-all/index.js'
|
|
6
|
-
export * as splitTrim from './split-trim/index.js'
|
|
7
6
|
export * as toAlphanum from './to-alphanum/index.js'
|
|
7
|
+
export * as splitTrim from './split-trim/index.js'
|
|
8
8
|
export * as trim from './trim/index.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * as charCodes from './char-codes/index.js'
|
|
2
1
|
export * as matches from './matches/index.js'
|
|
3
|
-
export * as normalizeIndent from './normalize-indent/index.js'
|
|
4
2
|
export * as parseTable from './parse-table/index.js'
|
|
3
|
+
export * as charCodes from './char-codes/index.js'
|
|
4
|
+
export * as normalizeIndent from './normalize-indent/index.js'
|
|
5
5
|
export * as replaceAll from './replace-all/index.js'
|
|
6
|
-
export * as splitTrim from './split-trim/index.js'
|
|
7
6
|
export * as toAlphanum from './to-alphanum/index.js'
|
|
7
|
+
export * as splitTrim from './split-trim/index.js'
|
|
8
8
|
export * as trim from './trim/index.js'
|
package/agnostic/time/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as dates from './dates/index.js'
|
|
2
2
|
export * as duration from './duration/index.js'
|
|
3
3
|
export * as transitions from './transitions/index.js'
|
|
4
|
-
export * as wait from './wait/index.js'
|
|
5
4
|
export * as timeout from './timeout/index.js'
|
|
5
|
+
export * as wait from './wait/index.js'
|
package/agnostic/time/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as dates from './dates/index.js'
|
|
2
2
|
export * as duration from './duration/index.js'
|
|
3
3
|
export * as transitions from './transitions/index.js'
|
|
4
|
-
export * as wait from './wait/index.js'
|
|
5
4
|
export * as timeout from './timeout/index.js'
|
|
5
|
+
export * as wait from './wait/index.js'
|
|
@@ -9,9 +9,9 @@ import type { WithClassName } from '../utils/types.js';
|
|
|
9
9
|
* @property before - Content rendered in the first (before) panel.
|
|
10
10
|
* @property after - Content rendered in the second (after) panel.
|
|
11
11
|
* @property onDragged - Called on each pointer move while dragging, with the
|
|
12
|
-
* pointer's
|
|
12
|
+
* pointer's `xRatio` and `yRatio` relative to the component's bounds.
|
|
13
13
|
* @property onClicked - Called on pointer release when no drag occurred, with
|
|
14
|
-
* the release position's
|
|
14
|
+
* the release position's `xRatio` and `yRatio`.
|
|
15
15
|
* @property className - Additional class name(s) applied to the root element.
|
|
16
16
|
* @property children - Arbitrary content to inject inside the component.
|
|
17
17
|
*/
|
|
@@ -20,8 +20,14 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
20
20
|
ratio?: number;
|
|
21
21
|
before?: ReactNode;
|
|
22
22
|
after?: ReactNode;
|
|
23
|
-
onDragged?: (
|
|
24
|
-
|
|
23
|
+
onDragged?: (payload: {
|
|
24
|
+
xRatio: number;
|
|
25
|
+
yRatio: number;
|
|
26
|
+
}) => void;
|
|
27
|
+
onClicked?: (payload: {
|
|
28
|
+
xRatio: number;
|
|
29
|
+
yRatio: number;
|
|
30
|
+
}) => void;
|
|
25
31
|
}>>;
|
|
26
32
|
/**
|
|
27
33
|
* Controlled before/after comparison component.
|
|
@@ -55,12 +55,12 @@ export const ControlledBeforeAfter = ({ mode = 'horizontal', ratio = 0, before,
|
|
|
55
55
|
const reportDrag = (clientX, clientY) => {
|
|
56
56
|
const ratios = getRatios(clientX, clientY);
|
|
57
57
|
if (ratios !== null)
|
|
58
|
-
onDragged?.(ratios
|
|
58
|
+
onDragged?.(ratios);
|
|
59
59
|
};
|
|
60
60
|
const reportClick = (clientX, clientY) => {
|
|
61
61
|
const ratios = getRatios(clientX, clientY);
|
|
62
62
|
if (ratios !== null)
|
|
63
|
-
onClicked?.(ratios
|
|
63
|
+
onClicked?.(ratios);
|
|
64
64
|
};
|
|
65
65
|
// User action handlers
|
|
66
66
|
const handlePointerDown = () => {
|
|
@@ -45,16 +45,16 @@ export const BeforeAfter = ({ mode = 'horizontal', ratio, defaultRatio = 0.5, on
|
|
|
45
45
|
return;
|
|
46
46
|
setInternalRatio(mode === 'horizontal' ? xRatio : yRatio);
|
|
47
47
|
};
|
|
48
|
-
const handleDrag = (xRatio, yRatio) => {
|
|
48
|
+
const handleDrag = ({ xRatio, yRatio }) => {
|
|
49
49
|
const x = toDividerRatio(xRatio);
|
|
50
50
|
const y = toDividerRatio(yRatio);
|
|
51
|
-
onDragged?.(x, y);
|
|
51
|
+
onDragged?.({ xRatio: x, yRatio: y });
|
|
52
52
|
moveDividerTo(x, y);
|
|
53
53
|
};
|
|
54
|
-
const handleClick = (xRatio, yRatio) => {
|
|
54
|
+
const handleClick = ({ xRatio, yRatio }) => {
|
|
55
55
|
const x = toDividerRatio(xRatio);
|
|
56
56
|
const y = toDividerRatio(yRatio);
|
|
57
|
-
onClicked?.(x, y);
|
|
57
|
+
onClicked?.({ xRatio: x, yRatio: y });
|
|
58
58
|
moveDividerTo(x, y);
|
|
59
59
|
};
|
|
60
60
|
// Rendering
|
|
@@ -16,7 +16,7 @@ import type { WithClassName } from '../utils/types.js';
|
|
|
16
16
|
* say different things, and an article that names one without the other means the other
|
|
17
17
|
* to come from the stylesheet.
|
|
18
18
|
* @property onCopyClicked - Called when the copy button is clicked, before the
|
|
19
|
-
* clipboard content is resolved, with the container's
|
|
19
|
+
* clipboard content is resolved, with `event` and the container's `rawHtml`.
|
|
20
20
|
* @property onClipped - Called once content has been written to the clipboard.
|
|
21
21
|
* Not called when the write fails.
|
|
22
22
|
* @property onCopyFailed - Called when the clipboard write throws, with the
|
|
@@ -28,7 +28,10 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
28
28
|
toClip?: string | ((curr: string | undefined) => string | undefined);
|
|
29
29
|
copyBtnContent?: ReactNode;
|
|
30
30
|
clippedBtnContent?: ReactNode;
|
|
31
|
-
onCopyClicked?: (
|
|
31
|
+
onCopyClicked?: (payload: {
|
|
32
|
+
event: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>;
|
|
33
|
+
rawHtml: string | undefined;
|
|
34
|
+
}) => void;
|
|
32
35
|
onClipped?: (content: string) => void;
|
|
33
36
|
onCopyFailed?: (error: unknown) => void;
|
|
34
37
|
}>>;
|
|
@@ -34,7 +34,7 @@ export const Clippable = ({ className, children, toClip, copyBtnContent, clipped
|
|
|
34
34
|
// User action handlers
|
|
35
35
|
const handleCopyClick = async (e) => {
|
|
36
36
|
const rawHtml = contentRef.current?.innerHTML;
|
|
37
|
-
onCopyClicked?.(e, rawHtml);
|
|
37
|
+
onCopyClicked?.({ event: e, rawHtml });
|
|
38
38
|
const html = typeof toClip === 'string'
|
|
39
39
|
? toClip
|
|
40
40
|
: typeof toClip === 'function'
|
|
@@ -17,8 +17,8 @@ import type { WithClassName } from '../utils/types.js';
|
|
|
17
17
|
* @property noSnap - Frees the scroll from snapping to a slot.
|
|
18
18
|
* @property onPrevClicked - Fires before the gallery reacts, with the index as it was.
|
|
19
19
|
* @property onNextClicked - Fires before the gallery reacts, with the index as it was.
|
|
20
|
-
* @property onPaginationClicked - Fires before the gallery reacts, with
|
|
21
|
-
* was and the one aimed at.
|
|
20
|
+
* @property onPaginationClicked - Fires before the gallery reacts, with `activePos`
|
|
21
|
+
* as it was and `targetPos`, the one aimed at.
|
|
22
22
|
* @property onActiveSlotChanged - Fires after the active slot changed, with the new index.
|
|
23
23
|
* @property onCanGoLeftChanged - Fires after the ability to scroll further left changed.
|
|
24
24
|
* Never on mount.
|
|
@@ -38,7 +38,10 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
38
38
|
noSnap?: boolean;
|
|
39
39
|
onPrevClicked?: (activePos: number) => void;
|
|
40
40
|
onNextClicked?: (activePos: number) => void;
|
|
41
|
-
onPaginationClicked?: (
|
|
41
|
+
onPaginationClicked?: (payload: {
|
|
42
|
+
activePos: number;
|
|
43
|
+
targetPos: number;
|
|
44
|
+
}) => void;
|
|
42
45
|
onActiveSlotChanged?: (activePos: number) => void;
|
|
43
46
|
onCanGoLeftChanged?: (canGoLeft: boolean) => void;
|
|
44
47
|
onCanGoRightChanged?: (canGoRight: boolean) => void;
|
|
@@ -96,7 +96,7 @@ export const Gallery = ({ offsetLeft, offsetRight, offset, prevButtonContent, ne
|
|
|
96
96
|
scrollToSlot(activeIndex + 1);
|
|
97
97
|
};
|
|
98
98
|
const handlePaginationClick = (pos) => {
|
|
99
|
-
onPaginationClicked?.(activeIndex, pos);
|
|
99
|
+
onPaginationClicked?.({ activePos: activeIndex, targetPos: pos });
|
|
100
100
|
if (isControlled)
|
|
101
101
|
return;
|
|
102
102
|
scrollToSlot(pos);
|
|
@@ -25,10 +25,11 @@ import { type Props as ControlledProps } from './index.controlled.js';
|
|
|
25
25
|
* `onPageFetchFailed` and retried according to `fetchRetriesNb`.
|
|
26
26
|
* @property staleAfterMs - Delay after which a loaded page is refetched, counted
|
|
27
27
|
* from its own last successful load. When omitted, pages are never refreshed.
|
|
28
|
-
* @property onPageFetched - Called after a page's items
|
|
29
|
-
* called for a page dropped while its request was in flight.
|
|
30
|
-
* @property onPageFetchFailed - Called
|
|
31
|
-
* are exhausted. When omitted, failures are logged
|
|
28
|
+
* @property onPageFetched - Called with `pagePos` and `items` after a page's items
|
|
29
|
+
* have been stored. Not called for a page dropped while its request was in flight.
|
|
30
|
+
* @property onPageFetchFailed - Called with `pagePos` and `error` on every failed
|
|
31
|
+
* attempt, not only once retries are exhausted. When omitted, failures are logged
|
|
32
|
+
* with `console.warn`.
|
|
32
33
|
* @property fetchRetriesNb - Number of retries after a failed fetch. Defaults to
|
|
33
34
|
* `Infinity`, so a page keeps retrying until it succeeds.
|
|
34
35
|
* @property fetchRetriesDelayMs - Delay between two attempts. Defaults to `1000`.
|
|
@@ -40,8 +41,14 @@ export type Props<T> = Omit<ControlledProps<T>, 'itemsPages' | 'loadingPages' |
|
|
|
40
41
|
dropPagesFurtherThan?: number;
|
|
41
42
|
fetch: (page: number) => Promise<T[]>;
|
|
42
43
|
staleAfterMs?: number;
|
|
43
|
-
onPageFetched?: (
|
|
44
|
-
|
|
44
|
+
onPageFetched?: (payload: {
|
|
45
|
+
pagePos: number;
|
|
46
|
+
items: T[];
|
|
47
|
+
}) => void;
|
|
48
|
+
onPageFetchFailed?: (payload: {
|
|
49
|
+
pagePos: number;
|
|
50
|
+
error: Error;
|
|
51
|
+
}) => void;
|
|
45
52
|
fetchRetriesNb?: number;
|
|
46
53
|
fetchRetriesDelayMs?: number;
|
|
47
54
|
};
|
|
@@ -63,7 +63,7 @@ export const ListLoader = ({ className, pages, defaultPage, fillGaps = true, dro
|
|
|
63
63
|
const reportFetchError = (page, err) => {
|
|
64
64
|
const error = toError(err);
|
|
65
65
|
if (onPageFetchFailed !== undefined)
|
|
66
|
-
return onPageFetchFailed(page, error);
|
|
66
|
+
return onPageFetchFailed({ pagePos: page, error });
|
|
67
67
|
// eslint-disable-next-line no-console
|
|
68
68
|
console.warn(`ListLoader failed to fetch page ${page}`, error);
|
|
69
69
|
};
|
|
@@ -78,7 +78,7 @@ export const ListLoader = ({ className, pages, defaultPage, fillGaps = true, dro
|
|
|
78
78
|
if (!requestedPages.current.has(page))
|
|
79
79
|
return;
|
|
80
80
|
storePage(page, items);
|
|
81
|
-
onPageFetched?.(page, items);
|
|
81
|
+
onPageFetched?.({ pagePos: page, items });
|
|
82
82
|
setPageLoading(page, false);
|
|
83
83
|
})
|
|
84
84
|
.catch((err) => {
|
|
@@ -83,8 +83,8 @@ export type PropsPage = {
|
|
|
83
83
|
* - `'both'` — forces blocks on both sides.
|
|
84
84
|
* - `'none'` — no forcing (default behaviour).
|
|
85
85
|
* @property onPageChanged - Called once the current page has changed, never on
|
|
86
|
-
* mount. Receives the zero-based index of the new current page
|
|
87
|
-
*
|
|
86
|
+
* mount. Receives `currentPagePos`, the zero-based index of the new current page,
|
|
87
|
+
* and `pageData`, its definition when there is one.
|
|
88
88
|
* @property onContentVisibilityChanged - Called after the scrolling content
|
|
89
89
|
* area entered or left the viewport, with the new value. Never on mount.
|
|
90
90
|
* @property className - Optional additional class name(s) applied to the root
|
|
@@ -99,7 +99,10 @@ export type Props = WithClassName<{
|
|
|
99
99
|
viewportOffsetLeft?: ViewportOffset;
|
|
100
100
|
stickyBlocksLazyLoadDistance?: number;
|
|
101
101
|
forceStickBlocks?: 'before' | 'after' | 'both' | 'none';
|
|
102
|
-
onPageChanged?: (
|
|
102
|
+
onPageChanged?: (payload: {
|
|
103
|
+
currentPagePos: number;
|
|
104
|
+
pageData?: PropsPage;
|
|
105
|
+
}) => void;
|
|
103
106
|
onContentVisibilityChanged?: (isVisible: boolean) => void;
|
|
104
107
|
}>;
|
|
105
108
|
/**
|
|
@@ -254,7 +254,10 @@ export const Scrllgngn = ({ pages, thresholdOffsetPercent, viewportOffsetTop, vi
|
|
|
254
254
|
return () => window.clearInterval(interval);
|
|
255
255
|
}, [isOnScreen, readVisibleZone]);
|
|
256
256
|
// Handlers
|
|
257
|
-
useChangeDispatch(currentPagePos, pagePos => onPageChanged?.(
|
|
257
|
+
useChangeDispatch(currentPagePos, pagePos => onPageChanged?.({
|
|
258
|
+
currentPagePos: pagePos,
|
|
259
|
+
pageData: pages?.[pagePos]
|
|
260
|
+
}));
|
|
258
261
|
useChangeDispatch(contentVisible, onContentVisibilityChanged);
|
|
259
262
|
const handleTopBoundDetect = e => setTopVis(e.ioEntry?.isIntersecting ?? false);
|
|
260
263
|
const handleCntDetect = e => setCntVis(e.ioEntry?.isIntersecting ?? false);
|
|
@@ -30,8 +30,8 @@ import type { SequencerAction } from './types.js';
|
|
|
30
30
|
* is a step per second. Clamped to a minimum of `1`.
|
|
31
31
|
* @property loop - Whether the sequence wraps round. **`false` by default**, so a
|
|
32
32
|
* sequence ends the way a video does rather than running forever.
|
|
33
|
-
* @property onStepChanged - Called when the position changes, with
|
|
34
|
-
*
|
|
33
|
+
* @property onStepChanged - Called when the position changes, with `step` and the
|
|
34
|
+
* `activeStep` it resolves to. Never on mount.
|
|
35
35
|
* @property onIsPlayingChanged - Called once the effective play state changed — which
|
|
36
36
|
* includes it dropping to `false` on its own at the end.
|
|
37
37
|
* @property onIsEndedChanged - Called when the sequence ends, or leaves that state.
|
|
@@ -53,7 +53,10 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
53
53
|
defaultPlay?: boolean;
|
|
54
54
|
tempo?: number;
|
|
55
55
|
loop?: boolean;
|
|
56
|
-
onStepChanged?: (
|
|
56
|
+
onStepChanged?: (payload: {
|
|
57
|
+
step: number;
|
|
58
|
+
activeStep: number;
|
|
59
|
+
}) => void;
|
|
57
60
|
onIsPlayingChanged?: (isPlaying: boolean) => void;
|
|
58
61
|
onIsEndedChanged?: (isEnded: boolean) => void;
|
|
59
62
|
onLooped?: () => void;
|
|
@@ -269,7 +269,7 @@ export const Sequencer = ({ totalSteps, stepMap, step, defaultStep, play, defaul
|
|
|
269
269
|
onVisibilityChanged
|
|
270
270
|
}, actions, behavioursSuspended === true);
|
|
271
271
|
// State dispatch
|
|
272
|
-
useChangeDispatch(position, () => onStepChanged?.(position, activeStep));
|
|
272
|
+
useChangeDispatch(position, () => onStepChanged?.({ step: position, activeStep }));
|
|
273
273
|
useChangeDispatch(isPlaying, onIsPlayingChanged);
|
|
274
274
|
useChangeDispatch(isEnded, onIsEndedChanged);
|
|
275
275
|
useChangeDispatch(position === 0, atStart => { if (atStart)
|
|
@@ -33,6 +33,10 @@ import { type SourceData, type TrackData } from './utils.js';
|
|
|
33
33
|
* to update the prop instead. Because a playing element advances the time by
|
|
34
34
|
* itself, a controlled time also implies a stopped video: `play` and `autoPlay`
|
|
35
35
|
* are ignored for as long as this prop is provided.
|
|
36
|
+
*
|
|
37
|
+
* Every action handler below receives one {@link VideoActionPayload}: the `event` that
|
|
38
|
+
* triggered it, the `videoElement` it acted on, and the values named in its own entry.
|
|
39
|
+
*
|
|
36
40
|
* @property onPlayButtonClicked - Called when the play button is clicked, before
|
|
37
41
|
* the component reacts, with the playback state as it was.
|
|
38
42
|
* @property onPauseButtonClicked - Called when the pause button is clicked, before
|
|
@@ -93,6 +97,14 @@ import { type SourceData, type TrackData } from './utils.js';
|
|
|
93
97
|
*
|
|
94
98
|
* Also inherits all standard HTML props for a <video> element.
|
|
95
99
|
*/
|
|
100
|
+
/**
|
|
101
|
+
* What every action handler of this component carries: the event that triggered it, the
|
|
102
|
+
* `<video>` it acted on, and the values of that action.
|
|
103
|
+
*/
|
|
104
|
+
export type VideoActionPayload<E, T> = {
|
|
105
|
+
event: E;
|
|
106
|
+
videoElement: HTMLVideoElement | null;
|
|
107
|
+
} & T;
|
|
96
108
|
export type Props = PropsWithChildren<WithClassName<{
|
|
97
109
|
rootRef?: Ref<HTMLElement>;
|
|
98
110
|
videoRef?: RefObject<HTMLVideoElement | null>;
|
|
@@ -114,16 +126,39 @@ export type Props = PropsWithChildren<WithClassName<{
|
|
|
114
126
|
playbackRate?: number;
|
|
115
127
|
currentTimeMs?: number;
|
|
116
128
|
timeFormat?: string;
|
|
117
|
-
onPlayButtonClicked?: (
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
onPlayButtonClicked?: (payload: VideoActionPayload<React.MouseEvent<HTMLButtonElement>, {
|
|
130
|
+
isPlaying: boolean;
|
|
131
|
+
}>) => void;
|
|
132
|
+
onPauseButtonClicked?: (payload: VideoActionPayload<React.MouseEvent<HTMLButtonElement>, {
|
|
133
|
+
isPlaying: boolean;
|
|
134
|
+
}>) => void;
|
|
135
|
+
onLoudButtonClicked?: (payload: VideoActionPayload<React.MouseEvent<HTMLButtonElement>, {
|
|
136
|
+
isLoud: boolean;
|
|
137
|
+
}>) => void;
|
|
138
|
+
onMuteButtonClicked?: (payload: VideoActionPayload<React.MouseEvent<HTMLButtonElement>, {
|
|
139
|
+
isLoud: boolean;
|
|
140
|
+
}>) => void;
|
|
141
|
+
onVolumeRangeChanged?: (payload: VideoActionPayload<React.ChangeEvent<HTMLInputElement>, {
|
|
142
|
+
targetVolume: number;
|
|
143
|
+
currentVolume: number;
|
|
144
|
+
}>) => void;
|
|
145
|
+
onRateRangeChanged?: (payload: VideoActionPayload<React.ChangeEvent<HTMLInputElement>, {
|
|
146
|
+
targetRate: number;
|
|
147
|
+
currentRate: number;
|
|
148
|
+
}>) => void;
|
|
149
|
+
onFullscreenButtonClicked?: (payload: VideoActionPayload<React.MouseEvent<HTMLButtonElement>, {
|
|
150
|
+
isFullscreen: boolean;
|
|
151
|
+
}>) => void;
|
|
152
|
+
onSubtitlesButtonClicked?: (payload: VideoActionPayload<React.MouseEvent<HTMLButtonElement>, {
|
|
153
|
+
isSubtitlesOn: boolean;
|
|
154
|
+
}>) => void;
|
|
155
|
+
onTimelineClicked?: (payload: VideoActionPayload<React.MouseEvent<HTMLDivElement>, {
|
|
156
|
+
targetTime: number;
|
|
157
|
+
currentTime: number;
|
|
158
|
+
}>) => void;
|
|
159
|
+
onVideoClicked?: (payload: VideoActionPayload<React.MouseEvent<HTMLVideoElement>, {
|
|
160
|
+
isPlaying: boolean;
|
|
161
|
+
}>) => void;
|
|
127
162
|
onIsPlayingChanged?: (isPlaying: boolean) => void;
|
|
128
163
|
onIsFullscreenChanged?: (isFullscreen: boolean) => void;
|
|
129
164
|
onIsLoudChanged?: (isLoud: boolean) => void;
|
|
@@ -120,7 +120,7 @@ timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked,
|
|
|
120
120
|
// Custom action handlers
|
|
121
121
|
const handlePlayButtonClick = useCallback((e) => {
|
|
122
122
|
const wasPlaying = videoRef.current?.paused === false;
|
|
123
|
-
onPlayButtonClicked?.(e, wasPlaying, videoRef.current);
|
|
123
|
+
onPlayButtonClicked?.({ event: e, isPlaying: wasPlaying, videoElement: videoRef.current });
|
|
124
124
|
}, [onPlayButtonClicked]);
|
|
125
125
|
// The picture as a play/pause surface. It reports and nothing more, like every other
|
|
126
126
|
// control here: the uncontrolled layer above owns the play state.
|
|
@@ -134,37 +134,42 @@ timeFormat = '{{mm}}:{{ss}}:{{ms}}', onPlayButtonClicked, onPauseButtonClicked,
|
|
|
134
134
|
if (togglePlayOnClick !== true)
|
|
135
135
|
return;
|
|
136
136
|
const wasPlaying = videoRef.current?.paused === false;
|
|
137
|
-
onVideoClicked?.(e, wasPlaying, videoRef.current);
|
|
137
|
+
onVideoClicked?.({ event: e, isPlaying: wasPlaying, videoElement: videoRef.current });
|
|
138
138
|
}, [togglePlayOnClick, onVideoClicked]);
|
|
139
139
|
const handlePauseButtonClick = useCallback((e) => {
|
|
140
140
|
const wasPlaying = videoRef.current?.paused === false;
|
|
141
|
-
onPauseButtonClicked?.(e, wasPlaying, videoRef.current);
|
|
141
|
+
onPauseButtonClicked?.({ event: e, isPlaying: wasPlaying, videoElement: videoRef.current });
|
|
142
142
|
}, [onPauseButtonClicked]);
|
|
143
143
|
const handleLoudButtonClick = useCallback((e) => {
|
|
144
|
-
onLoudButtonClicked?.(e, isLoud, videoRef.current);
|
|
144
|
+
onLoudButtonClicked?.({ event: e, isLoud, videoElement: videoRef.current });
|
|
145
145
|
}, [onLoudButtonClicked, isLoud]);
|
|
146
146
|
const handleMuteButtonClick = useCallback((e) => {
|
|
147
|
-
onMuteButtonClicked?.(e, isLoud, videoRef.current);
|
|
147
|
+
onMuteButtonClicked?.({ event: e, isLoud, videoElement: videoRef.current });
|
|
148
148
|
}, [onMuteButtonClicked, isLoud]);
|
|
149
149
|
const handleFullscreenButtonClick = useCallback((e) => {
|
|
150
|
-
onFullscreenButtonClicked?.(e, isFullscreen, videoRef.current);
|
|
150
|
+
onFullscreenButtonClicked?.({ event: e, isFullscreen, videoElement: videoRef.current });
|
|
151
151
|
}, [onFullscreenButtonClicked, isFullscreen]);
|
|
152
152
|
const handleSubtitlesButtonClick = useCallback((e) => {
|
|
153
|
-
onSubtitlesButtonClicked?.(e, subtitlesOn, videoRef.current);
|
|
153
|
+
onSubtitlesButtonClicked?.({ event: e, isSubtitlesOn: subtitlesOn, videoElement: videoRef.current });
|
|
154
154
|
}, [onSubtitlesButtonClicked, subtitlesOn]);
|
|
155
155
|
const handleVolumeRangeChange = useCallback((e) => {
|
|
156
156
|
const targetVolume = Number(e.currentTarget.value) / 100;
|
|
157
|
-
onVolumeRangeChanged?.(e, targetVolume, volume, videoRef.current);
|
|
157
|
+
onVolumeRangeChanged?.({ event: e, targetVolume, currentVolume: volume, videoElement: videoRef.current });
|
|
158
158
|
}, [onVolumeRangeChanged, volume]);
|
|
159
159
|
const handleRateRangeChange = useCallback((e) => {
|
|
160
|
-
onRateRangeChanged?.(
|
|
160
|
+
onRateRangeChanged?.({
|
|
161
|
+
event: e,
|
|
162
|
+
targetRate: Number(e.currentTarget.value),
|
|
163
|
+
currentRate: playbackRate,
|
|
164
|
+
videoElement: videoRef.current
|
|
165
|
+
});
|
|
161
166
|
}, [onRateRangeChanged, playbackRate]);
|
|
162
167
|
const handleTimelineClick = useCallback((e) => {
|
|
163
168
|
if (videoRef.current === null)
|
|
164
169
|
return;
|
|
165
170
|
const progress = getTimelineClickProgress(e);
|
|
166
171
|
const targetTime = progress * totalTime;
|
|
167
|
-
onTimelineClicked?.(e, targetTime, currentTime, videoRef.current);
|
|
172
|
+
onTimelineClicked?.({ event: e, targetTime, currentTime, videoElement: videoRef.current });
|
|
168
173
|
// A controlled time is the parent's to move: it is expected to update the
|
|
169
174
|
// prop in response to this very handler.
|
|
170
175
|
if (!isTimeControlled) {
|
|
@@ -144,54 +144,54 @@ export const Video = ({ defaultSubtitlesOn = true, behavioursSuspended, visibili
|
|
|
144
144
|
controlledProps.onLoadedMetadata?.(e);
|
|
145
145
|
}, [controlledProps.onLoadedMetadata, controlledProps.muted]);
|
|
146
146
|
// User actions
|
|
147
|
-
const handlePlayButtonClick = useCallback(
|
|
148
|
-
onPlayButtonClicked?.(
|
|
147
|
+
const handlePlayButtonClick = useCallback(payload => {
|
|
148
|
+
onPlayButtonClicked?.(payload);
|
|
149
149
|
surrender('playback');
|
|
150
150
|
setPlay(true);
|
|
151
151
|
}, [onPlayButtonClicked, surrender]);
|
|
152
|
-
const handlePauseButtonClick = useCallback(
|
|
153
|
-
onPauseButtonClicked?.(
|
|
152
|
+
const handlePauseButtonClick = useCallback(payload => {
|
|
153
|
+
onPauseButtonClicked?.(payload);
|
|
154
154
|
surrender('playback');
|
|
155
155
|
setPlay(false);
|
|
156
156
|
}, [onPauseButtonClicked, surrender]);
|
|
157
157
|
// The picture toggles, where the two buttons each say one thing. It is the same gesture
|
|
158
158
|
// as pressing one of them — a consumer tracking whether the reader has taken over
|
|
159
159
|
// playback has to count this one too, since it is the same decision made elsewhere.
|
|
160
|
-
const handleVideoClick = useCallback(
|
|
161
|
-
onVideoClicked?.(
|
|
160
|
+
const handleVideoClick = useCallback(payload => {
|
|
161
|
+
onVideoClicked?.(payload);
|
|
162
162
|
surrender('playback');
|
|
163
|
-
setPlay(!isPlaying);
|
|
163
|
+
setPlay(!payload.isPlaying);
|
|
164
164
|
}, [onVideoClicked, surrender]);
|
|
165
|
-
const handleLoudButtonClick = useCallback(
|
|
166
|
-
onLoudButtonClicked?.(
|
|
165
|
+
const handleLoudButtonClick = useCallback(payload => {
|
|
166
|
+
onLoudButtonClicked?.(payload);
|
|
167
167
|
surrender('sound');
|
|
168
168
|
setMute(false);
|
|
169
169
|
}, [onLoudButtonClicked, surrender]);
|
|
170
|
-
const handleMuteButtonClick = useCallback(
|
|
171
|
-
onMuteButtonClicked?.(
|
|
170
|
+
const handleMuteButtonClick = useCallback(payload => {
|
|
171
|
+
onMuteButtonClicked?.(payload);
|
|
172
172
|
surrender('sound');
|
|
173
173
|
setMute(true);
|
|
174
174
|
}, [onMuteButtonClicked, surrender]);
|
|
175
|
-
const handleRateRangeChange = useCallback(
|
|
176
|
-
onRateRangeChanged?.(
|
|
177
|
-
setPlaybackRate(targetRate);
|
|
175
|
+
const handleRateRangeChange = useCallback(payload => {
|
|
176
|
+
onRateRangeChanged?.(payload);
|
|
177
|
+
setPlaybackRate(payload.targetRate);
|
|
178
178
|
}, [onRateRangeChanged]);
|
|
179
|
-
const handleVolumeRangeChange = useCallback(
|
|
180
|
-
onVolumeRangeChanged?.(
|
|
179
|
+
const handleVolumeRangeChange = useCallback(payload => {
|
|
180
|
+
onVolumeRangeChanged?.(payload);
|
|
181
181
|
surrender('sound');
|
|
182
|
-
setVolume(targetVolume);
|
|
182
|
+
setVolume(payload.targetVolume);
|
|
183
183
|
}, [onVolumeRangeChanged, surrender]);
|
|
184
|
-
const handleFullscreenButtonClick = useCallback(
|
|
185
|
-
onFullscreenButtonClicked?.(
|
|
186
|
-
setFullscreen(!isFullscreen);
|
|
184
|
+
const handleFullscreenButtonClick = useCallback(payload => {
|
|
185
|
+
onFullscreenButtonClicked?.(payload);
|
|
186
|
+
setFullscreen(!payload.isFullscreen);
|
|
187
187
|
}, [onFullscreenButtonClicked]);
|
|
188
188
|
// Un seul bouton pour les deux sens, contrairement à lecture/pause et son/muet qui en
|
|
189
189
|
// ont un chacun : ceux-là existent en paire dans le DOM et la feuille en montre un,
|
|
190
190
|
// parce qu'ils portent deux glyphes opposés. Les sous-titres n'en portent qu'un, dont
|
|
191
191
|
// seul l'habillage change — inutile d'en rendre deux pour n'en montrer jamais qu'un.
|
|
192
|
-
const handleSubtitlesButtonClick = useCallback(
|
|
193
|
-
onSubtitlesButtonClicked?.(
|
|
194
|
-
setSubtitlesOn(!isSubtitlesOn);
|
|
192
|
+
const handleSubtitlesButtonClick = useCallback(payload => {
|
|
193
|
+
onSubtitlesButtonClicked?.(payload);
|
|
194
|
+
setSubtitlesOn(!payload.isSubtitlesOn);
|
|
195
195
|
}, [onSubtitlesButtonClicked]);
|
|
196
196
|
// `autoPlay` is forwarded to the element, but the play state is owned here, so
|
|
197
197
|
// it has to be seeded once on mount for the controls to agree with the element.
|
package/components/index.d.ts
CHANGED
|
@@ -19,8 +19,8 @@ export * as scrllgngn from './Scrllgngn/index.js'
|
|
|
19
19
|
export * as scrollListener from './ScrollListener/index.js'
|
|
20
20
|
export * as select from './Select/index.js'
|
|
21
21
|
export * as sequencer from './Sequencer/index.js'
|
|
22
|
-
export * as subtitles from './Subtitles/index.js'
|
|
23
22
|
export * as shadowRoot from './ShadowRoot/index.js'
|
|
23
|
+
export * as subtitles from './Subtitles/index.js'
|
|
24
24
|
export * as textarea from './Textarea/index.js'
|
|
25
25
|
export * as uiModule from './UIModule/index.js'
|
|
26
26
|
export * as video from './Video/index.js'
|
package/components/index.js
CHANGED
|
@@ -19,8 +19,8 @@ export * as scrllgngn from './Scrllgngn/index.js'
|
|
|
19
19
|
export * as scrollListener from './ScrollListener/index.js'
|
|
20
20
|
export * as select from './Select/index.js'
|
|
21
21
|
export * as sequencer from './Sequencer/index.js'
|
|
22
|
-
export * as subtitles from './Subtitles/index.js'
|
|
23
22
|
export * as shadowRoot from './ShadowRoot/index.js'
|
|
23
|
+
export * as subtitles from './Subtitles/index.js'
|
|
24
24
|
export * as textarea from './Textarea/index.js'
|
|
25
25
|
export * as uiModule from './UIModule/index.js'
|
|
26
26
|
export * as video from './Video/index.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
2
|
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
|
-
export * as getMetadata from './get-metadata/index.js'
|
|
5
4
|
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
5
|
+
export * as getMetadata from './get-metadata/index.js'
|
|
6
6
|
export * as getPermissions from './get-permissions/index.js'
|
|
7
7
|
export * as move from './move/index.js'
|
|
8
8
|
export * as remove from './remove/index.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
2
|
export * as download from './download/index.js'
|
|
3
3
|
export * as exists from './exists/index.js'
|
|
4
|
-
export * as getMetadata from './get-metadata/index.js'
|
|
5
4
|
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
5
|
+
export * as getMetadata from './get-metadata/index.js'
|
|
6
6
|
export * as getPermissions from './get-permissions/index.js'
|
|
7
7
|
export * as move from './move/index.js'
|
|
8
8
|
export * as remove from './remove/index.js'
|
package/node/files/index.d.ts
CHANGED
package/node/files/index.js
CHANGED
package/node/images/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as create from './create/index.js'
|
|
2
|
-
export * as format from './format/index.js'
|
|
3
2
|
export * as metadata from './metadata/index.js'
|
|
3
|
+
export * as format from './format/index.js'
|
|
4
4
|
export * as transform from './transform/index.js'
|
|
5
5
|
export * as utils from './utils/index.js'
|
package/node/images/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as create from './create/index.js'
|
|
2
|
-
export * as format from './format/index.js'
|
|
3
2
|
export * as metadata from './metadata/index.js'
|
|
3
|
+
export * as format from './format/index.js'
|
|
4
4
|
export * as transform from './transform/index.js'
|
|
5
5
|
export * as utils from './utils/index.js'
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * as blur from './blur/index.js'
|
|
2
1
|
export * as brighten from './brighten/index.js'
|
|
2
|
+
export * as blur from './blur/index.js'
|
|
3
3
|
export * as extend from './extend/index.js'
|
|
4
4
|
export * as extract from './extract/index.js'
|
|
5
5
|
export * as flatten from './flatten/index.js'
|
|
6
|
-
export * as flip from './flip/index.js'
|
|
7
6
|
export * as flop from './flop/index.js'
|
|
7
|
+
export * as flip from './flip/index.js'
|
|
8
8
|
export * as hue from './hue/index.js'
|
|
9
9
|
export * as level from './level/index.js'
|
|
10
10
|
export * as lighten from './lighten/index.js'
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * as blur from './blur/index.js'
|
|
2
1
|
export * as brighten from './brighten/index.js'
|
|
2
|
+
export * as blur from './blur/index.js'
|
|
3
3
|
export * as extend from './extend/index.js'
|
|
4
4
|
export * as extract from './extract/index.js'
|
|
5
5
|
export * as flatten from './flatten/index.js'
|
|
6
|
-
export * as flip from './flip/index.js'
|
|
7
6
|
export * as flop from './flop/index.js'
|
|
7
|
+
export * as flip from './flip/index.js'
|
|
8
8
|
export * as hue from './hue/index.js'
|
|
9
9
|
export * as level from './level/index.js'
|
|
10
10
|
export * as lighten from './lighten/index.js'
|
package/node/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as awsS3 from './@aws-s3/index.js'
|
|
2
1
|
export * as designEdito from './@design-edito/index.js'
|
|
2
|
+
export * as awsS3 from './@aws-s3/index.js'
|
|
3
3
|
export * as express from './@express/index.js'
|
|
4
4
|
export * as googleCloud from './@google-cloud/index.js'
|
|
5
5
|
export * as cloudStorage from './cloud-storage/index.js'
|
package/node/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as awsS3 from './@aws-s3/index.js'
|
|
2
1
|
export * as designEdito from './@design-edito/index.js'
|
|
2
|
+
export * as awsS3 from './@aws-s3/index.js'
|
|
3
3
|
export * as express from './@express/index.js'
|
|
4
4
|
export * as googleCloud from './@google-cloud/index.js'
|
|
5
5
|
export * as cloudStorage from './cloud-storage/index.js'
|