@toyz/loom 0.4.0 → 0.5.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 (109) hide show
  1. package/dist/app.d.ts +4 -1
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +9 -9
  4. package/dist/app.js.map +1 -1
  5. package/dist/decorators/create.d.ts +16 -25
  6. package/dist/decorators/create.d.ts.map +1 -1
  7. package/dist/decorators/create.js +25 -34
  8. package/dist/decorators/create.js.map +1 -1
  9. package/dist/decorators/events.d.ts +10 -8
  10. package/dist/decorators/events.d.ts.map +1 -1
  11. package/dist/decorators/events.js +53 -43
  12. package/dist/decorators/events.js.map +1 -1
  13. package/dist/decorators/symbols.d.ts +2 -0
  14. package/dist/decorators/symbols.d.ts.map +1 -1
  15. package/dist/decorators/symbols.js +2 -0
  16. package/dist/decorators/symbols.js.map +1 -1
  17. package/dist/di/decorators.d.ts +15 -15
  18. package/dist/di/decorators.d.ts.map +1 -1
  19. package/dist/di/decorators.js +23 -33
  20. package/dist/di/decorators.js.map +1 -1
  21. package/dist/di/watch.d.ts +1 -7
  22. package/dist/di/watch.d.ts.map +1 -1
  23. package/dist/di/watch.js +17 -20
  24. package/dist/di/watch.js.map +1 -1
  25. package/dist/element/decorators.d.ts +26 -10
  26. package/dist/element/decorators.d.ts.map +1 -1
  27. package/dist/element/decorators.js +75 -31
  28. package/dist/element/decorators.js.map +1 -1
  29. package/dist/element/element.d.ts.map +1 -1
  30. package/dist/element/element.js +15 -3
  31. package/dist/element/element.js.map +1 -1
  32. package/dist/element/form.d.ts +63 -0
  33. package/dist/element/form.d.ts.map +1 -0
  34. package/dist/element/form.js +167 -0
  35. package/dist/element/form.js.map +1 -0
  36. package/dist/element/icon.d.ts +3 -3
  37. package/dist/element/icon.d.ts.map +1 -1
  38. package/dist/element/icon.js +131 -74
  39. package/dist/element/icon.js.map +1 -1
  40. package/dist/element/index.d.ts +8 -1
  41. package/dist/element/index.d.ts.map +1 -1
  42. package/dist/element/index.js +9 -1
  43. package/dist/element/index.js.map +1 -1
  44. package/dist/element/lazy.d.ts +31 -0
  45. package/dist/element/lazy.d.ts.map +1 -0
  46. package/dist/element/lazy.js +71 -0
  47. package/dist/element/lazy.js.map +1 -0
  48. package/dist/element/lifecycle.d.ts +27 -29
  49. package/dist/element/lifecycle.d.ts.map +1 -1
  50. package/dist/element/lifecycle.js +60 -79
  51. package/dist/element/lifecycle.js.map +1 -1
  52. package/dist/element/slots.d.ts +23 -0
  53. package/dist/element/slots.d.ts.map +1 -0
  54. package/dist/element/slots.js +54 -0
  55. package/dist/element/slots.js.map +1 -0
  56. package/dist/element/timing.d.ts +10 -7
  57. package/dist/element/timing.d.ts.map +1 -1
  58. package/dist/element/timing.js +67 -52
  59. package/dist/element/timing.js.map +1 -1
  60. package/dist/element/transition.d.ts +32 -0
  61. package/dist/element/transition.d.ts.map +1 -0
  62. package/dist/element/transition.js +70 -0
  63. package/dist/element/transition.js.map +1 -0
  64. package/dist/element/virtual.js +235 -194
  65. package/dist/element/virtual.js.map +1 -1
  66. package/dist/index.d.ts +2 -2
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +1 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/router/decorators.d.ts +9 -38
  71. package/dist/router/decorators.d.ts.map +1 -1
  72. package/dist/router/decorators.js +7 -52
  73. package/dist/router/decorators.js.map +1 -1
  74. package/dist/router/link.d.ts +4 -4
  75. package/dist/router/link.d.ts.map +1 -1
  76. package/dist/router/link.js +134 -72
  77. package/dist/router/link.js.map +1 -1
  78. package/dist/router/outlet.d.ts +2 -2
  79. package/dist/router/outlet.d.ts.map +1 -1
  80. package/dist/router/outlet.js +188 -138
  81. package/dist/router/outlet.js.map +1 -1
  82. package/dist/router/route-lifecycle.d.ts +2 -2
  83. package/dist/router/route-lifecycle.d.ts.map +1 -1
  84. package/dist/router/route-lifecycle.js +18 -8
  85. package/dist/router/route-lifecycle.js.map +1 -1
  86. package/dist/router/route.d.ts +1 -1
  87. package/dist/router/route.d.ts.map +1 -1
  88. package/dist/router/router.js +2 -2
  89. package/dist/router/router.js.map +1 -1
  90. package/dist/store/decorators.d.ts +32 -24
  91. package/dist/store/decorators.d.ts.map +1 -1
  92. package/dist/store/decorators.js +98 -117
  93. package/dist/store/decorators.js.map +1 -1
  94. package/dist/store/watch.d.ts +12 -11
  95. package/dist/store/watch.d.ts.map +1 -1
  96. package/dist/store/watch.js +20 -15
  97. package/dist/store/watch.js.map +1 -1
  98. package/dist/testing.d.ts +55 -0
  99. package/dist/testing.d.ts.map +1 -0
  100. package/dist/testing.js +99 -0
  101. package/dist/testing.js.map +1 -0
  102. package/dist/transform/transform.d.ts +7 -3
  103. package/dist/transform/transform.d.ts.map +1 -1
  104. package/dist/transform/transform.js +17 -9
  105. package/dist/transform/transform.js.map +1 -1
  106. package/dist/transform/typed.d.ts +1 -1
  107. package/dist/transform/typed.d.ts.map +1 -1
  108. package/dist/transform/typed.js.map +1 -1
  109. package/package.json +5 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Loom — Transform decorator
