@vertesia/ui 0.55.0 → 0.56.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 (70) hide show
  1. package/lib/esm/code/index.js +3 -0
  2. package/lib/esm/code/index.js.map +1 -0
  3. package/lib/esm/components/index.js +3 -0
  4. package/lib/esm/components/index.js.map +1 -0
  5. package/lib/esm/features/index.js +3 -0
  6. package/lib/esm/features/index.js.map +1 -0
  7. package/lib/esm/form/index.js +3 -0
  8. package/lib/esm/form/index.js.map +1 -0
  9. package/lib/esm/router/index.js +6 -0
  10. package/lib/esm/router/index.js.map +1 -0
  11. package/lib/esm/session/index.js +3 -0
  12. package/lib/esm/session/index.js.map +1 -0
  13. package/lib/tsconfig.tsbuildinfo +1 -0
  14. package/lib/types/code/index.d.ts +0 -0
  15. package/lib/types/components/index.d.ts +0 -0
  16. package/lib/types/features/index.d.ts +0 -0
  17. package/lib/types/form/index.d.ts +0 -0
  18. package/lib/types/router/index.d.ts +4 -0
  19. package/lib/types/session/index.d.ts +0 -0
  20. package/lib/vertesia-ui-code.js +2 -0
  21. package/lib/vertesia-ui-code.js.map +1 -0
  22. package/lib/vertesia-ui-components.js +2 -0
  23. package/lib/vertesia-ui-components.js.map +1 -0
  24. package/lib/vertesia-ui-features.js +2 -0
  25. package/lib/vertesia-ui-features.js.map +1 -0
  26. package/lib/vertesia-ui-form.js +2 -0
  27. package/lib/vertesia-ui-form.js.map +1 -0
  28. package/lib/vertesia-ui-router.js +2 -0
  29. package/lib/vertesia-ui-router.js.map +1 -0
  30. package/lib/vertesia-ui-session.js +2 -0
  31. package/lib/vertesia-ui-session.js.map +1 -0
  32. package/package.json +54 -35
  33. package/src/code/index.ts +1 -0
  34. package/src/components/index.ts +1 -0
  35. package/src/features/index.ts +1 -0
  36. package/src/form/index.ts +1 -0
  37. package/src/router/index.ts +8 -0
  38. package/src/session/index.ts +1 -0
  39. package/src/vite-env.d.ts +2 -0
  40. package/README.md +0 -1
  41. package/lib/context/HostContext.d.ts +0 -67
  42. package/lib/context/HostContext.d.ts.map +0 -1
  43. package/lib/context/HostContext.js +0 -2
  44. package/lib/context/HostContext.js.map +0 -1
  45. package/lib/context/index.d.ts +0 -9
  46. package/lib/context/index.d.ts.map +0 -1
  47. package/lib/context/index.js +0 -11
  48. package/lib/context/index.js.map +0 -1
  49. package/lib/host/PluginHost.d.ts +0 -7
  50. package/lib/host/PluginHost.d.ts.map +0 -1
  51. package/lib/host/PluginHost.js +0 -37
  52. package/lib/host/PluginHost.js.map +0 -1
  53. package/lib/host/PluginManager.d.ts +0 -59
  54. package/lib/host/PluginManager.d.ts.map +0 -1
  55. package/lib/host/PluginManager.js +0 -195
  56. package/lib/host/PluginManager.js.map +0 -1
  57. package/lib/host/index.d.ts +0 -3
  58. package/lib/host/index.d.ts.map +0 -1
  59. package/lib/host/index.js +0 -3
  60. package/lib/host/index.js.map +0 -1
  61. package/lib/index.d.ts +0 -2
  62. package/lib/index.d.ts.map +0 -1
  63. package/lib/index.js +0 -3
  64. package/lib/index.js.map +0 -1
  65. package/src/context/HostContext.ts +0 -73
  66. package/src/context/index.ts +0 -20
  67. package/src/host/PluginHost.tsx +0 -37
  68. package/src/host/PluginManager.tsx +0 -197
  69. package/src/host/index.ts +0 -2
  70. package/src/index.ts +0 -1
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // code components impl
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/code/index.ts"],"names":[],"mappings":";AAAA,uBAAuB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // components impl
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":";AAAA,kBAAkB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // features impl
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/index.ts"],"names":[],"mappings":";AAAA,gBAAgB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // form engine impl
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/form/index.ts"],"names":[],"mappings":";AAAA,mBAAmB"}
@@ -0,0 +1,6 @@
1
+ // router impl
2
+ console.log('router impl');
3
+ export function xxx() {
4
+ console.log('xxx');
5
+ }
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAI3B,MAAM,UAAU,GAAG;IACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // session impl
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/session/index.ts"],"names":[],"mappings":";AAAA,eAAe"}
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/vite@6.3.5_@types+node@22.15.17_jiti@2.4.2_lightningcss@1.29.2_terser@5.39.0_tsx@3.14.0_yaml@2.7.1/node_modules/vite/types/hmrpayload.d.ts","../../../node_modules/.pnpm/vite@6.3.5_@types+node@22.15.17_jiti@2.4.2_lightningcss@1.29.2_terser@5.39.0_tsx@3.14.0_yaml@2.7.1/node_modules/vite/types/customevent.d.ts","../../../node_modules/.pnpm/vite@6.3.5_@types+node@22.15.17_jiti@2.4.2_lightningcss@1.29.2_terser@5.39.0_tsx@3.14.0_yaml@2.7.1/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@6.3.5_@types+node@22.15.17_jiti@2.4.2_lightningcss@1.29.2_terser@5.39.0_tsx@3.14.0_yaml@2.7.1/node_modules/vite/types/importglob.d.ts","../../../node_modules/.pnpm/vite@6.3.5_@types+node@22.15.17_jiti@2.4.2_lightningcss@1.29.2_terser@5.39.0_tsx@3.14.0_yaml@2.7.1/node_modules/vite/types/importmeta.d.ts","../../../node_modules/.pnpm/vite@6.3.5_@types+node@22.15.17_jiti@2.4.2_lightningcss@1.29.2_terser@5.39.0_tsx@3.14.0_yaml@2.7.1/node_modules/vite/client.d.ts","../src/vite-env.d.ts","../src/code/index.ts","../src/components/index.ts","../src/features/index.ts","../src/form/index.ts","../src/router/index.ts","../src/session/index.ts","../../../node_modules/.pnpm/@types+react@19.1.2/node_modules/@types/react/global.d.ts","../../../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../../../node_modules/.pnpm/@types+react@19.1.2/node_modules/@types/react/index.d.ts","../../../node_modules/.pnpm/@types+react-dom@19.1.2_@types+react@19.1.2/node_modules/@types/react-dom/index.d.ts"],"fileIdsList":[[74],[72,73],[63],[59],[60],[61,62],[64]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"11443a1dcfaaa404c68d53368b5b818712b95dd19f188cab1669c39bee8b84b3","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"19efad8495a7a6b064483fccd1d2b427403dd84e67819f86d1c6ee3d7abf749c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1eef826bc4a19de22155487984e345a34c9cd511dd1170edc7a447cb8231dd4a","affectsGlobalScope":true,"impliedFormat":99},"8660d3513ea792c92da1a803056cd567fdb1eced8cab1f101c8c59ca8312d22b",{"version":"138a39cc692a5dc58b62ad44fb9a1fb40eed6b0eae7eeb36e8609f6e38b5b75c","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"ec8ff539eba3c3e37e1d1fc309f5daa39c27567ed69873cd871916cb49cf6ad2","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"36038f3156a03e99517d75641c105f7700f6dda9e856c5dc558c1a747661fc6e","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"8e06f9e615f89829e00de95c3f1dfaed0be7daa4458f452b0958436eb2b1f7e9","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"94fb924a3d61e2930124821924857c533247c5ebc12a33fbb7ba146d6630014c","signature":"efe38985459d9589363d50ccbfa296e4ea31df150aee04f4562e4d3c5914c079"},{"version":"48bab3aa95acfa46cdd3748e8c2015709502540c3c50a3267e08ffb927aa89ed","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"742d4b7b02ffc3ba3c4258a3d196457da2b3fec0125872fd0776c50302a11b9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"5f2c3a441535395e794d439bbd5e57e71c61995ff27f06e898a25b00d7e0926f","impliedFormat":1},{"version":"115b2ad73fa7d175cd71a5873d984c21593b2a022f1a2036cc39d9f53629e5dc","impliedFormat":1}],"root":[[65,71]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declarationDir":"./types","esModuleInterop":true,"experimentalDecorators":true,"module":99,"noFallthroughCasesInSwitch":true,"noPropertyAccessFromIndexSignature":false,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./esm","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"useDefineForClassFields":true,"useUnknownInCatchVariables":true},"referencedMap":[[75,1],[74,2],[64,3],[60,4],[61,5],[63,6],[65,7]],"latestChangedDtsFile":"./types/session/index.d.ts","version":"5.8.3"}
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,4 @@
1
+ export interface Route {
2
+ xxx: boolean;
3
+ }
4
+ export declare function xxx(): void;
File without changes
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=vertesia-ui-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertesia-ui-code.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=vertesia-ui-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertesia-ui-components.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=vertesia-ui-features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertesia-ui-features.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=vertesia-ui-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertesia-ui-form.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ function o(){console.log("xxx")}console.log("router impl");export{o as xxx};
2
+ //# sourceMappingURL=vertesia-ui-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertesia-ui-router.js","sources":["../src/router/index.ts"],"sourcesContent":[null],"names":["xxx","console","log"],"mappings":"SAKgBA,IACZC,QAAQC,IAAI,MAChB,CANAD,QAAQC,IAAI"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=vertesia-ui-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertesia-ui-session.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vertesia/ui",
3
- "version": "0.55.0",
3
+ "version": "0.56.0",
4
4
  "description": "Vertesia UI components and and hooks",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -17,54 +17,73 @@
17
17
  "components",
18
18
  "hooks"
19
19
  ],
