@nuraly/runtime 0.1.6 → 0.1.8

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 (349) hide show
  1. package/README.md +83 -765
  2. package/components/ui/components/Event/EventValue/EventValue.ts +13 -8
  3. package/components/ui/components/ToastContainer/ToastContainer.ts +1 -1
  4. package/components/ui/components/advanced/AIChat/AIChat.ts +1 -2
  5. package/components/ui/components/advanced/Collapse/Collapse.ts +5 -2
  6. package/components/ui/components/advanced/Collections/Collections.ts +2 -2
  7. package/components/ui/components/advanced/MicroApp/MicroApp.ts +3 -11
  8. package/components/ui/components/advanced/RefComponent/RefComponent.ts +2 -2
  9. package/components/ui/components/advanced/RichText/RichText.ts +5 -4
  10. package/components/ui/components/advanced/RichText/RichTextEditor.ts +0 -167
  11. package/components/ui/components/base/BaseElement/base-change-detection.ts +1 -5
  12. package/components/ui/components/base/BaseElement.ts +229 -610
  13. package/components/ui/components/base/FormRegisterable.ts +83 -0
  14. package/components/ui/components/base/controllers/DragDropController.ts +175 -0
  15. package/components/ui/components/base/controllers/ErrorController.ts +180 -0
  16. package/components/ui/components/base/controllers/EventController.ts +112 -0
  17. package/components/ui/components/base/controllers/InputHandlerController.ts +298 -0
  18. package/components/ui/components/base/controllers/SelectionController.ts +323 -0
  19. package/components/ui/components/base/controllers/StyleHandlerController.ts +286 -0
  20. package/components/ui/components/base/controllers/index.ts +11 -0
  21. package/components/ui/components/base/mixins/EditorModeMixin.ts +185 -0
  22. package/components/ui/components/base/mixins/index.ts +6 -0
  23. package/components/ui/components/base/types/base-element.types.ts +138 -0
  24. package/components/ui/components/base/types/index.ts +21 -0
  25. package/components/ui/components/base/utils/event-debouncer.ts +209 -0
  26. package/components/ui/components/base/utils/index.ts +11 -0
  27. package/components/ui/components/base/utils/style-cache.ts +94 -0
  28. package/components/ui/components/display/BoxModel/BoxModel.ts +177 -116
  29. package/components/ui/components/display/Code/Code.ts +40 -26
  30. package/components/ui/components/display/Divider/Divider.ts +2 -2
  31. package/components/ui/components/display/Icon/Icon.ts +2 -3
  32. package/components/ui/components/display/Image/Image.ts +72 -46
  33. package/components/ui/components/display/Tag/Tag.ts +2 -3
  34. package/components/ui/components/display/Video/Video.ts +91 -31
  35. package/components/ui/components/inputs/Button/Button.ts +2 -2
  36. package/components/ui/components/inputs/Checkbox/Checkbox.ts +14 -40
  37. package/components/ui/components/inputs/ColorPicker/colorpicker.ts +3 -4
  38. package/components/ui/components/inputs/DatePicker/DatePicker.ts +47 -25
  39. package/components/ui/components/inputs/Dropdown/Dropdown.ts +2 -2
  40. package/components/ui/components/inputs/Form/Form.style.ts +26 -0
  41. package/components/ui/components/inputs/Form/Form.ts +352 -0
  42. package/components/ui/components/inputs/IconPicker/IconPicker.ts +22 -18
  43. package/components/ui/components/inputs/InsertDropdown/InsertDropdown.ts +0 -20
  44. package/components/ui/components/inputs/NumberInput/NumberInput.ts +0 -4
  45. package/components/ui/components/inputs/RadioButton/Radio-button.ts +11 -13
  46. package/components/ui/components/inputs/Select/Select.ts +38 -24
  47. package/components/ui/components/inputs/TextInput/TextInput.ts +15 -9
  48. package/components/ui/components/inputs/Textarea/Textarea.ts +30 -30
  49. package/components/ui/components/inputs/UsersDropdown/UsersDropdown.ts +1 -1
  50. package/components/ui/components/layout/Card/Card.ts +112 -10
  51. package/components/ui/components/layout/Containers/Container.style.ts +18 -0
  52. package/components/ui/components/layout/Containers/Container.ts +11 -5
  53. package/components/ui/components/layout/Grid/Col.style.ts +27 -0
  54. package/components/ui/components/layout/Grid/Col.ts +209 -0
  55. package/components/ui/components/layout/Grid/Row.style.ts +73 -0
  56. package/components/ui/components/layout/Grid/Row.ts +166 -0
  57. package/components/ui/components/layout/Grid/index.ts +7 -0
  58. package/components/ui/components/layout/Panel/Panel.ts +2 -2
  59. package/components/ui/components/layout/Tabs/Tabs.ts +0 -1
  60. package/components/ui/components/navigation/EmbedURL/EmbedURL.ts +62 -26
  61. package/components/ui/components/navigation/Link/Link.ts +27 -16
  62. package/components/ui/components/navigation/Menu/Menu.ts +26 -48
  63. package/components/ui/components/runtime/MicroApp/MicroApp.ts +2 -4
  64. package/components/ui/components/runtime/MicroApp/MicroAppDataLoader.ts +6 -2
  65. package/components/ui/components/studio/FunctionsPanel/FunctionsPanel.ts +472 -0
  66. package/components/ui/components/studio/FunctionsPanel/index.ts +1 -0
  67. package/components/ui/components/utility/AccessRoles/AccessRoles.style.ts +242 -0
  68. package/components/ui/components/utility/AccessRoles/AccessRoles.ts +476 -0
  69. package/components/ui/components/utility/Border/Border.ts +0 -14
  70. package/components/ui/components/utility/BorderManager/BorderManager.style.ts +237 -0
  71. package/components/ui/components/utility/BorderManager/BorderManager.ts +503 -0
  72. package/components/ui/components/utility/BoxShadow/BoxShadow.ts +0 -16
  73. package/components/ui/components/utility/Document/Document.ts +54 -25
  74. package/components/ui/components/utility/Export-Import/Export-Import.ts +8 -7
  75. package/components/ui/components/utility/Handlers/Handlers.ts +14 -17
  76. package/components/ui/components/utility/ValidationRules/ValidationRules.ts +440 -0
  77. package/components/ui/components/wrappers/GenerikWrapper/DragWrapper/DragWrapper.ts +1 -0
  78. package/components/ui/components/wrappers/GenerikWrapper/GenerikWrapper.ts +1 -24
  79. package/components/ui/nuraly-ui/src/components/badge/badge.style.ts +4 -3
  80. package/components/ui/nuraly-ui/src/components/datepicker/datepicker.component.ts +2 -0
  81. package/components/ui/nuraly-ui/src/components/radio-group/radio-group.component.ts +12 -6
  82. package/components/ui/nuraly-ui/src/components/radio-group/radio-group.style.ts +23 -0
  83. package/dist/{index-B4yIOSMd.js → BaseElement-BNBn_IJk.js} +2920 -267
  84. package/dist/{CodeEditor-0GwD2UDB.js → CodeEditor-Bf4L2rO_.js} +84127 -76319
  85. package/dist/{CodeEditor-BiNku87K.js → CodeEditor-Cpph-xRc.js} +7 -7
  86. package/dist/{abap-B2diVmjb.js → abap-D0Neqhq6.js} +91 -1
  87. package/dist/{apex-3NuJ-nsI.js → apex-B5LhxkeG.js} +18 -1
  88. package/dist/assets/editor.worker-DcwbJ0PV.js +12 -0
  89. package/dist/assets/html.worker-BTMxskjR.js +461 -0
  90. package/dist/assets/json.worker-D3vTGdf_.js +49 -0
  91. package/dist/assets/ts.worker-BsM1BXac.js +51334 -0
  92. package/dist/{azcli-XGXuUsMB.js → azcli-BrBH0QTU.js} +1 -1
  93. package/dist/{bat-B8Vhm634.js → bat-BfzAov64.js} +12 -1
  94. package/dist/{bicep-Cc8X5S_k.js → bicep-C3bCSWel.js} +1 -1
  95. package/dist/{cameligo-Bo3wBh9T.js → cameligo-sFL5plcd.js} +13 -1
  96. package/dist/{clojure-CPoQlpIK.js → clojure-CfeExRz0.js} +14 -1
  97. package/dist/{coffee-BxvTGz39.js → coffee-Xws5K0WL.js} +11 -1
  98. package/dist/{cpp-5RpEV7vC.js → cpp-CqOUEpxN.js} +28 -23
  99. package/dist/{csharp-slXXP3fo.js → csharp-DVLiBOZb.js} +13 -1
  100. package/dist/{csp-B98p6-gH.js → csp-DVFp9bw5.js} +3 -1
  101. package/dist/{css-BDsDSAin.js → css-DwARn2R6.js} +8 -1
  102. package/dist/cssMode-DMsdy1N0.js +1577 -0
  103. package/dist/{cypher-Dc4IMouD.js → cypher-uY0Mffat.js} +8 -1
  104. package/dist/{dart-LhvE3yD2.js → dart-D27H-mX_.js} +18 -1
  105. package/dist/{dockerfile-CwzplJeZ.js → dockerfile-CmV85WZK.js} +5 -1
  106. package/dist/{ecl-DxW3FiJi.js → ecl--fKn7yzB.js} +9 -1
  107. package/dist/{elixir-BI40g7TU.js → elixir-DUhH17ON.js} +87 -1
  108. package/dist/{flow9-tR2v0bGz.js → flow9-B3Dx2LLe.js} +8 -1
  109. package/dist/{freemarker2-XzXhMwTc.js → freemarker2-D51H9HYi.js} +359 -7
  110. package/dist/{fsharp-BLAma0OT.js → fsharp-SyqBfUAR.js} +14 -1
  111. package/dist/{go-nYcD3y4Z.js → go-BbMR2tdT.js} +17 -1
  112. package/dist/{graphql-Dp1cHWmP.js → graphql-DDJE6tIl.js} +17 -1
  113. package/dist/{handlebars-CmrcNfkM.js → handlebars-CF6gdAX4.js} +38 -4
  114. package/dist/{hcl-6NT8Kbna.js → hcl-YBvpaUqf.js} +13 -1
  115. package/dist/{html-BsvlsNx5.js → html-c2n_zkM3.js} +37 -4
  116. package/dist/htmlMode-9IJTuZUh.js +1587 -0
  117. package/dist/{ini-BZCOLrEc.js → ini-Ct73dBtM.js} +10 -1
  118. package/dist/{java-DAMcfJbX.js → java-C_jlkwoG.js} +18 -1
  119. package/dist/{javascript-D-M-tA-x.js → javascript-DhEEBMxD.js} +3 -2
  120. package/dist/jsonMode-CB6k-4rp.js +2002 -0
  121. package/dist/{julia-CQ46G71H.js → julia-D8WE5U1e.js} +22 -1
  122. package/dist/{kotlin-CEjVo_6E.js → kotlin-Zy9aq5yB.js} +15 -1
  123. package/dist/{less-DreV99nP.js → less-sZ0iHtE8.js} +1 -1
  124. package/dist/{lexon-DBVJhqLb.js → lexon-CsdNL29A.js} +13 -1
  125. package/dist/{liquid-_8i5JYO-.js → liquid-CwtPiwnW.js} +12 -4
  126. package/dist/{lua-Dcc_j6L-.js → lua-C2YJo0zw.js} +12 -1
  127. package/dist/{m3-B9SlZL4n.js → m3-CPLP40SG.js} +7 -1
  128. package/dist/{markdown-CuGw9_MP.js → markdown-B1mf5e0R.js} +34 -1
  129. package/dist/{mdx-CiSJOftS.js → mdx-LewPRYF8.js} +2 -2
  130. package/dist/{micro-app-entry-BT6Pk6bn.js → micro-app-entry-C3RDIukG.js} +7621 -9067
  131. package/dist/micro-app.bundle.js +3 -3
  132. package/dist/micro-app.js +3575 -6621
  133. package/dist/{mips-BUWqP-OH.js → mips-DA33BZX1.js} +11 -1
  134. package/dist/{msdax-DtkouYCg.js → msdax-CCYFIQsP.js} +5 -1
  135. package/dist/{mysql-IkAsWSmF.js → mysql-hjmIjL-D.js} +11 -3
  136. package/dist/{objective-c-B2-ronfg.js → objective-c-RRCpEmqC.js} +2 -1
  137. package/dist/{pascal-Bsnz2eJA.js → pascal-CeV8XfxB.js} +13 -1
  138. package/dist/{pascaligo-D_sMUn0Q.js → pascaligo-IEEGVJAJ.js} +13 -1
  139. package/dist/{perl-BPzHt9SS.js → perl-B5-QbHq_.js} +34 -1
  140. package/dist/{pgsql-DlTJB0PD.js → pgsql-s6kqEJmi.js} +14 -4
  141. package/dist/{php-Dmq5OjwK.js → php-CWWqzOo8.js} +36 -1
  142. package/dist/{pla-HJcccrBy.js → pla-FSvb_YP_.js} +13 -1
  143. package/dist/{postiats-OQn6DKv-.js → postiats-DQdscQXO.js} +370 -1
  144. package/dist/{powerquery-DKaMYC8w.js → powerquery-CtA5JA1I.js} +7 -1
  145. package/dist/{powershell-DWeJHik1.js → powershell-DglEq96N.js} +13 -1
  146. package/dist/{protobuf-CBn_IseU.js → protobuf-BSepub3e.js} +5 -1
  147. package/dist/{pug-BoRpCINl.js → pug-B1847F4G.js} +16 -1
  148. package/dist/{python-DNxbUiJS.js → python-h5Z2g-yl.js} +59 -11
  149. package/dist/{qsharp-4rGyVZOw.js → qsharp-D4i0Nqg9.js} +28 -3
  150. package/dist/{r-DsgLhBOb.js → r-cdRigKxa.js} +5 -1
  151. package/dist/{razor-BFH0wq9s.js → razor-D5ep1Doy.js} +48 -4
  152. package/dist/{redis-B2fdL4Bg.js → redis-D9MFxvE8.js} +16 -6
  153. package/dist/{redshift-DoaeyCkH.js → redshift-CmCnsvL-.js} +13 -4
  154. package/dist/{restructuredtext-D-6OFBY9.js → restructuredtext-CWy8J51t.js} +19 -1
  155. package/dist/{ruby-D1DD6baV.js → ruby-WP-c36m5.js} +76 -3
  156. package/dist/runtime.js +34 -45
  157. package/dist/{rust-DssUV39M.js → rust-Q9FLdYpu.js} +13 -1
  158. package/dist/{sb-Dmb6tAdv.js → sb-C54-JBGT.js} +12 -1
  159. package/dist/{scala-Co3ETaym.js → scala-CzbFImc5.js} +24 -1
  160. package/dist/{scheme-CMrqXTty.js → scheme-BhfDmYN3.js} +1 -1
  161. package/dist/{scss-DkGudv8Q.js → scss-CEmiBXpS.js} +25 -1
  162. package/dist/{shell-BHN2BI4L.js → shell-Bmc1VhG0.js} +4 -1
  163. package/dist/{solidity-b-R-raGB.js → solidity-C9Q2I8Hh.js} +23 -1
  164. package/dist/{sophia-Y4GjyxNB.js → sophia-jWa1UyKz.js} +16 -1
  165. package/dist/{sparql-CDAPZb88.js → sparql-CM7jctbc.js} +15 -1
  166. package/dist/{sql-DkkpPiUq.js → sql-WzihTkbg.js} +42 -1
  167. package/dist/{st-CSPV91Ej.js → st-6y7_3aup.js} +8 -1
  168. package/dist/style.css +1 -1
  169. package/dist/{swift-DdSC5O48.js → swift-k-0zxG_D.js} +4 -1
  170. package/dist/{systemverilog-CI03XpAv.js → systemverilog-Pnr5_rIP.js} +29 -3
  171. package/dist/{tcl-B8DayMSI.js → tcl-fNPXval8.js} +7 -1
  172. package/dist/tsMode-B_6LiBE1.js +976 -0
  173. package/dist/{twig-B1AUPVB_.js → twig-L2MkztkV.js} +76 -1
  174. package/dist/{typescript-DFCDgKOy.js → typescript-BBG0jH4p.js} +23 -2
  175. package/dist/typespec-Cqqo-3Pt.js +123 -0
  176. package/dist/{vb-BIC7ccdG.js → vb-B5YC2xN9.js} +15 -1
  177. package/dist/{wgsl-C9yjop46.js → wgsl-D9BRtftY.js} +26 -1
  178. package/dist/{xml-axhHDYch.js → xml-DgLB7rE6.js} +8 -2
  179. package/dist/{yaml-fWSpoHsZ.js → yaml-DiI4HpSv.js} +30 -2
  180. package/handlers/compiler.ts +196 -16
  181. package/handlers/context-setup.ts +10 -5
  182. package/handlers/handler-api-factory.ts +358 -0
  183. package/handlers/handler-api.ts +379 -0
  184. package/handlers/handler-executor.ts +25 -5
  185. package/handlers/handler-scope.ts +398 -0
  186. package/handlers/index.ts +34 -2
  187. package/handlers/runtime-api/component-properties.ts +0 -8
  188. package/handlers/runtime-api/index.ts +1 -1
  189. package/handlers/runtime-api/toast.ts +1 -1
  190. package/index.ts +14 -115
  191. package/micro-app/README.md +10 -10
  192. package/micro-app/state/MicroAppRuntimeContext.ts +1 -28
  193. package/micro-app-entry.ts +0 -5
  194. package/package.json +19 -1
  195. package/redux/actions/application/index.ts +0 -1
  196. package/redux/actions/component/addComponentAction.ts +15 -4
  197. package/redux/actions/component/moveDraggedComponent.ts +1 -2
  198. package/redux/actions/component/update-component-name.ts +1 -1
  199. package/redux/actions/component/updateComponentAttributes.ts +7 -2
  200. package/redux/handlers/functions/build-function-handler.ts +11 -3
  201. package/redux/handlers/functions/deploy-function-handler.ts +11 -3
  202. package/redux/handlers/functions/invoke-function-handler.ts +11 -3
  203. package/redux/handlers/functions/load-functions-handler.ts +2 -1
  204. package/redux/handlers/functions/update-function-handler.ts +2 -1
  205. package/redux/store/component/component.interface.ts +8 -2
  206. package/redux/store/component/store.ts +1 -4
  207. package/state/runtime-context.ts +1 -23
  208. package/utils/RuntimeContextHelpers.ts +221 -90
  209. package/utils/change-detection.ts +125 -1
  210. package/utils/clipboard-utils.ts +18 -8
  211. package/utils/component-registry.ts +118 -0
  212. package/utils/index.ts +14 -1
  213. package/utils/naming-generator.ts +3 -1
  214. package/utils/randomness.ts +3 -1
  215. package/utils/register-components.ts +21 -29
  216. package/utils/render-util.ts +27 -48
  217. package/utils/toast.ts +97 -0
  218. package/vite.config.ts +29 -12
  219. package/components/ui/components/Event/EventAttribute/EventAttribute.style.ts +0 -11
  220. package/components/ui/components/Event/EventAttribute/EventAttribute.ts +0 -28
  221. package/components/ui/components/base/BaseElement/calculateStyles.ts +0 -31
  222. package/components/ui/components/base/BaseElement/drag-events.helpers.ts +0 -71
  223. package/components/ui/components/base/BaseElement/execute-event.helpers.ts +0 -45
  224. package/components/ui/components/base/BaseElement/interactions.helpers.ts +0 -14
  225. package/components/ui/components/wrappers/ComponentTitle/ComponentTitle.ts +0 -95
  226. package/components/ui/components/wrappers/GenerikWrapper/ResizeWrapper/ResizeWrapper.style.ts +0 -102
  227. package/components/ui/components/wrappers/GenerikWrapper/ResizeWrapper/ResizeWrapper.ts +0 -258
  228. package/components/ui/components/wrappers/PreviewWrapper.ts +0 -28
  229. package/components/ui/components/wrappers/RectangleSelection/RectangleSelection.ts +0 -154
  230. package/components/ui/nuraly-ui/packages/common/dist/constants/index.d.ts +0 -2
  231. package/components/ui/nuraly-ui/packages/common/dist/constants/index.js +0 -2
  232. package/components/ui/nuraly-ui/packages/common/dist/constants.d.ts +0 -17
  233. package/components/ui/nuraly-ui/packages/common/dist/constants.js +0 -7
  234. package/components/ui/nuraly-ui/packages/common/dist/controllers/index.d.ts +0 -2
  235. package/components/ui/nuraly-ui/packages/common/dist/controllers/index.js +0 -2
  236. package/components/ui/nuraly-ui/packages/common/dist/controllers.d.ts +0 -21
  237. package/components/ui/nuraly-ui/packages/common/dist/controllers.js +0 -22
  238. package/components/ui/nuraly-ui/packages/common/dist/index.d.ts +0 -25
  239. package/components/ui/nuraly-ui/packages/common/dist/index.js +0 -27
  240. package/components/ui/nuraly-ui/packages/common/dist/mixins/index.d.ts +0 -2
  241. package/components/ui/nuraly-ui/packages/common/dist/mixins/index.js +0 -3
  242. package/components/ui/nuraly-ui/packages/common/dist/mixins.d.ts +0 -26
  243. package/components/ui/nuraly-ui/packages/common/dist/mixins.js +0 -29
  244. package/components/ui/nuraly-ui/packages/common/dist/shared/base-mixin.d.ts +0 -42
  245. package/components/ui/nuraly-ui/packages/common/dist/shared/base-mixin.js +0 -38
  246. package/components/ui/nuraly-ui/packages/common/dist/shared/constants.d.ts +0 -1
  247. package/components/ui/nuraly-ui/packages/common/dist/shared/constants.js +0 -2
  248. package/components/ui/nuraly-ui/packages/common/dist/shared/controllers/dropdown.controller.d.ts +0 -77
  249. package/components/ui/nuraly-ui/packages/common/dist/shared/controllers/dropdown.controller.js +0 -341
  250. package/components/ui/nuraly-ui/packages/common/dist/shared/controllers/dropdown.interface.d.ts +0 -37
  251. package/components/ui/nuraly-ui/packages/common/dist/shared/controllers/dropdown.interface.js +0 -2
  252. package/components/ui/nuraly-ui/packages/common/dist/shared/controllers/index.d.ts +0 -4
  253. package/components/ui/nuraly-ui/packages/common/dist/shared/controllers/index.js +0 -4
  254. package/components/ui/nuraly-ui/packages/common/dist/shared/controllers/theme.controller.d.ts +0 -48
  255. package/components/ui/nuraly-ui/packages/common/dist/shared/controllers/theme.controller.js +0 -133
  256. package/components/ui/nuraly-ui/packages/common/dist/shared/dependency-mixin.d.ts +0 -37
  257. package/components/ui/nuraly-ui/packages/common/dist/shared/dependency-mixin.js +0 -141
  258. package/components/ui/nuraly-ui/packages/common/dist/shared/event-handler-mixin.d.ts +0 -64
  259. package/components/ui/nuraly-ui/packages/common/dist/shared/event-handler-mixin.js +0 -95
  260. package/components/ui/nuraly-ui/packages/common/dist/shared/index.d.ts +0 -13
  261. package/components/ui/nuraly-ui/packages/common/dist/shared/index.js +0 -17
  262. package/components/ui/nuraly-ui/packages/common/dist/shared/theme-mixin.d.ts +0 -78
  263. package/components/ui/nuraly-ui/packages/common/dist/shared/theme-mixin.js +0 -194
  264. package/components/ui/nuraly-ui/packages/common/dist/shared/themes.d.ts +0 -44
  265. package/components/ui/nuraly-ui/packages/common/dist/shared/themes.js +0 -85
  266. package/components/ui/nuraly-ui/packages/common/dist/shared/utils.d.ts +0 -60
  267. package/components/ui/nuraly-ui/packages/common/dist/shared/utils.js +0 -85
  268. package/components/ui/nuraly-ui/packages/common/dist/shared/validation.types.d.ts +0 -108
  269. package/components/ui/nuraly-ui/packages/common/dist/shared/validation.types.js +0 -17
  270. package/components/ui/nuraly-ui/packages/common/dist/themes/index.d.ts +0 -2
  271. package/components/ui/nuraly-ui/packages/common/dist/themes/index.js +0 -2
  272. package/components/ui/nuraly-ui/packages/common/dist/themes.d.ts +0 -22
  273. package/components/ui/nuraly-ui/packages/common/dist/themes.js +0 -23
  274. package/components/ui/nuraly-ui/packages/common/dist/utils/index.d.ts +0 -2
  275. package/components/ui/nuraly-ui/packages/common/dist/utils/index.js +0 -2
  276. package/components/ui/nuraly-ui/packages/common/dist/utils.d.ts +0 -21
  277. package/components/ui/nuraly-ui/packages/common/dist/utils.js +0 -22
  278. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/LICENSE +0 -15
  279. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/README.md +0 -294
  280. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/copy/copy-sync.js +0 -171
  281. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/copy/copy.js +0 -175
  282. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/copy/index.js +0 -7
  283. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/empty/index.js +0 -39
  284. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/ensure/file.js +0 -66
  285. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/ensure/index.js +0 -23
  286. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/ensure/link.js +0 -64
  287. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/ensure/symlink-paths.js +0 -101
  288. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/ensure/symlink-type.js +0 -34
  289. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/ensure/symlink.js +0 -67
  290. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/fs/index.js +0 -146
  291. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/index.js +0 -16
  292. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/json/index.js +0 -16
  293. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/json/jsonfile.js +0 -11
  294. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/json/output-json-sync.js +0 -12
  295. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/json/output-json.js +0 -12
  296. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/mkdirs/index.js +0 -14
  297. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/mkdirs/make-dir.js +0 -27
  298. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/mkdirs/utils.js +0 -21
  299. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/move/index.js +0 -7
  300. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/move/move-sync.js +0 -55
  301. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/move/move.js +0 -59
  302. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/output-file/index.js +0 -31
  303. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/path-exists/index.js +0 -12
  304. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/remove/index.js +0 -17
  305. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/util/async.js +0 -29
  306. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/util/stat.js +0 -159
  307. package/components/ui/nuraly-ui/packages/forms/node_modules/fs-extra/lib/util/utimes.js +0 -36
  308. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/LICENSE +0 -15
  309. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/README.md +0 -294
  310. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/copy/copy-sync.js +0 -171
  311. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/copy/copy.js +0 -175
  312. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/copy/index.js +0 -7
  313. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/empty/index.js +0 -39
  314. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/ensure/file.js +0 -66
  315. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/ensure/index.js +0 -23
  316. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/ensure/link.js +0 -64
  317. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/ensure/symlink-paths.js +0 -101
  318. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/ensure/symlink-type.js +0 -34
  319. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/ensure/symlink.js +0 -67
  320. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/fs/index.js +0 -146
  321. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/index.js +0 -16
  322. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/json/index.js +0 -16
  323. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/json/jsonfile.js +0 -11
  324. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/json/output-json-sync.js +0 -12
  325. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/json/output-json.js +0 -12
  326. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/mkdirs/index.js +0 -14
  327. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/mkdirs/make-dir.js +0 -27
  328. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/mkdirs/utils.js +0 -21
  329. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/move/index.js +0 -7
  330. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/move/move-sync.js +0 -55
  331. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/move/move.js +0 -59
  332. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/output-file/index.js +0 -31
  333. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/path-exists/index.js +0 -12
  334. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/remove/index.js +0 -17
  335. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/util/async.js +0 -29
  336. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/util/stat.js +0 -159
  337. package/components/ui/nuraly-ui/packages/layout/node_modules/fs-extra/lib/util/utimes.js +0 -36
  338. package/dist/SmartAttributeHandler-B1UJKlqJ.js +0 -153
  339. package/dist/SmartAttributeHandler-u-ZHGueR.js +0 -193
  340. package/dist/assets/editor.worker-C_S4Avdt.js +0 -11
  341. package/dist/assets/html.worker-DfuQASUV.js +0 -458
  342. package/dist/assets/json.worker-Cucz4wxY.js +0 -42
  343. package/dist/assets/ts.worker-Dme6S0YK.js +0 -37021
  344. package/dist/cssMode-BzqArQ52.js +0 -1443
  345. package/dist/htmlMode-CmNePjzn.js +0 -1453
  346. package/dist/jsonMode-CKj6yF-8.js +0 -1863
  347. package/dist/tsMode-DfXg_Y5Y.js +0 -800
  348. package/redux/actions/application/loadApplicationPermissionAction.ts +0 -10
  349. package/utils/styleUtil.ts +0 -7
