@ilokesto/utilinent 0.0.19 → 0.0.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.
@@ -1,9 +1,2 @@
1
- import { ComponentPropsWithRef } from "react";
2
- import type { ForProps } from "../types";
3
- type ForType = {
4
- <T extends Array<unknown>>(props: ForProps<T>): React.ReactNode;
5
- } & {
6
- [K in keyof JSX.IntrinsicElements]: <T extends Array<unknown>>(props: ForProps<T> & ComponentPropsWithRef<K>) => React.ReactNode;
7
- };
1
+ import type { ForType } from "../types/for";
8
2
  export declare const For: ForType;
9
- export {};
@@ -9,4 +9,8 @@ const renderForTag = (tag) => ({ each, children, fallback = null, ...props }) =>
9
9
  const content = each.map(children);
10
10
  return createElement(tag, props, content);
11
11
  };
12
- export const For = Object.assign(BaseFor, Object.fromEntries(htmlTags.map(tag => [tag, renderForTag(tag)])));
12
+ const tagEntries = htmlTags.reduce((acc, tag) => {
13
+ acc[tag] = renderForTag(tag);
14
+ return acc;
15
+ }, {});
16
+ export const For = Object.assign(BaseFor, tagEntries);
@@ -1,9 +1,2 @@
1
- import { ComponentPropsWithRef } from "react";
2
- import { RepeatProps } from "../types";
3
- type RepeatType = {
4
- (props: RepeatProps): React.ReactNode;
5
- } & {
6
- [K in keyof JSX.IntrinsicElements]: (props: RepeatProps & ComponentPropsWithRef<K>) => React.ReactNode;
7
- };
1
+ import type { RepeatType } from "../types/repeat";
8
2
  export declare const Repeat: RepeatType;
9
- export {};
@@ -14,4 +14,8 @@ const renderForTag = (tag) => ({ times, children, fallback = null, ...props }) =
14
14
  const content = Array.from({ length: times }, (_, i) => children(i));
15
15
  return createElement(tag, props, content);
16
16
  };
17
- export const Repeat = Object.assign(BaseRepeat, Object.fromEntries(htmlTags.map(tag => [tag, renderForTag(tag)])));
17
+ const tagEntries = htmlTags.reduce((acc, tag) => {
18
+ acc[tag] = renderForTag(tag);
19
+ return acc;
20
+ }, {});
21
+ export const Repeat = Object.assign(BaseRepeat, tagEntries);
@@ -1,49 +1,2 @@
1
- import { ComponentPropsWithRef } from "react";
2
- import { ShowProps, ShowPropsArray } from "../types";
3
- type ShowTagHelper<K extends keyof JSX.IntrinsicElements> = {
4
- <T extends unknown>(props: ShowProps<T> & ComponentPropsWithRef<K>): React.ReactNode;
5
- <T extends unknown[]>(props: ShowPropsArray<T> & ComponentPropsWithRef<K>): React.ReactNode;
6
- };
7
- interface ShowType {
8
- <T extends unknown>(props: ShowProps<T>): React.ReactNode;
9
- <T extends unknown[]>(props: ShowPropsArray<T>): React.ReactNode;
10
- div: ShowTagHelper<"div">;
11
- span: ShowTagHelper<"span">;
12
- h1: ShowTagHelper<"h1">;
13
- h2: ShowTagHelper<"h2">;
14
- h3: ShowTagHelper<"h3">;
15
- h4: ShowTagHelper<"h4">;
16
- h5: ShowTagHelper<"h5">;
17
- h6: ShowTagHelper<"h6">;
18
- p: ShowTagHelper<"p">;
19
- a: ShowTagHelper<"a">;
20
- button: ShowTagHelper<"button">;
21
- section: ShowTagHelper<"section">;
22
- article: ShowTagHelper<"article">;
23
- header: ShowTagHelper<"header">;
24
- footer: ShowTagHelper<"footer">;
25
- nav: ShowTagHelper<"nav">;
26
- main: ShowTagHelper<"main">;
27
- aside: ShowTagHelper<"aside">;
28
- ul: ShowTagHelper<"ul">;
29
- ol: ShowTagHelper<"ol">;
30
- li: ShowTagHelper<"li">;
31
- label: ShowTagHelper<"label">;
32
- input: ShowTagHelper<"input">;
33
- textarea: ShowTagHelper<"textarea">;
34
- select: ShowTagHelper<"select">;
35
- form: ShowTagHelper<"form">;
36
- table: ShowTagHelper<"table">;
37
- thead: ShowTagHelper<"thead">;
38
- tbody: ShowTagHelper<"tbody">;
39
- tfoot: ShowTagHelper<"tfoot">;
40
- tr: ShowTagHelper<"tr">;
41
- th: ShowTagHelper<"th">;
42
- td: ShowTagHelper<"td">;
43
- img: ShowTagHelper<"img">;
44
- video: ShowTagHelper<"video">;
45
- canvas: ShowTagHelper<"canvas">;
46
- [K: string]: ShowTagHelper<any>;
47
- }
1
+ import type { ShowType } from "../types/show";
48
2
  export declare const Show: ShowType;