20
- "devDependencies": {
21
- "@types/react": "^19.1.0",
22
- "@types/react-dom": "^19.1.1",
23
- "typescript": "^5.0.2"
24
- },
25
- "peerDependencies": {
26
- "react": ">=19.0.0",
27
- "react-dom": ">=19.0.0"
28
- },
29
- "optionalDependencies": {
30
- "react": ">=19.0.0",
31
- "react-dom": ">=19.0.0"
32
- },
33
- "types": "./lib/index.d.ts",
34
20
  "dependencies": {
35
- "@vertesia/client": "0.55.0",
36
- "@vertesia/common": "0.55.0"
21
+ "react": "^19.1.0",
22
+ "react-dom": "^19.1.0",
23
+ "@vertesia/client": "0.56.0",
24
+ "@vertesia/common": "0.56.0"
25
+ },
26
+ "devDependencies": {
27
+ "@rollup/plugin-commonjs": "^28.0.3",
28
+ "@rollup/plugin-node-resolve": "^16.0.1",
29
+ "@rollup/plugin-typescript": "^12.1.2",
30
+ "@types/react": "^19.1.2",
31
+ "@types/react-dom": "^19.1.2",
32
+ "rollup": "^4.40.2",
33
+ "rollup-plugin-terser": "^7.0.2",
34
+ "typescript": "~5.8.3"
37
35
  },
