@onetype/framework 2.0.41 → 2.0.43

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 (354) hide show
  1. package/addons/ai/addon.js +78 -0
  2. package/addons/ai/addons/agents/item/functions/describe.js +28 -0
  3. package/addons/ai/addons/agents/item/functions/execute.js +41 -0
  4. package/addons/ai/addons/agents/item/functions/messages.js +38 -0
  5. package/addons/ai/addons/agents/item/functions/run.js +49 -0
  6. package/addons/ai/addons/agents/item/functions/schema.js +45 -0
  7. package/addons/ai/addons/agents/load.js +9 -0
  8. package/addons/ai/addons/orchestrators/item/functions/agents/execute.js +14 -0
  9. package/addons/ai/addons/orchestrators/item/functions/agents/steps.js +23 -0
  10. package/addons/ai/addons/orchestrators/item/functions/modes/action.js +131 -0
  11. package/addons/ai/addons/orchestrators/item/functions/run.js +28 -0
  12. package/addons/ai/addons/orchestrators/item/functions/utils/emit.js +11 -0
  13. package/addons/ai/addons/orchestrators/item/functions/utils/history.js +8 -0
  14. package/addons/ai/addons/orchestrators/item/functions/utils/state.js +29 -0
  15. package/addons/ai/addons/orchestrators/load.js +15 -0
  16. package/addons/ai/addons/pipelines/functions/execute.js +56 -0
  17. package/addons/ai/addons/pipelines/functions/run.js +72 -0
  18. package/addons/ai/addons/pipelines/load.js +6 -0
  19. package/addons/ai/addons/providers/functions/default.js +8 -0
  20. package/addons/ai/addons/providers/item/functions/request.js +108 -0
  21. package/addons/ai/addons/providers/items/nue.js +69 -0
  22. package/addons/ai/addons/providers/items/ollama.js +79 -0
  23. package/addons/ai/addons/providers/load.js +8 -0
  24. package/addons/ai/items/agents/steps.js +159 -0
  25. package/addons/ai/items/agents/summary.js +29 -0
  26. package/addons/ai/items/orchestrators/general.js +7 -0
  27. package/addons/ai/load.js +13 -0
  28. package/addons/ai/test/agents.js +149 -0
  29. package/addons/ai/test/index.js +63 -0
  30. package/addons/core/assets/back/functions/utils/transform.js +21 -23
  31. package/addons/core/assets/back/items/html/css.js +2 -2
  32. package/addons/core/assets/back/items/html/js.js +2 -2
  33. package/addons/core/clients/back/http/item/functions/gRPC/create.js +3 -3
  34. package/addons/core/clients/back/http/item/functions/http/create.js +3 -3
  35. package/addons/core/commands/back/functions/grpc/client.js +3 -3
  36. package/addons/core/commands/back/functions/grpc/server.js +2 -2
  37. package/addons/core/commands/core/addon.js +4 -1
  38. package/addons/core/commands/core/functions/run.js +1 -1
  39. package/addons/core/commands/core/item/functions/run.js +1 -1
  40. package/addons/core/commands/core/load.js +27 -9
  41. package/addons/core/database/back/events/addon.add.js +1 -1
  42. package/addons/core/database/back/events/middleware/addon.items.find.js +2 -2
  43. package/addons/core/database/back/events/middleware/item.crud.create.js +2 -2
  44. package/addons/core/database/back/events/middleware/item.crud.delete.js +2 -2
  45. package/addons/core/database/back/events/middleware/item.crud.update.js +2 -2
  46. package/addons/core/database/back/item/functions/create.js +4 -3
  47. package/addons/core/database/back/item/functions/delete.js +1 -1
  48. package/addons/core/database/back/item/functions/find.js +1 -1
  49. package/addons/core/database/back/item/functions/update.js +3 -3
  50. package/addons/core/database/front/events/addon.add.js +1 -1
  51. package/addons/core/servers/back/grpc/item/functions/start.js +1 -1
  52. package/addons/core/servers/back/http/item/functions/start.js +6 -6
  53. package/addons/float/overlays/css/overlay.css +35 -0
  54. package/addons/float/overlays/js/addon.js +18 -0
  55. package/addons/float/overlays/js/events/click.js +27 -0
  56. package/addons/float/overlays/js/events/escape.js +18 -0
  57. package/addons/float/overlays/js/functions/flip.js +51 -0
  58. package/addons/float/overlays/js/functions/index.js +17 -0
  59. package/addons/float/overlays/js/functions/position.js +62 -0
  60. package/addons/float/overlays/js/functions/reposition.js +29 -0
  61. package/addons/float/overlays/js/item/catch/add.js +123 -0
  62. package/addons/float/overlays/js/item/catch/remove.js +29 -0
  63. package/addons/float/popup/css/popup.css +93 -0
  64. package/addons/float/popup/js/addon.js +34 -0
  65. package/addons/float/popup/js/functions/close.js +25 -0
  66. package/addons/float/popup/js/functions/modal.js +31 -0
  67. package/addons/float/popup/js/functions/popup.js +21 -0
  68. package/addons/float/popup/js/functions/toast.js +55 -0
  69. package/addons/float/popup/js/functions/tooltip.js +34 -0
  70. package/addons/float/popup/js/items/directives/popup.js +58 -0
  71. package/addons/float/popup/js/items/directives/tooltip.js +72 -0
  72. package/addons/render/directives/front/{js/#register/addon.js → addon.js} +8 -8
  73. package/addons/render/directives/front/{js/functions → functions}/process/attributes.js +7 -2
  74. package/addons/render/directives/front/{js/functions → functions}/process/match.js +8 -8
  75. package/addons/render/directives/front/functions/process.js +88 -0
  76. package/{lib/items/directives → addons/render/directives/front/items/self}/1000-render.js +1 -0
  77. package/{lib/items/directives → addons/render/directives/front/items/self}/110-show.js +3 -5
  78. package/{lib/items/directives → addons/render/directives/front/items/self}/160-slot.js +2 -1
  79. package/{lib/items/directives → addons/render/directives/front/items/self}/200-for.js +3 -3
  80. package/addons/render/directives/front/items/self/500-click-outside.js +45 -0
  81. package/addons/render/directives/front/items/self/500-events.js +68 -0
  82. package/addons/render/directives/front/items/self/500-mouse-enter.js +62 -0
  83. package/addons/render/directives/front/items/self/500-mouse-leave.js +62 -0
  84. package/{lib/items/directives → addons/render/directives/front/items/self}/650-fetch.js +2 -3
  85. package/{lib/items/directives → addons/render/directives/front/items/self}/660-form.js +5 -6
  86. package/addons/render/{elements/front/items/directives → directives/front/items/self}/element.js +7 -1
  87. package/addons/render/directives/front/items/self/node.js +43 -0
  88. package/addons/render/elements/front/functions/runtime.js +25 -0
  89. package/addons/render/elements/front/items/self/cards/pricing/pricing.css +174 -0
  90. package/{lib/items/elements/sections → addons/render/elements/front/items/self/cards}/pricing/pricing.js +30 -11
  91. package/addons/render/elements/front/items/self/core/builder/builder.css +180 -0
  92. package/addons/render/elements/front/items/self/core/builder/builder.js +257 -0
  93. package/addons/render/elements/front/items/self/core/repeater/repeater.css +197 -0
  94. package/addons/render/elements/front/items/self/core/repeater/repeater.js +224 -0
  95. package/addons/render/elements/front/items/self/form/button/button.css +250 -0
  96. package/{lib/items/elements → addons/render/elements/front/items/self}/form/button/button.js +16 -21
  97. package/addons/render/elements/front/items/self/form/checkbox/checkbox.css +109 -0
  98. package/addons/render/elements/front/items/self/form/checkbox/checkbox.js +75 -0
  99. package/addons/render/elements/front/items/self/form/color/color.css +156 -0
  100. package/addons/render/elements/front/items/self/form/color/color.js +122 -0
  101. package/addons/render/elements/front/items/self/form/date/date.css +84 -0
  102. package/addons/render/elements/front/items/self/form/date/date.js +68 -0
  103. package/addons/render/elements/front/items/self/form/field/field.css +72 -0
  104. package/{lib/items/elements → addons/render/elements/front/items/self}/form/field/field.js +4 -4
  105. package/addons/render/elements/front/items/self/form/input/input.css +86 -0
  106. package/addons/render/elements/front/items/self/form/input/input.js +124 -0
  107. package/addons/render/elements/front/items/self/form/radio/radio.css +118 -0
  108. package/addons/render/elements/front/items/self/form/radio/radio.js +80 -0
  109. package/addons/render/elements/front/items/self/form/rating/rating.css +57 -0
  110. package/{lib/items/elements → addons/render/elements/front/items/self}/form/rating/rating.js +18 -21
  111. package/addons/render/elements/front/items/self/form/section/section.css +86 -0
  112. package/{lib/items/elements → addons/render/elements/front/items/self}/form/section/section.js +5 -5
  113. package/addons/render/elements/front/items/self/form/select/select.css +186 -0
  114. package/addons/render/elements/front/items/self/form/select/select.js +161 -0
  115. package/addons/render/elements/front/items/self/form/slider/slider.css +123 -0
  116. package/{lib/items/elements → addons/render/elements/front/items/self}/form/slider/slider.js +89 -70
  117. package/addons/render/elements/front/items/self/form/tags/tags.css +152 -0
  118. package/addons/render/elements/front/items/self/form/tags/tags.js +166 -0
  119. package/addons/render/elements/front/items/self/form/textarea/textarea.css +80 -0
  120. package/addons/render/elements/front/items/self/form/textarea/textarea.js +113 -0
  121. package/addons/render/elements/front/items/self/form/toggle/toggle.css +105 -0
  122. package/addons/render/elements/front/items/self/form/toggle/toggle.js +66 -0
  123. package/addons/render/elements/front/items/self/global/code/code.css +97 -0
  124. package/{lib/items/elements → addons/render/elements/front/items/self}/global/code/code.js +10 -6
  125. package/addons/render/elements/front/items/self/global/faq/faq.css +98 -0
  126. package/{lib/items/elements → addons/render/elements/front/items/self}/global/faq/faq.js +16 -4
  127. package/{lib/items/elements → addons/render/elements/front/items/self}/global/heading/heading.css +37 -14
  128. package/addons/render/elements/front/items/self/global/heading/heading.js +46 -0
  129. package/{lib/items/elements → addons/render/elements/front/items/self}/global/markdown/markdown.css +22 -15
  130. package/addons/render/elements/front/items/self/global/markdown/markdown.js +26 -0
  131. package/addons/render/elements/front/items/self/global/menu/menu.css +173 -0
  132. package/addons/render/elements/front/items/self/global/menu/menu.js +103 -0
  133. package/addons/render/elements/front/items/self/global/notice/notice.css +57 -0
  134. package/{lib/items/elements → addons/render/elements/front/items/self}/global/notice/notice.js +4 -4
  135. package/addons/render/elements/front/items/self/global/parameters/parameters.css +96 -0
  136. package/{lib/items/elements → addons/render/elements/front/items/self}/global/parameters/parameters.js +15 -6
  137. package/{lib/items/elements → addons/render/elements/front/items/self}/global/tags/tags.css +18 -5
  138. package/{lib/items/elements → addons/render/elements/front/items/self}/global/tags/tags.js +11 -3
  139. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/navbar/navbar.css +39 -17
  140. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/navbar/navbar.js +24 -10
  141. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/sidebar/sidebar.css +25 -39
  142. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/sidebar/sidebar.js +29 -7
  143. package/addons/render/elements/front/items/self/navigation/tabs/tabs.css +66 -0
  144. package/{lib/items/elements → addons/render/elements/front/items/self}/navigation/tabs/tabs.js +17 -3
  145. package/{lib/items/elements → addons/render/elements/front/items/self}/status/code/code.css +21 -12
  146. package/{lib/items/elements → addons/render/elements/front/items/self}/status/empty/empty.css +23 -18
  147. package/{lib/items/elements → addons/render/elements/front/items/self}/status/empty/empty.js +5 -1
  148. package/{lib/items/elements → addons/render/elements/front/items/self}/status/error/error.css +22 -12
  149. package/{lib/items/elements → addons/render/elements/front/items/self}/status/error/error.js +2 -2
  150. package/{lib/items/elements → addons/render/elements/front/items/self}/status/loading/loading.css +31 -14
  151. package/{lib/items/elements → addons/render/elements/front/items/self}/status/loading/loading.js +4 -4
  152. package/addons/render/pages/core/load.js +1 -1
  153. package/addons/render/pages/front/events/click.js +1 -1
  154. package/addons/render/pages/front/events/load.js +6 -16
  155. package/addons/render/pages/front/functions/change.js +21 -110
  156. package/addons/render/pages/front/functions/match.js +2 -3
  157. package/addons/render/pages/front/functions/open.js +3 -35
  158. package/addons/render/pages/front/functions/resolve.js +30 -0
  159. package/addons/render/pages/front/item/catch/add.js +12 -10
  160. package/addons/render/pages/front/item/catch/remove.js +5 -7
  161. package/addons/render/pages/front/item/functions/enter.js +15 -28
  162. package/addons/render/pages/front/item/functions/leave.js +6 -8
  163. package/addons/render/pages/front/items/commands/change.js +60 -0
  164. package/addons/render/pages/front/items/commands/list.js +38 -0
  165. package/addons/render/pages/front/items/directives/change.js +1 -1
  166. package/addons/render/transforms/css/transforms.css +4 -0
  167. package/addons/render/transforms/{addon.js → js/addon.js} +7 -0
  168. package/addons/render/transforms/js/item/functions/run.js +87 -0
  169. package/addons/services/cloudflare/images/back/addon.js +23 -0
  170. package/addons/services/cloudflare/images/back/expose.js +22 -0
  171. package/addons/services/cloudflare/images/back/functions/api.js +47 -0
  172. package/addons/services/cloudflare/images/back/functions/meta/detect.js +28 -0
  173. package/addons/services/cloudflare/images/back/functions/meta/dimensions/gif.js +11 -0
  174. package/addons/services/cloudflare/images/back/functions/meta/dimensions/jpeg.js +31 -0
  175. package/addons/services/cloudflare/images/back/functions/meta/dimensions/png.js +11 -0
  176. package/addons/services/cloudflare/images/back/functions/meta/dimensions/webp.js +36 -0
  177. package/addons/services/cloudflare/images/back/functions/meta.js +16 -0
  178. package/addons/services/cloudflare/images/back/items/commands/delete.js +38 -0
  179. package/addons/services/cloudflare/images/back/items/commands/get.js +56 -0
  180. package/addons/services/cloudflare/images/back/items/commands/list.js +49 -0
  181. package/addons/services/cloudflare/images/back/items/commands/upload.js +79 -0
  182. package/addons/services/cloudflare/images/back/load.js +21 -0
  183. package/addons/services/cloudflare/images/front/items/elements/browse/browse.css +235 -0
  184. package/addons/services/cloudflare/images/front/items/elements/browse/browse.js +193 -0
  185. package/addons/services/cloudflare/images/front/items/elements/input/input.css +154 -0
  186. package/addons/services/cloudflare/images/front/items/elements/input/input.js +147 -0
  187. package/addons/services/cloudflare/images/sql.txt +43 -0
  188. package/lib/browser.js +1 -24
  189. package/lib/events.js +12 -12
  190. package/lib/load.js +12 -42
  191. package/lib/src/classes/addon/class.js +1 -2
  192. package/lib/src/classes/addon/classes/item/mixins/get.js +3 -3
  193. package/lib/src/classes/addon/classes/item/mixins/set.js +3 -5
  194. package/lib/src/classes/addon/classes/item/mixins/store.js +1 -1
  195. package/lib/src/classes/addon/classes/render/class.js +8 -22
  196. package/lib/src/classes/addon/classes/render/mixins/compile.js +6 -4
  197. package/lib/src/classes/addon/classes/render/mixins/dom.js +3 -1
  198. package/lib/src/classes/addon/classes/render/mixins/events.js +30 -43
  199. package/lib/src/classes/addon/classes/render/mixins/get.js +0 -5
  200. package/lib/src/classes/addon/classes/render/mixins/methods.js +105 -40
  201. package/lib/src/classes/addon/classes/render/mixins/process.js +7 -3
  202. package/lib/src/classes/addon/classes/render/mixins/set.js +3 -1
  203. package/lib/src/classes/addon/mixins/fields.js +4 -6
  204. package/lib/src/classes/addon/mixins/functions.js +11 -11
  205. package/lib/src/classes/addon/mixins/items.js +17 -9
  206. package/lib/src/classes/addon/mixins/render.js +1 -1
  207. package/lib/src/classes/addon/mixins/table.js +1 -1
  208. package/lib/src/classes/error/class.js +10 -0
  209. package/lib/src/mixins/addons.js +7 -20
  210. package/lib/src/mixins/assets.js +1 -1
  211. package/lib/src/mixins/data.js +14 -14
  212. package/lib/src/mixins/dependencies.js +5 -5
  213. package/lib/src/mixins/dom.js +204 -201
  214. package/lib/src/mixins/emitter.js +13 -14
  215. package/lib/src/mixins/error.js +14 -1
  216. package/lib/src/mixins/function.js +1 -0
  217. package/lib/src/mixins/generate.js +1 -1
  218. package/lib/src/mixins/helper.js +3 -31
  219. package/lib/{items/elements/global/markdown → src/mixins}/markdown.js +90 -139
  220. package/lib/src/mixins/middleware.js +2 -2
  221. package/lib/src/mixins/observer.js +337 -0
  222. package/lib/src/mixins/request.js +2 -2
  223. package/lib/src/mixins/route.js +11 -2
  224. package/lib/src/mixins/state.js +17 -3
  225. package/lib/src/onetype.js +11 -18
  226. package/lib/styles/classes/layout.css +1 -3
  227. package/lib/styles/reset.css +1 -1
  228. package/lib/styles/variables.css +2 -1
  229. package/package.json +7 -3
  230. package/README.md +0 -86
  231. package/addons/core/queue/index.js +0 -66
  232. package/addons/float/modals/front/css/modals.css +0 -26
  233. package/addons/float/modals/front/js/addon.js +0 -10
  234. package/addons/float/modals/front/js/item/catch/add.js +0 -48
  235. package/addons/float/modals/front/js/item/catch/remove.js +0 -9
  236. package/addons/float/overlays/front/css/overlays.css +0 -29
  237. package/addons/float/overlays/front/js/addon.js +0 -17
  238. package/addons/float/overlays/front/js/events/click.js +0 -27
  239. package/addons/float/overlays/front/js/events/escape.js +0 -18
  240. package/addons/float/overlays/front/js/functions/flip.js +0 -74
  241. package/addons/float/overlays/front/js/functions/index.js +0 -17
  242. package/addons/float/overlays/front/js/functions/position.js +0 -63
  243. package/addons/float/overlays/front/js/item/catch/add.js +0 -121
  244. package/addons/float/overlays/front/js/item/catch/remove.js +0 -16
  245. package/addons/float/popups/css/popups.css +0 -4
  246. package/addons/float/popups/js/addon.js +0 -18
  247. package/addons/float/popups/js/item/catch/add.js +0 -7
  248. package/addons/float/popups/js/item/catch/remove.js +0 -7
  249. package/addons/float/popups/js/item/catch/set.js +0 -73
  250. package/addons/float/popups/js/items/directives/popup.js +0 -54
  251. package/addons/float/toasts/addon.js +0 -17
  252. package/addons/float/toasts/item/catch/add.js +0 -7
  253. package/addons/float/toasts/item/catch/remove.js +0 -7
  254. package/addons/float/toasts/item/catch/set.js +0 -86
  255. package/addons/float/toasts/items/elements/toast/toast.css +0 -84
  256. package/addons/float/toasts/items/elements/toast/toast.js +0 -61
  257. package/addons/float/tooltips/addon.js +0 -15
  258. package/addons/float/tooltips/item/catch/add.js +0 -7
  259. package/addons/float/tooltips/item/catch/remove.js +0 -26
  260. package/addons/float/tooltips/item/catch/set.js +0 -65
  261. package/addons/float/tooltips/items/directives/tooltip.js +0 -74
  262. package/addons/float/tooltips/items/elements/tooltip.css +0 -64
  263. package/addons/float/tooltips/items/elements/tooltip.js +0 -42
  264. package/addons/render/directives/front/js/functions/process.js +0 -57
  265. package/addons/render/transforms/item/functions/run.js +0 -18
  266. package/docs/addons.md +0 -281
  267. package/docs/architecture.md +0 -238
  268. package/docs/commands.md +0 -308
  269. package/docs/database.md +0 -171
  270. package/docs/frontend.md +0 -396
  271. package/docs/servers.md +0 -187
  272. package/examples/basic-api/README.md +0 -34
  273. package/examples/basic-api/addons/tasks/addon.js +0 -10
  274. package/examples/basic-api/addons/tasks/items/commands/create.js +0 -22
  275. package/examples/basic-api/addons/tasks/items/commands/delete.js +0 -26
  276. package/examples/basic-api/addons/tasks/items/commands/list.js +0 -17
  277. package/examples/basic-api/addons/tasks/items/commands/toggle.js +0 -26
  278. package/examples/basic-api/addons/tasks/load.js +0 -8
  279. package/examples/basic-api/index.js +0 -15
  280. package/examples/basic-api/package.json +0 -7
  281. package/examples/basic-front/back/assets.js +0 -12
  282. package/examples/basic-front/back/index.js +0 -13
  283. package/examples/basic-front/back/items/commands/html.js +0 -14
  284. package/examples/basic-front/back/items/commands/test.js +0 -19
  285. package/examples/basic-front/back/items/html/fonts.js +0 -12
  286. package/examples/basic-front/front/pages/home.js +0 -16
  287. package/examples/basic-front/front/styles/main.css +0 -31
  288. package/examples/basic-front/front/test.js +0 -7
  289. package/examples/basic-front/package.json +0 -7
  290. package/lib/items/directives/500-blur.js +0 -46
  291. package/lib/items/directives/500-change.js +0 -53
  292. package/lib/items/directives/500-click-outside.js +0 -50
  293. package/lib/items/directives/500-click.js +0 -52
  294. package/lib/items/directives/500-double-click.js +0 -52
  295. package/lib/items/directives/500-focus.js +0 -46
  296. package/lib/items/directives/500-input.js +0 -46
  297. package/lib/items/directives/500-keydown.js +0 -53
  298. package/lib/items/directives/500-keyup.js +0 -53
  299. package/lib/items/directives/500-mouse-enter.js +0 -61
  300. package/lib/items/directives/500-mouse-leave.js +0 -61
  301. package/lib/items/directives/500-mouse-move.js +0 -45
  302. package/lib/items/directives/500-scroll.js +0 -45
  303. package/lib/items/directives/500-submit.js +0 -52
  304. package/lib/items/elements/form/button/styles/base.css +0 -176
  305. package/lib/items/elements/form/button/styles/sizes.css +0 -78
  306. package/lib/items/elements/form/button/styles/variants.css +0 -421
  307. package/lib/items/elements/form/checkbox/checkbox.js +0 -58
  308. package/lib/items/elements/form/checkbox/styles/base.css +0 -52
  309. package/lib/items/elements/form/checkbox/styles/sizes.css +0 -39
  310. package/lib/items/elements/form/checkbox/styles/variants.css +0 -121
  311. package/lib/items/elements/form/field/field.css +0 -96
  312. package/lib/items/elements/form/input/input.css +0 -111
  313. package/lib/items/elements/form/input/input.js +0 -79
  314. package/lib/items/elements/form/input/styles/base.css +0 -26
  315. package/lib/items/elements/form/input/styles/sizes.css +0 -15
  316. package/lib/items/elements/form/input/styles/variants.css +0 -98
  317. package/lib/items/elements/form/radio/radio.js +0 -58
  318. package/lib/items/elements/form/radio/styles/base.css +0 -48
  319. package/lib/items/elements/form/radio/styles/sizes.css +0 -36
  320. package/lib/items/elements/form/radio/styles/variants.css +0 -121
  321. package/lib/items/elements/form/rating/rating.css +0 -95
  322. package/lib/items/elements/form/section/section.css +0 -129
  323. package/lib/items/elements/form/slider/slider.css +0 -244
  324. package/lib/items/elements/form/textarea/textarea.css +0 -117
  325. package/lib/items/elements/form/textarea/textarea.js +0 -70
  326. package/lib/items/elements/global/card/card.css +0 -57
  327. package/lib/items/elements/global/card/card.js +0 -48
  328. package/lib/items/elements/global/code/code.css +0 -66
  329. package/lib/items/elements/global/faq/faq.css +0 -76
  330. package/lib/items/elements/global/heading/heading.js +0 -52
  331. package/lib/items/elements/global/notice/notice.css +0 -91
  332. package/lib/items/elements/global/parameters/parameters.css +0 -77
  333. package/lib/items/elements/navigation/tabs/tabs.css +0 -47
  334. package/lib/items/elements/sections/footer/footer.css +0 -205
  335. package/lib/items/elements/sections/footer/footer.js +0 -109
  336. package/lib/items/elements/sections/hero/hero.css +0 -100
  337. package/lib/items/elements/sections/hero/hero.js +0 -54
  338. package/lib/items/elements/sections/pricing/pricing.css +0 -148
  339. package/lib/items/elements/sections/stats/stats.css +0 -34
  340. package/lib/items/elements/sections/stats/stats.js +0 -74
  341. package/lib/src/mixins/logger.js +0 -83
  342. package/lib/styles/queries.css +0 -6
  343. /package/addons/modules/shortcuts/front/{#register/addon.js → addon.js} +0 -0
  344. /package/addons/render/directives/front/{js/functions → functions}/process/data.js +0 -0
  345. /package/{lib/items/directives → addons/render/directives/front/items/self}/100-if.js +0 -0
  346. /package/{lib/items/directives → addons/render/directives/front/items/self}/700-text.js +0 -0
  347. /package/{lib/items/directives → addons/render/directives/front/items/self}/750-html.js +0 -0
  348. /package/addons/render/elements/front/{#register/addon.js → addon.js} +0 -0
  349. /package/{lib/items/elements → addons/render/elements/front/items/self}/status/code/code.js +0 -0
  350. /package/addons/render/transforms/{functions → js/functions}/data.js +0 -0
  351. /package/addons/render/transforms/{functions → js/functions}/run.js +0 -0
  352. /package/addons/render/transforms/{functions → js/functions}/runtime.js +0 -0
  353. /package/addons/render/transforms/{item → js/item}/functions/load.js +0 -0
  354. /package/addons/render/transforms/{items/directives → js/items/self}/transform.js +0 -0
package/docs/database.md DELETED
@@ -1,171 +0,0 @@
1
- # Database
2
-
3
- Custom ORM built on Knex with a fluent query interface. Supports PostgreSQL with 17+ operators including JSONB.
4
-
5
- ## Connection
6
-
7
- ```js
8
- import database from '#database/load.js';
9
- import dotenv from 'dotenv';
10
-
11
- dotenv.config();
12
-
13
- database.Item({
14
- id: 'primary',
15
- port: 5432,
16
- hostname: process.env.DB_HOSTNAME,
17
- username: process.env.DB_USERNAME,
18
- database: process.env.DB_DATABASE,
19
- password: process.env.DB_PASSWORD
20
- });
21
- ```
22
-
23
- Every addon with a `Table()` definition now persists to this database automatically. You can define multiple database connections by using different IDs.
24
-
25
- ## How it works
26
-
27
- The database addon intercepts CRUD middleware channels:
28
- - `item.crud.create` — `item.Create()`
29
- - `item.crud.update` — `item.Update()`
30
- - `item.crud.delete` — `item.Delete()`
31
- - `addon.items.find` — `addon.Find()`
32
-
33
- Without the database addon loaded, the same item API works entirely in-memory. Swap storage without touching business logic.
34
-
35
- ## Query builder
36
-
37
- ```js
38
- // Find one
39
- const user = await users.Find().filter('id', id).one();
40
-
41
- // Find many
42
- const items = await offers.Find()
43
- .filter('deleted', false)
44
- .filter('status', 'Aktivna')
45
- .sort('score', 'desc')
46
- .many();
47
-
48
- // Find with specific database connection
49
- const items = await offers.Find('primary')
50
- .filter('organization_id', 9)
51
- .many();
52
- ```
53
-
54
- ## Pagination
55
-
56
- ```js
57
- const items = await offers.Find()
58
- .page(2)
59
- .limit(20)
60
- .many();
61
-
62
- // Plain result — raw objects with pagination metadata
63
- const { items, total, pages } = await offers.Find()
64
- .page(page)
65
- .limit(limit)
66
- .plain();
67
-
68
- // Count
69
- const total = await offers.Find()
70
- .filter('status', 'Aktivna')
71
- .count();
72
- ```
73
-
74
- ## Filtering
75
-
76
- ```js
77
- // Equals (default)
78
- .filter('status', 'Aktivna')
79
-
80
- // Not equals
81
- .filter('id', excludeId, 'NOT EQUALS')
82
-
83
- // IN
84
- .filter('organization_id', [1, 2, 9], 'IN')
85
-
86
- // LIKE / ILIKE (case-insensitive)
87
- .filter('name', '%beach%', 'ILIKE')
88
-
89
- // Comparison
90
- .filter('age', 18, '>=')
91
- .filter('age', 65, '<=')
92
-
93
- // BETWEEN
94
- .filter('price', [100, 500], 'BETWEEN')
95
-
96
- // NULL / NOT NULL
97
- .filter('deleted_at', null, 'NULL')
98
- .filter('email', null, 'NOT NULL')
99
-
100
- // PostgreSQL JSONB
101
- .filter('tags', 'featured', 'CONTAINS')
102
- .filter('metadata', '{"active": true}', 'CONTAINED')
103
- .filter('tags', 'premium', 'HAS')
104
- ```
105
-
106
- **All operators:** `EQUALS`, `NOT EQUALS`, `IN`, `LIKE`, `ILIKE`, `CONTAINS`, `CONTAINED`, `HAS`, `BETWEEN`, `NULL`, `NOT NULL`, `>`, `>=`, `<`, `<=`, and more.
107
-
108
- ## Sorting
109
-
110
- ```js
111
- .sort('created_at', 'desc')
112
- .sort('name', 'asc')
113
- ```
114
-
115
- ## Select
116
-
117
- Return only specific fields:
118
-
119
- ```js
120
- .select(['id', 'name', 'slug', 'type', 'stars'])
121
- ```
122
-
123
- ## Joins
124
-
125
- ```js
126
- // Join addon by field
127
- .join('files', 'cover_id', 'cover')
128
- // → Resolves cover_id into the full file object as 'cover'
129
-
130
- // Join addon by array field
131
- .join('countries', 'countries', 'countries')
132
- // → Resolves array of country IDs into full country objects
133
-
134
- // Join with field selection
135
- .join('files', 'cover_id', 'cover', ['id', 'hash', 'extension'])
136
- // → Only include specific fields from the joined items
137
-
138
- // Multiple joins
139
- .join('files', 'cover_id', 'cover')
140
- .join('files', 'images')
141
- .join('countries', 'countries', 'countries')
142
- .join('cities', 'cities', 'cities')
143
- .join('areas', 'areas', 'areas')
144
- ```
145
-
146
- ## Offset
147
-
148
- ```js
149
- .offset(50)
150
- ```
151
-
152
- ## Full example
153
-
154
- ```js
155
- const offerItems = await offers.Find('primary')
156
- .filter('deleted', false)
157
- .filter('status', 'Aktivna')
158
- .filter('organization_id', [...orgIds, 9], 'IN')
159
- .join('countries', 'countries', 'countries')
160
- .join('cities', 'cities', 'cities')
161
- .join('areas', 'areas', 'areas')
162
- .sort('score', 'desc')
163
- .select(['id', 'name', 'slug', 'type', 'stars', 'pricing'])
164
- .page(1)
165
- .limit(12)
166
- .many();
167
-
168
- offerItems.forEach(offer => {
169
- console.log(offer.Get('name'), offer.Get('stars'));
170
- });
171
- ```
package/docs/frontend.md DELETED
@@ -1,396 +0,0 @@
1
- # Frontend
2
-
3
- Proxy-based reactivity with DOM diffing, Vue-like directives, SPA page routing, and convention-based asset bundling.
4
-
5
- ## Pages
6
-
7
- Pages define routes with async data loading, CSS Grid layouts, and template areas.
8
-
9
- ```js
10
- pages.ItemAdd({
11
- id: 'home',
12
- route: '/',
13
- title: 'Home',
14
- grid: {
15
- template: '"content"',
16
- columns: '1fr',
17
- rows: '1fr'
18
- },
19
- areas: {
20
- content: function() {
21
- return `
22
- <div class="page-home">
23
- <c-navbar></c-navbar>
24
- <c-hero title="Welcome"></c-hero>
25
- <c-footer></c-footer>
26
- </div>
27
- `;
28
- }
29
- }
30
- });
31
- ```
32
-
33
- ### Route params
34
-
35
- ```js
36
- pages.ItemAdd({
37
- id: 'offer',
38
- route: '/ponuda/:id/:type/:location/:name',
39
- // ...
40
- });
41
- ```
42
-
43
- Params are available in `this.parameters`:
44
-
45
- ```js
46
- areas: {
47
- content: function() {
48
- const id = this.parameters.id;
49
- // ...
50
- }
51
- }
52
- ```
53
-
54
- ### Multiple routes
55
-
56
- ```js
57
- route: ['/offers', '/offers/:type/:value']
58
- ```
59
-
60
- ### Async data loading
61
-
62
- The `data` function runs before render:
63
-
64
- ```js
65
- pages.ItemAdd({
66
- id: 'offer',
67
- route: '/ponuda/:id/:type/:location/:name',
68
-
69
- title: function(parameters, data) {
70
- return data?.offer?.name || 'Offer';
71
- },
72
-
73
- data: async function(parameters) {
74
- const offer = await offers.Find()
75
- .filter('id', parameters.id)
76
- .join('files', 'cover_id', 'cover')
77
- .join('countries', 'countries', 'countries')
78
- .join('cities', 'cities', 'cities')
79
- .one();
80
-
81
- return { offer: offer ? offer.data : null };
82
- },
83
-
84
- areas: {
85
- content: function() {
86
- this.offer = this.data.offer || {};
87
-
88
- return `
89
- <div>
90
- <h1>{{ offer.name }}</h1>
91
- <span ot-if="offer.stars">{{ offer.stars }} stars</span>
92
- </div>
93
- `;
94
- }
95
- }
96
- });
97
- ```
98
-
99
- ### Interactive pages
100
-
101
- Pages can have local state and methods:
102
-
103
- ```js
104
- areas: {
105
- content: function() {
106
- this.items = [];
107
- this.page = 1;
108
- this.total = 0;
109
-
110
- this.fetch = async () => {
111
- const result = await offers.Find()
112
- .filter('status', 'Aktivna')
113
- .sort('score', 'desc')
114
- .page(this.page)
115
- .limit(12)
116
- .plain();
117
-
118
- this.items = result.items;
119
- this.total = result.total;
120
- };
121
-
122
- this.handlePageChange = (newPage) => {
123
- this.page = newPage;
124
- this.fetch();
125
- };
126
-
127
- this.fetch();
128
-
129
- return `
130
- <div>
131
- <span>{{ total }} results</span>
132
-
133
- <div ot-if="items.length > 0" class="grid">
134
- <a ot-for="offer in items" :href="'/offer/' + offer.id">
135
- <c-offer-card :offer="offer"></c-offer-card>
136
- </a>
137
- </div>
138
-
139
- <c-pagination
140
- :page="page"
141
- :pages="Math.ceil(total / 12)"
142
- :_change="handlePageChange"
143
- ></c-pagination>
144
- </div>
145
- `;
146
- }
147
- }
148
- ```
149
-
150
- Setting `this.items`, `this.page`, or `this.total` triggers a 16ms debounced re-render with DOM diffing.
151
-
152
- ## Components
153
-
154
- Reusable UI elements with typed config and template rendering.
155
-
156
- ```js
157
- components.ItemAdd({
158
- id: 'hero',
159
- config: {
160
- title: { type: 'string', value: 'Page Title' },
161
- subtitle: { type: 'string', value: '' },
162
- image: { type: 'string', value: '' },
163
- variant: { type: 'array', value: [], options: ['compact', 'tall'] }
164
- },
165
- render: function() {
166
- return `
167
- <section class="holder" :style="'background-image: url(' + image + ')'">
168
- <div class="overlay"></div>
169
- <div class="content">
170
- <slot name="top"></slot>
171
- <h1>{{ title }}</h1>
172
- <p ot-if="subtitle">{{ subtitle }}</p>
173
- </div>
174
- </section>
175
- `;
176
- }
177
- });
178
- ```
179
-
180
- ### Using components
181
-
182
- Components become custom elements prefixed with `c-`:
183
-
184
- ```html
185
- <c-hero title="Our Offers" subtitle="Find your trip" image="/hero.jpg">
186
- <div slot="top">
187
- <c-breadcrumb :items="[{label: 'Home', href: '/'}, {label: 'Offers'}]"></c-breadcrumb>
188
- </div>
189
- </c-hero>
190
- ```
191
-
192
- ### Config types
193
-
194
- ```js
195
- config: {
196
- title: { type: 'string', value: 'Default' },
197
- count: { type: 'number', value: 0 },
198
- active: { type: 'boolean', value: true },
199
- items: { type: 'array', value: [] },
200
- data: { type: 'object', value: {} },
201
- variant: { type: 'array', value: [], options: ['size-s', 'size-m', 'size-l'] },
202
- _click: { type: 'function' }, // callback (prefixed with _)
203
- _change: { type: 'function' }
204
- }
205
- ```
206
-
207
- ### Component with logic
208
-
209
- ```js
210
- components.ItemAdd({
211
- id: 'pagination',
212
- config: {
213
- page: { type: 'number', value: 1 },
214
- pages: { type: 'number', value: 1 },
215
- _change: { type: 'function' }
216
- },
217
- render: function() {
218
- this.goToPage = (num) => {
219
- if (num >= 1 && num <= this.pages) {
220
- this.page = num;
221
- if (this._change) this._change(num);
222
- }
223
- };
224
-
225
- return `
226
- <div class="pagination">
227
- <button ot-click="() => goToPage(page - 1)" :disabled="page === 1">Prev</button>
228
- <span>{{ page }} / {{ pages }}</span>
229
- <button ot-click="() => goToPage(page + 1)" :disabled="page === pages">Next</button>
230
- </div>
231
- `;
232
- }
233
- });
234
- ```
235
-
236
- ## Directives
237
-
238
- Vue-like syntax, processed during compile with priority ordering.
239
-
240
- ### Conditional rendering
241
-
242
- ```html
243
- <div ot-if="items.length > 0">Has items</div>
244
- <div ot-if="!loading">Content loaded</div>
245
- ```
246
-
247
- ### List rendering
248
-
249
- ```html
250
- <a ot-for="offer in items" :href="'/offer/' + offer.id">
251
- {{ offer.name }}
252
- </a>
253
-
254
- <!-- With index -->
255
- <div ot-for="item, index in items">
256
- {{ index }}: {{ item.name }}
257
- </div>
258
- ```
259
-
260
- ### Event handlers
261
-
262
- ```html
263
- <button ot-click="submit">Send</button>
264
- <button ot-click="() => goToPage(3)">Page 3</button>
265
- <input :_input="(e) => form.name = e.target.value">
266
- ```
267
-
268
- ### Dynamic attributes
269
-
270
- ```html
271
- <img :src="getImage()" :alt="name" loading="lazy">
272
- <div :class="'card ' + (active ? 'active' : '')">
273
- <div :style="'background-image: url(' + image + ')'">
274
- <button :disabled="page === 1">
275
- <article :variant="variant.join(' ')">
276
- ```
277
-
278
- ### Text interpolation
279
-
280
- ```html
281
- <span>{{ total }} results</span>
282
- <h1>{{ offer.name }}</h1>
283
- <span>{{ getStars() }}</span>
284
- ```
285
-
286
- ### All directives
287
-
288
- `ot-if`, `ot-show`, `ot-for`, `ot-click`, `ot-text`, `ot-html`, `ot-fetch`, `ot-render`, `ot-form`, and all DOM event handlers.
289
-
290
- ## Reactivity
291
-
292
- Setting any property on a render context triggers a re-render:
293
-
294
- ```js
295
- this.count = 0;
296
- this.increment = () => this.count++; // triggers DOM update
297
- ```
298
-
299
- Updates are batched with a 16ms debounce. The framework diffs the new DOM against the current DOM and patches only what changed. No virtual DOM — direct DOM diffing.
300
-
301
- Lifecycle: `init → render → compile → ready → mount → update → unmount → destroy`.
302
-
303
- ## Slots
304
-
305
- Components can define named slots:
306
-
307
- ```js
308
- render: function() {
309
- return `
310
- <div>
311
- <slot name="top"></slot>
312
- <div class="content">
313
- <slot></slot>
314
- </div>
315
- </div>
316
- `;
317
- }
318
- ```
319
-
320
- Usage:
321
-
322
- ```html
323
- <c-layout>
324
- <div slot="top">Header content</div>
325
- <p>Default slot content</p>
326
- </c-layout>
327
- ```
328
-
329
- ## Asset bundling
330
-
331
- Convention-based bundler that scans directories, strips ES module syntax, concatenates, and minifies.
332
-
333
- ### Asset registry
334
-
335
- All asset paths are registered centrally in `lib/load.js` via `onetype.Assets()`. The import function resolves IDs to paths from this registry.
336
-
337
- ```js
338
- // In application back/index.js — import by ID
339
- assets.Fn('import', ['framework', 'styles', 'commands', 'elements/input', 'transforms/swiper']);
340
- ```
341
-
342
- Available asset IDs:
343
-
344
- | ID | Type | Description |
345
- |---|---|---|
346
- | `framework` | js | Core framework library |
347
- | `styles` | css | Shared CSS (variables, reset, queries, utilities) |
348
- | `commands` | js | Command system (front-end) |
349
- | `database` | js | Database (front-end) |
350
- | `directives` | js | Directives addon |
351
- | `transforms` | js | Transforms addon |
352
- | `pages` | js+css | Page router addon |
353
- | `elements` | js+css | Elements addon |
354
- | `float` | js+css | Float system (modals, toasts, tooltips, popups, overlays) |
355
- | `elements/form/input` | js+css | Granular element import |
356
- | `transforms/swiper` | js | Granular transform import |
357
-
358
- Granular imports use `elements/<group>/<name>` and `transforms/<name>` format. Element groups: `form`, `global`, `sections`, `status`.
359
-
360
- ### Manual asset items
361
-
362
- ```js
363
- // Scan a custom directory
364
- assets.Item({ type: 'js', order: 2, path: resolve(root, 'front') });
365
- assets.Item({ type: 'css', order: 2, path: resolve(root, 'front') });
366
- ```
367
-
368
- ### Dynamic content injection
369
-
370
- Inject server-side data into the frontend bundle:
371
-
372
- ```js
373
- assets.Item({
374
- type: 'js',
375
- order: 4,
376
- content: function() {
377
- const items = Object.values(settings.Items())
378
- .filter(item => item.Get('organization_id') === 9)
379
- .map(item => item.data);
380
-
381
- return `settings.ItemsAdd(${JSON.stringify(items)}, null, false);`;
382
- }
383
- });
384
- ```
385
-
386
- This runs at bundle time — server-side data becomes available client-side without an API call.
387
-
388
- ### How it works
389
-
390
- 1. Scans directories recursively for `.js` or `.css` files
391
- 2. Prioritizes `addon.js` files (loaded first)
392
- 3. Strips `import`/`export` statements
393
- 4. Concatenates by `order` value
394
- 5. Minifies via terser
395
-
396
- No webpack, no build step, no configuration files.