@@ -0,0 +1,118 @@
1
+ import { html, type TemplateResult } from "lit";
2
+ import type { ComponentElement } from "../redux/store/component/component.interface";
3
+
4
+ export interface ComponentRenderProps {
5
+ component: ComponentElement;
6
+ parent: ComponentElement;
7
+ item: any;
8
+ }
9
+
10
+ export type ComponentTemplateFunction = (
11
+ props: ComponentRenderProps,
12
+ isViewMode: boolean
13
+ ) => TemplateResult;
14
+
15
+ export interface ComponentRegistrationOptions {
16
+ type: string;
17
+ tagName: string;
18
+ template?: ComponentTemplateFunction;
19
+ componentClass?: CustomElementConstructor;
20
+ displayName?: string;
21
+ category?: string;
22
+ icon?: string;
23
+ defaultInputs?: Record<string, any>;
24
+ }
25
+
26
+ export interface RegisteredComponent {
27
+ type: string;
28
+ tagName: string;
29
+ template: ComponentTemplateFunction;
30
+ displayName?: string;
31
+ category?: string;
32
+ icon?: string;
33
+ defaultInputs?: Record<string, any>;
34
+ }
35
+
36
+ class ComponentRegistryImpl {
37
+ private registry: Map<string, RegisteredComponent> = new Map();
38
+
39
+ register(options: ComponentRegistrationOptions): void {
40
+ const { type, tagName, componentClass, template } = options;
41
+
42
+ if (this.registry.has(type)) {
43
+ console.warn(`[ComponentRegistry] Component type "${type}" is already registered. Skipping.`);
44
+ return;
45
+ }
46
+
47
+ if (componentClass && !customElements.get(tagName)) {
48
+ customElements.define(tagName, componentClass);
49
+ }
50
+
51
+ const componentTemplate = template ?? this.createDefaultTemplate(tagName);
52
+
53
+ this.registry.set(type, {
54
+ type,
55
+ tagName,
56
+ template: componentTemplate,
57
+ displayName: options.displayName,
58
+ category: options.category,
59
+ icon: options.icon,
60
+ defaultInputs: options.defaultInputs,
61
+ });
62
+ }
63
+
64
+ unregister(type: string): boolean {
65
+ return this.registry.delete(type);
66
+ }
67
+
68
+ getTemplate(type: string): ComponentTemplateFunction | undefined {
69
+ return this.registry.get(type)?.template;
70
+ }
71
+
72
+ get(type: string): RegisteredComponent | undefined {
73
+ return this.registry.get(type);
74
+ }
75
+
76
+ has(type: string): boolean {
77
+ return this.registry.has(type);
78
+ }
79
+
80
+ getAll(): RegisteredComponent[] {
81
+ return Array.from(this.registry.values());
82
+ }
83
+
84
+ getByCategory(category: string): RegisteredComponent[] {
85
+ return this.getAll().filter((c) => c.category === category);
86
+ }
87
+
88
+ clear(): void {
89
+ this.registry.clear();
90
+ }
91
+
92
+ private createDefaultTemplate(tagName: string): ComponentTemplateFunction {
93
+ return (props: ComponentRenderProps, isViewMode: boolean) => {
94
+ const el = document.createElement(tagName);
95
+ (el as any).isViewMode = isViewMode;
96
+ (el as any).parentcomponent = props.parent;
97
+ (el as any).item = props.item;
98
+ (el as any).component = props.component;
99
+ return html`${el}`;
100
+ };
101
+ }
102
+ }
103
+
104
+ export const ComponentRegistry = new ComponentRegistryImpl();
105
+
106
+ export function registerComponent(
107
+ type: string,
108
+ tagName: string,
109
+ componentClass?: CustomElementConstructor
110
+ ): void {
111
+ ComponentRegistry.register({ type, tagName, componentClass });
112
+ }
113
+
114
+ export function registerComponents(
115
+ components: ComponentRegistrationOptions[]
116
+ ): void {
117
+ components.forEach((options) => ComponentRegistry.register(options));
118
+ }
package/utils/index.ts CHANGED
@@ -9,6 +9,17 @@ import { setupChangeDetection } from '../components/ui/components/base/BaseEleme
9
9
  // Component Rendering
