@ktjs/core 0.18.2 → 0.18.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.
@@ -45,14 +45,6 @@ var __ktjs_core__ = (function (exports) {
45
45
  async: booleanHandler,
46
46
  hidden: (element, _key, value) => (element.hidden = !!value),
47
47
  };
48
- const ktEventHandlers = {
49
- 'on:ktchange': (element, handler) => element.addEventListener('change', () => handler(element.value)),
50
- 'ontrim:ktchange': (element, handler) => element.addEventListener('change', () => handler(element.value.trim())),
51
- 'on:ktchangenumber': (element, handler) => element.addEventListener('change', () => handler(Number(element.value))),
52
- 'on:ktinput': (element, handler) => element.addEventListener('input', () => handler(element.value)),
53
- 'ontrim:ktinput': (element, handler) => element.addEventListener('input', () => handler(element.value.trim())),
54
- 'on:ktinputnumber': (element, handler) => element.addEventListener('input', () => handler(Number(element.value))),
55
- };
56
48
 
57
49
  const defaultHandler = (element, key, value) => element.setAttribute(key, value);
58
50
  function attrIsObject(element, attr) {
@@ -81,13 +73,8 @@ var __ktjs_core__ = (function (exports) {
81
73
  continue;
82
74
  }
83
75
  const o = attr[key];
84
- // # special handling for kt.js specific events
85
- const ktEvent = ktEventHandlers[key];
86
- if (ktEvent) {
87
- ktEvent(element, o);
88
- }
89
76
  // normal event handler
90
- else if (key.startsWith('on:')) {
77
+ if (key.startsWith('on:')) {
91
78
  element.addEventListener(key.slice(3), o); // chop off the `@`
92
79
  }
93
80
  // normal attributes
@@ -215,7 +202,7 @@ var __ktjs_core__ = (function (exports) {
215
202
  * ## About
216
203
  * @package @ktjs/core
217
204
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
218
- * @version 0.18.2 (Last Update: 2026.01.30 22:52:42.408)
205
+ * @version 0.18.4 (Last Update: 2026.01.31 01:05:10.539)
219
206
  * @license MIT
220
207
  * @link https://github.com/baendlorel/kt.js
221
208
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -243,9 +230,9 @@ var __ktjs_core__ = (function (exports) {
243
230
  * - can alse be used to store normal values, but it is not reactive.
244
231
  * @param value mostly an HTMLElement
245
232
  */
246
- function ref(value) {
233
+ function ref(value, onChange) {
247
234
  let _value = value;
248
- let _onChanges = [];
235
+ let _onChanges = onChange ? [onChange] : [];
249
236
  return {
250
237
  isKT: true,
251
238
  get value() {
@@ -45,26 +45,6 @@ var __ktjs_core__ = (function (exports) {
45
45
  async: booleanHandler,
46
46
  hidden: function (element, _key, value) { return (element.hidden = !!value); },
47
47
  };
48
- var ktEventHandlers = {
49
- 'on:ktchange': function (element, handler) {
50
- return element.addEventListener('change', function () { return handler(element.value); });
51
- },
52
- 'ontrim:ktchange': function (element, handler) {
53
- return element.addEventListener('change', function () { return handler(element.value.trim()); });
54
- },
55
- 'on:ktchangenumber': function (element, handler) {
56
- return element.addEventListener('change', function () { return handler(Number(element.value)); });
57
- },
58
- 'on:ktinput': function (element, handler) {
59
- return element.addEventListener('input', function () { return handler(element.value); });
60
- },
61
- 'ontrim:ktinput': function (element, handler) {
62
- return element.addEventListener('input', function () { return handler(element.value.trim()); });
63
- },
64
- 'on:ktinputnumber': function (element, handler) {
65
- return element.addEventListener('input', function () { return handler(Number(element.value)); });
66
- },
67
- };
68
48
 
69
49
  var defaultHandler = function (element, key, value) { return element.setAttribute(key, value); };
70
50
  function attrIsObject(element, attr) {
@@ -93,13 +73,8 @@ var __ktjs_core__ = (function (exports) {
93
73
  continue;
94
74
  }
95
75
  var o = attr[key];
96
- // # special handling for kt.js specific events
97
- var ktEvent = ktEventHandlers[key];
98
- if (ktEvent) {
99
- ktEvent(element, o);
100
- }
101
76
  // normal event handler
102
- else if (key.startsWith('on:')) {
77
+ if (key.startsWith('on:')) {
103
78
  element.addEventListener(key.slice(3), o); // chop off the `@`
104
79
  }
105
80
  // normal attributes
@@ -240,7 +215,7 @@ var __ktjs_core__ = (function (exports) {
240
215
  * ## About
241
216
  * @package @ktjs/core
242
217
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
243
- * @version 0.18.2 (Last Update: 2026.01.30 22:52:42.408)
218
+ * @version 0.18.4 (Last Update: 2026.01.31 01:05:10.539)
244
219
  * @license MIT
245
220
  * @link https://github.com/baendlorel/kt.js
246
221
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -301,9 +276,9 @@ var __ktjs_core__ = (function (exports) {
301
276
  * - can alse be used to store normal values, but it is not reactive.
302
277
  * @param value mostly an HTMLElement
303
278
  */
304
- function ref(value) {
279
+ function ref(value, onChange) {
305
280
  var _value = value;
306
- var _onChanges = [];
281
+ var _onChanges = onChange ? [onChange] : [];
307
282
  return {
308
283
  isKT: true,
309
284
  get value() {
package/dist/index.mjs CHANGED
@@ -42,14 +42,6 @@ const handlers = {
42
42
  async: booleanHandler,
43
43
  hidden: (element, _key, value) => (element.hidden = !!value),
44
44
  };
45
- const ktEventHandlers = {
46
- 'on:ktchange': (element, handler) => element.addEventListener('change', () => handler(element.value)),
47
- 'ontrim:ktchange': (element, handler) => element.addEventListener('change', () => handler(element.value.trim())),
48
- 'on:ktchangenumber': (element, handler) => element.addEventListener('change', () => handler(Number(element.value))),
49
- 'on:ktinput': (element, handler) => element.addEventListener('input', () => handler(element.value)),
50
- 'ontrim:ktinput': (element, handler) => element.addEventListener('input', () => handler(element.value.trim())),
51
- 'on:ktinputnumber': (element, handler) => element.addEventListener('input', () => handler(Number(element.value))),
52
- };
53
45
 
54
46
  const defaultHandler = (element, key, value) => element.setAttribute(key, value);
55
47
  function attrIsObject(element, attr) {
@@ -78,13 +70,8 @@ function attrIsObject(element, attr) {
78
70
  continue;
79
71
  }
80
72
  const o = attr[key];
81
- // # special handling for kt.js specific events
82
- const ktEvent = ktEventHandlers[key];
83
- if (ktEvent) {
84
- ktEvent(element, o);
85
- }
86
73
  // normal event handler
87
- else if (key.startsWith('on:')) {
74
+ if (key.startsWith('on:')) {
88
75
  element.addEventListener(key.slice(3), o); // chop off the `@`
89
76
  }
90
77
  // normal attributes
@@ -212,7 +199,7 @@ const svgTempWrapper = document.createElement('div');
212
199
  * ## About
213
200
  * @package @ktjs/core
214
201
  * @author Kasukabe Tsumugi <futami16237@gmail.com>
215
- * @version 0.18.2 (Last Update: 2026.01.30 22:52:42.408)
202
+ * @version 0.18.4 (Last Update: 2026.01.31 01:05:10.539)
216
203
  * @license MIT
217
204
  * @link https://github.com/baendlorel/kt.js
218
205
  * @link https://baendlorel.github.io/ Welcome to my site!
@@ -240,9 +227,9 @@ const h = (tag, attr, content) => {
240
227
  * - can alse be used to store normal values, but it is not reactive.
241
228
  * @param value mostly an HTMLElement
242
229
  */
243
- function ref(value) {
230
+ function ref(value, onChange) {
244
231
  let _value = value;
245
- let _onChanges = [];
232
+ let _onChanges = onChange ? [onChange] : [];
246
233
  return {
247
234
  isKT: true,
248
235
  get value() {