@design-edito/tools 0.5.35 → 0.5.37

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 (53) hide show
  1. package/agnostic/arrays/index.d.ts +1 -1
  2. package/agnostic/arrays/index.js +1 -1
  3. package/agnostic/colors/index.d.ts +2 -2
  4. package/agnostic/colors/index.js +2 -2
  5. package/agnostic/css/index.d.ts +1 -1
  6. package/agnostic/css/index.js +1 -1
  7. package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +9 -9
  8. package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +9 -9
  9. package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +1 -1
  10. package/agnostic/html/hyper-json/smart-tags/isolated/index.js +1 -1
  11. package/agnostic/html/index.d.ts +1 -1
  12. package/agnostic/html/index.js +1 -1
  13. package/agnostic/index.d.ts +2 -2
  14. package/agnostic/index.js +2 -2
  15. package/agnostic/misc/index.d.ts +2 -2
  16. package/agnostic/misc/index.js +2 -2
  17. package/agnostic/numbers/index.d.ts +2 -2
  18. package/agnostic/numbers/index.js +2 -2
  19. package/agnostic/objects/index.d.ts +1 -1
  20. package/agnostic/objects/index.js +1 -1
  21. package/agnostic/random/index.d.ts +1 -1
  22. package/agnostic/random/index.js +1 -1
  23. package/agnostic/sanitization/index.d.ts +1 -1
  24. package/agnostic/sanitization/index.js +1 -1
  25. package/agnostic/strings/index.d.ts +1 -1
  26. package/agnostic/strings/index.js +1 -1
  27. package/agnostic/time/dates/index.d.ts +1 -1
  28. package/agnostic/time/dates/index.js +1 -1
  29. package/components/BeforeAfter/index.controlled.d.ts +10 -4
  30. package/components/BeforeAfter/index.controlled.js +2 -2
  31. package/components/BeforeAfter/index.js +4 -4
  32. package/components/Clippable/index.d.ts +5 -2
  33. package/components/Clippable/index.js +1 -1
  34. package/components/UIModule/index.d.ts +6 -3
  35. package/components/UIModule/index.js +11 -2
  36. package/components/Video/index.controlled.d.ts +45 -10
  37. package/components/Video/index.controlled.js +15 -10
  38. package/components/Video/index.js +23 -23
  39. package/components/index.d.ts +4 -4
  40. package/components/index.js +4 -4
  41. package/node/@aws-s3/storage/file/index.d.ts +1 -1
  42. package/node/@aws-s3/storage/file/index.js +1 -1
  43. package/node/@google-cloud/storage/directory/index.d.ts +1 -1
  44. package/node/@google-cloud/storage/directory/index.js +1 -1
  45. package/node/@google-cloud/storage/file/index.d.ts +3 -3
  46. package/node/@google-cloud/storage/file/index.js +3 -3
  47. package/node/cloud-storage/operations/index.d.ts +1 -1
  48. package/node/cloud-storage/operations/index.js +1 -1
  49. package/node/images/index.d.ts +1 -1
  50. package/node/images/index.js +1 -1
  51. package/node/index.d.ts +1 -1
  52. package/node/index.js +1 -1
  53. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  export * as dedupe from './dedupe/index.js'
2
- export * as findDuplicates from './find-duplicates/index.js'
3
2
  export * as isArrayOf from './is-array-of/index.js'
4
3
  export * as make from './make/index.js'
5
4
  export * as randomPick from './random-pick/index.js'
6
5
  export * as shuffle from './shuffle/index.js'
6
+ export * as findDuplicates from './find-duplicates/index.js'
@@ -1,6 +1,6 @@
1
1
  export * as dedupe from './dedupe/index.js'
2
- export * as findDuplicates from './find-duplicates/index.js'
3
2
  export * as isArrayOf from './is-array-of/index.js'
4
3
  export * as make from './make/index.js'
5
4
  export * as randomPick from './random-pick/index.js'
6
5
  export * as shuffle from './shuffle/index.js'
6
+ export * as findDuplicates from './find-duplicates/index.js'
@@ -1,12 +1,12 @@
1
1
  export * as channels from './channels/index.js'
2
2
  export * as contrast from './contrast/index.js'
3
3
  export * as convert from './convert/index.js'
4
- export * as grayscale from './grayscale/index.js'
5
4
  export * as distance from './distance/index.js'
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'
@@ -1,12 +1,12 @@
1
1
  export * as channels from './channels/index.js'
2
2
  export * as contrast from './contrast/index.js'
3
3
  export * as convert from './convert/index.js'
4
- export * as grayscale from './grayscale/index.js'
5
4
  export * as distance from './distance/index.js'
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'
@@ -1,6 +1,6 @@
1
1
  export * as bem from './bem/index.js'