10
10
  export { renderComponent } from './render-util';
11
11
 
12
+ // Component Registry
13
+ export {
14
+ ComponentRegistry,
15
+ registerComponent,
16
+ registerComponents,
17
+ type ComponentRegistrationOptions,
18
+ type ComponentTemplateFunction,
19
+ type ComponentRenderProps,
20
+ type RegisteredComponent
21
+ } from './component-registry';
22
+
12
23
  // Logging
13
24
  export { log as Logger, setLogLevel, enableLogging, enableBenchmarking, LOG_LEVELS } from './logger';
14
25
 
@@ -55,7 +66,6 @@ export { getNestedAttribute, hasOnlyEmptyObjects } from './object.utils';
55
66
  export { processHeaders } from './api-calls-utils';
56
67
 
57
68
  // Style Utilities
58
- export { getStyleFronmAttribute } from './styleUtil';
59
69
 
60
70
  // Time/Performance Utilities
61
71
  export { debounce } from './performance-utils';
@@ -65,3 +75,6 @@ export { GenerateName } from './naming-generator';
65
75
 
66
76
  // Constants
67
77
  export * from './constants';
78
+
79
+ // Toast
80
+ export { showToast, hideToast, clearAllToasts, showSuccess, showError, showWarning, showInfo } from './toast';
@@ -1,6 +1,8 @@
1
1
  import { type ComponentType } from '../redux/store/component/component.interface';