49
- export {};
@@ -0,0 +1,99 @@
1
+ import { ComponentPropsWithRef } from "react";
2
+ import { Fallback } from ".";
3
+ export interface ForProps<T extends Array<unknown>> extends Fallback {
4
+ each: T | null | undefined;
5
+ children: (item: T[number], index: number) => React.ReactNode;
6
+ }
7
+ type ForTagHelper<K extends keyof JSX.IntrinsicElements> = {
8
+ <T extends Array<unknown>>(props: ForProps<T> & ComponentPropsWithRef<K>): React.ReactNode;
9
+ };
10
+ export interface ForType {
11
+ <T extends Array<unknown>>(props: ForProps<T>): React.ReactNode;
12
+ a: ForTagHelper<"a">;
13
+ abbr: ForTagHelper<"abbr">;
14
+ address: ForTagHelper<"address">;
15
+ article: ForTagHelper<"article">;
16
+ aside: ForTagHelper<"aside">;
17
+ b: ForTagHelper<"b">;
18
+ bdi: ForTagHelper<"bdi">;
19
+ bdo: ForTagHelper<"bdo">;
20
+ blockquote: ForTagHelper<"blockquote">;
21
+ button: ForTagHelper<"button">;
22
+ canvas: ForTagHelper<"canvas">;
23
+ cite: ForTagHelper<"cite">;
24
+ code: ForTagHelper<"code">;
25
+ data: ForTagHelper<"data">;
26
+ datalist: ForTagHelper<"datalist">;
27
+ dd: ForTagHelper<"dd">;
28
+ del: ForTagHelper<"del">;
29
+ details: ForTagHelper<"details">;
30
+ dfn: ForTagHelper<"dfn">;
31
+ dialog: ForTagHelper<"dialog">;
32
+ div: ForTagHelper<"div">;
33
+ dl: ForTagHelper<"dl">;
34
+ dt: ForTagHelper<"dt">;
35
+ em: ForTagHelper<"em">;
36
+ fieldset: ForTagHelper<"fieldset">;
37
+ figcaption: ForTagHelper<"figcaption">;
38
+ figure: ForTagHelper<"figure">;
39
+ footer: ForTagHelper<"footer">;
40
+ form: ForTagHelper<"form">;
41
+ h1: ForTagHelper<"h1">;
42
+ h2: ForTagHelper<"h2">;
43
+ h3: ForTagHelper<"h3">;
44
+ h4: ForTagHelper<"h4">;
45
+ h5: ForTagHelper<"h5">;
46
+ h6: ForTagHelper<"h6">;
47
+ header: ForTagHelper<"header">;
48
+ hr: ForTagHelper<"hr">;
49
+ i: ForTagHelper<"i">;
50
+ img: ForTagHelper<"img">;
51
+ input: ForTagHelper<"input">;
52
+ ins: ForTagHelper<"ins">;
53
+ kbd: ForTagHelper<"kbd">;
54
+ label: ForTagHelper<"label">;
55
+ legend: ForTagHelper<"legend">;
56
+ li: ForTagHelper<"li">;
57
+ main: ForTagHelper<"main">;
58
+ map: ForTagHelper<"map">;
59
+ mark: ForTagHelper<"mark">;
60
+ menu: ForTagHelper<"menu">;
61
+ meter: ForTagHelper<"meter">;
62
+ nav: ForTagHelper<"nav">;
63
+ ol: ForTagHelper<"ol">;
64
+ option: ForTagHelper<"option">;
65
+ output: ForTagHelper<"output">;
66
+ p: ForTagHelper<"p">;
67
+ picture: ForTagHelper<"picture">;
68
+ pre: ForTagHelper<"pre">;
69
+ progress: ForTagHelper<"progress">;
70
+ q: ForTagHelper<"q">;
71
+ rp: ForTagHelper<"rp">;
72
+ rt: ForTagHelper<"rt">;
73
+ ruby: ForTagHelper<"ruby">;
74
+ s: ForTagHelper<"s">;
75
+ samp: ForTagHelper<"samp">;
76
+ section: ForTagHelper<"section">;
77
+ select: ForTagHelper<"select">;
78
+ small: ForTagHelper<"small">;
79
+ span: ForTagHelper<"span">;
80
+ strong: ForTagHelper<"strong">;
81
+ sub: ForTagHelper<"sub">;
82
+ summary: ForTagHelper<"summary">;
83
+ sup: ForTagHelper<"sup">;
84
+ table: ForTagHelper<"table">;
85
+ tbody: ForTagHelper<"tbody">;
86
+ td: ForTagHelper<"td">;
87
+ textarea: ForTagHelper<"textarea">;
88
+ tfoot: ForTagHelper<"tfoot">;
89
+ th: ForTagHelper<"th">;
90
+ thead: ForTagHelper<"thead">;
91
+ time: ForTagHelper<"time">;
92
+ tr: ForTagHelper<"tr">;
93
+ u: ForTagHelper<"u">;
94
+ ul: ForTagHelper<"ul">;
95
+ var: ForTagHelper<"var">;
96
+ video: ForTagHelper<"video">;
97
+ [x: string]: ForTagHelper<any>;
98
+ }
99
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,32 +1,16 @@
1
1
  import type { ReactElement } from "react";