2
2
  export * as clss from './clss/index.js'
3
3
  export * as generateNiceColor from './generate-nice-color/index.js'
4
- export * as isValidCssClassName from './is-valid-css-class-name/index.js'
5
4
  export * as scale from './scale/index.js'
5
+ export * as isValidCssClassName from './is-valid-css-class-name/index.js'
6
6
  export * as stylesSet from './styles-set/index.js'
@@ -1,6 +1,6 @@
1
1
  export * as bem from './bem/index.js'
2
2
  export * as clss from './clss/index.js'
3
3
  export * as generateNiceColor from './generate-nice-color/index.js'
4
- export * as isValidCssClassName from './is-valid-css-class-name/index.js'
5
4
  export * as scale from './scale/index.js'
5
+ export * as isValidCssClassName from './is-valid-css-class-name/index.js'
6
6
  export * as stylesSet from './styles-set/index.js'
@@ -5,20 +5,20 @@ export * as and from './and/index.js'
5
5
  export * as at from './at/index.js'
6
6
  export * as call from './call/index.js'
7
7
  export * as clone from './clone/index.js'
8
- export * as deleteproperties from './deleteproperties/index.js'
9
8
  export * as equals from './equals/index.js'
9
+ export * as deleteproperties from './deleteproperties/index.js'
10
10
  export * as getattribute from './getattribute/index.js'
11
11
  export * as getproperties from './getproperties/index.js'
12
+ export * as hjparse from './hjparse/index.js'
12
13
  export * as getproperty from './getproperty/index.js'
13
- export * as hjstringify from './hjstringify/index.js'
14
14
  export * as if from './if/index.js'
15
15
  export * as initialize from './initialize/index.js'
16
16
  export * as join from './join/index.js'
17
17
  export * as length from './length/index.js'
18
18
  export * as map from './map/index.js'
19
+ export * as hjstringify from './hjstringify/index.js'
19
20
  export * as negate from './negate/index.js'
20
21
  export * as notrailing from './notrailing/index.js'
21
- export * as hjparse from './hjparse/index.js'
22
22
  export * as or from './or/index.js'
23
23
  export * as pickrandom from './pickrandom/index.js'
24
24
  export * as populate from './populate/index.js'
@@ -33,20 +33,20 @@ export * as replace from './replace/index.js'
33
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
- export * as setproperty from './setproperty/index.js'
37
36
  export * as sorton from './sorton/index.js'
38
- export * as split from './split/index.js'
39
37
  export * as spread from './spread/index.js'
40
- export * as toboolean from './toboolean/index.js'
41
- export * as toggleclass from './toggleclass/index.js'
42
38
  export * as toarray from './toarray/index.js'
39
+ export * as toboolean from './toboolean/index.js'
43
40
  export * as toelement from './toelement/index.js'
41
+ export * as toggleclass from './toggleclass/index.js'
42
+ export * as setproperty from './setproperty/index.js'
43
+ export * as split from './split/index.js'
44
44
  export * as tonodelist from './tonodelist/index.js'
45
45
  export * as tonull from './tonull/index.js'
46
- export * as torecord from './torecord/index.js'
47
- export * as toref from './toref/index.js'
48
46
  export * as tonumber from './tonumber/index.js'
47
+ export * as toref from './toref/index.js'
49
48
  export * as tostring from './tostring/index.js'
49
+ export * as torecord from './torecord/index.js'
50
50
  export * as totext from './totext/index.js'
51
51
  export * as transformselected from './transformselected/index.js'
52
52
  export * as trim from './trim/index.js'
@@ -5,20 +5,20 @@ export * as and from './and/index.js'
5
5
  export * as at from './at/index.js'
6
6
  export * as call from './call/index.js'
7
7
  export * as clone from './clone/index.js'
8
- export * as deleteproperties from './deleteproperties/index.js'
9
8
  export * as equals from './equals/index.js'
9
+ export * as deleteproperties from './deleteproperties/index.js'
10
10
  export * as getattribute from './getattribute/index.js'
11
11
  export * as getproperties from './getproperties/index.js'
12
+ export * as hjparse from './hjparse/index.js'
12
13
  export * as getproperty from './getproperty/index.js'
13
- export * as hjstringify from './hjstringify/index.js'
14
14
  export * as if from './if/index.js'
15
15
  export * as initialize from './initialize/index.js'
16
16
  export * as join from './join/index.js'
17
17
  export * as length from './length/index.js'
18
18
  export * as map from './map/index.js'
19
+ export * as hjstringify from './hjstringify/index.js'
19
20
  export * as negate from './negate/index.js'
20
21
  export * as notrailing from './notrailing/index.js'
21
- export * as hjparse from './hjparse/index.js'
22
22
  export * as or from './or/index.js'
23
23
  export * as pickrandom from './pickrandom/index.js'
