iobroker.javascript 10.2.4 → 10.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +10 -21
  2. package/admin/assets/AiChatPanel-CpY4Bun-.js +27 -0
  3. package/admin/assets/{AiChatService-Bsp_rhVx.js → AiChatService-QKcpW4jQ.js} +1 -1
  4. package/admin/assets/AiDiffView-DscPfZ38.js +1 -0
  5. package/admin/assets/{AiInlineProvider-BxOW88xU.js → AiInlineProvider-DTSPKoXG.js} +1 -1
  6. package/admin/assets/BlocklyEditor-BZyoN1JE.js +301 -0
  7. package/admin/assets/Compile-B0uHjrBE.css +1 -0
  8. package/admin/assets/Compile-Oss28m_f.js +165 -0
  9. package/admin/assets/Debugger-teJTIU-2.js +15 -0
  10. package/admin/assets/Documentation-uz4Ut9pT.js +4339 -0
  11. package/admin/assets/ExpandMore-V5Ix1QB1.js +1 -0
  12. package/admin/assets/FbEditor-B8S-mCvc.css +1 -0
  13. package/admin/assets/FbEditor-aOZ-RpPV.js +15 -0
  14. package/admin/assets/Import-BIC5Ee9z.js +1 -0
  15. package/admin/assets/NotificationsActive-BdzH44gp.js +1 -0
  16. package/admin/assets/RulesEditor-CcDVthPa.js +1 -0
  17. package/admin/assets/{ScriptEditor-BCGahS47.js → ScriptEditor-CviB6Hif.js} +2 -2
  18. package/admin/assets/ScriptEditorVanillaMonaco-ByuXwybM.js +3 -0
  19. package/admin/assets/Send-Mdo32jMb.js +1 -0
  20. package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BnL93BgK.js +1 -0
  21. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-NI-3Uv4e.js +1217 -0
  22. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-DVaMIZyC.js +9 -0
  23. package/admin/assets/aiPromptBuilder-yTB6N2VT.js +1 -0
  24. package/admin/assets/blocklyTheme-CGhU3cEO.js +1 -0
  25. package/admin/assets/blocks_action-BQ4O7NRE.js +1 -0
  26. package/admin/assets/{blocks_convert-CLb0DLyc.js → blocks_convert-0VBjfhqQ.js} +1 -1
  27. package/admin/assets/blocks_logic-DAo99xDr.js +1 -0
  28. package/admin/assets/blocks_number-C--e19NU.js +1 -0
  29. package/admin/assets/blocks_object-D0TPhdzg.js +1 -0
  30. package/admin/assets/blocks_procedures-DgTxgXdB.js +3 -0
  31. package/admin/assets/{blocks_sendto-BxCMg9X4.js → blocks_sendto-CRIrtOUc.js} +1 -1
  32. package/admin/assets/blocks_switch-b_GYfF0n.js +2 -0
  33. package/admin/assets/blocks_system-BdkUdSsc.js +1 -0
  34. package/admin/assets/blocks_text-DSFhEVOf.js +1 -0
  35. package/admin/assets/blocks_time-CqALAiJp.js +1 -0
  36. package/admin/assets/blocks_timeout-yrOD2pZp.js +1 -0
  37. package/admin/assets/{blocks_trigger-XivsIDE5.js → blocks_trigger-DeAYXpSS.js} +1 -1
  38. package/admin/assets/{cronHoverProvider-BZMOFHO_.js → cronHoverProvider-DoO2_tpG.js} +1 -1
  39. package/admin/assets/{field_cron-CxKi__cX.js → field_cron-D3Ts_s9M.js} +1 -1
  40. package/admin/assets/{field_oid-CJIYiGxY.js → field_oid-BRNXredg.js} +1 -1
  41. package/admin/assets/{field_script-CehplM7L.js → field_script-3X6ousg7.js} +1 -1
  42. package/admin/assets/helpers-BTGaTdnT.js +1 -0
  43. package/admin/assets/{hostInit-Bs-bStPF.js → hostInit-2h2Cbsaw.js} +1 -1
  44. package/admin/assets/iconLibraryData-B5fiyl1C.js +1 -0
  45. package/admin/assets/index-BHhhebRG.css +1 -0
  46. package/admin/assets/index-CbQlIKB_.js +156 -0
  47. package/admin/assets/{inlineChatWidget-NIvdRGmU.js → inlineChatWidget-BwQVCPkx.js} +1 -1
  48. package/admin/assets/{inlineDiffController-Qh402KhK.js → inlineDiffController-BsDDsDHn.js} +1 -1
  49. package/admin/assets/loadBlocks-RpqM7PwO.js +117 -0
  50. package/admin/assets/loadMonaco-BVOEahNw.js +1 -0
  51. package/admin/assets/{mf-entry-bootstrap-0-019228a5.js → mf-entry-bootstrap-0-0deef484.js} +3 -3
  52. package/admin/assets/{pendingShares-B3t6ewri.js → pendingShares-BaAadIDv.js} +1 -1
  53. package/admin/assets/reactour.esm-DX9ZgYlx.js +137 -0
  54. package/admin/assets/stateHoverProvider-BEadnSXp.js +11 -0
  55. package/admin/assets/tileFbd-CWAy7R7m.svg +85 -0
  56. package/admin/custom/assets/Components-FkGDIlId.js +1 -0
  57. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-Cs88NUCd.js +1 -0
  58. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-P-8ffWXw.js +1 -0
  59. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-ZVuRAEo5.js +1 -0
  60. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DVb0ZZ1Q.js +1217 -0
  61. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-Dna3WF04.js +1 -0
  62. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare___mf_0_mui_mf_1_x_mf_2_date_mf_2_pickers__loadShare__.js-DcjdCGAx.js +1 -0
  63. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__date_mf_2_fns__loadShare__.js-CnhNjamd.js +1 -0
  64. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare__leaflet__loadShare__.js-im3edKNs.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__leaflet__loadShare__.js-Dz7BFJqH.js} +1 -1
  65. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-B0olko2J.js +1 -0
  66. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-CzN4reh_.js +122 -0
  67. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__leaflet__prebuild__-xPcBaiTQ.js +1 -0
  68. package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-Byvr2uOb.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-CXpyx8Vy.js} +1 -1
  69. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__37453319418803__prebuild__react_mf_2_dom_mf_1_client__prebuild__-DuFBE5fh.js +9 -0
  70. package/admin/custom/assets/{hostInit-IJMNq3h7.js → hostInit-6oh4UY2k.js} +1 -1
  71. package/admin/custom/assets/iconLibraryData-B5fiyl1C.js +1 -0
  72. package/admin/custom/assets/index-BrlyEy6J.js +1 -0
  73. package/admin/custom/assets/lib-BmDlTzq2.js +3 -0
  74. package/admin/custom/assets/{mf-entry-bootstrap-0-f149bc46.js → mf-entry-bootstrap-0-ad1cd7d0.js} +3 -3
  75. package/admin/custom/assets/pendingShares-kV2kwejX.js +1 -0
  76. package/admin/custom/assets/rolldown-runtime-Dqfqb5bO.js +1 -0
  77. package/admin/custom/customComponents.js +3 -2
  78. package/admin/custom/i18n/en.json +39 -39
  79. package/admin/custom/i18n/es.json +1 -1
  80. package/admin/custom/i18n/fr.json +2 -2
  81. package/admin/custom/i18n/it.json +1 -1
  82. package/admin/custom/i18n/nl.json +2 -2
  83. package/admin/custom/i18n/pt.json +2 -2
  84. package/admin/custom/i18n/ru.json +2 -2
  85. package/admin/custom/i18n/uk.json +1 -1
  86. package/admin/custom/i18n/zh-cn.json +1 -1
  87. package/admin/i18n/de.json +1 -1
  88. package/admin/i18n/en.json +115 -115
  89. package/admin/i18n/fr.json +115 -115
  90. package/admin/i18n/it.json +115 -115
  91. package/admin/i18n/nl.json +115 -115
  92. package/admin/i18n/pl.json +1 -1
  93. package/admin/i18n/pt.json +115 -115
  94. package/admin/i18n/ru.json +115 -115
  95. package/admin/i18n/uk.json +115 -115
  96. package/admin/i18n/zh-cn.json +115 -115
  97. package/admin/mf-manifest.json +1 -1
  98. package/admin/mf-stats.json +1 -1
  99. package/admin/remoteEntry.js +2 -2
  100. package/admin/tab.html +3 -7
  101. package/build/lib/fb/analyze.js +288 -0
  102. package/build/lib/fb/analyze.js.map +1 -0
  103. package/build/lib/fb/blocks.js +605 -0
  104. package/build/lib/fb/blocks.js.map +1 -0
  105. package/build/lib/fb/generate.js +326 -0
  106. package/build/lib/fb/generate.js.map +1 -0
  107. package/build/lib/fb/graph.js +240 -0
  108. package/build/lib/fb/graph.js.map +1 -0
  109. package/build/lib/fb/index.js +57 -0
  110. package/build/lib/fb/index.js.map +1 -0
  111. package/build/lib/fb/js.js +33 -0
  112. package/build/lib/fb/js.js.map +1 -0
  113. package/build/lib/fb/layout.js +205 -0
  114. package/build/lib/fb/layout.js.map +1 -0
  115. package/build/lib/fb/library.js +657 -0
  116. package/build/lib/fb/library.js.map +1 -0
  117. package/build/lib/fb/runtime.js +793 -0
  118. package/build/lib/fb/runtime.js.map +1 -0
  119. package/build/lib/fb/time.js +76 -0
  120. package/build/lib/fb/time.js.map +1 -0
  121. package/build/lib/fb/types.js +19 -0
  122. package/build/lib/fb/types.js.map +1 -0
  123. package/build/lib/fb/user.js +78 -0
  124. package/build/lib/fb/user.js.map +1 -0
  125. package/build/lib/javascript.d.ts +17 -17
  126. package/build/lib/mirror.js +4 -0
  127. package/build/lib/mirror.js.map +1 -1
  128. package/build/lib/sandbox.js +44 -0
  129. package/build/lib/sandbox.js.map +1 -1
  130. package/build/main.js +66 -1
  131. package/build/main.js.map +1 -1
  132. package/build/types.d.ts +9 -1
  133. package/docs/de/README.md +1 -1
  134. package/docs/de/fbd.md +274 -0
  135. package/docs/de/javascript.md +2167 -0
  136. package/docs/en/fbd.md +260 -0
  137. package/docs/en/javascript.md +28 -30
  138. package/io-package.json +52 -28
  139. package/package.json +8 -8
  140. package/admin/assets/AiChatPanel-AZko1BsN.js +0 -27
  141. package/admin/assets/AiDiffView-Cri2QFh1.js +0 -1
  142. package/admin/assets/Debugger-CVDh3kgz.js +0 -15
  143. package/admin/assets/Error-Ch2nx5uC.js +0 -1
  144. package/admin/assets/Import-XKVP-nRT.js +0 -1
  145. package/admin/assets/RulesEditor-DsO4cKIk.js +0 -1
  146. package/admin/assets/ScriptEditorVanillaMonaco-BDAw2Bw6.js +0 -3
  147. package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BMAFQFoH.js +0 -1
  148. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__113183188387379__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D-gi6Mty.js +0 -1217
  149. package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__113183188387379__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-CDctpiPx.js +0 -9
  150. package/admin/assets/aiPromptBuilder-aJfHa-eU.js +0 -1
  151. package/admin/assets/blocks_action-DS28sNfo.js +0 -1
  152. package/admin/assets/blocks_logic-Dpp2fwlu.js +0 -1
  153. package/admin/assets/blocks_number-N4IfHvYD.js +0 -1
  154. package/admin/assets/blocks_object-uK7FHVhS.js +0 -1
  155. package/admin/assets/blocks_procedures-C_KD0Bm6.js +0 -3
  156. package/admin/assets/blocks_switch-C8Rls5pK.js +0 -2
  157. package/admin/assets/blocks_system-CEQnj5fY.js +0 -1
  158. package/admin/assets/blocks_text-BDEWxu0P.js +0 -1
  159. package/admin/assets/blocks_time-aHQQK1Uz.js +0 -1
  160. package/admin/assets/blocks_timeout-C2L93TLJ.js +0 -1
  161. package/admin/assets/helpers-DiwtLpXM.js +0 -1
  162. package/admin/assets/index-B0FfAYMN.js +0 -871
  163. package/admin/assets/index-CXaeqPRy.css +0 -1
  164. package/admin/assets/stateHoverProvider-BkW15VMN.js +0 -9
  165. package/admin/assets/virtualExposes-DgGB-18P.js +0 -1
  166. package/admin/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__iobroker_javascript__remoteEntry_js-CiidVc0O.js +0 -1
  167. package/admin/assets/virtual_mf-exposes___mfe_internal__iobroker_javascript__remoteEntry_js-ChiJXsfH.js +0 -1
  168. package/admin/custom/assets/Components-SGnA-3W_.js +0 -1
  169. package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-Bx3X6TLB.js +0 -1
  170. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-Cc7MmJgr.js +0 -1
  171. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CdvEvX5z.js +0 -1
  172. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-D5NaoeJi.js +0 -1217
  173. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-Cbgw_a3f.js +0 -1
  174. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare___mf_0_mui_mf_1_x_mf_2_date_mf_2_pickers__loadShare__.js-CMr75K5w.js +0 -1
  175. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare__date_mf_2_fns__loadShare__.js-DKIvPDPX.js +0 -1
  176. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-D50aYKgD.js +0 -1
  177. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-CEzQFX7o.js +0 -122
  178. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild__leaflet__prebuild__-BUDmnAcx.js +0 -1
  179. package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__136440932828998__prebuild__react_mf_2_dom_mf_1_client__prebuild__-D_1oh1WH.js +0 -9
  180. package/admin/custom/assets/index-7r4VklMp.js +0 -1
  181. package/admin/custom/assets/lib-DDU2Oe48.js +0 -3
  182. package/admin/custom/assets/pendingShares-DarGQhyO.js +0 -1
  183. package/admin/custom/assets/rolldown-runtime-BcKkbAw3.js +0 -1
  184. package/admin/custom/assets/virtualExposes-C0IqMANQ.js +0 -1
  185. package/admin/custom/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-CqKvh5Xu.js +0 -1
  186. package/admin/custom/assets/virtual_mf-exposes___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-DrBN_S5o.js +0 -2