2
- interface Fallback {
2
+ export interface Fallback {
3
3
  fallback?: React.ReactNode;
4
4
  }
5
5
  export type NonNullableElements<T extends readonly any[]> = {
6
6
  -readonly [P in keyof T]: NonNullable<T[P]>;
7
7
  };
8
- export interface ShowPropsArray<T extends unknown[]> extends Fallback {
9
- when: T;
10
- children: React.ReactNode | ((item: NonNullableElements<T>) => React.ReactNode);
11
- }
12
- export interface ShowProps<T = unknown> extends Fallback {
13
- when: T;
14
- children: React.ReactNode | ((item: NonNullable<T>) => React.ReactNode);
15
- }
16
- export interface ForProps<T extends Array<unknown>> extends Fallback {
17
- each: T | null | undefined;
18
- children: (item: T[number], index: number) => React.ReactNode;
19
- }
20
8
  export interface OptionalWrapperProps {
21
9
  when: boolean;
22
10
  children: React.ReactNode;
23
11
  wrapper: (children: React.ReactNode) => React.ReactNode;
24
12
  fallback?: (children: React.ReactNode) => React.ReactNode;
25
13
  }
26
- export interface RepeatProps extends Fallback {
27
- times: number;
28
- children: (index: number) => React.ReactNode;
29
- }
30
14
  export interface ObserverProps extends Fallback {
31
15
  children?: React.ReactNode | ((isIntersecting: boolean) => React.ReactNode);
32
16
  threshold?: number | number[];
@@ -0,0 +1,99 @@
1
+ import { ComponentPropsWithRef } from "react";
2
+ import { Fallback } from ".";
3
+ export interface RepeatProps extends Fallback {
4
+ times: number;
5
+ children: (index: number) => React.ReactNode;
6
+ }
7
+ type RepeatTagHelper<K extends keyof JSX.IntrinsicElements> = {
8
+ (props: RepeatProps & ComponentPropsWithRef<K>): React.ReactNode;
9
+ };
10
+ export interface RepeatType {
11
+ (props: RepeatProps): React.ReactNode;
12
+ a: RepeatTagHelper<"a">;
13
+ abbr: RepeatTagHelper<"abbr">;
14
+ address: RepeatTagHelper<"address">;
15
+ article: RepeatTagHelper<"article">;
16
+ aside: RepeatTagHelper<"aside">;
17
+ b: RepeatTagHelper<"b">;
18
+ bdi: RepeatTagHelper<"bdi">;
19
+ bdo: RepeatTagHelper<"bdo">;
20
+ blockquote: RepeatTagHelper<"blockquote">;
21
+ button: RepeatTagHelper<"button">;
22
+ canvas: RepeatTagHelper<"canvas">;
23
+ cite: RepeatTagHelper<"cite">;
24
+ code: RepeatTagHelper<"code">;
25
+ data: RepeatTagHelper<"data">;
26
+ datalist: RepeatTagHelper<"datalist">;
27
+ dd: RepeatTagHelper<"dd">;
28
+ del: RepeatTagHelper<"del">;
29
+ details: RepeatTagHelper<"details">;
30
+ dfn: RepeatTagHelper<"dfn">;
31
+ dialog: RepeatTagHelper<"dialog">;
32
+ div: RepeatTagHelper<"div">;
33
+ dl: RepeatTagHelper<"dl">;
34
+ dt: RepeatTagHelper<"dt">;
35
+ em: RepeatTagHelper<"em">;
36
+ fieldset: RepeatTagHelper<"fieldset">;
37
+ figcaption: RepeatTagHelper<"figcaption">;
38
+ figure: RepeatTagHelper<"figure">;
39
+ footer: RepeatTagHelper<"footer">;
40
+ form: RepeatTagHelper<"form">;
41
+ h1: RepeatTagHelper<"h1">;
42
+ h2: RepeatTagHelper<"h2">;
43
+ h3: RepeatTagHelper<"h3">;
44
+ h4: RepeatTagHelper<"h4">;
45
+ h5: RepeatTagHelper<"h5">;
46
+ h6: RepeatTagHelper<"h6">;
47
+ header: RepeatTagHelper<"header">;
48
+ hr: RepeatTagHelper<"hr">;
49
+ i: RepeatTagHelper<"i">;
50
+ img: RepeatTagHelper<"img">;
51
+ input: RepeatTagHelper<"input">;
52
+ ins: RepeatTagHelper<"ins">;
53
+ kbd: RepeatTagHelper<"kbd">;
54
+ label: RepeatTagHelper<"label">;
55
+ legend: RepeatTagHelper<"legend">;
56
+ li: RepeatTagHelper<"li">;
57
+ main: RepeatTagHelper<"main">;
58
+ map: RepeatTagHelper<"map">;
59
+ mark: RepeatTagHelper<"mark">;
60
+ menu: RepeatTagHelper<"menu">;
61
+ meter: RepeatTagHelper<"meter">;
62
+ nav: RepeatTagHelper<"nav">;
63
+ ol: RepeatTagHelper<"ol">;
64
+ option: RepeatTagHelper<"option">;
65
+ output: RepeatTagHelper<"output">;
66
+ p: RepeatTagHelper<"p">;
67
+ picture: RepeatTagHelper<"picture">;
68
+ pre: RepeatTagHelper<"pre">;
69
+ progress: RepeatTagHelper<"progress">;
70
+ q: RepeatTagHelper<"q">;
71
+ rp: RepeatTagHelper<"rp">;
72
+ rt: RepeatTagHelper<"rt">;
73
+ ruby: RepeatTagHelper<"ruby">;
74
+ s: RepeatTagHelper<"s">;
75
+ samp: RepeatTagHelper<"samp">;
76
+ section: RepeatTagHelper<"section">;
77
+ select: RepeatTagHelper<"select">;
78
+ small: RepeatTagHelper<"small">;
79
+ span: RepeatTagHelper<"span">;
80
+ strong: RepeatTagHelper<"strong">;
81
+ sub: RepeatTagHelper<"sub">;
82
+ summary: RepeatTagHelper<"summary">;
83
+ sup: RepeatTagHelper<"sup">;
84
+ table: RepeatTagHelper<"table">;
85
+ tbody: RepeatTagHelper<"tbody">;
86
+ td: RepeatTagHelper<"td">;
87
+ textarea: RepeatTagHelper<"textarea">;
88
+ tfoot: RepeatTagHelper<"tfoot">;
89
+ th: RepeatTagHelper<"th">;
90
+ thead: RepeatTagHelper<"thead">;
91
+ time: RepeatTagHelper<"time">;
92
+ tr: RepeatTagHelper<"tr">;
93
+ u: RepeatTagHelper<"u">;
94
+ ul: RepeatTagHelper<"ul">;
95
+ var: RepeatTagHelper<"var">;
96
+ video: RepeatTagHelper<"video">;
97
+ [x: string]: RepeatTagHelper<any>;
98
+ }
99
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,105 @@
1
+ import { ComponentPropsWithRef } from "react";
2
+ import { Fallback, NonNullableElements } from "./";
3
+ export interface ShowPropsArray<T extends unknown[]> extends Fallback {
4
+ when: T;
5
+ children: React.ReactNode | ((item: NonNullableElements<T>) => React.ReactNode);
6
+ }
7
+ export interface ShowProps<T = unknown> extends Fallback {
8
+ when: T;
9
+ children: React.ReactNode | ((item: NonNullable<T>) => React.ReactNode);
10
+ }
11
+ type ShowTagHelper<K extends keyof JSX.IntrinsicElements> = {
12
+ <T extends unknown[]>(props: ShowPropsArray<T> & ComponentPropsWithRef<K>): React.ReactNode;
13
+ <T extends unknown>(props: ShowProps<T> & ComponentPropsWithRef<K>): React.ReactNode;
14
+ };
15
+ export interface ShowType {
16
+ <T extends unknown[]>(props: ShowPropsArray<T>): React.ReactNode;
17
+ <T extends unknown>(props: ShowProps<T>): React.ReactNode;
18
+ a: ShowTagHelper<"a">;
19
+ abbr: ShowTagHelper<"abbr">;
20
+ address: ShowTagHelper<"address">;
21
+ article: ShowTagHelper<"article">;
22
+ aside: ShowTagHelper<"aside">;
23
+ b: ShowTagHelper<"b">;
24
+ bdi: ShowTagHelper<"bdi">;
25
+ bdo: ShowTagHelper<"bdo">;
26
+ blockquote: ShowTagHelper<"blockquote">;
27
+ button: ShowTagHelper<"button">;
28
+ canvas: ShowTagHelper<"canvas">;
29
+ cite: ShowTagHelper<"cite">;
30
+ code: ShowTagHelper<"code">;
31
+ data: ShowTagHelper<"data">;
32
+ datalist: ShowTagHelper<"datalist">;
33
+ dd: ShowTagHelper<"dd">;
34
+ del: ShowTagHelper<"del">;
35
+ details: ShowTagHelper<"details">;
36
+ dfn: ShowTagHelper<"dfn">;
37
+ dialog: ShowTagHelper<"dialog">;
38
+ div: ShowTagHelper<"div">;
39
+ dl: ShowTagHelper<"dl">;
40
+ dt: ShowTagHelper<"dt">;
41
+ em: ShowTagHelper<"em">;
42
+ fieldset: ShowTagHelper<"fieldset">;
43
+ figcaption: ShowTagHelper<"figcaption">;
44
+ figure: ShowTagHelper<"figure">;
45
+ footer: ShowTagHelper<"footer">;
46
+ form: ShowTagHelper<"form">;
47
+ h1: ShowTagHelper<"h1">;
48
+ h2: ShowTagHelper<"h2">;
49
+ h3: ShowTagHelper<"h3">;
50
+ h4: ShowTagHelper<"h4">;
51
+ h5: ShowTagHelper<"h5">;
52
+ h6: ShowTagHelper<"h6">;
53
+ header: ShowTagHelper<"header">;
54
+ hr: ShowTagHelper<"hr">;
55
+ i: ShowTagHelper<"i">;
56
+ img: ShowTagHelper<"img">;
57
+ input: ShowTagHelper<"input">;
58
+ ins: ShowTagHelper<"ins">;
59
+ kbd: ShowTagHelper<"kbd">;
60
+ label: ShowTagHelper<"label">;
61
+ legend: ShowTagHelper<"legend">;
62
+ li: ShowTagHelper<"li">;
63
+ main: ShowTagHelper<"main">;
64
+ map: ShowTagHelper<"map">;
65
+ mark: ShowTagHelper<"mark">;
66
+ menu: ShowTagHelper<"menu">;
67
+ meter: ShowTagHelper<"meter">;
68
+ nav: ShowTagHelper<"nav">;
69
+ ol: ShowTagHelper<"ol">;
70
+ option: ShowTagHelper<"option">;
71
+ output: ShowTagHelper<"output">;
72
+ p: ShowTagHelper<"p">;
73
+ picture: ShowTagHelper<"picture">;
74
+ pre: ShowTagHelper<"pre">;
75
+ progress: ShowTagHelper<"progress">;
76
+ q: ShowTagHelper<"q">;
77
+ rp: ShowTagHelper<"rp">;
78
+ rt: ShowTagHelper<"rt">;
79
+ ruby: ShowTagHelper<"ruby">;
80
+ s: ShowTagHelper<"s">;
81
+ samp: ShowTagHelper<"samp">;
82
+ section: ShowTagHelper<"section">;
83
+ select: ShowTagHelper<"select">;
84
+ small: ShowTagHelper<"small">;
85
+ span: ShowTagHelper<"span">;
86
+ strong: ShowTagHelper<"strong">;
87
+ sub: ShowTagHelper<"sub">;
88
+ summary: ShowTagHelper<"summary">;
89
+ sup: ShowTagHelper<"sup">;
90
+ table: ShowTagHelper<"table">;
91
+ tbody: ShowTagHelper<"tbody">;
92
+ td: ShowTagHelper<"td">;
93
+ textarea: ShowTagHelper<"textarea">;
94
+ tfoot: ShowTagHelper<"tfoot">;
95
+ th: ShowTagHelper<"th">;
96
+ thead: ShowTagHelper<"thead">;
97
+ time: ShowTagHelper<"time">;
98
+ tr: ShowTagHelper<"tr">;
99
+ u: ShowTagHelper<"u">;
100
+ ul: ShowTagHelper<"ul">;
101
+ var: ShowTagHelper<"var">;
102
+ video: ShowTagHelper<"video">;
103
+ [x: string]: ShowTagHelper<any>;
104
+ }
105
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ilokesto/utilinent",
3
- "version": "0.0.19",
3
+ "version": "0.0.21",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/ilokesto/utilinent.git"