@nuraly/runtime 0.1.7 → 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 +7 -147
  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-YsOapSut.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-Bfqhwyij.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-DCgKNBmn.js → handlebars-CF6gdAX4.js} +38 -4
  114. package/dist/{hcl-6NT8Kbna.js → hcl-YBvpaUqf.js} +13 -1
  115. package/dist/{html-C6wR7sMB.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-D1L5MTmg.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-D_pDYIs1.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-CKsJ3cF4.js → mdx-LewPRYF8.js} +2 -2
  130. package/dist/{micro-app-entry-xdTX5-ut.js → micro-app-entry-C3RDIukG.js} +8082 -9628
  131. package/dist/micro-app.bundle.js +3 -3
  132. package/dist/micro-app.js +3585 -6759
  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-zPpZYwLF.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-B_fCUeGX.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-DrlYcCUn.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-BzP9D0eZ.js → xml-DgLB7rE6.js} +8 -2
  179. package/dist/{yaml-CT7GOvXu.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-C4EliaG0.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-CqMQ6Xsa.js +0 -1443
  345. package/dist/htmlMode-KglxyZXm.js +0 -1453
  346. package/dist/jsonMode-B3rqxD-b.js +0 -1863
  347. package/dist/tsMode-DEiq8fQ0.js +0 -800
  348. package/redux/actions/application/loadApplicationPermissionAction.ts +0 -10
  349. package/utils/styleUtil.ts +0 -7
@@ -1,7 +1,7 @@
1
- import { m as r } from "./CodeEditor-YsOapSut.js";
1
+ import { m as r } from "./CodeEditor-Bf4L2rO_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)
4
+ * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
5
5
  * Released under the MIT license
6
6
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
7
7
  *-----------------------------------------------------------------------------*/
@@ -44,18 +44,24 @@ var g = {
44
44
  defaultToken: "",
45
45
  tokenPostfix: ".xml",
46
46
  ignoreCase: !0,
47
+ // Useful regular expressions
47
48
  qualifiedName: /(?:[\w\.\-]+:)?[\w\.\-]+/,
48
49
  tokenizer: {
49
50
  root: [
50
51
  [/[^<&]+/, ""],
51
52
  { include: "@whitespace" },
53
+ // Standard opening tag
52
54
  [/(<)(@qualifiedName)/, [{ token: "delimiter" }, { token: "tag", next: "@tag" }]],
55
+ // Standard closing tag
53
56
  [
54
57
  /(<\/)(@qualifiedName)(\s*)(>)/,
55
58
  [{ token: "delimiter" }, { token: "tag" }, "", { token: "delimiter" }]
56
59
  ],
60
+ // Meta tags - instruction
57
61
  [/(<\?)(@qualifiedName)/, [{ token: "delimiter" }, { token: "metatag", next: "@tag" }]],
62
+ // Meta tags - declaration
58
63
  [/(<\!)(@qualifiedName)/, [{ token: "delimiter" }, { token: "metatag", next: "@tag" }]],
64
+ // CDATA
59
65
  [/<\!\[CDATA\[/, { token: "delimiter.cdata", next: "@cdata" }],
60
66
  [/&\w+;/, "string.escape"]
61
67
  ],
@@ -1,7 +1,7 @@
1
- import { m as l } from "./CodeEditor-YsOapSut.js";
1
+ import { m as l } from "./CodeEditor-Bf4L2rO_.js";
2
2
  /*!-----------------------------------------------------------------------------
3
3
  * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Version: 0.45.0(5e5af013f8d295555a7210df0d5f2cea0bf5dd56)
4
+ * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
5
5
  * Released under the MIT license
6
6
  * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
7
7
  *-----------------------------------------------------------------------------*/
@@ -65,14 +65,18 @@ var p = {
65
65
  root: [
66
66
  { include: "@whitespace" },
67
67
  { include: "@comment" },
68
+ // Directive
68
69
  [/%[^ ]+.*$/, "meta.directive"],
70
+ // Document Markers
69
71
  [/---/, "operators.directivesEnd"],
70
72
  [/\.{3}/, "operators.documentEnd"],
73
+ // Block Structure Indicators
71
74
  [/[-?:](?= )/, "operators"],
72
75
  { include: "@anchor" },
73
76
  { include: "@tagHandle" },
74
77
  { include: "@flowCollections" },
75
78
  { include: "@blockStyle" },
79
+ // Numbers
76
80
  [/@numberInteger(?![ \t]*\S+)/, "number"],
77
81
  [/@numberFloat(?![ \t]*\S+)/, "number.float"],
78
82
  [/@numberOctal(?![ \t]*\S+)/, "number.octal"],
@@ -80,8 +84,10 @@ var p = {
80
84
  [/@numberInfinity(?![ \t]*\S+)/, "number.infinity"],
81
85
  [/@numberNaN(?![ \t]*\S+)/, "number.nan"],
82
86
  [/@numberDate(?![ \t]*\S+)/, "number.date"],
87
+ // Key:Value pair
83
88
  [/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/, ["type", "white", "operators", "white"]],
84
89
  { include: "@flowScalars" },
90
+ // String nodes
85
91
  [
86
92
  /.+?(?=(\s+#|$))/,
87
93
  {
@@ -92,18 +98,26 @@ var p = {
92
98
  }
93
99
  ]
94
100
  ],
101
+ // Flow Collection: Flow Mapping
95
102
  object: [
96
103
  { include: "@whitespace" },
97
104
  { include: "@comment" },
105
+ // Flow Mapping termination
98
106
  [/\}/, "@brackets", "@pop"],
107
+ // Flow Mapping delimiter
99
108
  [/,/, "delimiter.comma"],
109
+ // Flow Mapping Key:Value delimiter
100
110
  [/:(?= )/, "operators"],
111
+ // Flow Mapping Key:Value key
101
112
  [/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/, "type"],
113
+ // Start Flow Style
102
114
  { include: "@flowCollections" },
103
115
  { include: "@flowScalars" },
116
+ // Scalar Data types
104
117
  { include: "@tagHandle" },
105
118
  { include: "@anchor" },
106
119
  { include: "@flowNumber" },
120
+ // Other value (keyword or string)
107
121
  [
108
122
  /[^\},]+/,
109
123
  {
@@ -114,16 +128,22 @@ var p = {
114
128
  }
115
129
  ]
116
130
  ],
131
+ // Flow Collection: Flow Sequence
117
132
  array: [
118
133
  { include: "@whitespace" },
119
134
  { include: "@comment" },
135
+ // Flow Sequence termination
120
136
  [/\]/, "@brackets", "@pop"],
137
+ // Flow Sequence delimiter
121
138
  [/,/, "delimiter.comma"],
139
+ // Start Flow Style
122
140
  { include: "@flowCollections" },
123
141
  { include: "@flowScalars" },
142
+ // Scalar Data types
124
143
  { include: "@tagHandle" },
125
144
  { include: "@anchor" },
126
145
  { include: "@flowNumber" },
146
+ // Other value (keyword or string)
127
147
  [
128
148
  /[^\],]+/,
129
149
  {
@@ -134,7 +154,10 @@ var p = {
134
154
  }
135
155
  ]
136
156
  ],
157
+ // First line of a Block Style
137
158
  multiString: [[/^( +).+$/, "string", "@multiStringContinued.$1"]],
159
+ // Further lines of a Block Style
160
+ // Workaround for indentation detection
138
161
  multiStringContinued: [
139
162
  [
140
163
  /^( *).+$/,
@@ -147,11 +170,14 @@ var p = {
147
170
  ]
148
171
  ],
149
172
  whitespace: [[/[ \t\r\n]+/, "white"]],
173
+ // Only line comments
150
174
  comment: [[/#.*$/, "comment"]],
175
+ // Start Flow Collections
151
176
  flowCollections: [
152
177
  [/\[/, "@brackets", "@array"],
153
178
  [/\{/, "@brackets", "@object"]
154
179
  ],
180
+ // Start Flow Scalars (quoted strings)
155
181
  flowScalars: [
156
182
  [/"([^"\\]|\\.)*$/, "string.invalid"],
157
183
  [/'([^'\\]|\\.)*$/, "string.invalid"],
@@ -164,7 +190,9 @@ var p = {
164
190
  [/\\./, "string.escape.invalid"],
165
191
  [/"/, "string", "@pop"]
166
192
  ],
193
+ // Start Block Scalar
167
194
  blockStyle: [[/[>|][0-9]*[+-]?$/, "operators", "@multiString"]],
195
+ // Numbers in Flow Collections (terminate with ,]})
168
196
  flowNumber: [
169
197
  [/@numberInteger(?=[ \t]*[,\]\}])/, "number"],
170
198
  [/@numberFloat(?=[ \t]*[,\]\}])/, "number.float"],
@@ -43,22 +43,131 @@
43
43
  */
44
44
 
45
45
  import { validateHandlerCode } from '../utils/handler-validator';
46
+ import * as acorn from 'acorn';
47
+
48
+ // Re-export createHandlerScope for use in handler-executor
49
+ export { createHandlerScope } from './handler-scope';
50
+
51
+ /**
52
+ * Node types that indicate control flow requiring explicit return.
53
+ */
54
+ const CONTROL_FLOW_TYPES = new Set([
55
+ 'IfStatement',
56
+ 'ForStatement',
57
+ 'ForInStatement',
58
+ 'ForOfStatement',
59
+ 'WhileStatement',
60
+ 'DoWhileStatement',
61
+ 'SwitchStatement',
62
+ 'TryStatement',
63
+ 'ThrowStatement',
64
+ ]);
65
+
66
+ /**
67
+ * Analyzes code AST to determine if implicit return should be added.
68
+ * Uses acorn for proper JavaScript parsing.
69
+ *
70
+ * @param code - Handler code string
71
+ * @returns Analysis result with flags for return and control flow
72
+ */
73
+ function analyzeCode(code: string): { hasTopLevelReturn: boolean; hasControlFlow: boolean; isMultiStatement: boolean } {
74
+ const trimmed = code.trim();
75
+
76
+ if (!trimmed) {
77
+ return { hasTopLevelReturn: false, hasControlFlow: false, isMultiStatement: false };
78
+ }
79
+
80
+ try {
81
+ // Parse as a script (not module) to allow return statements
82
+ // Wrap in function body to make it valid syntax for parsing
83
+ const wrappedCode = `(function() { ${trimmed} })`;
84
+ const ast = acorn.parse(wrappedCode, {
85
+ ecmaVersion: 'latest',
86
+ sourceType: 'script',
87
+ }) as any;
88
+
89
+ // Get the function body statements
90
+ const funcExpr = ast.body[0].expression;
91
+ const bodyStatements = funcExpr.body.body;
92
+
93
+ let hasTopLevelReturn = false;
94
+ let hasControlFlow = false;
95
+ const isMultiStatement = bodyStatements.length > 1;
96
+
97
+ // Check each top-level statement in the function body
98
+ for (const stmt of bodyStatements) {
99
+ if (stmt.type === 'ReturnStatement') {
100
+ hasTopLevelReturn = true;
101
+ }
102
+ if (CONTROL_FLOW_TYPES.has(stmt.type)) {
103
+ hasControlFlow = true;
104
+ }
105
+ }
106
+
107
+ return { hasTopLevelReturn, hasControlFlow, isMultiStatement };
108
+ } catch {
109
+ // If parsing fails, fall back to conservative behavior (no implicit return)
110
+ return { hasTopLevelReturn: true, hasControlFlow: false, isMultiStatement: false };
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Checks if code needs an implicit return added.
116
+ * Uses AST analysis to properly detect top-level returns vs nested returns in callbacks.
117
+ *
118
+ * @param code - Handler code string
119
+ * @returns true if implicit return should be added
120
+ */
121
+ function needsImplicitReturn(code: string): boolean {
122
+ const trimmed = code.trim();
123
+
124
+ // If empty, no return needed
125
+ if (!trimmed) return false;
126
+
127
+ const analysis = analyzeCode(trimmed);
128
+
129
+ // If has top-level return statement, don't add another
130
+ if (analysis.hasTopLevelReturn) return false;
131
+
132
+ // If has top-level control flow statements, require explicit return
133
+ if (analysis.hasControlFlow) return false;
134
+
135
+ // Multiple statements require explicit return
136
+ if (analysis.isMultiStatement) return false;
137
+
138
+ // Single expression - add implicit return
139
+ return true;
140
+ }
141
+
142
+ /**
143
+ * Wraps code with implicit return if needed.
144
+ *
145
+ * @param code - Handler code string
146
+ * @returns Code with return statement if needed
147
+ */
148
+ function wrapWithImplicitReturn(code: string): string {
149
+ if (needsImplicitReturn(code)) {
150
+ const trimmed = code.trim().replace(/;$/, ''); // Remove trailing semicolon
151
+ return `return (${trimmed});`;
152
+ }
153
+ return code;
154
+ }
46
155
 
47
156
  /**
48
157
  * Cache storage for compiled handler functions.
49
- *
158
+ *
50
159
  * @description
51
160
  * Maps handler code strings to their compiled Function objects.
52
161
  * Cache is maintained for the lifetime of the application session.
53
- *
162
+ *
54
163
  * @type {Record<string, Function>}
55
- *
164
+ *
56
165
  * @remarks
57
166
  * - Key: Handler code string (exactly as written in component properties)
58
167
  * - Value: Compiled JavaScript function with injected parameters
59
168
  * - Thread-safe: Single-threaded JavaScript execution model
60
169
  * - Memory impact: ~1-2KB per unique handler on average
61
- *
170
+ *
62
171
  * @private
63
172
  */
64
173
  const handlerFunctionCache: Record<string, Function> = {};
@@ -79,14 +188,14 @@ const handlerFunctionCache: Record<string, Function> = {};
79
188
  * @remarks
80
189
  * **Parameter Categories:**
81
190
  *
82
- * 1. **Core Services** (Database, eventHandler, Components, Editor)
191
+ * 1. **Core Services** (eventHandler, Components, Editor)
83
192
  * 2. **Context Data** (Event, Item, Current, currentPlatform, Values, Apps, Vars)
84
193
  * 3. **Variable Functions** (SetVar, GetContextVar, GetVar, SetContextVar)
85
194
  * 4. **Component Functions** (GetComponent, GetComponents, AddComponent)
86
195
  * 5. **Application Functions** (UpdateApplication, Apps, applications)
87
196
  * 6. **Page Functions** (AddPage, UpdatePage, deletePage)
88
197
  * 7. **Navigation Functions** (NavigateToUrl, NavigateToHash, NavigateToPage)
89
- * 8. **Property Update Functions** (updateInput, updateName, updateEvent, updateStyle, updateStyleHandlers, updateInputHandlers)
198
+ * 8. **Property Update Functions** (updateInput, updateName, updateEvent, updateStyle, updateStyleHandlers)
90
199
  * 9. **Clipboard Functions** (CopyComponentToClipboard, PasteComponentFromClipboard, DeleteComponentAction)
91
200
  * 10. **Editor Functions** (openEditorTab, setCurrentEditorTab, TraitCompoentFromSchema)
92
201
  * 11. **Function Invocation** (InvokeFunction)
@@ -118,7 +227,6 @@ const handlerFunctionCache: Record<string, Function> = {};
118
227
  * ```
119
228
  */
120
229
  export const HANDLER_PARAMETERS = [
121
- "Database",
122
230
  "eventHandler",
123
231
  "Components",
124
232
  "Editor",
@@ -146,7 +254,6 @@ export const HANDLER_PARAMETERS = [
146
254
  "context",
147
255
  "applications",
148
256
  "updateInput",
149
- "updateInputHandlers",
150
257
  "deletePage",
151
258
  "CopyComponentToClipboard",
152
259
  "PasteComponentFromClipboard",
@@ -171,6 +278,15 @@ export const HANDLER_PARAMETERS = [
171
278
  "ShowInfoToast",
172
279
  "HideToast",
173
280
  "ClearAllToasts",
281
+ "__createScope__", // For transparent variable access
282
+ // Namespaced API object (new clean API)
283
+ "Nav",
284
+ "UI",
285
+ "Component",
286
+ "Data",
287
+ "Page",
288
+ "App",
289
+ "Var",
174
290
  ] as const;
175
291
 
176
292
  /**
@@ -254,9 +370,41 @@ export const HANDLER_PARAMETERS = [
254
370
  * @see {@link executeHandler} for the execution wrapper that calls compiled functions
255
371
  * @see {@link HANDLER_PARAMETERS} for the list of available parameters in handler code
256
372
  */
373
+ /**
374
+ * Flag to enable/disable transparent variable access.
375
+ * When enabled, users can write `username = 'John'` instead of `$username = 'John'`.
376
+ *
377
+ * Set to false to use traditional explicit Vars access.
378
+ */
379
+ let transparentVarsEnabled = true;
380
+
381
+ /**
382
+ * Enable or disable transparent variable access in handlers.
383
+ *
384
+ * When enabled (default), variables like `username` automatically
385
+ * resolve to `$username` for reactive access.
386
+ *
387
+ * @param enabled - Whether to enable transparent variable access
388
+ */
389
+ export function setTransparentVarsEnabled(enabled: boolean): void {
390
+ transparentVarsEnabled = enabled;
391
+ // Clear cache when mode changes to recompile handlers
392
+ clearHandlerCache();
393
+ }
394
+
395
+ /**
396
+ * Check if transparent variable access is enabled.
397
+ */
398
+ export function isTransparentVarsEnabled(): boolean {
399
+ return transparentVarsEnabled;
400
+ }
401
+
257
402
  export function compileHandlerFunction(code: string): Function {
403
+ // Include mode in cache key to handle mode changes
404
+ const cacheKey = transparentVarsEnabled ? `scope:${code}` : code;
405
+
258
406
  // Check cache first for performance
259
- if (!handlerFunctionCache[code]) {
407
+ if (!handlerFunctionCache[cacheKey]) {
260
408
  // Validate handler code before compilation
261
409
  // This is a safety layer in case validation was bypassed at save time
262
410
  const validationResult = validateHandlerCode(code);
@@ -264,14 +412,46 @@ export function compileHandlerFunction(code: string): Function {
264
412
  throw new Error(`Handler validation failed: ${validationResult.errors[0]?.message || 'Unknown error'}`);
265
413
  }
266
414
 
267
- // Create new Function with all runtime parameters
268
- // The code is wrapped in an IIFE to provide proper scoping
269
- handlerFunctionCache[code] = new Function(
270
- ...HANDLER_PARAMETERS,
271
- `return (function() { ${code} }).apply(this);`
272
- );
415
+ // Wrap with implicit return if needed (e.g., "$name ?? 'hello'" becomes "return ($name ?? 'hello');")
416
+ const processedCode = wrapWithImplicitReturn(code);
417
+
418
+ if (transparentVarsEnabled) {
419
+ // Compile with transparent variable access using `with` statement
420
+ // The scope proxy routes unknown variables to VarsProxy
421
+ handlerFunctionCache[cacheKey] = new Function(
422
+ ...HANDLER_PARAMETERS,
423
+ `
424
+ var __scope__ = __createScope__({
425
+ VarsProxy: Vars,
426
+ parameters: {
427
+ eventHandler: eventHandler, Components, Editor, Event, Item,
428
+ Current, currentPlatform, Values, Apps, Vars, SetVar, GetContextVar,
429
+ UpdateApplication, GetVar, GetComponent, GetComponents, AddComponent,
430
+ SetContextVar, AddPage, TraitCompoentFromSchema, NavigateToUrl,
431
+ NavigateToHash, NavigateToPage, UpdatePage, context, applications,
432
+ updateInput, deletePage, CopyComponentToClipboard, PasteComponentFromClipboard,
433
+ DeleteComponentAction, updateName, updateEvent, updateStyleHandlers,
434
+ EventData, updateStyle, openEditorTab, setCurrentEditorTab, InvokeFunction,
435
+ Utils, console, UploadFile, BrowseFiles, Instance, ShowToast,
436
+ ShowSuccessToast, ShowErrorToast, ShowWarningToast, ShowInfoToast,
437
+ HideToast, ClearAllToasts,
438
+ Nav, UI, Component, Data, Page, App, Var
439
+ }
440
+ });
441
+ with (__scope__) {
442
+ return (function() { ${processedCode} }).apply(this);
443
+ }
444
+ `
445
+ );
446
+ } else {
447
+ // Traditional compilation without scope proxy
448
+ handlerFunctionCache[cacheKey] = new Function(
449
+ ...HANDLER_PARAMETERS,
450
+ `return (function() { ${processedCode} }).apply(this);`
451
+ );
452
+ }
273
453
  }
274
- return handlerFunctionCache[code];
454
+ return handlerFunctionCache[cacheKey];
275
455
  }
276
456
 
277
457
  /**
@@ -229,8 +229,14 @@ export function setupRuntimeContext(context: IRuntimeContext, component: any, Ev
229
229
  context.Current.style = context.Current.style ?? {};
230
230
 
231
231
  // Create or retrieve style proxy for reactive style updates
232
- if (!context.styleProxyCache.has(context.Current.style)) {
233
- const newProxy = observe(context.Current.style, (target, prop, value) => {
232
+ // IMPORTANT: Keep reference to original style object BEFORE checking cache
233
+ // This fixes the issue where we were caching proxy -> proxy instead of original -> proxy
234
+ const originalStyle = context.Current.style;
235
+
236
+ if (context.styleProxyCache.has(originalStyle)) {
237
+ context.Current.style = context.styleProxyCache.get(originalStyle);
238
+ } else {
239
+ const newProxy = observe(originalStyle, (target, prop, value) => {
234
240
  context.setComponentRuntimeStyleAttribute(
235
241
  context.Current.uniqueUUID,
236
242
  prop,
@@ -238,10 +244,9 @@ export function setupRuntimeContext(context: IRuntimeContext, component: any, Ev
238
244
  );
239
245
  });
240
246
 
247
+ // Cache using original object as key, proxy as value
248
+ context.styleProxyCache.set(originalStyle, newProxy);
241
249
  context.Current.style = newProxy;
242
- context.styleProxyCache.set(context.Current.style, newProxy);
243
- } else {
244
- context.Current.style = context.styleProxyCache.get(context.Current.style);
245
250
  }
246
251
  }
247
252