24
24
  export * as populate from './populate/index.js'
@@ -33,20 +33,20 @@ export * as replace from './replace/index.js'
33
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
- export * as setproperty from './setproperty/index.js'
37
36
  export * as sorton from './sorton/index.js'
38
- export * as split from './split/index.js'
39
37
  export * as spread from './spread/index.js'
40
- export * as toboolean from './toboolean/index.js'
41
- export * as toggleclass from './toggleclass/index.js'
42
38
  export * as toarray from './toarray/index.js'
39
+ export * as toboolean from './toboolean/index.js'
43
40
  export * as toelement from './toelement/index.js'
41
+ export * as toggleclass from './toggleclass/index.js'
42
+ export * as setproperty from './setproperty/index.js'
43
+ export * as split from './split/index.js'
44
44
  export * as tonodelist from './tonodelist/index.js'
45
45
  export * as tonull from './tonull/index.js'
46
- export * as torecord from './torecord/index.js'
47
- export * as toref from './toref/index.js'
48
46
  export * as tonumber from './tonumber/index.js'
47
+ export * as toref from './toref/index.js'
49
48
  export * as tostring from './tostring/index.js'
49
+ export * as torecord from './torecord/index.js'
50
50
  export * as totext from './totext/index.js'
51
51
  export * as transformselected from './transformselected/index.js'
52
52
  export * as trim from './trim/index.js'
@@ -3,8 +3,8 @@ export * as array from './array/index.js'
3
3
  export * as boolean from './boolean/index.js'
4
4
  export * as element from './element/index.js'
5
5
  export * as get from './get/index.js'
6
- export * as guess from './guess/index.js'
7
6
  export * as nodelist from './nodelist/index.js'
7
+ export * as guess from './guess/index.js'
8
8
  export * as null from './null/index.js'
9
9
  export * as number from './number/index.js'
10
10
  export * as record from './record/index.js'
@@ -3,8 +3,8 @@ export * as array from './array/index.js'
3
3
  export * as boolean from './boolean/index.js'
4
4
  export * as element from './element/index.js'
5
5
  export * as get from './get/index.js'
6
- export * as guess from './guess/index.js'
7
6
  export * as nodelist from './nodelist/index.js'
7
+ export * as guess from './guess/index.js'
8
8
  export * as null from './null/index.js'
9
9
  export * as number from './number/index.js'
10
10
  export * as record from './record/index.js'
@@ -6,5 +6,5 @@ export * as insertNode from './insert-node/index.js'
6
6
  export * as placeholders from './placeholders/index.js'
7
7
  export * as replaceInElement from './replace-in-element/index.js'
8
8
  export * as selectorToElement from './selector-to-element/index.js'
9
- export * as stringToNodes from './string-to-nodes/index.js'
10
9
  export * as watchSelection from './watch-selection/index.js'
10
+ export * as stringToNodes from './string-to-nodes/index.js'
@@ -6,5 +6,5 @@ export * as insertNode from './insert-node/index.js'
6
6
  export * as placeholders from './placeholders/index.js'
7
7
  export * as replaceInElement from './replace-in-element/index.js'
8
8
  export * as selectorToElement from './selector-to-element/index.js'
9
- export * as stringToNodes from './string-to-nodes/index.js'
10
9
  export * as watchSelection from './watch-selection/index.js'
10
+ export * as stringToNodes from './string-to-nodes/index.js'
@@ -1,3 +1,4 @@
1
+ export * as arrays from './arrays/index.js'
1
2
  export * as booleans from './booleans/index.js'
2
3
  export * as colors from './colors/index.js'
3
4
  export * as css from './css/index.js'
@@ -11,7 +12,6 @@ export * as random from './random/index.js'
11
12
  export * as regexps from './regexps/index.js'
12
13
  export * as sanitization from './sanitization/index.js'
13
14
  export * as strings from './strings/index.js'
14
- export * as subtitles from './subtitles/index.js'
15
15
  export * as time from './time/index.js'
16
- export * as arrays from './arrays/index.js'
16
+ export * as subtitles from './subtitles/index.js'
17
17
  export * as typescript from './typescript/index.js'
package/agnostic/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ export * as arrays from './arrays/index.js'
1
2
  export * as booleans from './booleans/index.js'
2
3
  export * as colors from './colors/index.js'
3
4
  export * as css from './css/index.js'
@@ -11,7 +12,6 @@ export * as random from './random/index.js'
11
12
  export * as regexps from './regexps/index.js'
12
13
  export * as sanitization from './sanitization/index.js'
13
14
  export * as strings from './strings/index.js'
14
- export * as subtitles from './subtitles/index.js'
15
15
  export * as time from './time/index.js'
