@design-edito/tools 0.5.33 → 0.5.34
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/arrays/index.d.ts +1 -1
- package/agnostic/arrays/index.js +1 -1
- package/agnostic/colors/index.d.ts +1 -1
- package/agnostic/colors/index.js +1 -1
- package/agnostic/css/index.d.ts +1 -1
- package/agnostic/css/index.js +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +7 -7
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +7 -7
- package/agnostic/html/index.d.ts +1 -1
- package/agnostic/html/index.js +1 -1
- package/agnostic/index.d.ts +3 -3
- package/agnostic/index.js +3 -3
- package/agnostic/misc/crossenv/index.d.ts +1 -1
- package/agnostic/misc/crossenv/index.js +1 -1
- package/agnostic/misc/index.d.ts +1 -1
- package/agnostic/misc/index.js +1 -1
- package/agnostic/numbers/index.d.ts +1 -1
- package/agnostic/numbers/index.js +1 -1
- package/agnostic/objects/index.d.ts +1 -1
- package/agnostic/objects/index.js +1 -1
- package/agnostic/strings/index.d.ts +1 -1
- package/agnostic/strings/index.js +1 -1
- 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/UIModule/index.d.ts +31 -18
- package/components/UIModule/index.js +32 -6
- package/components/index.d.ts +1 -1
- package/components/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/ftps/file/index.d.ts +1 -1
- package/node/ftps/file/index.js +1 -1
- package/node/ftps/index.d.ts +1 -1
- package/node/ftps/index.js +1 -1
- package/node/images/transform/operations/index.d.ts +1 -1
- package/node/images/transform/operations/index.js +1 -1
- package/node/index.d.ts +1 -1
- package/node/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as dedupe from './dedupe/index.js'
|
|
2
2
|
export * as findDuplicates from './find-duplicates/index.js'
|
|
3
|
+
export * as isArrayOf from './is-array-of/index.js'
|
|
3
4
|
export * as make from './make/index.js'
|
|
4
5
|
export * as randomPick from './random-pick/index.js'
|
|
5
6
|
export * as shuffle from './shuffle/index.js'
|
|
6
|
-
export * as isArrayOf from './is-array-of/index.js'
|
package/agnostic/arrays/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as dedupe from './dedupe/index.js'
|
|
2
2
|
export * as findDuplicates from './find-duplicates/index.js'
|
|
3
|
+
export * as isArrayOf from './is-array-of/index.js'
|
|
3
4
|
export * as make from './make/index.js'
|
|
4
5
|
export * as randomPick from './random-pick/index.js'
|
|
5
6
|
export * as shuffle from './shuffle/index.js'
|
|
6
|
-
export * as isArrayOf from './is-array-of/index.js'
|
|
@@ -3,10 +3,10 @@ export * as contrast from './contrast/index.js'
|
|
|
3
3
|
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
|
-
export * as lerp from './lerp/index.js'
|
|
7
6
|
export * as invert from './invert/index.js'
|
|
8
7
|
export * as luminance from './luminance/index.js'
|
|
9
8
|
export * as palette from './palette/index.js'
|
|
10
9
|
export * as rotate from './rotate/index.js'
|
|
11
10
|
export * as tidy from './tidy/index.js'
|
|
12
11
|
export * as typechecks from './typechecks/index.js'
|
|
12
|
+
export * as lerp from './lerp/index.js'
|
package/agnostic/colors/index.js
CHANGED
|
@@ -3,10 +3,10 @@ export * as contrast from './contrast/index.js'
|
|
|
3
3
|
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
|
-
export * as lerp from './lerp/index.js'
|
|
7
6
|
export * as invert from './invert/index.js'
|
|
8
7
|
export * as luminance from './luminance/index.js'
|
|
9
8
|
export * as palette from './palette/index.js'
|
|
10
9
|
export * as rotate from './rotate/index.js'
|
|
11
10
|
export * as tidy from './tidy/index.js'
|
|
12
11
|
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
1
|
export * as bem from './bem/index.js'
|
|
2
|
-
export * as clss from './clss/index.js'
|
|
3
2
|
export * as generateNiceColor from './generate-nice-color/index.js'
|
|
4
3
|
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
5
4
|
export * as scale from './scale/index.js'
|
|
6
5
|
export * as stylesSet from './styles-set/index.js'
|
|
6
|
+
export * as clss from './clss/index.js'
|
package/agnostic/css/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as bem from './bem/index.js'
|
|
2
|
-
export * as clss from './clss/index.js'
|
|
3
2
|
export * as generateNiceColor from './generate-nice-color/index.js'
|
|
4
3
|
export * as isValidCssClassName from './is-valid-css-class-name/index.js'
|
|
5
4
|
export * as scale from './scale/index.js'
|
|
6
5
|
export * as stylesSet from './styles-set/index.js'
|
|
6
|
+
export * as clss from './clss/index.js'
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
export * as add from './add/index.js'
|
|
2
1
|
export * as addclass from './addclass/index.js'
|
|
3
2
|
export * as and from './and/index.js'
|
|
3
|
+
export * as add from './add/index.js'
|
|
4
4
|
export * as append from './append/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
8
|
export * as deleteproperties from './deleteproperties/index.js'
|
|
9
|
-
export * as equals from './equals/index.js'
|
|
10
9
|
export * as getattribute from './getattribute/index.js'
|
|
10
|
+
export * as equals from './equals/index.js'
|
|
11
11
|
export * as getproperties from './getproperties/index.js'
|
|
12
12
|
export * as getproperty from './getproperty/index.js'
|
|
13
13
|
export * as hjparse from './hjparse/index.js'
|
|
14
14
|
export * as hjstringify from './hjstringify/index.js'
|
|
15
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'
|
|
18
17
|
export * as length from './length/index.js'
|
|
19
18
|
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
22
|
export * as or from './or/index.js'
|
|
@@ -29,6 +29,7 @@ export * as recordtoarray from './recordtoarray/index.js'
|
|
|
29
29
|
export * as removeattribute from './removeattribute/index.js'
|
|
30
30
|
export * as removeclass from './removeclass/index.js'
|
|
31
31
|
export * as renameproperty from './renameproperty/index.js'
|
|
32
|
+
export * as select from './select/index.js'
|
|
32
33
|
export * as replace from './replace/index.js'
|
|
33
34
|
export * as set from './set/index.js'
|
|
34
35
|
export * as setattribute from './setattribute/index.js'
|
|
@@ -37,16 +38,15 @@ export * as sorton from './sorton/index.js'
|
|
|
37
38
|
export * as split from './split/index.js'
|
|
38
39
|
export * as spread from './spread/index.js'
|
|
39
40
|
export * as toarray from './toarray/index.js'
|
|
41
|
+
export * as toggleclass from './toggleclass/index.js'
|
|
40
42
|
export * as toboolean from './toboolean/index.js'
|
|
41
43
|
export * as toelement from './toelement/index.js'
|
|
42
|
-
export * as toggleclass from './toggleclass/index.js'
|
|
43
44
|
export * as tonodelist from './tonodelist/index.js'
|
|
44
|
-
export * as tonull from './tonull/index.js'
|
|
45
|
-
export * as select from './select/index.js'
|
|
46
45
|
export * as tonumber from './tonumber/index.js'
|
|
47
46
|
export * as torecord from './torecord/index.js'
|
|
47
|
+
export * as tonull from './tonull/index.js'
|
|
48
48
|
export * as toref from './toref/index.js'
|
|
49
49
|
export * as tostring from './tostring/index.js'
|
|
50
|
-
export * as totext from './totext/index.js'
|
|
51
50
|
export * as transformselected from './transformselected/index.js'
|
|
51
|
+
export * as totext from './totext/index.js'
|
|
52
52
|
export * as trim from './trim/index.js'
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
export * as add from './add/index.js'
|
|
2
1
|
export * as addclass from './addclass/index.js'
|
|
3
2
|
export * as and from './and/index.js'
|
|
3
|
+
export * as add from './add/index.js'
|
|
4
4
|
export * as append from './append/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
8
|
export * as deleteproperties from './deleteproperties/index.js'
|
|
9
|
-
export * as equals from './equals/index.js'
|
|
10
9
|
export * as getattribute from './getattribute/index.js'
|
|
10
|
+
export * as equals from './equals/index.js'
|
|
11
11
|
export * as getproperties from './getproperties/index.js'
|
|
12
12
|
export * as getproperty from './getproperty/index.js'
|
|
13
13
|
export * as hjparse from './hjparse/index.js'
|
|
14
14
|
export * as hjstringify from './hjstringify/index.js'
|
|
15
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'
|
|
18
17
|
export * as length from './length/index.js'
|
|
19
18
|
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
22
|
export * as or from './or/index.js'
|
|
@@ -29,6 +29,7 @@ export * as recordtoarray from './recordtoarray/index.js'
|
|
|
29
29
|
export * as removeattribute from './removeattribute/index.js'
|
|
30
30
|
export * as removeclass from './removeclass/index.js'
|
|
31
31
|
export * as renameproperty from './renameproperty/index.js'
|
|
32
|
+
export * as select from './select/index.js'
|
|
32
33
|
export * as replace from './replace/index.js'
|
|
33
34
|
export * as set from './set/index.js'
|
|
34
35
|
export * as setattribute from './setattribute/index.js'
|
|
@@ -37,16 +38,15 @@ export * as sorton from './sorton/index.js'
|
|
|
37
38
|
export * as split from './split/index.js'
|
|
38
39
|
export * as spread from './spread/index.js'
|
|
39
40
|
export * as toarray from './toarray/index.js'
|
|
41
|
+
export * as toggleclass from './toggleclass/index.js'
|
|
40
42
|
export * as toboolean from './toboolean/index.js'
|
|
41
43
|
export * as toelement from './toelement/index.js'
|
|
42
|
-
export * as toggleclass from './toggleclass/index.js'
|
|
43
44
|
export * as tonodelist from './tonodelist/index.js'
|
|
44
|
-
export * as tonull from './tonull/index.js'
|
|
45
|
-
export * as select from './select/index.js'
|
|
46
45
|
export * as tonumber from './tonumber/index.js'
|
|
47
46
|
export * as torecord from './torecord/index.js'
|
|
47
|
+
export * as tonull from './tonull/index.js'
|
|
48
48
|
export * as toref from './toref/index.js'
|
|
49
49
|
export * as tostring from './tostring/index.js'
|
|
50
|
-
export * as totext from './totext/index.js'
|
|
51
50
|
export * as transformselected from './transformselected/index.js'
|
|
51
|
+
export * as totext from './totext/index.js'
|
|
52
52
|
export * as trim from './trim/index.js'
|
package/agnostic/html/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as deepSelect from './deep-select/index.js'
|
|
2
|
-
export * as getPositionInsideParent from './get-position-inside-parent/index.js'
|
|
3
2
|
export * as getNodeAncestors from './get-node-ancestors/index.js'
|
|
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
6
|
export * as placeholders from './placeholders/index.js'
|
package/agnostic/html/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as deepSelect from './deep-select/index.js'
|
|
2
|
-
export * as getPositionInsideParent from './get-position-inside-parent/index.js'
|
|
3
2
|
export * as getNodeAncestors from './get-node-ancestors/index.js'
|
|
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
6
|
export * as placeholders from './placeholders/index.js'
|
package/agnostic/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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
|
-
export * as arrays from './arrays/index.js'
|
|
4
4
|
export * as css from './css/index.js'
|
|
5
|
-
export * as errors from './errors/index.js'
|
|
6
5
|
export * as html from './html/index.js'
|
|
6
|
+
export * as errors from './errors/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'
|
|
@@ -12,6 +12,6 @@ export * as random from './random/index.js'
|
|
|
12
12
|
export * as regexps from './regexps/index.js'
|
|
13
13
|
export * as sanitization from './sanitization/index.js'
|
|
14
14
|
export * as strings from './strings/index.js'
|
|
15
|
+
export * as subtitles from './subtitles/index.js'
|
|
15
16
|
export * as time from './time/index.js'
|
|
16
17
|
export * as typescript from './typescript/index.js'
|
|
17
|
-
export * as subtitles from './subtitles/index.js'
|
package/agnostic/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
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
|
-
export * as arrays from './arrays/index.js'
|
|
4
4
|
export * as css from './css/index.js'
|
|
5
|
-
export * as errors from './errors/index.js'
|
|
6
5
|
export * as html from './html/index.js'
|
|
6
|
+
export * as errors from './errors/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'
|
|
@@ -12,6 +12,6 @@ export * as random from './random/index.js'
|
|
|
12
12
|
export * as regexps from './regexps/index.js'
|
|
13
13
|
export * as sanitization from './sanitization/index.js'
|
|
14
14
|
export * as strings from './strings/index.js'
|
|
15
|
+
export * as subtitles from './subtitles/index.js'
|
|
15
16
|
export * as time from './time/index.js'
|
|
16
17
|
export * as typescript from './typescript/index.js'
|
|
17
|
-
export * as subtitles from './subtitles/index.js'
|
package/agnostic/misc/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export * as dataSize from './data-size/index.js'
|
|
|
6
6
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
7
7
|
export * as isNullish from './is-nullish/index.js'
|
|
8
8
|
export * as logs from './logs/index.js'
|
|
9
|
+
export * as crossenv from './crossenv/index.js'
|
|
9
10
|
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
10
11
|
export * as normalizeExtension from './normalize-extension/index.js'
|
|
11
|
-
export * as crossenv from './crossenv/index.js'
|
|
12
12
|
export * as outcome from './outcome/index.js'
|
package/agnostic/misc/index.js
CHANGED
|
@@ -6,7 +6,7 @@ export * as dataSize from './data-size/index.js'
|
|
|
6
6
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
7
7
|
export * as isNullish from './is-nullish/index.js'
|
|
8
8
|
export * as logs from './logs/index.js'
|
|
9
|
+
export * as crossenv from './crossenv/index.js'
|
|
9
10
|
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
10
11
|
export * as normalizeExtension from './normalize-extension/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
2
|
export * as approximateRational from './approximate-rational/index.js'
|
|
3
|
-
export * as clamp from './clamp/index.js'
|
|
4
3
|
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
4
|
+
export * as clamp from './clamp/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 clamp from './clamp/index.js'
|
|
4
3
|
export * as geometricProgressions from './geometric-progressions/index.js'
|
|
4
|
+
export * as clamp from './clamp/index.js'
|
|
5
5
|
export * as interpolate from './interpolate/index.js'
|
|
6
6
|
export * as round from './round/index.js'
|
|
@@ -5,5 +5,5 @@ export * as isObject from './is-object/index.js'
|
|
|
5
5
|
export * as isRecord from './is-record/index.js'
|
|
6
6
|
export * as recordFormat from './record-format/index.js'
|
|
7
7
|
export * as recordMap from './record-map/index.js'
|
|
8
|
-
export * as validation from './validation/index.js'
|
|
9
8
|
export * as sortKeys from './sort-keys/index.js'
|
|
9
|
+
export * as validation from './validation/index.js'
|
|
@@ -5,5 +5,5 @@ export * as isObject from './is-object/index.js'
|
|
|
5
5
|
export * as isRecord from './is-record/index.js'
|
|
6
6
|
export * as recordFormat from './record-format/index.js'
|
|
7
7
|
export * as recordMap from './record-map/index.js'
|
|
8
|
-
export * as validation from './validation/index.js'
|
|
9
8
|
export * as sortKeys from './sort-keys/index.js'
|
|
9
|
+
export * as validation from './validation/index.js'
|
|
@@ -2,7 +2,7 @@ export * as charCodes from './char-codes/index.js'
|
|
|
2
2
|
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
|
-
export * as splitTrim from './split-trim/index.js'
|
|
6
5
|
export * as replaceAll from './replace-all/index.js'
|
|
6
|
+
export * as splitTrim from './split-trim/index.js'
|
|
7
7
|
export * as toAlphanum from './to-alphanum/index.js'
|
|
8
8
|
export * as trim from './trim/index.js'
|
|
@@ -2,7 +2,7 @@ export * as charCodes from './char-codes/index.js'
|
|
|
2
2
|
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
|
-
export * as splitTrim from './split-trim/index.js'
|
|
6
5
|
export * as replaceAll from './replace-all/index.js'
|
|
6
|
+
export * as splitTrim from './split-trim/index.js'
|
|
7
7
|
export * as toAlphanum from './to-alphanum/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
|
-
export * as wait from './wait/index.js'
|
|
4
3
|
export * as transitions from './transitions/index.js'
|
|
4
|
+
export * as wait from './wait/index.js'
|
|
5
5
|
export * as timeout from './timeout/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
|
-
export * as wait from './wait/index.js'
|
|
4
3
|
export * as transitions from './transitions/index.js'
|
|
4
|
+
export * as wait from './wait/index.js'
|
|
5
5
|
export * as timeout from './timeout/index.js'
|
|
@@ -1,36 +1,43 @@
|
|
|
1
1
|
import { type FunctionComponent } from 'react';
|
|
2
2
|
import type { WithClassName } from '../utils/types.js';
|
|
3
3
|
/**
|
|
4
|
-
* Describes the contract a dynamically imported UI module must satisfy.
|
|
5
|
-
*
|
|
4
|
+
* Describes the contract a dynamically imported UI module must satisfy. Only `init`
|
|
5
|
+
* is required; every member present is validated at runtime after the import resolves.
|
|
6
6
|
*
|
|
7
|
-
* @property init - Called once after the module loads. Receives the current
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
7
|
+
* @property init - Called once after the module loads. Receives the current `props`
|
|
8
|
+
* and must return the root `Element` that will be appended to the host `<div>`.
|
|
9
|
+
* **The element is not in the document yet**, so measuring it or reaching its
|
|
10
|
+
* ancestors belongs in `postInit`, not here. Throwing is caught and surfaced as an
|
|
11
|
+
* error state.
|
|
12
|
+
* @property postInit - Optional. Called once, right after the element returned by
|
|
13
|
+
* `init` has been appended. First point at which the module holds an attached
|
|
14
|
+
* element: layout can be measured and ancestors reached.
|
|
15
|
+
* @property update - Optional. Called when the `props` object changes identity,
|
|
16
|
+
* once the module is live. Compared by reference, not by value — a consumer passing
|
|
17
|
+
* an inline object gets one call per render, one passing a stable reference gets one
|
|
18
|
+
* per real change.
|
|
19
|
+
* @property destroy - Optional. Called when the component unmounts or `src` changes.
|
|
20
|
+
* Receives the `Element` previously returned by `init`. Use it to tear down event
|
|
21
|
+
* listeners, timers, or third-party instances.
|
|
15
22
|
* @property css - Optional array of raw CSS strings scoped automatically to
|
|
16
23
|
* the host element via `.<publicClassName>#<id> { … }` and injected as
|
|
17
24
|
* `<style>` elements.
|
|
18
25
|
*/
|
|
19
26
|
type ModuleData = {
|
|
20
27
|
init: (props: Record<string, unknown>) => Element;
|
|
21
|
-
|
|
28
|
+
postInit?: (target: Element, props: Record<string, unknown>) => void;
|
|
22
29
|
update?: (target: Element, props: Record<string, unknown>) => void;
|
|
30
|
+
destroy?: (target: Element) => void;
|
|
23
31
|
css?: string[];
|
|
24
32
|
};
|
|
25
33
|
/**
|
|
26
34
|
* Props for the {@link UIModule} component.
|
|
27
35
|
*
|
|
28
36
|
* @property src - URL of the ES module to import dynamically. The module must
|
|
29
|
-
* satisfy the {@link ModuleData} interface — `init`
|
|
30
|
-
* `
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* module's `init` call and, on subsequent changes, to `update` (if exported).
|
|
37
|
+
* satisfy the {@link ModuleData} interface — only `init` is required. When
|
|
38
|
+
* `undefined`, nothing is loaded and the component stays in the `--no-module` state.
|
|
39
|
+
* @property props - Arbitrary key-value object forwarded verbatim to `init`, then to
|
|
40
|
+
* `postInit`, then to `update` whenever the object's identity changes.
|
|
34
41
|
* @property onIdGenerated - Called once on mount with the instance's generated
|
|
35
42
|
* `id`. The id never changes afterwards, so this fires exactly once.
|
|
36
43
|
* @property onIsLoadingChanged - Called after the loading state changed, with
|
|
@@ -55,8 +62,14 @@ export type Props = WithClassName<{
|
|
|
55
62
|
* and appends that element to its own root `<div>`.
|
|
56
63
|
*
|
|
57
64
|
* The imported module is expected to conform to the {@link ModuleData} interface.
|
|
58
|
-
*
|
|
59
|
-
* transitions the component into the `--error` state and logs to
|
|
65
|
+
* A missing `init`, a member of the wrong type, or an `init` not returning an
|
|
66
|
+
* `Element` transitions the component into the `--error` state and logs to
|
|
67
|
+
* `console.error`.
|
|
68
|
+
*
|
|
69
|
+
* ### Lifecycle
|
|
70
|
+
* `init(props)` builds the element, **detached**. It is appended, then `postInit`
|
|
71
|
+
* runs on it attached. `update` follows each change of the `props` object's
|
|
72
|
+
* identity, and `destroy` runs on unmount or when `src` changes.
|
|
60
73
|
*
|
|
61
74
|
* ### CSS modifiers
|
|
62
75
|
* Reflecting the current load lifecycle:
|
|
@@ -13,8 +13,14 @@ import cssModule from './styles.module.css';
|
|
|
13
13
|
* and appends that element to its own root `<div>`.
|
|
14
14
|
*
|
|
15
15
|
* The imported module is expected to conform to the {@link ModuleData} interface.
|
|
16
|
-
*
|
|
17
|
-
* transitions the component into the `--error` state and logs to
|
|
16
|
+
* A missing `init`, a member of the wrong type, or an `init` not returning an
|
|
17
|
+
* `Element` transitions the component into the `--error` state and logs to
|
|
18
|
+
* `console.error`.
|
|
19
|
+
*
|
|
20
|
+
* ### Lifecycle
|
|
21
|
+
* `init(props)` builds the element, **detached**. It is appended, then `postInit`
|
|
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.
|
|
18
24
|
*
|
|
19
25
|
* ### CSS modifiers
|
|
20
26
|
* Reflecting the current load lifecycle:
|
|
@@ -45,10 +51,16 @@ export const UIModule = ({ src, props, onIdGenerated, onIsLoadingChanged, onLoad
|
|
|
45
51
|
// What the teardown needs, held outside state so the load effect can depend on
|
|
46
52
|
// `src` alone and still destroy whatever is actually live at cleanup time.
|
|
47
53
|
const liveInstanceRef = useRef(null);
|
|
54
|
+
// The load effect depends on `src` alone, so the props it closes over are those of
|
|
55
|
+
// the render it ran on. This is what `init` and `postInit` read instead.
|
|
56
|
+
const propsRef = useRef(props);
|
|
48
57
|
// State dispatch
|
|
49
58
|
useChangeDispatch(isLoading, onIsLoadingChanged);
|
|
50
59
|
useChangeDispatch(loadedModule, onLoadedModuleChanged);
|
|
51
60
|
useChangeDispatch(moduleTarget, onModuleTargetChanged);
|
|
61
|
+
// Fx. no dep. - keep the latest props reachable from the effects that run outside
|
|
62
|
+
// their own render, declared first so they read this render's value and not the last
|
|
63
|
+
useEffect(() => { propsRef.current = props; });
|
|
52
64
|
// Fx. no dep. - report the generated id, which never changes afterwards
|
|
53
65
|
useEffect(() => { onIdGenerated?.(id); }, []);
|
|
54
66
|
// Fx. dep. `src` - import, validate and initialize the module
|
|
@@ -63,8 +75,10 @@ export const UIModule = ({ src, props, onIdGenerated, onIsLoadingChanged, onLoad
|
|
|
63
75
|
return setLoadedModule(new Error('Not a module'));
|
|
64
76
|
if (!('init' in data) || typeof data.init !== 'function')
|
|
65
77
|
return setLoadedModule(new Error('Module exported member `init` must be a function'));
|
|
66
|
-
if (
|
|
78
|
+
if ('destroy' in data && typeof data.destroy !== 'function')
|
|
67
79
|
return setLoadedModule(new Error('Module exported member `destroy` must be a function'));
|
|
80
|
+
if ('postInit' in data && typeof data.postInit !== 'function')
|
|
81
|
+
return setLoadedModule(new Error('Module exported member `postInit` must be a function'));
|
|
68
82
|
if ('css' in data) {
|
|
69
83
|
if (!Array.isArray(data.css))
|
|
70
84
|
return setLoadedModule(new Error('Module exported member `css` must be an array of strings'));
|
|
@@ -77,7 +91,7 @@ export const UIModule = ({ src, props, onIdGenerated, onIsLoadingChanged, onLoad
|
|
|
77
91
|
const module = data;
|
|
78
92
|
setLoadedModule(module);
|
|
79
93
|
try {
|
|
80
|
-
const target = module.init(
|
|
94
|
+
const target = module.init(propsRef.current ?? {});
|
|
81
95
|
if (!(target instanceof Element))
|
|
82
96
|
return setLoadedModule(new Error('Module exported function `init` must return an Element'));
|
|
83
97
|
liveInstanceRef.current = { module, target };
|
|
@@ -99,7 +113,7 @@ export const UIModule = ({ src, props, onIdGenerated, onIsLoadingChanged, onLoad
|
|
|
99
113
|
const liveInstance = liveInstanceRef.current;
|
|
100
114
|
if (liveInstance === null)
|
|
101
115
|
return;
|
|
102
|
-
liveInstance.module.destroy(liveInstance.target);
|
|
116
|
+
liveInstance.module.destroy?.(liveInstance.target);
|
|
103
117
|
liveInstanceRef.current = null;
|
|
104
118
|
};
|
|
105
119
|
}, [src]);
|
|
@@ -109,14 +123,26 @@ export const UIModule = ({ src, props, onIdGenerated, onIsLoadingChanged, onLoad
|
|
|
109
123
|
if (loadedModule instanceof Error)
|
|
110
124
|
console.error(loadedModule);
|
|
111
125
|
}, [loadedModule]);
|
|
112
|
-
// Fx. dep. `moduleTarget` - append the element the module built
|
|
126
|
+
// Fx. dep. `moduleTarget` - append the element the module built, then hand it back
|
|
127
|
+
// attached. `init` ran on a detached node, so this is the first point a module can
|
|
128
|
+
// measure its own box or reach an ancestor.
|
|
113
129
|
useEffect(() => {
|
|
114
130
|
if (moduleTarget === null)
|
|
115
131
|
return;
|
|
116
132
|
if (rootRef.current === null)
|
|
117
133
|
return;
|
|
118
134
|
rootRef.current.appendChild(moduleTarget);
|
|
135
|
+
liveInstanceRef.current?.module.postInit?.(moduleTarget, propsRef.current ?? {});
|
|
119
136
|
}, [moduleTarget]);
|
|
137
|
+
// Fx. dep. `props` - hand a props change to a module that is already live. Compared
|
|
138
|
+
// by reference: the component knows nothing of the values, so it leaves the call to
|
|
139
|
+
// the consumer's reference discipline and the module's own reading of what changed.
|
|
140
|
+
useEffect(() => {
|
|
141
|
+
const liveInstance = liveInstanceRef.current;
|
|
142
|
+
if (liveInstance === null)
|
|
143
|
+
return;
|
|
144
|
+
liveInstance.module.update?.(liveInstance.target, props ?? {});
|
|
145
|
+
}, [props]);
|
|
120
146
|
// Rendering
|
|
121
147
|
const c = clss(publicClassName, { cssModule });
|
|
122
148
|
const hasErrored = loadedModule instanceof Error;
|
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 shadowRoot from './ShadowRoot/index.js'
|
|
23
22
|
export * as subtitles from './Subtitles/index.js'
|
|
23
|
+
export * as shadowRoot from './ShadowRoot/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 shadowRoot from './ShadowRoot/index.js'
|
|
23
22
|
export * as subtitles from './Subtitles/index.js'
|
|
23
|
+
export * as shadowRoot from './ShadowRoot/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,9 +1,9 @@
|
|
|
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'
|
|
4
5
|
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
5
6
|
export * as getPermissions from './get-permissions/index.js'
|
|
6
|
-
export * as getMetadata from './get-metadata/index.js'
|
|
7
7
|
export * as move from './move/index.js'
|
|
8
8
|
export * as remove from './remove/index.js'
|
|
9
9
|
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
|
@@ -1,9 +1,9 @@
|
|
|
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'
|
|
4
5
|
export * as generateSignedUrl from './generate-signed-url/index.js'
|
|
5
6
|
export * as getPermissions from './get-permissions/index.js'
|
|
6
|
-
export * as getMetadata from './get-metadata/index.js'
|
|
7
7
|
export * as move from './move/index.js'
|
|
8
8
|
export * as remove from './remove/index.js'
|
|
9
9
|
export * as revokeSignedUrls from './revoke-signed-urls/index.js'
|
package/node/files/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * as getSize from './get-size/index.js'
|
|
2
|
-
export * as isInDirectory from './is-in-directory/index.js'
|
|
3
2
|
export * as readWrite from './read-write/index.js'
|
|
3
|
+
export * as isInDirectory from './is-in-directory/index.js'
|
|
4
4
|
export * as subpaths from './subpaths/index.js'
|
package/node/files/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * as getSize from './get-size/index.js'
|
|
2
|
-
export * as isInDirectory from './is-in-directory/index.js'
|
|
3
2
|
export * as readWrite from './read-write/index.js'
|
|
3
|
+
export * as isInDirectory from './is-in-directory/index.js'
|
|
4
4
|
export * as subpaths from './subpaths/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
|
-
export * as exists from './exists/index.js'
|
|
3
2
|
export * as download from './download/index.js'
|
|
3
|
+
export * as exists from './exists/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
5
|
export * as remove from './remove/index.js'
|
|
6
6
|
export * as stat from './stat/index.js'
|
package/node/ftps/file/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
|
-
export * as exists from './exists/index.js'
|
|
3
2
|
export * as download from './download/index.js'
|
|
3
|
+
export * as exists from './exists/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
5
|
export * as remove from './remove/index.js'
|
|
6
6
|
export * as stat from './stat/index.js'
|
package/node/ftps/index.d.ts
CHANGED
package/node/ftps/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as blur from './blur/index.js'
|
|
2
|
-
export * as extend from './extend/index.js'
|
|
3
2
|
export * as brighten from './brighten/index.js'
|
|
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
6
|
export * as flip from './flip/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as blur from './blur/index.js'
|
|
2
|
-
export * as extend from './extend/index.js'
|
|
3
2
|
export * as brighten from './brighten/index.js'
|
|
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
6
|
export * as flip from './flip/index.js'
|
package/node/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as awsS3 from './@aws-s3/index.js'
|
|
2
2
|
export * as designEdito from './@design-edito/index.js'
|
|
3
3
|
export * as express from './@express/index.js'
|
|
4
|
-
export * as cloudStorage from './cloud-storage/index.js'
|
|
5
4
|
export * as googleCloud from './@google-cloud/index.js'
|
|
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'
|
|
8
8
|
export * as ftps from './ftps/index.js'
|
package/node/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as awsS3 from './@aws-s3/index.js'
|
|
2
2
|
export * as designEdito from './@design-edito/index.js'
|
|
3
3
|
export * as express from './@express/index.js'
|
|
4
|
-
export * as cloudStorage from './cloud-storage/index.js'
|
|
5
4
|
export * as googleCloud from './@google-cloud/index.js'
|
|
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'
|
|
8
8
|
export * as ftps from './ftps/index.js'
|