2
+ * Loom — Transform decorator (TC39 Stage 3)
3
3
  *
4
4
  * @transform — Pipe a value through a transform function before it reaches
5
5
  * the property. Commonly paired with @prop for route params or attribute parsing.
@@ -7,8 +7,12 @@
7
7
  * ```ts
8
8
  * @prop({ param: "id" })
9
9
  * @transform(Number) // "42" → 42
10
- * userId!: number;
10
+ * accessor userId!: number;
11
11
  * ```
12
12
  */
13
- export declare const transform: (fn: (value: any) => any) => (target: any, key: string, desc?: PropertyDescriptor) => void;
13
+ /**
14
+ * Auto-accessor decorator that registers a transform function.
15
+ * The transform is applied by @component's attributeChangedCallback.
16
+ */
17
+ export declare function transform<This extends object, V>(fn: (value: unknown) => V): (_target: ClassAccessorDecoratorTarget<This, V>, context: ClassAccessorDecoratorContext<This, V>) => void;
14
18
  //# sourceMappingURL=transform.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,eAAO,MAAM,SAAS,eAAgC,GAAG,KAAK,GAAG,oCAKw9C,CAAC,6BADxhD,CAAC"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,IAEvE,SAAS,4BAA4B,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9C,SAAS,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,KAC9C,IAAI,CAQR"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Loom — Transform decorator
2
+ * Loom — Transform decorator (TC39 Stage 3)
3
3
  *
4
4
  * @transform — Pipe a value through a transform function before it reaches
5
5
  * the property. Commonly paired with @prop for route params or attribute parsing.
@@ -7,15 +7,23 @@
7
7
  * ```ts
8
8
  * @prop({ param: "id" })
9
9
  * @transform(Number) // "42" → 42
10
- * userId!: number;
10
+ * accessor userId!: number;
11
11
  * ```
12
12
  */
13
13
  import { TRANSFORMS } from "../decorators/symbols";
14
- import { createDecorator } from "../decorators/create";
15
- export const transform = createDecorator((proto, key, fn) => {
16
- const ctor = proto.constructor;
17
- if (!ctor[TRANSFORMS])
18
- ctor[TRANSFORMS] = new Map();
19
- ctor[TRANSFORMS].set(key, fn);
20
- });
14
+ /**
15
+ * Auto-accessor decorator that registers a transform function.
16
+ * The transform is applied by @component's attributeChangedCallback.
17
+ */
18
+ export function transform(fn) {
19
+ return (_target, context) => {
20
+ const key = String(context.name);
21
+ context.addInitializer(function () {
22
+ const ctor = this.constructor;
23
+ if (!ctor[TRANSFORMS])
24
+ ctor[TRANSFORMS] = new Map();
25
+ ctor[TRANSFORMS].set(key, fn);
26
+ });
27
+ };
28
+ }
21
29
  //# sourceMappingURL=transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAA4B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;IACrF,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;IAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,EAAoB,CAAC;IACtE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../src/transform/transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAyB,EAAyB;IACzE,OAAO,CACL,OAA8C,EAC9C,OAA+C,EACzC,EAAE;QACR,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,CAAC,cAAc,CAAC;YACrB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,EAAoB,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -19,7 +19,7 @@
19
19
  * ```
20
20
  */
21
21
  export interface TransformSchema<T> {
22
- [key: string]: (v: string) => any;
22
+ [key: string]: (v: string) => T[keyof T];
23
23
  }
24
24
  /**
25
25
  * Build a typed transform function from a schema object.
@@ -1 +1 @@
1
- {"version":3,"file":"typed.d.ts","sourceRoot":"","sources":["../../src/transform/typed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAQvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,IAEpD,OAAO,GAAG,EAAE,KAAK,MAAM,UAKhC"}
1
+ {"version":3,"file":"typed.d.ts","sourceRoot":"","sources":["../../src/transform/typed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAQvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,IAEpD,OAAO,GAAG,EAAE,KAAK,MAAM,UAKhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"typed.js","sourceRoot":"","sources":["../../src/transform/typed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAI,MAA0B;IACjD,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,GAAG,GAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,GAAG;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,GAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAI,MAA0B;IAC5D,MAAM,EAAE,GAAG,KAAK,CAAI,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAU,EAAE,GAAW,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,EAAoB,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"typed.js","sourceRoot":"","sources":["../../src/transform/typed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMnD;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAI,MAA0B;IACjD,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,GAAG,GAAG,EAA6B,CAAC;QAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,GAAG;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,GAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAI,MAA0B;IAC5D,MAAM,EAAE,GAAG,KAAK,CAAI,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAU,EAAE,GAAW,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,EAAoB,CAAC;QACtE,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toyz/loom",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "Decorator-driven web component framework with reactive state, DOM morphing, DI, and JSX",
6
6
  "license": "MIT",
@@ -62,6 +62,10 @@
62
62
  "./decorators": {
63
63
  "types": "./dist/decorators/index.d.ts",
64
64
  "import": "./dist/decorators/index.js"
65
+ },
66
+ "./testing": {
67
+ "types": "./dist/testing.d.ts",
68
+ "import": "./dist/testing.js"
65
69
  }
66
70
  },
67
71
  "scripts": {