@fringeworks/react-utils 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/README.ja.md +307 -0
  2. package/README.md +307 -3
  3. package/_helpers/_traverseChildren.cjs +32 -0
  4. package/_helpers/_traverseChildren.d.cts +24 -0
  5. package/_helpers/_traverseChildren.d.mts +24 -0
  6. package/_helpers/_traverseChildren.mjs +30 -0
  7. package/hooks/index.cjs +21 -40
  8. package/hooks/index.d.cts +5 -7
  9. package/hooks/index.d.mts +5 -7
  10. package/hooks/index.mjs +1 -14
  11. package/hooks/useCombinedRefs/index.cjs +4 -2
  12. package/hooks/useCombinedRefs/index.d.cts +1 -1
  13. package/hooks/useCombinedRefs/index.d.mts +1 -1
  14. package/hooks/useCombinedRefs/index.mjs +1 -1
  15. package/hooks/useCombinedRefs/useCombinedRefs.cjs +7 -6
  16. package/hooks/useCombinedRefs/useCombinedRefs.d.cts +0 -1
  17. package/hooks/useCombinedRefs/useCombinedRefs.d.mts +2 -4
  18. package/hooks/useConstant/index.cjs +4 -2
  19. package/hooks/useConstant/index.d.cts +1 -1
  20. package/hooks/useConstant/index.d.mts +1 -1
  21. package/hooks/useConstant/index.mjs +1 -1
  22. package/hooks/useConstant/useConstant.cjs +2 -1
  23. package/hooks/useConstant/useConstant.d.mts +2 -3
  24. package/hooks/useExecutionAt/index.cjs +4 -2
  25. package/hooks/useExecutionAt/index.d.cts +1 -1
  26. package/hooks/useExecutionAt/index.d.mts +1 -1
  27. package/hooks/useExecutionAt/index.mjs +1 -1
  28. package/hooks/useExecutionAt/types.cjs +1 -0
  29. package/hooks/useExecutionAt/types.d.cts +5 -7
  30. package/hooks/useExecutionAt/types.d.mts +5 -7
  31. package/hooks/useExecutionAt/useExecutionAt.cjs +4 -3
  32. package/hooks/useExecutionAt/useExecutionAt.d.cts +0 -1
  33. package/hooks/useExecutionAt/useExecutionAt.d.mts +2 -4
  34. package/hooks/useIsMounted/index.cjs +4 -2
  35. package/hooks/useIsMounted/index.d.cts +1 -1
  36. package/hooks/useIsMounted/index.d.mts +1 -1
  37. package/hooks/useIsMounted/index.mjs +1 -1
  38. package/hooks/useIsMounted/useIsMounted.cjs +8 -3
  39. package/hooks/useIsMounted/useIsMounted.d.cts +5 -1
  40. package/hooks/useIsMounted/useIsMounted.d.mts +7 -4
  41. package/hooks/useIsMounted/useIsMounted.mjs +7 -3
  42. package/hooks/useLatestRef/index.cjs +4 -2
  43. package/hooks/useLatestRef/index.d.cts +1 -1
  44. package/hooks/useLatestRef/index.d.mts +1 -1
  45. package/hooks/useLatestRef/index.mjs +1 -1
  46. package/hooks/useLatestRef/types.cjs +1 -0
  47. package/hooks/useLatestRef/types.d.cts +2 -3
  48. package/hooks/useLatestRef/types.d.mts +2 -3
  49. package/hooks/useLatestRef/useLatestRef.cjs +2 -1
  50. package/hooks/useLatestRef/useLatestRef.d.cts +0 -1
  51. package/hooks/useLatestRef/useLatestRef.d.mts +2 -4
  52. package/hooks/usePreviousValue/index.cjs +4 -2
  53. package/hooks/usePreviousValue/index.d.cts +1 -1
  54. package/hooks/usePreviousValue/index.d.mts +1 -1
  55. package/hooks/usePreviousValue/index.mjs +1 -1
  56. package/hooks/usePreviousValue/types.cjs +1 -0
  57. package/hooks/usePreviousValue/types.d.cts +8 -9
  58. package/hooks/usePreviousValue/types.d.mts +8 -9
  59. package/hooks/usePreviousValue/usePreviousValue.cjs +10 -5
  60. package/hooks/usePreviousValue/usePreviousValue.d.cts +6 -2
  61. package/hooks/usePreviousValue/usePreviousValue.d.mts +8 -5
  62. package/hooks/usePreviousValue/usePreviousValue.mjs +8 -4
  63. package/hooks/useStableLength/index.cjs +4 -2
  64. package/hooks/useStableLength/index.d.cts +1 -1
  65. package/hooks/useStableLength/index.d.mts +1 -1
  66. package/hooks/useStableLength/index.mjs +1 -1
  67. package/hooks/useStableLength/useStableLength.cjs +2 -1
  68. package/hooks/useStableLength/useStableLength.d.cts +1 -1
  69. package/hooks/useStableLength/useStableLength.d.mts +2 -3
  70. package/index.cjs +34 -14
  71. package/index.d.cts +25 -3
  72. package/index.d.mts +25 -3
  73. package/index.mjs +19 -3
  74. package/package.json +160 -38
  75. package/types.cjs +1 -0
  76. package/types.d.cts +2 -4
  77. package/types.d.mts +2 -4
  78. package/utils/applyDefaultProps/applyDefaultProps.cjs +6 -2
  79. package/utils/applyDefaultProps/applyDefaultProps.d.cts +6 -3
  80. package/utils/applyDefaultProps/applyDefaultProps.d.mts +8 -5
  81. package/utils/applyDefaultProps/applyDefaultProps.mjs +4 -0
  82. package/utils/applyDefaultProps/index.cjs +4 -2
  83. package/utils/applyDefaultProps/index.d.cts +1 -1
  84. package/utils/applyDefaultProps/index.d.mts +1 -1
  85. package/utils/applyDefaultProps/index.mjs +1 -1
  86. package/utils/applyDefaultProps/types.cjs +1 -0
  87. package/utils/applyDefaultProps/types.d.cts +6 -6
  88. package/utils/applyDefaultProps/types.d.mts +6 -6
  89. package/utils/ensureComponent/ensureComponent.cjs +2 -1
  90. package/utils/ensureComponent/ensureComponent.d.cts +0 -1
  91. package/utils/ensureComponent/ensureComponent.d.mts +2 -4
  92. package/utils/ensureComponent/index.cjs +4 -2
  93. package/utils/ensureComponent/index.d.cts +1 -1
  94. package/utils/ensureComponent/index.d.mts +1 -1
  95. package/utils/ensureComponent/index.mjs +1 -1
  96. package/utils/extendElement/extendElement.cjs +21 -17
  97. package/utils/extendElement/extendElement.d.cts +11 -6
  98. package/utils/extendElement/extendElement.d.mts +12 -8
  99. package/utils/extendElement/extendElement.mjs +19 -16
  100. package/utils/extendElement/index.cjs +4 -2
  101. package/utils/extendElement/index.d.cts +2 -1
  102. package/utils/extendElement/index.d.mts +2 -1
  103. package/utils/extendElement/index.mjs +1 -1
  104. package/utils/extendElement/types.cjs +1 -0
  105. package/utils/extendElement/types.d.cts +16 -0
  106. package/utils/extendElement/types.d.mts +16 -0
  107. package/utils/extendElement/types.mjs +1 -0
  108. package/utils/forEachContent/forEachContent.cjs +5 -4
  109. package/utils/forEachContent/forEachContent.d.cts +1 -2
  110. package/utils/forEachContent/forEachContent.d.mts +3 -5
  111. package/utils/forEachContent/forEachContent.mjs +3 -3
  112. package/utils/forEachContent/index.cjs +4 -2
  113. package/utils/forEachContent/index.d.cts +1 -1
  114. package/utils/forEachContent/index.d.mts +1 -1
  115. package/utils/forEachContent/index.mjs +1 -1
  116. package/utils/forEachElement/forEachElement.cjs +6 -4
  117. package/utils/forEachElement/forEachElement.d.cts +1 -2
  118. package/utils/forEachElement/forEachElement.d.mts +3 -5
  119. package/utils/forEachElement/forEachElement.mjs +4 -3
  120. package/utils/forEachElement/index.cjs +4 -2
  121. package/utils/forEachElement/index.d.cts +1 -1
  122. package/utils/forEachElement/index.d.mts +1 -1
  123. package/utils/forEachElement/index.mjs +1 -1
  124. package/utils/index.cjs +24 -45
  125. package/utils/index.d.cts +11 -5
  126. package/utils/index.d.mts +11 -5
  127. package/utils/index.mjs +1 -16
  128. package/utils/markAt/index.cjs +4 -2
  129. package/utils/markAt/index.d.cts +1 -1
  130. package/utils/markAt/index.d.mts +1 -1
  131. package/utils/markAt/index.mjs +1 -1
  132. package/utils/markAt/markAt.cjs +2 -2
  133. package/utils/markAt/markAt.d.cts +0 -1
  134. package/utils/markAt/markAt.d.mts +2 -4
  135. package/utils/markAt/types.cjs +1 -0
  136. package/utils/markAt/types.d.cts +2 -3
  137. package/utils/markAt/types.d.mts +2 -3
  138. package/utils/setRefCurrent/index.cjs +4 -2
  139. package/utils/setRefCurrent/index.d.cts +1 -1
  140. package/utils/setRefCurrent/index.d.mts +1 -1
  141. package/utils/setRefCurrent/index.mjs +1 -1
  142. package/utils/setRefCurrent/setRefCurrent.cjs +2 -2
  143. package/utils/setRefCurrent/setRefCurrent.d.cts +0 -1
  144. package/utils/setRefCurrent/setRefCurrent.d.mts +2 -4
  145. package/utils/transformContent/index.cjs +4 -2
  146. package/utils/transformContent/index.d.cts +1 -1
  147. package/utils/transformContent/index.d.mts +1 -1
  148. package/utils/transformContent/index.mjs +1 -1
  149. package/utils/transformContent/transformContent.cjs +11 -4
  150. package/utils/transformContent/transformContent.d.cts +7 -2
  151. package/utils/transformContent/transformContent.d.mts +9 -5
  152. package/utils/transformContent/transformContent.mjs +9 -3
  153. package/utils/transformElement/index.cjs +4 -2
  154. package/utils/transformElement/index.d.cts +1 -1
  155. package/utils/transformElement/index.d.mts +1 -1
  156. package/utils/transformElement/index.mjs +1 -1
  157. package/utils/transformElement/transformElement.cjs +12 -4
  158. package/utils/transformElement/transformElement.d.cts +7 -2
  159. package/utils/transformElement/transformElement.d.mts +9 -5
  160. package/utils/transformElement/transformElement.mjs +10 -3
  161. package/_helpers/_traverseContent.cjs +0 -24
  162. package/_helpers/_traverseContent.d.cts +0 -15
  163. package/_helpers/_traverseContent.d.mts +0 -16
  164. package/_helpers/_traverseContent.mjs +0 -22
  165. package/_helpers/_traverseElement.cjs +0 -23
  166. package/_helpers/_traverseElement.d.cts +0 -15
  167. package/_helpers/_traverseElement.d.mts +0 -16
  168. package/_helpers/_traverseElement.mjs +0 -21
  169. package/_virtual/_rolldown/runtime.cjs +0 -43
  170. package/_virtual/_rolldown/runtime.mjs +0 -18
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fringeworks/react-utils",
3
- "version": "0.8.1",
3
+ "version": "0.9.0",
4
4
  "description": "A library some will find handy, providing utilities for React.",