16
- export * as arrays from './arrays/index.js'
16
+ export * as subtitles from './subtitles/index.js'
17
17
  export * as typescript from './typescript/index.js'
@@ -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 crawler from './crawler/index.js'
5
+ export * as crossenv from './crossenv/index.js'
4
6
  export * as dataSize from './data-size/index.js'
5
7
  export * as isConstructorFunction from './is-constructor-function/index.js'
6
8
  export * as isNullish from './is-nullish/index.js'
7
9
  export * as logs from './logs/index.js'
8
10
  export * as loremIpsum from './lorem-ipsum/index.js'
9
11
  export * as normalizeExtension from './normalize-extension/index.js'
10
- export * as crawler from './crawler/index.js'
11
- export * as crossenv from './crossenv/index.js'
12
12
  export * as outcome from './outcome/index.js'
@@ -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 crawler from './crawler/index.js'
5
+ export * as crossenv from './crossenv/index.js'
4
6
  export * as dataSize from './data-size/index.js'
5
7
  export * as isConstructorFunction from './is-constructor-function/index.js'
6
8
  export * as isNullish from './is-nullish/index.js'
7
9
  export * as logs from './logs/index.js'
8
10
  export * as loremIpsum from './lorem-ipsum/index.js'
9
11
  export * as normalizeExtension from './normalize-extension/index.js'
10
- export * as crawler from './crawler/index.js'
11
- export * as crossenv from './crossenv/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
- export * as clamp from './clamp/index.js'
3
2
  export * as approximateRational from './approximate-rational/index.js'
4
- export * as geometricProgressions from './geometric-progressions/index.js'
3
+ export * as clamp from './clamp/index.js'
5
4
  export * as interpolate from './interpolate/index.js'
6
5
  export * as round from './round/index.js'
6
+ export * as geometricProgressions from './geometric-progressions/index.js'
@@ -1,6 +1,6 @@
1
1
  export * as absoluteModulo from './absolute-modulo/index.js'
2
- export * as clamp from './clamp/index.js'
3
2
  export * as approximateRational from './approximate-rational/index.js'
4
- export * as geometricProgressions from './geometric-progressions/index.js'
3
+ export * as clamp from './clamp/index.js'
5
4
  export * as interpolate from './interpolate/index.js'
6
5
  export * as round from './round/index.js'
6
+ export * as geometricProgressions from './geometric-progressions/index.js'
@@ -1,9 +1,9 @@
1
1
  export * as deepGetProperty from './deep-get-property/index.js'
2
2
  export * as enums from './enums/index.js'
3
3
  export * as flattenGetters from './flatten-getters/index.js'
4
- export * as isObject from './is-object/index.js'
5
4
  export * as isRecord from './is-record/index.js'
6
5
  export * as recordFormat from './record-format/index.js'
7
6
  export * as recordMap from './record-map/index.js'
8
7
  export * as sortKeys from './sort-keys/index.js'
9
8
  export * as validation from './validation/index.js'
9
+ export * as isObject from './is-object/index.js'
@@ -1,9 +1,9 @@
1
1
  export * as deepGetProperty from './deep-get-property/index.js'
2
2
  export * as enums from './enums/index.js'
3
3
  export * as flattenGetters from './flatten-getters/index.js'
4
- export * as isObject from './is-object/index.js'
5
4
  export * as isRecord from './is-record/index.js'
6
5
  export * as recordFormat from './record-format/index.js'
7
6
  export * as recordMap from './record-map/index.js'
8
7
  export * as sortKeys from './sort-keys/index.js'
9
8
  export * as validation from './validation/index.js'
9
+ export * as isObject from './is-object/index.js'
@@ -1,3 +1,3 @@
1
1
  export * as hexChar from './hex-char/index.js'
2
- export * as random from './random/index.js'
3
2
  export * as uuid from './uuid/index.js'
3
+ export * as random from './random/index.js'
@@ -1,3 +1,3 @@
1
1
  export * as hexChar from './hex-char/index.js'
2
- export * as random from './random/index.js'
3
2
  export * as uuid from './uuid/index.js'
3
+ export * as random from './random/index.js'
@@ -1,4 +1,4 @@
1
1
  export * as fileName from './file-name/index.js'
2
2
  export * as html from './html/index.js'
3
- export * as userInput from './user-input/index.js'
4
3
  export * as path from './path/index.js'
4
+ export * as userInput from './user-input/index.js'
@@ -1,4 +1,4 @@
1
1
  export * as fileName from './file-name/index.js'
2
2
  export * as html from './html/index.js'
3
- export * as userInput from './user-input/index.js'
4
3
  export * as path from './path/index.js'
4
+ export * as userInput from './user-input/index.js'
@@ -3,6 +3,6 @@ export * as matches from './matches/index.js'
3
3
  export * as normalizeIndent from './normalize-indent/index.js'
