@design-edito/tools 0.4.19 → 0.4.21
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/css/index.d.ts +1 -1
- package/agnostic/css/index.js +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +12 -12
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +12 -12
- package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +4 -4
- package/agnostic/html/hyper-json/smart-tags/isolated/index.js +4 -4
- package/agnostic/html/index.d.ts +4 -4
- package/agnostic/html/index.js +4 -4
- package/agnostic/index.d.ts +1 -1
- package/agnostic/index.js +1 -1
- package/agnostic/misc/index.d.ts +1 -1
- package/agnostic/misc/index.js +1 -1
- package/agnostic/misc/logs/index.d.ts +1 -1
- package/agnostic/misc/logs/index.js +1 -1
- package/agnostic/objects/index.d.ts +1 -1
- package/agnostic/objects/index.js +1 -1
- package/agnostic/optim/index.d.ts +1 -1
- package/agnostic/optim/index.js +1 -1
- package/agnostic/strings/index.d.ts +2 -2
- package/agnostic/strings/index.js +2 -2
- package/agnostic/time/index.d.ts +2 -2
- package/agnostic/time/index.js +2 -2
- package/components/Button/index.d.ts +27 -0
- package/components/Button/index.js +20 -0
- package/components/Button/styles.module.css +0 -0
- package/components/Input/index.d.ts +33 -0
- package/components/Input/index.js +30 -0
- package/components/Input/styles.module.css +0 -0
- package/components/JsonEditor/index.d.ts +59 -0
- package/components/JsonEditor/index.js +223 -0
- package/components/JsonEditor/styles.module.css +0 -0
- package/components/Select/index.d.ts +34 -0
- package/components/Select/index.js +30 -0
- package/components/Select/styles.module.css +0 -0
- package/components/Textarea/index.d.ts +33 -0
- package/components/Textarea/index.js +30 -0
- package/components/Textarea/styles.module.css +0 -0
- package/components/index.d.ts +6 -1
- package/components/index.js +6 -1
- package/components/public-classnames.d.ts +5 -0
- package/components/public-classnames.js +5 -0
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/node/cloud-storage/operations/index.d.ts +1 -1
- package/node/cloud-storage/operations/index.js +1 -1
- package/node/ftps/directory/index.d.ts +1 -1
- package/node/ftps/directory/index.js +1 -1
- package/node/ftps/file/index.d.ts +1 -1
- package/node/ftps/file/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 +2 -2
- package/node/index.js +2 -2
- package/package.json +36 -1
package/agnostic/css/index.d.ts
CHANGED
|
@@ -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'
|
package/agnostic/css/index.js
CHANGED
|
@@ -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,52 +1,52 @@
|
|
|
1
1
|
export * as add from './add/index.js'
|
|
2
2
|
export * as and from './and/index.js'
|
|
3
|
-
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'
|
|
7
6
|
export * as clone from './clone/index.js'
|
|
8
7
|
export * as deleteproperties from './deleteproperties/index.js'
|
|
9
8
|
export * as equals from './equals/index.js'
|
|
9
|
+
export * as addclass from './addclass/index.js'
|
|
10
10
|
export * as getattribute from './getattribute/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 if from './if/index.js'
|
|
15
15
|
export * as hjstringify from './hjstringify/index.js'
|
|
16
|
-
export * as join from './join/index.js'
|
|
17
16
|
export * as initialize from './initialize/index.js'
|
|
17
|
+
export * as join from './join/index.js'
|
|
18
18
|
export * as length from './length/index.js'
|
|
19
19
|
export * as map from './map/index.js'
|
|
20
20
|
export * as notrailing from './notrailing/index.js'
|
|
21
|
-
export * as or from './or/index.js'
|
|
22
21
|
export * as negate from './negate/index.js'
|
|
23
22
|
export * as pickrandom from './pickrandom/index.js'
|
|
23
|
+
export * as or from './or/index.js'
|
|
24
|
+
export * as populate from './populate/index.js'
|
|
24
25
|
export * as print from './print/index.js'
|
|
25
|
-
export * as push from './push/index.js'
|
|
26
26
|
export * as pusheach from './pusheach/index.js'
|
|
27
|
+
export * as push from './push/index.js'
|
|
27
28
|
export * as recordtoarray from './recordtoarray/index.js'
|
|
29
|
+
export * as removeattribute from './removeattribute/index.js'
|
|
28
30
|
export * as removeclass from './removeclass/index.js'
|
|
29
31
|
export * as renameproperty from './renameproperty/index.js'
|
|
30
|
-
export * as replace from './replace/index.js'
|
|
31
32
|
export * as select from './select/index.js'
|
|
32
|
-
export * as removeattribute from './removeattribute/index.js'
|
|
33
33
|
export * as set from './set/index.js'
|
|
34
|
-
export * as
|
|
35
|
-
export * as sorton from './sorton/index.js'
|
|
34
|
+
export * as replace from './replace/index.js'
|
|
36
35
|
export * as setproperty from './setproperty/index.js'
|
|
37
|
-
export * as
|
|
36
|
+
export * as sorton from './sorton/index.js'
|
|
38
37
|
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
40
|
export * as toboolean from './toboolean/index.js'
|
|
42
41
|
export * as toelement from './toelement/index.js'
|
|
43
42
|
export * as toggleclass from './toggleclass/index.js'
|
|
44
|
-
export * as
|
|
43
|
+
export * as setattribute from './setattribute/index.js'
|
|
45
44
|
export * as tonull from './tonull/index.js'
|
|
45
|
+
export * as tonodelist from './tonodelist/index.js'
|
|
46
46
|
export * as tonumber from './tonumber/index.js'
|
|
47
|
-
export * as toref from './toref/index.js'
|
|
48
47
|
export * as torecord from './torecord/index.js'
|
|
48
|
+
export * as toref from './toref/index.js'
|
|
49
49
|
export * as totext from './totext/index.js'
|
|
50
|
+
export * as tostring from './tostring/index.js'
|
|
50
51
|
export * as transformselected from './transformselected/index.js'
|
|
51
52
|
export * as trim from './trim/index.js'
|
|
52
|
-
export * as tostring from './tostring/index.js'
|
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
export * as add from './add/index.js'
|
|
2
2
|
export * as and from './and/index.js'
|
|
3
|
-
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'
|
|
7
6
|
export * as clone from './clone/index.js'
|
|
8
7
|
export * as deleteproperties from './deleteproperties/index.js'
|
|
9
8
|
export * as equals from './equals/index.js'
|
|
9
|
+
export * as addclass from './addclass/index.js'
|
|
10
10
|
export * as getattribute from './getattribute/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 if from './if/index.js'
|
|
15
15
|
export * as hjstringify from './hjstringify/index.js'
|
|
16
|
-
export * as join from './join/index.js'
|
|
17
16
|
export * as initialize from './initialize/index.js'
|
|
17
|
+
export * as join from './join/index.js'
|
|
18
18
|
export * as length from './length/index.js'
|
|
19
19
|
export * as map from './map/index.js'
|
|
20
20
|
export * as notrailing from './notrailing/index.js'
|
|
21
|
-
export * as or from './or/index.js'
|
|
22
21
|
export * as negate from './negate/index.js'
|
|
23
22
|
export * as pickrandom from './pickrandom/index.js'
|
|
23
|
+
export * as or from './or/index.js'
|
|
24
|
+
export * as populate from './populate/index.js'
|
|
24
25
|
export * as print from './print/index.js'
|
|
25
|
-
export * as push from './push/index.js'
|
|
26
26
|
export * as pusheach from './pusheach/index.js'
|
|
27
|
+
export * as push from './push/index.js'
|
|
27
28
|
export * as recordtoarray from './recordtoarray/index.js'
|
|
29
|
+
export * as removeattribute from './removeattribute/index.js'
|
|
28
30
|
export * as removeclass from './removeclass/index.js'
|
|
29
31
|
export * as renameproperty from './renameproperty/index.js'
|
|
30
|
-
export * as replace from './replace/index.js'
|
|
31
32
|
export * as select from './select/index.js'
|
|
32
|
-
export * as removeattribute from './removeattribute/index.js'
|
|
33
33
|
export * as set from './set/index.js'
|
|
34
|
-
export * as
|
|
35
|
-
export * as sorton from './sorton/index.js'
|
|
34
|
+
export * as replace from './replace/index.js'
|
|
36
35
|
export * as setproperty from './setproperty/index.js'
|
|
37
|
-
export * as
|
|
36
|
+
export * as sorton from './sorton/index.js'
|
|
38
37
|
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
40
|
export * as toboolean from './toboolean/index.js'
|
|
42
41
|
export * as toelement from './toelement/index.js'
|
|
43
42
|
export * as toggleclass from './toggleclass/index.js'
|
|
44
|
-
export * as
|
|
43
|
+
export * as setattribute from './setattribute/index.js'
|
|
45
44
|
export * as tonull from './tonull/index.js'
|
|
45
|
+
export * as tonodelist from './tonodelist/index.js'
|
|
46
46
|
export * as tonumber from './tonumber/index.js'
|
|
47
|
-
export * as toref from './toref/index.js'
|
|
48
47
|
export * as torecord from './torecord/index.js'
|
|
48
|
+
export * as toref from './toref/index.js'
|
|
49
49
|
export * as totext from './totext/index.js'
|
|
50
|
+
export * as tostring from './tostring/index.js'
|
|
50
51
|
export * as transformselected from './transformselected/index.js'
|
|
51
52
|
export * as trim from './trim/index.js'
|
|
52
|
-
export * as tostring from './tostring/index.js'
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
export * as any from './any/index.js'
|
|
1
2
|
export * as array from './array/index.js'
|
|
2
3
|
export * as boolean from './boolean/index.js'
|
|
3
|
-
export * as element from './element/index.js'
|
|
4
4
|
export * as get from './get/index.js'
|
|
5
|
-
export * as any from './any/index.js'
|
|
6
|
-
export * as nodelist from './nodelist/index.js'
|
|
7
5
|
export * as guess from './guess/index.js'
|
|
6
|
+
export * as element from './element/index.js'
|
|
7
|
+
export * as nodelist from './nodelist/index.js'
|
|
8
|
+
export * as number from './number/index.js'
|
|
8
9
|
export * as null from './null/index.js'
|
|
9
10
|
export * as record from './record/index.js'
|
|
10
11
|
export * as ref from './ref/index.js'
|
|
11
|
-
export * as number from './number/index.js'
|
|
12
12
|
export * as string from './string/index.js'
|
|
13
13
|
export * as text from './text/index.js'
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
export * as any from './any/index.js'
|
|
1
2
|
export * as array from './array/index.js'
|
|
2
3
|
export * as boolean from './boolean/index.js'
|
|
3
|
-
export * as element from './element/index.js'
|
|
4
4
|
export * as get from './get/index.js'
|
|
5
|
-
export * as any from './any/index.js'
|
|
6
|
-
export * as nodelist from './nodelist/index.js'
|
|
7
5
|
export * as guess from './guess/index.js'
|
|
6
|
+
export * as element from './element/index.js'
|
|
7
|
+
export * as nodelist from './nodelist/index.js'
|
|
8
|
+
export * as number from './number/index.js'
|
|
8
9
|
export * as null from './null/index.js'
|
|
9
10
|
export * as record from './record/index.js'
|
|
10
11
|
export * as ref from './ref/index.js'
|
|
11
|
-
export * as number from './number/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
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
export * as deepSelect from './deep-select/index.js'
|
|
1
2
|
export * as getNodeAncestors from './get-node-ancestors/index.js'
|
|
2
3
|
export * as getPositionInsideParent from './get-position-inside-parent/index.js'
|
|
3
|
-
export * as insertNode from './insert-node/index.js'
|
|
4
4
|
export * as hyperJson from './hyper-json/index.js'
|
|
5
|
-
export * as
|
|
5
|
+
export * as insertNode from './insert-node/index.js'
|
|
6
6
|
export * as replaceInElement from './replace-in-element/index.js'
|
|
7
|
-
export * as stringToNodes from './string-to-nodes/index.js'
|
|
8
7
|
export * as selectorToElement from './selector-to-element/index.js'
|
|
8
|
+
export * as placeholders from './placeholders/index.js'
|
|
9
|
+
export * as stringToNodes from './string-to-nodes/index.js'
|
|
9
10
|
export * as watchSelection from './watch-selection/index.js'
|
|
10
|
-
export * as deepSelect from './deep-select/index.js'
|
package/agnostic/html/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
export * as deepSelect from './deep-select/index.js'
|
|
1
2
|
export * as getNodeAncestors from './get-node-ancestors/index.js'
|
|
2
3
|
export * as getPositionInsideParent from './get-position-inside-parent/index.js'
|
|
3
|
-
export * as insertNode from './insert-node/index.js'
|
|
4
4
|
export * as hyperJson from './hyper-json/index.js'
|
|
5
|
-
export * as
|
|
5
|
+
export * as insertNode from './insert-node/index.js'
|
|
6
6
|
export * as replaceInElement from './replace-in-element/index.js'
|
|
7
|
-
export * as stringToNodes from './string-to-nodes/index.js'
|
|
8
7
|
export * as selectorToElement from './selector-to-element/index.js'
|
|
8
|
+
export * as placeholders from './placeholders/index.js'
|
|
9
|
+
export * as stringToNodes from './string-to-nodes/index.js'
|
|
9
10
|
export * as watchSelection from './watch-selection/index.js'
|
|
10
|
-
export * as deepSelect from './deep-select/index.js'
|
package/agnostic/index.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ export * as errors from './errors/index.js'
|
|
|
6
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
|
-
export * as objects from './objects/index.js'
|
|
10
9
|
export * as optim from './optim/index.js'
|
|
10
|
+
export * as objects from './objects/index.js'
|
|
11
11
|
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'
|
package/agnostic/index.js
CHANGED
|
@@ -6,8 +6,8 @@ export * as errors from './errors/index.js'
|
|
|
6
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
|
-
export * as objects from './objects/index.js'
|
|
10
9
|
export * as optim from './optim/index.js'
|
|
10
|
+
export * as objects from './objects/index.js'
|
|
11
11
|
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'
|
package/agnostic/misc/index.d.ts
CHANGED
|
@@ -7,6 +7,6 @@ export * as dataSize from './data-size/index.js'
|
|
|
7
7
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
8
8
|
export * as isNullish from './is-nullish/index.js'
|
|
9
9
|
export * as logs from './logs/index.js'
|
|
10
|
+
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
10
11
|
export * as normalizeExtension from './normalize-extension/index.js'
|
|
11
12
|
export * as outcome from './outcome/index.js'
|
|
12
|
-
export * as loremIpsum from './lorem-ipsum/index.js'
|
package/agnostic/misc/index.js
CHANGED
|
@@ -7,6 +7,6 @@ export * as dataSize from './data-size/index.js'
|
|
|
7
7
|
export * as isConstructorFunction from './is-constructor-function/index.js'
|
|
8
8
|
export * as isNullish from './is-nullish/index.js'
|
|
9
9
|
export * as logs from './logs/index.js'
|
|
10
|
+
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
10
11
|
export * as normalizeExtension from './normalize-extension/index.js'
|
|
11
12
|
export * as outcome from './outcome/index.js'
|
|
12
|
-
export * as loremIpsum from './lorem-ipsum/index.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as deepGetProperty from './deep-get-property/index.js'
|
|
2
2
|
export * as enums from './enums/index.js'
|
|
3
|
+
export * as flattenGetters from './flatten-getters/index.js'
|
|
3
4
|
export * as isObject from './is-object/index.js'
|
|
4
5
|
export * as isRecord from './is-record/index.js'
|
|
5
|
-
export * as flattenGetters from './flatten-getters/index.js'
|
|
6
6
|
export * as recordFormat from './record-format/index.js'
|
|
7
7
|
export * as recordMap from './record-map/index.js'
|
|
8
8
|
export * as sortKeys from './sort-keys/index.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * as deepGetProperty from './deep-get-property/index.js'
|
|
2
2
|
export * as enums from './enums/index.js'
|
|
3
|
+
export * as flattenGetters from './flatten-getters/index.js'
|
|
3
4
|
export * as isObject from './is-object/index.js'
|
|
4
5
|
export * as isRecord from './is-record/index.js'
|
|
5
|
-
export * as flattenGetters from './flatten-getters/index.js'
|
|
6
6
|
export * as recordFormat from './record-format/index.js'
|
|
7
7
|
export * as recordMap from './record-map/index.js'
|
|
8
8
|
export * as sortKeys from './sort-keys/index.js'
|
package/agnostic/optim/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
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
|
-
export * as parseTable from './parse-table/index.js'
|
|
5
4
|
export * as replaceAll from './replace-all/index.js'
|
|
5
|
+
export * as parseTable from './parse-table/index.js'
|
|
6
|
+
export * as splitTrim from './split-trim/index.js'
|
|
6
7
|
export * as toAlphanum from './to-alphanum/index.js'
|
|
7
8
|
export * as trim from './trim/index.js'
|
|
8
|
-
export * as splitTrim from './split-trim/index.js'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
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
|
-
export * as parseTable from './parse-table/index.js'
|
|
5
4
|
export * as replaceAll from './replace-all/index.js'
|
|
5
|
+
export * as parseTable from './parse-table/index.js'
|
|
6
|
+
export * as splitTrim from './split-trim/index.js'
|
|
6
7
|
export * as toAlphanum from './to-alphanum/index.js'
|
|
7
8
|
export * as trim from './trim/index.js'
|
|
8
|
-
export * as splitTrim from './split-trim/index.js'
|
package/agnostic/time/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as dates from './dates/index.js'
|
|
2
1
|
export * as duration from './duration/index.js'
|
|
3
|
-
export * as transitions from './transitions/index.js'
|
|
4
2
|
export * as timeout from './timeout/index.js'
|
|
3
|
+
export * as transitions from './transitions/index.js'
|
|
5
4
|
export * as wait from './wait/index.js'
|
|
5
|
+
export * as dates from './dates/index.js'
|
package/agnostic/time/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as dates from './dates/index.js'
|
|
2
1
|
export * as duration from './duration/index.js'
|
|
3
|
-
export * as transitions from './transitions/index.js'
|
|
4
2
|
export * as timeout from './timeout/index.js'
|
|
3
|
+
export * as transitions from './transitions/index.js'
|
|
5
4
|
export * as wait from './wait/index.js'
|
|
5
|
+
export * as dates from './dates/index.js'
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type FunctionComponent, type ButtonHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { WithClassName } from '../utils/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the {@link Button} component.
|
|
5
|
+
*
|
|
6
|
+
* Extends all native {@link ButtonHTMLAttributes} and {@link WithClassName}
|
|
7
|
+
* with optional label and error content.
|
|
8
|
+
*
|
|
9
|
+
* @property label - Content rendered as the button label.
|
|
10
|
+
* @property error - Content rendered to convey an error state associated with the button.
|
|
11
|
+
* @property className - Additional class name(s) applied to the root element.
|
|
12
|
+
*/
|
|
13
|
+
export type Props = ButtonHTMLAttributes<HTMLButtonElement> & WithClassName<{
|
|
14
|
+
label?: ReactNode;
|
|
15
|
+
error?: ReactNode;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Base button component.
|
|
19
|
+
*
|
|
20
|
+
* Renders a native `<button>` element with scoped class names applied.
|
|
21
|
+
* All standard button attributes are forwarded to the underlying element.
|
|
22
|
+
*
|
|
23
|
+
* @param props - Component properties.
|
|
24
|
+
* @see {@link Props}
|
|
25
|
+
* @returns A styled native button element.
|
|
26
|
+
*/
|
|
27
|
+
export declare const Button: FunctionComponent<Props>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { clss } from '../../agnostic/css/clss/index.js';
|
|
3
|
+
import { mergeClassNames } from '../utils/index.js';
|
|
4
|
+
import { button as publicClassName } from '../public-classnames.js';
|
|
5
|
+
import cssModule from './styles.module.css';
|
|
6
|
+
/**
|
|
7
|
+
* Base button component.
|
|
8
|
+
*
|
|
9
|
+
* Renders a native `<button>` element with scoped class names applied.
|
|
10
|
+
* All standard button attributes are forwarded to the underlying element.
|
|
11
|
+
*
|
|
12
|
+
* @param props - Component properties.
|
|
13
|
+
* @see {@link Props}
|
|
14
|
+
* @returns A styled native button element.
|
|
15
|
+
*/
|
|
16
|
+
export const Button = ({ label, error, className, ...rest }) => {
|
|
17
|
+
const c = clss(publicClassName, { cssModule });
|
|
18
|
+
const rootClss = mergeClassNames(c(null), className);
|
|
19
|
+
return _jsx("button", { ...rest, className: c(rootClss) });
|
|
20
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type FunctionComponent, type InputHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { WithClassName } from '../utils/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the {@link Input} component.
|
|
5
|
+
*
|
|
6
|
+
* Extends all native {@link InputHTMLAttributes} and {@link WithClassName}
|
|
7
|
+
* with optional label and error content.
|
|
8
|
+
*
|
|
9
|
+
* @property label - Content rendered as an associated `<label>`. When omitted, no label is rendered.
|
|
10
|
+
* @property error - Content rendered as an error message below the input. When omitted, no error is rendered.
|
|
11
|
+
* @property className - Additional class name(s) applied to the root element.
|
|
12
|
+
*/
|
|
13
|
+
export type Props = InputHTMLAttributes<HTMLInputElement> & WithClassName<{
|
|
14
|
+
label?: ReactNode;
|
|
15
|
+
error?: ReactNode;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Input field component with optional label and error message.
|
|
19
|
+
*
|
|
20
|
+
* Renders a native `<input>` element inside a wrapper, with a stable
|
|
21
|
+
* auto-generated `id` used to associate the label via `htmlFor`.
|
|
22
|
+
* All standard input attributes are forwarded to the underlying element.
|
|
23
|
+
*
|
|
24
|
+
* ### CSS elements
|
|
25
|
+
* - `label`
|
|
26
|
+
* - `input`
|
|
27
|
+
* - `error`
|
|
28
|
+
*
|
|
29
|
+
* @param props - Component properties.
|
|
30
|
+
* @see {@link Props}
|
|
31
|
+
* @returns A labelled input wrapper with optional error feedback.
|
|
32
|
+
*/
|
|
33
|
+
export declare const Input: FunctionComponent<Props>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { clss } from '../../agnostic/css/clss/index.js';
|
|
4
|
+
import { isNotFalsy } from '../../agnostic/booleans/is-falsy/index.js';
|
|
5
|
+
import { randomHash } from '../../agnostic/random/uuid/index.js';
|
|
6
|
+
import { input as publicClassName } from '../public-classnames.js';
|
|
7
|
+
import { mergeClassNames } from '../utils/index.js';
|
|
8
|
+
import cssModule from './styles.module.css';
|
|
9
|
+
/**
|
|
10
|
+
* Input field component with optional label and error message.
|
|
11
|
+
*
|
|
12
|
+
* Renders a native `<input>` element inside a wrapper, with a stable
|
|
13
|
+
* auto-generated `id` used to associate the label via `htmlFor`.
|
|
14
|
+
* All standard input attributes are forwarded to the underlying element.
|
|
15
|
+
*
|
|
16
|
+
* ### CSS elements
|
|
17
|
+
* - `label`
|
|
18
|
+
* - `input`
|
|
19
|
+
* - `error`
|
|
20
|
+
*
|
|
21
|
+
* @param props - Component properties.
|
|
22
|
+
* @see {@link Props}
|
|
23
|
+
* @returns A labelled input wrapper with optional error feedback.
|
|
24
|
+
*/
|
|
25
|
+
export const Input = ({ label, error, className, ...rest }) => {
|
|
26
|
+
const [id] = useState(`_${randomHash(12)}`);
|
|
27
|
+
const c = clss(publicClassName, { cssModule });
|
|
28
|
+
const rootClss = mergeClassNames(c(null), className);
|
|
29
|
+
return _jsxs("span", { className: rootClss, children: [isNotFalsy(label) && _jsx("label", { className: c('label'), htmlFor: id, children: label }), _jsx("input", { ...rest, className: c('input'), id: id }), isNotFalsy(error) && _jsx("span", { className: c('error'), children: error })] });
|
|
30
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type FunctionComponent } from 'react';
|
|
2
|
+
import { type ZodType, type core } from 'zod';
|
|
3
|
+
import type { WithClassName } from '../utils/types.js';
|
|
4
|
+
type JsonPrimitive = string | number | boolean | null;
|
|
5
|
+
type JsonValue = JsonPrimitive | JsonValue[] | {
|
|
6
|
+
[k: string]: JsonValue;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Props for the {@link JsonEditor} component.
|
|
10
|
+
*
|
|
11
|
+
* @property defaultValue - Initial JSON value rendered by the editor. Defaults to `null`.
|
|
12
|
+
* @property onChange - Called after any value change with the updated JSON value.
|
|
13
|
+
* @property onValidationError - Called when the updated value fails schema validation,
|
|
14
|
+
* with the list of Zod issues. Not called when no `schema` is provided.
|
|
15
|
+
* @property schema - Optional Zod schema used to validate the value after each change.
|
|
16
|
+
* When provided, validation runs after `onChange` is dispatched.
|
|
17
|
+
* @property className - Additional class name(s) applied to the root element.
|
|
18
|
+
*/
|
|
19
|
+
export type Props = WithClassName<{
|
|
20
|
+
defaultValue?: JsonValue;
|
|
21
|
+
onChange?: (val: JsonValue) => void;
|
|
22
|
+
onValidationError?: (issues: core.$ZodIssue[]) => void;
|
|
23
|
+
schema?: ZodType<JsonValue>;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Interactive JSON editor component.
|
|
27
|
+
*
|
|
28
|
+
* Renders a recursive value editor tree alongside a live JSON preview.
|
|
29
|
+
* Supports all JSON value types: strings, numbers, booleans, null, arrays,
|
|
30
|
+
* and records. Each node exposes a type selector and a type-appropriate input.
|
|
31
|
+
*
|
|
32
|
+
* When a `schema` is provided, the current value is validated against it after
|
|
33
|
+
* every change. Validation errors are reported through `onValidationError` and
|
|
34
|
+
* do not block editing.
|
|
35
|
+
*
|
|
36
|
+
* ### CSS elements
|
|
37
|
+
* - `value` — wraps each node in the editor tree; receives a type modifier
|
|
38
|
+
* matching the current value type (`string`, `number`, `boolean`, `null`, `array`, `record`).
|
|
39
|
+
* - `type` — the type selector control.
|
|
40
|
+
* - `string`, `number`, `boolean`, `null` — primitive value inputs.
|
|
41
|
+
* - `record` — record entry list.
|
|
42
|
+
* - `array` — array entry list items.
|
|
43
|
+
* - `prop-name` — key input for record entries.
|
|
44
|
+
* - `create-prop` — button to append a new entry to a record or array.
|
|
45
|
+
* - `delete-prop` — button to remove an existing entry.
|
|
46
|
+
* - `lift-prop` — button to move an array entry up.
|
|
47
|
+
* - `drop-prop` — button to move an array entry down.
|
|
48
|
+
*
|
|
49
|
+
* @param props - Component properties.
|
|
50
|
+
* @see {@link Props}
|
|
51
|
+
* @returns A recursive JSON value editor with a live serialized preview.
|
|
52
|
+
*/
|
|
53
|
+
export declare const JsonEditor: FunctionComponent<Props>;
|
|
54
|
+
export declare const ValueEditor: FunctionComponent<{
|
|
55
|
+
defaultValue?: JsonValue;
|
|
56
|
+
onChange?: (newValue: JsonValue) => void;
|
|
57
|
+
path?: Array<string | number>;
|
|
58
|
+
}>;
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { ZodError } from 'zod';
|
|
4
|
+
import { clss } from '../../agnostic/css/clss/index.js';
|
|
5
|
+
import { isNonNullObject } from '../../agnostic/objects/is-object/index.js';
|
|
6
|
+
import { randomHash } from '../../agnostic/random/uuid/index.js';
|
|
7
|
+
import { Input } from '../Input/index.js';
|
|
8
|
+
import { Select } from '../Select/index.js';
|
|
9
|
+
import { Textarea } from '../Textarea/index.js';
|
|
10
|
+
import { mergeClassNames } from '../utils/index.js';
|
|
11
|
+
import { jsonEditor as publicClassName } from '../public-classnames.js';
|
|
12
|
+
import cssModule from './styles.module.css';
|
|
13
|
+
/* Shared across all sub components */
|
|
14
|
+
const c = clss(publicClassName, { cssModule });
|
|
15
|
+
/**
|
|
16
|
+
* Interactive JSON editor component.
|
|
17
|
+
*
|
|
18
|
+
* Renders a recursive value editor tree alongside a live JSON preview.
|
|
19
|
+
* Supports all JSON value types: strings, numbers, booleans, null, arrays,
|
|
20
|
+
* and records. Each node exposes a type selector and a type-appropriate input.
|
|
21
|
+
*
|
|
22
|
+
* When a `schema` is provided, the current value is validated against it after
|
|
23
|
+
* every change. Validation errors are reported through `onValidationError` and
|
|
24
|
+
* do not block editing.
|
|
25
|
+
*
|
|
26
|
+
* ### CSS elements
|
|
27
|
+
* - `value` — wraps each node in the editor tree; receives a type modifier
|
|
28
|
+
* matching the current value type (`string`, `number`, `boolean`, `null`, `array`, `record`).
|
|
29
|
+
* - `type` — the type selector control.
|
|
30
|
+
* - `string`, `number`, `boolean`, `null` — primitive value inputs.
|
|
31
|
+
* - `record` — record entry list.
|
|
32
|
+
* - `array` — array entry list items.
|
|
33
|
+
* - `prop-name` — key input for record entries.
|
|
34
|
+
* - `create-prop` — button to append a new entry to a record or array.
|
|
35
|
+
* - `delete-prop` — button to remove an existing entry.
|
|
36
|
+
* - `lift-prop` — button to move an array entry up.
|
|
37
|
+
* - `drop-prop` — button to move an array entry down.
|
|
38
|
+
*
|
|
39
|
+
* @param props - Component properties.
|
|
40
|
+
* @see {@link Props}
|
|
41
|
+
* @returns A recursive JSON value editor with a live serialized preview.
|
|
42
|
+
*/
|
|
43
|
+
export const JsonEditor = ({ defaultValue = null, onChange, onValidationError, schema, className }) => {
|
|
44
|
+
const [value, setValue] = useState(defaultValue);
|
|
45
|
+
const setValueAndDispatch = (val) => {
|
|
46
|
+
setValue(val);
|
|
47
|
+
onChange?.(val);
|
|
48
|
+
try {
|
|
49
|
+
schema?.parse(val);
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
if (err instanceof ZodError) {
|
|
53
|
+
const { issues } = err;
|
|
54
|
+
onValidationError?.(issues);
|
|
55
|
+
}
|
|
56
|
+
else
|
|
57
|
+
throw err;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const rootClss = mergeClassNames(c(null, {}), className);
|
|
61
|
+
return _jsxs("div", { className: rootClss, children: [_jsx(ValueEditor, { defaultValue: defaultValue, onChange: val => setValueAndDispatch(val), path: [] }), _jsx("pre", { children: JSON.stringify(value, null, 2) })] });
|
|
62
|
+
};
|
|
63
|
+
/* * * * * * * * * * * * * * * * *
|
|
64
|
+
*
|
|
65
|
+
* Value
|
|
66
|
+
*
|
|
67
|
+
* * * * * * * * * * * * * * * * */
|
|
68
|
+
export const ValueEditor = ({ defaultValue = {}, onChange, path = [] }) => {
|
|
69
|
+
// State
|
|
70
|
+
const [value, setValue] = useState(defaultValue);
|
|
71
|
+
const setValueAndDispatch = (newValue) => {
|
|
72
|
+
setValue(newValue);
|
|
73
|
+
onChange?.(newValue);
|
|
74
|
+
};
|
|
75
|
+
// Handlers
|
|
76
|
+
const handleTypeSelectChange = e => {
|
|
77
|
+
const newType = e.target.value;
|
|
78
|
+
if (newType === 'string')
|
|
79
|
+
return setValueAndDispatch('');
|
|
80
|
+
if (newType === 'number')
|
|
81
|
+
return setValueAndDispatch(0);
|
|
82
|
+
if (newType === 'boolean')
|
|
83
|
+
return setValueAndDispatch(false);
|
|
84
|
+
if (newType === 'null')
|
|
85
|
+
return setValueAndDispatch(null);
|
|
86
|
+
if (newType === 'record')
|
|
87
|
+
return setValueAndDispatch({ a: 0, b: false });
|
|
88
|
+
if (newType === 'array')
|
|
89
|
+
return setValueAndDispatch([]);
|
|
90
|
+
};
|
|
91
|
+
const handleStringValueChange = e => setValueAndDispatch(e.target.value);
|
|
92
|
+
const handleNumberValueChange = e => setValueAndDispatch(parseFloat(e.target.value));
|
|
93
|
+
const handleBooleanValueChange = e => setValueAndDispatch(e.target.checked);
|
|
94
|
+
const handleRecordValueChange = e => setValueAndDispatch(e);
|
|
95
|
+
const handleArrayValueChange = e => setValueAndDispatch(e);
|
|
96
|
+
// Rendering
|
|
97
|
+
const valueEditorClss = c('value', {
|
|
98
|
+
string: typeof value === 'string',
|
|
99
|
+
number: typeof value === 'number',
|
|
100
|
+
boolean: typeof value === 'boolean',
|
|
101
|
+
null: value === null,
|
|
102
|
+
array: Array.isArray(value),
|
|
103
|
+
record: !Array.isArray(value) && isNonNullObject(value)
|
|
104
|
+
});
|
|
105
|
+
const pathStringDataAttr = (path ?? []).map(e => e.toString()).join('.');
|
|
106
|
+
return _jsxs("span", { className: valueEditorClss, "data-path": pathStringDataAttr, children: [_jsxs(Select, { className: c('type'), onChange: handleTypeSelectChange, children: [_jsx("option", { value: 'string', selected: typeof value === 'string', children: "string" }), _jsx("option", { value: 'number', selected: typeof value === 'number', children: "number" }), _jsx("option", { value: 'boolean', selected: typeof value === 'boolean', children: "boolean" }), _jsx("option", { value: 'null', selected: value === null, children: "null" }), _jsx("option", { value: 'record', selected: isNonNullObject(value) && !Array.isArray(value), children: "record" }), _jsx("option", { value: 'array', selected: Array.isArray(value), children: "array" })] }), typeof value === 'string' && _jsx(StringEditor, { type: 'textarea', defaultValue: value, onChange: handleStringValueChange }), typeof value === 'number' && _jsx(NumberEditor, { defaultValue: value, onChange: handleNumberValueChange }), typeof value === 'boolean' && _jsx(BooleanEditor, { defaultValue: value, onChange: handleBooleanValueChange }), value === null && _jsx(NullEditor, { defaultValue: value }), isNonNullObject(value) && !Array.isArray(value) && _jsx(RecordEditor, { defaultValue: value, onChange: handleRecordValueChange, path: path }), Array.isArray(value) && _jsx(ArrayEditor, { defaultValue: value, onChange: handleArrayValueChange, path: path })] });
|
|
107
|
+
};
|
|
108
|
+
/* * * * * * * * * * * * * * * * *
|
|
109
|
+
*
|
|
110
|
+
* String
|
|
111
|
+
*
|
|
112
|
+
* * * * * * * * * * * * * * * * */
|
|
113
|
+
const StringEditor = (props) => props.type === 'textarea'
|
|
114
|
+
? _jsx(Textarea, { className: c('string'), defaultValue: props.defaultValue ?? '', onChange: props.onChange })
|
|
115
|
+
: _jsx(Input, { type: 'text', className: c('string'), defaultValue: props.defaultValue ?? '', onChange: props.onChange });
|
|
116
|
+
/* * * * * * * * * * * * * * * * *
|
|
117
|
+
*
|
|
118
|
+
* Number
|
|
119
|
+
*
|
|
120
|
+
* * * * * * * * * * * * * * * * */
|
|
121
|
+
const NumberEditor = (props) => _jsx(Input, { className: c('number'), type: 'number', defaultValue: props.defaultValue ?? 0, onChange: props.onChange });
|
|
122
|
+
/* * * * * * * * * * * * * * * * *
|
|
123
|
+
*
|
|
124
|
+
* Boolean
|
|
125
|
+
*
|
|
126
|
+
* * * * * * * * * * * * * * * * */
|
|
127
|
+
const BooleanEditor = (props) => _jsx(Input, { className: c('boolean'), type: 'checkbox', defaultChecked: props.defaultValue ?? false, onChange: props.onChange });
|
|
128
|
+
/* * * * * * * * * * * * * * * * *
|
|
129
|
+
*
|
|
130
|
+
* Null
|
|
131
|
+
*
|
|
132
|
+
* * * * * * * * * * * * * * * * */
|
|
133
|
+
const NullEditor = () => _jsx("span", { className: c('null'), children: "null" });
|
|
134
|
+
/* * * * * * * * * * * * * * * * *
|
|
135
|
+
*
|
|
136
|
+
* Record
|
|
137
|
+
*
|
|
138
|
+
* * * * * * * * * * * * * * * * */
|
|
139
|
+
const RecordEditor = ({ defaultValue = {}, onChange, path }) => {
|
|
140
|
+
const [value, setValue] = useState(new Map(Object
|
|
141
|
+
.entries(defaultValue)
|
|
142
|
+
.map(([key, val]) => [key, {
|
|
143
|
+
id: randomHash(8),
|
|
144
|
+
val
|
|
145
|
+
}])));
|
|
146
|
+
const setValueAndDispatch = (newValue) => {
|
|
147
|
+
setValue(newValue);
|
|
148
|
+
onChange?.(Array.from(newValue).reduce((acc, [key, { val }]) => ({
|
|
149
|
+
...acc,
|
|
150
|
+
[key]: val
|
|
151
|
+
}), {}));
|
|
152
|
+
};
|
|
153
|
+
const handleDeleteProp = (key) => {
|
|
154
|
+
const newValue = new Map(value);
|
|
155
|
+
newValue.delete(key);
|
|
156
|
+
setValueAndDispatch(newValue);
|
|
157
|
+
};
|
|
158
|
+
const handleCreateProp = () => {
|
|
159
|
+
let propName = '';
|
|
160
|
+
while (value.get(propName) !== undefined) {
|
|
161
|
+
propName = randomHash(4);
|
|
162
|
+
}
|
|
163
|
+
const newValue = new Map(value);
|
|
164
|
+
newValue.set(propName, { id: randomHash(8), val: null });
|
|
165
|
+
setValueAndDispatch(newValue);
|
|
166
|
+
};
|
|
167
|
+
const handleRenameProp = (oldName) => e => {
|
|
168
|
+
const newName = e.target.value;
|
|
169
|
+
const newValue = new Map(Array
|
|
170
|
+
.from(value)
|
|
171
|
+
.map(([key, { id, val }]) => [
|
|
172
|
+
key === oldName ? newName : key,
|
|
173
|
+
{ id, val }
|
|
174
|
+
]));
|
|
175
|
+
setValueAndDispatch(newValue);
|
|
176
|
+
};
|
|
177
|
+
const handleChangeProp = (changedKey) => (newValue) => {
|
|
178
|
+
const newVal = new Map(Array.from(value).map(([key, { id, val }]) => [key, {
|
|
179
|
+
id,
|
|
180
|
+
val: key === changedKey ? newValue : val
|
|
181
|
+
}]));
|
|
182
|
+
setValueAndDispatch(newVal);
|
|
183
|
+
};
|
|
184
|
+
return _jsxs("ul", { className: c('record'), children: [Array.from(value).map(([key, { id, val }]) => _jsxs("li", { "data-key": key, "data-path": [...(path ?? []), key].join('.'), children: [_jsx("button", { className: c('delete-prop'), onClick: () => handleDeleteProp(key), children: "x" }), _jsx("span", { className: c('prop-name'), children: _jsx(StringEditor, { type: 'input', defaultValue: key, onChange: handleRenameProp(key) }) }), _jsx(ValueEditor, { defaultValue: val, onChange: handleChangeProp(key), path: [...(path ?? []), key] })] }, id)), _jsx("button", { className: c('create-prop'), onClick: handleCreateProp, children: "+" })] });
|
|
185
|
+
};
|
|
186
|
+
/* * * * * * * * * * * * * * * * *
|
|
187
|
+
*
|
|
188
|
+
* Array
|
|
189
|
+
*
|
|
190
|
+
* * * * * * * * * * * * * * * * */
|
|
191
|
+
const ArrayEditor = ({ defaultValue = [], onChange, path }) => {
|
|
192
|
+
const [value, setValue] = useState(new Map(defaultValue.map(val => [randomHash(8), val])));
|
|
193
|
+
const setValueAndDispatch = (newValue) => {
|
|
194
|
+
setValue(newValue);
|
|
195
|
+
onChange?.(Array.from(newValue).map(([, val]) => val));
|
|
196
|
+
};
|
|
197
|
+
const handleDeleteProp = (pos) => setValueAndDispatch(new Map([
|
|
198
|
+
...Array.from(value).slice(0, pos),
|
|
199
|
+
...Array.from(value).slice(pos + 1)
|
|
200
|
+
]));
|
|
201
|
+
const handleCreateProp = () => {
|
|
202
|
+
const newValue = new Map([...Array.from(value), [randomHash(8), null]]);
|
|
203
|
+
setValueAndDispatch(newValue);
|
|
204
|
+
};
|
|
205
|
+
const handleChangeProp = (pos) => (newValue) => setValueAndDispatch(new Map([
|
|
206
|
+
...Array.from(value).slice(0, pos),
|
|
207
|
+
[Array.from(value)[pos]?.[0] ?? randomHash(8), newValue],
|
|
208
|
+
...Array.from(value).slice(pos + 1)
|
|
209
|
+
]));
|
|
210
|
+
const handleLiftProp = (pos) => setValueAndDispatch(new Map([
|
|
211
|
+
...Array.from(value).slice(0, pos - 1),
|
|
212
|
+
Array.from(value)[pos],
|
|
213
|
+
Array.from(value)[pos - 1],
|
|
214
|
+
...Array.from(value).slice(pos + 1)
|
|
215
|
+
].filter(e => e !== undefined)));
|
|
216
|
+
const handleDropProp = (pos) => setValueAndDispatch(new Map([
|
|
217
|
+
...Array.from(value).slice(0, pos),
|
|
218
|
+
Array.from(value)[pos + 1],
|
|
219
|
+
Array.from(value)[pos],
|
|
220
|
+
...Array.from(value).slice(pos + 2)
|
|
221
|
+
].filter(e => e !== undefined)));
|
|
222
|
+
return _jsxs("ol", { children: [Array.from(value).map(([id, val], pos) => _jsxs("li", { className: c('array'), "data-path": [...(path ?? []), pos].join('.'), children: [_jsx("button", { className: c('delete-prop'), onClick: () => handleDeleteProp(pos), children: "x" }), _jsx("button", { className: c('lift-prop'), disabled: pos === 0, onClick: () => handleLiftProp(pos), children: "\u2191" }), _jsx("button", { className: c('drop-prop'), disabled: pos === value.size - 1, onClick: () => handleDropProp(pos), children: "\u2193" }), _jsx(ValueEditor, { defaultValue: val, onChange: handleChangeProp(pos), path: [...(path ?? []), pos] })] }, id)), _jsx("button", { className: c('create-prop'), onClick: handleCreateProp, children: "+" })] });
|
|
223
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type FunctionComponent, type SelectHTMLAttributes, type ReactNode, type PropsWithChildren } from 'react';
|
|
2
|
+
import type { WithClassName } from '../utils/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the {@link Select} component.
|
|
5
|
+
*
|
|
6
|
+
* Extends all native {@link SelectHTMLAttributes} and {@link WithClassName}
|
|
7
|
+
* with optional label, error content, and option children.
|
|
8
|
+
*
|
|
9
|
+
* @property label - Content rendered as an associated `<label>`. When omitted, no label is rendered.
|
|
10
|
+
* @property error - Content rendered as an error message below the select. When omitted, no error is rendered.
|
|
11
|
+
* @property className - Additional class name(s) applied to the root element.
|
|
12
|
+
* @property children - `<option>` or `<optgroup>` elements rendered inside the select.
|
|
13
|
+
*/
|
|
14
|
+
export type Props = SelectHTMLAttributes<HTMLSelectElement> & PropsWithChildren<WithClassName<{
|
|
15
|
+
label?: ReactNode;
|
|
16
|
+
error?: ReactNode;
|
|
17
|
+
}>>;
|
|
18
|
+
/**
|
|
19
|
+
* Select field component with optional label and error message.
|
|
20
|
+
*
|
|
21
|
+
* Renders a native `<select>` element inside a wrapper, with a stable
|
|
22
|
+
* auto-generated `id` used to associate the label via `htmlFor`.
|
|
23
|
+
* All standard select attributes are forwarded to the underlying element.
|
|
24
|
+
*
|
|
25
|
+
* ### CSS elements
|
|
26
|
+
* - `label`
|
|
27
|
+
* - `select`
|
|
28
|
+
* - `error`
|
|
29
|
+
*
|
|
30
|
+
* @param props - Component properties.
|
|
31
|
+
* @see {@link Props}
|
|
32
|
+
* @returns A labelled select wrapper with optional error feedback.
|
|
33
|
+
*/
|
|
34
|
+
export declare const Select: FunctionComponent<Props>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { clss } from '../../agnostic/css/clss/index.js';
|
|
4
|
+
import { isNotFalsy } from '../../agnostic/booleans/is-falsy/index.js';
|
|
5
|
+
import { randomHash } from '../../agnostic/random/uuid/index.js';
|
|
6
|
+
import { select as publicClassName } from '../public-classnames.js';
|
|
7
|
+
import { mergeClassNames } from '../utils/index.js';
|
|
8
|
+
import cssModule from './styles.module.css';
|
|
9
|
+
/**
|
|
10
|
+
* Select field component with optional label and error message.
|
|
11
|
+
*
|
|
12
|
+
* Renders a native `<select>` element inside a wrapper, with a stable
|
|
13
|
+
* auto-generated `id` used to associate the label via `htmlFor`.
|
|
14
|
+
* All standard select attributes are forwarded to the underlying element.
|
|
15
|
+
*
|
|
16
|
+
* ### CSS elements
|
|
17
|
+
* - `label`
|
|
18
|
+
* - `select`
|
|
19
|
+
* - `error`
|
|
20
|
+
*
|
|
21
|
+
* @param props - Component properties.
|
|
22
|
+
* @see {@link Props}
|
|
23
|
+
* @returns A labelled select wrapper with optional error feedback.
|
|
24
|
+
*/
|
|
25
|
+
export const Select = ({ label, error, className, children, ...rest }) => {
|
|
26
|
+
const [id] = useState(`_${randomHash(12)}`);
|
|
27
|
+
const c = clss(publicClassName, { cssModule });
|
|
28
|
+
const rootClss = mergeClassNames(c(null), className);
|
|
29
|
+
return _jsxs("span", { className: rootClss, children: [isNotFalsy(label) && _jsx("label", { className: c('label'), htmlFor: id, children: label }), _jsx("select", { ...rest, className: c('select'), id: id, children: children }), isNotFalsy(error) && _jsx("span", { className: c('error'), children: error })] });
|
|
30
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type FunctionComponent, type TextareaHTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import type { WithClassName } from '../utils/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the {@link Textarea} component.
|
|
5
|
+
*
|
|
6
|
+
* Extends all native {@link TextareaHTMLAttributes} and {@link WithClassName}
|
|
7
|
+
* with optional label and error content.
|
|
8
|
+
*
|
|
9
|
+
* @property label - Content rendered as an associated `<label>`. When omitted, no label is rendered.
|
|
10
|
+
* @property error - Content rendered as an error message below the textarea. When omitted, no error is rendered.
|
|
11
|
+
* @property className - Additional class name(s) applied to the root element.
|
|
12
|
+
*/
|
|
13
|
+
export type Props = TextareaHTMLAttributes<HTMLTextAreaElement> & WithClassName<{
|
|
14
|
+
label?: ReactNode;
|
|
15
|
+
error?: ReactNode;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Textarea field component with optional label and error message.
|
|
19
|
+
*
|
|
20
|
+
* Renders a native `<textarea>` element inside a wrapper, with a stable
|
|
21
|
+
* auto-generated `id` used to associate the label via `htmlFor`.
|
|
22
|
+
* All standard textarea attributes are forwarded to the underlying element.
|
|
23
|
+
*
|
|
24
|
+
* ### CSS elements
|
|
25
|
+
* - `label`
|
|
26
|
+
* - `textarea`
|
|
27
|
+
* - `error`
|
|
28
|
+
*
|
|
29
|
+
* @param props - Component properties.
|
|
30
|
+
* @see {@link Props}
|
|
31
|
+
* @returns A labelled textarea wrapper with optional error feedback.
|
|
32
|
+
*/
|
|
33
|
+
export declare const Textarea: FunctionComponent<Props>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { clss } from '../../agnostic/css/clss/index.js';
|
|
4
|
+
import { isNotFalsy } from '../../agnostic/booleans/is-falsy/index.js';
|
|
5
|
+
import { randomHash } from '../../agnostic/random/uuid/index.js';
|
|
6
|
+
import { textarea as publicClassName } from '../public-classnames.js';
|
|
7
|
+
import { mergeClassNames } from '../utils/index.js';
|
|
8
|
+
import cssModule from './styles.module.css';
|
|
9
|
+
/**
|
|
10
|
+
* Textarea field component with optional label and error message.
|
|
11
|
+
*
|
|
12
|
+
* Renders a native `<textarea>` element inside a wrapper, with a stable
|
|
13
|
+
* auto-generated `id` used to associate the label via `htmlFor`.
|
|
14
|
+
* All standard textarea attributes are forwarded to the underlying element.
|
|
15
|
+
*
|
|
16
|
+
* ### CSS elements
|
|
17
|
+
* - `label`
|
|
18
|
+
* - `textarea`
|
|
19
|
+
* - `error`
|
|
20
|
+
*
|
|
21
|
+
* @param props - Component properties.
|
|
22
|
+
* @see {@link Props}
|
|
23
|
+
* @returns A labelled textarea wrapper with optional error feedback.
|
|
24
|
+
*/
|
|
25
|
+
export const Textarea = ({ label, error, className, ...rest }) => {
|
|
26
|
+
const [id] = useState(`_${randomHash(12)}`);
|
|
27
|
+
const c = clss(publicClassName, { cssModule });
|
|
28
|
+
const rootClss = mergeClassNames(c(null), className);
|
|
29
|
+
return _jsxs("span", { className: rootClss, children: [isNotFalsy(label) && _jsx("label", { className: c('label'), htmlFor: id, children: label }), _jsx("textarea", { ...rest, className: c('textarea'), id: id }), isNotFalsy(error) && _jsx("span", { className: c('error'), children: error })] });
|
|
30
|
+
};
|
|
File without changes
|
package/components/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * as beforeAfter from './BeforeAfter/index.js'
|
|
2
|
+
export * as button from './Button/index.js'
|
|
2
3
|
export * as clippable from './Clippable/index.js'
|
|
3
4
|
export * as disclaimer from './Disclaimer/index.js'
|
|
4
5
|
export * as drawer from './Drawer/index.js'
|
|
@@ -6,15 +7,19 @@ export * as eventListener from './EventListener/index.js'
|
|
|
6
7
|
export * as gallery from './Gallery/index.js'
|
|
7
8
|
export * as iframe from './Iframe/index.js'
|
|
8
9
|
export * as image from './Image/index.js'
|
|
10
|
+
export * as input from './Input/index.js'
|
|
9
11
|
export * as intersectionObserver from './IntersectionObserver/index.js'
|
|
12
|
+
export * as jsonEditor from './JsonEditor/index.js'
|
|
10
13
|
export * as overlayer from './Overlayer/index.js'
|
|
11
14
|
export * as paginator from './Paginator/index.js'
|
|
12
15
|
export * as resizeObserver from './ResizeObserver/index.js'
|
|
13
16
|
export * as scrllgngn from './Scrllgngn/index.js'
|
|
14
17
|
export * as scrollListener from './ScrollListener/index.js'
|
|
18
|
+
export * as select from './Select/index.js'
|
|
15
19
|
export * as sequencer from './Sequencer/index.js'
|
|
16
|
-
export * as subtitles from './Subtitles/index.js'
|
|
17
20
|
export * as shadowRoot from './ShadowRoot/index.js'
|
|
21
|
+
export * as subtitles from './Subtitles/index.js'
|
|
22
|
+
export * as textarea from './Textarea/index.js'
|
|
18
23
|
export * as theatre from './Theatre/index.js'
|
|
19
24
|
export * as uiModule from './UIModule/index.js'
|
|
20
25
|
export * as video from './Video/index.js'
|
package/components/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * as beforeAfter from './BeforeAfter/index.js'
|
|
2
|
+
export * as button from './Button/index.js'
|
|
2
3
|
export * as clippable from './Clippable/index.js'
|
|
3
4
|
export * as disclaimer from './Disclaimer/index.js'
|
|
4
5
|
export * as drawer from './Drawer/index.js'
|
|
@@ -6,15 +7,19 @@ export * as eventListener from './EventListener/index.js'
|
|
|
6
7
|
export * as gallery from './Gallery/index.js'
|
|
7
8
|
export * as iframe from './Iframe/index.js'
|
|
8
9
|
export * as image from './Image/index.js'
|
|
10
|
+
export * as input from './Input/index.js'
|
|
9
11
|
export * as intersectionObserver from './IntersectionObserver/index.js'
|
|
12
|
+
export * as jsonEditor from './JsonEditor/index.js'
|
|
10
13
|
export * as overlayer from './Overlayer/index.js'
|
|
11
14
|
export * as paginator from './Paginator/index.js'
|
|
12
15
|
export * as resizeObserver from './ResizeObserver/index.js'
|
|
13
16
|
export * as scrllgngn from './Scrllgngn/index.js'
|
|
14
17
|
export * as scrollListener from './ScrollListener/index.js'
|
|
18
|
+
export * as select from './Select/index.js'
|
|
15
19
|
export * as sequencer from './Sequencer/index.js'
|
|
16
|
-
export * as subtitles from './Subtitles/index.js'
|
|
17
20
|
export * as shadowRoot from './ShadowRoot/index.js'
|
|
21
|
+
export * as subtitles from './Subtitles/index.js'
|
|
22
|
+
export * as textarea from './Textarea/index.js'
|
|
18
23
|
export * as theatre from './Theatre/index.js'
|
|
19
24
|
export * as uiModule from './UIModule/index.js'
|
|
20
25
|
export * as video from './Video/index.js'
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const beforeAfter = "lm-before-after";
|
|
2
|
+
export declare const button = "lm-button";
|
|
2
3
|
export declare const clippable = "lm-clippable";
|
|
3
4
|
export declare const disclaimer = "lm-disclaimer";
|
|
4
5
|
export declare const drawer = "lm-drawer";
|
|
@@ -6,15 +7,19 @@ export declare const eventListener = "lm-event-listener";
|
|
|
6
7
|
export declare const gallery = "lm-gallery";
|
|
7
8
|
export declare const iframe = "lm-iframe";
|
|
8
9
|
export declare const image = "lm-image";
|
|
10
|
+
export declare const input = "lm-input";
|
|
9
11
|
export declare const intersectionObserver = "lm-intersection-observer";
|
|
12
|
+
export declare const jsonEditor = "lm-json-editor";
|
|
10
13
|
export declare const overlayer = "lm-overlayer";
|
|
11
14
|
export declare const paginator = "lm-paginator";
|
|
12
15
|
export declare const resizeObserver = "lm-resize-observer";
|
|
13
16
|
export declare const scrllgngn = "lm-scrllgngn";
|
|
14
17
|
export declare const scrollListener = "lm-scroll-listener";
|
|
18
|
+
export declare const select = "lm-select";
|
|
15
19
|
export declare const sequencer = "lm-sequencer";
|
|
16
20
|
export declare const shadowRoot = "lm-shadow-root";
|
|
17
21
|
export declare const subtitles = "lm-subtitles";
|
|
22
|
+
export declare const textarea = "lm-textarea";
|
|
18
23
|
export declare const theatre = "lm-theatre";
|
|
19
24
|
export declare const uiModule = "lm-ui-module";
|
|
20
25
|
export declare const video = "lm-video";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export const beforeAfter = 'lm-before-after';
|
|
2
|
+
export const button = 'lm-button';
|
|
2
3
|
export const clippable = 'lm-clippable';
|
|
3
4
|
export const disclaimer = 'lm-disclaimer';
|
|
4
5
|
export const drawer = 'lm-drawer';
|
|
@@ -6,15 +7,19 @@ export const eventListener = 'lm-event-listener';
|
|
|
6
7
|
export const gallery = 'lm-gallery';
|
|
7
8
|
export const iframe = 'lm-iframe';
|
|
8
9
|
export const image = 'lm-image';
|
|
10
|
+
export const input = 'lm-input';
|
|
9
11
|
export const intersectionObserver = 'lm-intersection-observer';
|
|
12
|
+
export const jsonEditor = 'lm-json-editor';
|
|
10
13
|
export const overlayer = 'lm-overlayer';
|
|
11
14
|
export const paginator = 'lm-paginator';
|
|
12
15
|
export const resizeObserver = 'lm-resize-observer';
|
|
13
16
|
export const scrllgngn = 'lm-scrllgngn';
|
|
14
17
|
export const scrollListener = 'lm-scroll-listener';
|
|
18
|
+
export const select = 'lm-select';
|
|
15
19
|
export const sequencer = 'lm-sequencer';
|
|
16
20
|
export const shadowRoot = 'lm-shadow-root';
|
|
17
21
|
export const subtitles = 'lm-subtitles';
|
|
22
|
+
export const textarea = 'lm-textarea';
|
|
18
23
|
export const theatre = 'lm-theatre';
|
|
19
24
|
export const uiModule = 'lm-ui-module';
|
|
20
25
|
export const video = 'lm-video';
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as copyDir from './copy-dir/index.js'
|
|
2
1
|
export * as copyFile from './copy-file/index.js'
|
|
2
|
+
export * as copyDir from './copy-dir/index.js'
|
|
3
3
|
export * as downloadFile from './download-file/index.js'
|
|
4
4
|
export * as existsFile from './exists-file/index.js'
|
|
5
5
|
export * as listDir from './list-dir/index.js'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * as copyDir from './copy-dir/index.js'
|
|
2
1
|
export * as copyFile from './copy-file/index.js'
|
|
2
|
+
export * as copyDir from './copy-dir/index.js'
|
|
3
3
|
export * as downloadFile from './download-file/index.js'
|
|
4
4
|
export * as existsFile from './exists-file/index.js'
|
|
5
5
|
export * as listDir from './list-dir/index.js'
|
|
@@ -3,5 +3,5 @@ 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
5
|
export * as remove from './remove/index.js'
|
|
6
|
-
export * as upload from './upload/index.js'
|
|
7
6
|
export * as stat from './stat/index.js'
|
|
7
|
+
export * as upload from './upload/index.js'
|
package/node/ftps/file/index.js
CHANGED
|
@@ -3,5 +3,5 @@ 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
5
|
export * as remove from './remove/index.js'
|
|
6
|
-
export * as upload from './upload/index.js'
|
|
7
6
|
export * as stat from './stat/index.js'
|
|
7
|
+
export * as upload from './upload/index.js'
|
|
@@ -11,5 +11,5 @@ export * as lighten from './lighten/index.js'
|
|
|
11
11
|
export * as normalize from './normalize/index.js'
|
|
12
12
|
export * as overlay from './overlay/index.js'
|
|
13
13
|
export * as resize from './resize/index.js'
|
|
14
|
-
export * as rotate from './rotate/index.js'
|
|
15
14
|
export * as saturate from './saturate/index.js'
|
|
15
|
+
export * as rotate from './rotate/index.js'
|
|
@@ -11,5 +11,5 @@ export * as lighten from './lighten/index.js'
|
|
|
11
11
|
export * as normalize from './normalize/index.js'
|
|
12
12
|
export * as overlay from './overlay/index.js'
|
|
13
13
|
export * as resize from './resize/index.js'
|
|
14
|
-
export * as rotate from './rotate/index.js'
|
|
15
14
|
export * as saturate from './saturate/index.js'
|
|
15
|
+
export * as rotate from './rotate/index.js'
|
package/node/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export * as awsS3 from './@aws-s3/index.js'
|
|
2
|
-
export * as express from './@express/index.js'
|
|
3
2
|
export * as designEdito from './@design-edito/index.js'
|
|
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'
|
|
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'
|
|
9
9
|
export * as images from './images/index.js'
|
|
10
|
-
export * as process from './process/index.js'
|
|
11
10
|
export * as sftp from './sftp/index.js'
|
|
11
|
+
export * as process from './process/index.js'
|
package/node/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export * as awsS3 from './@aws-s3/index.js'
|
|
2
|
-
export * as express from './@express/index.js'
|
|
3
2
|
export * as designEdito from './@design-edito/index.js'
|
|
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'
|
|
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'
|
|
9
9
|
export * as images from './images/index.js'
|
|
10
|
-
export * as process from './process/index.js'
|
|
11
10
|
export * as sftp from './sftp/index.js'
|
|
11
|
+
export * as process from './process/index.js'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design-edito/tools",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.21",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Maxime Fabas",
|
|
6
6
|
"license": "ISC",
|
|
@@ -1360,6 +1360,13 @@
|
|
|
1360
1360
|
"./components/BeforeAfter/index.js": {
|
|
1361
1361
|
"import": "./components/BeforeAfter/index.js"
|
|
1362
1362
|
},
|
|
1363
|
+
"./components/Button": {
|
|
1364
|
+
"import": "./components/Button/index.js",
|
|
1365
|
+
"types": "./components/Button/index.d.ts"
|
|
1366
|
+
},
|
|
1367
|
+
"./components/Button/index.js": {
|
|
1368
|
+
"import": "./components/Button/index.js"
|
|
1369
|
+
},
|
|
1363
1370
|
"./components/Clippable": {
|
|
1364
1371
|
"import": "./components/Clippable/index.js",
|
|
1365
1372
|
"types": "./components/Clippable/index.d.ts"
|
|
@@ -1412,6 +1419,13 @@
|
|
|
1412
1419
|
"./components/index.js": {
|
|
1413
1420
|
"import": "./components/index.js"
|
|
1414
1421
|
},
|
|
1422
|
+
"./components/Input": {
|
|
1423
|
+
"import": "./components/Input/index.js",
|
|
1424
|
+
"types": "./components/Input/index.d.ts"
|
|
1425
|
+
},
|
|
1426
|
+
"./components/Input/index.js": {
|
|
1427
|
+
"import": "./components/Input/index.js"
|
|
1428
|
+
},
|
|
1415
1429
|
"./components/IntersectionObserver": {
|
|
1416
1430
|
"import": "./components/IntersectionObserver/index.js",
|
|
1417
1431
|
"types": "./components/IntersectionObserver/index.d.ts"
|
|
@@ -1419,6 +1433,13 @@
|
|
|
1419
1433
|
"./components/IntersectionObserver/index.js": {
|
|
1420
1434
|
"import": "./components/IntersectionObserver/index.js"
|
|
1421
1435
|
},
|
|
1436
|
+
"./components/JsonEditor": {
|
|
1437
|
+
"import": "./components/JsonEditor/index.js",
|
|
1438
|
+
"types": "./components/JsonEditor/index.d.ts"
|
|
1439
|
+
},
|
|
1440
|
+
"./components/JsonEditor/index.js": {
|
|
1441
|
+
"import": "./components/JsonEditor/index.js"
|
|
1442
|
+
},
|
|
1422
1443
|
"./components/Overlayer": {
|
|
1423
1444
|
"import": "./components/Overlayer/index.js",
|
|
1424
1445
|
"types": "./components/Overlayer/index.d.ts"
|
|
@@ -1454,6 +1475,13 @@
|
|
|
1454
1475
|
"./components/ScrollListener/index.js": {
|
|
1455
1476
|
"import": "./components/ScrollListener/index.js"
|
|
1456
1477
|
},
|
|
1478
|
+
"./components/Select": {
|
|
1479
|
+
"import": "./components/Select/index.js",
|
|
1480
|
+
"types": "./components/Select/index.d.ts"
|
|
1481
|
+
},
|
|
1482
|
+
"./components/Select/index.js": {
|
|
1483
|
+
"import": "./components/Select/index.js"
|
|
1484
|
+
},
|
|
1457
1485
|
"./components/Sequencer": {
|
|
1458
1486
|
"import": "./components/Sequencer/index.js",
|
|
1459
1487
|
"types": "./components/Sequencer/index.d.ts"
|
|
@@ -1479,6 +1507,13 @@
|
|
|
1479
1507
|
"import": "./components/Subtitles/types.js",
|
|
1480
1508
|
"types": "./components/Subtitles/types.d.ts"
|
|
1481
1509
|
},
|
|
1510
|
+
"./components/Textarea": {
|
|
1511
|
+
"import": "./components/Textarea/index.js",
|
|
1512
|
+
"types": "./components/Textarea/index.d.ts"
|
|
1513
|
+
},
|
|
1514
|
+
"./components/Textarea/index.js": {
|
|
1515
|
+
"import": "./components/Textarea/index.js"
|
|
1516
|
+
},
|
|
1482
1517
|
"./components/Theatre": {
|
|
1483
1518
|
"import": "./components/Theatre/index.js",
|
|
1484
1519
|
"types": "./components/Theatre/index.d.ts"
|