2
2
 
3
3
  export const GenerateName = (componentType: ComponentType) => {
4
- const randomNumber = Math.floor(Math.random() * 10000);
4
+ // Use cryptographically secure random number generation
5
+ const randomBytes = crypto.getRandomValues(new Uint32Array(1));
6
+ const randomNumber = randomBytes[0] % 10000;
5
7
  return `${componentType}_${randomNumber}`;
6
8
  };
@@ -1,3 +1,5 @@
1
1
  export const generateRandomId = () => {
2
- return Math.random().toString(36).substr(2, 9);
2
+ // Generate cryptographically secure random ID
3
+ const randomBytes = crypto.getRandomValues(new Uint8Array(9));
4
+ return Array.from(randomBytes, byte => byte.toString(36)).join('').substring(0, 9);
3
5
  };
@@ -1,49 +1,41 @@
1
- // Component registration - import all components for side-effects (custom element registration)
2
- // This file is separate from render-util.ts to avoid circular dependencies
1
+ // Runtime component registration (side-effects for custom element definition)
3
2
  import "../components/ui/components/layout/Tabs/Tabs";
4
3
  import "../components/ui/components/layout/Containers/Container";
4
+ import "../components/ui/components/layout/Card/Card";
5
+ import "../components/ui/components/layout/Panel/Panel";
6
+ import "../components/ui/components/layout/Grid/Row";
7
+ import "../components/ui/components/layout/Grid/Col";
5
8
  import "../components/ui/components/navigation/Menu/Menu";