4
4
  export * as parseTable from './parse-table/index.js'
5
5
  export * as replaceAll from './replace-all/index.js'
6
- export * as toAlphanum from './to-alphanum/index.js'
7
6
  export * as splitTrim from './split-trim/index.js'
7
+ export * as toAlphanum from './to-alphanum/index.js'
8
8
  export * as trim from './trim/index.js'
@@ -3,6 +3,6 @@ export * as matches from './matches/index.js'
3
3
  export * as normalizeIndent from './normalize-indent/index.js'
4
4
  export * as parseTable from './parse-table/index.js'
5
5
  export * as replaceAll from './replace-all/index.js'
6
- export * as toAlphanum from './to-alphanum/index.js'
7
6
  export * as splitTrim from './split-trim/index.js'
7
+ export * as toAlphanum from './to-alphanum/index.js'
8
8
  export * as trim from './trim/index.js'
@@ -1,2 +1,2 @@
1
- export * as formatDate from './format-date/index.js'
2
1
  export * as toFrenchRepublican from './to-french-republican/index.js'
2
+ export * as formatDate from './format-date/index.js'
@@ -1,2 +1,2 @@
1
- export * as formatDate from './format-date/index.js'
2
1
  export * as toFrenchRepublican from './to-french-republican/index.js'
2
+ export * as formatDate from './format-date/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 x and y ratios relative to the component's bounds.
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 x and y ratios.
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?: (xRatio: number, yRatio: number) => void;
24
- onClicked?: (xRatio: number, yRatio: number) => void;
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.xRatio, ratios.yRatio);
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.xRatio, ratios.yRatio);
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 raw HTML.
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?: (e: MouseEvent<HTMLButtonElement, globalThis.MouseEvent>, rawContent: string | undefined) => void;
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'
@@ -11,7 +11,9 @@ import type { WithClassName } from '../utils/types.js';
11
11
  * error state.
12
12
  * @property postInit - Optional. Called once, right after the element returned by
13
13
  * `init` has been appended. First point at which the module holds an attached
14
- * element: layout can be measured and ancestors reached.
14
+ * element: layout can be measured and ancestors reached. **May return a teardown
15
+ * function**, run at unmount before `destroy` — which lets whatever it set up stay in
16
+ * its own closure instead of being filed somewhere `destroy` can find it again.
15
17
  * @property update - Optional. Called when the `props` object changes identity,
16
18
  * once the module is live. Compared by reference, not by value — a consumer passing
17
19
  * an inline object gets one call per render, one passing a stable reference gets one
@@ -25,7 +27,7 @@ import type { WithClassName } from '../utils/types.js';
25
27
  */