@@ -0,0 +1 @@
1
+ import{Jn as e,or as t}from"./_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__180366418666083__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-NI-3Uv4e.js";var n=e(t(`path`,{d:`M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z`}),`ChevronRight`),r=e(t(`path`,{d:`M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z`}),`ExpandMore`);export{n,r as t};
@@ -0,0 +1 @@
1
+ .react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.fb-editor.fb-theme-dark{--fb-bg:#0f131b;--fb-panel:#161b25;--fb-canvas:#121720;--fb-grid:#1c2331;--fb-card:#1d2330;--fb-card-hover:#252c3b;--fb-block-bg:#1a202b;--fb-border:#283042;--fb-input:#11161f;--fb-text:#e4e8ef;--fb-text-dim:#8b94a7;--fb-accent:#3b82f6;--fb-mask:#080b118c;--fb-shadow:0 4px 14px #00000059;--fb-comment-bg:#3a3521;--fb-comment-text:#f3ecc4;--fb-string:#c084fc}.fb-editor.fb-theme-light{--fb-bg:#eef1f6;--fb-panel:#fff;--fb-canvas:#f7f9fc;--fb-grid:#e6eaf1;--fb-card:#f3f5f9;--fb-card-hover:#e8ecf3;--fb-block-bg:#fff;--fb-border:#d8dee8;--fb-input:#f5f7fa;--fb-text:#1e2633;--fb-text-dim:#667085;--fb-accent:#2563eb;--fb-mask:#e6eaf199;--fb-shadow:0 3px 10px #0f172a1f;--fb-comment-bg:#fff8c4;--fb-comment-text:#5d4037;--fb-string:#9333ea}.fb-editor{box-sizing:border-box;background:var(--fb-bg);width:100%;height:100%;color:var(--fb-text);gap:8px;padding:8px;display:flex;overflow:hidden}.fb-editor .fb-palette,.fb-editor .fb-properties,.fb-editor .fb-main{border:1px solid var(--fb-border);background:var(--fb-panel);box-sizing:border-box;border-radius:10px}.fb-editor .fb-main{background:var(--fb-canvas);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.fb-editor .fb-canvas{flex:1;min-height:0;position:relative}.fb-editor .react-flow{--xy-background-color:var(--fb-canvas);--xy-controls-button-background-color:var(--fb-panel);--xy-controls-button-background-color-hover:var(--fb-card-hover);--xy-controls-button-color:var(--fb-text);--xy-controls-button-color-hover:var(--fb-text);--xy-controls-button-border-color:var(--fb-border);--xy-minimap-background-color:var(--fb-panel);--xy-edge-label-color:var(--fb-text);background:var(--fb-canvas)}.fb-editor .react-flow__controls{border:1px solid var(--fb-border);box-shadow:none;border-radius:8px;overflow:hidden}.fb-editor .react-flow__minimap{border:1px solid var(--fb-border);border-radius:8px;overflow:hidden}.fb-editor .fb-toolbar{z-index:12;border-bottom:1px solid var(--fb-border);background:var(--fb-panel);justify-content:space-between;align-items:center;gap:8px;height:42px;padding:0 8px;display:flex;position:relative}.fb-editor .fb-toolbar-path{align-items:center;gap:2px;min-width:0;display:flex;overflow:hidden}.fb-editor .fb-toolbar-step{height:30px;color:var(--fb-text-dim);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.fb-editor .fb-toolbar-step svg{font-size:17px}.fb-editor .fb-toolbar-step:hover{color:var(--fb-text)}.fb-editor .fb-toolbar-step-active{border-color:var(--fb-border);background:var(--fb-card);color:var(--fb-text);box-shadow:inset 0 -2px 0 var(--fb-accent)}.fb-editor .fb-toolbar-separator{color:var(--fb-text-dim);font-size:18px}.fb-editor .fb-toolbar-tools{align-items:center;gap:4px;display:flex}.fb-editor .fb-toolbar-gap{width:8px}.fb-editor .fb-tool{width:30px;height:30px;color:var(--fb-text-dim);cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;padding:0;display:inline-flex}.fb-editor .fb-tool svg{font-size:19px}.fb-editor .fb-tool:hover:not(:disabled){background:var(--fb-card-hover);color:var(--fb-text)}.fb-editor .fb-tool:disabled{opacity:.35;cursor:default}.fb-editor .fb-tool-active,.fb-editor .fb-tool-active:hover:not(:disabled){background:var(--fb-accent);color:#fff}.fb-editor .fb-zoom{border:1px solid var(--fb-border);border-radius:8px;align-items:center;display:inline-flex}.fb-editor .fb-zoom-value{min-width:48px;color:var(--fb-text);font:inherit;cursor:pointer;background:0 0;border:none;font-size:12.5px}.fb-editor .fb-tabs{gap:6px;margin-bottom:10px;display:flex}.fb-editor .fb-tab{border:1px solid var(--fb-border);background:var(--fb-card);height:32px;color:var(--fb-text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;flex:1;padding:0 6px;font-size:12.5px}.fb-editor .fb-tab:hover{background:var(--fb-card-hover)}.fb-editor .fb-tab-active,.fb-editor .fb-tab-active:hover{border-color:var(--fb-accent);background:var(--fb-accent);color:#fff}.fb-editor .fb-palette{flex-direction:column;flex-shrink:0;width:232px;padding:10px;display:flex}.fb-editor .fb-palette-search{border:1px solid var(--fb-border);background:var(--fb-input);height:36px;color:var(--fb-text-dim);border-radius:8px;align-items:center;gap:6px;margin-bottom:10px;padding:0 8px;display:flex}.fb-editor .fb-palette-search svg{font-size:19px}.fb-editor .fb-palette-search input{min-width:0;color:var(--fb-text);font:inherit;background:0 0;border:none;outline:none;flex:1;font-size:13px}.fb-editor .fb-palette-fold{color:var(--fb-text-dim);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:2px;display:inline-flex}.fb-editor .fb-palette-fold:hover{color:var(--fb-text)}.fb-editor .fb-palette-list{flex:1;margin-right:-6px;padding-right:6px;overflow-y:auto}.fb-editor .fb-palette-category{cursor:pointer;user-select:none;align-items:center;gap:4px;padding:8px 0 4px;font-size:13.5px;font-weight:600;display:flex}.fb-editor .fb-palette-category svg{color:var(--fb-text-dim);font-size:19px}.fb-editor .fb-palette-count{color:var(--fb-text-dim);margin-left:auto;font-size:11px;font-weight:400}.fb-editor .fb-palette-item{border-left:3px solid var(--fb-cat);background:var(--fb-card);cursor:grab;user-select:none;border-radius:7px;align-items:center;gap:10px;height:34px;margin:4px 0;padding:0 6px 0 10px;font-family:monospace;font-size:12.5px;display:flex}.fb-editor .fb-palette-item:hover{background:var(--fb-card-hover)}.fb-editor .fb-palette-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.fb-editor .fb-palette-star{color:var(--fb-text-dim);cursor:pointer;opacity:0;background:0 0;border:none;padding:2px;display:inline-flex}.fb-editor .fb-palette-star svg{font-size:16px}.fb-editor .fb-palette-item:hover .fb-palette-star,.fb-editor .fb-palette-star.fb-on{opacity:1}.fb-editor .fb-palette-star.fb-on{color:#f59e0b}.fb-editor .fb-palette-variable{cursor:pointer;border-radius:7px;align-items:center;gap:10px;margin:2px 0;padding:6px 8px;display:flex}.fb-editor .fb-palette-variable:hover{background:var(--fb-card-hover)}.fb-editor .fb-palette-variable-text{min-width:0;font-size:13px}.fb-editor .fb-palette-variable-oid{text-overflow:ellipsis;white-space:nowrap;color:var(--fb-text-dim);font-family:monospace;font-size:11px;overflow:hidden}.fb-editor .fb-palette-hint{color:var(--fb-text-dim);margin:6px 2px;font-size:12px;line-height:1.35}.fb-editor .fb-icon{color:var(--fb-text-dim);flex-shrink:0;font-size:18px}.fb-editor .fb-icon-glyph{box-sizing:border-box;border:1.5px solid;border-radius:4px;justify-content:center;align-items:center;min-width:20px;height:17px;padding:0 2px;font-family:monospace;font-size:10.5px;font-weight:700;line-height:1;display:inline-flex}.fb-editor .fb-block{box-sizing:border-box;border:1.5px solid var(--fb-cat);background:var(--fb-block-bg);min-width:172px;max-width:320px;color:var(--fb-text);box-shadow:var(--fb-shadow);border-radius:9px;font-size:12px;position:relative}.fb-editor .fb-block.fb-selected{box-shadow:0 0 0 2px var(--fb-accent), var(--fb-shadow)}.fb-editor .fb-block.fb-error{border-color:#ef4444;box-shadow:0 0 0 2px #ef444473}.fb-editor .fb-block.fb-next{box-shadow:0 0 0 3px #fde047}.fb-editor .fb-block-bar{box-sizing:border-box;border-bottom:1px solid color-mix(in srgb, var(--fb-cat) 45%, transparent);background:color-mix(in srgb, var(--fb-cat) 30%, var(--fb-block-bg));border-radius:7px 7px 0 0;align-items:center;gap:6px;padding:0 4px 0 10px;display:flex}.fb-editor .fb-block-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}.fb-editor .fb-block-note{color:var(--fb-text-dim);font-size:14px}.fb-editor .fb-block-action{width:22px;height:22px;color:var(--fb-text-dim);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;display:inline-flex}.fb-editor .fb-block-action svg{font-size:16px}.fb-editor .fb-block-action:hover{background:color-mix(in srgb, var(--fb-text) 12%, transparent);color:var(--fb-text)}.fb-editor .fb-block-title{align-items:center;gap:7px;padding:0 10px;display:flex}.fb-editor .fb-block-type{color:var(--fb-cat);letter-spacing:.02em;white-space:nowrap;font-size:14px;font-weight:700}.fb-editor .fb-block-order{color:var(--fb-text-dim);margin-left:auto;font-size:10px}.fb-editor .fb-block-detail{box-sizing:border-box;align-items:center;padding:0 10px;display:flex}.fb-editor .fb-log-level{text-transform:uppercase;color:#fff;background:#3b82f6;border-radius:4px;flex-shrink:0;margin-right:6px;padding:1px 5px;font-family:monospace;font-size:10px;font-weight:700}.fb-editor .fb-log-warn{color:#1f1300;background:#f59e0b}.fb-editor .fb-log-error{background:#ef4444}.fb-editor .fb-log-debug{background:#64748b}.fb-editor .fb-badge-instance{text-overflow:ellipsis;white-space:nowrap;text-transform:none;max-width:45%;overflow:hidden}.fb-editor .fb-code-row{margin:4px 0 8px}.fb-code{white-space:pre!important;font-family:monospace!important;font-size:12px!important}.fb-editor .fb-inline-code{color:var(--fb-text-dim)}.fb-editor .fb-block-version{color:var(--fb-text-dim);font-size:11px}.fb-editor .fb-pin-row{justify-content:space-between;align-items:center;gap:14px;padding:0 12px;font-family:monospace;font-size:12px;display:flex}.fb-editor .fb-pin-in{white-space:nowrap;align-items:center;gap:6px;display:flex}.fb-editor .fb-pin-out{white-space:nowrap}.fb-editor .fb-inline{box-sizing:border-box;border:1px solid var(--fb-border);background:var(--fb-input);width:66px;height:20px;color:var(--fb-text);border-radius:5px;outline:none;align-items:center;padding:0 6px;font-family:monospace;font-size:11.5px;display:inline-flex}.fb-editor input.fb-inline:focus{border-color:var(--fb-accent)}.fb-editor .fb-inline-wide{text-overflow:ellipsis;white-space:nowrap;width:100%;height:24px;overflow:hidden}.fb-editor .fb-inline-string{color:var(--fb-string)}.fb-editor .fb-inline-empty{color:var(--fb-text-dim);font-style:italic}.fb-editor .fb-inline.fb-invalid{border-color:#ef4444}.fb-editor .fb-inline-bool{width:auto;min-width:46px;color:var(--fb-text-dim);cursor:pointer;justify-content:center;font-size:10.5px;font-weight:700}.fb-editor .fb-inline-bool:disabled{cursor:default}.fb-editor .fb-inline-bool.fb-on{color:#22c55e;border-color:#22c55e8c}.fb-editor .fb-handle{border:2px solid var(--fb-block-bg);background:var(--fb-pin);border-radius:50%;width:11px;height:11px}.fb-editor .fb-inverted{border:1.5px solid var(--fb-text-dim);background:var(--fb-block-bg);pointer-events:none;z-index:1;border-radius:50%;width:7px;height:7px;margin-top:-5px;position:absolute;left:6px}.fb-editor .fb-breakpoint{box-sizing:border-box;cursor:pointer;border:1.5px solid #0000;border-radius:50%;flex-shrink:0;width:10px;height:10px}.fb-editor .fb-block:hover .fb-breakpoint{border-color:#ef4444}.fb-editor .fb-breakpoint.fb-breakpoint-on{background:#ef4444;border-color:#ef4444}.fb-editor .fb-live{white-space:nowrap;pointer-events:none;color:var(--fb-text);background:color-mix(in srgb, var(--fb-text-dim) 30%, transparent);border-radius:4px;margin-left:9px;padding:0 4px;font-family:monospace;font-size:10px;line-height:15px;position:absolute;left:100%}.fb-editor .fb-live[data-bool=true]{color:#052e16;background:#22c55e}.fb-editor .fb-live[data-bool=false]{color:#fff;background:#64748b}.fb-editor .fb-live[data-forced=true]{outline-offset:1px;outline:2px solid #f59e0b}.fb-editor .fb-live-label{fill:var(--fb-text);paint-order:stroke;stroke:var(--fb-canvas);stroke-width:3px;pointer-events:none;font-family:monospace;font-size:10px}.fb-editor .fb-online{align-items:center;gap:6px;display:flex;position:relative}.fb-editor .fb-online-status{text-align:right;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;width:220px;overflow:hidden}.fb-editor .fb-online-steer{gap:2px;display:flex}.fb-editor .fb-tool-go{color:#22c55e}.fb-editor .fb-online-toggle{border:1px solid var(--fb-border);background:var(--fb-card);height:30px;color:var(--fb-text-dim);font:inherit;cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.fb-editor .fb-online-toggle svg{font-size:18px}.fb-editor .fb-online-toggle.fb-online-on{color:#052e16;background:#22c55e;border-color:#16a34a}.fb-editor .fb-online-notices{z-index:20;border:1px solid var(--fb-border);background:var(--fb-panel);min-width:200px;max-width:320px;box-shadow:var(--fb-shadow);text-align:right;border-radius:8px;flex-direction:column;align-items:flex-end;gap:2px;padding:6px 10px;display:flex;position:absolute;top:calc(100% + 12px);right:0}.fb-editor .fb-online-link{text-transform:none;min-width:0;padding:0 4px;font-size:11px}.fb-editor .fb-mark polygon{pointer-events:all}.fb-editor .fb-mark-text{fill:var(--fb-text);pointer-events:none;font-family:monospace;font-size:11px}.fb-editor .fb-comment{box-sizing:border-box;white-space:pre-wrap;background:var(--fb-comment-bg);width:100%;height:100%;color:var(--fb-comment-text);border-radius:8px;padding:8px 10px;font-size:12px;overflow:hidden}.fb-editor .fb-comment.fb-selected{box-shadow:0 0 0 2px var(--fb-accent)}.fb-editor .fb-issues,.fb-editor .fb-refused,.fb-editor .fb-search{border:1px solid var(--fb-border);background:var(--fb-panel);box-shadow:var(--fb-shadow);border-radius:8px}.fb-editor .fb-issues{max-width:480px;max-height:160px;padding:6px 10px;overflow-y:auto}.fb-editor .fb-issue{cursor:pointer}.fb-editor .fb-issue:hover{text-decoration:underline}.fb-editor .fb-refused{padding:4px 10px}.fb-editor .fb-hint{opacity:.7}.fb-editor .fb-search{align-items:center;gap:4px;padding:2px 6px;display:flex}.fb-editor .fb-search-count{text-align:center;min-width:40px}.fb-editor .fb-instance{z-index:8;background:var(--fb-canvas);position:absolute;inset:0}.fb-editor .fb-properties{flex-direction:column;flex-shrink:0;width:310px;padding:10px;display:flex}.fb-editor .fb-properties-content{flex:1;margin-right:-6px;padding-right:6px;overflow-y:auto}.fb-editor .fb-section{border-bottom:1px solid var(--fb-border);padding-bottom:8px}.fb-editor .fb-section+.fb-section{margin-top:2px}.fb-editor .fb-section-head{cursor:pointer;user-select:none;align-items:center;gap:6px;padding:8px 0 4px;font-size:14px;font-weight:600;display:flex}.fb-editor .fb-section-head svg{color:var(--fb-text-dim);font-size:19px}.fb-editor .fb-row{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:8px;margin:7px 0;display:grid}.fb-editor .fb-row-label{text-overflow:ellipsis;color:var(--fb-text-dim);font-size:12.5px;overflow:hidden}.fb-editor .fb-row-label code{color:var(--fb-text)}.fb-editor .fb-row-field{min-width:0}.fb-editor .fb-row-hint{color:var(--fb-text-dim);margin-top:4px;font-size:11.5px;line-height:1.35}.fb-editor .fb-row-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.fb-editor .fb-input-field{align-items:center;gap:6px;display:flex}.fb-editor .fb-invert{color:var(--fb-text-dim);white-space:nowrap;cursor:pointer;align-items:center;font-size:11px;display:inline-flex}.fb-editor .fb-dim{color:var(--fb-text-dim)}.fb-editor .fb-mono{font-family:monospace}.fb-editor .fb-properties .MuiOutlinedInput-root{background:var(--fb-input);border-radius:7px;font-size:13px}.fb-editor .fb-properties .MuiOutlinedInput-input,.fb-editor .fb-properties .MuiInputBase-multiline{padding:7px 10px}.fb-editor .fb-properties .MuiInputBase-inputMultiline{padding:0}.fb-editor .fb-properties .MuiOutlinedInput-notchedOutline{border-color:var(--fb-border)}.fb-editor .fb-force{margin:6px 0 8px}.fb-editor .fb-force-row{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.fb-editor .fb-force-row .MuiButton-root{min-width:0;padding:1px 8px}.fb-editor .fb-preview{border:1px solid var(--fb-border);background:var(--fb-input);border-radius:8px;width:100%;margin-top:4px;display:block}.fb-editor .fb-preview-label{fill:var(--fb-text-dim);font-family:monospace;font-size:10px}.fb-editor .fb-preview-level{stroke:var(--fb-text-dim);stroke-width:1px;stroke-dasharray:3 3;opacity:.6}.fb-editor .fb-preview-mark{stroke:var(--fb-text-dim);stroke-width:1px;stroke-dasharray:2 3;opacity:.7}