9
+ import "../components/ui/components/navigation/EmbedURL/EmbedURL";
10
+ import "../components/ui/components/navigation/Link/Link";
6
11
  import "../components/ui/components/inputs/ColorPicker/colorpicker";
7
12
  import "../components/ui/components/inputs/NumberInput/NumberInput";
8
13
  import "../components/ui/components/inputs/TextInput/TextInput";
9
- import "../components/ui/components/wrappers/GenerikWrapper/GenerikWrapper";
10
14
  import "../components/ui/components/inputs/IconButton/iconbutton";
11
15
  import "../components/ui/components/inputs/Select/Select";
12
- import "../components/ui/components/Event/EventValue/EventValue";
13
- import "../components/ui/components/utility/Border/Border";
14
- import "../components/ui/components/utility/BoxShadow/BoxShadow";
15
- import "../components/ui/components/display/BoxModel/BoxModel";
16
- import "../components/ui/components/display/Table/Table";
17
16
  import "../components/ui/components/inputs/Checkbox/Checkbox";
18
17
  import "../components/ui/components/inputs/Dropdown/Dropdown";
19
18
  import "../components/ui/components/inputs/DatePicker/DatePicker";
19
+ import "../components/ui/components/inputs/RadioButton/Radio-button";
20
+ import "../components/ui/components/inputs/Button/Button";
21
+ import "../components/ui/components/inputs/FileUpload/FileUpload";
22
+ import "../components/ui/components/inputs/Textarea/Textarea";
23
+ import "../components/ui/components/inputs/Slider/Slider";
24
+ import "../components/ui/components/inputs/Form/Form";
25
+ import "../components/ui/components/display/Table/Table";
20
26
  import "../components/ui/components/display/Icon/Icon";
