@ktjs/core 0.14.2 → 0.14.4

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/dist/index.d.ts CHANGED
@@ -43,16 +43,8 @@ declare global {
43
43
  }
44
44
  }
45
45
 
46
- type KTAvailableContent =
47
- | KTRef<any>
48
- | HTMLElement
49
- | Element
50
- | string
51
- | number
52
- | boolean
53
- | null
54
- | undefined
55
- | (KTRef<any> | HTMLElement | Element | string | number | boolean | null | undefined)[];
46
+ type SingleContent = KTRef<any> | HTMLElement | Element | string | number | boolean | null | undefined;
47
+ type KTAvailableContent = SingleContent | SingleContent[] | SingleContent[][];
56
48
  type KTRawContent = KTAvailableContent | Promise<KTAvailableContent>;
57
49
  type KTRawAttr = KTAttribute | string;
58
50
  type KTRawContents = KTAvailableContent;
@@ -143,7 +135,7 @@ type KTComponent = (
143
135
  ref?: KTRef<KTHTMLElement>;
144
136
  children?: KTRawContent;
145
137
  } & KTAttribute &
146
- any
138
+ any,
147
139
  ) => KTHTMLElement | Promise<KTHTMLElement> | any;
148
140
 
149
141
  type HTML<T extends HTMLTag & otherstring> = T extends HTMLTag ? HTMLElementTagNameMap[T] : HTMLElement;