26
28
  type ModuleData = {
27
29
  init: (props: Record<string, unknown>) => Element;
28
- postInit?: (target: Element, props: Record<string, unknown>) => void;
30
+ postInit?: (target: Element, props: Record<string, unknown>) => void | (() => void);
29
31
  update?: (target: Element, props: Record<string, unknown>) => void;
30
32
  destroy?: (target: Element) => void;
31
33
  css?: string[];
@@ -69,7 +71,8 @@ export type Props = WithClassName<{
69
71
  * ### Lifecycle
70
72
  * `init(props)` builds the element, **detached**. It is appended, then `postInit`
71
73
  * runs on it attached. `update` follows each change of the `props` object's
72
- * identity, and `destroy` runs on unmount or when `src` changes.
74
+ * identity. At unmount, or when `src` changes, the teardown `postInit` returned runs
75
+ * first, then `destroy`.
73
76
  *
74
77
  * ### CSS modifiers
75
78
  * Reflecting the current load lifecycle:
@@ -20,7 +20,8 @@ import cssModule from './styles.module.css';
20
20
  * ### Lifecycle
21
21
  * `init(props)` builds the element, **detached**. It is appended, then `postInit`
22
22
  * runs on it attached. `update` follows each change of the `props` object's
23
- * identity, and `destroy` runs on unmount or when `src` changes.
23
+ * identity. At unmount, or when `src` changes, the teardown `postInit` returned runs
24
+ * first, then `destroy`.
24
25
  *
25
26
  * ### CSS modifiers
26
27
  * Reflecting the current load lifecycle:
@@ -113,6 +114,9 @@ export const UIModule = ({ src, props, onIdGenerated, onIsLoadingChanged, onLoad
113
114
  const liveInstance = liveInstanceRef.current;
114
115
  if (liveInstance === null)
115
116
  return;
117
+ // The teardown `postInit` handed back first: it undoes what `postInit` did, so it
118
+ // runs in reverse order of construction.
119
+ liveInstance.cleanup?.();
116
120
  liveInstance.module.destroy?.(liveInstance.target);
117
121
  liveInstanceRef.current = null;
118
122
  };
@@ -132,7 +136,12 @@ export const UIModule = ({ src, props, onIdGenerated, onIsLoadingChanged, onLoad
132
136
  if (rootRef.current === null)
133
137
  return;
134
138
  rootRef.current.appendChild(moduleTarget);
135
- liveInstanceRef.current?.module.postInit?.(moduleTarget, propsRef.current ?? {});
139
+ const liveInstance = liveInstanceRef.current;
140
+ if (liveInstance === null)
141
+ return;
142
+ const cleanup = liveInstance.module.postInit?.(moduleTarget, propsRef.current ?? {});
143
+ if (typeof cleanup === 'function')
144
+ liveInstance.cleanup = cleanup;
136
145
  }, [moduleTarget]);
137
146
  // Fx. dep. `props` - hand a props change to a module that is already live. Compared
138
147
  // by reference: the component knows nothing of the values, so it leaves the call to
@@ -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?: (e: React.MouseEvent<HTMLButtonElement>, isPlaying: boolean, video: HTMLVideoElement | null) => void;
118
- onPauseButtonClicked?: (e: React.MouseEvent<HTMLButtonElement>, isPlaying: boolean, video: HTMLVideoElement | null) => void;
119
- onLoudButtonClicked?: (e: React.MouseEvent<HTMLButtonElement>, isLoud: boolean, video: HTMLVideoElement | null) => void;
120
- onMuteButtonClicked?: (e: React.MouseEvent<HTMLButtonElement>, isLoud: boolean, video: HTMLVideoElement | null) => void;
121
- onVolumeRangeChanged?: (e: React.ChangeEvent<HTMLInputElement>, targetVolume: number, currentVolume: number, video: HTMLVideoElement | null) => void;
122
- onRateRangeChanged?: (e: React.ChangeEvent<HTMLInputElement>, targetRate: number, currentRate: number, video: HTMLVideoElement | null) => void;
123
- onFullscreenButtonClicked?: (e: React.MouseEvent<HTMLButtonElement>, isFullscreen: boolean, video: HTMLVideoElement | null) => void;
124
- onSubtitlesButtonClicked?: (e: React.MouseEvent<HTMLButtonElement>, isSubtitlesOn: boolean, video: HTMLVideoElement | null) => void;
125
- onTimelineClicked?: (e: React.MouseEvent<HTMLDivElement>, targetTime: number, currentTime: number, video: HTMLVideoElement | null) => void;
126
- onVideoClicked?: (e: React.MouseEvent<HTMLVideoElement>, isPlaying: boolean, video: HTMLVideoElement | null) => void;
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?.(e, Number(e.currentTarget.value), playbackRate, videoRef.current);
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((e, isPlaying, video) => {
148
- onPlayButtonClicked?.(e, isPlaying, video);
147
+ const handlePlayButtonClick = useCallback(payload => {
148
+ onPlayButtonClicked?.(payload);
149
149
  surrender('playback');
150
150
  setPlay(true);
151
151
  }, [onPlayButtonClicked, surrender]);
152
- const handlePauseButtonClick = useCallback((e, isPlaying, video) => {
153
- onPauseButtonClicked?.(e, isPlaying, video);
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((e, isPlaying, video) => {
161
- onVideoClicked?.(e, isPlaying, video);
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((e, isLoud, video) => {
166
- onLoudButtonClicked?.(e, isLoud, video);
165
+ const handleLoudButtonClick = useCallback(payload => {
166
+ onLoudButtonClicked?.(payload);
167
167
  surrender('sound');
168
168
  setMute(false);
169
169
  }, [onLoudButtonClicked, surrender]);
170
- const handleMuteButtonClick = useCallback((e, isLoud, video) => {
171
- onMuteButtonClicked?.(e, isLoud, video);
170
+ const handleMuteButtonClick = useCallback(payload => {
171
+ onMuteButtonClicked?.(payload);
172
172
  surrender('sound');
173
173
  setMute(true);
174
174
  }, [onMuteButtonClicked, surrender]);
175
- const handleRateRangeChange = useCallback((e, targetRate, currentRate, video) => {
176
- onRateRangeChanged?.(e, targetRate, currentRate, video);
177
- setPlaybackRate(targetRate);
175
+ const handleRateRangeChange = useCallback(payload => {
176
+ onRateRangeChanged?.(payload);
177
+ setPlaybackRate(payload.targetRate);
178
178
  }, [onRateRangeChanged]);
179
- const handleVolumeRangeChange = useCallback((e, targetVolume, currentVolume, video) => {
180
- onVolumeRangeChanged?.(e, targetVolume, currentVolume, video);
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((e, isFullscreen, video) => {
185
- onFullscreenButtonClicked?.(e, isFullscreen, video);
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((e, isSubtitlesOn, video) => {
193
- onSubtitlesButtonClicked?.(e, isSubtitlesOn, video);
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.
@@ -1,27 +1,27 @@
1
1
  export * as beforeAfter from './BeforeAfter/index.js'
2
2
  export * as clippable from './Clippable/index.js'
3
3
  export * as button from './Button/index.js'
4
- export * as disclaimer from './Disclaimer/index.js'
5
4
  export * as drawer from './Drawer/index.js'
6
5
  export * as eventListener from './EventListener/index.js'
6
+ export * as disclaimer from './Disclaimer/index.js'
7
7
  export * as gallery from './Gallery/index.js'
8
8
  export * as iframe from './Iframe/index.js'
9
9
  export * as image from './Image/index.js'
10
10
  export * as input from './Input/index.js'
11
11
  export * as intersectionObserver from './IntersectionObserver/index.js'
12
- export * as lightbox from './Lightbox/index.js'
13
12
  export * as jsonEditor from './JsonEditor/index.js'
13
+ export * as lightbox from './Lightbox/index.js'
14
14
  export * as listLoader from './ListLoader/index.js'
15
15
  export * as overlayer from './Overlayer/index.js'
16
16
  export * as paginator from './Paginator/index.js'
17
17
  export * as resizeObserver from './ResizeObserver/index.js'
18
18
  export * as scrllgngn from './Scrllgngn/index.js'
19
- export * as scrollListener from './ScrollListener/index.js'
20
19
  export * as select from './Select/index.js'
20
+ export * as scrollListener from './ScrollListener/index.js'
21
21
  export * as sequencer from './Sequencer/index.js'
22
22
  export * as shadowRoot from './ShadowRoot/index.js'
23
- export * as textarea from './Textarea/index.js'
24
23
  export * as subtitles from './Subtitles/index.js'
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'
27
27
  export * as wipAudioQuote from './_WIP_AudioQuote/index.js'
@@ -1,27 +1,27 @@
1
1
  export * as beforeAfter from './BeforeAfter/index.js'
2
2
  export * as clippable from './Clippable/index.js'
3
3
  export * as button from './Button/index.js'
4
- export * as disclaimer from './Disclaimer/index.js'
5
4
  export * as drawer from './Drawer/index.js'
6
5
  export * as eventListener from './EventListener/index.js'
6
+ export * as disclaimer from './Disclaimer/index.js'
7
7
  export * as gallery from './Gallery/index.js'
8
8
  export * as iframe from './Iframe/index.js'
9
9
  export * as image from './Image/index.js'
10
10
  export * as input from './Input/index.js'
11
11
  export * as intersectionObserver from './IntersectionObserver/index.js'
12
- export * as lightbox from './Lightbox/index.js'
13
12
  export * as jsonEditor from './JsonEditor/index.js'
13
+ export * as lightbox from './Lightbox/index.js'
14
14
  export * as listLoader from './ListLoader/index.js'
15
15
  export * as overlayer from './Overlayer/index.js'
16
16
  export * as paginator from './Paginator/index.js'
17
17
  export * as resizeObserver from './ResizeObserver/index.js'
18
18
  export * as scrllgngn from './Scrllgngn/index.js'
19
- export * as scrollListener from './ScrollListener/index.js'
20
19
  export * as select from './Select/index.js'
20
+ export * as scrollListener from './ScrollListener/index.js'
21
21
  export * as sequencer from './Sequencer/index.js'
22
22
  export * as shadowRoot from './ShadowRoot/index.js'
23
- export * as textarea from './Textarea/index.js'
24
23
  export * as subtitles from './Subtitles/index.js'
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'
27
27
  export * as wipAudioQuote from './_WIP_AudioQuote/index.js'
@@ -2,6 +2,6 @@ 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
4
  export * as move from './move/index.js'
5
- export * as stat from './stat/index.js'
6
5
  export * as remove from './remove/index.js'
6
+ export * as stat from './stat/index.js'
7
7
  export * as upload from './upload/index.js'
@@ -2,6 +2,6 @@ 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
4
  export * as move from './move/index.js'
5
- export * as stat from './stat/index.js'
6
5
  export * as remove from './remove/index.js'
6
+ export * as stat from './stat/index.js'
7
7
  export * as upload from './upload/index.js'
@@ -1,4 +1,4 @@
1
- export * as list from './list/index.js'
2
1
  export * as copyDir from './copy-dir/index.js'
2
+ export * as list from './list/index.js'
3
3
  export * as moveDir from './move-dir/index.js'
4
4
  export * as removeDir from './remove-dir/index.js'
@@ -1,4 +1,4 @@
1
- export * as list from './list/index.js'
2
1
  export * as copyDir from './copy-dir/index.js'
2
+ export * as list from './list/index.js'
3
3
  export * as moveDir from './move-dir/index.js'
4
4
  export * as removeDir from './remove-dir/index.js'
@@ -1,12 +1,12 @@
1
1
  export * as copy from './copy/index.js'
2
+ export * as download from './download/index.js'
2
3
  export * as exists from './exists/index.js'
4
+ export * as generateSignedUrl from './generate-signed-url/index.js'
3
5
  export * as getMetadata from './get-metadata/index.js'
4
6
  export * as getPermissions from './get-permissions/index.js'
5
- export * as download from './download/index.js'
7
+ export * as move from './move/index.js'
6
8
  export * as remove from './remove/index.js'
7
9
  export * as revokeSignedUrls from './revoke-signed-urls/index.js'
8
- export * as generateSignedUrl from './generate-signed-url/index.js'
9
- export * as move from './move/index.js'
10
10
  export * as stat from './stat/index.js'
11
11
  export * as updateMetadata from './update-metadata/index.js'
12
12
  export * as upload from './upload/index.js'
@@ -1,12 +1,12 @@
1
1
  export * as copy from './copy/index.js'
2
+ export * as download from './download/index.js'
2
3
  export * as exists from './exists/index.js'
4
+ export * as generateSignedUrl from './generate-signed-url/index.js'
3
5
  export * as getMetadata from './get-metadata/index.js'
4
6
  export * as getPermissions from './get-permissions/index.js'
5
- export * as download from './download/index.js'
7
+ export * as move from './move/index.js'
6
8
  export * as remove from './remove/index.js'
7
9
  export * as revokeSignedUrls from './revoke-signed-urls/index.js'
8
- export * as generateSignedUrl from './generate-signed-url/index.js'
9
- export * as move from './move/index.js'
10
10
  export * as stat from './stat/index.js'
11
11
  export * as updateMetadata from './update-metadata/index.js'
12
12
  export * as upload from './upload/index.js'
@@ -5,7 +5,7 @@ export * as existsFile from './exists-file/index.js'
5
5
  export * as listDir from './list-dir/index.js'
6
6
  export * as moveDir from './move-dir/index.js'
7
7
  export * as moveFile from './move-file/index.js'
8
- export * as removeFile from './remove-file/index.js'
9
8
  export * as removeDir from './remove-dir/index.js'
9
+ export * as removeFile from './remove-file/index.js'
10
10
  export * as statFile from './stat-file/index.js'
11
11
  export * as uploadFile from './upload-file/index.js'
@@ -5,7 +5,7 @@ export * as existsFile from './exists-file/index.js'
5
5
  export * as listDir from './list-dir/index.js'
6
6
  export * as moveDir from './move-dir/index.js'
7
7
  export * as moveFile from './move-file/index.js'
8
- export * as removeFile from './remove-file/index.js'
9
8
  export * as removeDir from './remove-dir/index.js'
9
+ export * as removeFile from './remove-file/index.js'
10
10
  export * as statFile from './stat-file/index.js'
11
11
  export * as uploadFile from './upload-file/index.js'
@@ -1,5 +1,5 @@
1
1
  export * as create from './create/index.js'
2
2
  export * as format from './format/index.js'
3
- export * as transform from './transform/index.js'
4
3
  export * as metadata from './metadata/index.js'
4
+ export * as transform from './transform/index.js'
5
5
  export * as utils from './utils/index.js'
@@ -1,5 +1,5 @@
1
1
  export * as create from './create/index.js'
2
2
  export * as format from './format/index.js'
3
- export * as transform from './transform/index.js'
4
3
  export * as metadata from './metadata/index.js'
4
+ export * as transform from './transform/index.js'
5
5
  export * as utils from './utils/index.js'
package/node/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export * as awsS3 from './@aws-s3/index.js'
2
2
  export * as designEdito from './@design-edito/index.js'
3
- export * as express from './@express/index.js'
4
3
  export * as googleCloud from './@google-cloud/index.js'
4
+ export * as express from './@express/index.js'
5
5
  export * as cloudStorage from './cloud-storage/index.js'
6
6
  export * as encryption from './encryption/index.js'
7
7
  export * as files from './files/index.js'
package/node/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export * as awsS3 from './@aws-s3/index.js'
2
2
  export * as designEdito from './@design-edito/index.js'
3
- export * as express from './@express/index.js'
4
3
  export * as googleCloud from './@google-cloud/index.js'
4
+ export * as express from './@express/index.js'
5
5
  export * as cloudStorage from './cloud-storage/index.js'
6
6
  export * as encryption from './encryption/index.js'
7
7
  export * as files from './files/index.js'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design-edito/tools",
3
- "version": "0.5.35",
3
+ "version": "0.5.37",
4
4
  "description": "",
5
5
  "author": "Maxime Fabas",
6
6
  "license": "ISC",