21
27
  import "../components/ui/components/display/Image/Image";
22
- import "../components/ui/components/inputs/RadioButton/Radio-button";
28
+ import "../components/ui/components/display/Divider/Divider";
29
+ import "../components/ui/components/display/TextLabel/TextLabel";
30
+ import "../components/ui/components/display/Code/Code";
31
+ import "../components/ui/components/display/Video/Video";
32
+ import "../components/ui/components/display/Badge/Badge";
33
+ import "../components/ui/components/display/Tag/Tag";
23
34
  import "../components/ui/components/advanced/AIChat/AIChat";
24
- import "../components/ui/components/inputs/IconPicker/IconPicker";
25
35
  import "../components/ui/components/advanced/MicroApp/MicroApp";
26
- import "../components/ui/components/inputs/UsersDropdown/UsersDropdown";
27
- import "../components/ui/components/inputs/InsertDropdown/InsertDropdown";
28
36
  import "../components/ui/components/advanced/Collapse/Collapse";
29
- import "../components/ui/components/display/Divider/Divider";
30
- import "../components/ui/components/utility/Handlers/Handlers";
31
- import "../components/ui/components/utility/Function/InvokeFunction";
32
- import "../components/ui/components/utility/Export-Import/Export-Import";
33
37
  import "../components/ui/components/advanced/Collections/Collections";
34
- import "../components/ui/components/inputs/Button/Button";
35
- import "../components/ui/components/display/TextLabel/TextLabel";
36
38
  import "../components/ui/components/advanced/RefComponent/RefComponent";
37
- import "../components/ui/components/display/Code/Code";
38
39
  import "../components/ui/components/advanced/RichText/RichText";
39
- import "../components/ui/components/navigation/EmbedURL/EmbedURL";
40
- import "../components/ui/components/navigation/Link/Link";
41
- import "../components/ui/components/inputs/FileUpload/FileUpload";
42
40
  import "../components/ui/components/utility/Document/Document";
43
- import "../components/ui/components/display/Video/Video";
44
- import "../components/ui/components/inputs/Textarea/Textarea";
45
- import "../components/ui/components/display/Badge/Badge";
46
- import "../components/ui/components/layout/Card/Card";
47
- import "../components/ui/components/display/Tag/Tag";
48
- import "../components/ui/components/inputs/Slider/Slider";
49
- // import "../components/ui/components/layout/Panel/Panel";
41
+ import "../components/ui/components/ToastContainer/ToastContainer";
@@ -1,18 +1,11 @@
1
1
  import { type ComponentElement, ComponentType } from '../redux/store/component/component.interface';
2
2
  import { html, type TemplateResult } from "lit";
3
+ import { ComponentRegistry, type ComponentRenderProps } from './component-registry';
3
4
 
4
- // Note: Components are registered in register-components.ts to avoid circular dependencies
5
- // Make sure to import './register-components' before using renderComponent
6
-
7
- // Reusable templates for common components
8
5
  const selectTemplate = (props: any, isViewMode: boolean) => html`<select-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></select-block>`;
9
6
  const iconButtonTemplate = (props: any, isViewMode: boolean) => html`<icon-button-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></icon-button-block>`;
10
7
  const colorPickerTemplate = (props: any, isViewMode: boolean) => html`<color-picker-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></color-picker-block>`;
11
8
  const numberInputTemplate = (props: any, isViewMode: boolean) => html`<number-input-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></number-input-block>`;
12
- const shadowBoxTemplate = (props: any, isViewMode: boolean) => html`<attribute-box-shadow-value .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></attribute-box-shadow-value>`;
13
- const borderRadiusTemplate = (props: any, isViewMode: boolean) => html`<attribute-border-value .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></attribute-border-value>`;
14
- const boxModelTemplate = (props: any, isViewMode: boolean) => html`<box-model-display .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></box-model-display>`;
15
- const eventTemplate = (props: any, isViewMode: boolean) => html`<parameter-event-handler .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></parameter-event-handler>`;
16
9
  const tableTemplate = (props: any, isViewMode: boolean) => html`<table-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></table-block>`;
17
10
  const textInputTemplate = (props: any, isViewMode: boolean) => html`<text-input-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></text-input-block>`;
18
11
  const textLabelTemplate = (props: any, isViewMode: boolean) => html`<text-label-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></text-label-block>`;
@@ -27,13 +20,9 @@ const iconTemplate = (props: any, isViewMode: boolean) => html`<icon-block .isV
27
20
  const imageTemplate = (props: any, isViewMode: boolean) => html`<image-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></image-block>`;
28
21
  const radioButtonTemplate = (props: any, isViewMode: boolean) => html`<radio-button-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></radio-button-block>`;
29
22
  const aiTemplate = (props: any, isViewMode: boolean) => html`<ai-chat-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></ai-chat-block>`;
30
- const iconPickerTemplate = (props: any, isViewMode: boolean) => html`<icon-picker-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></icon-picker-block>`;
31
- const usersDropdownTemplate = (props: any, isViewMode: boolean) => html`<users-dropdown-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></users-dropdown-block>`;
32
- const insertDropdownTemplate = (props: any, isViewMode: boolean) => html`<insert-dropdown-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></insert-dropdown-block>`;
33
23
  const microAppTemplate = (props: any, isViewMode: boolean) => html`<micro-app-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></micro-app-block>`;
34
24
  const collapseTemplate = (props: any, isViewMode: boolean) => html`<collapse-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></collapse-block>`;
35
25
  const dividerTemplate = (props: any, isViewMode: boolean) => html`<divider-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></divider-block>`;
36
- const handlersTemplate = (props: any, isViewMode: boolean) => html`<handler-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></handler-block>`;
37
26
  const dropDownTemplate = (props: any, isViewMode: boolean) => html`<dropdown-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></dropdown-block>`;
38
27
  const refComponentTemplate = (props: any, isViewMode: boolean) => html`<ref-component-container-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></ref-component-container-block>`;
39
28
  const codeTemplate = (props: any, isViewMode: boolean) => html`<code-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></code-block>`;
@@ -49,14 +38,9 @@ const cardTemplate = (props: any, isViewMode: boolean) => html`<card-block .isV
49
38
  const tagTemplate = (props: any, isViewMode: boolean) => html`<tag-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></tag-block>`;
50
39
  const sliderTemplate = (props: any, isViewMode: boolean) => html`<slider-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></slider-block>`;
51
40
  const panelTemplate = (props: any, isViewMode: boolean) => html`<panel-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></panel-block>`;