@@ -161,7 +153,7 @@ type H = (<T extends HTMLTag>(tag: T, attr?: KTRawAttr, content?: KTRawContent)
161
153
  * ## About
162
154
  * @package @ktjs/core
163
155
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
164
- * @version 0.14.2 (Last Update: 2026.01.16 22:23:59.363)
156
+ * @version 0.14.4 (Last Update: 2026.01.17 08:54:29.476)
165
157
  * @license MIT
166
158
  * @link https://github.com/baendlorel/kt.js
167
159
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -193,6 +185,22 @@ declare const jsxDEV: typeof jsx;
193
185
  */
194
186
  declare const jsxs: typeof jsx;
195
187
 
188
+ /**
189
+ * A helper to create redrawable elements
190
+ * ```tsx
191
+ * export function MyComponent() {
192
+ * let aa = 10;
193
+ * // ...
194
+ * // aa might be changed
195
+ * return createRedrawable(() => <div>{aa}</div>);
196
+ * }
197
+ * ```
198
+ * Then the returned element has a `redraw` method to redraw itself with new values.
199
+ * @param creator
200
+ * @returns created element
201
+ */
202
+ declare function createRedrawable(creator: () => KTHTMLElement): KTHTMLElement;
203
+
196
204
  /**
197
205
  * Extract component props type (excluding ref and children)
198
206
  */
@@ -204,5 +212,5 @@ declare function KTAsync<T extends KTComponent>(props: {
204
212
  children?: KTRawContent;
205
213
  } & ExtractComponentProps<T>): KTHTMLElement;
206
214
 
207
- export { Fragment, KTAsync, h as createElement, h, jsx, jsxDEV, jsxs, ref };
215
+ export { Fragment, KTAsync, h as createElement, createRedrawable, h, jsx, jsxDEV, jsxs, ref };
208
216
  export type { EventHandler, HTMLTag, KTAttribute, KTHTMLElement, KTRawAttr, KTRawContent, KTRawContents, KTRef };
@@ -223,7 +223,7 @@ var __ktjs_core__ = (function (exports) {
223
223
  * ## About
224
224
  * @package @ktjs/core
225
225
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
226
- * @version 0.14.2 (Last Update: 2026.01.16 22:23:59.363)
226
+ * @version 0.14.4 (Last Update: 2026.01.17 08:54:29.476)
227
227
  * @license MIT
228
228
  * @link https://github.com/baendlorel/kt.js
229
229
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -340,6 +340,32 @@ var __ktjs_core__ = (function (exports) {
340
340
  * This is called when using jsx: "react-jsx" or "react-jsxdev"
341
341
  */
342
342
  const jsxs = jsx;
343
+ /**
344
+ * A helper to create redrawable elements
345
+ * ```tsx
346
+ * export function MyComponent() {
347
+ * let aa = 10;
348
+ * // ...
349
+ * // aa might be changed
350
+ * return createRedrawable(() => <div>{aa}</div>);
351
+ * }
352
+ * ```
353
+ * Then the returned element has a `redraw` method to redraw itself with new values.
354
+ * @param creator
355
+ * @returns created element
356
+ */
357
+ function createRedrawable(creator) {
358
+ let element = creator();
359
+ const redraw = () => {
360
+ const old = element;
361
+ element = creator();
362
+ old.replaceWith(element);
363
+ element.redraw = redraw;
364
+ return element;
365
+ };
366
+ element.redraw = redraw;
367
+ return element;
368
+ }
343
369
 
344
370
  /**
345
371
  * Reference to the created HTML element.
@@ -365,6 +391,7 @@ var __ktjs_core__ = (function (exports) {
365
391
  exports.Fragment = Fragment;
366
392
  exports.KTAsync = KTAsync;
367
393
  exports.createElement = h;
394
+ exports.createRedrawable = createRedrawable;
368
395
  exports.h = h;
369
396
  exports.jsx = jsx;
370
397
  exports.jsxDEV = jsxDEV;
@@ -248,7 +248,7 @@ var __ktjs_core__ = (function (exports) {
248
248
  * ## About
249
249
  * @package @ktjs/core
250
250
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
251
- * @version 0.14.2 (Last Update: 2026.01.16 22:23:59.363)
251
+ * @version 0.14.4 (Last Update: 2026.01.17 08:54:29.476)
252
252
  * @license MIT
253
253
  * @link https://github.com/baendlorel/kt.js
254
254
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -406,6 +406,32 @@ var __ktjs_core__ = (function (exports) {
406
406
  * This is called when using jsx: "react-jsx" or "react-jsxdev"
407
407
  */
408
408
  var jsxs = jsx;
409
+ /**
410
+ * A helper to create redrawable elements
411
+ * ```tsx
412
+ * export function MyComponent() {
413
+ * let aa = 10;
414
+ * // ...
415
+ * // aa might be changed
416
+ * return createRedrawable(() => <div>{aa}</div>);
417
+ * }
418
+ * ```
419
+ * Then the returned element has a `redraw` method to redraw itself with new values.
420
+ * @param creator
421
+ * @returns created element
422
+ */
423
+ function createRedrawable(creator) {
424
+ var element = creator();
425
+ var redraw = function () {
426
+ var old = element;
427
+ element = creator();
428
+ old.replaceWith(element);
429
+ element.redraw = redraw;
430
+ return element;
431
+ };
432
+ element.redraw = redraw;
433
+ return element;
434
+ }
409
435
 
410
436
  /**
411
437
  * Reference to the created HTML element.
@@ -432,6 +458,7 @@ var __ktjs_core__ = (function (exports) {
432
458
  exports.Fragment = Fragment;
433
459
  exports.KTAsync = KTAsync;
434
460
  exports.createElement = h;
461
+ exports.createRedrawable = createRedrawable;
435
462
  exports.h = h;
436
463
  exports.jsx = jsx;
437
464
  exports.jsxDEV = jsxDEV;
package/dist/index.mjs CHANGED
@@ -220,7 +220,7 @@ function applyContent(element, content) {
220
220
  * ## About
221
221
  * @package @ktjs/core
222
222
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
223
- * @version 0.14.2 (Last Update: 2026.01.16 22:23:59.363)
223
+ * @version 0.14.4 (Last Update: 2026.01.17 08:54:29.476)
224
224
  * @license MIT
225
225
  * @link https://github.com/baendlorel/kt.js
226
226
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -337,6 +337,32 @@ const jsxDEV = (...args) => {
337
337
  * This is called when using jsx: "react-jsx" or "react-jsxdev"
338
338
  */
339
339
  const jsxs = jsx;
340
+ /**
341
+ * A helper to create redrawable elements
342
+ * ```tsx
343
+ * export function MyComponent() {
344
+ * let aa = 10;
345
+ * // ...
346
+ * // aa might be changed
347
+ * return createRedrawable(() => <div>{aa}</div>);
348
+ * }
349
+ * ```
350
+ * Then the returned element has a `redraw` method to redraw itself with new values.
351
+ * @param creator
352
+ * @returns created element
353
+ */
354
+ function createRedrawable(creator) {
355
+ let element = creator();
356
+ const redraw = () => {
357
+ const old = element;
358
+ element = creator();
359
+ old.replaceWith(element);
360
+ element.redraw = redraw;
361
+ return element;
362
+ };
363
+ element.redraw = redraw;
364
+ return element;
365
+ }
340
366
 
341
367
  /**
342
368
  * Reference to the created HTML element.
@@ -359,4 +385,4 @@ function KTAsync(props) {
359
385
  return comp;
360
386
  }
361
387
 
362
- export { Fragment, KTAsync, h as createElement, h, jsx, jsxDEV, jsxs, ref };
388
+ export { Fragment, KTAsync, h as createElement, createRedrawable, h, jsx, jsxDEV, jsxs, ref };
@@ -43,16 +43,8 @@ declare global {
43
43
  }
44
44
  }
45
45
 
46
- type KTAvailableContent =
47
- | KTRef<any>
48
- | HTMLElement
49
- | Element
50
- | string
51
- | number
52
- | boolean
53
- | null
54
- | undefined
55
- | (KTRef<any> | HTMLElement | Element | string | number | boolean | null | undefined)[];
46
+ type SingleContent = KTRef<any> | HTMLElement | Element | string | number | boolean | null | undefined;
47
+ type KTAvailableContent = SingleContent | SingleContent[] | SingleContent[][];
56
48
  type KTRawContent = KTAvailableContent | Promise<KTAvailableContent>;
57
49
  type KTRawAttr = KTAttribute | string;
58
50
 
@@ -147,7 +139,7 @@ type H = (<T extends HTMLTag>(tag: T, attr?: KTRawAttr, content?: KTRawContent)
147
139
  * ## About
148
140
  * @package @ktjs/core
149
141
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
150
- * @version 0.14.2 (Last Update: 2026.01.16 22:23:59.363)
142
+ * @version 0.14.4 (Last Update: 2026.01.17 08:54:29.476)
151
143
  * @license MIT
152
144
  * @link https://github.com/baendlorel/kt.js
153
145
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -179,5 +171,21 @@ declare const jsxDEV: typeof jsx;
179
171
  */
180
172
  declare const jsxs: typeof jsx;
181
173
 
182
- export { Fragment, h as createElement, jsx, jsxDEV, jsxs, ref };
174
+ /**
175
+ * A helper to create redrawable elements
176
+ * ```tsx
177
+ * export function MyComponent() {
178
+ * let aa = 10;
179
+ * // ...
180
+ * // aa might be changed
181
+ * return createRedrawable(() => <div>{aa}</div>);
182
+ * }
183
+ * ```
184
+ * Then the returned element has a `redraw` method to redraw itself with new values.
185
+ * @param creator
186
+ * @returns created element
187
+ */
188
+ declare function createRedrawable(creator: () => KTHTMLElement): KTHTMLElement;
189
+
190
+ export { Fragment, h as createElement, createRedrawable, jsx, jsxDEV, jsxs, ref };
183
191
  export type { KTHTMLElement, KTRef };
@@ -220,7 +220,7 @@ function applyContent(element, content) {
220
220
  * ## About
221
221
  * @package @ktjs/core
222
222
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
223
- * @version 0.14.2 (Last Update: 2026.01.16 22:23:59.363)
223
+ * @version 0.14.4 (Last Update: 2026.01.17 08:54:29.476)
224
224
  * @license MIT
225
225
  * @link https://github.com/baendlorel/kt.js
226
226
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -337,6 +337,32 @@ const jsxDEV = (...args) => {
337
337
  * This is called when using jsx: "react-jsx" or "react-jsxdev"
338
338
  */
339
339
  const jsxs = jsx;
340
+ /**
341
+ * A helper to create redrawable elements
342
+ * ```tsx
343
+ * export function MyComponent() {
344
+ * let aa = 10;
345
+ * // ...
346
+ * // aa might be changed
347
+ * return createRedrawable(() => <div>{aa}</div>);
348
+ * }
349
+ * ```
350
+ * Then the returned element has a `redraw` method to redraw itself with new values.
351
+ * @param creator
352
+ * @returns created element
353
+ */
354
+ function createRedrawable(creator) {
355
+ let element = creator();
356
+ const redraw = () => {
357
+ const old = element;
358
+ element = creator();
359
+ old.replaceWith(element);
360
+ element.redraw = redraw;
361
+ return element;
362
+ };
363
+ element.redraw = redraw;
364
+ return element;
365
+ }
340
366
 
341
367
  /**
342
368
  * Reference to the created HTML element.
@@ -347,4 +373,4 @@ function ref(value) {
347
373
  return { value: value, isKT: true };
348
374
  }
349
375
 
350
- export { Fragment, h as createElement, jsx, jsxDEV, jsxs, ref };
376
+ export { Fragment, h as createElement, createRedrawable, jsx, jsxDEV, jsxs, ref };
@@ -37,16 +37,8 @@ declare global {
37
37
  }
38
38
  }
39
39
 
40
- type KTAvailableContent =
41
- | KTRef<any>
42
- | HTMLElement
43
- | Element
44
- | string
45
- | number
46
- | boolean
47
- | null
48
- | undefined
49
- | (KTRef<any> | HTMLElement | Element | string | number | boolean | null | undefined)[];
40
+ type SingleContent = KTRef<any> | HTMLElement | Element | string | number | boolean | null | undefined;
41
+ type KTAvailableContent = SingleContent | SingleContent[] | SingleContent[][];
50
42
  type KTRawContent = KTAvailableContent | Promise<KTAvailableContent>;
51
43
  type KTRawAttr = KTAttribute | string;
52
44
 
@@ -141,7 +133,7 @@ type H = (<T extends HTMLTag>(tag: T, attr?: KTRawAttr, content?: KTRawContent)
141
133
  * ## About
142
134
  * @package @ktjs/core
143
135
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
144
- * @version 0.14.2 (Last Update: 2026.01.16 22:23:59.363)
136
+ * @version 0.14.4 (Last Update: 2026.01.17 08:54:29.476)
145
137
  * @license MIT
146
138
  * @link https://github.com/baendlorel/kt.js
147
139
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -220,7 +220,7 @@ function applyContent(element, content) {
220
220
  * ## About
221
221
  * @package @ktjs/core
222
222
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
223
- * @version 0.14.2 (Last Update: 2026.01.16 22:23:59.363)
223
+ * @version 0.14.4 (Last Update: 2026.01.17 08:54:29.476)
224
224
  * @license MIT
225
225
  * @link https://github.com/baendlorel/kt.js
226
226
  * @link https://baendlorel.github.io/ Welcome to my site!
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ktjs/core",
3
- "version": "0.14.2",
3
+ "version": "0.14.4",
4
4
  "description": "Core functionality for kt.js - DOM manipulation utilities with JSX/TSX support",
5
5
  "type": "module",
6
6
  "module": "./dist/index.mjs",