5
5
  "keywords": [
6
6
  "react"
@@ -11,6 +11,7 @@
11
11
  },
12
12
  "license": "MIT",
13
13
  "author": "Mitsuhiro Seino",
14
+ "sideEffects": false,
14
15
  "type": "module",
15
16
  "exports": {
16
17
  ".": {
@@ -23,71 +24,192 @@
23
24
  "default": "./index.cjs"
24
25
  }
25
26
  },
26
- "./package.json": "./package.json",
27
- "./constants": {
27
+ "./hooks": {
28
28
  "import": {
29
- "types": "./constants.d.mts",
30
- "default": "./constants.mjs"
29
+ "types": "./hooks/index.d.mts",
30
+ "default": "./hooks/index.mjs"
31
31
  },
32
32
  "require": {
33
- "types": "./constants.d.cts",
34
- "default": "./constants.cjs"
33
+ "types": "./hooks/index.d.cts",
34
+ "default": "./hooks/index.cjs"
35
35
  }
36
36
  },
37
- "./*/constants": {
37
+ "./hooks/useCombinedRefs": {
38
38
  "import": {
39
- "types": "./*/constants.d.mts",
40
- "default": "./*/constants.mjs"
39
+ "types": "./hooks/useCombinedRefs/index.d.mts",
40
+ "default": "./hooks/useCombinedRefs/index.mjs"
41
41
  },
42
42
  "require": {
43
- "types": "./*/constants.d.cts",
44
- "default": "./*/constants.cjs"
43
+ "types": "./hooks/useCombinedRefs/index.d.cts",
44
+ "default": "./hooks/useCombinedRefs/index.cjs"
45
45
  }
46
46
  },
47
- "./types": {
47
+ "./hooks/useConstant": {
48
48
  "import": {
49
- "types": "./types.d.mts",
50
- "default": "./types.mjs"
49
+ "types": "./hooks/useConstant/index.d.mts",
50
+ "default": "./hooks/useConstant/index.mjs"
51
51
  },
52
52
  "require": {
53
- "types": "./types.d.cts",
54
- "default": "./types.cjs"
53
+ "types": "./hooks/useConstant/index.d.cts",
54
+ "default": "./hooks/useConstant/index.cjs"
55
55
  }
56
56
  },
57
- "./*/types": {
57
+ "./hooks/useExecutionAt": {
58
58
  "import": {
59
- "types": "./*/types.d.mts",
60
- "default": "./*/types.mjs"
59
+ "types": "./hooks/useExecutionAt/index.d.mts",
60
+ "default": "./hooks/useExecutionAt/index.mjs"
61
61
  },
62
62
  "require": {
63
- "types": "./*/types.d.cts",
64
- "default": "./*/types.cjs"
63
+ "types": "./hooks/useExecutionAt/index.d.cts",
64
+ "default": "./hooks/useExecutionAt/index.cjs"
65
65
  }
66
66
  },
67
- "./*": {
67
+ "./hooks/useIsMounted": {
68
68
  "import": {
69
- "types": "./*/index.d.mts",
70
- "default": "./*/index.mjs"
69
+ "types": "./hooks/useIsMounted/index.d.mts",
70
+ "default": "./hooks/useIsMounted/index.mjs"
71
71
  },
72
72
  "require": {
73
- "types": "./*/index.d.cts",
74
- "default": "./*/index.cjs"
73
+ "types": "./hooks/useIsMounted/index.d.cts",
74
+ "default": "./hooks/useIsMounted/index.cjs"
75
75
  }
76
- }
76
+ },
77
+ "./hooks/useLatestRef": {
78
+ "import": {
79
+ "types": "./hooks/useLatestRef/index.d.mts",
80
+ "default": "./hooks/useLatestRef/index.mjs"
81
+ },
82
+ "require": {
83
+ "types": "./hooks/useLatestRef/index.d.cts",
84
+ "default": "./hooks/useLatestRef/index.cjs"
85
+ }
86
+ },
87
+ "./hooks/usePreviousValue": {
88
+ "import": {
89
+ "types": "./hooks/usePreviousValue/index.d.mts",
90
+ "default": "./hooks/usePreviousValue/index.mjs"
91
+ },
92
+ "require": {
93
+ "types": "./hooks/usePreviousValue/index.d.cts",
94
+ "default": "./hooks/usePreviousValue/index.cjs"
95
+ }
96
+ },
97
+ "./hooks/useStableLength": {
98
+ "import": {
99
+ "types": "./hooks/useStableLength/index.d.mts",
100
+ "default": "./hooks/useStableLength/index.mjs"
101
+ },
102
+ "require": {
103
+ "types": "./hooks/useStableLength/index.d.cts",
104
+ "default": "./hooks/useStableLength/index.cjs"
105
+ }
106
+ },
107
+ "./utils": {
108
+ "import": {
109
+ "types": "./utils/index.d.mts",
110
+ "default": "./utils/index.mjs"
111
+ },
112
+ "require": {
113
+ "types": "./utils/index.d.cts",
114
+ "default": "./utils/index.cjs"
115
+ }
116
+ },
117
+ "./utils/applyDefaultProps": {
118
+ "import": {
119
+ "types": "./utils/applyDefaultProps/index.d.mts",
120
+ "default": "./utils/applyDefaultProps/index.mjs"
121
+ },
122
+ "require": {
123
+ "types": "./utils/applyDefaultProps/index.d.cts",
124
+ "default": "./utils/applyDefaultProps/index.cjs"
125
+ }
126
+ },
127
+ "./utils/ensureComponent": {
128
+ "import": {
129
+ "types": "./utils/ensureComponent/index.d.mts",
130
+ "default": "./utils/ensureComponent/index.mjs"
131
+ },
132
+ "require": {
133
+ "types": "./utils/ensureComponent/index.d.cts",
134
+ "default": "./utils/ensureComponent/index.cjs"
135
+ }
136
+ },
137
+ "./utils/extendElement": {
138
+ "import": {
139
+ "types": "./utils/extendElement/index.d.mts",
140
+ "default": "./utils/extendElement/index.mjs"
141
+ },
142
+ "require": {
143
+ "types": "./utils/extendElement/index.d.cts",
144
+ "default": "./utils/extendElement/index.cjs"
145
+ }
146
+ },
147
+ "./utils/forEachContent": {
148
+ "import": {
149
+ "types": "./utils/forEachContent/index.d.mts",
150
+ "default": "./utils/forEachContent/index.mjs"
151
+ },
152
+ "require": {
153
+ "types": "./utils/forEachContent/index.d.cts",
154
+ "default": "./utils/forEachContent/index.cjs"
155
+ }
156
+ },
157
+ "./utils/forEachElement": {
158
+ "import": {
159
+ "types": "./utils/forEachElement/index.d.mts",
160
+ "default": "./utils/forEachElement/index.mjs"
161
+ },
162
+ "require": {
163
+ "types": "./utils/forEachElement/index.d.cts",
164
+ "default": "./utils/forEachElement/index.cjs"
165
+ }
166
+ },
167
+ "./utils/markAt": {
168
+ "import": {
169
+ "types": "./utils/markAt/index.d.mts",
170
+ "default": "./utils/markAt/index.mjs"
171
+ },
172
+ "require": {
173
+ "types": "./utils/markAt/index.d.cts",
174
+ "default": "./utils/markAt/index.cjs"
175
+ }
176
+ },
177
+ "./utils/setRefCurrent": {
178
+ "import": {
179
+ "types": "./utils/setRefCurrent/index.d.mts",
180
+ "default": "./utils/setRefCurrent/index.mjs"
181
+ },
182
+ "require": {
183
+ "types": "./utils/setRefCurrent/index.d.cts",
184
+ "default": "./utils/setRefCurrent/index.cjs"
185
+ }
186
+ },
187
+ "./utils/transformContent": {
188
+ "import": {
189
+ "types": "./utils/transformContent/index.d.mts",
190
+ "default": "./utils/transformContent/index.mjs"
191
+ },
192
+ "require": {
193
+ "types": "./utils/transformContent/index.d.cts",
194
+ "default": "./utils/transformContent/index.cjs"
195
+ }
196
+ },
197
+ "./utils/transformElement": {
198
+ "import": {
199
+ "types": "./utils/transformElement/index.d.mts",
200
+ "default": "./utils/transformElement/index.mjs"
201
+ },
202
+ "require": {
203
+ "types": "./utils/transformElement/index.d.cts",
204
+ "default": "./utils/transformElement/index.cjs"
205
+ }
206
+ },
207
+ "./package.json": "./package.json"
77
208
  },
78
209
  "main": "./index.cjs",
79
210
  "module": "./index.mjs",
80
211
  "types": "./index.d.cts",
81
- "dependencies": {
82
- "@fringeworks/utils": "^0.9.2"
83
- },
84
212
  "peerDependencies": {
85
- "react": "^18.0.0 || ^19.0.0",
86
- "react-dom": "^18.0.0 || ^19.0.0"
87
- },
88
- "peerDependenciesMeta": {
89
- "react-dom": {
90
- "optional": true
91
- }
213
+ "react": "^18.0.0 || ^19.0.0"
92
214
  }
93
215
  }
package/types.cjs CHANGED
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
package/types.d.cts CHANGED
@@ -1,11 +1,9 @@
1
1
  import { CSSProperties } from "react";
2
-
3
2
  //#region src/types.d.ts
4
3
  /**
5
4
  * CSS変数を許容するCSSProperties
6
5
  */
7
- type CSSPropertiesWithVars = CSSProperties & {
6
+ export type CSSPropertiesWithVars = CSSProperties & {
8
7
  [key: `--${string}`]: string | number | undefined;
9
8
  };
10
- //#endregion
11
- export { CSSPropertiesWithVars };
9
+ //#endregion
package/types.d.mts CHANGED
@@ -1,11 +1,9 @@
1
1
  import { CSSProperties } from "react";
2
-
3
2
  //#region src/types.d.ts
4
3
  /**
5
4
  * CSS変数を許容するCSSProperties
6
5
  */
7
- type CSSPropertiesWithVars = CSSProperties & {
6
+ export type CSSPropertiesWithVars = CSSProperties & {
8
7
  [key: `--${string}`]: string | number | undefined;
9
8
  };
10
- //#endregion
11
- export { CSSPropertiesWithVars };
9
+ //#endregion
@@ -1,4 +1,4 @@
1
-
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
2
  //#region src/utils/applyDefaultProps/applyDefaultProps.ts
3
3
  /**
4
4
  * props のプロパティが undefined または null で、
@@ -20,6 +20,10 @@
20
20
  *
21
21
  * applyDefaultProps(props, isCompact && compactDefaults, baseDefaults)
22
22
  *
23
+ * 制限事項
24
+ * - defaults のキーは文字列のもののみ反映する(symbol のキーは無視する)
25
+ * - props の型がユニオン型の場合、defaults に書けるのはすべての型に共通するキーのみ
26
+ *
23
27
  * @param props コンポーネントに渡された props
24
28
  * @param defaults props の一部のプロパティにデフォルト値を設定したオブジェクト
25
29
  * (複数可、先の引数ほど優先。null / undefined / false はスキップ)
@@ -38,4 +42,4 @@ function applyDefaultProps(props, ...defaults) {
38
42
  }
39
43
 
40
44
  //#endregion
41
- module.exports = applyDefaultProps;
45
+ exports.default = applyDefaultProps;
@@ -1,10 +1,9 @@
1
1
  import { AppliedProps, SkippedDefaults } from "./types.cjs";
2
-
3
2
  //#region src/utils/applyDefaultProps/applyDefaultProps.d.ts
4
3
  /** props に存在しないキーを含む defaults を型エラーにする */
5
- type NoExtraKeys<P, Ds extends readonly unknown[]> = { [I in keyof Ds]: CheckKeys<P, Ds[I]> };
4
+ type NoExtraKeys<P, Ds extends readonly unknown[]> = { [I in keyof Ds]: CheckKeys<P, Ds[I]>; };
6
5
  /** 要素がオブジェクトの場合のみキーを検査する(ユニオンの各要素ごとに分配) */
7
- type CheckKeys<P, T> = T extends SkippedDefaults ? T : T & { [K in Exclude<keyof T, keyof P>]: never };
6
+ type CheckKeys<P, T> = T extends SkippedDefaults ? T : T & { [K in Exclude<keyof T, keyof P>]: never; };
8
7
  /**
9
8
  * props のプロパティが undefined または null で、
10
9
  * かつデフォルト値が undefined 以外の場合に、デフォルト値を反映した新しいオブジェクトを返す。
@@ -25,6 +24,10 @@ type CheckKeys<P, T> = T extends SkippedDefaults ? T : T & { [K in Exclude<keyof
25
24
  *
26
25
  * applyDefaultProps(props, isCompact && compactDefaults, baseDefaults)
27
26
  *
27
+ * 制限事項
28
+ * - defaults のキーは文字列のもののみ反映する(symbol のキーは無視する)
29
+ * - props の型がユニオン型の場合、defaults に書けるのはすべての型に共通するキーのみ
30
+ *
28
31
  * @param props コンポーネントに渡された props
29
32
  * @param defaults props の一部のプロパティにデフォルト値を設定したオブジェクト
30
33
  * (複数可、先の引数ほど優先。null / undefined / false はスキップ)
@@ -1,10 +1,9 @@
1
1
  import { AppliedProps, SkippedDefaults } from "./types.mjs";
2
-
3
2
  //#region src/utils/applyDefaultProps/applyDefaultProps.d.ts
4
3
  /** props に存在しないキーを含む defaults を型エラーにする */
5
- type NoExtraKeys<P, Ds extends readonly unknown[]> = { [I in keyof Ds]: CheckKeys<P, Ds[I]> };
4
+ type NoExtraKeys<P, Ds extends readonly unknown[]> = { [I in keyof Ds]: CheckKeys<P, Ds[I]>; };
6
5
  /** 要素がオブジェクトの場合のみキーを検査する(ユニオンの各要素ごとに分配) */
7
- type CheckKeys<P, T> = T extends SkippedDefaults ? T : T & { [K in Exclude<keyof T, keyof P>]: never };
6
+ type CheckKeys<P, T> = T extends SkippedDefaults ? T : T & { [K in Exclude<keyof T, keyof P>]: never; };
8
7
  /**
9
8
  * props のプロパティが undefined または null で、
10
9
  * かつデフォルト値が undefined 以外の場合に、デフォルト値を反映した新しいオブジェクトを返す。
@@ -25,10 +24,14 @@ type CheckKeys<P, T> = T extends SkippedDefaults ? T : T & { [K in Exclude<keyof
25
24
  *
26
25
  * applyDefaultProps(props, isCompact && compactDefaults, baseDefaults)
27
26
  *
27
+ * 制限事項
28
+ * - defaults のキーは文字列のもののみ反映する(symbol のキーは無視する)
29
+ * - props の型がユニオン型の場合、defaults に書けるのはすべての型に共通するキーのみ
30
+ *
28
31
  * @param props コンポーネントに渡された props
29
32
  * @param defaults props の一部のプロパティにデフォルト値を設定したオブジェクト
30
33
  * (複数可、先の引数ほど優先。null / undefined / false はスキップ)
31
34
  */
32
- declare function applyDefaultProps<P extends object, const Ds extends readonly (Partial<P> | SkippedDefaults)[]>(props: P, ...defaults: Ds & NoExtraKeys<P, Ds>): AppliedProps<P, Ds>;
35
+ export default function applyDefaultProps<P extends object, const Ds extends readonly (Partial<P> | SkippedDefaults)[]>(props: P, ...defaults: Ds & NoExtraKeys<P, Ds>): AppliedProps<P, Ds>;
33
36
  //#endregion
34
- export { applyDefaultProps as default };
37
+ export {};
@@ -19,6 +19,10 @@
19
19
  *
20
20
  * applyDefaultProps(props, isCompact && compactDefaults, baseDefaults)
21
21
  *
22
+ * 制限事項
23
+ * - defaults のキーは文字列のもののみ反映する(symbol のキーは無視する)
24
+ * - props の型がユニオン型の場合、defaults に書けるのはすべての型に共通するキーのみ
25
+ *
22
26
  * @param props コンポーネントに渡された props
23
27
  * @param defaults props の一部のプロパティにデフォルト値を設定したオブジェクト
24
28
  * (複数可、先の引数ほど優先。null / undefined / false はスキップ)
@@ -1,3 +1,5 @@
1
- const require_utils_applyDefaultProps_applyDefaultProps = require('./applyDefaultProps.cjs');
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
+ const require_utils_applyDefaultProps_applyDefaultProps = require("./applyDefaultProps.cjs");
2
3
 
3
- module.exports = require_utils_applyDefaultProps_applyDefaultProps;
4
+ exports.applyDefaultProps = require_utils_applyDefaultProps_applyDefaultProps.default;
5
+ exports.default = require_utils_applyDefaultProps_applyDefaultProps.default;
@@ -1,3 +1,3 @@
1
1
  import { AppliedProps, SkippedDefaults } from "./types.cjs";
2
2
  import applyDefaultProps from "./applyDefaultProps.cjs";
3
- export { type AppliedProps, type SkippedDefaults, applyDefaultProps as default };
3
+ export { type AppliedProps, type SkippedDefaults, applyDefaultProps, applyDefaultProps as default };
@@ -1,3 +1,3 @@
1
1
  import { AppliedProps, SkippedDefaults } from "./types.mjs";
2
2
  import applyDefaultProps from "./applyDefaultProps.mjs";
3
- export { type AppliedProps, type SkippedDefaults, applyDefaultProps as default };
3
+ export { type AppliedProps, type SkippedDefaults, applyDefaultProps, applyDefaultProps as default };
@@ -1,3 +1,3 @@
1
1
  import applyDefaultProps from "./applyDefaultProps.mjs";
2
2
 
3
- export { applyDefaultProps as default };
3
+ export { applyDefaultProps, applyDefaultProps as default };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
@@ -2,26 +2,26 @@
2
2
  /**
3
3
  * 交差型を1つのオブジェクト型に展開して、エディタ上の型表示を見やすくする
4
4
  */
5
- type Simplify<T> = { [K in keyof T]: T[K] } & {};
5
+ type Simplify<T> = { [K in keyof T]: T[K]; } & {};
6
6
  /** defaults として渡されてもスキップされる値 */
7
- type SkippedDefaults = null | undefined | false;
7
+ export type SkippedDefaults = null | undefined | false;
8
8
  /** スキップされる値を除いた defaults の要素の和集合 */
9
9
  type DefaultsOf<Ds extends readonly unknown[]> = Exclude<Ds[number], SkippedDefaults>;
10
10
  /** defaults 群のいずれかに含まれるキーの和集合 */
11
- type KeysOf<Ds extends readonly unknown[]> = DefaultsOf<Ds> extends infer U ? U extends unknown ? keyof U : never : never;
11
+ type KeysOf<Ds extends readonly unknown[]> = DefaultsOf<Ds> extends (infer U) ? U extends unknown ? keyof U : never : never;
12
12
  /**
13
13
  * キー K について、undefined にならない値を確実に持つ defaults があるか。
14
14
  * スキップされ得る要素(`cond && defaults` など)は確実とはみなさない。
15
15
  */
16
16
  type IsDefinitelyDefined<Ds extends readonly unknown[], K> = Ds extends readonly [infer Head, ...infer Rest] ? [Head] extends [object] ? K extends keyof Head ? undefined extends Head[K] ? IsDefinitelyDefined<Rest, K> : true : IsDefinitelyDefined<Rest, K> : IsDefinitelyDefined<Rest, K> : false;
17
17
  /** キー K について、defaults 群から採用され得る値の型(undefined を除く) */
18
- type DefaultValueOf<Ds extends readonly unknown[], K> = DefaultsOf<Ds> extends infer U ? U extends unknown ? K extends keyof U ? Exclude<U[K], undefined> : never : never : never;
18
+ type DefaultValueOf<Ds extends readonly unknown[], K> = DefaultsOf<Ds> extends (infer U) ? U extends unknown ? K extends keyof U ? Exclude<U[K], undefined> : never : never : never;
19
19
  /**
20
20
  * マージ後の props の型
21
21
  * - どの defaults にも含まれないキー: props の型をそのまま維持
22
22
  * - いずれかの defaults が確実に値を持つキー: null / undefined が取り除かれ、デフォルト値の型が加わる
23
23
  * - defaults の値が undefined になり得るキー: props の型にデフォルト値の型が加わる
24
24
  */
25
- type AppliedProps<P, Ds extends readonly unknown[]> = Simplify<Omit<P, KeysOf<Ds>> & { [K in KeysOf<Ds> & keyof P]: IsDefinitelyDefined<Ds, K> extends true ? NonNullable<P[K]> | DefaultValueOf<Ds, K> : P[K] | DefaultValueOf<Ds, K> }>;
25
+ export type AppliedProps<P, Ds extends readonly unknown[]> = Simplify<Omit<P, KeysOf<Ds>> & { [K in KeysOf<Ds> & keyof P]: IsDefinitelyDefined<Ds, K> extends true ? NonNullable<P[K]> | DefaultValueOf<Ds, K> : P[K] | DefaultValueOf<Ds, K>; }>;
26
26
  //#endregion
27
- export { AppliedProps, SkippedDefaults };
27
+ export {};
@@ -2,26 +2,26 @@
2
2
  /**
3
3
  * 交差型を1つのオブジェクト型に展開して、エディタ上の型表示を見やすくする
4
4
  */
5
- type Simplify<T> = { [K in keyof T]: T[K] } & {};
5
+ type Simplify<T> = { [K in keyof T]: T[K]; } & {};
6
6
  /** defaults として渡されてもスキップされる値 */
7
- type SkippedDefaults = null | undefined | false;
7
+ export type SkippedDefaults = null | undefined | false;
8
8
  /** スキップされる値を除いた defaults の要素の和集合 */
9
9
  type DefaultsOf<Ds extends readonly unknown[]> = Exclude<Ds[number], SkippedDefaults>;
10
10
  /** defaults 群のいずれかに含まれるキーの和集合 */
11
- type KeysOf<Ds extends readonly unknown[]> = DefaultsOf<Ds> extends infer U ? U extends unknown ? keyof U : never : never;
11
+ type KeysOf<Ds extends readonly unknown[]> = DefaultsOf<Ds> extends (infer U) ? U extends unknown ? keyof U : never : never;
12
12
  /**
13
13
  * キー K について、undefined にならない値を確実に持つ defaults があるか。
14
14
  * スキップされ得る要素(`cond && defaults` など)は確実とはみなさない。
15
15
  */
16
16
  type IsDefinitelyDefined<Ds extends readonly unknown[], K> = Ds extends readonly [infer Head, ...infer Rest] ? [Head] extends [object] ? K extends keyof Head ? undefined extends Head[K] ? IsDefinitelyDefined<Rest, K> : true : IsDefinitelyDefined<Rest, K> : IsDefinitelyDefined<Rest, K> : false;
17
17
  /** キー K について、defaults 群から採用され得る値の型(undefined を除く) */
18
- type DefaultValueOf<Ds extends readonly unknown[], K> = DefaultsOf<Ds> extends infer U ? U extends unknown ? K extends keyof U ? Exclude<U[K], undefined> : never : never : never;
18
+ type DefaultValueOf<Ds extends readonly unknown[], K> = DefaultsOf<Ds> extends (infer U) ? U extends unknown ? K extends keyof U ? Exclude<U[K], undefined> : never : never : never;
19
19
  /**
20
20
  * マージ後の props の型
21
21
  * - どの defaults にも含まれないキー: props の型をそのまま維持
22
22
  * - いずれかの defaults が確実に値を持つキー: null / undefined が取り除かれ、デフォルト値の型が加わる
23
23
  * - defaults の値が undefined になり得るキー: props の型にデフォルト値の型が加わる
24
24
  */
25
- type AppliedProps<P, Ds extends readonly unknown[]> = Simplify<Omit<P, KeysOf<Ds>> & { [K in KeysOf<Ds> & keyof P]: IsDefinitelyDefined<Ds, K> extends true ? NonNullable<P[K]> | DefaultValueOf<Ds, K> : P[K] | DefaultValueOf<Ds, K> }>;
25
+ export type AppliedProps<P, Ds extends readonly unknown[]> = Simplify<Omit<P, KeysOf<Ds>> & { [K in KeysOf<Ds> & keyof P]: IsDefinitelyDefined<Ds, K> extends true ? NonNullable<P[K]> | DefaultValueOf<Ds, K> : P[K] | DefaultValueOf<Ds, K>; }>;
26
26
  //#endregion
27
- export { AppliedProps, SkippedDefaults };
27
+ export {};
@@ -1,3 +1,4 @@
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
1
2
  let react = require("react");
2
3
 
3
4
  //#region src/utils/ensureComponent/ensureComponent.ts
@@ -25,4 +26,4 @@ function ensureComponent(component) {
25
26
  }
26
27
 
27
28
  //#endregion
28
- module.exports = ensureComponent;
29
+ exports.default = ensureComponent;
@@ -1,5 +1,4 @@
1
1
  import { ComponentPropsWithRef, ComponentType, ElementType } from "react";
2
-
3
2
  //#region src/utils/ensureComponent/ensureComponent.d.ts
4
3
  /**
5
4
  * 組み込みタグの場合はコンポーネントに変換して返す
@@ -1,11 +1,9 @@
1
1
  import { ComponentPropsWithRef, ComponentType, ElementType } from "react";
2
-
3
2
  //#region src/utils/ensureComponent/ensureComponent.d.ts
4
3
  /**
5
4
  * 組み込みタグの場合はコンポーネントに変換して返す
6
5
  * @param component 組み込みタグ or コンポーネント
7
6
  * @returns コンポーネント
8
7
  */
9
- declare function ensureComponent<C extends ElementType>(component: C): ComponentType<ComponentPropsWithRef<C>>;
10
- //#endregion
11
- export { ensureComponent as default };
8
+ export default function ensureComponent<C extends ElementType>(component: C): ComponentType<ComponentPropsWithRef<C>>;
9
+ //#endregion
@@ -1,3 +1,5 @@
1
- const require_utils_ensureComponent_ensureComponent = require('./ensureComponent.cjs');
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
2
+ const require_utils_ensureComponent_ensureComponent = require("./ensureComponent.cjs");
2
3
 
3
- module.exports = require_utils_ensureComponent_ensureComponent;
4
+ exports.default = require_utils_ensureComponent_ensureComponent.default;
5
+ exports.ensureComponent = require_utils_ensureComponent_ensureComponent.default;
@@ -1,2 +1,2 @@
1
1
  import ensureComponent from "./ensureComponent.cjs";
2
- export = ensureComponent;
2
+ export { ensureComponent as default, ensureComponent };
@@ -1,2 +1,2 @@
1
1
  import ensureComponent from "./ensureComponent.mjs";
2
- export { ensureComponent as default };
2
+ export { ensureComponent as default, ensureComponent };
@@ -1,3 +1,3 @@
1
1
  import ensureComponent from "./ensureComponent.mjs";
2
2
 
3
- export { ensureComponent as default };
3
+ export { ensureComponent as default, ensureComponent };
@@ -1,30 +1,34 @@
1
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
1
2
  let react = require("react");
2
3
 
3
4
  //#region src/utils/extendElement/extendElement.ts
4
5
  /**
5
- * classNameとstyleはマージ、それ以外のプロパティはpropsの値で上書きしてcloneElementを実行する
6
+ * classNameとstyleはマージ、それ以外のプロパティはoverridePropsの値で上書きしてcloneElementを実行する
7
+ *
8
+ * - className: 元のclassNameの後ろに空白区切りで追加する(空文字は無視する)
9
+ * - style: 元のstyleにプロパティ単位で上書きする(値がundefinedのプロパティは無視する)
10
+ * - それ以外: overridePropsの値で上書きする(値がundefinedのプロパティは無視する)
11
+ *
6
12
  * @param element エレメント
7
13
  * @param overrideProps 新しいエレメントのプロパティをオーバーライドするプロパティ
8
- * @param children 子要素
9
- * @returns
14
+ * @param children 子要素。省略した場合は元の子要素を引き継ぐ
15
+ * @returns 新しいエレメント
10
16
  */
11
17
  function extendElement(element, overrideProps, ...children) {
12
- const { className: elClassName, style: elStyle, ...elRest } = element.props;
13
- const { className: orClassName, style: orStyle, ...orRest } = overrideProps || {};
14
- let className = elClassName;
15
- if (orClassName != null) className = className ? `${className} ${orClassName}` : orClassName;
16
- const style = { ...elStyle };
17
- if (orStyle) {
18
- for (const [key, value] of Object.entries(orStyle)) if (value !== void 0) style[key] = value;
18
+ const { className, style, ...rest } = overrideProps ?? {};
19
+ const props = {};
20
+ for (const [key, value] of Object.entries(rest)) if (value !== void 0) props[key] = value;
21
+ if (className) {
22
+ const baseClassName = element.props.className;
23
+ props.className = baseClassName ? `${baseClassName} ${className}` : className;
24
+ }
25
+ if (style) {
26
+ const mergedStyle = { ...element.props.style };
27
+ for (const [key, value] of Object.entries(style)) if (value !== void 0) mergedStyle[key] = value;
28
+ props.style = mergedStyle;
19
29
  }
20
- const props = {
21
- className,
22
- style,
23
- ...elRest
24
- };
25
- for (const [key, value] of Object.entries(orRest)) if (value !== void 0) props[key] = value;
26
30
  return (0, react.cloneElement)(element, props, ...children);
27
31
  }
28
32
 
29
33
  //#endregion
30
- module.exports = extendElement;
34
+ exports.default = extendElement;
@@ -1,12 +1,17 @@
1
- import { HTMLAttributes, ReactElement, ReactNode } from "react";
2
-
1
+ import { ExtendableProps } from "./types.cjs";
2
+ import { ReactElement, ReactNode } from "react";
3
3
  //#region src/utils/extendElement/extendElement.d.ts
4
4
  /**
5
- * classNameとstyleはマージ、それ以外のプロパティはpropsの値で上書きしてcloneElementを実行する
5
+ * classNameとstyleはマージ、それ以外のプロパティはoverridePropsの値で上書きしてcloneElementを実行する
6
+ *
7
+ * - className: 元のclassNameの後ろに空白区切りで追加する(空文字は無視する)
8
+ * - style: 元のstyleにプロパティ単位で上書きする(値がundefinedのプロパティは無視する)
9
+ * - それ以外: overridePropsの値で上書きする(値がundefinedのプロパティは無視する)
10
+ *
6
11
  * @param element エレメント
7
12
  * @param overrideProps 新しいエレメントのプロパティをオーバーライドするプロパティ
8
- * @param children 子要素
9
- * @returns
13
+ * @param children 子要素。省略した場合は元の子要素を引き継ぐ
14
+ * @returns 新しいエレメント
10
15
  */
11
- declare function extendElement<P extends HTMLAttributes<T>, T extends HTMLElement>(element: ReactElement<P>, overrideProps?: P, ...children: ReactNode[]): ReactElement<P>;
16
+ declare function extendElement<P extends ExtendableProps>(element: ReactElement<P>, overrideProps?: Partial<P>, ...children: ReactNode[]): ReactElement<P>;
12
17
  export = extendElement;
@@ -1,13 +1,17 @@
1
- import { HTMLAttributes, ReactElement, ReactNode } from "react";
2
-
1
+ import { ExtendableProps } from "./types.mjs";
2
+ import { ReactElement, ReactNode } from "react";
3
3
  //#region src/utils/extendElement/extendElement.d.ts
4
4
  /**
5
- * classNameとstyleはマージ、それ以外のプロパティはpropsの値で上書きしてcloneElementを実行する
5
+ * classNameとstyleはマージ、それ以外のプロパティはoverridePropsの値で上書きしてcloneElementを実行する
6
+ *
7
+ * - className: 元のclassNameの後ろに空白区切りで追加する(空文字は無視する)
8
+ * - style: 元のstyleにプロパティ単位で上書きする(値がundefinedのプロパティは無視する)
9
+ * - それ以外: overridePropsの値で上書きする(値がundefinedのプロパティは無視する)
10
+ *
6
11
  * @param element エレメント
7
12
  * @param overrideProps 新しいエレメントのプロパティをオーバーライドするプロパティ
8
- * @param children 子要素
9
- * @returns
13
+ * @param children 子要素。省略した場合は元の子要素を引き継ぐ
14
+ * @returns 新しいエレメント
10
15
  */
11
- declare function extendElement<P extends HTMLAttributes<T>, T extends HTMLElement>(element: ReactElement<P>, overrideProps?: P, ...children: ReactNode[]): ReactElement<P>;
12
- //#endregion
13
- export { extendElement as default };
16
+ export default function extendElement<P extends ExtendableProps>(element: ReactElement<P>, overrideProps?: Partial<P>, ...children: ReactNode[]): ReactElement<P>;
17
+ //#endregion