52
- const invokeFunctionTemplate = (props: any, isViewMode: boolean) => html`
53
- <invoke-function-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></invoke-function-block>
54
- `;
55
-
56
-
57
- const importExportTemplate = (props: any, isViewMode: boolean) => html`
58
- <export-import-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></export-import-block>
59
- `;
41
+ const gridRowTemplate = (props: any, isViewMode: boolean) => html`<grid-row-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></grid-row-block>`;
42
+ const gridColTemplate = (props: any, isViewMode: boolean) => html`<grid-col-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></grid-col-block>`;
43
+ const formTemplate = (props: any, isViewMode: boolean) => html`<form-block .isViewMode=${isViewMode} .parentcomponent=${props.parent} .item=${props.item} .component=${props.component}></form-block>`;
60
44
 
61
45
  function renderComponentElement(component: ComponentElement, commonProps: any, isViewMode?: boolean): TemplateResult {
62
46
  const template = getComponentTemplate(component, commonProps, isViewMode);
@@ -65,14 +49,6 @@ function renderComponentElement(component: ComponentElement, commonProps: any, i
65
49
 
66
50
  function getComponentTemplate(component: ComponentElement, commonProps: any, isViewMode?: boolean): TemplateResult {
67
51
  switch (component?.component_type) {
68
- case ComponentType.Event:
69
- return eventTemplate(commonProps, isViewMode);
70
- case ComponentType.BorderRadius:
71
- return borderRadiusTemplate(commonProps, isViewMode);
72
- case ComponentType.BoxModel:
73
- return boxModelTemplate(commonProps, isViewMode);
74
- case ComponentType.ShadowBox:
75
- return shadowBoxTemplate(commonProps, isViewMode);
76
52
  case ComponentType.Select:
77
53
  return selectTemplate(commonProps, isViewMode);
78
54
  case ComponentType.IconButton:
@@ -111,22 +87,10 @@ function getComponentTemplate(component: ComponentElement, commonProps: any, isV
111
87
  return radioButtonTemplate(commonProps, isViewMode);
112
88
  case ComponentType.AI:
113
89
  return aiTemplate(commonProps, isViewMode);
114
- case ComponentType.IconPicker:
115
- return iconPickerTemplate(commonProps, isViewMode);
116
90
  case ComponentType.MicroApp:
117
91
  return microAppTemplate(commonProps, isViewMode);
118
- case ComponentType.UsersDropdown:
119
- return usersDropdownTemplate(commonProps, isViewMode);
120
- case ComponentType.InsertDropdown:
121
- return insertDropdownTemplate(commonProps, isViewMode);
122
92
  case ComponentType.Collapse:
123
93
  return collapseTemplate(commonProps, isViewMode);
124
- case ComponentType.Handlers:
125
- return handlersTemplate(commonProps, isViewMode);
126
- case ComponentType.ExportImport:
127
- return importExportTemplate(commonProps, isViewMode);
128
- case ComponentType.InvokeFunction:
129
- return invokeFunctionTemplate(commonProps, isViewMode);
130
94
  case ComponentType.Dropdown:
131
95
  return dropDownTemplate(commonProps, isViewMode);
132
96
  case ComponentType.RefComponent:
@@ -142,22 +106,37 @@ function getComponentTemplate(component: ComponentElement, commonProps: any, isV
142
106
  case ComponentType.FileUpload:
143
107
  return fileUploadTemplate(commonProps, isViewMode);
144
108
  case ComponentType.Video:
145
- return videoTemplate(commonProps, isViewMode);
109
+ return videoTemplate(commonProps, isViewMode);
146
110
  case ComponentType.Document:
147
- return documentTemplate(commonProps, isViewMode);
111
+ return documentTemplate(commonProps, isViewMode);
148
112
  case ComponentType.Textarea:
149
- return textareaTemplate(commonProps, isViewMode);
113
+ return textareaTemplate(commonProps, isViewMode);
150
114
  case ComponentType.Badge:
151
- return badgeTemplate(commonProps, isViewMode);
115
+ return badgeTemplate(commonProps, isViewMode);
152
116
  case ComponentType.Card:
153
- return cardTemplate(commonProps, isViewMode);
117
+ return cardTemplate(commonProps, isViewMode);
154
118
  case ComponentType.Tag:
155
- return tagTemplate(commonProps, isViewMode);
119
+ return tagTemplate(commonProps, isViewMode);
156
120
  case ComponentType.Slider:
157
- return sliderTemplate(commonProps, isViewMode);
121
+ return sliderTemplate(commonProps, isViewMode);
158
122
  case ComponentType.Panel:
159
- return panelTemplate(commonProps, isViewMode);
123
+ return panelTemplate(commonProps, isViewMode);
124
+ case ComponentType.GridRow:
125
+ return gridRowTemplate(commonProps, isViewMode);
126
+ case ComponentType.GridCol:
127
+ return gridColTemplate(commonProps, isViewMode);
128
+ case ComponentType.Form:
129
+ return formTemplate(commonProps, isViewMode);
160
130
  default:
131
+ const registeredTemplate = ComponentRegistry.getTemplate(component?.component_type as string);
132
+ if (registeredTemplate) {
133
+ const renderProps: ComponentRenderProps = {
134
+ component: commonProps.component,
135
+ parent: commonProps.parent,
136
+ item: commonProps.item,
137
+ };
138
+ return registeredTemplate(renderProps, isViewMode ?? false);
139
+ }
161
140
  return html``;
162
141
  }
163
142
  }
package/utils/toast.ts ADDED
@@ -0,0 +1,97 @@
1
+ import { $toasts, type Toast } from '../redux/store/toast';
2
+ import { eventDispatcher } from './change-detection';
3
+ import { ToastContainer } from '../components/ui/components/ToastContainer/ToastContainer';
4
+
5
+ let toastIdCounter = 0;
6
+
7
+ function generateToastId(): string {
8
+ return `toast-${Date.now()}-${++toastIdCounter}`;
9
+ }
10
+
11
+ // Initialize ToastContainer singleton on first use
12
+ let initialized = false;
13
+ function ensureToastContainer() {
14
+ if (!initialized && typeof window !== 'undefined') {
15
+ initialized = true;
16
+ setTimeout(() => {
17
+ ToastContainer.getInstance();
18
+ }, 0);
19
+ }
20
+ }
21
+
22
+ /**
23
+ * Shows a toast notification
24
+ */
25
+ export function showToast(options: {
26
+ message: string;
27
+ type?: 'success' | 'error' | 'warning' | 'info';
28
+ duration?: number;
29
+ closable?: boolean;
30
+ }): string {
31
+ ensureToastContainer();
32
+
33
+ const id = generateToastId();
34
+ const toast: Toast = {
35
+ id,
36
+ type: 'info',
37
+ duration: 3000,
38
+ closable: true,
39
+ ...options
40
+ };
41
+
42
+ const current = $toasts.get();
43
+ ($toasts as any).setKey('toasts', [...current.toasts, toast]);
44
+
45
+ eventDispatcher.emit('toast:show', toast);
46
+
47
+ if (toast.duration && toast.duration > 0) {
48
+ setTimeout(() => hideToast(id), toast.duration);
49
+ }
50
+
51
+ return id;
52
+ }
53
+
54
+ /**
55
+ * Hides a specific toast by ID
56
+ */
57
+ export function hideToast(id: string): void {
58
+ const current = $toasts.get();
59
+ ($toasts as any).setKey('toasts', current.toasts.filter(t => t.id !== id));
60
+ eventDispatcher.emit('toast:hide', { id });
61
+ }
62
+
63
+ /**
64
+ * Clears all active toasts
65
+ */
66
+ export function clearAllToasts(): void {
67
+ ($toasts as any).setKey('toasts', []);
68
+ eventDispatcher.emit('toast:clear');
69
+ }
70
+
71
+ /**
72
+ * Shows a success toast
73
+ */
74
+ export function showSuccess(message: string, duration = 3000): string {
75
+ return showToast({ message, type: 'success', duration });
76
+ }
77
+
78
+ /**
79
+ * Shows an error toast
80
+ */
81
+ export function showError(message: string, duration = 5000): string {
82
+ return showToast({ message, type: 'error', duration });
83
+ }
84
+
85
+ /**
86
+ * Shows a warning toast
87
+ */
88
+ export function showWarning(message: string, duration = 4000): string {
89
+ return showToast({ message, type: 'warning', duration });
90
+ }
91
+
92
+ /**
93
+ * Shows an info toast
94
+ */
95
+ export function showInfo(message: string, duration = 3000): string {
96
+ return showToast({ message, type: 'info', duration });
97
+ }
package/vite.config.ts CHANGED
@@ -1,9 +1,22 @@
1
1
  import { defineConfig } from 'vite';
2
2
  import { resolve } from 'path';
3
+ import { existsSync } from 'fs';
3
4
 
4
5
  // Check if we're building the bundle version
5
6
  const isBundleBuild = process.env.BUILD_BUNDLE === 'true';
6
7
 
8
+ // Helper to find node_modules - check local first, then parent (for monorepo)
9
+ function findNodeModule(moduleName: string): string {
10
+ const localPath = resolve(__dirname, 'node_modules', moduleName);
11
+ const parentPath = resolve(__dirname, '../../../node_modules', moduleName);
12
+
13
+ // Prefer local node_modules (standalone build), fallback to parent (monorepo)
14
+ if (existsSync(localPath)) {
15
+ return localPath;
16
+ }
17
+ return parentPath;
18
+ }
19
+
7
20
  export default defineConfig({
8
21
  define: {
9
22
  // Replace process.env.NODE_ENV with a static value for browser bundles
@@ -41,7 +54,6 @@ export default defineConfig({
41
54
  'immer',
42
55
  'uuid',
43
56
  '@nuralyui/',
44
- '@nuraly/dbclient',
45
57
  'acorn',
46
58
  'acorn-walk',
47
59
  'fast-deep-equal'
@@ -70,17 +82,22 @@ export default defineConfig({
70
82
  resolve: {
71
83
  alias: [
72
84
  { find: '@', replacement: resolve(__dirname, './') },
73
- // Resolve dependencies from the main studio node_modules
74
- { find: 'lit', replacement: resolve(__dirname, '../../../node_modules/lit') },
75
- { find: 'nanostores', replacement: resolve(__dirname, '../../../node_modules/nanostores') },
76
- { find: 'rxjs', replacement: resolve(__dirname, '../../../node_modules/rxjs') },
77
- { find: 'immer', replacement: resolve(__dirname, '../../../node_modules/immer') },
78
- { find: 'uuid', replacement: resolve(__dirname, '../../../node_modules/uuid') },
79
- { find: 'acorn', replacement: resolve(__dirname, '../../../node_modules/acorn') },
80
- { find: 'acorn-walk', replacement: resolve(__dirname, '../../../node_modules/acorn-walk') },
81
- { find: 'fast-deep-equal', replacement: resolve(__dirname, '../../../node_modules/fast-deep-equal') },
82
- // Resolve all nuralyui packages using a regex pattern
83
- { find: /^@nuralyui\/(.*)$/, replacement: resolve(__dirname, '../../../node_modules/@nuralyui/$1') }
85
+ // Resolve dependencies - automatically finds local or parent node_modules
86
+ { find: 'lit', replacement: findNodeModule('lit') },
87
+ { find: 'nanostores', replacement: findNodeModule('nanostores') },
88
+ { find: 'rxjs', replacement: findNodeModule('rxjs') },
89
+ { find: 'immer', replacement: findNodeModule('immer') },
90
+ { find: 'uuid', replacement: findNodeModule('uuid') },
91
+ { find: 'acorn', replacement: findNodeModule('acorn') },
92
+ { find: 'acorn-walk', replacement: findNodeModule('acorn-walk') },
93
+ { find: 'fast-deep-equal', replacement: findNodeModule('fast-deep-equal') },
94
+ // Resolve all nuralyui packages - check local first, then parent
95
+ {
96
+ find: /^@nuralyui\/(.*)$/,
97
+ replacement: existsSync(resolve(__dirname, 'node_modules/@nuralyui'))
98
+ ? resolve(__dirname, 'node_modules/@nuralyui/$1')
99
+ : resolve(__dirname, '../../../node_modules/@nuralyui/$1')
100
+ }
84
101
  ]
85
102
  }
86
103
  });
@@ -1,11 +0,0 @@
1
- import { css } from "lit";
2
-
3
- export default css`
4
- .container {
5
- display: flex;
6
- flex-direction: row;
7
- }
8
- .first_column {
9
- width: 45%;
10
- }
11
- `;
@@ -1,28 +0,0 @@
1
- import { type ComponentElement } from '../../../../../redux/store/component/component.interface.ts';
2
- import { html, LitElement } from "lit";
3
- import { customElement, property } from "lit/decorators.js";
4
- import "../EventLabel/EventLabel.ts";
5
- import "../EventValue/EventValue.ts";
6
- import styles from "./EventAttribute.style.ts";
7
-
8
- @customElement("parameter-event")
9
- export class ParameterEvent extends LitElement {
10
- static styles = styles;
11
- @property({ type: Object })
12
- component: ComponentElement;
13
- @property()
14
- eventName: string;
15
-
16
- render() {
17
- return html` <div class="container">
18
- <parameter-event-label
19
- class="first_column"
20
- .eventName=${this.eventName}
21
- ></parameter-event-label>
22
- <parameter-event-handler
23
- .component=${this.component}
24
- .eventName=${this.eventName}
25
- ></parameter-event-handler>
26
- </div>`;
27
- }
28
- }
@@ -1,31 +0,0 @@
1
- import { RuntimeHelpers } from '../../../../../utils/runtime-helpers.ts';
2
- import Editor from '../../../../../state/editor.ts';
3
-
4
- export function calculateStyles(ctx: {
5
- component: any;
6
- inputHandlersValue: Record<string, any>;
7
- calculatedStyles: Record<string, any>;
8
- style: CSSStyleDeclaration;
9
- }) {
10
- ctx.calculatedStyles = {
11
- ...Editor.getComponentStyles(ctx.component),
12
- ...ctx.calculatedStyles,
13
- };
14
-
15
- const { innerAlignment } = ctx.inputHandlersValue;
16
-
17
- ctx.style.removeProperty("align-self");
18
- ctx.style.removeProperty("margin");
19
- ctx.style.removeProperty("margin-left");
20
-
21
- if (innerAlignment === "end") ctx.style.marginLeft = "auto";
22
- else if (innerAlignment === "middle") {
23
- ctx.style.alignSelf = "center";
24
- ctx.style.margin = "auto";
25
- }
26
-
27
- const { width, flex, cursor } = ctx.calculatedStyles;
28
- if (width && RuntimeHelpers.extractUnit(width) === "%") ctx.style.width = width;
29
- if (flex) ctx.style.flex = flex;
30
- if (cursor) ctx.style.cursor = cursor;
31
- }