38
36
  "exports": {
39
- ".": {
40
- "types": "./lib/index.d.ts",
41
- "default": "./lib/index.js"
37
+ "./router": {
38
+ "types": "./lib/types/router/index.d.ts",
39
+ "default": "./lib/router.js"
42
40
  },
43
- "./host": {
44
- "types": "./lib/host/index.d.ts",
45
- "default": "./lib/host/index.js"
41
+ "./session": {
42
+ "types": "./lib/types/session/index.d.ts",
43
+ "default": "./lib/session.js"
46
44
  },
47
- "./context": {
48
- "types": "./lib/context/index.d.ts",
49
- "default": "./lib/context/index.js"
45
+ "./components": {
46
+ "types": "./lib/types/components/index.d.ts",
47
+ "default": "./lib/components.js"
48
+ },
49
+ "./code": {
50
+ "types": "./lib/types/code/index.d.ts",
51
+ "default": "./lib/code.js"
52
+ },
53
+ "./form": {
54
+ "types": "./lib/types/form/index.d.ts",
55
+ "default": "./lib/form.js"
56
+ },
57
+ "./features": {
58
+ "types": "./lib/types/features/index.d.ts",
59
+ "default": "./lib/features.js"
50
60
  }
51
61
  },
62
+ "types": "./lib/index.d.ts",
52
63
  "typesVersions": {
53
64
  "*": {
54
- ".": [
55
- "./lib/index.d.ts"
65
+ "router": [
66
+ "./lib/types/router/index.d.ts"
67
+ ],
68
+ "session": [
69
+ "./lib/types/session/index.d.ts"
70
+ ],
71
+ "components": [
72
+ "./lib/types/components/index.d.ts"
73
+ ],
74
+ "code": [
75
+ "./lib/types/code/index.d.ts"
56
76
  ],
57
- "host": [
58
- "./lib/host.d.ts"
77
+ "features": [
78
+ "./lib/types/features/index.d.ts"
59
79
  ],
60
- "context": [
61
- "./lib/context/index.d.ts"
80
+ "form": [
81
+ "./lib/types/form/index.d.ts"
62
82
  ]
63
83
  }
64
84
  },
65
85
  "scripts": {
66
- "eslint": "eslint './src/**/*.{jsx,js,tsx,ts}'",
67
- "build": "rm -rf ./lib ./tsconfig.tsbuildinfo && tsc --build",
68
- "clean": "rimraf ./node_modules ./lib ./tsconfig.tsbuildinfo"
86
+ "build": "tsc -b && pnpm exec rollup -c",
87
+ "lint": "eslint ."
69
88
  }
70
89
  }
@@ -0,0 +1 @@
1
+ // code components impl
@@ -0,0 +1 @@
1
+ // components impl
@@ -0,0 +1 @@
1
+ // features impl
@@ -0,0 +1 @@
1
+ // form engine impl
@@ -0,0 +1,8 @@
1
+ // router impl
2
+ console.log('router impl');
3
+ export interface Route {
4
+ xxx: boolean
5
+ }
6
+ export function xxx() {
7
+ console.log('xxx');
8
+ }
@@ -0,0 +1 @@
1
+ // session impl
@@ -0,0 +1,2 @@
1
+ /// <reference types="vite/client" />
2
+ /// <reference types="vite-plugin-svgr/client" />
package/README.md DELETED
@@ -1 +0,0 @@
1
- # Composable Prompts hooks for React
@@ -1,67 +0,0 @@
1
- import type { VertesiaClient, ZenoClient } from "@vertesia/client";
2
- import type { AccountRef, AuthTokenPayload, ProjectRef } from "@vertesia/common";
3
- export declare const HOST_CONTEXT_VAR = "__vetesia_host_context__";
4
- export interface UserSession {
5
- isLoading: boolean;
6
- client: VertesiaClient;
7
- authError?: Error;
8
- authToken?: AuthTokenPayload;
9
- lastSelectedAccount?: string | null;
10
- lastSelectedProject?: string | null;
11
- onboardingComplete?: boolean;
12
- store: ZenoClient;
13
- user?: AuthTokenPayload;
14
- account?: AccountRef;
15
- accounts?: AccountRef[];
16
- project?: ProjectRef;
17
- rawAuthToken: Promise<string>;
18
- }
19
- export interface NavigateOptions {
20
- replace?: boolean;
21
- state?: any;
22
- /**
23
- * if defined prepend the basePath to the `to` argument
24
- */
25
- basePath?: string;
26
- }
27
- export interface RouterContext {
28
- location: Location;
29
- params: Record<string, string>;
30
- state: any;
31
- /**
32
- * The path that matched the route. For widlcard `/*` paths this doens;t include the wildcard part.
33
- * You can get the wildcard path from `remainingPath`.
34
- */
35
- matchedRoutePath: string;
36
- remainingPath?: string;
37
- navigate: (path: string, options?: NavigateOptions) => void;
38
- }
39
- type LazyImportFn = () => Promise<any>;
40
- interface ComponentRoute {
41
- path: string;
42
- Component: React.ComponentType<any>;
43
- }
44
- interface LazyComponentRoute {
45
- path: string;
46
- LazyComponent: LazyImportFn;
47
- }
48
- type Route = ComponentRoute | LazyComponentRoute;
49
- export interface MultiPagePluginProps {
50
- title: string;
51
- routes: Route[];
52
- /**
53
- * The path to use for the root resource. Defaults to '/'. Cannot contains path vairables or wildcards
54
- */
55
- index?: string;
56
- children?: React.ReactNode;
57
- fixLinks?: boolean;
58
- }
59
- export interface HostContext {
60
- useUserSession: () => UserSession;
61
- useRouterContext: () => RouterContext;
62
- useNavigate: () => (path: string, options?: NavigateOptions) => void;
63
- useLocation: () => Location;
64
- MultiPagePlugin: React.ComponentType<MultiPagePluginProps>;
65
- }
66
- export {};
67
- //# sourceMappingURL=HostContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HostContext.d.ts","sourceRoot":"","sources":["../../src/context/HostContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEjF,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAK3D,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CAChC;AACD,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IAGnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,GAAG,CAAC;IACX;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;CAC/D;AACD,KAAK,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACvC,UAAU,cAAc;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CACvC;AACD,UAAU,kBAAkB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,YAAY,CAAC;CAC/B;AACD,KAAK,KAAK,GAAG,cAAc,GAAG,kBAAkB,CAAC;AACjD,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,WAAW;IACxB,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACrE,WAAW,EAAE,MAAM,QAAQ,CAAC;IAC5B,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;CAC9D"}
@@ -1,2 +0,0 @@
1
- export const HOST_CONTEXT_VAR = '__vetesia_host_context__';
2
- //# sourceMappingURL=HostContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HostContext.js","sourceRoot":"","sources":["../../src/context/HostContext.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,0BAA0B,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * This file contains the host context which is a set of live components and hooks shared
3
- * with the plugins.
4
- * The plugin must import a component or hook from the host context by using:
5
- * import {SomeComponnet, useSomeHook } from '@vetesia/ui-extension-sdk/context';
6
- */
7
- export declare const useUserSession: () => import("./HostContext.js").UserSession, useRouterContext: () => import("./HostContext.js").RouterContext, useNavigate: () => (path: string, options?: import("./HostContext.js").NavigateOptions) => void, useLocation: () => Location, MultiPagePlugin: import("react").ComponentType<import("./HostContext.js").MultiPagePluginProps>;
8
- export * from "./HostContext.js";
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,eAAO,MACH,cAAc,gDACd,gBAAgB,kDAChB,WAAW,8BAMy/C,CAAC,uDALrgD,WAAW,kBACX,eAAe,gFACR,CAAC;AAEZ,cAAc,kBAAkB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * This file contains the host context which is a set of live components and hooks shared
3
- * with the plugins.
4
- * The plugin must import a component or hook from the host context by using:
5
- * import {SomeComponnet, useSomeHook } from '@vetesia/ui-extension-sdk/context';
6
- */
7
- import { HOST_CONTEXT_VAR } from "./HostContext.js";
8
- const context = globalThis[HOST_CONTEXT_VAR];
9
- export const { useUserSession, useRouterContext, useNavigate, useLocation, MultiPagePlugin, } = context;
10
- export * from "./HostContext.js";
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAe,MAAM,kBAAkB,CAAC;AAEjE,MAAM,OAAO,GAAI,UAAkB,CAAC,gBAAgB,CAAgB,CAAC;AAErE,MAAM,CAAC,MAAM,EACT,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,GAClB,GAAG,OAAO,CAAC;AAEZ,cAAc,kBAAkB,CAAC"}
@@ -1,7 +0,0 @@
1
- import { HostContext } from "../context/HostContext.js";
2
- export declare function PluginHost({ pluginId, slot, context }: {
3
- pluginId: string;
4
- slot: string;
5
- context: HostContext;
6
- }): false | import("react/jsx-runtime").JSX.Element;
7
- //# sourceMappingURL=PluginHost.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PluginHost.d.ts","sourceRoot":"","sources":["../../src/host/PluginHost.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAoB,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAO1E,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,mDAO/G"}
@@ -1,37 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useInsertionEffect, useState } from "react";
3
- import { usePluginModule } from "./PluginManager.js";
4
- import { HOST_CONTEXT_VAR } from "../context/HostContext.js";
5
- function createSharedContext(context) {
6
- globalThis[HOST_CONTEXT_VAR] = context;
7
- return context;
8
- }
9
- export function PluginHost({ pluginId, slot, context }) {
10
- const [contextCreated, setContextCreated] = useState(false);
11
- useEffect(() => {
12
- createSharedContext(context);
13
- setContextCreated(true);
14
- }, []);
15
- return contextCreated && _jsx(_PluginHost, { pluginId: pluginId, slot: slot });
16
- }
17
- function _PluginHost({ pluginId, slot }) {
18
- const { plugin, module, error } = usePluginModule(pluginId);
19
- useInsertionEffect(() => {
20
- if (module) {
21
- plugin.install();
22
- }
23
- }, [module]);
24
- if (!plugin) {
25
- return _jsxs("div", { children: ["Plugin ", pluginId, " not found"] });
26
- }
27
- else if (error) {
28
- return _jsxs("div", { children: ["Failed to load plugin ", plugin.manifest.name, " from ", plugin.manifest.src, ": ", error.message] });
29
- }
30
- else if (module) {
31
- return module.mount(slot);
32
- }
33
- else {
34
- return _jsx("div", { children: "Loading ..." });
35
- }
36
- }
37
- //# sourceMappingURL=PluginHost.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PluginHost.js","sourceRoot":"","sources":["../../src/host/PluginHost.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAe,MAAM,2BAA2B,CAAC;AAE1E,SAAS,mBAAmB,CAAC,OAAoB;IAC5C,UAAkB,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC;IAChD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAA4D;IAC5G,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,SAAS,CAAC,GAAG,EAAE;QACX,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC7B,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,cAAc,IAAI,KAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAI,CAAA;AAC5E,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAsC;IACvE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5D,kBAAkB,CAAC,GAAG,EAAE;QACpB,IAAI,MAAM,EAAE,CAAC;YACT,MAAO,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,qCAAa,QAAQ,kBAAiB,CAAA;IACjD,CAAC;SAAM,IAAI,KAAK,EAAE,CAAC;QACf,OAAO,oDAA4B,MAAM,CAAC,QAAQ,CAAC,IAAI,YAAQ,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAI,KAAK,CAAC,OAAO,IAAO,CAAA;IAC9G,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;SAAM,CAAC;QACJ,OAAO,wCAAsB,CAAA;IACjC,CAAC;AAEL,CAAC"}
@@ -1,59 +0,0 @@
1
- import React from "react";
2
- import { PluginManifest } from "@vertesia/common";
3
- export declare enum PluginInstanceStatus {
4
- registered = 0,
5
- loading = 1,
6
- loaded = 2,
7
- error = 3,//loading error
8
- installed = 4
9
- }
10
- export interface PluginModule {
11
- mount(slot: string): React.ReactNode;
12
- css?: string;
13
- }
14
- export declare class PluginInstance {
15
- manifest: PluginManifest;
16
- status: PluginInstanceStatus;
17
- _module?: PluginModule;
18
- error?: Error;
19
- constructor(manifest: PluginManifest);
20
- get isInstalled(): boolean;
21
- get isLoading(): boolean;
22
- get styleId(): string;
23
- _load(): Promise<void>;
24
- getModule(): Promise<PluginModule>;
25
- install(): void;
26
- uninstall(): Promise<void>;
27
- }
28
- export declare class PluginManager {
29
- plugins: Record<string, PluginInstance>;
30
- constructor(manifests?: PluginManifest[]);
31
- addAll(manifests: PluginManifest[]): PluginInstance[];
32
- add(manifest: PluginManifest): PluginInstance;
33
- remove(id: string): void;
34
- get(id: string): PluginInstance;
35
- }
36
- export interface PluginManagerState {
37
- manager: PluginManager;
38
- refresh(): void;
39
- }
40
- interface PluginsProviderProps {
41
- plugins: PluginManifest[];
42
- children?: React.ReactNode | React.ReactNode[];
43
- }
44
- export declare function PluginsProvider({ plugins, children }: PluginsProviderProps): import("react/jsx-runtime").JSX.Element;
45
- export declare function usePluginManager(): PluginManagerState;
46
- export declare function usePluginInstance(id: string): PluginInstance;
47
- /**
48
- * Get the plugin instance and load the module. Returns null if the plugin is not yet loaded.
49
- * When the plugin loads then returns the plugin instance
50
- * @param id
51
- * @returns
52
- */
53
- export declare function usePluginModule(id: string): {
54
- plugin: PluginInstance | null;
55
- module: PluginModule | null;
56
- error: Error | null;
57
- };
58
- export {};
59
- //# sourceMappingURL=PluginManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/host/PluginManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkE,MAAM,OAAO,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,oBAAY,oBAAoB;IAC5B,UAAU,IAAA;IACV,OAAO,IAAA;IACP,MAAM,IAAA;IACN,KAAK,IAAA,CAAE,eAAe;IACtB,SAAS,IAAA;CACZ;AAED,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAc;IAKJ,QAAQ,EAAE,cAAc;IAJ3C,MAAM,EAAE,oBAAoB,CAAmC;IAC/D,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;gBAEK,QAAQ,EAAE,cAAc;IAG3C,IAAI,WAAW,YAEd;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,OAAO,WAEV;IAEK,KAAK;IAmBL,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAOxC,OAAO;IAmBD,SAAS;CASlB;AAED,qBAAa,aAAa;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAM;gBACjC,SAAS,GAAE,cAAc,EAAO;IAG5C,MAAM,CAAC,SAAS,EAAE,cAAc,EAAE;IAGlC,GAAG,CAAC,QAAQ,EAAE,cAAc;IAK5B,MAAM,CAAC,EAAE,EAAE,MAAM;IAOjB,GAAG,CAAC,EAAE,EAAE,MAAM;CAGjB;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;CACnB;AAID,UAAU,oBAAoB;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;CAClD;AACD,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAU1E;AAED,wBAAgB,gBAAgB,uBAM/B;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,kBAE3C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG;IACzC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACvB,CAkCA"}
@@ -1,195 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext, useEffect, useMemo, useState } from "react";
3
- export var PluginInstanceStatus;
4
- (function (PluginInstanceStatus) {
5
- PluginInstanceStatus[PluginInstanceStatus["registered"] = 0] = "registered";
6
- PluginInstanceStatus[PluginInstanceStatus["loading"] = 1] = "loading";
7
- PluginInstanceStatus[PluginInstanceStatus["loaded"] = 2] = "loaded";
8
- PluginInstanceStatus[PluginInstanceStatus["error"] = 3] = "error";
9
- PluginInstanceStatus[PluginInstanceStatus["installed"] = 4] = "installed";
10
- })(PluginInstanceStatus || (PluginInstanceStatus = {}));
11
- export class PluginInstance {
12
- constructor(manifest) {
13
- Object.defineProperty(this, "manifest", {
14
- enumerable: true,
15
- configurable: true,
16
- writable: true,
17
- value: manifest
18
- });
19
- Object.defineProperty(this, "status", {
20
- enumerable: true,
21
- configurable: true,
22
- writable: true,
23
- value: PluginInstanceStatus.registered
24
- });
25
- Object.defineProperty(this, "_module", {
26
- enumerable: true,
27
- configurable: true,
28
- writable: true,
29
- value: void 0
30
- });
31
- Object.defineProperty(this, "error", {
32
- enumerable: true,
33
- configurable: true,
34
- writable: true,
35
- value: void 0
36
- });
37
- }
38
- get isInstalled() {
39
- return this.status === PluginInstanceStatus.installed;
40
- }
41
- get isLoading() {
42
- return this.status === PluginInstanceStatus.loading;
43
- }
44
- get styleId() {
45
- return `plugin-style-${this.manifest.id}`;
46
- }
47
- async _load() {
48
- if (this.status === PluginInstanceStatus.registered) {
49
- try {
50
- const module = await import(/* @vite-ignore */ this.manifest.src);
51
- this.status = PluginInstanceStatus.loading;
52
- if (typeof module.mount !== "function") {
53
- throw new Error(`Plugin ${this.manifest.id} does not provide a mount function`);
54
- }
55
- this._module = module;
56
- this.status = PluginInstanceStatus.loaded;
57
- }
58
- catch (err) {
59
- this.status = PluginInstanceStatus.error;
60
- throw err;
61
- }
62
- }
63
- else {
64
- throw new Error(`Plugin ${this.manifest.id} was already loaded`);
65
- }
66
- }
67
- async getModule() {
68
- if (!this._module) {
69
- await this._load();
70
- }
71
- return this._module;
72
- }
73
- install() {
74
- if (this.status === PluginInstanceStatus.loaded && this._module) {
75
- const module = this._module;
76
- if (module.css) {
77
- // inject css
78
- let style = document.getElementById(this.styleId);
79
- if (!style) {
80
- style = document.createElement('style');
81
- style.id = this.styleId;
82
- style.appendChild(document.createTextNode(module.css));
83
- document.head.appendChild(style);
84
- this.status = PluginInstanceStatus.installed;
85
- }
86
- }
87
- }
88
- else if (this.status !== PluginInstanceStatus.installed) {
89
- throw new Error(`Plugin ${this.manifest.id} is not loaded: ` + this.status);
90
- }
91
- }
92
- async uninstall() {
93
- if (this.status === PluginInstanceStatus.installed) {
94
- const style = document.getElementById(this.styleId);
95
- if (style) {
96
- style.remove();
97
- this.status = PluginInstanceStatus.loaded;
98
- }
99
- }
100
- }
101
- }
102
- export class PluginManager {
103
- constructor(manifests = []) {
104
- Object.defineProperty(this, "plugins", {
105
- enumerable: true,
106
- configurable: true,
107
- writable: true,
108
- value: {}
109
- });
110
- this.addAll(manifests);
111
- }
112
- addAll(manifests) {
113
- return manifests.map(manifest => this.add(manifest));
114
- }
115
- add(manifest) {
116
- const instance = new PluginInstance(manifest);
117
- this.plugins[manifest.id] = instance;
118
- return instance;
119
- }
120
- remove(id) {
121
- const instance = this.plugins[id];
122
- if (instance) {
123
- instance.uninstall();
124
- delete this.plugins[id];
125
- }
126
- }
127
- get(id) {
128
- return this.plugins[id];
129
- }
130
- }
131
- const PluginManagerContext = createContext(null);
132
- export function PluginsProvider({ plugins, children }) {
133
- const [key, setKey] = useState(0);
134
- const manager = useMemo(() => new PluginManager(plugins), [plugins]);
135
- const ctx = {
136
- manager,
137
- refresh: () => setKey(key + 1),
138
- };
139
- return _jsx(PluginManagerContext.Provider, { value: ctx, children: children }, key);
140
- }
141
- export function usePluginManager() {
142
- const ctx = useContext(PluginManagerContext);
143
- if (!ctx) {
144
- throw new Error('No PluginManagerContext found');
145
- }
146
- return ctx;
147
- }
148
- export function usePluginInstance(id) {
149
- return usePluginManager().manager.get(id);
150
- }
151
- /**
152
- * Get the plugin instance and load the module. Returns null if the plugin is not yet loaded.
153
- * When the plugin loads then returns the plugin instance
154
- * @param id
155
- * @returns
156
- */
157
- export function usePluginModule(id) {
158
- const [module, setModule] = useState(null);
159
- const { manager } = usePluginManager();
160
- const plugin = manager.get(id);
161
- useEffect(() => {
162
- if (plugin) {
163
- plugin.getModule().then(setModule);
164
- }
165
- }, [plugin]);
166
- if (!plugin) {
167
- return {
168
- plugin: null,
169
- module: null,
170
- error: new Error(`Plugin ${id} not found`),
171
- };
172
- }
173
- else if (plugin.error) {
174
- return {
175
- plugin: plugin,
176
- module: plugin._module || null,
177
- error: plugin.error,
178
- };
179
- }
180
- else if (module) {
181
- return {
182
- plugin: plugin,
183
- module: module,
184
- error: null,
185
- };
186
- }
187
- else {
188
- return {
189
- plugin: plugin,
190
- module: module,
191
- error: plugin.error || null,
192
- };
193
- }
194
- }
195
- //# sourceMappingURL=PluginManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/host/PluginManager.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from "./PluginHost.js";
2
- export * from "./PluginManager.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
package/lib/host/index.js DELETED
@@ -1,3 +0,0 @@
1
- export * from "./PluginHost.js";
2
- export * from "./PluginManager.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
package/lib/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/lib/index.js DELETED
@@ -1,3 +0,0 @@
1
- export {};
2
- // TODO export here common components, hooks and utility functions
3
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,kEAAkE"}
@@ -1,73 +0,0 @@
1
- import type { VertesiaClient, ZenoClient } from "@vertesia/client";
2
- import type { AccountRef, AuthTokenPayload, ProjectRef } from "@vertesia/common";
3
-
4
- export const HOST_CONTEXT_VAR = '__vetesia_host_context__';
5
-
6
- // TODO This file redeclare some types from the composable UI / router
7
- // we need to make these pblics and move shared composable-ui parts here.
8
-
9
- export interface UserSession {
10
- isLoading: boolean;
11
- client: VertesiaClient;
12
- authError?: Error;
13
- authToken?: AuthTokenPayload;
14
- lastSelectedAccount?: string | null;
15
- lastSelectedProject?: string | null;
16
- onboardingComplete?: boolean;
17
- store: ZenoClient;
18
- user?: AuthTokenPayload;
19
- account?: AccountRef;
20
- accounts?: AccountRef[];
21
- project?: ProjectRef;
22
- rawAuthToken: Promise<string>
23
- }
24
- export interface NavigateOptions {
25
- replace?: boolean;
26
- state?: any;
27
- /**
28
- * if defined prepend the basePath to the `to` argument
29
- */
30
- basePath?: string;
31
- }
32
-
33
- export interface RouterContext {
34
- location: Location,
35
- // route: Route,
36
- // router: BaseRouter,
37
- params: Record<string, string>,
38
- state: any,
39
- /**
40
- * The path that matched the route. For widlcard `/*` paths this doens;t include the wildcard part.
41
- * You can get the wildcard path from `remainingPath`.
42
- */
43
- matchedRoutePath: string,
44
- remainingPath?: string,
45
- navigate: (path: string, options?: NavigateOptions) => void;
46
- }
47
- type LazyImportFn = () => Promise<any>;
48
- interface ComponentRoute {
49
- path: string;
50
- Component: React.ComponentType<any>;
51
- }
52
- interface LazyComponentRoute {
53
- path: string;
54
- LazyComponent: LazyImportFn;
55
- }
56
- type Route = ComponentRoute | LazyComponentRoute;
57
- export interface MultiPagePluginProps {
58
- title: string;
59
- routes: Route[],
60
- /**
61
- * The path to use for the root resource. Defaults to '/'. Cannot contains path vairables or wildcards
62
- */
63
- index?: string;
64
- children?: React.ReactNode;
65
- fixLinks?: boolean;
66
- }
67
- export interface HostContext {
68
- useUserSession: () => UserSession;
69
- useRouterContext: () => RouterContext;
70
- useNavigate: () => (path: string, options?: NavigateOptions) => void;
71
- useLocation: () => Location;
72
- MultiPagePlugin: React.ComponentType<MultiPagePluginProps>;
73
- }
@@ -1,20 +0,0 @@
1
- /**
2
- * This file contains the host context which is a set of live components and hooks shared
3
- * with the plugins.
4
- * The plugin must import a component or hook from the host context by using:
5
- * import {SomeComponnet, useSomeHook } from '@vetesia/ui-extension-sdk/context';
6
- */
7
-
8
- import { HOST_CONTEXT_VAR, HostContext } from "./HostContext.js";
9
-
10
- const context = (globalThis as any)[HOST_CONTEXT_VAR] as HostContext;
11
-
12
- export const {
13
- useUserSession,
14
- useRouterContext,
15
- useNavigate,
16
- useLocation,
17
- MultiPagePlugin,
18
- } = context;
19
-
20
- export * from "./HostContext.js";
@@ -1,37 +0,0 @@
1
- import { useEffect, useInsertionEffect, useState } from "react";
2
- import { usePluginModule } from "./PluginManager.js";
3
- import { HOST_CONTEXT_VAR, HostContext } from "../context/HostContext.js";
4
-
5
- function createSharedContext(context: HostContext): HostContext {
6
- (globalThis as any)[HOST_CONTEXT_VAR] = context;
7
- return context;
8
- }
9
-
10
- export function PluginHost({ pluginId, slot, context }: { pluginId: string, slot: string, context: HostContext }) {
11
- const [contextCreated, setContextCreated] = useState(false);
12
- useEffect(() => {
13
- createSharedContext(context);
14
- setContextCreated(true);
15
- }, []);
16
- return contextCreated && <_PluginHost pluginId={pluginId} slot={slot} />
17
- }
18
-
19
- function _PluginHost({ pluginId, slot }: { pluginId: string, slot: string }) {
20
- const { plugin, module, error } = usePluginModule(pluginId);
21
- useInsertionEffect(() => {
22
- if (module) {
23
- plugin!.install();
24
- }
25
- }, [module]);
26
-
27
- if (!plugin) {
28
- return <div>Plugin {pluginId} not found</div>
29
- } else if (error) {
30
- return <div>Failed to load plugin {plugin.manifest.name} from {plugin.manifest.src}: {error.message}</div>
31
- } else if (module) {
32
- return module.mount(slot)
33
- } else {
34
- return <div>Loading ...</div>
35
- }
36
-
37
- }
@@ -1,197 +0,0 @@
1
- import React, { createContext, useContext, useEffect, useMemo, useState } from "react";
2
- import { PluginManifest } from "@vertesia/common";
3
-
4
- export enum PluginInstanceStatus {
5
- registered,
6
- loading,
7
- loaded,
8
- error, //loading error
9
- installed,
10
- }
11
-
12
- export interface PluginModule {
13
- mount(slot: string): React.ReactNode;
14
- css?: string;
15
- }
16
-
17
- export class PluginInstance {
18
- status: PluginInstanceStatus = PluginInstanceStatus.registered;
19
- _module?: PluginModule;
20
- error?: Error;
21
-
22
- constructor(public manifest: PluginManifest) {
23
- }
24
-
25
- get isInstalled() {
26
- return this.status === PluginInstanceStatus.installed;
27
- }
28
-
29
- get isLoading() {
30
- return this.status === PluginInstanceStatus.loading;
31
- }
32
-
33
- get styleId() {
34
- return `plugin-style-${this.manifest.id}`;
35
- }
36
-
37
- async _load() {
38
- if (this.status === PluginInstanceStatus.registered) {
39
- try {
40
- const module = await import(/* @vite-ignore */ this.manifest.src);
41
- this.status = PluginInstanceStatus.loading;
42
- if (typeof module.mount !== "function") {
43
- throw new Error(`Plugin ${this.manifest.id} does not provide a mount function`);
44
- }
45
- this._module = module;
46
- this.status = PluginInstanceStatus.loaded;
47
- } catch (err) {
48
- this.status = PluginInstanceStatus.error;
49
- throw err;
50
- }
51
- } else {
52
- throw new Error(`Plugin ${this.manifest.id} was already loaded`);
53
- }
54
- }
55
-
56
- async getModule(): Promise<PluginModule> {
57
- if (!this._module) {
58
- await this._load();
59
- }
60
- return this._module!;
61
- }
62
-
63
- install() {
64
- if (this.status === PluginInstanceStatus.loaded && this._module) {
65
- const module = this._module;
66
- if (module.css) {
67
- // inject css
68
- let style = document.getElementById(this.styleId) as HTMLStyleElement;
69
- if (!style) {
70
- style = document.createElement('style');
71
- style.id = this.styleId;
72
- style.appendChild(document.createTextNode(module.css));
73
- document.head.appendChild(style);
74
- this.status = PluginInstanceStatus.installed;
75
- }
76
- }
77
- } else if (this.status !== PluginInstanceStatus.installed) {
78
- throw new Error(`Plugin ${this.manifest.id} is not loaded: ` + this.status);
79
- }
80
- }
81
-
82
- async uninstall() {
83
- if (this.status === PluginInstanceStatus.installed) {
84
- const style = document.getElementById(this.styleId);
85
- if (style) {
86
- style.remove();
87
- this.status = PluginInstanceStatus.loaded;
88
- }
89
- }
90
- }
91
- }
92
-
93
- export class PluginManager {
94
- plugins: Record<string, PluginInstance> = {};
95
- constructor(manifests: PluginManifest[] = []) {
96
- this.addAll(manifests);
97
- }
98
- addAll(manifests: PluginManifest[]) {
99
- return manifests.map(manifest => this.add(manifest));
100
- }
101
- add(manifest: PluginManifest) {
102
- const instance = new PluginInstance(manifest);
103
- this.plugins[manifest.id] = instance;
104
- return instance;
105
- }
106
- remove(id: string) {
107
- const instance = this.plugins[id];
108
- if (instance) {
109
- instance.uninstall();
110
- delete this.plugins[id];
111
- }
112
- }
113
- get(id: string) {
114
- return this.plugins[id];
115
- }
116
- }
117
-
118
- export interface PluginManagerState {
119
- manager: PluginManager;
120
- refresh(): void;
121
- }
122
-
123
- const PluginManagerContext = createContext<PluginManagerState | null>(null);
124
-
125
- interface PluginsProviderProps {
126
- plugins: PluginManifest[];
127
- children?: React.ReactNode | React.ReactNode[];
128
- }
129
- export function PluginsProvider({ plugins, children }: PluginsProviderProps) {
130
- const [key, setKey] = useState(0);
131
- const manager = useMemo(() => new PluginManager(plugins), [plugins]);
132
- const ctx = {
133
- manager,
134
- refresh: () => setKey(key + 1),
135
- }
136
- return <PluginManagerContext.Provider key={key} value={ctx}>
137
- {children}
138
- </PluginManagerContext.Provider>
139
- }
140
-
141
- export function usePluginManager() {
142
- const ctx = useContext(PluginManagerContext);
143
- if (!ctx) {
144
- throw new Error('No PluginManagerContext found');
145
- }
146
- return ctx;
147
- }
148
-
149
- export function usePluginInstance(id: string) {
150
- return usePluginManager().manager.get(id);
151
- }
152
-
153
- /**
154
- * Get the plugin instance and load the module. Returns null if the plugin is not yet loaded.
155
- * When the plugin loads then returns the plugin instance
156
- * @param id
157
- * @returns
158
- */
159
- export function usePluginModule(id: string): {
160
- plugin: PluginInstance | null,
161
- module: PluginModule | null,
162
- error: Error | null,
163
- } {
164
- const [module, setModule] = useState<PluginModule | null>(null);
165
- const { manager } = usePluginManager();
166
- const plugin = manager.get(id);
167
- useEffect(() => {
168
- if (plugin) {
169
- plugin.getModule().then(setModule);
170
- }
171
- }, [plugin]);
172
- if (!plugin) {
173
- return {
174
- plugin: null,
175
- module: null,
176
- error: new Error(`Plugin ${id} not found`),
177
- }
178
- } else if (plugin.error) {
179
- return {
180
- plugin: plugin,
181
- module: plugin._module || null,
182
- error: plugin.error,
183
- };
184
- } else if (module) {
185
- return {
186
- plugin: plugin,
187
- module: module,
188
- error: null,
189
- };
190
- } else {
191
- return {
192
- plugin: plugin,
193
- module: module,
194
- error: plugin.error || null,
195
- };
196
- }
197
- }
package/src/host/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./PluginHost.js";
2
- export * from "./PluginManager.js";
package/src/index.ts DELETED
@@ -1 +0,0 @@
1
- // TODO export here common components, hooks and utility functions