From 1cfe6cdd1c687e57db7e965d8a809dfd6eb25c21 Mon Sep 17 00:00:00 2001 From: Nick Strayer Date: Wed, 4 Oct 2023 13:36:24 -0400 Subject: [PATCH] Remove multifile support (#210) * Remove all the multi-file logic from editor on the R and js side. Vastly simplifies logic * Update playwright test to not test multifile mode support * Remove build-target filtering for js tests workflow * Update website docs to reflect multi-file changes and add to change-log --------- Co-authored-by: nstrayer --- .github/workflows/Javascript-Tests.yaml | 12 -- NEWS.md | 6 + R/get_app_file_type.R | 44 +++--- R/launch_editor.R | 73 +++------ inst/communication-types/src/AppInfo.ts | 33 +--- inst/communication-types/src/AppTemplates.ts | 14 +- .../src/MessageToBackend.ts | 3 +- .../src/MessageToClient.ts | 4 +- .../{index-50a861e8.js => index-a216a38f.js} | 22 +-- inst/editor/build/index.html | 2 +- inst/editor/playwright/backend-server.spec.ts | 12 -- ...er-visual-regression-1-chromium-darwin.png | Bin 74200 -> 67516 bytes ...ser-visual-regression-1-chromium-linux.png | Bin 71242 -> 65685 bytes ...ser-visual-regression-1-firefox-darwin.png | Bin 94927 -> 88269 bytes ...oser-visual-regression-1-firefox-linux.png | Bin 91666 -> 85801 bytes ...oser-visual-regression-1-webkit-darwin.png | Bin 91155 -> 84955 bytes ...ooser-visual-regression-1-webkit-linux.png | Bin 57252 -> 53111 bytes .../src/assets/app-templates/app_templates.ts | 65 +------- .../backendCommunication/parse_python_app.tsx | 2 - .../src/backendCommunication/parse_r_app.tsx | 33 +--- .../src/backendCommunication/staticBackend.ts | 4 +- .../AppPreview/ShinyLivePreviewExperiment.tsx | 5 +- .../src/components/AppPreview/ShowAppText.tsx | 67 +++----- .../TemplatePreviews/OutputTypeForm.tsx | 40 ----- .../TemplatePreviews/TemplateChooserView.tsx | 14 +- .../TemplatePreviews.stories.tsx | 2 +- .../TemplatePreviews/filterTemplates.ts | 16 +- .../generate_full_app_script.ts | 31 ++-- inst/vscode-extension/scripts/benchmark.ts | 147 ------------------ .../vscode-extension/shinyuieditor-0.5.0.vsix | Bin 7210493 -> 7210470 bytes inst/vscode-extension/src/App_Parser.ts | 3 +- inst/vscode-extension/src/editorLogic.ts | 5 +- inst/website/src/assets/markdown/landing.mdx | 2 +- inst/website/src/pages/FAQs.mdx | 4 + inst/website/src/pages/getting-started.mdx | 2 +- ...app_file_type.Rd => check_for_app_file.Rd} | 10 +- man/launch_editor.Rd | 2 +- 37 files changed, 125 insertions(+), 554 deletions(-) rename inst/editor/build/assets/{index-50a861e8.js => index-a216a38f.js} (98%) delete mode 100644 inst/editor/src/components/TemplatePreviews/OutputTypeForm.tsx delete mode 100644 inst/vscode-extension/scripts/benchmark.ts rename man/{get_app_file_type.Rd => check_for_app_file.Rd} (59%) diff --git a/.github/workflows/Javascript-Tests.yaml b/.github/workflows/Javascript-Tests.yaml index 4208aa272..43c05a698 100644 --- a/.github/workflows/Javascript-Tests.yaml +++ b/.github/workflows/Javascript-Tests.yaml @@ -3,20 +3,8 @@ name: Javascript Tests on: push: branches: [main, dev] - # Don't trigger this action when only build targets change - paths-ignore: - - "inst/editor/build/**" - - "inst/treesitter-parsers/dist/**" - - "inst/vscode-extension/build/**" - - "inst/vscode-extension/*.vsix" pull_request: branches: [main, dev] - # Don't trigger this action when only build targets change - paths-ignore: - - "inst/editor/build/**" - - "inst/treesitter-parsers/dist/**" - - "inst/vscode-extension/build/**" - - "inst/vscode-extension/*.vsix" concurrency: group: ci-tests-${{ github.ref }}-1 diff --git a/NEWS.md b/NEWS.md index 106b8e7d2..cd06c8fa9 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,9 @@ +# Development version + +### Major changes + +- Removed support for multi-file apps. This was a major source of bugs and complexity and was not used by many people. + # shinyuieditor 0.5.0 ### Major new features and improvements diff --git a/R/get_app_file_type.R b/R/get_app_file_type.R index 2a3a28ac2..8f2f10545 100644 --- a/R/get_app_file_type.R +++ b/R/get_app_file_type.R @@ -1,61 +1,51 @@ #' Get the file type a shiny app directory +#' +#' Also checks for multifile apps and emits a depreciation error #' #' @param app_loc Path to a shiny app #' @param error_on_missing Should the lack of #' app ui file trigger an error? If not returns a type of "missing" and no path #' -#' @return either "SINGLE-FILE" (`app.R``), "MULTI-FILE" (`ui.R` and -#' `server.R`), or "MISSING" (empty directory) +#' @return either `TRUE` if it finds an (`app.R`) or `FALSE` if no app detected #' #' @keywords internal #' -get_app_file_type <- function(app_loc, error_on_missing = FALSE) { +check_for_app_file <- function(app_loc, error_on_missing = FALSE) { if ( fs::file_exists(fs::path(app_loc, "app.r")) || fs::file_exists(fs::path(app_loc, "app.R")) ) { - return("SINGLE-FILE") + return(TRUE) } if ( fs::file_exists(fs::path(app_loc, "ui.r")) || fs::file_exists(fs::path(app_loc, "ui.R")) ) { - return("MULTI-FILE") + multifile_depreciation_error() } if (error_on_missing) { stop( - "Can't find an app.R or ui.R file in the provided app_loc. ", + "Can't find an app.R file in the provided app_loc. ", "Make sure your working directory is properly set" ) } - "MISSING" + return(FALSE) + + } -app_type_to_files <- list( - "SINGLE-FILE" = "app.R", - "MULTI-FILE" = c("ui.R", "server.R") -) get_app_scripts <- function(app_loc) { - app_type <- get_app_file_type(app_loc) - - if (identical(app_type, "SINGLE-FILE")) { + list( language = "R", - app_type = "SINGLE-FILE", app = get_script(fs::path(app_loc, "app.R")) ) - } else { - list( - language = "R", - app_type = "MULTI-FILE", - ui = get_script(fs::path(app_loc, "ui.R")), - server = get_script(fs::path(app_loc, "server.R")) - ) - } + + } @@ -63,3 +53,11 @@ get_script <- function(script_loc) { file_lines <- readLines(script_loc) paste(file_lines, collapse = "\n") } + + +multifile_depreciation_error <- function() { + stop( + "Support for multifile apps in the UI editor has been depreciated. ", + "Please use a single file app. Sorry for the inconvenience!" + ) +} \ No newline at end of file diff --git a/R/launch_editor.R b/R/launch_editor.R index 8759d6a46..e7e26121b 100644 --- a/R/launch_editor.R +++ b/R/launch_editor.R @@ -7,7 +7,7 @@ #' #' @inheritParams httpuv::startServer #' @param app_loc Path to directory containing Shiny app to be visually edited -#' (either containing an `app.R` or both a `ui.R` and `server.R`). If the +#' (only single-file apps using an `app.R` are supported.) If the #' provided location doesn't exist, or doesn't contain an app, the app will #' start in an interface to select from a series of starter templates which #' will then be written to the location specified. @@ -76,9 +76,9 @@ launch_editor <- function(app_loc, # the parent location app_loc <- validate_app_loc(app_loc) - # Type of app we're in. Can be "SINGLE-FILE", "MULTI-FILE", or "MISSING" - app_type <- get_app_file_type(app_loc) - + # This checks to make sure we're working with a single-file app. It will give + # a depreciation error if it detects multifile apps + has_app <- check_for_app_file(app_loc) # ---------------------------------------------------------------------------- # Initialize classes for controling app preview and polling for updates @@ -109,28 +109,6 @@ launch_editor <- function(app_loc, ) - # Turn off app preview and delete the watched files. This should only happen - # when the user has backed out of editing a template app and chosen a new file - # type - reset_app_type <- function() { - app_preview_obj$stop_app() - file_change_watcher$delete_files() - } - - # Sets app type variable and also makes sure the files being watched are set. - # I'm not a huge fan of this pattern but it's the best I could come up with - # for now and since we probably will eventually rewrite this in another - # language it feels acceptable for now - setup_new_app_type <- function(new_app_type = app_type) { - # If app type is an existing app then we need to make sure the files being - # watched are properly recorded - is_existing_app <- !identical(new_app_type, "MISSING") - if (is_existing_app) { - file_change_watcher$set_watched_files(app_type_to_files[[new_app_type]]) - } - app_type <<- new_app_type - } - # ---------------------------------------------------------------------------- # Main logic for responding to messages from the client. Messages have a path @@ -141,7 +119,13 @@ launch_editor <- function(app_loc, send_app_info_to_client <- function() { tryCatch( { - send_msg("APP-SCRIPT-TEXT", get_app_scripts(app_loc)) + send_msg( + "APP-SCRIPT-TEXT", + list( + language = "R", + app = get_script(fs::path(app_loc, "app.R")) + ) + ) }, error = function(error) { send_msg( @@ -156,7 +140,8 @@ launch_editor <- function(app_loc, } load_new_app <- function() { - if (identical(app_type, "MISSING")) { + + if (!has_app) { send_msg("TEMPLATE_CHOOSER", "USER-CHOICE") server_mode <<- "template-chooser" return() @@ -189,33 +174,19 @@ launch_editor <- function(app_loc, # Handles message from client with new app info handle_new_ui_from_client <- function(update_payload) { - update_type <- update_payload$app_type - - # If the file update doesn't match the existing app type, remove the old - # files and update the app type - changed_app_type <- !identical(update_type, app_type) - if (changed_app_type) { - reset_app_type() - setup_new_app_type(update_type) - } - updated_scripts <- switch(update_type, - "SINGLE-FILE" = { - list(app = update_payload$app) - }, - "MULTI-FILE" = { - list(ui = update_payload$ui, server = update_payload$server) - }, - { - stop("Don't know how to deal with that type...") - } - ) + updated_scripts <- list(app = update_payload$app) + + if (!has_app) { + file_change_watcher$set_watched_files("app.R") + has_app <<- TRUE + } file_change_watcher$update_files(updated_scripts) # If we're coming from the server mode or a new app type, then we need to # load the new app as well - if (changed_app_type || identical(server_mode, "template-chooser")) { + if (identical(server_mode, "template-chooser")) { # Setup files load_new_app() } @@ -254,7 +225,9 @@ launch_editor <- function(app_loc, app_preview_obj$stop_app() }, "READY-FOR-STATE" = { - setup_new_app_type() + if (has_app) { + file_change_watcher$set_watched_files("app.R") + } load_new_app() }, "UPDATED-APP" = { diff --git a/inst/communication-types/src/AppInfo.ts b/inst/communication-types/src/AppInfo.ts index e83c18362..71378721f 100644 --- a/inst/communication-types/src/AppInfo.ts +++ b/inst/communication-types/src/AppInfo.ts @@ -2,10 +2,6 @@ import type { ShinyUiNode } from "editor/src/ui-node-definitions/ShinyUiNode"; import type { InputOutputLocations } from "./MessageToBackend"; -type SingleFileAppType = "SINGLE-FILE"; -type MultiFileAppType = "MULTI-FILE"; -export type AppType = SingleFileAppType | MultiFileAppType; - /** * What mode is the editor currently in. This will influence what code is * generated and elements are visible in the elements palette @@ -20,17 +16,8 @@ export type AppInfo = { scripts: AppScriptInfo; language: LanguageMode; server_locations?: InputOutputLocations; -} & ( - | { - app_type: SingleFileAppType; - app: ScriptGenerationTemplate; - } - | { - app_type: MultiFileAppType; - ui: ScriptGenerationTemplate; - server: Pick; - } -); + app: ScriptGenerationTemplate; +}; /** * Contextual information neccesary to produce a full ui definition for an @@ -49,15 +36,7 @@ export type ScriptGenerationTemplate = { packages: string[]; }; -export type AppScriptInfo = - | { - app_type: SingleFileAppType; - app: string; - info?: AppInfo; - } - | { - app_type: MultiFileAppType; - ui: string; - server: string; - info?: AppInfo; - }; +export type AppScriptInfo = { + app: string; + info?: AppInfo; +}; diff --git a/inst/communication-types/src/AppTemplates.ts b/inst/communication-types/src/AppTemplates.ts index 57882f164..0bd93a1ca 100644 --- a/inst/communication-types/src/AppTemplates.ts +++ b/inst/communication-types/src/AppTemplates.ts @@ -1,22 +1,10 @@ import type { ShinyUiNode } from "editor/src/ui-node-definitions/ShinyUiNode"; -import type { AppType } from "./AppInfo"; import type { GeneratedUiDef } from "./MessageToBackend"; -export type SingleFileTemplateSelection = { - outputType: Extract; -} & Omit & +export type TemplateSelection = Omit & GeneratedUiDef; -export type MultiFileTemplateSelection = { - outputType: Extract; -} & Omit & - GeneratedUiDef; - -export type TemplateSelection = - | SingleFileTemplateSelection - | MultiFileTemplateSelection; - /** * Defines basic information needed to build an app template for the template viewer */ diff --git a/inst/communication-types/src/MessageToBackend.ts b/inst/communication-types/src/MessageToBackend.ts index 9f59af438..6b760ae11 100644 --- a/inst/communication-types/src/MessageToBackend.ts +++ b/inst/communication-types/src/MessageToBackend.ts @@ -1,7 +1,7 @@ import type { ShinyUiNode } from "editor/src/ui-node-definitions/ShinyUiNode"; import type { getNodePositionAndIndent } from "treesitter-parsers"; -import type { AppScriptInfo, AppType } from "./AppInfo"; +import type { AppScriptInfo } from "./AppInfo"; import { isRecord } from "./isRecord"; import type { MessageUnion } from "./MessageUnion"; @@ -108,7 +108,6 @@ export type InputOutputLocations = { export type ParsedAppInfo = { file_lines: string[]; loaded_libraries: string[]; - type: AppType; ui_bounds: { start: number; end: number }; ui_tree: ShinyUiNode; }; diff --git a/inst/communication-types/src/MessageToClient.ts b/inst/communication-types/src/MessageToClient.ts index 6de868d6b..46a777a55 100644 --- a/inst/communication-types/src/MessageToClient.ts +++ b/inst/communication-types/src/MessageToClient.ts @@ -1,4 +1,4 @@ -import type { AppInfo, AppScriptInfo, AppType, LanguageMode } from "./AppInfo"; +import type { AppInfo, AppScriptInfo, LanguageMode } from "./AppInfo"; import { isRecord } from "./isRecord"; import type { MessageUnion } from "./MessageUnion"; @@ -32,7 +32,7 @@ type NewType = { }; "APP-PREVIEW-CRASH": string; "APP-PREVIEW-LOGS": string[]; - TEMPLATE_CHOOSER: AppType | "USER-CHOICE"; + TEMPLATE_CHOOSER: string; }; /** diff --git a/inst/editor/build/assets/index-50a861e8.js b/inst/editor/build/assets/index-a216a38f.js similarity index 98% rename from inst/editor/build/assets/index-50a861e8.js rename to inst/editor/build/assets/index-a216a38f.js index faf58f4e0..6a75fbea2 100644 --- a/inst/editor/build/assets/index-50a861e8.js +++ b/inst/editor/build/assets/index-a216a38f.js @@ -1,4 +1,4 @@ -var yt=Object.defineProperty;var Ct=($,rA,tA)=>rA in $?yt($,rA,{enumerable:!0,configurable:!0,writable:!0,value:tA}):$[rA]=tA;var gt=($,rA,tA)=>(Ct($,typeof rA!="symbol"?rA+"":rA,tA),tA);function _mergeNamespaces($,rA){for(var tA=0;tAAA[eA]})}}}return Object.freeze(Object.defineProperty($,Symbol.toStringTag,{value:"Module"}))}(function(){const rA=document.createElement("link").relList;if(rA&&rA.supports&&rA.supports("modulepreload"))return;for(const eA of document.querySelectorAll('link[rel="modulepreload"]'))AA(eA);new MutationObserver(eA=>{for(const nA of eA)if(nA.type==="childList")for(const oA of nA.addedNodes)oA.tagName==="LINK"&&oA.rel==="modulepreload"&&AA(oA)}).observe(document,{childList:!0,subtree:!0});function tA(eA){const nA={};return eA.integrity&&(nA.integrity=eA.integrity),eA.referrerPolicy&&(nA.referrerPolicy=eA.referrerPolicy),eA.crossOrigin==="use-credentials"?nA.credentials="include":eA.crossOrigin==="anonymous"?nA.credentials="omit":nA.credentials="same-origin",nA}function AA(eA){if(eA.ep)return;eA.ep=!0;const nA=tA(eA);fetch(eA.href,nA)}})();const makeMessageDispatcher=makeMessageDispatcherGeneric;function makeMessageDispatcherGeneric(){const $={};return{subscribe:(rA,tA)=>($[rA]===void 0&&($[rA]=new Set),$[rA].add(tA),{unsubscribe:()=>{$[rA].delete(tA)}}),dispatch:(rA,tA)=>{var AA;(AA=$[rA])==null||AA.forEach(eA=>eA(tA))}}}async function getClientsideOnlyTree($){return new Promise((rA,tA)=>{fetch("/testing-tree").then(AA=>AA.json()).then(AA=>{"ui_tree"in AA&&"language"in AA?rA(AA):tA("No ui_tree or language in response")}).catch(AA=>{console.error("/testing-tree error",AA),rA($)})})}function setupStaticBackend({messageDispatch:$,showMessages:rA,defaultInfo:tA}){const AA=rA?console.log:(...nA)=>{};return{sendMsg:nA=>{switch(AA("Static sendMsg()",nA),nA.path){case"READY-FOR-STATE":{getClientsideOnlyTree(tA).then(({ui_tree:oA,language:iA})=>{oA==="TEMPLATE_CHOOSER"?$.dispatch("TEMPLATE_CHOOSER","USER-CHOICE"):$.dispatch("APP-INFO",{ui_tree:oA,scripts:{app_type:"SINGLE-FILE",app:""},language:iA,app_type:"SINGLE-FILE",app:{code:"",packages:["shiny"]}})});return}case"UPDATED-APP":{nA.payload.info&&$.dispatch("APP-INFO",nA.payload.info);return}case"APP-PREVIEW-REQUEST":return}},incomingMsgs:$,mode:"STATIC"}}function staticDispatchFromTree($,rA="R"){return setupStaticBackend({messageDispatch:makeMessageDispatcher(),showMessages:!0,defaultInfo:{language:rA,ui_tree:$??"TEMPLATE_CHOOSER"}})}function setupWebsocketBackend({onClose:$,messageDispatch:rA,pathToWebsocket:tA=window.location.host+window.location.pathname}){let AA=!1;return new Promise(eA=>{try{if(!document.location.host)throw new Error("Not on a served site!");const nA=new WebSocket(buildWebsocketPathFromDomain(tA)),oA={sendMsg:iA=>{sendWsMessage(nA,iA)},incomingMsgs:rA,mode:"HTTPUV"};nA.onerror=iA=>{eA("NO-WS-CONNECTION")},nA.onopen=iA=>{listenForWsMessages(nA,lA=>{const{path:aA,payload:sA}=lA;rA.dispatch(aA,sA)}),eA(oA),AA=!0},nA.onclose=iA=>{AA?($(),rA.dispatch("CONNECTION-LOST",{msg:"Websocket connection closed"})):eA("NO-WS-CONNECTION")}}catch{eA("NO-WS-CONNECTION")}})}function buildWebsocketPathFromDomain($){return(window.location.protocol==="https:"?"wss:":"ws:")+"//"+$}function sendWsMessage($,rA){const tA=new Blob([JSON.stringify(rA)],{type:"application/json"});$.send(tA)}function listenForWsMessages($,rA){$.addEventListener("message",tA=>{rA(parseWebsocketMessage(tA))})}function parseWebsocketMessage($){return JSON.parse($.data)}var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs($){return $&&$.__esModule&&Object.prototype.hasOwnProperty.call($,"default")?$.default:$}function getAugmentedNamespace($){if($.__esModule)return $;var rA=$.default;if(typeof rA=="function"){var tA=function AA(){return this instanceof AA?Reflect.construct(rA,arguments,this.constructor):rA.apply(this,arguments)};tA.prototype=rA.prototype}else tA={};return Object.defineProperty(tA,"__esModule",{value:!0}),Object.keys($).forEach(function(AA){var eA=Object.getOwnPropertyDescriptor($,AA);Object.defineProperty(tA,AA,eA.get?eA:{enumerable:!0,get:function(){return $[AA]}})}),tA}var jsxRuntime={exports:{}},reactJsxRuntime_production_min={},react={exports:{}},react_production_min={};/** +var yt=Object.defineProperty;var Ct=($,rA,tA)=>rA in $?yt($,rA,{enumerable:!0,configurable:!0,writable:!0,value:tA}):$[rA]=tA;var gt=($,rA,tA)=>(Ct($,typeof rA!="symbol"?rA+"":rA,tA),tA);function _mergeNamespaces($,rA){for(var tA=0;tAAA[eA]})}}}return Object.freeze(Object.defineProperty($,Symbol.toStringTag,{value:"Module"}))}(function(){const rA=document.createElement("link").relList;if(rA&&rA.supports&&rA.supports("modulepreload"))return;for(const eA of document.querySelectorAll('link[rel="modulepreload"]'))AA(eA);new MutationObserver(eA=>{for(const nA of eA)if(nA.type==="childList")for(const oA of nA.addedNodes)oA.tagName==="LINK"&&oA.rel==="modulepreload"&&AA(oA)}).observe(document,{childList:!0,subtree:!0});function tA(eA){const nA={};return eA.integrity&&(nA.integrity=eA.integrity),eA.referrerPolicy&&(nA.referrerPolicy=eA.referrerPolicy),eA.crossOrigin==="use-credentials"?nA.credentials="include":eA.crossOrigin==="anonymous"?nA.credentials="omit":nA.credentials="same-origin",nA}function AA(eA){if(eA.ep)return;eA.ep=!0;const nA=tA(eA);fetch(eA.href,nA)}})();const makeMessageDispatcher=makeMessageDispatcherGeneric;function makeMessageDispatcherGeneric(){const $={};return{subscribe:(rA,tA)=>($[rA]===void 0&&($[rA]=new Set),$[rA].add(tA),{unsubscribe:()=>{$[rA].delete(tA)}}),dispatch:(rA,tA)=>{var AA;(AA=$[rA])==null||AA.forEach(eA=>eA(tA))}}}async function getClientsideOnlyTree($){return new Promise((rA,tA)=>{fetch("/testing-tree").then(AA=>AA.json()).then(AA=>{"ui_tree"in AA&&"language"in AA?rA(AA):tA("No ui_tree or language in response")}).catch(AA=>{console.error("/testing-tree error",AA),rA($)})})}function setupStaticBackend({messageDispatch:$,showMessages:rA,defaultInfo:tA}){const AA=rA?console.log:(...nA)=>{};return{sendMsg:nA=>{switch(AA("Static sendMsg()",nA),nA.path){case"READY-FOR-STATE":{getClientsideOnlyTree(tA).then(({ui_tree:oA,language:iA})=>{oA==="TEMPLATE_CHOOSER"?$.dispatch("TEMPLATE_CHOOSER","please"):$.dispatch("APP-INFO",{ui_tree:oA,scripts:{app:""},language:iA,app:{code:"",packages:["shiny"]}})});return}case"UPDATED-APP":{nA.payload.info&&$.dispatch("APP-INFO",nA.payload.info);return}case"APP-PREVIEW-REQUEST":return}},incomingMsgs:$,mode:"STATIC"}}function staticDispatchFromTree($,rA="R"){return setupStaticBackend({messageDispatch:makeMessageDispatcher(),showMessages:!0,defaultInfo:{language:rA,ui_tree:$??"TEMPLATE_CHOOSER"}})}function setupWebsocketBackend({onClose:$,messageDispatch:rA,pathToWebsocket:tA=window.location.host+window.location.pathname}){let AA=!1;return new Promise(eA=>{try{if(!document.location.host)throw new Error("Not on a served site!");const nA=new WebSocket(buildWebsocketPathFromDomain(tA)),oA={sendMsg:iA=>{sendWsMessage(nA,iA)},incomingMsgs:rA,mode:"HTTPUV"};nA.onerror=iA=>{eA("NO-WS-CONNECTION")},nA.onopen=iA=>{listenForWsMessages(nA,lA=>{const{path:aA,payload:sA}=lA;rA.dispatch(aA,sA)}),eA(oA),AA=!0},nA.onclose=iA=>{AA?($(),rA.dispatch("CONNECTION-LOST",{msg:"Websocket connection closed"})):eA("NO-WS-CONNECTION")}}catch{eA("NO-WS-CONNECTION")}})}function buildWebsocketPathFromDomain($){return(window.location.protocol==="https:"?"wss:":"ws:")+"//"+$}function sendWsMessage($,rA){const tA=new Blob([JSON.stringify(rA)],{type:"application/json"});$.send(tA)}function listenForWsMessages($,rA){$.addEventListener("message",tA=>{rA(parseWebsocketMessage(tA))})}function parseWebsocketMessage($){return JSON.parse($.data)}var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs($){return $&&$.__esModule&&Object.prototype.hasOwnProperty.call($,"default")?$.default:$}function getAugmentedNamespace($){if($.__esModule)return $;var rA=$.default;if(typeof rA=="function"){var tA=function AA(){return this instanceof AA?Reflect.construct(rA,arguments,this.constructor):rA.apply(this,arguments)};tA.prototype=rA.prototype}else tA={};return Object.defineProperty(tA,"__esModule",{value:!0}),Object.keys($).forEach(function(AA){var eA=Object.getOwnPropertyDescriptor($,AA);Object.defineProperty(tA,AA,eA.get?eA:{enumerable:!0,get:function(){return $[AA]}})}),tA}var jsxRuntime={exports:{}},reactJsxRuntime_production_min={},react={exports:{}},react_production_min={};/** * @license React * react.production.min.js * @@ -146,8 +146,8 @@ app = App(app_ui, server) `;function generateAppScriptTemplate($){let rA=["shiny"],AA=$.tree.rootNode.text.replace($.text,SCRIPT_LOC_KEYS.ui).replace("from shiny import *",SCRIPT_LOC_KEYS.packages);for(const eA of rA.filter(nA=>nA!=="shiny"))AA=AA.replace(new RegExp(`from ${eA} import \\*\\s*\\n`),"");return{code:AA,packages:rA}}function isBooleanNode($){return $.type==="false"||$.type==="true"}function extractBooleanContent($){let rA;if($.text==="True")rA=!0;else if($.text==="False")rA=!1;else throw new Error(`Failed to parse boolean: ${$.text}`);return rA}function isKeywordArgNode($){return $.type==="keyword_argument"&&!!$.children[0]&&!!$.children[2]}function parseKeywordArgNode($){return{name:$.children[0].text,value:$.children[2]}}function isNumberNode($){return $.type==="integer"||$.type==="float"}function extractNumberContent($){const rA=Number($.text);if(isNaN(rA))throw new Error(`Failed to parse number: ${$.text}`);return rA}function isStringNode($){return $.type==="string"}function extractStringContent($){return $.text.slice(1,-1)}function treesitterToUiTree($){if(!is_call_node($))return makeUnknownUiFunction($.text);const{fn_name:rA,fn_args:tA}=extract_call_content($),AA=pyFnNameToNodeInfo.get(rA);if(!AA)return makeUnknownUiFunction($.text);const eA=[...AA.ordered_positional_args],nA=eA.length,oA=Object.keys(AA.settingsInfo),iA={id:AA.id,namedArgs:{}};let lA=[];for(let aA=0;aA0?{...iA,children:lA}:iA}function parseArgNode$1($){return isStringNode($)?extractStringContent($):isNumberNode($)?extractNumberContent($):isBooleanNode($)?extractBooleanContent($):treesitterToUiTree($)}function getKnownOutputs($){const rA=new Map;return $.rootNode.descendantsOfType("decorated_definition").forEach(AA=>{var aA;if(!AA.descendantsOfType("decorator").some(sA=>{var cA;return((cA=sA.firstNamedChild)==null?void 0:cA.text)==="output"}))return;const oA=(aA=AA.descendantsOfType("function_definition")[0].firstNamedChild)==null?void 0:aA.text;if(!oA)return;const iA=getNodePosition(AA),lA=rA.get(oA);lA?lA.push(iA):rA.set(oA,[iA])}),rA}function getKnownInputs($){const rA=new Map;return $.rootNode.descendantsOfType("attribute").forEach(tA=>{const{firstNamedChild:AA,lastNamedChild:eA}=tA;if(!AA||!eA||AA.text!=="input")return;const nA=eA.text,oA=tA.parent;if(!oA||oA.type!=="call")return;const iA=getNodePosition(oA),lA=rA.get(nA);lA?lA.push(iA):rA.set(nA,[iA])}),rA}function getServerNode($){return $.rootNode.descendantsOfType("function_definition").find(rA=>{var tA;return((tA=rA.firstNamedChild)==null?void 0:tA.text)==="server"})}function getServerNodePosition($){const rA=getServerNode($);if(!rA)throw new Error("No server node found");return getNodePositionAndIndent(rA)}function generatePythonOutputBinding($,{fn_name:rA,fn_body:tA}){return collapseText("@output",`${rA}`,`def ${$}():`,indent_text_block(tA,4,!0))}async function parsePythonAppText({scripts:$,parser:rA}){if(!("app"in $))throw new Error("Multifile python apps are not supported");const tA=$.app,AA=(await rA).parse(tA),eA=get_assignment_nodes(AA),nA=get_ui_assignment(eA);if(!nA)throw new Error("No UI node found");const oA=getKnownInputs(AA),iA=getKnownOutputs(AA);return{language:"PYTHON",app_type:"SINGLE-FILE",scripts:{app_type:"SINGLE-FILE",app:tA},ui_tree:treesitterToUiTree(nA),server_locations:{input_positions:convertMapToObject(oA),output_positions:convertMapToObject(iA),server_fn:getServerNodePosition(AA)},app:generateAppScriptTemplate(nA)}}function getRPackagesInScript($){return $.descendantsOfType("call").filter(rA=>{var tA;return((tA=rA.firstNamedChild)==null?void 0:tA.text)==="library"}).reduce((rA,tA)=>{var eA;const AA=(eA=tA.lastNamedChild)==null?void 0:eA.text;return AA&&(rA.names.push(AA),rA.lines.push(tA.text)),rA},{names:[],lines:[]})}function generateRAppScriptTemplate($){const rA=$.tree.rootNode;let AA=rA.text.replace($.text,SCRIPT_LOC_KEYS.ui).replace("library(shiny)",SCRIPT_LOC_KEYS.packages);const eA=getRPackagesInScript(rA);for(const nA of eA.lines)AA=AA.replace(nA,"LIBRARY_CALL").replace(/LIBRARY_CALL *\n/,"");return{code:AA,packages:eA.names}}function generate_r_output_binding($,{fn_name:rA,fn_body:tA}){const AA=collapseText(`${rA}({`,`${indent_text_block(tA,2,!0)}`,"})");return`output$${$} <- ${AA}`}function getRInfoIfKnown($){if(!is_call_node($))return null;const{fn_name:rA,fn_args:tA}=extract_call_content($),AA=rFnNameToNodeInfo(rA);return AA?{info:AA,fn_name:rA,fn_args:tA}:null}function parseRScript($,rA){return $.parse(rA)}function findUiAndServerInMultifileRApp($,rA,tA){const AA=parseRScript($,rA).rootNode,eA=parseRScript($,tA).rootNode;return{ui_node:findUiDefInRApp(AA),server_node:findServerDefInRApp(eA)}}function findUiDefInRApp($){const rA=searchForNode($,tA=>getRInfoIfKnown(tA)!==null);if(rA)return rA;throw new Error("No ui declaration found in script")}function findServerDefInRApp($){const rA=searchForNode($,fnDefIsServer);if(rA)return rA;throw new Error("No server function found in script")}function fnDefIsServer($){if($.type!=="function_definition")return!1;const rA=$.firstNamedChild;if((rA==null?void 0:rA.type)!=="formal_parameters")return!1;const tA=rA.namedChildren.map(AA=>AA.text);return tA.includes("input")&&tA.includes("output")}function searchForNode($,rA){for(let tA=$.namedChildren.length-1;tA>=0;tA--){const AA=$.namedChildren[tA];if(AA.type==="left_assignment"&&AA.lastNamedChild&&rA(AA.lastNamedChild))return AA.lastNamedChild;if(rA(AA))return AA}return null}function FindUiAndServerInSinglefileRApp($,rA){const tA=parseRScript($,rA).rootNode;return{ui_node:findUiDefInRApp(tA),server_node:findServerDefInRApp(tA),ui_root:tA}}function getNameOfAccessedProperty($,rA){var AA,eA;return $.type!=="dollar"||((AA=$.firstNamedChild)==null?void 0:AA.text)!==rA?null:((eA=$.namedChild(1))==null?void 0:eA.text)??null}function getOutputPositionsFromServer($){const rA=new Map;return $.descendantsOfType("left_assignment").forEach(AA=>{const eA=AA.firstNamedChild;if(!eA)return;const nA=getNameOfAccessedProperty(eA,"output");if(!nA)return;const oA=getNodePosition(AA);rA.has(nA)?rA.set(nA,rA.get(nA).concat(oA)):rA.set(nA,[oA])}),rA}function getInputPositionsFromServer($){const rA=new Map;return $.descendantsOfType("dollar").forEach(tA=>{const AA=getNameOfAccessedProperty(tA,"input");if(AA===null)return;const eA=getNodePosition(tA);rA.has(AA)?rA.set(AA,rA.get(AA).concat(eA)):rA.set(AA,[eA])}),rA}function getServerPositions($){const rA=getInputPositionsFromServer($),tA=getOutputPositionsFromServer($);return{input_positions:rA,output_positions:tA}}function parseRApp($,rA,tA){const{ui_node:AA,server_node:eA}=tA?findUiAndServerInMultifileRApp($,rA,tA):FindUiAndServerInSinglefileRApp($,rA),nA=getServerPositions(eA);return{ui_node:AA,server_node:eA,server_locations:{input_positions:convertMapToObject(nA.input_positions),output_positions:convertMapToObject(nA.output_positions),server_fn:getNodePositionAndIndent(eA)}}}const seqArray=($,rA)=>Array.from({length:$},(tA,AA)=>AA),buildRange=($,rA)=>{const tA=Math.abs(rA-$)+1,AA=$$+nA*AA)};function arrayRange($){let rA=1/0,tA=-1/0;for(let nA of $)nAtA&&(tA=nA);const AA=tA-rA,eA=Array.isArray($)?$.length:$.size;return{minVal:rA,maxVal:tA,span:AA,isSequence:AA===eA-1}}function fillArr($,rA){return[...new Array(rA)].fill($)}function inANotInB($,rA){return $.filter(tA=>!rA.includes(tA))}function removeAtIndex($,rA){return[...$.slice(0,rA),...$.slice(rA+1)]}function addAtIndex($,rA,tA){if(rA<0)throw new Error("Can't add item at a negative index");const AA=[...$];return rA>AA.length-1&&(AA.length=rA),AA.splice(rA,0,tA),AA}function moveElement($,rA,tA){if(tA<0)throw new Error("Can't add item at a negative index");if(rA<0||rA>$.length)throw new Error("Requested to move an element that is not in array");let AA=[...$];const eA=AA[rA];return AA[rA]=void 0,AA=addAtIndex(AA,tA,eA),AA.filter(nA=>typeof nA<"u")}function joinPretty($,rA=", ",tA=" and "){const AA=$.length;if(AA===1)return $[0];const eA=$[AA-1];return[...$].splice(0,AA-1).join(rA)+tA+eA}function removeDuplicates($){return[...new Set($)]}function ensureArray$1($){return Array.isArray($)?$:[$]}function is_boolean_node($){return $.type==="false"||$.type==="true"}function extract_boolean_content($){let rA;if($.text==="TRUE"||$.text==="T")rA=!0;else if($.text==="FALSE"||$.text==="F")rA=!1;else throw new Error(`Failed to parse boolean: ${$.text}`);return rA}function is_keyword_arg_node($){return $.type==="default_argument"&&!!$.namedChild(0)&&!!$.namedChild(1)}function parse_keyword_arg_node($){return{name:$.namedChild(0).text,value:$.namedChild(1)}}function isListNode($){var rA;return $.type==="call"&&((rA=$.firstNamedChild)==null?void 0:rA.text)==="list"}function extractListContents($){var AA;const rA=((AA=$.namedChild(1))==null?void 0:AA.namedChildren)??[],tA={};return rA.forEach(eA=>{if(eA.type!=="default_argument")throw new Error("Somehow list is filled with non values");const nA=eA.firstNamedChild,oA=eA.lastNamedChild;if(!(eA.namedChildCount===2&&nA&&oA))throw new Error("Somehow list is filled with non values");if(!is_string_node(nA))throw new Error("Somehow list is filled with non values");const iA=extract_string_content(nA);let lA;if(is_string_node(oA))lA=extract_string_content(oA);else if(is_number_node(oA))lA=extract_number_content(oA);else if(isListNode(oA))lA=extractListContents(oA);else throw new Error(`Only support arrays of numbers and strings. Can't parse array: -${eA.text}`);tA[iA]=lA}),tA}function rTreesitterToUiTree($){if(is_text_node($))return parse_text_node($);const rA=getRInfoIfKnown($);if(rA===null)return makeUnknownUiFunction($.text);const{fn_args:tA,info:AA}=rA;if(!AA)return makeUnknownUiFunction($.text);const eA={id:AA.id,namedArgs:{}};let nA=[];const oA=tA.filter(is_keyword_arg_node),iA="preprocess_raw_ast_arg"in AA.r_info?AA.r_info.preprocess_raw_ast_arg:aA=>null;oA.forEach(aA=>{var pA;const sA=parse_keyword_arg_node(aA),cA=AA.r_arg_name_to_sue_arg_name.get(sA.name)??sA.name;if(iA){const uA=iA(sA);if(uA){eA.namedArgs[uA.name]=uA.value;return}}if(((pA=AA.get_arg_info(cA))==null?void 0:pA.inputType)==="ui-node"){eA.namedArgs[cA]=rTreesitterToUiTree(sA.value);return}eA.namedArgs[cA]=parseArgNode(sA.value)});const lA=inANotInB(AA.required_arg_names,Object.keys(eA.namedArgs));return tA.filter(aA=>!is_keyword_arg_node(aA)).forEach(aA=>{if(lA.length>0){const sA=lA.shift();eA.namedArgs[sA]=parseArgNode(aA);return}nA.push(rTreesitterToUiTree(aA))}),nA.length>0?{...eA,children:nA}:eA}function parseArgNode($){return is_string_node($)?extract_string_content($):is_number_node($)?extract_number_content($):is_boolean_node($)?extract_boolean_content($):is_array_node($)?extract_array_contents($):isListNode($)?extractListContents($):rTreesitterToUiTree($)}async function parseSingleFileRApp($,rA){const{ui_node:tA,server_locations:AA}=parseRApp(rA,$);return{language:"R",app_type:"SINGLE-FILE",scripts:{app_type:"SINGLE-FILE",app:$},ui_tree:rTreesitterToUiTree(tA),server_locations:AA,app:generateRAppScriptTemplate(tA)}}async function parseMultiFileRApp($,rA,tA){const{ui_node:AA,server_locations:eA}=parseRApp(tA,$,rA);return{language:"R",app_type:"MULTI-FILE",scripts:{app_type:"MULTI-FILE",ui:$,server:rA},server_locations:eA,ui_tree:rTreesitterToUiTree(AA),ui:generateRAppScriptTemplate(AA),server:{code:rA}}}async function parseRAppText({scripts:$,parser:rA}){const tA=await rA;return"app"in $?await parseSingleFileRApp($.app,tA):await parseMultiFileRApp($.ui,$.server,tA)}const TSParserContext=React.createContext(()=>{throw new Error("No context available for parser")});function TSParserProvider({children:$}){const{incomingMsgs:rA}=useBackendConnection(),tA=React.useRef(()=>{throw new Error("No parser set up yet")});React.useEffect(()=>{const eA=rA.subscribe("CHECKIN",({language:nA,path_to_ts_wasm:oA})=>{const iA={};if(oA){const aA=oA;iA.locateFile=()=>aA}const lA=nA==="R"?setup_r_parser(iA):setup_python_parser(iA);tA.current=aA=>nA==="R"?parseRAppText({scripts:aA,parser:lA}):parsePythonAppText({scripts:aA,parser:lA})});return()=>eA.unsubscribe()},[rA]);const AA=React.useCallback(eA=>{var nA;return(nA=tA.current)==null?void 0:nA.call(tA,eA)},[]);return jsx(TSParserContext.Provider,{value:AA,children:$})}function useTsParser(){return React.useContext(TSParserContext)}class StateHistory{constructor({comparisonFn:rA}){this.stack=[],this.stepsBack=0,this.lastRequested=null,this.isSameFn=rA}isEntryFromHistory(rA){return this.lastRequested?this.isSameFn(rA,this.lastRequested):!1}lastEntry(){return this.stack[this.stack.length-1]}isDuplicateOfLastEntry(rA){return this.isSameFn(rA,this.lastEntry())}startNewHistoryBranch(){this.stack=this.stack.slice(0,-this.stepsBack),this.stepsBack=0}addEntry(rA){this.isEntryFromHistory(rA)||this.isDuplicateOfLastEntry(rA)||(this.stepsBack>0&&this.startNewHistoryBranch(),this.stack=[...this.stack,rA])}canGoBackwards(){return this.stack.length===1?!1:this.stack.length-this.stepsBack>1}canGoForwards(){return this.stepsBack>0}getEntryFromHistory(rA){this.stepsBack-=rA;const tA=this.stack.length,AA=tA-this.stepsBack-1;if(AA<0)throw new Error("Requested history entry too far backwards.");if(AA>tA)throw new Error(`Not enough entries in history to go ${rA} steps forward`);return this.lastRequested=this.stack[AA],this.lastRequested}goBackwards(){if(!this.canGoBackwards())throw new Error("Can't go backwards. At first entry in history");return this.getEntryFromHistory(-1)}goForwards(){if(!this.canGoForwards())throw new Error("Can't go forwards. At latest entry in history");return this.getEntryFromHistory(1)}}function n($){for(var rA=arguments.length,tA=Array(rA>1?rA-1:0),AA=1;AA3?rA.i-4:rA.i:Array.isArray($)?1:s($)?2:v($)?3:0}function u($,rA){return o($)===2?$.has(rA):Object.prototype.hasOwnProperty.call($,rA)}function a($,rA){return o($)===2?$.get(rA):$[rA]}function f($,rA,tA){var AA=o($);AA===2?$.set(rA,tA):AA===3?$.add(tA):$[rA]=tA}function c($,rA){return $===rA?$!==0||1/$==1/rA:$!=$&&rA!=rA}function s($){return X$2&&$ instanceof Map}function v($){return q&&$ instanceof Set}function p($){return $.o||$.t}function l($){if(Array.isArray($))return Array.prototype.slice.call($);var rA=rn($);delete rA[Q];for(var tA=nn(rA),AA=0;AA1&&($.set=$.add=$.clear=$.delete=h),Object.freeze($),rA&&i($,function(tA,AA){return d(AA,!0)},!0)),$}function h(){n(2)}function y($){return $==null||typeof $!="object"||Object.isFrozen($)}function b($){var rA=tn[$];return rA||n(18,$),rA}function m($,rA){tn[$]||(tn[$]=rA)}function _(){return U}function j($,rA){rA&&(b("Patches"),$.u=[],$.s=[],$.v=rA)}function g($){O($),$.p.forEach(S),$.p=null}function O($){$===U&&(U=$.l)}function w($){return U={p:[],l:U,h:$,m:!0,_:0}}function S($){var rA=$[Q];rA.i===0||rA.i===1?rA.j():rA.g=!0}function P($,rA){rA._=rA.p.length;var tA=rA.p[0],AA=$!==void 0&&$!==tA;return rA.h.O||b("ES5").S(rA,$,AA),AA?(tA[Q].P&&(g(rA),n(4)),t($)&&($=M(rA,$),rA.l||x(rA,$)),rA.u&&b("Patches").M(tA[Q].t,$,rA.u,rA.s)):$=M(rA,tA,[]),g(rA),rA.u&&rA.v(rA.u,rA.s),$!==H?$:void 0}function M($,rA,tA){if(y(rA))return rA;var AA=rA[Q];if(!AA)return i(rA,function(iA,lA){return A($,AA,rA,iA,lA,tA)},!0),rA;if(AA.A!==$)return rA;if(!AA.P)return x($,AA.t,!0),AA.t;if(!AA.I){AA.I=!0,AA.A._--;var eA=AA.i===4||AA.i===5?AA.o=l(AA.k):AA.o,nA=eA,oA=!1;AA.i===3&&(nA=new Set(eA),eA.clear(),oA=!0),i(nA,function(iA,lA){return A($,AA,eA,iA,lA,tA,oA)}),x($,eA,!1),tA&&$.u&&b("Patches").N(AA,tA,$.u,$.s)}return AA.o}function A($,rA,tA,AA,eA,nA,oA){if(r(eA)){var iA=M($,eA,nA&&rA&&rA.i!==3&&!u(rA.R,AA)?nA.concat(AA):void 0);if(f(tA,AA,iA),!r(iA))return;$.m=!1}else oA&&tA.add(eA);if(t(eA)&&!y(eA)){if(!$.h.D&&$._<1)return;M($,eA),rA&&rA.A.l||x($,eA)}}function x($,rA,tA){tA===void 0&&(tA=!1),!$.l&&$.h.D&&$.m&&d(rA,tA)}function z($,rA){var tA=$[Q];return(tA?p(tA):$)[rA]}function I($,rA){if(rA in $)for(var tA=Object.getPrototypeOf($);tA;){var AA=Object.getOwnPropertyDescriptor(tA,rA);if(AA)return AA;tA=Object.getPrototypeOf(tA)}}function k($){$.P||($.P=!0,$.l&&k($.l))}function E($){$.o||($.o=l($.t))}function N($,rA,tA){var AA=s(rA)?b("MapSet").F(rA,tA):v(rA)?b("MapSet").T(rA,tA):$.O?function(eA,nA){var oA=Array.isArray(eA),iA={i:oA?1:0,A:nA?nA.A:_(),P:!1,I:!1,R:{},l:nA,t:eA,k:null,o:null,j:null,C:!1},lA=iA,aA=en;oA&&(lA=[iA],aA=on$2);var sA=Proxy.revocable(lA,aA),cA=sA.revoke,pA=sA.proxy;return iA.k=pA,iA.j=cA,pA}(rA,tA):b("ES5").J(rA,tA);return(tA?tA.A:_()).p.push(AA),AA}function R($){return r($)||n(22,$),function rA(tA){if(!t(tA))return tA;var AA,eA=tA[Q],nA=o(tA);if(eA){if(!eA.P&&(eA.i<4||!b("ES5").K(eA)))return eA.t;eA.I=!0,AA=D(tA,nA),eA.I=!1}else AA=D(tA,nA);return i(AA,function(oA,iA){eA&&a(eA.t,oA)===iA||f(AA,oA,rA(iA))}),nA===3?new Set(AA):AA}($)}function D($,rA){switch(rA){case 2:return new Map($);case 3:return Array.from($)}return l($)}function F(){function $(nA,oA){var iA=eA[nA];return iA?iA.enumerable=oA:eA[nA]=iA={configurable:!0,enumerable:oA,get:function(){var lA=this[Q];return en.get(lA,nA)},set:function(lA){var aA=this[Q];en.set(aA,nA,lA)}},iA}function rA(nA){for(var oA=nA.length-1;oA>=0;oA--){var iA=nA[oA][Q];if(!iA.P)switch(iA.i){case 5:AA(iA)&&k(iA);break;case 4:tA(iA)&&k(iA)}}}function tA(nA){for(var oA=nA.t,iA=nA.k,lA=nn(iA),aA=lA.length-1;aA>=0;aA--){var sA=lA[aA];if(sA!==Q){var cA=oA[sA];if(cA===void 0&&!u(oA,sA))return!0;var pA=iA[sA],uA=pA&&pA[Q];if(uA?uA.t!==cA:!c(pA,cA))return!0}}var gA=!!oA[Q];return lA.length!==nn(oA).length+(gA?0:1)}function AA(nA){var oA=nA.k;if(oA.length!==nA.t.length)return!0;var iA=Object.getOwnPropertyDescriptor(oA,oA.length-1);if(iA&&!iA.get)return!0;for(var lA=0;lA1?BA-1:0),QA=1;QA1?sA-1:0),pA=1;pA=0;eA--){var nA=AA[eA];if(nA.path.length===0&&nA.op==="replace"){tA=nA.value;break}}eA>-1&&(AA=AA.slice(eA+1));var oA=b("Patches").$;return r(tA)?oA(tA,AA):this.produce(tA,function(iA){return oA(iA,AA)})},$}(),an=new un,fn=an.produce;an.produceWithPatches.bind(an);an.setAutoFreeze.bind(an);an.setUseProxies.bind(an);an.applyPatches.bind(an);an.createDraft.bind(an);an.finishDraft.bind(an);function _typeof$1($){"@babel/helpers - typeof";return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(rA){return typeof rA}:function(rA){return rA&&typeof Symbol=="function"&&rA.constructor===Symbol&&rA!==Symbol.prototype?"symbol":typeof rA},_typeof$1($)}function _toPrimitive($,rA){if(_typeof$1($)!=="object"||$===null)return $;var tA=$[Symbol.toPrimitive];if(tA!==void 0){var AA=tA.call($,rA||"default");if(_typeof$1(AA)!=="object")return AA;throw new TypeError("@@toPrimitive must return a primitive value.")}return(rA==="string"?String:Number)($)}function _toPropertyKey($){var rA=_toPrimitive($,"string");return _typeof$1(rA)==="symbol"?rA:String(rA)}function _defineProperty$3($,rA,tA){return rA=_toPropertyKey(rA),rA in $?Object.defineProperty($,rA,{value:tA,enumerable:!0,configurable:!0,writable:!0}):$[rA]=tA,$}function ownKeys$3($,rA){var tA=Object.keys($);if(Object.getOwnPropertySymbols){var AA=Object.getOwnPropertySymbols($);rA&&(AA=AA.filter(function(eA){return Object.getOwnPropertyDescriptor($,eA).enumerable})),tA.push.apply(tA,AA)}return tA}function _objectSpread2$3($){for(var rA=1;rA"u"&&(tA=rA,rA=void 0),typeof tA<"u"){if(typeof tA!="function")throw new Error(formatProdErrorMessage(1));return tA(createStore$1)($,rA)}if(typeof $!="function")throw new Error(formatProdErrorMessage(2));var eA=$,nA=rA,oA=[],iA=oA,lA=!1;function aA(){iA===oA&&(iA=oA.slice())}function sA(){if(lA)throw new Error(formatProdErrorMessage(3));return nA}function cA(fA){if(typeof fA!="function")throw new Error(formatProdErrorMessage(4));if(lA)throw new Error(formatProdErrorMessage(5));var wA=!0;return aA(),iA.push(fA),function(){if(wA){if(lA)throw new Error(formatProdErrorMessage(6));wA=!1,aA();var EA=iA.indexOf(fA);iA.splice(EA,1),oA=null}}}function pA(fA){if(!isPlainObject$1(fA))throw new Error(formatProdErrorMessage(7));if(typeof fA.type>"u")throw new Error(formatProdErrorMessage(8));if(lA)throw new Error(formatProdErrorMessage(9));try{lA=!0,nA=eA(nA,fA)}finally{lA=!1}for(var wA=oA=iA,BA=0;BA"u")throw new Error(formatProdErrorMessage(12));if(typeof tA(void 0,{type:ActionTypes.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(formatProdErrorMessage(13))})}function combineReducers($){for(var rA=Object.keys($),tA={},AA=0;AA"u")throw aA&&aA.type,new Error(formatProdErrorMessage(14));cA[uA]=wA,sA=sA||wA!==fA}return sA=sA||nA.length!==Object.keys(lA).length,sA?cA:lA}}function compose(){for(var $=arguments.length,rA=new Array($),tA=0;tA<$;tA++)rA[tA]=arguments[tA];return rA.length===0?function(AA){return AA}:rA.length===1?rA[0]:rA.reduce(function(AA,eA){return function(){return AA(eA.apply(void 0,arguments))}})}function applyMiddleware(){for(var $=arguments.length,rA=new Array($),tA=0;tA<$;tA++)rA[tA]=arguments[tA];return function(AA){return function(){var eA=AA.apply(void 0,arguments),nA=function(){throw new Error(formatProdErrorMessage(15))},oA={getState:eA.getState,dispatch:function(){return nA.apply(void 0,arguments)}},iA=rA.map(function(lA){return lA(oA)});return nA=compose.apply(void 0,iA)(eA.dispatch),_objectSpread2$3(_objectSpread2$3({},eA),{},{dispatch:nA})}}}function createThunkMiddleware($){var rA=function(AA){var eA=AA.dispatch,nA=AA.getState;return function(oA){return function(iA){return typeof iA=="function"?iA(eA,nA,$):oA(iA)}}};return rA}var thunk=createThunkMiddleware();thunk.withExtraArgument=createThunkMiddleware;const thunkMiddleware=thunk;var __extends=globalThis&&globalThis.__extends||function(){var $=function(rA,tA){return $=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(AA,eA){AA.__proto__=eA}||function(AA,eA){for(var nA in eA)Object.prototype.hasOwnProperty.call(eA,nA)&&(AA[nA]=eA[nA])},$(rA,tA)};return function(rA,tA){if(typeof tA!="function"&&tA!==null)throw new TypeError("Class extends value "+String(tA)+" is not a constructor or null");$(rA,tA);function AA(){this.constructor=rA}rA.prototype=tA===null?Object.create(tA):(AA.prototype=tA.prototype,new AA)}}(),__generator=globalThis&&globalThis.__generator||function($,rA){var tA={label:0,sent:function(){if(nA[0]&1)throw nA[1];return nA[1]},trys:[],ops:[]},AA,eA,nA,oA;return oA={next:iA(0),throw:iA(1),return:iA(2)},typeof Symbol=="function"&&(oA[Symbol.iterator]=function(){return this}),oA;function iA(aA){return function(sA){return lA([aA,sA])}}function lA(aA){if(AA)throw new TypeError("Generator is already executing.");for(;tA;)try{if(AA=1,eA&&(nA=aA[0]&2?eA.return:aA[0]?eA.throw||((nA=eA.return)&&nA.call(eA),0):eA.next)&&!(nA=nA.call(eA,aA[1])).done)return nA;switch(eA=0,nA&&(aA=[aA[0]&2,nA.value]),aA[0]){case 0:case 1:nA=aA;break;case 4:return tA.label++,{value:aA[1],done:!1};case 5:tA.label++,eA=aA[1],aA=[0];continue;case 7:aA=tA.ops.pop(),tA.trys.pop();continue;default:if(nA=tA.trys,!(nA=nA.length>0&&nA[nA.length-1])&&(aA[0]===6||aA[0]===2)){tA=0;continue}if(aA[0]===3&&(!nA||aA[1]>nA[0]&&aA[1]0)for(var QA=uA.getState(),dA=Array.from(tA.values()),yA=0,hA=dA;yA!tA.includes(nA)),eA=Object.keys(rA).filter(nA=>!tA.includes(nA));if(!sameArray(AA,eA))return!1;for(let nA of AA)if($[nA]!==rA[nA])return!1;return!0}function nodesAreSiblings($,rA){return nodesShareImmediateParent($,rA)&&$.at(-1)!==rA.at(-1)}function nodesShareImmediateParent($,rA){const tA=$.length,AA=rA.length;if(tA!==AA)return!1;const eA=tA-1;return sameArray($.slice(0,eA),rA.slice(0,eA))}function removeNodeMutating($,{path:rA}){const tA=separateIntoParentAndChildPaths(rA),AA=getNode($,tA.parent_path);if(tA.child_location==="namedArgs")if(AA.namedArgs[tA.child_path])delete AA.namedArgs[tA.child_path];else throw new Error("Trying to remove an argument that doesn't exist");else if(tA.child_location==="children"){if(!("children"in AA)||AA.children===void 0||tA.child_path<0||tA.child_path>=AA.children.length)throw new Error("Trying to remove a child that doesn't exist");AA.children.splice(tA.child_path,1)}}function moveNodeMutating($,{path:rA,currentPath:tA,node:AA}){const eA=separateIntoParentAndChildPaths(rA),nA=separateIntoParentAndChildPaths(tA),oA=getNode($,eA.parent_path);if(eA.child_location==="children"&&((!("children"in oA)||oA.children===void 0)&&(oA.children=[]),nA.child_location==="children"&&nodesAreSiblings(tA,rA))){oA.children=moveElement(oA.children,nA.child_path,eA.child_path);return}removeNodeMutating($,{path:tA}),addNodeMutating($,{path:rA,node:AA})}function isNodeMove($){return"currentPath"in $&&$.currentPath!==void 0}function placeNodeMutating($,rA){const{path:tA,node:AA}=rA;if(isNodeMove(rA)){moveNodeMutating($,{path:tA,currentPath:rA.currentPath,node:AA});return}addNodeMutating($,{path:tA,node:AA})}function updateNodeMutating($,{path:rA,node:tA}){const AA=getNode($,rA);Object.assign(AA,tA)}function addEditorInfoToUiNode($,rA){return{...$,...rA}}function addEditorInfoById($,rA){return{...node_info_by_id[$],...rA}}const container$i="_container_1og9v_1",styles$j={container:container$i},testingErrorNodeInfo=addEditorInfoToUiNode(testing_error_node,{UiComponent:({namedArgs:$,path:rA,wrapperProps:tA})=>{const{showBoundary:AA}=$7c3c25b3f398a9d6$export$c052f6604b7d51fe();return jsxs("div",{className:styles$j.container,...tA,children:[jsx("h3",{children:"Error Node! I throw errors"}),jsx(Button,{variant:"delete","aria-label":"Throw an error",onClick:()=>{AA(new Error(`Ui Node error: ${$.error_msg}`))},children:"💣"})]})},settingsFormRender:({inputs:$,settings:rA})=>{if(rA.error_msg==="Trigger settings error")throw new Error(`Settings panel render error: +${$.text}`)}return lA.length>0?{...iA,children:lA}:iA}function parseArgNode$1($){return isStringNode($)?extractStringContent($):isNumberNode($)?extractNumberContent($):isBooleanNode($)?extractBooleanContent($):treesitterToUiTree($)}function getKnownOutputs($){const rA=new Map;return $.rootNode.descendantsOfType("decorated_definition").forEach(AA=>{var aA;if(!AA.descendantsOfType("decorator").some(sA=>{var cA;return((cA=sA.firstNamedChild)==null?void 0:cA.text)==="output"}))return;const oA=(aA=AA.descendantsOfType("function_definition")[0].firstNamedChild)==null?void 0:aA.text;if(!oA)return;const iA=getNodePosition(AA),lA=rA.get(oA);lA?lA.push(iA):rA.set(oA,[iA])}),rA}function getKnownInputs($){const rA=new Map;return $.rootNode.descendantsOfType("attribute").forEach(tA=>{const{firstNamedChild:AA,lastNamedChild:eA}=tA;if(!AA||!eA||AA.text!=="input")return;const nA=eA.text,oA=tA.parent;if(!oA||oA.type!=="call")return;const iA=getNodePosition(oA),lA=rA.get(nA);lA?lA.push(iA):rA.set(nA,[iA])}),rA}function getServerNode($){return $.rootNode.descendantsOfType("function_definition").find(rA=>{var tA;return((tA=rA.firstNamedChild)==null?void 0:tA.text)==="server"})}function getServerNodePosition($){const rA=getServerNode($);if(!rA)throw new Error("No server node found");return getNodePositionAndIndent(rA)}function generatePythonOutputBinding($,{fn_name:rA,fn_body:tA}){return collapseText("@output",`${rA}`,`def ${$}():`,indent_text_block(tA,4,!0))}async function parsePythonAppText({scripts:$,parser:rA}){if(!("app"in $))throw new Error("Multifile python apps are not supported");const tA=$.app,AA=(await rA).parse(tA),eA=get_assignment_nodes(AA),nA=get_ui_assignment(eA);if(!nA)throw new Error("No UI node found");const oA=getKnownInputs(AA),iA=getKnownOutputs(AA);return{language:"PYTHON",scripts:{app:tA},ui_tree:treesitterToUiTree(nA),server_locations:{input_positions:convertMapToObject(oA),output_positions:convertMapToObject(iA),server_fn:getServerNodePosition(AA)},app:generateAppScriptTemplate(nA)}}function getRPackagesInScript($){return $.descendantsOfType("call").filter(rA=>{var tA;return((tA=rA.firstNamedChild)==null?void 0:tA.text)==="library"}).reduce((rA,tA)=>{var eA;const AA=(eA=tA.lastNamedChild)==null?void 0:eA.text;return AA&&(rA.names.push(AA),rA.lines.push(tA.text)),rA},{names:[],lines:[]})}function generateRAppScriptTemplate($){const rA=$.tree.rootNode;let AA=rA.text.replace($.text,SCRIPT_LOC_KEYS.ui).replace("library(shiny)",SCRIPT_LOC_KEYS.packages);const eA=getRPackagesInScript(rA);for(const nA of eA.lines)AA=AA.replace(nA,"LIBRARY_CALL").replace(/LIBRARY_CALL *\n/,"");return{code:AA,packages:eA.names}}function generate_r_output_binding($,{fn_name:rA,fn_body:tA}){const AA=collapseText(`${rA}({`,`${indent_text_block(tA,2,!0)}`,"})");return`output$${$} <- ${AA}`}function getRInfoIfKnown($){if(!is_call_node($))return null;const{fn_name:rA,fn_args:tA}=extract_call_content($),AA=rFnNameToNodeInfo(rA);return AA?{info:AA,fn_name:rA,fn_args:tA}:null}function parseRScript($,rA){return $.parse(rA)}function findUiAndServerInMultifileRApp($,rA,tA){const AA=parseRScript($,rA).rootNode,eA=parseRScript($,tA).rootNode;return{ui_node:findUiDefInRApp(AA),server_node:findServerDefInRApp(eA)}}function findUiDefInRApp($){const rA=searchForNode($,tA=>getRInfoIfKnown(tA)!==null);if(rA)return rA;throw new Error("No ui declaration found in script")}function findServerDefInRApp($){const rA=searchForNode($,fnDefIsServer);if(rA)return rA;throw new Error("No server function found in script")}function fnDefIsServer($){if($.type!=="function_definition")return!1;const rA=$.firstNamedChild;if((rA==null?void 0:rA.type)!=="formal_parameters")return!1;const tA=rA.namedChildren.map(AA=>AA.text);return tA.includes("input")&&tA.includes("output")}function searchForNode($,rA){for(let tA=$.namedChildren.length-1;tA>=0;tA--){const AA=$.namedChildren[tA];if(AA.type==="left_assignment"&&AA.lastNamedChild&&rA(AA.lastNamedChild))return AA.lastNamedChild;if(rA(AA))return AA}return null}function FindUiAndServerInSinglefileRApp($,rA){const tA=parseRScript($,rA).rootNode;return{ui_node:findUiDefInRApp(tA),server_node:findServerDefInRApp(tA),ui_root:tA}}function getNameOfAccessedProperty($,rA){var AA,eA;return $.type!=="dollar"||((AA=$.firstNamedChild)==null?void 0:AA.text)!==rA?null:((eA=$.namedChild(1))==null?void 0:eA.text)??null}function getOutputPositionsFromServer($){const rA=new Map;return $.descendantsOfType("left_assignment").forEach(AA=>{const eA=AA.firstNamedChild;if(!eA)return;const nA=getNameOfAccessedProperty(eA,"output");if(!nA)return;const oA=getNodePosition(AA);rA.has(nA)?rA.set(nA,rA.get(nA).concat(oA)):rA.set(nA,[oA])}),rA}function getInputPositionsFromServer($){const rA=new Map;return $.descendantsOfType("dollar").forEach(tA=>{const AA=getNameOfAccessedProperty(tA,"input");if(AA===null)return;const eA=getNodePosition(tA);rA.has(AA)?rA.set(AA,rA.get(AA).concat(eA)):rA.set(AA,[eA])}),rA}function getServerPositions($){const rA=getInputPositionsFromServer($),tA=getOutputPositionsFromServer($);return{input_positions:rA,output_positions:tA}}function parseRApp($,rA,tA){const{ui_node:AA,server_node:eA}=tA?findUiAndServerInMultifileRApp($,rA,tA):FindUiAndServerInSinglefileRApp($,rA),nA=getServerPositions(eA);return{ui_node:AA,server_node:eA,server_locations:{input_positions:convertMapToObject(nA.input_positions),output_positions:convertMapToObject(nA.output_positions),server_fn:getNodePositionAndIndent(eA)}}}const seqArray=($,rA)=>Array.from({length:$},(tA,AA)=>AA),buildRange=($,rA)=>{const tA=Math.abs(rA-$)+1,AA=$$+nA*AA)};function arrayRange($){let rA=1/0,tA=-1/0;for(let nA of $)nAtA&&(tA=nA);const AA=tA-rA,eA=Array.isArray($)?$.length:$.size;return{minVal:rA,maxVal:tA,span:AA,isSequence:AA===eA-1}}function fillArr($,rA){return[...new Array(rA)].fill($)}function inANotInB($,rA){return $.filter(tA=>!rA.includes(tA))}function removeAtIndex($,rA){return[...$.slice(0,rA),...$.slice(rA+1)]}function addAtIndex($,rA,tA){if(rA<0)throw new Error("Can't add item at a negative index");const AA=[...$];return rA>AA.length-1&&(AA.length=rA),AA.splice(rA,0,tA),AA}function moveElement($,rA,tA){if(tA<0)throw new Error("Can't add item at a negative index");if(rA<0||rA>$.length)throw new Error("Requested to move an element that is not in array");let AA=[...$];const eA=AA[rA];return AA[rA]=void 0,AA=addAtIndex(AA,tA,eA),AA.filter(nA=>typeof nA<"u")}function joinPretty($,rA=", ",tA=" and "){const AA=$.length;if(AA===1)return $[0];const eA=$[AA-1];return[...$].splice(0,AA-1).join(rA)+tA+eA}function removeDuplicates($){return[...new Set($)]}function ensureArray$1($){return Array.isArray($)?$:[$]}function is_boolean_node($){return $.type==="false"||$.type==="true"}function extract_boolean_content($){let rA;if($.text==="TRUE"||$.text==="T")rA=!0;else if($.text==="FALSE"||$.text==="F")rA=!1;else throw new Error(`Failed to parse boolean: ${$.text}`);return rA}function is_keyword_arg_node($){return $.type==="default_argument"&&!!$.namedChild(0)&&!!$.namedChild(1)}function parse_keyword_arg_node($){return{name:$.namedChild(0).text,value:$.namedChild(1)}}function isListNode($){var rA;return $.type==="call"&&((rA=$.firstNamedChild)==null?void 0:rA.text)==="list"}function extractListContents($){var AA;const rA=((AA=$.namedChild(1))==null?void 0:AA.namedChildren)??[],tA={};return rA.forEach(eA=>{if(eA.type!=="default_argument")throw new Error("Somehow list is filled with non values");const nA=eA.firstNamedChild,oA=eA.lastNamedChild;if(!(eA.namedChildCount===2&&nA&&oA))throw new Error("Somehow list is filled with non values");if(!is_string_node(nA))throw new Error("Somehow list is filled with non values");const iA=extract_string_content(nA);let lA;if(is_string_node(oA))lA=extract_string_content(oA);else if(is_number_node(oA))lA=extract_number_content(oA);else if(isListNode(oA))lA=extractListContents(oA);else throw new Error(`Only support arrays of numbers and strings. Can't parse array: +${eA.text}`);tA[iA]=lA}),tA}function rTreesitterToUiTree($){if(is_text_node($))return parse_text_node($);const rA=getRInfoIfKnown($);if(rA===null)return makeUnknownUiFunction($.text);const{fn_args:tA,info:AA}=rA;if(!AA)return makeUnknownUiFunction($.text);const eA={id:AA.id,namedArgs:{}};let nA=[];const oA=tA.filter(is_keyword_arg_node),iA="preprocess_raw_ast_arg"in AA.r_info?AA.r_info.preprocess_raw_ast_arg:aA=>null;oA.forEach(aA=>{var pA;const sA=parse_keyword_arg_node(aA),cA=AA.r_arg_name_to_sue_arg_name.get(sA.name)??sA.name;if(iA){const uA=iA(sA);if(uA){eA.namedArgs[uA.name]=uA.value;return}}if(((pA=AA.get_arg_info(cA))==null?void 0:pA.inputType)==="ui-node"){eA.namedArgs[cA]=rTreesitterToUiTree(sA.value);return}eA.namedArgs[cA]=parseArgNode(sA.value)});const lA=inANotInB(AA.required_arg_names,Object.keys(eA.namedArgs));return tA.filter(aA=>!is_keyword_arg_node(aA)).forEach(aA=>{if(lA.length>0){const sA=lA.shift();eA.namedArgs[sA]=parseArgNode(aA);return}nA.push(rTreesitterToUiTree(aA))}),nA.length>0?{...eA,children:nA}:eA}function parseArgNode($){return is_string_node($)?extract_string_content($):is_number_node($)?extract_number_content($):is_boolean_node($)?extract_boolean_content($):is_array_node($)?extract_array_contents($):isListNode($)?extractListContents($):rTreesitterToUiTree($)}async function parseSingleFileRApp($,rA){const{ui_node:tA,server_locations:AA}=parseRApp(rA,$);return{language:"R",scripts:{app:$},ui_tree:rTreesitterToUiTree(tA),server_locations:AA,app:generateRAppScriptTemplate(tA)}}async function parseRAppText({scripts:$,parser:rA}){const tA=await rA;return await parseSingleFileRApp($.app,tA)}const TSParserContext=React.createContext(()=>{throw new Error("No context available for parser")});function TSParserProvider({children:$}){const{incomingMsgs:rA}=useBackendConnection(),tA=React.useRef(()=>{throw new Error("No parser set up yet")});React.useEffect(()=>{const eA=rA.subscribe("CHECKIN",({language:nA,path_to_ts_wasm:oA})=>{const iA={};if(oA){const aA=oA;iA.locateFile=()=>aA}const lA=nA==="R"?setup_r_parser(iA):setup_python_parser(iA);tA.current=aA=>nA==="R"?parseRAppText({scripts:aA,parser:lA}):parsePythonAppText({scripts:aA,parser:lA})});return()=>eA.unsubscribe()},[rA]);const AA=React.useCallback(eA=>{var nA;return(nA=tA.current)==null?void 0:nA.call(tA,eA)},[]);return jsx(TSParserContext.Provider,{value:AA,children:$})}function useTsParser(){return React.useContext(TSParserContext)}class StateHistory{constructor({comparisonFn:rA}){this.stack=[],this.stepsBack=0,this.lastRequested=null,this.isSameFn=rA}isEntryFromHistory(rA){return this.lastRequested?this.isSameFn(rA,this.lastRequested):!1}lastEntry(){return this.stack[this.stack.length-1]}isDuplicateOfLastEntry(rA){return this.isSameFn(rA,this.lastEntry())}startNewHistoryBranch(){this.stack=this.stack.slice(0,-this.stepsBack),this.stepsBack=0}addEntry(rA){this.isEntryFromHistory(rA)||this.isDuplicateOfLastEntry(rA)||(this.stepsBack>0&&this.startNewHistoryBranch(),this.stack=[...this.stack,rA])}canGoBackwards(){return this.stack.length===1?!1:this.stack.length-this.stepsBack>1}canGoForwards(){return this.stepsBack>0}getEntryFromHistory(rA){this.stepsBack-=rA;const tA=this.stack.length,AA=tA-this.stepsBack-1;if(AA<0)throw new Error("Requested history entry too far backwards.");if(AA>tA)throw new Error(`Not enough entries in history to go ${rA} steps forward`);return this.lastRequested=this.stack[AA],this.lastRequested}goBackwards(){if(!this.canGoBackwards())throw new Error("Can't go backwards. At first entry in history");return this.getEntryFromHistory(-1)}goForwards(){if(!this.canGoForwards())throw new Error("Can't go forwards. At latest entry in history");return this.getEntryFromHistory(1)}}function n($){for(var rA=arguments.length,tA=Array(rA>1?rA-1:0),AA=1;AA3?rA.i-4:rA.i:Array.isArray($)?1:s($)?2:v($)?3:0}function u($,rA){return o($)===2?$.has(rA):Object.prototype.hasOwnProperty.call($,rA)}function a($,rA){return o($)===2?$.get(rA):$[rA]}function f($,rA,tA){var AA=o($);AA===2?$.set(rA,tA):AA===3?$.add(tA):$[rA]=tA}function c($,rA){return $===rA?$!==0||1/$==1/rA:$!=$&&rA!=rA}function s($){return X$2&&$ instanceof Map}function v($){return q&&$ instanceof Set}function p($){return $.o||$.t}function l($){if(Array.isArray($))return Array.prototype.slice.call($);var rA=rn($);delete rA[Q];for(var tA=nn(rA),AA=0;AA1&&($.set=$.add=$.clear=$.delete=h),Object.freeze($),rA&&i($,function(tA,AA){return d(AA,!0)},!0)),$}function h(){n(2)}function y($){return $==null||typeof $!="object"||Object.isFrozen($)}function b($){var rA=tn[$];return rA||n(18,$),rA}function m($,rA){tn[$]||(tn[$]=rA)}function _(){return U}function j($,rA){rA&&(b("Patches"),$.u=[],$.s=[],$.v=rA)}function g($){O($),$.p.forEach(S),$.p=null}function O($){$===U&&(U=$.l)}function w($){return U={p:[],l:U,h:$,m:!0,_:0}}function S($){var rA=$[Q];rA.i===0||rA.i===1?rA.j():rA.g=!0}function P($,rA){rA._=rA.p.length;var tA=rA.p[0],AA=$!==void 0&&$!==tA;return rA.h.O||b("ES5").S(rA,$,AA),AA?(tA[Q].P&&(g(rA),n(4)),t($)&&($=M(rA,$),rA.l||x(rA,$)),rA.u&&b("Patches").M(tA[Q].t,$,rA.u,rA.s)):$=M(rA,tA,[]),g(rA),rA.u&&rA.v(rA.u,rA.s),$!==H?$:void 0}function M($,rA,tA){if(y(rA))return rA;var AA=rA[Q];if(!AA)return i(rA,function(iA,lA){return A($,AA,rA,iA,lA,tA)},!0),rA;if(AA.A!==$)return rA;if(!AA.P)return x($,AA.t,!0),AA.t;if(!AA.I){AA.I=!0,AA.A._--;var eA=AA.i===4||AA.i===5?AA.o=l(AA.k):AA.o,nA=eA,oA=!1;AA.i===3&&(nA=new Set(eA),eA.clear(),oA=!0),i(nA,function(iA,lA){return A($,AA,eA,iA,lA,tA,oA)}),x($,eA,!1),tA&&$.u&&b("Patches").N(AA,tA,$.u,$.s)}return AA.o}function A($,rA,tA,AA,eA,nA,oA){if(r(eA)){var iA=M($,eA,nA&&rA&&rA.i!==3&&!u(rA.R,AA)?nA.concat(AA):void 0);if(f(tA,AA,iA),!r(iA))return;$.m=!1}else oA&&tA.add(eA);if(t(eA)&&!y(eA)){if(!$.h.D&&$._<1)return;M($,eA),rA&&rA.A.l||x($,eA)}}function x($,rA,tA){tA===void 0&&(tA=!1),!$.l&&$.h.D&&$.m&&d(rA,tA)}function z($,rA){var tA=$[Q];return(tA?p(tA):$)[rA]}function I($,rA){if(rA in $)for(var tA=Object.getPrototypeOf($);tA;){var AA=Object.getOwnPropertyDescriptor(tA,rA);if(AA)return AA;tA=Object.getPrototypeOf(tA)}}function k($){$.P||($.P=!0,$.l&&k($.l))}function E($){$.o||($.o=l($.t))}function N($,rA,tA){var AA=s(rA)?b("MapSet").F(rA,tA):v(rA)?b("MapSet").T(rA,tA):$.O?function(eA,nA){var oA=Array.isArray(eA),iA={i:oA?1:0,A:nA?nA.A:_(),P:!1,I:!1,R:{},l:nA,t:eA,k:null,o:null,j:null,C:!1},lA=iA,aA=en;oA&&(lA=[iA],aA=on$2);var sA=Proxy.revocable(lA,aA),cA=sA.revoke,pA=sA.proxy;return iA.k=pA,iA.j=cA,pA}(rA,tA):b("ES5").J(rA,tA);return(tA?tA.A:_()).p.push(AA),AA}function R($){return r($)||n(22,$),function rA(tA){if(!t(tA))return tA;var AA,eA=tA[Q],nA=o(tA);if(eA){if(!eA.P&&(eA.i<4||!b("ES5").K(eA)))return eA.t;eA.I=!0,AA=D(tA,nA),eA.I=!1}else AA=D(tA,nA);return i(AA,function(oA,iA){eA&&a(eA.t,oA)===iA||f(AA,oA,rA(iA))}),nA===3?new Set(AA):AA}($)}function D($,rA){switch(rA){case 2:return new Map($);case 3:return Array.from($)}return l($)}function F(){function $(nA,oA){var iA=eA[nA];return iA?iA.enumerable=oA:eA[nA]=iA={configurable:!0,enumerable:oA,get:function(){var lA=this[Q];return en.get(lA,nA)},set:function(lA){var aA=this[Q];en.set(aA,nA,lA)}},iA}function rA(nA){for(var oA=nA.length-1;oA>=0;oA--){var iA=nA[oA][Q];if(!iA.P)switch(iA.i){case 5:AA(iA)&&k(iA);break;case 4:tA(iA)&&k(iA)}}}function tA(nA){for(var oA=nA.t,iA=nA.k,lA=nn(iA),aA=lA.length-1;aA>=0;aA--){var sA=lA[aA];if(sA!==Q){var cA=oA[sA];if(cA===void 0&&!u(oA,sA))return!0;var pA=iA[sA],uA=pA&&pA[Q];if(uA?uA.t!==cA:!c(pA,cA))return!0}}var gA=!!oA[Q];return lA.length!==nn(oA).length+(gA?0:1)}function AA(nA){var oA=nA.k;if(oA.length!==nA.t.length)return!0;var iA=Object.getOwnPropertyDescriptor(oA,oA.length-1);if(iA&&!iA.get)return!0;for(var lA=0;lA1?BA-1:0),QA=1;QA1?sA-1:0),pA=1;pA=0;eA--){var nA=AA[eA];if(nA.path.length===0&&nA.op==="replace"){tA=nA.value;break}}eA>-1&&(AA=AA.slice(eA+1));var oA=b("Patches").$;return r(tA)?oA(tA,AA):this.produce(tA,function(iA){return oA(iA,AA)})},$}(),an=new un,fn=an.produce;an.produceWithPatches.bind(an);an.setAutoFreeze.bind(an);an.setUseProxies.bind(an);an.applyPatches.bind(an);an.createDraft.bind(an);an.finishDraft.bind(an);function _typeof$1($){"@babel/helpers - typeof";return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(rA){return typeof rA}:function(rA){return rA&&typeof Symbol=="function"&&rA.constructor===Symbol&&rA!==Symbol.prototype?"symbol":typeof rA},_typeof$1($)}function _toPrimitive($,rA){if(_typeof$1($)!=="object"||$===null)return $;var tA=$[Symbol.toPrimitive];if(tA!==void 0){var AA=tA.call($,rA||"default");if(_typeof$1(AA)!=="object")return AA;throw new TypeError("@@toPrimitive must return a primitive value.")}return(rA==="string"?String:Number)($)}function _toPropertyKey($){var rA=_toPrimitive($,"string");return _typeof$1(rA)==="symbol"?rA:String(rA)}function _defineProperty$3($,rA,tA){return rA=_toPropertyKey(rA),rA in $?Object.defineProperty($,rA,{value:tA,enumerable:!0,configurable:!0,writable:!0}):$[rA]=tA,$}function ownKeys$3($,rA){var tA=Object.keys($);if(Object.getOwnPropertySymbols){var AA=Object.getOwnPropertySymbols($);rA&&(AA=AA.filter(function(eA){return Object.getOwnPropertyDescriptor($,eA).enumerable})),tA.push.apply(tA,AA)}return tA}function _objectSpread2$3($){for(var rA=1;rA"u"&&(tA=rA,rA=void 0),typeof tA<"u"){if(typeof tA!="function")throw new Error(formatProdErrorMessage(1));return tA(createStore$1)($,rA)}if(typeof $!="function")throw new Error(formatProdErrorMessage(2));var eA=$,nA=rA,oA=[],iA=oA,lA=!1;function aA(){iA===oA&&(iA=oA.slice())}function sA(){if(lA)throw new Error(formatProdErrorMessage(3));return nA}function cA(fA){if(typeof fA!="function")throw new Error(formatProdErrorMessage(4));if(lA)throw new Error(formatProdErrorMessage(5));var wA=!0;return aA(),iA.push(fA),function(){if(wA){if(lA)throw new Error(formatProdErrorMessage(6));wA=!1,aA();var EA=iA.indexOf(fA);iA.splice(EA,1),oA=null}}}function pA(fA){if(!isPlainObject$1(fA))throw new Error(formatProdErrorMessage(7));if(typeof fA.type>"u")throw new Error(formatProdErrorMessage(8));if(lA)throw new Error(formatProdErrorMessage(9));try{lA=!0,nA=eA(nA,fA)}finally{lA=!1}for(var wA=oA=iA,BA=0;BA"u")throw new Error(formatProdErrorMessage(12));if(typeof tA(void 0,{type:ActionTypes.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(formatProdErrorMessage(13))})}function combineReducers($){for(var rA=Object.keys($),tA={},AA=0;AA"u")throw aA&&aA.type,new Error(formatProdErrorMessage(14));cA[uA]=wA,sA=sA||wA!==fA}return sA=sA||nA.length!==Object.keys(lA).length,sA?cA:lA}}function compose(){for(var $=arguments.length,rA=new Array($),tA=0;tA<$;tA++)rA[tA]=arguments[tA];return rA.length===0?function(AA){return AA}:rA.length===1?rA[0]:rA.reduce(function(AA,eA){return function(){return AA(eA.apply(void 0,arguments))}})}function applyMiddleware(){for(var $=arguments.length,rA=new Array($),tA=0;tA<$;tA++)rA[tA]=arguments[tA];return function(AA){return function(){var eA=AA.apply(void 0,arguments),nA=function(){throw new Error(formatProdErrorMessage(15))},oA={getState:eA.getState,dispatch:function(){return nA.apply(void 0,arguments)}},iA=rA.map(function(lA){return lA(oA)});return nA=compose.apply(void 0,iA)(eA.dispatch),_objectSpread2$3(_objectSpread2$3({},eA),{},{dispatch:nA})}}}function createThunkMiddleware($){var rA=function(AA){var eA=AA.dispatch,nA=AA.getState;return function(oA){return function(iA){return typeof iA=="function"?iA(eA,nA,$):oA(iA)}}};return rA}var thunk=createThunkMiddleware();thunk.withExtraArgument=createThunkMiddleware;const thunkMiddleware=thunk;var __extends=globalThis&&globalThis.__extends||function(){var $=function(rA,tA){return $=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(AA,eA){AA.__proto__=eA}||function(AA,eA){for(var nA in eA)Object.prototype.hasOwnProperty.call(eA,nA)&&(AA[nA]=eA[nA])},$(rA,tA)};return function(rA,tA){if(typeof tA!="function"&&tA!==null)throw new TypeError("Class extends value "+String(tA)+" is not a constructor or null");$(rA,tA);function AA(){this.constructor=rA}rA.prototype=tA===null?Object.create(tA):(AA.prototype=tA.prototype,new AA)}}(),__generator=globalThis&&globalThis.__generator||function($,rA){var tA={label:0,sent:function(){if(nA[0]&1)throw nA[1];return nA[1]},trys:[],ops:[]},AA,eA,nA,oA;return oA={next:iA(0),throw:iA(1),return:iA(2)},typeof Symbol=="function"&&(oA[Symbol.iterator]=function(){return this}),oA;function iA(aA){return function(sA){return lA([aA,sA])}}function lA(aA){if(AA)throw new TypeError("Generator is already executing.");for(;tA;)try{if(AA=1,eA&&(nA=aA[0]&2?eA.return:aA[0]?eA.throw||((nA=eA.return)&&nA.call(eA),0):eA.next)&&!(nA=nA.call(eA,aA[1])).done)return nA;switch(eA=0,nA&&(aA=[aA[0]&2,nA.value]),aA[0]){case 0:case 1:nA=aA;break;case 4:return tA.label++,{value:aA[1],done:!1};case 5:tA.label++,eA=aA[1],aA=[0];continue;case 7:aA=tA.ops.pop(),tA.trys.pop();continue;default:if(nA=tA.trys,!(nA=nA.length>0&&nA[nA.length-1])&&(aA[0]===6||aA[0]===2)){tA=0;continue}if(aA[0]===3&&(!nA||aA[1]>nA[0]&&aA[1]0)for(var QA=uA.getState(),dA=Array.from(tA.values()),yA=0,hA=dA;yA!tA.includes(nA)),eA=Object.keys(rA).filter(nA=>!tA.includes(nA));if(!sameArray(AA,eA))return!1;for(let nA of AA)if($[nA]!==rA[nA])return!1;return!0}function nodesAreSiblings($,rA){return nodesShareImmediateParent($,rA)&&$.at(-1)!==rA.at(-1)}function nodesShareImmediateParent($,rA){const tA=$.length,AA=rA.length;if(tA!==AA)return!1;const eA=tA-1;return sameArray($.slice(0,eA),rA.slice(0,eA))}function removeNodeMutating($,{path:rA}){const tA=separateIntoParentAndChildPaths(rA),AA=getNode($,tA.parent_path);if(tA.child_location==="namedArgs")if(AA.namedArgs[tA.child_path])delete AA.namedArgs[tA.child_path];else throw new Error("Trying to remove an argument that doesn't exist");else if(tA.child_location==="children"){if(!("children"in AA)||AA.children===void 0||tA.child_path<0||tA.child_path>=AA.children.length)throw new Error("Trying to remove a child that doesn't exist");AA.children.splice(tA.child_path,1)}}function moveNodeMutating($,{path:rA,currentPath:tA,node:AA}){const eA=separateIntoParentAndChildPaths(rA),nA=separateIntoParentAndChildPaths(tA),oA=getNode($,eA.parent_path);if(eA.child_location==="children"&&((!("children"in oA)||oA.children===void 0)&&(oA.children=[]),nA.child_location==="children"&&nodesAreSiblings(tA,rA))){oA.children=moveElement(oA.children,nA.child_path,eA.child_path);return}removeNodeMutating($,{path:tA}),addNodeMutating($,{path:rA,node:AA})}function isNodeMove($){return"currentPath"in $&&$.currentPath!==void 0}function placeNodeMutating($,rA){const{path:tA,node:AA}=rA;if(isNodeMove(rA)){moveNodeMutating($,{path:tA,currentPath:rA.currentPath,node:AA});return}addNodeMutating($,{path:tA,node:AA})}function updateNodeMutating($,{path:rA,node:tA}){const AA=getNode($,rA);Object.assign(AA,tA)}function addEditorInfoToUiNode($,rA){return{...$,...rA}}function addEditorInfoById($,rA){return{...node_info_by_id[$],...rA}}const container$i="_container_1og9v_1",styles$j={container:container$i},testingErrorNodeInfo=addEditorInfoToUiNode(testing_error_node,{UiComponent:({namedArgs:$,path:rA,wrapperProps:tA})=>{const{showBoundary:AA}=$7c3c25b3f398a9d6$export$c052f6604b7d51fe();return jsxs("div",{className:styles$j.container,...tA,children:[jsx("h3",{children:"Error Node! I throw errors"}),jsx(Button,{variant:"delete","aria-label":"Throw an error",onClick:()=>{AA(new Error(`Ui Node error: ${$.error_msg}`))},children:"💣"})]})},settingsFormRender:({inputs:$,settings:rA})=>{if(rA.error_msg==="Trigger settings error")throw new Error(`Settings panel render error: ${rA.error_msg}`);return jsxs(Fragment,{children:[jsx("p",{children:'Set the error message to "Trigger settings error" to cause the settings panel to throw an error'}),$.error_msg]})}}),icon$c="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAACXBIWXMAABYlAAAWJQFJUiTwAAAEO0lEQVR4nO3dsYqcVRiH8WeNrkXMDRgLixRWRjSiXoMWG0iUXIGNsii4wRsQTApD0EIvQBCJ2RD0GqIoRjthC4vsHaRxRcbi7MDk28kMgv+c92SfH2zxfbPFmZcnZ06+LWZjNpsh/d+e6L0APZ4MSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqWIJ3svYJ2db/aW3d4Etg5/3gCePby3Mfm96RcFjfj6feAe8CtwE7gFHEx+jyvvnJne6qp8WEucB64AtSaZ8wzwwuHPJWAPuAx813NR64z0UXgC+JQ20OMS1TJngBu0WZzovJaHGmnH+gTY6b2IQuazuNx1FQ8xyo51gaNRHQDXaWesUxw9n3B4b/FnxNdP0d7jdY6erXZosylnhLA2gc8m9/aB14Bt4A7tgPu4uk97j9u097w/ef0abUaljBDWReC5hesD4C3gbpfV9HUXeBP4a+HeaeDtLqtZYYSwtibXX3I8o5r7Dfhqcm+rwzpWGiGsVyfXX3dZRS3TGZzrsooVRvhf4fOT63LniQ7usPywX8YIO9bUkafOqmfEsDQAw1LECGesdX+oPa5Kz8UdSxGGpQjDUsQIZ6xSZ4dCSs/FHUsRhqUIw1LECGes0s9rOio9F3csRRiWIgxLESOcsUqdHQopPRd3LEUYliIMSxEjnLFKP6/pqPRc3LEUYViKMCxFjHDGKnV2KKT0XNyxFGFYijAsRYxwxir9vKaj0nNxx1KEYSnCsBQxwhmr1NmhkNJzccdShGEpwrAUMcIZq/Tzmo5Kz8UdSxGGpQjDUsQIZ6xSZ4dCSs/FHUsRhqWIEcPyK08GMEJYf9Ce2cx/Xu67nBJe58GZ/Nl1NUuMENbvk+tLXVZRy3QGP3dZxQojhLU7uX4XONthHVW8SJvBot0O61hphLC+Be4tXD8NfA+81GU1fZ0FfqDNYG6fNqNSRgjrAPhwcu808CPt+5DPAScf8ZoepZO093gN+In23hd9wINf5VvCCA9Iof2LvAp8tHBvk/YF3NsL96YPDdf9oXa016euUnC3gjF2rLmPgc97L6KQL2gzKWmksP4B3gcuAHud19LTHnAReI82k5JG+ShcdAO4TRvueeAV2rnjqZ6LCvqbdkD/BbhJ++gr//XFG7PZuo9x6b8b6aNQAzEsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliL+BXaHdHGUC5uqAAAAAElFTkSuQmCC";function Portal({children:$,el:rA="div"}){const[tA]=reactExports.useState(document.createElement(rA));return reactExports.useEffect(()=>(document.body.appendChild(tA),()=>{document.body.removeChild(tA)}),[tA]),reactDomExports.createPortal($,tA)}const PROPERTIES_PANEL_WIDTH_PX=236,ELEMENTS_PALETTE_WIDTH_PX=174,HEADER_HEIGHT_PX=31,sizes_inline_styles={"--elements-palette-width":`${ELEMENTS_PALETTE_WIDTH_PX}px`,"--header-height":`${HEADER_HEIGHT_PX}px`,"--properties-panel-width":`${PROPERTIES_PANEL_WIDTH_PX}px`},container$h="_container_1m3vw_1",full_screen_mode="_full_screen_mode_1m3vw_14",full_screen_button_container="_full_screen_button_container_1m3vw_26",card_holder="_card_holder_1m3vw_70",card_contents_holder="_card_contents_holder_1m3vw_77",styles$i={container:container$h,full_screen_mode,full_screen_button_container,card_holder,card_contents_holder},BslibCardContainer=React.forwardRef(({children:$,style:rA,card_args:{full_screen:tA=!1},...AA},eA)=>{const[nA,oA]=React.useState(!1),iA=()=>oA(aA=>!aA),lA=jsxs("div",{style:sizes_inline_styles,className:mergeClasses("card",styles$i.container,nA?styles$i.full_screen_mode:null),children:[tA?jsx(FullScreenButton,{isFullScreen:nA,onClick:iA}):null,$]});return nA?jsx(Portal,{children:lA}):jsx("div",{ref:eA,style:rA,className:styles$i.card_holder,...AA,children:lA})});function FullScreenButton({isFullScreen:$,onClick:rA}){return jsx("div",{className:styles$i.full_screen_button_container,"data-is-full-screen":$,children:jsx(PopoverButton,{popoverContent:$?"Reset full screen":"Expand to full screen",placement:"left",onClick:tA=>{tA.preventDefault(),rA()},variant:$?"regular":"icon",children:$?"Close":jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16","aria-hidden":"true",role:"img",children:jsx("path",{"fill-rule":"evenodd",d:"M5.828 10.172a.5.5 0 0 0-.707 0l-4.096 4.096V11.5a.5.5 0 0 0-1 0v3.975a.5.5 0 0 0 .5.5H4.5a.5.5 0 0 0 0-1H1.732l4.096-4.096a.5.5 0 0 0 0-.707zm4.344 0a.5.5 0 0 1 .707 0l4.096 4.096V11.5a.5.5 0 1 1 1 0v3.975a.5.5 0 0 1-.5.5H11.5a.5.5 0 0 1 0-1h2.768l-4.096-4.096a.5.5 0 0 1 0-.707zm0-4.344a.5.5 0 0 0 .707 0l4.096-4.096V4.5a.5.5 0 1 0 1 0V.525a.5.5 0 0 0-.5-.5H11.5a.5.5 0 0 0 0 1h2.768l-4.096 4.096a.5.5 0 0 0 0 .707zm-4.344 0a.5.5 0 0 1-.707 0L1.025 1.732V4.5a.5.5 0 0 1-1 0V.525a.5.5 0 0 1 .5-.5H4.5a.5.5 0 0 1 0 1H1.732l4.096 4.096a.5.5 0 0 1 0 .707z"})})})})}function sum_booleans(...$){let rA=0;for(const tA of $)tA&&(rA+=1);return rA}function isParentNode($){return"children"in $||containerNodes.has($.id)}function generateCodeChunk($,rA="multi"){const tA=rA==="single"?"`":"\n```\n";return`${tA}${$}${tA}`}function singleLineCodeChunk($){return generateCodeChunk($,"single")}function multiLineCodeChunk($){return generateCodeChunk($,"multi")}function generateSerializedStateForError($){switch($.app_info.mode){case"MAIN":{const rA=JSON.stringify($.app_info.ui_tree,null,2),tA=($.selected_path??[]).join(" > ")??"null";return collapseText(`## Ui-Tree at error: ${multiLineCodeChunk(rA)}`,`__Selection path:__ ${singleLineCodeChunk(tA)}`)}case"TEMPLATE_CHOOSER":{const rA=JSON.stringify($.app_info.options,null,2);return collapseText("## Template chooser options at error:",`${multiLineCodeChunk(rA)}`)}default:{const rA=JSON.stringify($.app_info,null,2);return`## App state at error: ${multiLineCodeChunk(rA)}`}}}function generateUiNodeGithubErrorLink($){const{node:rA,path:tA,app_state:AA}=$;return generateGhIssueURL({title:`Error rendering ${rA.id}`,body:collapseText(`This is what I was going when this error happened... @@ -172,7 +172,7 @@ Please read the updated README.md at https://github.com/SortableJS/react-sortabl need to be unique.`:$.match(/^[^a-zA-Z]/g)?"Valid item names need to start with a character.":$.match(/\s/g)?"Spaces not allowed in grid area names":$.match(/[^\w]/g)?"Only letters and numbers allowed in area names":null}function useUpdateNamedArgs($){const rA=useDispatch();return React.useCallback(AA=>{rA(UPDATE_NODE({path:$,node:{namedArgs:AA}}))},[rA,$])}function ensureProperBoxedGridLayoutArgs({layout:$,row_sizes:rA,col_sizes:tA,gap_size:AA}){return $=ensureArray$1($),rA=ensureArray$1(rA),tA=ensureArray$1(tA),{layout:$,row_sizes:rA,col_sizes:tA,gap_size:AA}}function addItem($,{name:rA,...tA}){const{rowStart:AA,colStart:eA}=tA,nA="rowEnd"in tA?tA.rowEnd:AA+tA.rowSpan-1,oA="colEnd"in tA?tA.colEnd:eA+tA.colSpan-1,iA=collectionClone($.areas);for(let lA=0;lA=AA-1&&lA=eA-1&&sA{for(let eA of tA)removeItemMutating(AA,eA)})}function removeItem($,rA){return removeItems($,rA)}function renameItem($,rA,tA){return fn($,({areas:AA})=>{const{numRows:eA,numCols:nA}=matrixDimensions(AA);for(let oA=0;oA{const nA=tA==="rows"?"row_sizes":"col_sizes";eA[nA][rA-1]=AA})}function swapItems($,{item_a:rA,item_b:tA}){return rA===tA?$:fn($,AA=>{const{n_rows:eA,n_cols:nA}=getLayoutDimensions(AA.areas);let oA=!1,iA=!1;for(let lA=0;lA{const eA=ensureProperBoxedGridLayoutArgs($),nA=usePlaceNode(),{uniqueAreas:oA,...iA}=parseGridLayoutArgs(eA),{areas:lA}=iA,aA=useUpdateNamedArgs(tA),sA=React.useMemo(()=>areasToItemLocations(lA),[lA]),[cA,pA]=React.useState(null),uA=QA=>{const{node:dA,currentPath:yA,pos:hA}=QA,vA=yA!==void 0,CA=isValidGridItem(dA);if(vA&&CA&&"area"in dA.namedArgs&&dA.namedArgs.area){const xA=dA.namedArgs.area;gA({type:"MOVE_ITEM",name:xA,pos:hA});return}pA(QA)},gA=QA=>{aA(gridLayoutReducer(eA,QA))},fA=React.useCallback(QA=>{aA(convertTemplatedLayoutToGridlayoutArgs(QA))},[aA]),wA=oA.map(QA=>jsx(AreaOverlay,{area:QA,areas:lA,gridLocation:sA.get(QA),onNewPos:dA=>gA({type:"MOVE_ITEM",name:QA,pos:dA})},QA)),BA={"--gap":eA.gap_size,"--row-gutter":"150px","--col-gutter":"100px","--pad":"8px"},EA=(QA,{node:dA,currentPath:yA,pos:hA})=>{nA({path:makeChildPath(tA,(rA==null?void 0:rA.length)??0),node:makeGridFriendlyNode(dA,QA),currentPath:yA}),gA({type:"ADD_ITEM",name:QA,pos:hA}),pA(null)};return jsxs(LayoutDispatchContext.Provider,{value:gA,children:[jsx("div",{style:BA,className:classes$h.container,...AA,draggable:!1,onDragStart:()=>{},children:jsxs(EditableGridContainer,{...iA,onNewLayout:fA,children:[findEmptyCells(lA).map(({row:QA,col:dA})=>{const yA=QA+"-"+dA;return jsx(DropWatcherPanel,{parentPath:tA,parentNodeType:"grid_container","data-cell-pos":yA,minHeightOnAvailable:"100%",visibleWhenEmpty:!0,style:{gridRow:QA,gridColumn:dA,margin:"2px"},dropHandlerArgs:{getCanAcceptDrop:hA=>!0,onDrop:hA=>{uA({...hA,pos:{rowStart:QA,rowEnd:QA,colStart:dA,colEnd:dA}})}}},yA)}),rA==null?void 0:rA.map((QA,dA)=>jsx(UiNode,{path:[...tA,dA],node:QA},tA.join(".")+dA)),wA]})}),cA?jsx(NameNewPanelModal,{info:cA,onCancel:()=>pA(null),onDone:QA=>EA(QA,cA),existingAreaNames:oA}):null]})};function areasOfChildren($=[]){let rA=[];return $.forEach(tA=>{if("area"in tA.namedArgs&&tA.namedArgs.area!==void 0){const AA=tA.namedArgs.area;rA.push(AA)}}),rA}function updateGridLayoutAreaOnItemAreaChange($,{path:rA,node:tA}){const AA=getGridContainerAndItemNodes({tree:$,pathToGridItem:rA});if(AA===null)return;const{gridPageNode:eA}=AA,nA=getChildIndex(rA);if(typeof nA!="number")throw new Error("Grid item node should always be a child of the parent");const oA=areasOfChildren(eA.children)[nA],iA=tA.namedArgs.area??emptyCell;oA!==iA&&(eA.namedArgs=gridLayoutReducer(eA.namedArgs,{type:"RENAME_ITEM",oldName:oA,newName:iA}))}function removeDeletedGridAreaFromLayout($,{path:rA}){const tA=getGridContainerAndItemNodes({tree:$,pathToGridItem:rA});if(tA===null)return;const{gridPageNode:AA,gridItemNode:eA}=tA,nA=eA.namedArgs.area;if(!nA){console.error("Deleted node appears to not have a grid area, ignoring");return}AA.namedArgs=gridLayoutReducer(AA.namedArgs,{type:"REMOVE_ITEM",name:nA})}function getGridContainerAndItemNodes({tree:$,pathToGridItem:rA}){const tA=separateIntoParentAndChildPaths(rA);if(tA.child_location==="namedArgs"||tA.child_location==="missing")return null;const AA=getNode($,tA.parent_path);if(!isValidGridContainer(AA))return null;const eA=AA.children[tA.child_path];return"area"in eA.namedArgs?{gridPageNode:AA,gridItemNode:eA}:null}const gridlayoutGridContainerInfo=addEditorInfoToUiNode(grid_container,{iconSrc:gridIcon,UiComponent:({namedArgs:$,children:rA,path:tA,wrapperProps:AA})=>jsx(GridContainerElement,{namedArgs:$,children:rA,path:tA,wrapperProps:AA}),stateUpdateSubscribers:{UPDATE_NODE:updateGridLayoutAreaOnItemAreaChange,DELETE_NODE:removeDeletedGridAreaFromLayout}}),gridlayoutGridPageInfo=addEditorInfoToUiNode(grid_page,{UiComponent:$=>jsx(GridContainerElement,{...$}),stateUpdateSubscribers:{UPDATE_NODE:updateGridLayoutAreaOnItemAreaChange,DELETE_NODE:removeDeletedGridAreaFromLayout}}),styles$a="",NUM_BARS=11,bar_values=normalize(seqArray(NUM_BARS).map($=>Math.random())).map($=>`${Math.round($*100)}%`);function PlotPlaceholder({title:$=jsx("span",{children:"My Plot"})}){return jsx("div",{className:"PlotPlaceholder",children:jsxs("div",{className:"plot",children:[jsx("div",{className:"title",children:$}),jsx("div",{className:"plot-body",children:bar_values.map((rA,tA)=>jsx("div",{className:"bar",style:{"--value":rA}},`${tA}-${rA}`))})]})})}function normalize($){let eA=-1/0,nA=1/0;for(let lA of $)eA=Math.max(eA,lA),nA=Math.min(nA,lA);const oA=eA-nA;return $.map(lA=>((lA-nA)/oA+.1)*.85)}const styles$9="",plotlyPlotlyOutputInfo=addEditorInfoToUiNode(output_plotly,{iconSrc:plotIcon,UiComponent:({namedArgs:{outputId:$,width:rA="100%",height:tA="400px"},wrapperProps:AA})=>jsx("div",{className:"plotlyPlotlyOutput",style:{height:tA,width:rA},...AA,children:jsx(PlotPlaceholder,{title:jsxs("span",{className:"title-bar",children:[jsx(InputOutputTitle,{type:"output",name:$}),jsx("span",{className:"plotly-name",children:"Plotly"})]})})})}),buttonIcon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAACXBIWXMAABYlAAAWJQFJUiTwAAADKUlEQVR4nO3cMY5VVQDG8Q8QaFyACiWFvVqwiyERjHuQAoohbsAEKLTARRiCYtgGxsR6So0LgAYIeRR3bmKGZ0Hi5zl3+P2S17xM8eXkP/e9meKc2e12gf/a2dEDOJ2ERYWwqBAWFcKiQlhUCIsKYVEhLCqERYWwqBAWFcKiQlhUCIsKYVEhLCqERYWwqBAWFcKiQlhUCIsKYVEhLCqERYWwqBAWFcKiQlhUCIsKYVEhLCqERYWwqBAWFcKiQlhUCIsKYVEhLCqERYWwqBAWFcKiQlhUCIsKYVEhLCqERYWwqBAWFcKiQlhUfDB6wD8d/nS07+0LSQ6OX1eTfHL83vvmeZI/k/ye5JckvyZ5efKH7n115X+etd9UYe1xLcm9JHOc1lgfJvn0+PV1kqMkd5L8PHLUv5n1o/BckrtZDk1U+11J8ijLOZ0bvOUtsz6xvktyOHrERqzndGfoihNmfGJ9GVG9q8Ms5zaN2cK6kOT70SM26odM9EfNbGFdT3J59IiNupTkxugRq9nCOhg9YOMORg9YzRbWF6MHbNznowesZgvro9EDNu7j0QNWs4V1cfSAjfPlndNNWFQIiwphUSEsKoRFhbCoEBYVwqJCWFQIiwphUSEsKoRFhbCoEBYVwqJCWFQIi4rZwno2esDGvXX7zCizhfX36AEbN835zRbWH6MHbNzT0QNWs4X1ePSAjXs8esBqtrAeZrm1jnf3V5bzm8JsYb1Mcnv0iI26leTF6BGr2cJKlt+6+6NHbMz9TPS0SuYMK0m+TfJg9IiN+DHLeU1l1rBeJ7mZ5Za6vVcpk6Ms94l9k+W8pjLrHaSrR0meZDnAa0k+y3LB2PmRowZ5leUL+m9ZruN+mIn+IXrSmd1uN3oDp9CsH4VsnLCoEBYVwqJCWFQIiwphUSEsKoRFhbCoEBYVwqJCWFQIiwphUSEsKoRFhbCoEBYVwqJCWFQIiwphUSEsKoRFhbCoEBYVwqJCWFQIiwphUSEsKoRFhbCoEBYVwqJCWFQIiwphUSEsKoRFhbCoEBYVwqJCWFQIiwphUSEsKoRFhbCoEBYVwqJCWFQIi4o3LCE7MROKhbQAAAAASUVORK5CYII=",container$d="_container_tyghz_1",classes$g={container:container$d},shinyActionButtonInfo=addEditorInfoToUiNode(input_action_button,{UiComponent:({namedArgs:$,wrapperProps:rA})=>{const{label:tA="My Action Button",width:AA}=$;return jsx("div",{className:classes$g.container,...rA,children:jsx(Button,{style:AA?{width:AA}:void 0,children:tA})})},iconSrc:buttonIcon}),icon$6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAACXBIWXMAABYlAAAWJQFJUiTwAAAEtklEQVR4nO3cP2zcVADH8V8QA2QrEh2RqCxRiY2OYQplpFvikY0qS0YndK9UvMFSyASjCRMIiUopU7tRtiJUWWEHiW6VYDkGP+sOp07Of37yXd73I0XxucmLh6/8bPfubcxmMwFje2XqA8DlRFiwICxYEBYsCAsWhAULwoIFYcGCsGBBWLAgLFgQFiwICxaEBQvCggVhwYKwYEFYsCAsWBAWLAgLFoQFC8KCBWHBgrBgQViwICxYEBYsCAsWhAULwoIFYcGCsGBBWLAgLFgQFiwICxaEBQvCggVhwYKwYEFYsHh16gOYSlaUbf90JXz18Tx8nZGnSc8h11O0YTVcl7Qn6QNJ7w4c66mkh5LuS/p94Fhri6lQui3pN0n7Gh6Vwhj7YczbI4y3lmI/Y30s6cvGvtbpbAmL0+hGGPsfSV/3HG9txRzWm6qmq9pjSft5mvw6ZNCsKN+T9IWkrbDrvqQfJf01ZNx1E/NUuCfp9bD9RNL20KgkKYyxLemXsOu18LeiEnNY7y9sf5qnyb9jDRzGutPyt6IQ81S4tbD9eMhAWVEeSDoILz/M0+RJY8yts791ucV8xtqsN/I0edF3kKwov5J0L7yso2qOuXnmFy+5mMMaLJypPgkvd+uoQFi9ZUV5TfMz1WGeJidTHs+qIaz+vg3fj/M0+WzSI1lBhNVDmAJvqHqQejjx4awkwuooTIH1HeBhnianUx7PqiKs7g5U/bfNSZ4mR1MfzKoirA6yoryh+V0gU+A5CKub+i7wiEcL54v5yXurcHF+T9Ud327Yd1PSzfAj3AVegDNWQ1aUVzQ/M+1kRVk/VtgJ34+4YL8YYTXkafJc0u7Crp3GE3Yu2JdAWC+Rp8mx/n9xXp/BTri2Wg5htQhP048bu5uv0SLmsP6uN7KifKPlZw41f5vyaZfnVuFardb3rc5rK+a7wkeSboXtjyR90/yBcJHeFt1Fbi1sP+o5xtqK+Yz1w8L23awo3xpr4DDW3YVd34819rrYmM1mUx/DJMIHVk8lvR12/akqhp8l9X3j36aqzybekXQ17PtD0jU+sBqXPUk/he2rkj43/Y3oxDwVStIDVWeYZ4axn4WxHxjGXnmxn7Gkaup7R9WT9W1Vn6jp+x71F6ou1B9K+m6Uo1tThDV3LJ5TjSb2qRAmhAULwoIFYcGCi/ezLCv6xYawKqzoNzKmQlb0s4j9jMWKfiYxh8WKfkYxT4Ws6GcUc1is6GcU81TIin5GMZ+xWNHPKOawBmNFv3aE1RMr+p2PsPpjRb9zEFYPrOh3McLqiBX9lkNY3bGi3xIIqwNW9FseYXXDin5LivnJeytW9BuOM1YDK/qNg7AaWNFvHIT1EqzoNxxhtWBFv2FiDosV/YxivitkRT+jmM9YrOhnxIp+rOhnEfNUKLGin03MU6HEin42sZ+xJFb0s4j2GgtesU+FMCEsWBAWLAgLFoQFC8KCBWHBgrBgQViwICxYEBYsCAsWhAULwoIFYcGCsGBBWLAgLFgQFiwICxaEBQvCggVhwYKwYEFYsCAsWBAWLAgLFoQFC8KCBWHBgrBgQViwICxYEBYsCAsWhAULwoIFYcGCsGBBWLAgLFgQFiz+AwEFRrQUQeonAAAAAElFTkSuQmCC",container$c="_container_162lp_1",checkbox="_checkbox_162lp_14",classes$f={container:container$c,checkbox},shinyCheckboxGroupInputInfo=addEditorInfoToUiNode(input_checkbox_group,{iconSrc:icon$6,UiComponent:({namedArgs:$,wrapperProps:rA})=>{const tA=$.choices;return jsxs("div",{className:classes$f.container,style:{width:$.width},...rA,children:[jsx("label",{children:$.label}),jsx("div",{children:Object.keys(tA).map((AA,eA)=>jsx("div",{children:jsxs("label",{className:classes$f.checkbox,children:[jsx("input",{type:"checkbox",name:tA[AA],value:tA[AA],defaultChecked:eA===0}),jsx("span",{children:AA})]})},AA))})]})}}),icon$5="data:image/png;base64,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",container$b="_container_1x0tz_1",label="_label_1x0tz_10",classes$e={container:container$b,label},ShinyCheckboxInput=({namedArgs:$,wrapperProps:rA})=>{const tA=$.width??"auto",AA={...$},[eA,nA]=React.useState(AA.value);return React.useEffect(()=>{nA(AA.value)},[AA.value]),jsx("div",{className:classes$e.container+" shiny::checkbox",style:{width:tA},...rA,children:jsxs("label",{htmlFor:AA.inputId,children:[jsx("input",{id:AA.inputId,type:"checkbox",checked:eA,onChange:oA=>nA(oA.target.checked)}),jsx("span",{className:classes$e.label,children:AA.label})]})})},shinyCheckboxInputInfo=addEditorInfoToUiNode(input_checkbox,{iconSrc:icon$5,UiComponent:ShinyCheckboxInput});function RenderUiChildren({children:$,parentPath:rA}){return jsx(Fragment,{children:$.map((tA,AA)=>{const eA=makeChildPath(rA,AA);return jsx(UiNode,{path:eA,node:tA},pathToString(eA))})})}const noTabsMessage="_noTabsMessage_1k5yd_1",container$a="_container_1k5yd_5",dropWatcherPanel="_dropWatcherPanel_1k5yd_11",classes$d={noTabsMessage,container:container$a,dropWatcherPanel},shinyLayoutSidebarInfo=addEditorInfoById("layout_sidebar",{UiComponent:({namedArgs:{position:$,sidebar:rA,main:tA},children:AA,path:eA,wrapperProps:nA})=>jsxs("div",{className:classes$d.container,...nA,children:[jsx(UiNode,{path:makeChildPath(eA,"sidebar"),node:rA}),jsx(UiNode,{path:makeChildPath(eA,"main"),node:tA})]})}),shinyPanelMainInfo=addEditorInfoById("panel_main",{UiComponent:({namedArgs:$,children:rA,path:tA,wrapperProps:AA})=>{const eA=rA&&rA.length>0;return jsx("div",{...AA,children:eA?jsx(RenderUiChildren,{children:rA,parentPath:tA}):jsx(DropWatcherPanel,{className:classes$d.dropWatcherPanel,child_loc:0,parentPath:tA,minHeightOnAvailable:"100%",messageOnHover:"Add to main panel",parentNodeType:"layout_sidebar"})})}}),icon$4="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAEN0lEQVR4nO3b4W3aQACG4S9VF2AFxAZ0hGQEygbJBk5HSNgg2cBhhLICG1iskBHoD18qxzljm/CFcPc+UqUWyskSr+7OB1zt93sBp/bj3BeANBEWLAgLFoQFC8KCBWHBgrBgQViwICxYEBYsCAsWhAULwoIFYcGCsGBBWLAgLFgQFiwICxaEBQvCggVhwYKwYEFYsCAsWBAWLAgLFoQFC8KCBWHBgrBgQViwICxYEBYsCAsWhAULwoIFYcGCsGBBWLAgLFgQFiwICxaEBQvCggVhwYKwYEFYsCAsWBAWLAgLFoQFC8KCBWHBgrBgQViwICxYEBYsCAsWhAULwvpiRVlNzn0NX+Fqv9+f+xqyUJTVi6RF+OdG0u/VcvZ6xkuy+nnuC3Aoyupe0rWkqaSdpPVqOXseOcZC0m1jjK2kx2NiCNezaDx0Lele0p+xY12K5MIqyupB9Zv2ZirpuiiryWo5exw4xkLSS3uM8OfXEZc1H/hYMpLaYxVlNdX7qJoewvNDPHU8Pi/K6nr8lSmLfVVTUmGpnlkOWfQ8r6KsbnU4hKRnmlNJLaw+twP+T2986JdbWNOwf4oKS+UxSx1acgtLOjwjDZnRMECWYR3YxBPWieQYlhSZtcISmd3dm0sOYW1UH3A2xWam2BI56NwLH+UQliS1T92nzfOosDS2w3qWlOxHLm7Jnbx3WEt6aD22UD2bvf099ppBZ1ZFWc1Vz4ITSc+r5WzT8xLrON9BFjPWajnbqQ6l6bbxTYP20rgb+qaG2e5vGGMh6W84ZB0lRNUe52KPPrIIK2iHJdVxLfTxxH7MB9axTf/TmLgaUbXHudjD2mzCWi1na8U38bE3b9Q3IToMiutAVNIF7/GyCSv4sIlXZNM+8qsxhzb5T2E528aeHBDVKQI/i9zDioktmZ1ChDfqjutF8XAmqr9F0RXVTdgbXqSswgoRHIpr8Ka9Ne5W3XFNFD83myt+1/kWVXSWuxRZhRUcmpGOPhDtiWuoJKKSMgwrzEixJeZVI5fByNifiSuZqKQMwwpiy+H6FD9uODKupKKS0gsr9mbGHovdyQ1dBnuDGRlXclFJiYUV3pzmcvaqSDBhZrpT/ZHOVtJdxx3YWu/jaI/fdy19cSUZlZTo7wobH4XsPnvLHj72mUv/92djX991VpVsVFKiYX03kbiSjkoirC8TZr63mXST8q+gJcKCSVKbd3wfhAULwoIFYcGCsGBBWLAgLFgQFiwICxaEBQvCggVhwYKwYEFYsCAsWBAWLAgLFoQFC8KCBWHBgrBgQViwICxYEBYsCAsWhAULwoIFYcGCsGBBWLAgLFgQFiwICxaEBQvCggVhwYKwYEFYsCAsWBAWLAgLFoQFC8KCBWHBgrBgQViwICxYEBYsCAsWhAULwoIFYcGCsGBBWLAgLFgQFiwICxaEBQvCggVhweIfk64GNTlKV28AAAAASUVORK5CYII=",markdownNodeInfo=addEditorInfoToUiNode(markdown_node,{iconSrc:icon$4,UiComponent:({namedArgs:{mds:$},wrapperProps:rA})=>jsx("div",{...rA,children:jsx(ReactMarkdown,{children:$})})});function TabPanel({title:$,children:rA,...tA}){return jsx("div",{className:"h-full bg-rstudio-white","data-tab-id":$,"aria-label":`tab panel ${$}`,...tA,children:rA})}function samePath($,rA){return!$||!rA?!1:sameArray($,rA)}const can_accept_drop="_can_accept_drop_19029_13",container$9="_container_3ue0t_3",header$1="_header_3ue0t_23",tabContents="_tabContents_3ue0t_32",pageTitle="_pageTitle_3ue0t_38",tabHolder="_tabHolder_3ue0t_51",tab="_tab_3ue0t_32",newTabDropDetector="_newTabDropDetector_3ue0t_111",addTabButton="_addTabButton_3ue0t_116",tabDropDetector="_tabDropDetector_3ue0t_124",classes$c={can_accept_drop,container:container$9,header:header$1,tabContents,pageTitle,tabHolder,tab,newTabDropDetector,addTabButton,tabDropDetector},dummyNode={id:"unknownUiFunction",namedArgs:{text:"Dummy ui node for app previews"}};function useGetNode($){const rA=useSelector(AA=>AA.app_info);return React.useMemo(()=>isKnownShinyUiNode(rA)?getNode(rA,$):dummyNode,[$,rA])}function Tab({name:$,isActive:rA,index:tA,parentPath:AA}){const eA=makeChildPath(AA,tA),nA=useCurrentSelection(),oA=useGetNode(eA),iA=samePath(eA,nA);return jsx(NodeWrapper,{className:classes$c.tab,"data-active-tab":rA,"data-selected-tab":iA,wrapperProps:{node:oA,path:eA,canDrag:!0},style:{order:tA},"aria-label":rA?`Active tab ${$}`:`Select ${$} tab`,children:$})}const icon$3="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAACXBIWXMAABYlAAAWJQFJUiTwAAADSklEQVR4nO3cv0vUYQDH8c/pmWfpmV1G0uAPjAqiyYqWoK1oDKq5PdqE9qaG/ozAKWjpL4jWoKayrcWtIgqiuAYd9LQo8u3zfO39ghvux/C54y3PV9Br9fv9SLttqPQA7U+GJYRhCWFYQhiWEIYlhGEJYVhCGJYQhiWEYQlhWEIYlhCGJYRhCWFYQhiWEIYlhGEJYVhCGJYQhiWEYQlhWEIYlhCGJYRhCWFYQhiWEIYlhGEJYVhCGJYQhiWEYQlhWEIYlhCGJYRhCWFYQhiWEIYlhGEJYVhCGJYQhiWEYQlhWEIYlhCGJYRhCWFYQhiWEIYlRLv0gF9ZXlkdfGg6yf0k15PMJhnd6007+JrkXZInSR4l+bD5yYe3FgtMqkO1YQ1YSvIsydHSQwaMJTm7cbuT5FqSV0UXVaIJR2EvydPUF9WgE1nfOVl6SA2aENa9JDOlR/yhuSR3S4+oQROOwhs7PTjb6+TS4mTmp8cy0RlOe7iFD/n+o5+PX7/n7dqXPH/zMWufvu30sttJHuBjKteEsLZdAV85M5Vr53p7PqQ93EpvfCS98ckszXfz+MVaXr//PPiy//eKfZMmHIUHNt+ZO9rJ1QJRDWoPtXLzwrF0x7b9bNbw22pxTQhri/ML3fCH3p/pjAzl4kK39IwqNS6s2V6n9IQtTh4/WHpClRoX1pHxkdITtpieqGtPLRoXVnuoloNw3ehI4z7CPeGn8o9qC70WhiWEYQlhWEIYlhCGJYRhCWFYQhiWEIYlhGEJYVhCGJYQhiWEYQlhWEIYlhCGJYRhCVHFP6zu8M0y+0Lp91Xy226qCCtJv/SAXVbL+yn2B/kehUIYlhCGJUQt11i/uxaYunzqcPf0zKGFjfuf9mLQ39i4SP6xvLL6svCUarT6/VquM7WfeBQKYVhCGJYQhiWEYQlhWEIYlhCGJYRhCWFYQhiWEIYlhGEJYVhCGJYQhiWEYQlhWEIYlhCGJYRhCWFYQhiWEIYlhGEJYVhCGJYQhiWEYQlhWEIYlhCGJYRhCWFYQhiWEIYlhGEJYVhCGJYQhiWEYQlhWEIYlhCGJYRhCWFYQhiWEIYlhGEJYVhCGJYQhiWEYQlhWEIYlhCGJYRhCWFYQvwEAzs9K42yqRkAAAAASUVORK5CYII=",container$8="_container_fe3r8_1",emptyTabPanelDropDetector="_emptyTabPanelDropDetector_fe3r8_8",classes$b={container:container$8,emptyTabPanelDropDetector},invalidTabPanelContents=["navbarPage","tabPanel","grid_card","grid_card_plot","grid_card_text"],dropFilters$1={rejected:invalidTabPanelContents},shinyTabPanelInfo=addEditorInfoToUiNode(tab_panel,{UiComponent:({namedArgs:$,children:rA,path:tA,wrapperProps:AA})=>{const eA=rA&&rA.length>0;return jsx("div",{className:classes$b.container,...AA,children:eA?jsx(RenderUiChildren,{children:rA,parentPath:tA}):jsx(DropWatcherPanel,{className:classes$b.emptyTabPanelDropDetector,child_loc:0,parentPath:tA,dropFilters:dropFilters$1,parentNodeType:"tabPanel",visibleWhenEmpty:!0})})},iconSrc:icon$3}),dropFilters={rejected:invalidTabPanelContents.filter($=>$!=="tabPanel")},wrap_in_tab_panel=({id:$})=>$!=="tabPanel"?{id:"tabPanel",namedArgs:{title:"Tab Panel"}}:null;function TabDropDetector({index:$,parentPath:rA,children:tA,baseWidth:AA}){return jsx(DropWatcherPanel,{className:classes$c.tabDropDetector,"aria-label":"tab drop detector",parentPath:rA,parentNodeType:"tabPanel",child_loc:$,dropFilters,wrappingNode:wrap_in_tab_panel,messageOnHover:"",style:{"--baseWidth":AA,order:$-1},visibleWhenEmpty:!0,children:tA})}function useActiveTab($,rA=0){const[tA,AA]=React.useState(rA);return React.useEffect(()=>{$<=tA&&AA($-1)},[tA,$]),{activeTab:tA,setActiveTab:nA=>{AA(nA)}}}function useTabSelections({children:$,path:rA}){const tA=getTabNamesFromChildren($),AA=useCurrentSelection(),{activeTab:eA,setActiveTab:nA}=useActiveTab(tA.length),oA=usePlaceNode();return React.useEffect(()=>{const lA=makeChildPath(rA,eA);if(!AA)return;const aA=nodeDepth(lA);if(nodeDepth(AA)>=aA){const pA=AA[nodeDepth(lA)-1];if(typeof pA!="number")return;nA(pA)}},[eA,rA,AA,nA]),{tabNames:tA,add_tab:lA=>{lA.stopPropagation(),oA({path:makeChildPath(rA,tA.length),node:emptyTabPanel})},activeTab:eA}}function Tabset({path:$,title:rA,children:tA,sidebar:AA,className:eA="",...nA}){const{tabNames:oA,activeTab:iA,add_tab:lA}=useTabSelections({children:tA,path:$});return jsxs("div",{className:mergeClasses(eA,classes$c.container),...nA,children:[AA,jsxs("div",{className:classes$c.header,children:[jsx("h1",{className:classes$c.pageTitle,children:rA}),jsxs("div",{className:classes$c.tabHolder,"aria-label":"tabs container",children:[oA.map((aA,sA)=>jsx(Tab,{name:aA,parentPath:$,isActive:sA===iA,index:sA},aA+sA)),seqArray(oA.length).map(aA=>jsx(TabDropDetector,{parentPath:$,index:aA,baseWidth:"10px"},aA)),jsx(TabDropDetector,{parentPath:$,index:oA.length,baseWidth:"25px",children:jsx(PlusButton,{className:classes$c.addTabButton,label:"Add new tab",onClick:lA})})]})]}),jsx("div",{className:classes$c.tabContents,children:selectActiveTab(tA,iA)})]})}const emptyTabPanel={id:"tabPanel",namedArgs:{title:"Empty Tab"},children:[]};function getTabNamesFromChildren($){let rA=[];return React.Children.forEach($,tA=>{if(!React.isValidElement(tA))return null;const AA=tA.props.title;typeof AA=="string"&&rA.push(AA)}),rA}function selectActiveTab($,rA){return React.Children.map($,(tA,AA)=>React.isValidElement(tA)&&typeof tA.props.title=="string"?jsx("div",{className:classes$c.tabContents,"data-active-tab":AA===rA,children:tA}):tA)}function PlusButton({label:$,onClick:rA,className:tA}){return jsx(PopoverButton,{variant:["icon","transparent"],className:tA,placement:"bottom-start","aria-label":$,popoverContent:$,onClick:rA,children:jsx(FaPlus,{style:{display:"block"}})})}const useLanguageMode=()=>{const $=useSelector(rA=>rA.app_info);return $.mode==="MAIN"?$.language:"R"};function SidebarDropWatcherPanel({path:$}){return jsx(DropWatcherPanel,{className:classes$u.sidebarDropWatcherPanel,child_loc:"sidebar",parentPath:$,wrappingNode:{id:"sidebar",namedArgs:{title:"Sidebar Title"}},minHeightOnAvailable:"100%",messageOnHover:"Add a sidebar",parentNodeType:"sidebar"})}const shinyNavbarPageInfo=addEditorInfoById("navbarPage",{UiComponent:({namedArgs:{title:$,sidebar:rA},children:tA,path:AA,wrapperProps:eA})=>{const nA=useLanguageMode(),iA=((tA==null?void 0:tA.length)??0)>0;return jsx(NodeWrapper,{className:"h-full p-[1px] bg-light-grey",wrapperProps:eA,children:jsx(Tabset,{path:AA,title:$,className:"",sidebar:nA==="PYTHON"?void 0:rA?jsx(UiNode,{path:makeChildPath(AA,"sidebar"),node:rA}):jsx(SidebarDropWatcherPanel,{path:AA}),children:tA?tA.map((lA,aA)=>{const sA=makeChildPath(AA,aA),cA=getTabPanelTitle(lA)??"unknown tab";return jsx(TabPanel,{title:cA,children:jsx(UiNode,{path:sA,node:lA})},pathToString(sA))}):jsx(EmptyNavbarPageMessage,{hasChildren:iA})})})}});function EmptyNavbarPageMessage({hasChildren:$}){return $?null:jsx("div",{className:"p-1",children:jsx("span",{children:"Empty page. Drag elements or Tab Panel on to add content"})})}const icon$2="data:image/png;base64,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";function LabeledInputCategory({label:$,children:rA}){return jsxs("div",{className:"LabeledInputCategory",children:[jsx("div",{className:"divider-line",children:jsx("label",{children:$})}),jsx("section",{className:"grouped-inputs",children:rA}),jsx("div",{className:"divider-line"})]})}const container$7="_container_yicbr_1",classes$a={container:container$7},ShinyNumericInput=({namedArgs:$,wrapperProps:rA})=>{const tA={...$},[AA,eA]=React.useState(tA.value);return React.useEffect(()=>{eA(tA.value)},[tA.value]),jsxs("div",{className:mergeClasses(classes$a.container,"numericInput"),style:{width:tA.width??"200px",maxWidth:tA.width?void 0:"100%"},...rA,children:[jsx("span",{children:tA.label}),jsx(NumberInputSimple,{type:"number",value:AA,onChange:eA,min:tA.min,max:tA.max,step:tA.step})]})},shinyNumericInputInfo=addEditorInfoToUiNode(input_numeric,{iconSrc:icon$2,UiComponent:ShinyNumericInput,settingsFormRender:({inputs:$})=>jsxs(Fragment,{children:[$.inputId,$.label,jsxs(LabeledInputCategory,{label:"Values",children:[$.min,$.max,$.value,$.step]}),$.width]})}),shinyPlotOutputInfo=addEditorInfoToUiNode(output_plot,{iconSrc:plotIcon,UiComponent:({namedArgs:{outputId:$,width:rA,height:tA="400px"},wrapperProps:AA})=>jsx("div",{className:classes$o.container,style:{height:tA,width:rA},...AA,children:jsx(StaticPlotPlaceholder,{outputId:$})})}),icon$1="data:image/png;base64,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",ShinyRadioButtons=({namedArgs:$,wrapperProps:rA})=>{const tA=$.choices,AA=Object.keys(tA),eA=Object.values(tA),[nA,oA]=React.useState(eA[0]);return React.useEffect(()=>{eA.includes(nA)||oA(eA[0])},[nA,eA]),jsxs("div",{className:"p-1",style:{width:$.width},...rA,children:[jsx("label",{children:$.label}),jsx("div",{className:"flex flex-col pt-1",children:eA.map((iA,lA)=>jsxs("label",{className:"flex items-center gap-1",children:[jsx("input",{type:"radio",name:$.inputId,value:iA,onChange:aA=>oA(aA.target.value),checked:iA===nA}),jsx("span",{children:AA[lA]})]},iA))})]})},shinyRadioButtonsInfo=addEditorInfoToUiNode(input_radio_buttons,{UiComponent:ShinyRadioButtons,iconSrc:icon$1}),selectBoxIcon="data:image/png;base64,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",container$6="_container_1e5dd_1",classes$9={container:container$6},shinySelectInputInfo=addEditorInfoToUiNode(input_select,{iconSrc:selectBoxIcon,UiComponent:({namedArgs:$,wrapperProps:rA})=>{const tA=$.choices,AA=$.inputId;return jsxs("div",{className:classes$9.container,...rA,children:[jsx("label",{htmlFor:AA,children:$.label}),jsx("select",{id:AA,children:Object.keys(tA).map((eA,nA)=>jsx("option",{value:tA[eA],children:eA},eA))})]})}}),sliderIcon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAACXBIWXMAABYlAAAWJQFJUiTwAAAES0lEQVR4nO3aP4gcZRyH8eckosWRQ4uAhaYJmCqNJmIpaGWiVl5voykV3QSSwuIscioqCNHu2rWSqIUIsdMiRkEbi2v8A4FYJUfAf7AW72xy6no32Zvvju/u84FhE5J597e5h93Mu7M0Go2QunZH3wNoPhmWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSliX98DJA2Gm7v9lbuAx4BngEeBg8AKcA34AfgS+BD4HPhtt8XWVw9NPeu8meuwdrAPeA54Fbhvwp+vAEea43ngKnAOeBf4fTYj1m0RPwofBC4D7zM5qkkOAG8Cl4DDobnmyqKFdRT4gvJONI0jzfmPdDbRnFqksA4DnwH37nGde4BP8Z1rR4sS1p3AkPJ/py6sAB8062qCpdFo1PcMrbS4wtvJy8DrHY2y3SvAG4F1/6W2K84a37FOABeBLWDU8khERbNu2xmmPbaAi4Ph5vHQa4ioLaw14AJl72m551lmZZnyej8aDDfX+h6mrZrCOg6caX59CtgPLLU4NsJzbbScY9pjP3C6ea4zg+HmifDr6URNYb3UPJ4G1ikfEW08lBnnpofD629RNmdPNb9/Mfx8nagprPEP8PxtnvdA14P8w/3h9cfeax7TIXeiprCm1dUWQ1/rj40v35dm9Hx7UlNYXzWPL9zmede7HmTG64+dbB4vzej59qSmsN5qHs9R9o/aXhX+lBnnpp/D6y8DA8rrhlv/Dv9rtW2QrnHrynARvba+euhs30O0UdM7FsBZ4GnK/VE3ep5lVm5QXu9TtUQFdd6PdaE52rqbctPegcAsv1CuOn8NrP03tX2lU81H4TS2fb+Y+q5wsH3d2n74SbV9FE7rHeDbjtf8Dni74zXnxqKE9QewSrmXvQvXgGebdTXBooQF8D3wOOX+9b24CjzRrKf/sEhhQdlkPQp8PeX53wDHqGSTsk+LFhbAj5R71k8CV1qec4Wy43+McoWpXdS43dCFPylf6m5Qbsd5knIXxEHKbSrXKQFdBj4BPmYGWwrzZK63G9SfRfwo1AwYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNSxF+9/aKLFqf7gQAAAABJRU5ErkJggg==",container$5="_container_1f2js_1",sliderWrapper="_sliderWrapper_1f2js_11",sliderInput="_sliderInput_1f2js_16",classes$8={container:container$5,sliderWrapper,sliderInput},ShinySliderInput=({namedArgs:$,wrapperProps:rA})=>{const tA={...$},{width:AA="200px"}=tA,[eA,nA]=React.useState(tA.value);return jsxs("div",{className:mergeClasses(classes$8.container,"sliderInput"),style:{width:AA},...rA,children:[jsx("div",{children:tA.label}),jsx("div",{className:classes$8.sliderWrapper,children:jsx("input",{type:"range",min:tA.min,max:tA.max,value:eA,onChange:oA=>nA(Number(oA.target.value)),className:"slider "+classes$8.sliderInput,"aria-label":"slider input","data-min":tA.min,"data-max":tA.max,draggable:!0,onDragStartCapture:oA=>{oA.stopPropagation(),oA.preventDefault()}})}),jsxs("div",{children:[jsx(InputOutputTitle,{type:"input",name:tA.inputId})," = ",eA]})]})},shinySliderInputInfo=addEditorInfoToUiNode(input_slider,{settingsFormRender:({inputs:$})=>jsxs(Fragment,{children:[$.inputId,$.label,jsxs(LabeledInputCategory,{label:"Values",children:[$.min,$.max,$.value,$.step]}),$.width]}),UiComponent:ShinySliderInput,iconSrc:sliderIcon}),navbarIcon="data:image/png;base64,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",shinyTabsetPanelInfo=addEditorInfoById("tabsetPanel",{UiComponent:({namedArgs:$,children:rA,path:tA,wrapperProps:AA})=>{const eA=(rA==null?void 0:rA.length)??0;return jsx(Tabset,{path:tA,...AA,children:eA>0?rA==null?void 0:rA.map((nA,oA)=>{const iA=makeChildPath(tA,oA),lA=getTabPanelTitle(nA)??"unknown tab";return jsx(TabPanel,{title:lA,children:jsx(UiNode,{path:iA,node:nA})},pathToString(iA))}):jsx("div",{style:{padding:"5px"},children:jsx("span",{children:"Empty tabset. Drag elements or Tab Panel on to add content"})})})},iconSrc:navbarIcon}),icon="data:image/png;base64,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",container$4="_container_yicbr_1",classes$7={container:container$4},ShinyTextInput=({namedArgs:$,wrapperProps:rA})=>{const[tA,AA]=React.useState($.value);return React.useEffect(()=>{AA($.value)},[$.value]),jsxs("div",{className:mergeClasses(classes$7.container,"textInput"),style:{height:"auto",width:$.width??"200px",maxWidth:$.width?void 0:"100%"},...rA,children:[jsx("label",{htmlFor:$.inputId,children:$.label}),jsx("input",{id:$.inputId,type:"text",value:tA,onChange:eA=>AA(eA.target.value),placeholder:$.placeholder})]})},shinyTextInputInfo=addEditorInfoToUiNode(input_text,{iconSrc:icon,UiComponent:ShinyTextInput}),uiIcon$1="data:image/png;base64,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",shinyTextOutputInfo=addEditorInfoToUiNode(output_text,{iconSrc:uiIcon$1,UiComponent:({namedArgs:$,wrapperProps:rA})=>jsxs(NodeWrapper,{wrapperProps:rA,className:"bg-light-grey rounded p-2 text-black max-h-full",children:["Dynamic text from ",jsxs("code",{children:["output$",$.outputId]})]})}),uiIcon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAACXBIWXMAABYlAAAWJQFJUiTwAAAFGElEQVR4nO3cW4iUZRzH8e9o2ZGkpKOUFylBURCUnQuLki4qtBPd1E0lkVERGh1vogIvKugiwou6S8sIKoQwKwmjugnEICLIIMospL3oIFHTxTNLtuge9P3NM/PO9wPLLLPv7P5398v7vjP7vNvpdrtITZtVewC1k2EpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDqk9QFNWr/9m/N0LgXuAi4D5wJG1ZprCHmAn8BmwFngfYM2tC2vO1Ji27bEeBrYCtwOLGNyoAA4DFgC3AJuANXXHaVabwroCeJbyPf0A3A2cStkrdwbsbRZwEnAb8HVv/lXA1c3+SOppU1j3UX5p3wLnUg4v3wN/1xxqP7rAT8A6YDHwVe/+FdUmalibwrqkd/sksKvmIDM0BjzRe//imoM0qU1hndi73VR1igOzpXc7r+oUDWrNs0LKYRDKIaa2DnA9cB0llh3AeuDT/Wz/c+92TnyyPmlTWINiHvAWcNmE+x8AXgbuZTDP+xrVpkPhIOhQ9kwToxq3Aniqf+PUY1jNuha4aoptHgJO6cMsVRlWs5ZOY5s5wJXpQWozrGYd1/B2Q8uwmvXdNLfbkRxiEBhWs9YB/0yxzS5gcx9mqcqwmrUdeH6Sj3eBlcBv/RmnHsNq3irgceCPCff/CNwMvNH3iSrwBdLmdYGngZeAJZQT9R3Ax8Cf9cbqL8PK2Q28WXuIWgyrOJnyqvj5wF/AB5RlNxMPZ5omw4LlwCvAMXvddwPlJHsZ8GWNoYbdqJ+8Pwhs4P9RjVtEOS+6vK8TtcSohtUBnuu9dSbZ7ljgPeDGfgzVJqMY1hzgNcreajoOp6xYWBmbqIVG7RxrLmWt1JIZPm428CJlVcJjlJcUJjMLuImy0uF3Ssifz/BrDrVRCms+sBE45yA+xyOUuO6iPHvcl+MpLzPsvSbrfsrlXY8y9Z98WmFUDoVnAp9wcFGNuwN4Bzh6Hx9bQDnhn7jQr0O55nEDcEQDMwy8UQjrUsov+7QGP+dS4EP+u4ADSrxbgTMmedwy4CPKNYWt1vawllOu2kmsfzqPEtJC4AJKvPOn8bjFlIsqzgrMNDDaHNZK4HXKs7qU0ylxbWZm8S7oPe6axFCDoI1hdYBnKM/iZvfh650AHHUAj5sLvAvc2ew4g6GNzwpfpfxTkGFwKOVvkotqD9K0Nu6xhiWqva2uPUDT2hjWMGvNa1xtCmus9gAN+LX2AE1pU1jbag/QgO21B2hKm8J6u/YADdhYe4CmtCmstUz/ur5B9Avle2iFNoU1RvmTyc7agxyAMcpqiN21B2lKm8IC+AI4m3KVzDYGe836Hsr/H32BMvOWSbceMp1ud6qlRdLMtW2PpQFhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUoRhKcKwFGFYijAsRRiWIgxLEYalCMNShGEpwrAUYViKMCxFGJYiDEsRhqUIw1KEYSnCsBRhWIowLEUYliIMSxGGpQjDUsS/YEGHz1NNdrMAAAAASUVORK5CYII=",container$3="_container_1xnzo_1",classes$6={container:container$3},shinyUiOutputInfo=addEditorInfoToUiNode(output_ui,{iconSrc:uiIcon,UiComponent:({namedArgs:$,wrapperProps:rA})=>{const{outputId:tA="shiny-ui-output"}=$;return jsx("div",{className:classes$6.container,...rA,children:jsxs("div",{style:{gridArea:"1/1",placeSelf:"center"},children:["This is a a dynamic UI Output ",tA,"!"]})})}}),wrapper="_wrapper_ve015_1",styles$8={wrapper},textNodeInfo=addEditorInfoToUiNode(text_node,{iconSrc:icon$7,UiComponent:({namedArgs:{contents:$,decoration:rA,size:tA="default"},wrapperProps:AA})=>{const eA=sizeNameToTag[tA];return jsx(eA,{className:styles$8.wrapper,...AA,"data-decoration":rA,children:$})}});function AiOutlineQuestionCircle($){return GenIcon({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attr:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0 1 30.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1 0 80 0 40 40 0 1 0-80 0z"}}]})($)}function AiOutlineShrink($){return GenIcon({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M881.7 187.4l-45.1-45.1a8.03 8.03 0 0 0-11.3 0L667.8 299.9l-54.7-54.7a7.94 7.94 0 0 0-13.5 4.7L576.1 439c-.6 5.2 3.7 9.5 8.9 8.9l189.2-23.5c6.6-.8 9.3-8.8 4.7-13.5l-54.7-54.7 157.6-157.6c3-3 3-8.1-.1-11.2zM439 576.1l-189.2 23.5c-6.6.8-9.3 8.9-4.7 13.5l54.7 54.7-157.5 157.5a8.03 8.03 0 0 0 0 11.3l45.1 45.1c3.1 3.1 8.2 3.1 11.3 0l157.6-157.6 54.7 54.7a7.94 7.94 0 0 0 13.5-4.7L447.9 585a7.9 7.9 0 0 0-8.9-8.9z"}}]})($)}const categoryDivider="_categoryDivider_bdwku_1",classes$5={categoryDivider};function CategoryDivider({children:$}){return jsx("div",{className:classes$5.categoryDivider,children:$})}function formatFunctionText($){return $.replaceAll(/\(/g,`( `).replaceAll(/\)/g,` )`).replaceAll(/\(\s+\)/g,"()").replaceAll(/,/g,`, - `).replaceAll(/(\s+)$/g,"")}const num_preview_chars=20,unknownUiFunctionInfo=addEditorInfoToUiNode(unknown_code,{UiComponent:({namedArgs:$,wrapperProps:rA})=>{const tA=$.text.slice(0,num_preview_chars).replaceAll(/\s$/g,"")+"...";return jsxs("div",{className:"my-2 grid place-content-center rounded-standard relative min-w-0 ",...rA,children:[jsx("div",{children:"unknown ui output:"}),jsx("code",{className:"block bg-light-grey font-mono overflow-hidden text-elipses whitespace-nowrap border shadow-inner p-1",children:tA})]})},settingsFormRender:({settings:$})=>jsxs("div",{children:[jsx("div",{className:"SUE-SettingsInput",children:jsxs("span",{children:[jsx(AiOutlineQuestionCircle,{className:"text-rstudio-blue mr-1 mb-[0.12rem]"}),"Unknown function call. Can't modify with visual editor."]})}),jsx(CategoryDivider,{children:jsx("span",{children:"Code"})}),jsx("div",{className:"SUE-SettingsInput",children:jsx("pre",{className:" bg-white overflow-auto font-mono border border-rstudio-grey p-1",children:formatFunctionText($.text)})})]})}),registered_ui_nodes=[shinyActionButtonInfo,shinyNumericInputInfo,shinySliderInputInfo,shinyTextInputInfo,shinyCheckboxInputInfo,shinyCheckboxGroupInputInfo,shinySelectInputInfo,shinyRadioButtonsInfo,shinyPlotOutputInfo,shinyTextOutputInfo,shinyUiOutputInfo,shinyNavbarPageInfo,shinyLayoutSidebarInfo,shinyPanelMainInfo,shinyTabPanelInfo,shinyTabsetPanelInfo,gridlayoutGridPageInfo,gridlayoutCardInfo,gridlayoutTextPanelInfo,gridlayoutGridCardPlotInfo,gridlayoutGridContainerInfo,dtDTOutputInfo,bslibCardInfo,bslibValueBoxInfo,bslibCardBodyInfo,bslibCardHeaderInfo,bslibCardFooterInfo,bslibSidebar,plotlyPlotlyOutputInfo,textNodeInfo,markdownNodeInfo,unknownUiFunctionInfo,testingErrorNodeInfo],shinyUiNodeInfo=new Map(registered_ui_nodes.map($=>[$.id,$]));function getUiNodeInfo($){if(!shinyUiNodeInfo.has($))throw new Error(`Failed to find node info for requested node: ${$}`);return shinyUiNodeInfo.get($)}function getUiNodeComponent($){return getUiNodeInfo($).UiComponent}function getUiNodeSettingsRenderer($){return getUiNodeInfo($).settingsFormRender}function getUiNodeIcon($){return getUiNodeInfo($).iconSrc}function createSubscriberGetter($){let rA=null;return()=>{var tA;if(rA!==null)return rA;rA=new Set;for(const AA of registered_ui_nodes)if("stateUpdateSubscribers"in AA){const eA=(tA=AA.stateUpdateSubscribers)==null?void 0:tA[$];eA&&rA.add(eA)}return rA}}const get_deletion_subscriptions=createSubscriberGetter("DELETE_NODE"),get_update_subscriptions=createSubscriberGetter("UPDATE_NODE"),mainStateSlice=createSlice({name:"state",initialState:{mode:"LOADING"},reducers:{SET_FULL_STATE:($,rA)=>rA.payload.state,SET_APP_INFO:($,rA)=>{try{return{...$,mode:"MAIN",...rA.payload}}catch(tA){const AA=tA instanceof Error?tA.message:null;return AA===null&&console.error("Unknown error type seen",tA),{...$,mode:"ERROR",msg:AA??"Unknown error",context:"Parsing app information from backend"}}},SET_ERROR:($,{payload:rA})=>({...$,mode:"ERROR",...rA}),SHOW_TEMPLATE_CHOOSER:($,{payload:rA})=>({...$,mode:"TEMPLATE_CHOOSER",options:rA}),SET_LOADING:$=>({...$,mode:"LOADING"}),SET_CONNECTION_LOST:$=>({...$,mode:"CONNECTION-LOST"}),UPDATE_NODE:($,rA)=>{if($.mode!=="MAIN")throw new Error("Tried to update a node when in template chooser mode");for(const tA of get_update_subscriptions())tA($.ui_tree,rA.payload);updateNodeMutating($.ui_tree,rA.payload)},PLACE_NODE:($,rA)=>{if($.mode!=="MAIN")throw new Error("Tried to move a node when in template chooser mode");placeNodeMutating($.ui_tree,rA.payload)},DELETE_NODE:($,rA)=>{if($.mode!=="MAIN")throw new Error("Tried to delete a node when in template chooser mode");for(const tA of get_deletion_subscriptions())tA($.ui_tree,{path:rA.payload.path});removeNodeMutating($.ui_tree,rA.payload)}}}),{UPDATE_NODE,PLACE_NODE,DELETE_NODE,SET_APP_INFO,SET_ERROR,SET_FULL_STATE,SHOW_TEMPLATE_CHOOSER,SET_LOADING,SET_CONNECTION_LOST}=mainStateSlice.actions;function useCurrentAppInfo(){return useSelector($=>$.app_info)}const uiTreeReducer=mainStateSlice.reducer;function useUndoRedo($){const rA=useDispatch(),[tA,AA]=React.useState(!1),[eA,nA]=React.useState(!1),oA=React.useRef(new StateHistory({comparisonFn:sameHistoryEntry}));React.useEffect(()=>{if(!$||$.mode==="LOADING")return;const sA=oA.current;sA.addEntry($),nA(sA.canGoBackwards()),AA(sA.canGoForwards())},[$]);const iA=React.useCallback(sA=>{rA(SET_FULL_STATE({state:sA}))},[rA]),lA=React.useCallback(()=>{try{iA(oA.current.goBackwards())}catch{}},[iA]),aA=React.useCallback(()=>{try{iA(oA.current.goForwards())}catch{}},[iA]);return{goBackward:lA,goForward:aA,canGoBackward:eA,canGoForward:tA}}function sameHistoryEntry($,rA){return typeof rA>"u"?!1:rA.mode==="LOADING"&&$.mode==="LOADING"?!0:rA.mode==="TEMPLATE_CHOOSER"&&$.mode==="TEMPLATE_CHOOSER"?JSON.stringify(rA.options)===JSON.stringify($.options):$.mode==="MAIN"&&rA.mode==="MAIN"?rA.ui_tree===$.ui_tree:!1}const metaDataSlice=createSlice({name:"metaData",initialState:{server_aware:!1},reducers:{SET_META_DATA:($,{payload:rA})=>({...$,...rA})}}),{SET_META_DATA}=metaDataSlice.actions;function useMetaData(){return useSelector($=>$.meta_data)}const metaDataReducer=metaDataSlice.reducer;function useDeleteNode($){const rA=useDispatch();return reactExports.useCallback(()=>{$!==null&&rA(DELETE_NODE({path:$}))},[rA,$])}function generateFullAppScript($,{include_info:rA}){const{app_type:tA,ui_tree:AA}=$;switch(tA){case"SINGLE-FILE":return{app_type:tA,app:generateUiScript({ui_tree:AA,language:$.language,...$.app}),...rA&&{info:$}};case"MULTI-FILE":return{app_type:tA,ui:generateUiScript({ui_tree:AA,language:$.language,...$.ui}),server:$.server.code,...rA&&{info:$}}}}function onMac(){return/mac/i.test(window.navigator.platform)}function useKeyboardShortcuts($){const rA=reactExports.useCallback(tA=>{!(tA.target instanceof Element)||tA.target.tagName!=="BODY"||($.filter(AA=>matchesShortcutTrigger(tA,AA)).forEach(({onPress:AA})=>AA()),tA.defaultPrevented||tA.stopPropagation())},[$]);reactExports.useEffect(()=>(document.addEventListener("keydown",rA),()=>{document.removeEventListener("keydown",rA)}),[rA])}function matchesShortcutTrigger($,rA){return $.key===rA.key&&rA.withCmdCtrl===(onMac()?$.metaKey:$.ctrlKey)&&rA.withShift===$.shiftKey}function useSyncUiWithBackend(){const{sendMsg:$,incomingMsgs:rA}=useBackendConnection(),tA=useCurrentAppInfo(),AA=useCurrentSelection(),eA=useLanguageMode(),nA=useDispatch(),oA=useTsParser(),iA=useUndoRedo(tA),lA=useDeleteNode(AA);useKeyboardShortcuts([{key:"z",withCmdCtrl:!0,withShift:!1,onPress:iA.goBackward},{key:"z",withCmdCtrl:!0,withShift:!0,onPress:iA.goForward},{key:"Backspace",onPress:lA,withCmdCtrl:!1,withShift:!1}]),reactExports.useEffect(()=>{const sA=rA.subscribe,cA=[sA("CHECKIN",pA=>{nA(SET_META_DATA(pA))}),sA("APP-INFO",pA=>nA(SET_APP_INFO(pA))),sA("APP-SCRIPT-TEXT",pA=>{if(!oA)throw new Error("No parser initialized. Checkin handshake must not have happened.");oA(pA).then(uA=>{nA(SET_APP_INFO(uA))})}),sA("TEMPLATE_CHOOSER",pA=>nA(SHOW_TEMPLATE_CHOOSER({outputChoices:pA}))),sA("BACKEND-ERROR",pA=>nA(SET_ERROR(pA))),sA("CONNECTION-LOST",pA=>nA(SET_CONNECTION_LOST()))];return $({path:"READY-FOR-STATE"}),()=>{cA.forEach(pA=>pA.unsubscribe())}},[rA.subscribe,nA,oA,$]);const aA=reactExports.useMemo(()=>functionDebounce($,500,!0),[$]);return reactExports.useEffect(()=>{if(tA.mode==="LOADING"||tA.mode==="ERROR"||tA.mode==="CONNECTION-LOST")return;if(tA.mode==="TEMPLATE_CHOOSER"){$({path:"ENTERED-TEMPLATE-SELECTOR"});return}const sA=generateFullAppScript(tA,{include_info:!1});aA({path:"UPDATED-APP",payload:sA})},[aA,eA,$,tA]),{state:tA,history:iA}}const EditorContainer$1="_EditorContainer_1p1tb_1",styles$7={EditorContainer:EditorContainer$1};function VscDebugRestart($){return GenIcon({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",clipRule:"evenodd",d:"M12.75 8a4.5 4.5 0 0 1-8.61 1.834l-1.391.565A6.001 6.001 0 0 0 14.25 8 6 6 0 0 0 3.5 4.334V2.5H2v4l.75.75h3.5v-1.5H4.352A4.5 4.5 0 0 1 12.75 8z"}}]})($)}const appViewerHolder="_appViewerHolder_zkojo_1",title$1="_title_zkojo_55",appContainer="_appContainer_zkojo_89",previewFrame="_previewFrame_zkojo_109",expandButton="_expandButton_zkojo_134",reloadButtonContainer="_reloadButtonContainer_zkojo_135",reloadButton="_reloadButton_zkojo_135",spin="_spin_zkojo_174",restartButton="_restartButton_zkojo_211",loadingMessage="_loadingMessage_zkojo_238",error="_error_zkojo_249",classes$4={appViewerHolder,title:title$1,appContainer,previewFrame,expandButton,reloadButtonContainer,reloadButton,spin,restartButton,loadingMessage,error};function BsChevronDown($){return GenIcon({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"}}]})($)}function BsChevronUp($){return GenIcon({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708l6-6z"}}]})($)}function BsCircleFill($){return GenIcon({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"circle",attr:{cx:"8",cy:"8",r:"8"}}]})($)}function GrClear($){return GenIcon({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",stroke:"#000",strokeWidth:"2",d:"M12,22 C17.5228475,22 22,17.5228475 22,12 C22,6.4771525 17.5228475,2 12,2 C6.4771525,2 2,6.4771525 2,12 C2,17.5228475 6.4771525,22 12,22 Z M5,5 L19,19"}}]})($)}const logs="_logs_xjp5l_2",logsContents="_logsContents_xjp5l_25",expandTab="_expandTab_xjp5l_29",clearLogsButton="_clearLogsButton_xjp5l_69",logLine="_logLine_xjp5l_75",noLogsMsg="_noLogsMsg_xjp5l_81",expandedLogs="_expandedLogs_xjp5l_93",expandLogsButton="_expandLogsButton_xjp5l_101",unseenLogsNotification="_unseenLogsNotification_xjp5l_108",slidein="_slidein_xjp5l_1",classes$3={logs,logsContents,expandTab,clearLogsButton,logLine,noLogsMsg,expandedLogs,expandLogsButton,unseenLogsNotification,slidein};function LogsViewer({appLogs:$,clearLogs:rA}){const{logsExpanded:tA,toggleLogExpansion:AA,unseenLogs:eA}=useExpandableLogs($),nA=$.length===0;return jsxs("div",{className:classes$3.logs,"data-expanded":tA,children:[jsxs("button",{className:classes$3.expandTab,title:tA?"hide logs":"show logs",onClick:AA,children:[jsx(BsCircleFill,{className:classes$3.unseenLogsNotification,"data-show":eA}),"App Logs",tA?jsx(BsChevronDown,{}):jsx(BsChevronUp,{})]}),jsxs("div",{className:classes$3.logsContents,children:[nA?jsx("p",{className:classes$3.noLogsMsg,children:"No recent logs"}):$.map((oA,iA)=>jsx("p",{className:classes$3.logLine,children:oA},iA)),nA?null:jsx(Button,{variant:"icon",title:"clear logs",className:classes$3.clearLogsButton,onClick:rA,children:jsx(GrClear,{})})]})]})}function useExpandableLogs($){const[rA,tA]=React.useState(!1),[AA,eA]=React.useState(!1),[nA,oA]=React.useState(null),[iA,lA]=React.useState(new Date),aA=React.useCallback(()=>{if(rA){tA(!1),oA(new Date);return}tA(!0),eA(!1)},[rA]);return React.useEffect(()=>{lA(new Date)},[$]),React.useEffect(()=>{if(rA||$.length===0){eA(!1);return}if(nA===null||nA>>8,sA[cA*2+1]=uA%256}return sA},decompressFromUint8Array:function(lA){if(lA==null)return iA.decompress(lA);for(var aA=new Array(lA.length/2),sA=0,cA=aA.length;sA>1}else{for(pA=1,cA=0;cA>1}EA--,EA==0&&(EA=Math.pow(2,dA),dA++),delete gA[BA]}else for(pA=uA[BA],cA=0;cA>1;EA--,EA==0&&(EA=Math.pow(2,dA),dA++),uA[wA]=QA++,BA=String(fA)}if(BA!==""){if(Object.prototype.hasOwnProperty.call(gA,BA)){if(BA.charCodeAt(0)<256){for(cA=0;cA>1}else{for(pA=1,cA=0;cA>1}EA--,EA==0&&(EA=Math.pow(2,dA),dA++),delete gA[BA]}else for(pA=uA[BA],cA=0;cA>1;EA--,EA==0&&(EA=Math.pow(2,dA),dA++)}for(pA=2,cA=0;cA>1;for(;;)if(hA=hA<<1,vA==aA-1){yA.push(sA(hA));break}else vA++;return yA.join("")},decompress:function(lA){return lA==null?"":lA==""?null:iA._decompress(lA.length,32768,function(aA){return lA.charCodeAt(aA)})},_decompress:function(lA,aA,sA){var cA=[],pA=4,uA=4,gA=3,fA="",wA=[],BA,EA,QA,dA,yA,hA,vA,CA={val:sA(0),position:aA,index:1};for(BA=0;BA<3;BA+=1)cA[BA]=BA;for(QA=0,yA=Math.pow(2,2),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;switch(QA){case 0:for(QA=0,yA=Math.pow(2,8),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;vA=tA(QA);break;case 1:for(QA=0,yA=Math.pow(2,16),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;vA=tA(QA);break;case 2:return""}for(cA[3]=vA,EA=vA,wA.push(vA);;){if(CA.index>lA)return"";for(QA=0,yA=Math.pow(2,gA),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;switch(vA=QA){case 0:for(QA=0,yA=Math.pow(2,8),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;cA[uA++]=tA(QA),vA=uA-1,pA--;break;case 1:for(QA=0,yA=Math.pow(2,16),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;cA[uA++]=tA(QA),vA=uA-1,pA--;break;case 2:return wA.join("")}if(pA==0&&(pA=Math.pow(2,gA),gA++),cA[vA])fA=cA[vA];else if(vA===uA)fA=EA+EA.charAt(0);else return null;wA.push(fA),cA[uA++]=EA+fA.charAt(0),pA--,EA=fA,pA==0&&(pA=Math.pow(2,gA),gA++)}}};return iA}();$!=null?$.exports=rA:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return rA})})(lzString);var lzStringExports=lzString.exports;const LZString=getDefaultExportFromCjs(lzStringExports);function pythonAppToShinyliveUrl($,rA){const tA=LZString.compressToEncodedURIComponent(JSON.stringify([{name:"app.py",content:$,type:"text"}]));return(rA==="app"?appUrlPrefix:editorUrlPrefix)+"#code="+tA}const editorUrlPrefix="https://shinylive.io/py/editor/",appUrlPrefix="https://shinylive.io/py/app/";function usePreviewScale(){const $=useGetPageSize();return getPreviewScale($.width)}function useGetPageSize(){const[$,rA]=React.useState(getPageSize()),tA=React.useMemo(()=>functionDebounce(()=>{rA(getPageSize())},500),[]);return React.useEffect(()=>(window.addEventListener("resize",tA),()=>window.removeEventListener("resize",tA)),[tA]),$}function getPreviewScale($){const rA=PROPERTIES_PANEL_WIDTH_PX-PREVIEW_INSET_HORIZONTAL_PX*2,tA=$-EXPANDED_INSET_HORIZONTAL_PX*2;return rA/tA}function getPageSize(){const{innerWidth:$,innerHeight:rA}=window;return{width:$,height:rA}}const DEBOUNCE_INTERVAL_MS=500,REFRESH_WAIT_MS=50;function useLazyReloadShinyLivePreview(){const $=React.useRef(null),rA=useCurrentAppInfo(),tA=React.useRef("");React.useEffect(()=>{tA.current=AppStateToShinyLiveUrl(rA)},[rA]);const AA=React.useMemo(()=>functionDebounce(()=>{$.current&&($.current.src="",setTimeout(()=>{!$.current||!tA.current||($.current.src=tA.current)},REFRESH_WAIT_MS))},DEBOUNCE_INTERVAL_MS),[]);return React.useEffect(AA,[rA,AA]),{iframeRef:$,reloadApp:AA}}function ShinyLivePreviewExperiment(){const{iframeRef:$,reloadApp:rA}=useLazyReloadShinyLivePreview(),[tA,AA]=React.useState(!1),eA=usePreviewScale();return jsxs(Fragment,{children:[jsxs(PanelHeader,{className:classes$4.title,children:[jsx(ReloadButton,{isExpandedMode:!1,onClick:rA}),"App Preview"]}),jsxs("div",{className:classes$4.appViewerHolder,"data-expanded":tA,style:{"--app-scale-amnt":eA,"--preview-inset-horizontal":`${PREVIEW_INSET_HORIZONTAL_PX}px`,"--expanded-inset-horizontal":`${EXPANDED_INSET_HORIZONTAL_PX}px`},children:[jsx(ReloadButton,{isExpandedMode:!0,onClick:rA}),jsxs("div",{className:classes$4.appContainer,children:[jsx("iframe",{className:classes$4.previewFrame,src:"",title:"Application Preview",ref:$}),jsx(Button,{variant:"icon",className:classes$4.expandButton,title:tA?"Shrink app preview":"Expand app preview",onClick:()=>AA(nA=>!nA),children:tA?jsx(AiOutlineShrink,{}):jsx(FaExpand,{})})]})]})]})}function AppStateToShinyLiveUrl($){if($.mode!=="MAIN")return"";const rA=generateFullAppScript($,{include_info:!1});return pythonAppToShinyliveUrl(rA.app_type==="SINGLE-FILE"?rA.app:"","app")}function DialogPopover({children:$,onClose:rA,...tA}){const AA=React.useRef(null);return React.useEffect(()=>{if(!AA.current||typeof rA>"u")return;const eA=AA.current;function nA(oA){oA.target===eA&&(rA==null||rA())}eA.addEventListener("click",nA);try{eA.showModal()}catch{}return()=>{eA.removeEventListener("click",nA)}},[rA]),jsx("dialog",{...tA,ref:AA,onClose:rA,children:$})}const show_btn="_show_btn_1klty_1",modal="_modal_1klty_5",title="_title_1klty_18",description="_description_1klty_22",code_holder="_code_holder_1klty_27",footer="_footer_1klty_44",openButtons="_openButtons_1klty_51",styles$6={show_btn,modal,title,description,code_holder,footer,openButtons};function AppFilesViewer({info:$}){const rA=useLanguageMode(),tA=generateFullAppScript($,{include_info:!1});return tA.app_type==="SINGLE-FILE"?jsxs(Fragment,{children:[jsx("h2",{className:styles$6.title,children:"App script"}),jsxs("p",{className:styles$6.description,children:["The following code defines the currently being edited app. Copy and paste it to an ",jsxs("code",{children:["app.",rA==="PYTHON"?"py":"R"]})," ","file to use."]}),rA==="PYTHON"?jsxs("div",{className:styles$6.openButtons,children:[jsx("span",{children:"Want to start coding your app? "}),jsxs(Button,{onClick:()=>{const AA=pythonAppToShinyliveUrl(tA.app,"editor");window.open(AA)},children:[jsx(ArrowUpRightSquare$1,{}),"Open in ShinyLive Editor"]})]}):null,jsxs("div",{className:styles$6.code_holder,children:[jsx("label",{children:"app.R"}),jsx("pre",{children:tA.app})]})]}):jsxs(Fragment,{children:[jsx("h2",{className:styles$6.title,children:"App scripts"}),jsxs("p",{className:styles$6.description,children:["The following code defines the currently being edited app. Copy and paste the ui and server scripts into ",jsx("code",{children:"ui.R"})," and"," ",jsx("code",{children:"server.R"})," files to use."]}),jsxs("div",{className:styles$6.code_holder,children:[jsx("label",{children:"ui.R"}),jsx("pre",{children:tA.ui})]}),jsxs("div",{className:styles$6.code_holder,children:[jsx("label",{children:"server.R"}),jsx("pre",{children:tA.server})]})]})}function ShowAppText(){const[$,rA]=React.useState(!1),AA=useStore().getState().app_info;return AA.mode!=="MAIN"?null:jsxs(Fragment,{children:[jsx(PanelHeader,{className:classes$4.title,children:"Code"}),jsx(PopoverButton,{className:styles$6.show_btn,popoverContent:"See current application code",placement:"left",onClick:()=>rA(eA=>!eA),variant:"regular",children:"Get app script"}),$?jsx(DialogPopover,{className:styles$6.modal,title:"App Script",onClose:()=>rA(!1),children:jsxs("form",{method:"dialog",children:[jsx(AppFilesViewer,{info:AA}),jsx("div",{className:styles$6.footer,children:jsx(Button,{type:"submit",children:"Okay"})})]})}):null]})}function useCommunicateWithBackend(){const{sendMsg:$,incomingMsgs:rA}=useBackendConnection(),[tA,AA]=React.useState("HIDDEN"),[eA,nA]=React.useState([]),[oA,iA]=React.useState(null);React.useEffect(()=>{const uA=rA.subscribe("APP-PREVIEW-STATUS",wA=>{iA(null),AA(wA)}),gA=rA.subscribe("APP-PREVIEW-LOGS",wA=>{nA(ensureArray(wA))}),fA=rA.subscribe("APP-PREVIEW-CRASH",wA=>{iA(wA)});return $({path:"APP-PREVIEW-REQUEST"}),aA(()=>()=>$({path:"APP-PREVIEW-RESTART"})),cA(()=>()=>$({path:"APP-PREVIEW-STOP"})),()=>{uA.unsubscribe(),gA.unsubscribe(),fA.unsubscribe()}},[rA,$]);const[lA,aA]=React.useState(()=>()=>console.warn("No app running to reset")),[sA,cA]=React.useState(()=>()=>console.warn("No app running to stop")),pA=React.useCallback(()=>{nA([])},[]);return{appLogs:eA,clearLogs:pA,restartApp:lA,stopApp:sA,appLoc:tA,errors:oA}}function ensureArray($){return Array.isArray($)?$:[$]}const PREVIEW_INSET_HORIZONTAL_PX=16,EXPANDED_INSET_HORIZONTAL_PX=55;function AppPreview(){const $=React.useRef(null),[rA,tA]=React.useState(!1),AA=React.useCallback(()=>{tA(gA=>!gA)},[]),[eA,nA]=React.useState(!1),oA=useLanguageMode(),{appLoc:iA,errors:lA,appLogs:aA,clearLogs:sA,restartApp:cA}=useCommunicateWithBackend(),pA=usePreviewScale(),uA=React.useCallback(gA=>{!$.current||typeof iA=="string"||(gA?cA():$.current.src=iA.url)},[iA,cA]);return oA==="PYTHON"&&eA?jsx(ShinyLivePreviewExperiment,{}):iA==="HIDDEN"?jsx(ShowAppText,{}):jsxs(Fragment,{children:[jsxs(PanelHeader,{className:classes$4.title,children:[jsx(ReloadButton,{isExpandedMode:!1,onClick:uA}),"App Preview"]}),jsx("div",{className:classes$4.appViewerHolder,"data-expanded":rA,style:{"--app-scale-amnt":pA,"--preview-inset-horizontal":`${PREVIEW_INSET_HORIZONTAL_PX}px`,"--expanded-inset-horizontal":`${EXPANDED_INSET_HORIZONTAL_PX}px`},children:lA!==null?jsxs("div",{className:classes$4.appContainer,children:[jsxs("p",{children:["App preview crashed.",jsx("br",{})," Try and restart?"]}),jsxs(Button,{className:classes$4.restartButton,title:"Restart app preview",onClick:gA=>{spinReloadButton(gA.currentTarget),cA()},children:["Restart app preview ",jsx(VscDebugRestart,{})]})]}):jsxs(Fragment,{children:[jsx(ReloadButton,{isExpandedMode:!0,onClick:uA}),jsxs("div",{className:classes$4.appContainer,children:[iA==="LOADING"?jsx(LoadingMessage,{}):jsx("iframe",{className:classes$4.previewFrame,src:iA.url,title:"Application Preview",ref:$}),jsx(Button,{variant:"icon",className:classes$4.expandButton,title:rA?"Shrink app preview":"Expand app preview",onClick:AA,children:rA?jsx(AiOutlineShrink,{}):jsx(FaExpand,{})})]}),jsx(LogsViewer,{appLogs:aA,clearLogs:sA})]})})]})}function ReloadButton({isExpandedMode:$,onClick:rA}){return jsx("div",{className:classes$4.reloadButtonContainer,children:jsx(PopoverButton,{popoverContent:`Reload app session (hold ${getMetaKeyOnClient()} to restart app server also)`,className:mergeClasses(classes$4.reloadButton,{"text-white":!$}),variant:["transparent","icon"],onClick:tA=>{spinReloadButton(tA.currentTarget),rA(tA.metaKey)},placement:$?"right":"top",children:jsx(VscDebugRestart,{})})})}function LoadingMessage(){return jsx("div",{className:classes$4.loadingMessage,children:jsx("h2",{children:"Loading app preview..."})})}function spinReloadButton($){const rA=$.querySelector("svg");rA==null||rA.classList.add(classes$4.spin),$.addEventListener("animationend",()=>rA==null?void 0:rA.classList.remove(classes$4.spin),!1)}function getMetaKeyOnClient(){return onMac()?"⌘":"Alt"}function EditorLayout({main:$,properties:rA,preview:tA,left:AA}){return jsx(Fragment,{children:jsxs("div",{className:styles$b.EditorSkeleton,children:[jsx("div",{className:mergeClasses(styles$b.elements_panel,styles$b.panel),"aria-label":"Elements Panel",children:AA}),jsx("div",{className:"app-view bg-rstudio-white p-8 h-full relative row-span-2 overflow-auto","aria-label":"App Skeleton",children:$}),jsx("div",{className:mergeClasses(styles$b.properties_panel,styles$b.panel),"aria-label":"Properties panel",children:rA}),jsx("div",{className:mergeClasses(styles$b.app_preview,styles$b.panel),"aria-label":"App Preview",children:tA})]})})}const navbarTree$1={id:"grid_page",namedArgs:{row_sizes:["70px","1fr","1fr"],col_sizes:["250px","1fr"],gap_size:"1rem",layout:["header header","sidebar linePlots","dists dists"]},children:[{id:"grid_card",namedArgs:{area:"sidebar"},children:[{id:"card_header",namedArgs:{},children:[{id:"textNode",namedArgs:{contents:"Settings"}}]},{id:"card_body",namedArgs:{},children:[{id:"sliderInput",namedArgs:{inputId:"numChicks",label:"Number of Chicks",min:1,max:15,value:5,width:"100%",step:1}},{id:"radioButtons",namedArgs:{inputId:"distFacet",label:"Facet Distribution By",choices:{"Diet Type":"Diet","Measure Time":"Time"}}}]}]},{id:"grid_card_text",namedArgs:{area:"header",content:"Chick Weights",alignment:"center",is_title:!1}},{id:"grid_card_plot",namedArgs:{area:"dists"}},{id:"grid_card_plot",namedArgs:{area:"linePlots"}}]},chickWeightsGridTemplate={title:"Chick Weights Grid",description:"Plots investigating the ChickWeights built-in dataset",uiTree:navbarTree$1,otherCode:{serverLibraries:["ggplot2"],serverFunctionBody:` + `).replaceAll(/(\s+)$/g,"")}const num_preview_chars=20,unknownUiFunctionInfo=addEditorInfoToUiNode(unknown_code,{UiComponent:({namedArgs:$,wrapperProps:rA})=>{const tA=$.text.slice(0,num_preview_chars).replaceAll(/\s$/g,"")+"...";return jsxs("div",{className:"my-2 grid place-content-center rounded-standard relative min-w-0 ",...rA,children:[jsx("div",{children:"unknown ui output:"}),jsx("code",{className:"block bg-light-grey font-mono overflow-hidden text-elipses whitespace-nowrap border shadow-inner p-1",children:tA})]})},settingsFormRender:({settings:$})=>jsxs("div",{children:[jsx("div",{className:"SUE-SettingsInput",children:jsxs("span",{children:[jsx(AiOutlineQuestionCircle,{className:"text-rstudio-blue mr-1 mb-[0.12rem]"}),"Unknown function call. Can't modify with visual editor."]})}),jsx(CategoryDivider,{children:jsx("span",{children:"Code"})}),jsx("div",{className:"SUE-SettingsInput",children:jsx("pre",{className:" bg-white overflow-auto font-mono border border-rstudio-grey p-1",children:formatFunctionText($.text)})})]})}),registered_ui_nodes=[shinyActionButtonInfo,shinyNumericInputInfo,shinySliderInputInfo,shinyTextInputInfo,shinyCheckboxInputInfo,shinyCheckboxGroupInputInfo,shinySelectInputInfo,shinyRadioButtonsInfo,shinyPlotOutputInfo,shinyTextOutputInfo,shinyUiOutputInfo,shinyNavbarPageInfo,shinyLayoutSidebarInfo,shinyPanelMainInfo,shinyTabPanelInfo,shinyTabsetPanelInfo,gridlayoutGridPageInfo,gridlayoutCardInfo,gridlayoutTextPanelInfo,gridlayoutGridCardPlotInfo,gridlayoutGridContainerInfo,dtDTOutputInfo,bslibCardInfo,bslibValueBoxInfo,bslibCardBodyInfo,bslibCardHeaderInfo,bslibCardFooterInfo,bslibSidebar,plotlyPlotlyOutputInfo,textNodeInfo,markdownNodeInfo,unknownUiFunctionInfo,testingErrorNodeInfo],shinyUiNodeInfo=new Map(registered_ui_nodes.map($=>[$.id,$]));function getUiNodeInfo($){if(!shinyUiNodeInfo.has($))throw new Error(`Failed to find node info for requested node: ${$}`);return shinyUiNodeInfo.get($)}function getUiNodeComponent($){return getUiNodeInfo($).UiComponent}function getUiNodeSettingsRenderer($){return getUiNodeInfo($).settingsFormRender}function getUiNodeIcon($){return getUiNodeInfo($).iconSrc}function createSubscriberGetter($){let rA=null;return()=>{var tA;if(rA!==null)return rA;rA=new Set;for(const AA of registered_ui_nodes)if("stateUpdateSubscribers"in AA){const eA=(tA=AA.stateUpdateSubscribers)==null?void 0:tA[$];eA&&rA.add(eA)}return rA}}const get_deletion_subscriptions=createSubscriberGetter("DELETE_NODE"),get_update_subscriptions=createSubscriberGetter("UPDATE_NODE"),mainStateSlice=createSlice({name:"state",initialState:{mode:"LOADING"},reducers:{SET_FULL_STATE:($,rA)=>rA.payload.state,SET_APP_INFO:($,rA)=>{try{return{...$,mode:"MAIN",...rA.payload}}catch(tA){const AA=tA instanceof Error?tA.message:null;return AA===null&&console.error("Unknown error type seen",tA),{...$,mode:"ERROR",msg:AA??"Unknown error",context:"Parsing app information from backend"}}},SET_ERROR:($,{payload:rA})=>({...$,mode:"ERROR",...rA}),SHOW_TEMPLATE_CHOOSER:($,{payload:rA})=>({...$,mode:"TEMPLATE_CHOOSER",options:rA}),SET_LOADING:$=>({...$,mode:"LOADING"}),SET_CONNECTION_LOST:$=>({...$,mode:"CONNECTION-LOST"}),UPDATE_NODE:($,rA)=>{if($.mode!=="MAIN")throw new Error("Tried to update a node when in template chooser mode");for(const tA of get_update_subscriptions())tA($.ui_tree,rA.payload);updateNodeMutating($.ui_tree,rA.payload)},PLACE_NODE:($,rA)=>{if($.mode!=="MAIN")throw new Error("Tried to move a node when in template chooser mode");placeNodeMutating($.ui_tree,rA.payload)},DELETE_NODE:($,rA)=>{if($.mode!=="MAIN")throw new Error("Tried to delete a node when in template chooser mode");for(const tA of get_deletion_subscriptions())tA($.ui_tree,{path:rA.payload.path});removeNodeMutating($.ui_tree,rA.payload)}}}),{UPDATE_NODE,PLACE_NODE,DELETE_NODE,SET_APP_INFO,SET_ERROR,SET_FULL_STATE,SHOW_TEMPLATE_CHOOSER,SET_LOADING,SET_CONNECTION_LOST}=mainStateSlice.actions;function useCurrentAppInfo(){return useSelector($=>$.app_info)}const uiTreeReducer=mainStateSlice.reducer;function useUndoRedo($){const rA=useDispatch(),[tA,AA]=React.useState(!1),[eA,nA]=React.useState(!1),oA=React.useRef(new StateHistory({comparisonFn:sameHistoryEntry}));React.useEffect(()=>{if(!$||$.mode==="LOADING")return;const sA=oA.current;sA.addEntry($),nA(sA.canGoBackwards()),AA(sA.canGoForwards())},[$]);const iA=React.useCallback(sA=>{rA(SET_FULL_STATE({state:sA}))},[rA]),lA=React.useCallback(()=>{try{iA(oA.current.goBackwards())}catch{}},[iA]),aA=React.useCallback(()=>{try{iA(oA.current.goForwards())}catch{}},[iA]);return{goBackward:lA,goForward:aA,canGoBackward:eA,canGoForward:tA}}function sameHistoryEntry($,rA){return typeof rA>"u"?!1:rA.mode==="LOADING"&&$.mode==="LOADING"?!0:rA.mode==="TEMPLATE_CHOOSER"&&$.mode==="TEMPLATE_CHOOSER"?JSON.stringify(rA.options)===JSON.stringify($.options):$.mode==="MAIN"&&rA.mode==="MAIN"?rA.ui_tree===$.ui_tree:!1}const metaDataSlice=createSlice({name:"metaData",initialState:{server_aware:!1},reducers:{SET_META_DATA:($,{payload:rA})=>({...$,...rA})}}),{SET_META_DATA}=metaDataSlice.actions;function useMetaData(){return useSelector($=>$.meta_data)}const metaDataReducer=metaDataSlice.reducer;function useDeleteNode($){const rA=useDispatch();return reactExports.useCallback(()=>{$!==null&&rA(DELETE_NODE({path:$}))},[rA,$])}function generateFullAppScript($,{include_info:rA}){const{ui_tree:tA}=$;return{app:generateUiScript({ui_tree:tA,language:$.language,...$.app}),...rA&&{info:$}}}function onMac(){return/mac/i.test(window.navigator.platform)}function useKeyboardShortcuts($){const rA=reactExports.useCallback(tA=>{!(tA.target instanceof Element)||tA.target.tagName!=="BODY"||($.filter(AA=>matchesShortcutTrigger(tA,AA)).forEach(({onPress:AA})=>AA()),tA.defaultPrevented||tA.stopPropagation())},[$]);reactExports.useEffect(()=>(document.addEventListener("keydown",rA),()=>{document.removeEventListener("keydown",rA)}),[rA])}function matchesShortcutTrigger($,rA){return $.key===rA.key&&rA.withCmdCtrl===(onMac()?$.metaKey:$.ctrlKey)&&rA.withShift===$.shiftKey}function useSyncUiWithBackend(){const{sendMsg:$,incomingMsgs:rA}=useBackendConnection(),tA=useCurrentAppInfo(),AA=useCurrentSelection(),eA=useLanguageMode(),nA=useDispatch(),oA=useTsParser(),iA=useUndoRedo(tA),lA=useDeleteNode(AA);useKeyboardShortcuts([{key:"z",withCmdCtrl:!0,withShift:!1,onPress:iA.goBackward},{key:"z",withCmdCtrl:!0,withShift:!0,onPress:iA.goForward},{key:"Backspace",onPress:lA,withCmdCtrl:!1,withShift:!1}]),reactExports.useEffect(()=>{const sA=rA.subscribe,cA=[sA("CHECKIN",pA=>{nA(SET_META_DATA(pA))}),sA("APP-INFO",pA=>nA(SET_APP_INFO(pA))),sA("APP-SCRIPT-TEXT",pA=>{if(!oA)throw new Error("No parser initialized. Checkin handshake must not have happened.");oA(pA).then(uA=>{nA(SET_APP_INFO(uA))})}),sA("TEMPLATE_CHOOSER",pA=>nA(SHOW_TEMPLATE_CHOOSER({outputChoices:pA}))),sA("BACKEND-ERROR",pA=>nA(SET_ERROR(pA))),sA("CONNECTION-LOST",pA=>nA(SET_CONNECTION_LOST()))];return $({path:"READY-FOR-STATE"}),()=>{cA.forEach(pA=>pA.unsubscribe())}},[rA.subscribe,nA,oA,$]);const aA=reactExports.useMemo(()=>functionDebounce($,500,!0),[$]);return reactExports.useEffect(()=>{if(tA.mode==="LOADING"||tA.mode==="ERROR"||tA.mode==="CONNECTION-LOST")return;if(tA.mode==="TEMPLATE_CHOOSER"){$({path:"ENTERED-TEMPLATE-SELECTOR"});return}const sA=generateFullAppScript(tA,{include_info:!1});aA({path:"UPDATED-APP",payload:sA})},[aA,eA,$,tA]),{state:tA,history:iA}}const EditorContainer$1="_EditorContainer_1p1tb_1",styles$7={EditorContainer:EditorContainer$1};function VscDebugRestart($){return GenIcon({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",clipRule:"evenodd",d:"M12.75 8a4.5 4.5 0 0 1-8.61 1.834l-1.391.565A6.001 6.001 0 0 0 14.25 8 6 6 0 0 0 3.5 4.334V2.5H2v4l.75.75h3.5v-1.5H4.352A4.5 4.5 0 0 1 12.75 8z"}}]})($)}const appViewerHolder="_appViewerHolder_zkojo_1",title$1="_title_zkojo_55",appContainer="_appContainer_zkojo_89",previewFrame="_previewFrame_zkojo_109",expandButton="_expandButton_zkojo_134",reloadButtonContainer="_reloadButtonContainer_zkojo_135",reloadButton="_reloadButton_zkojo_135",spin="_spin_zkojo_174",restartButton="_restartButton_zkojo_211",loadingMessage="_loadingMessage_zkojo_238",error="_error_zkojo_249",classes$4={appViewerHolder,title:title$1,appContainer,previewFrame,expandButton,reloadButtonContainer,reloadButton,spin,restartButton,loadingMessage,error};function BsChevronDown($){return GenIcon({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z"}}]})($)}function BsChevronUp($){return GenIcon({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708l6-6z"}}]})($)}function BsCircleFill($){return GenIcon({tag:"svg",attr:{fill:"currentColor",viewBox:"0 0 16 16"},child:[{tag:"circle",attr:{cx:"8",cy:"8",r:"8"}}]})($)}function GrClear($){return GenIcon({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{fill:"none",stroke:"#000",strokeWidth:"2",d:"M12,22 C17.5228475,22 22,17.5228475 22,12 C22,6.4771525 17.5228475,2 12,2 C6.4771525,2 2,6.4771525 2,12 C2,17.5228475 6.4771525,22 12,22 Z M5,5 L19,19"}}]})($)}const logs="_logs_xjp5l_2",logsContents="_logsContents_xjp5l_25",expandTab="_expandTab_xjp5l_29",clearLogsButton="_clearLogsButton_xjp5l_69",logLine="_logLine_xjp5l_75",noLogsMsg="_noLogsMsg_xjp5l_81",expandedLogs="_expandedLogs_xjp5l_93",expandLogsButton="_expandLogsButton_xjp5l_101",unseenLogsNotification="_unseenLogsNotification_xjp5l_108",slidein="_slidein_xjp5l_1",classes$3={logs,logsContents,expandTab,clearLogsButton,logLine,noLogsMsg,expandedLogs,expandLogsButton,unseenLogsNotification,slidein};function LogsViewer({appLogs:$,clearLogs:rA}){const{logsExpanded:tA,toggleLogExpansion:AA,unseenLogs:eA}=useExpandableLogs($),nA=$.length===0;return jsxs("div",{className:classes$3.logs,"data-expanded":tA,children:[jsxs("button",{className:classes$3.expandTab,title:tA?"hide logs":"show logs",onClick:AA,children:[jsx(BsCircleFill,{className:classes$3.unseenLogsNotification,"data-show":eA}),"App Logs",tA?jsx(BsChevronDown,{}):jsx(BsChevronUp,{})]}),jsxs("div",{className:classes$3.logsContents,children:[nA?jsx("p",{className:classes$3.noLogsMsg,children:"No recent logs"}):$.map((oA,iA)=>jsx("p",{className:classes$3.logLine,children:oA},iA)),nA?null:jsx(Button,{variant:"icon",title:"clear logs",className:classes$3.clearLogsButton,onClick:rA,children:jsx(GrClear,{})})]})]})}function useExpandableLogs($){const[rA,tA]=React.useState(!1),[AA,eA]=React.useState(!1),[nA,oA]=React.useState(null),[iA,lA]=React.useState(new Date),aA=React.useCallback(()=>{if(rA){tA(!1),oA(new Date);return}tA(!0),eA(!1)},[rA]);return React.useEffect(()=>{lA(new Date)},[$]),React.useEffect(()=>{if(rA||$.length===0){eA(!1);return}if(nA===null||nA>>8,sA[cA*2+1]=uA%256}return sA},decompressFromUint8Array:function(lA){if(lA==null)return iA.decompress(lA);for(var aA=new Array(lA.length/2),sA=0,cA=aA.length;sA>1}else{for(pA=1,cA=0;cA>1}EA--,EA==0&&(EA=Math.pow(2,dA),dA++),delete gA[BA]}else for(pA=uA[BA],cA=0;cA>1;EA--,EA==0&&(EA=Math.pow(2,dA),dA++),uA[wA]=QA++,BA=String(fA)}if(BA!==""){if(Object.prototype.hasOwnProperty.call(gA,BA)){if(BA.charCodeAt(0)<256){for(cA=0;cA>1}else{for(pA=1,cA=0;cA>1}EA--,EA==0&&(EA=Math.pow(2,dA),dA++),delete gA[BA]}else for(pA=uA[BA],cA=0;cA>1;EA--,EA==0&&(EA=Math.pow(2,dA),dA++)}for(pA=2,cA=0;cA>1;for(;;)if(hA=hA<<1,vA==aA-1){yA.push(sA(hA));break}else vA++;return yA.join("")},decompress:function(lA){return lA==null?"":lA==""?null:iA._decompress(lA.length,32768,function(aA){return lA.charCodeAt(aA)})},_decompress:function(lA,aA,sA){var cA=[],pA=4,uA=4,gA=3,fA="",wA=[],BA,EA,QA,dA,yA,hA,vA,CA={val:sA(0),position:aA,index:1};for(BA=0;BA<3;BA+=1)cA[BA]=BA;for(QA=0,yA=Math.pow(2,2),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;switch(QA){case 0:for(QA=0,yA=Math.pow(2,8),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;vA=tA(QA);break;case 1:for(QA=0,yA=Math.pow(2,16),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;vA=tA(QA);break;case 2:return""}for(cA[3]=vA,EA=vA,wA.push(vA);;){if(CA.index>lA)return"";for(QA=0,yA=Math.pow(2,gA),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;switch(vA=QA){case 0:for(QA=0,yA=Math.pow(2,8),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;cA[uA++]=tA(QA),vA=uA-1,pA--;break;case 1:for(QA=0,yA=Math.pow(2,16),hA=1;hA!=yA;)dA=CA.val&CA.position,CA.position>>=1,CA.position==0&&(CA.position=aA,CA.val=sA(CA.index++)),QA|=(dA>0?1:0)*hA,hA<<=1;cA[uA++]=tA(QA),vA=uA-1,pA--;break;case 2:return wA.join("")}if(pA==0&&(pA=Math.pow(2,gA),gA++),cA[vA])fA=cA[vA];else if(vA===uA)fA=EA+EA.charAt(0);else return null;wA.push(fA),cA[uA++]=EA+fA.charAt(0),pA--,EA=fA,pA==0&&(pA=Math.pow(2,gA),gA++)}}};return iA}();$!=null?$.exports=rA:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return rA})})(lzString);var lzStringExports=lzString.exports;const LZString=getDefaultExportFromCjs(lzStringExports);function pythonAppToShinyliveUrl($,rA){const tA=LZString.compressToEncodedURIComponent(JSON.stringify([{name:"app.py",content:$,type:"text"}]));return(rA==="app"?appUrlPrefix:editorUrlPrefix)+"#code="+tA}const editorUrlPrefix="https://shinylive.io/py/editor/",appUrlPrefix="https://shinylive.io/py/app/";function usePreviewScale(){const $=useGetPageSize();return getPreviewScale($.width)}function useGetPageSize(){const[$,rA]=React.useState(getPageSize()),tA=React.useMemo(()=>functionDebounce(()=>{rA(getPageSize())},500),[]);return React.useEffect(()=>(window.addEventListener("resize",tA),()=>window.removeEventListener("resize",tA)),[tA]),$}function getPreviewScale($){const rA=PROPERTIES_PANEL_WIDTH_PX-PREVIEW_INSET_HORIZONTAL_PX*2,tA=$-EXPANDED_INSET_HORIZONTAL_PX*2;return rA/tA}function getPageSize(){const{innerWidth:$,innerHeight:rA}=window;return{width:$,height:rA}}const DEBOUNCE_INTERVAL_MS=500,REFRESH_WAIT_MS=50;function useLazyReloadShinyLivePreview(){const $=React.useRef(null),rA=useCurrentAppInfo(),tA=React.useRef("");React.useEffect(()=>{tA.current=AppStateToShinyLiveUrl(rA)},[rA]);const AA=React.useMemo(()=>functionDebounce(()=>{$.current&&($.current.src="",setTimeout(()=>{!$.current||!tA.current||($.current.src=tA.current)},REFRESH_WAIT_MS))},DEBOUNCE_INTERVAL_MS),[]);return React.useEffect(AA,[rA,AA]),{iframeRef:$,reloadApp:AA}}function ShinyLivePreviewExperiment(){const{iframeRef:$,reloadApp:rA}=useLazyReloadShinyLivePreview(),[tA,AA]=React.useState(!1),eA=usePreviewScale();return jsxs(Fragment,{children:[jsxs(PanelHeader,{className:classes$4.title,children:[jsx(ReloadButton,{isExpandedMode:!1,onClick:rA}),"App Preview"]}),jsxs("div",{className:classes$4.appViewerHolder,"data-expanded":tA,style:{"--app-scale-amnt":eA,"--preview-inset-horizontal":`${PREVIEW_INSET_HORIZONTAL_PX}px`,"--expanded-inset-horizontal":`${EXPANDED_INSET_HORIZONTAL_PX}px`},children:[jsx(ReloadButton,{isExpandedMode:!0,onClick:rA}),jsxs("div",{className:classes$4.appContainer,children:[jsx("iframe",{className:classes$4.previewFrame,src:"",title:"Application Preview",ref:$}),jsx(Button,{variant:"icon",className:classes$4.expandButton,title:tA?"Shrink app preview":"Expand app preview",onClick:()=>AA(nA=>!nA),children:tA?jsx(AiOutlineShrink,{}):jsx(FaExpand,{})})]})]})]})}function AppStateToShinyLiveUrl($){if($.mode!=="MAIN")return"";const rA=generateFullAppScript($,{include_info:!1});return pythonAppToShinyliveUrl(rA.app,"app")}function DialogPopover({children:$,onClose:rA,...tA}){const AA=React.useRef(null);return React.useEffect(()=>{if(!AA.current||typeof rA>"u")return;const eA=AA.current;function nA(oA){oA.target===eA&&(rA==null||rA())}eA.addEventListener("click",nA);try{eA.showModal()}catch{}return()=>{eA.removeEventListener("click",nA)}},[rA]),jsx("dialog",{...tA,ref:AA,onClose:rA,children:$})}const show_btn="_show_btn_1klty_1",modal="_modal_1klty_5",title="_title_1klty_18",description="_description_1klty_22",code_holder="_code_holder_1klty_27",footer="_footer_1klty_44",openButtons="_openButtons_1klty_51",styles$6={show_btn,modal,title,description,code_holder,footer,openButtons};function AppFilesViewer({info:$}){const rA=useLanguageMode(),tA=generateFullAppScript($,{include_info:!1});return jsxs(Fragment,{children:[jsx("h2",{className:styles$6.title,children:"App script"}),jsxs("p",{className:styles$6.description,children:["The following code defines the currently being edited app. Copy and paste it to an ",jsxs("code",{children:["app.",rA==="PYTHON"?"py":"R"]})," ","file to use."]}),rA==="PYTHON"?jsxs("div",{className:styles$6.openButtons,children:[jsx("span",{children:"Want to start coding your app? "}),jsxs(Button,{onClick:()=>{const AA=pythonAppToShinyliveUrl(tA.app,"editor");window.open(AA)},children:[jsx(ArrowUpRightSquare$1,{}),"Open in ShinyLive Editor"]})]}):null,jsxs("div",{className:styles$6.code_holder,children:[jsx("label",{children:"app.R"}),jsx("pre",{children:tA.app})]})]})}function ShowAppText(){const[$,rA]=React.useState(!1),AA=useStore().getState().app_info;return AA.mode!=="MAIN"?null:jsxs(Fragment,{children:[jsx(PanelHeader,{className:classes$4.title,children:"Code"}),jsx(PopoverButton,{className:styles$6.show_btn,popoverContent:"See current application code",placement:"left",onClick:()=>rA(eA=>!eA),variant:"regular",children:"Get app script"}),$?jsx(DialogPopover,{className:styles$6.modal,title:"App Script",onClose:()=>rA(!1),children:jsxs("form",{method:"dialog",children:[jsx(AppFilesViewer,{info:AA}),jsx("div",{className:styles$6.footer,children:jsx(Button,{type:"submit",children:"Okay"})})]})}):null]})}function useCommunicateWithBackend(){const{sendMsg:$,incomingMsgs:rA}=useBackendConnection(),[tA,AA]=React.useState("HIDDEN"),[eA,nA]=React.useState([]),[oA,iA]=React.useState(null);React.useEffect(()=>{const uA=rA.subscribe("APP-PREVIEW-STATUS",wA=>{iA(null),AA(wA)}),gA=rA.subscribe("APP-PREVIEW-LOGS",wA=>{nA(ensureArray(wA))}),fA=rA.subscribe("APP-PREVIEW-CRASH",wA=>{iA(wA)});return $({path:"APP-PREVIEW-REQUEST"}),aA(()=>()=>$({path:"APP-PREVIEW-RESTART"})),cA(()=>()=>$({path:"APP-PREVIEW-STOP"})),()=>{uA.unsubscribe(),gA.unsubscribe(),fA.unsubscribe()}},[rA,$]);const[lA,aA]=React.useState(()=>()=>console.warn("No app running to reset")),[sA,cA]=React.useState(()=>()=>console.warn("No app running to stop")),pA=React.useCallback(()=>{nA([])},[]);return{appLogs:eA,clearLogs:pA,restartApp:lA,stopApp:sA,appLoc:tA,errors:oA}}function ensureArray($){return Array.isArray($)?$:[$]}const PREVIEW_INSET_HORIZONTAL_PX=16,EXPANDED_INSET_HORIZONTAL_PX=55;function AppPreview(){const $=React.useRef(null),[rA,tA]=React.useState(!1),AA=React.useCallback(()=>{tA(gA=>!gA)},[]),[eA,nA]=React.useState(!1),oA=useLanguageMode(),{appLoc:iA,errors:lA,appLogs:aA,clearLogs:sA,restartApp:cA}=useCommunicateWithBackend(),pA=usePreviewScale(),uA=React.useCallback(gA=>{!$.current||typeof iA=="string"||(gA?cA():$.current.src=iA.url)},[iA,cA]);return oA==="PYTHON"&&eA?jsx(ShinyLivePreviewExperiment,{}):iA==="HIDDEN"?jsx(ShowAppText,{}):jsxs(Fragment,{children:[jsxs(PanelHeader,{className:classes$4.title,children:[jsx(ReloadButton,{isExpandedMode:!1,onClick:uA}),"App Preview"]}),jsx("div",{className:classes$4.appViewerHolder,"data-expanded":rA,style:{"--app-scale-amnt":pA,"--preview-inset-horizontal":`${PREVIEW_INSET_HORIZONTAL_PX}px`,"--expanded-inset-horizontal":`${EXPANDED_INSET_HORIZONTAL_PX}px`},children:lA!==null?jsxs("div",{className:classes$4.appContainer,children:[jsxs("p",{children:["App preview crashed.",jsx("br",{})," Try and restart?"]}),jsxs(Button,{className:classes$4.restartButton,title:"Restart app preview",onClick:gA=>{spinReloadButton(gA.currentTarget),cA()},children:["Restart app preview ",jsx(VscDebugRestart,{})]})]}):jsxs(Fragment,{children:[jsx(ReloadButton,{isExpandedMode:!0,onClick:uA}),jsxs("div",{className:classes$4.appContainer,children:[iA==="LOADING"?jsx(LoadingMessage,{}):jsx("iframe",{className:classes$4.previewFrame,src:iA.url,title:"Application Preview",ref:$}),jsx(Button,{variant:"icon",className:classes$4.expandButton,title:rA?"Shrink app preview":"Expand app preview",onClick:AA,children:rA?jsx(AiOutlineShrink,{}):jsx(FaExpand,{})})]}),jsx(LogsViewer,{appLogs:aA,clearLogs:sA})]})})]})}function ReloadButton({isExpandedMode:$,onClick:rA}){return jsx("div",{className:classes$4.reloadButtonContainer,children:jsx(PopoverButton,{popoverContent:`Reload app session (hold ${getMetaKeyOnClient()} to restart app server also)`,className:mergeClasses(classes$4.reloadButton,{"text-white":!$}),variant:["transparent","icon"],onClick:tA=>{spinReloadButton(tA.currentTarget),rA(tA.metaKey)},placement:$?"right":"top",children:jsx(VscDebugRestart,{})})})}function LoadingMessage(){return jsx("div",{className:classes$4.loadingMessage,children:jsx("h2",{children:"Loading app preview..."})})}function spinReloadButton($){const rA=$.querySelector("svg");rA==null||rA.classList.add(classes$4.spin),$.addEventListener("animationend",()=>rA==null?void 0:rA.classList.remove(classes$4.spin),!1)}function getMetaKeyOnClient(){return onMac()?"⌘":"Alt"}function EditorLayout({main:$,properties:rA,preview:tA,left:AA}){return jsx(Fragment,{children:jsxs("div",{className:styles$b.EditorSkeleton,children:[jsx("div",{className:mergeClasses(styles$b.elements_panel,styles$b.panel),"aria-label":"Elements Panel",children:AA}),jsx("div",{className:"app-view bg-rstudio-white p-8 h-full relative row-span-2 overflow-auto","aria-label":"App Skeleton",children:$}),jsx("div",{className:mergeClasses(styles$b.properties_panel,styles$b.panel),"aria-label":"Properties panel",children:rA}),jsx("div",{className:mergeClasses(styles$b.app_preview,styles$b.panel),"aria-label":"App Preview",children:tA})]})})}const navbarTree$1={id:"grid_page",namedArgs:{row_sizes:["70px","1fr","1fr"],col_sizes:["250px","1fr"],gap_size:"1rem",layout:["header header","sidebar linePlots","dists dists"]},children:[{id:"grid_card",namedArgs:{area:"sidebar"},children:[{id:"card_header",namedArgs:{},children:[{id:"textNode",namedArgs:{contents:"Settings"}}]},{id:"card_body",namedArgs:{},children:[{id:"sliderInput",namedArgs:{inputId:"numChicks",label:"Number of Chicks",min:1,max:15,value:5,width:"100%",step:1}},{id:"radioButtons",namedArgs:{inputId:"distFacet",label:"Facet Distribution By",choices:{"Diet Type":"Diet","Measure Time":"Time"}}}]}]},{id:"grid_card_text",namedArgs:{area:"header",content:"Chick Weights",alignment:"center",is_title:!1}},{id:"grid_card_plot",namedArgs:{area:"dists"}},{id:"grid_card_plot",namedArgs:{area:"linePlots"}}]},chickWeightsGridTemplate={title:"Chick Weights Grid",description:"Plots investigating the ChickWeights built-in dataset",uiTree:navbarTree$1,otherCode:{serverLibraries:["ggplot2"],serverFunctionBody:` output$linePlots <- renderPlot({ obs_to_include <- as.integer(ChickWeight$Chick) <= input$numChicks chicks <- ChickWeight[obs_to_include, ] @@ -248,7 +248,7 @@ output$plot <- renderPlotly({ ) |> add_histogram() }) -`}},app_templates=[gridGeyserTemplate,sidebarPlotGridTemplate,chickWeightsNavbar,chickWeightsGridTemplate];function templateToAppContents($,rA){const tA=$.outputType==="SINGLE-FILE"?templateToSingleFileInfo($):templateToMultiFileInfo($);return generateFullAppScript(tA,{include_info:!0})}function templateToSingleFileInfo($){const{uiTree:rA,otherCode:{uiExtra:tA="",serverExtra:AA="",serverFunctionBody:eA="",serverLibraries:nA=[]}}=$,oA=`${SCRIPT_LOC_KEYS.packages} +`}},app_templates=[gridGeyserTemplate,sidebarPlotGridTemplate,chickWeightsNavbar,chickWeightsGridTemplate];function templateToAppContents($,rA){const tA=templateToSingleFileInfo($);return generateFullAppScript(tA,{include_info:!0})}function templateToSingleFileInfo($){const{uiTree:rA,otherCode:{uiExtra:tA="",serverExtra:AA="",serverFunctionBody:eA="",serverLibraries:nA=[]}}=$,oA=`${SCRIPT_LOC_KEYS.packages} ${tA} ui <- ${SCRIPT_LOC_KEYS.ui} @@ -260,17 +260,7 @@ server <- function(input, output) { shinyApp(ui, server) -`;return{ui_tree:rA,scripts:{app_type:"SINGLE-FILE",app:oA},language:"R",app_type:"SINGLE-FILE",app:{code:oA,packages:["shiny",...nA]}}}function templateToMultiFileInfo($){const{uiTree:rA,otherCode:{uiExtra:tA="",serverExtra:AA="",serverFunctionBody:eA="",serverLibraries:nA=[]}}=$,oA=`${SCRIPT_LOC_KEYS.packages} - -${tA} -ui <- ${SCRIPT_LOC_KEYS.ui} -`,iA=`${writeRLibraryCalls(nA)} - -${AA} -server <- function(input, output) { - ${indentLineBreaks(eA)} -} -`;return{app_type:"MULTI-FILE",scripts:{app_type:"MULTI-FILE",ui:oA,server:iA},language:"R",ui_tree:rA,ui:{code:oA,packages:["shiny",...nA]},server:{code:iA}}}const styles$5="",FULL_WIDTH_PX=1260,FULL_HEIGHT_PX=800;function AppTemplatePreview({uiTree:$,width_px:rA}){const tA=FULL_HEIGHT_PX*(rA/FULL_WIDTH_PX),AA=rA/FULL_WIDTH_PX;return jsx("div",{className:"AppTemplatePreview",style:{width:`${rA}px`,height:`${tA}px`,"--full-w":`${FULL_WIDTH_PX}px`,"--full-h":`${FULL_HEIGHT_PX}px`,"--shrink-ratio":AA},children:jsx("div",{className:"template-container",children:jsx(UiNode,{path:[],node:$})})})}function getLayoutType($){return $.id==="grid_page"?"grid":"navbarPage"}const layoutIcons={grid:gridIcon,navbarPage:navbarIcon},PADDING_PX=5,inlineVariableStyles$1={"--card-pad":`${PADDING_PX}px`};function TemplatePreviewCard({info:{title:$,uiTree:rA,description:tA},onSelect:AA,width_px:eA,selected:nA}){const oA=getLayoutType(rA),iA=layoutIcons[oA],lA=eA-2*PADDING_PX;return jsxs(Tooltip,{placement:"bottom",children:[jsx(TooltipTrigger,{asChild:!0,children:jsxs("article",{className:"AppTemplateCard","aria-label":"App template preview card",onClick:AA,style:inlineVariableStyles$1,"data-selected":nA,children:[jsx("div",{className:"preview-container",children:jsx(AppTemplatePreview,{uiTree:rA,width_px:lA})}),jsxs("footer",{children:[jsx("span",{children:$}),jsx("img",{src:iA,alt:`${oA} layout icon`,title:`${oA} layout app`,className:"layout-icon"})]})]})}),jsx(MarkdownTooltipContent,{content:tA})]})}function useRequestTemplate(){const{sendMsg:$}=useBackendConnection(),rA=useLanguageMode();return React.useCallback(AA=>{$({path:"UPDATED-APP",payload:templateToAppContents(AA)})},[$,rA])}const allLayoutTypes=["grid","navbarPage"];function filteredTemplates($){return app_templates.filter(({uiTree:rA})=>{const tA=getLayoutType(rA);return!!$.layoutTypes.includes(tA)})}function useFilteredTemplates({outputChoices:$}){const rA=useRequestTemplate(),[tA,AA]=React.useState({layoutTypes:allLayoutTypes}),[eA,nA]=React.useState(null),[oA,iA]=React.useState($==="USER-CHOICE"?"SINGLE-FILE":$),lA=cA=>{nA(pA=>pA===cA?null:cA)},aA=React.useMemo(()=>filteredTemplates(tA),[tA]);return React.useEffect(()=>{eA&&!aA.map(cA=>cA.title).includes(eA)&&nA(null)},[eA,aA]),{filterState:tA,setFilterState:AA,shownTemplates:aA,selectedTemplate:eA,setSelectedTemplate:lA,selectedOutput:oA,setSelectedOutput:iA,finishSelection:()=>{const cA=aA.find(({title:uA})=>uA===eA);if(!cA)return;const pA=uiNodeTocode(cA.uiTree,"R",{remove_namespace:!0});rA({...cA,...pA,outputType:oA})}}}const outputTypes=["SINGLE-FILE","MULTI-FILE"],outputTypeLabel={"SINGLE-FILE":"Single file mode","MULTI-FILE":"Multi file mode"};function OutputTypeForm({selectedOutput:$,setSelectedOutput:rA}){return jsxs("form",{className:"AppTypeForm",children:[jsx("legend",{children:"Generate app in:"}),outputTypes.map(tA=>{const AA=outputTypeLabel[tA];return jsxs("div",{className:"labeled-form-option",children:[jsx("input",{type:"radio",id:`${tA}-choice`,name:AA,value:tA,checked:tA===$,onChange:eA=>rA(tA)}),jsx("label",{htmlFor:`${tA}-choice`,children:AA})]},tA)})]})}const layoutLabels={grid:"Grid",navbarPage:"Tabs"};function TemplateFiltersForm({filterState:$,setFilterState:rA}){const{layoutTypes:tA}=$;return jsx("form",{className:"TemplateFiltersForm",onSubmit:AA=>{AA.preventDefault()},children:jsxs("fieldset",{"aria-label":"App layout type filters",children:[jsx("legend",{children:"Show templates based on selected layouts:"}),jsx("div",{className:"layout-options",children:allLayoutTypes.map(AA=>{const eA=layoutLabels[AA],nA=tA.includes(AA);return jsxs("div",{className:"labeled-form-option",children:[jsx("input",{type:"checkbox",id:`${AA}-choice`,name:eA,value:AA,checked:nA,onChange:()=>{rA({...$,layoutTypes:nA?tA.filter(oA=>oA!==AA):[...tA,AA]})}}),jsx("label",{htmlFor:`${AA}-choice`,children:eA})]},AA)})})]})})}const PREVIEW_WIDTH_PX=294,inlineVariableStyles={"--card-w":`${PREVIEW_WIDTH_PX}px`};function TemplatePreviewGrid({selectedTemplate:$,setSelectedTemplate:rA,templates:tA=app_templates}){return tA.length===0?jsx("div",{className:"TemplatePreviewGrid empty-results",children:"No app templates fit current filters. Try broadening your search."}):jsx("div",{className:"TemplatePreviewGrid",style:inlineVariableStyles,children:tA.map(AA=>jsx(TemplatePreviewCard,{info:AA,selected:AA.title===$,onSelect:()=>{rA(AA.title)},width_px:PREVIEW_WIDTH_PX},AA.title))})}function TemplateChooserView($){const{filterState:rA,setFilterState:tA,shownTemplates:AA,selectedTemplate:eA,setSelectedTemplate:nA,finishSelection:oA,selectedOutput:iA,setSelectedOutput:lA}=useFilteredTemplates($),aA=eA!==null,sA=aA?"Next":"Select a template";return jsx(EditorLayout,{main:jsx(TemplatePreviewGrid,{templates:AA,selectedTemplate:eA,setSelectedTemplate:nA}),left:jsxs(Fragment,{children:[jsx(PanelHeader,{children:"Choose App Template"}),jsxs("div",{className:"TemplateChooserSidebar",children:[jsx("section",{className:"instructions",children:"Hover over a template to see a description and what elements are used. Select the desired template and click next to edit."}),jsx(TemplateFiltersForm,{filterState:rA,setFilterState:tA}),$.outputChoices==="USER-CHOICE"?jsx(OutputTypeForm,{selectedOutput:iA,setSelectedOutput:lA}):null,jsx(Button,{disabled:!aA,onClick:oA,"aria-label":aA?"Start editor with selected template":"Need to select a template to proceed","data-balloon-pos":"right",children:sA})]})]})})}const elementsPalette="_elementsPalette_qmlez_1",OptionContainer="_OptionContainer_qmlez_18",OptionItem="_OptionItem_qmlez_24",OptionIcon="_OptionIcon_qmlez_33",OptionLabel="_OptionLabel_qmlez_41",classes$2={elementsPalette,OptionContainer,OptionItem,OptionIcon,OptionLabel};function buildStaticFormInfo($,rA){const tA={};for(const AA in $)tA[AA]=convertDynamicInfoToStatic($[AA],rA);return tA}function convertDynamicInfoToStatic($,rA){const tA={...$};for(const AA in tA){const eA=tA[AA];typeof eA=="function"&&(tA[AA]=eA(rA))}return tA}function getDefaultSettings($){const rA={};for(const tA in $){const AA=$[tA],eA="optional"in AA,nA="useDefaultIfOptional"in AA;if(eA&&!nA)continue;const oA=AA.defaultValue;rA[tA]=typeof oA=="function"?oA():oA}return rA}function UiElementIcon({id:$}){const{title:rA,settingsInfo:tA,description:AA=rA,default_node:eA}=getUiNodeInfo$1($),nA=getUiNodeIcon($),oA=eA?{id:$,...eA}:{id:$,namedArgs:getDefaultSettings(tA)},iA=useMakeDraggable({node:oA});return nA===void 0?null:jsxs(Tooltip,{placement:"right",children:[jsx(TooltipTrigger,{asChild:!0,children:jsx("div",{className:classes$2.OptionContainer,children:jsxs("div",{className:classes$2.OptionItem,"data-ui-name":$,...iA,children:[jsx("img",{src:nA,alt:rA,className:classes$2.OptionIcon}),jsx("label",{className:classes$2.OptionLabel,children:rA})]})})}),jsx(MarkdownTooltipContent,{content:AA})]})}const categoryOrder=Object.keys({Utilities:1,Inputs:1,Outputs:1,Layout:1,gridlayout:1,Tabs:1,Containers:1,Cards:1,Plotting:1,Uncategorized:1});function sortByCategory($,rA){const tA=categoryOrder.indexOf($.category),AA=categoryOrder.indexOf(rA.category);return tAAA?1:0}function filterToLanguage($,rA){switch(rA){case"R":return $.r_info!==void 0;case"PYTHON":return $.py_info!==void 0}}function ElementsPalette(){const $=useLanguageMode(),rA=registered_ui_nodes.filter(tA=>filterToLanguage(tA,$)).sort(sortByCategory).map(tA=>tA.id);return jsxs(Fragment,{children:[jsx(PanelHeader,{children:"Elements"}),jsx("div",{className:classes$2.elementsPalette,children:rA.map(tA=>jsx(UiElementIcon,{id:tA},tA))})]})}const styles$4="";function UnknownArgumentsRender({settings:$,settingsInfo:rA,onSettingsChange:tA}){const AA=inANotInB(Object.keys($),Object.keys(rA));return AA.length===0?null:jsxs("section",{className:"unknown-arguments-list",children:[jsx("div",{className:"divider-line",children:jsx("label",{children:jsxs(Tooltip,{placement:"left",children:[jsx(TooltipTrigger,{children:jsx("span",{children:"Unknown arguments"})}),jsx(TooltipContent,{children:jsx("div",{children:"Arguments present in UI code but not known about or editable by the shinyuieditor"})})]})})}),jsx("ul",{className:"unknown-form-fields","aria-label":"Unknown arguments list",children:AA.map(eA=>jsxs("li",{className:"unknown-argument","aria-label":"Unknown argument",style:{cursor:"default"},children:[jsx("code",{"aria-label":printValueOfUnknownArg($[eA]),"data-balloon-pos":"left",style:{cursor:"inherit"},children:eA}),jsx(PopoverButton,{popoverContent:`Remove \`${eA}\` argument`,use_markdown:!0,onClick:()=>tA(eA,{type:"REMOVE"}),type:"button",placement:"left",children:jsx(SvgTrash,{})})]},eA))})]})}function isUnknownUiFunction($){return isKnownShinyUiNode($)?$.id==="unknownUiFunction":!1}const MAX_VALUE_PRINT=50;function printValueOfUnknownArg($){let rA=JSON.stringify(isUnknownUiFunction($)?$.namedArgs.text:$);return rA.length>MAX_VALUE_PRINT+4&&(rA=rA.substring(0,MAX_VALUE_PRINT),rA+="..."),"Value: "+rA}function FormBuilder($){const{settings:rA,onSettingsChange:tA,renderInputs:AA,node:eA,nodePath:nA}=$,oA=knownArgumentInputs($);let iA;return AA?iA=AA({inputs:oA,settings:rA,onSettingsChange:tA}):iA=jsx(Fragment,{children:Object.entries(oA).map(([lA,aA],sA)=>jsx(React.Fragment,{children:aA},lA+eA.id+nA.join("-")))}),jsxs("form",{className:"FormBuilder flex flex-grow flex-shrink-0 flex-col",onSubmit:disableDefaultSubmit,children:[iA,jsx(UnknownArgumentsRender,{...$})]},eA.id+nA.join("-"))}const disableDefaultSubmit=$=>{$.preventDefault()},non_rendered_input_types=new Set(["omitted","ui-node"]);function knownArgumentInputs({app_tree:$,node:rA,nodePath:tA,settings:AA,settingsInfo:eA,onSettingsChange:nA}){const oA={};for(const iA in eA){const lA=eA[iA];if(!is_object(lA)||!("inputType"in lA)||!("defaultValue"in lA)||non_rendered_input_types.has(lA.inputType))continue;const aA=AA[iA],sA={...lA,name:iA,value:aA,onUpdate:cA=>nA(iA,cA)};oA[iA]=jsx(SettingsInput,{...sA},rA.id+iA+tA.join("-"))}return oA}function buildServerInsertion({server_position:$,snippet:rA,language:tA}){const AA=tA==="R"?0:2,eA=$.server_fn.end.row+AA;let nA=`${indent_text_block(rA,$.indent,!0)} +`;return{ui_tree:rA,scripts:{app:oA},language:"R",app:{code:oA,packages:["shiny",...nA]}}}const styles$5="",FULL_WIDTH_PX=1260,FULL_HEIGHT_PX=800;function AppTemplatePreview({uiTree:$,width_px:rA}){const tA=FULL_HEIGHT_PX*(rA/FULL_WIDTH_PX),AA=rA/FULL_WIDTH_PX;return jsx("div",{className:"AppTemplatePreview",style:{width:`${rA}px`,height:`${tA}px`,"--full-w":`${FULL_WIDTH_PX}px`,"--full-h":`${FULL_HEIGHT_PX}px`,"--shrink-ratio":AA},children:jsx("div",{className:"template-container",children:jsx(UiNode,{path:[],node:$})})})}function getLayoutType($){return $.id==="grid_page"?"grid":"navbarPage"}const layoutIcons={grid:gridIcon,navbarPage:navbarIcon},PADDING_PX=5,inlineVariableStyles$1={"--card-pad":`${PADDING_PX}px`};function TemplatePreviewCard({info:{title:$,uiTree:rA,description:tA},onSelect:AA,width_px:eA,selected:nA}){const oA=getLayoutType(rA),iA=layoutIcons[oA],lA=eA-2*PADDING_PX;return jsxs(Tooltip,{placement:"bottom",children:[jsx(TooltipTrigger,{asChild:!0,children:jsxs("article",{className:"AppTemplateCard","aria-label":"App template preview card",onClick:AA,style:inlineVariableStyles$1,"data-selected":nA,children:[jsx("div",{className:"preview-container",children:jsx(AppTemplatePreview,{uiTree:rA,width_px:lA})}),jsxs("footer",{children:[jsx("span",{children:$}),jsx("img",{src:iA,alt:`${oA} layout icon`,title:`${oA} layout app`,className:"layout-icon"})]})]})}),jsx(MarkdownTooltipContent,{content:tA})]})}function useRequestTemplate(){const{sendMsg:$}=useBackendConnection(),rA=useLanguageMode();return React.useCallback(AA=>{$({path:"UPDATED-APP",payload:templateToAppContents(AA)})},[$,rA])}const allLayoutTypes=["grid","navbarPage"];function filteredTemplates($){return app_templates.filter(({uiTree:rA})=>{const tA=getLayoutType(rA);return!!$.layoutTypes.includes(tA)})}function useFilteredTemplates({}){const $=useRequestTemplate(),[rA,tA]=React.useState({layoutTypes:allLayoutTypes}),[AA,eA]=React.useState(null),nA=lA=>{eA(aA=>aA===lA?null:lA)},oA=React.useMemo(()=>filteredTemplates(rA),[rA]);return React.useEffect(()=>{AA&&!oA.map(lA=>lA.title).includes(AA)&&eA(null)},[AA,oA]),{filterState:rA,setFilterState:tA,shownTemplates:oA,selectedTemplate:AA,setSelectedTemplate:nA,finishSelection:()=>{const lA=oA.find(({title:sA})=>sA===AA);if(!lA)return;const aA=uiNodeTocode(lA.uiTree,"R",{remove_namespace:!0});$({...lA,...aA})}}}const layoutLabels={grid:"Grid",navbarPage:"Tabs"};function TemplateFiltersForm({filterState:$,setFilterState:rA}){const{layoutTypes:tA}=$;return jsx("form",{className:"TemplateFiltersForm",onSubmit:AA=>{AA.preventDefault()},children:jsxs("fieldset",{"aria-label":"App layout type filters",children:[jsx("legend",{children:"Show templates based on selected layouts:"}),jsx("div",{className:"layout-options",children:allLayoutTypes.map(AA=>{const eA=layoutLabels[AA],nA=tA.includes(AA);return jsxs("div",{className:"labeled-form-option",children:[jsx("input",{type:"checkbox",id:`${AA}-choice`,name:eA,value:AA,checked:nA,onChange:()=>{rA({...$,layoutTypes:nA?tA.filter(oA=>oA!==AA):[...tA,AA]})}}),jsx("label",{htmlFor:`${AA}-choice`,children:eA})]},AA)})})]})})}const PREVIEW_WIDTH_PX=294,inlineVariableStyles={"--card-w":`${PREVIEW_WIDTH_PX}px`};function TemplatePreviewGrid({selectedTemplate:$,setSelectedTemplate:rA,templates:tA=app_templates}){return tA.length===0?jsx("div",{className:"TemplatePreviewGrid empty-results",children:"No app templates fit current filters. Try broadening your search."}):jsx("div",{className:"TemplatePreviewGrid",style:inlineVariableStyles,children:tA.map(AA=>jsx(TemplatePreviewCard,{info:AA,selected:AA.title===$,onSelect:()=>{rA(AA.title)},width_px:PREVIEW_WIDTH_PX},AA.title))})}function TemplateChooserView($){const{filterState:rA,setFilterState:tA,shownTemplates:AA,selectedTemplate:eA,setSelectedTemplate:nA,finishSelection:oA}=useFilteredTemplates($),iA=eA!==null;return jsx(EditorLayout,{main:jsx(TemplatePreviewGrid,{templates:AA,selectedTemplate:eA,setSelectedTemplate:nA}),left:jsxs(Fragment,{children:[jsx(PanelHeader,{children:"Choose App Template"}),jsxs("div",{className:"TemplateChooserSidebar",children:[jsx("section",{className:"instructions",children:"Hover over a template to see a description and what elements are used. Select the desired template and click next to edit."}),jsx(TemplateFiltersForm,{filterState:rA,setFilterState:tA}),jsx(Button,{disabled:!iA,onClick:oA,"aria-label":iA?"Start editor with selected template":"Need to select a template to proceed","data-balloon-pos":"right",children:iA?"Next":"Select a template"})]})]})})}const elementsPalette="_elementsPalette_qmlez_1",OptionContainer="_OptionContainer_qmlez_18",OptionItem="_OptionItem_qmlez_24",OptionIcon="_OptionIcon_qmlez_33",OptionLabel="_OptionLabel_qmlez_41",classes$2={elementsPalette,OptionContainer,OptionItem,OptionIcon,OptionLabel};function buildStaticFormInfo($,rA){const tA={};for(const AA in $)tA[AA]=convertDynamicInfoToStatic($[AA],rA);return tA}function convertDynamicInfoToStatic($,rA){const tA={...$};for(const AA in tA){const eA=tA[AA];typeof eA=="function"&&(tA[AA]=eA(rA))}return tA}function getDefaultSettings($){const rA={};for(const tA in $){const AA=$[tA],eA="optional"in AA,nA="useDefaultIfOptional"in AA;if(eA&&!nA)continue;const oA=AA.defaultValue;rA[tA]=typeof oA=="function"?oA():oA}return rA}function UiElementIcon({id:$}){const{title:rA,settingsInfo:tA,description:AA=rA,default_node:eA}=getUiNodeInfo$1($),nA=getUiNodeIcon($),oA=eA?{id:$,...eA}:{id:$,namedArgs:getDefaultSettings(tA)},iA=useMakeDraggable({node:oA});return nA===void 0?null:jsxs(Tooltip,{placement:"right",children:[jsx(TooltipTrigger,{asChild:!0,children:jsx("div",{className:classes$2.OptionContainer,children:jsxs("div",{className:classes$2.OptionItem,"data-ui-name":$,...iA,children:[jsx("img",{src:nA,alt:rA,className:classes$2.OptionIcon}),jsx("label",{className:classes$2.OptionLabel,children:rA})]})})}),jsx(MarkdownTooltipContent,{content:AA})]})}const categoryOrder=Object.keys({Utilities:1,Inputs:1,Outputs:1,Layout:1,gridlayout:1,Tabs:1,Containers:1,Cards:1,Plotting:1,Uncategorized:1});function sortByCategory($,rA){const tA=categoryOrder.indexOf($.category),AA=categoryOrder.indexOf(rA.category);return tAAA?1:0}function filterToLanguage($,rA){switch(rA){case"R":return $.r_info!==void 0;case"PYTHON":return $.py_info!==void 0}}function ElementsPalette(){const $=useLanguageMode(),rA=registered_ui_nodes.filter(tA=>filterToLanguage(tA,$)).sort(sortByCategory).map(tA=>tA.id);return jsxs(Fragment,{children:[jsx(PanelHeader,{children:"Elements"}),jsx("div",{className:classes$2.elementsPalette,children:rA.map(tA=>jsx(UiElementIcon,{id:tA},tA))})]})}const styles$4="";function UnknownArgumentsRender({settings:$,settingsInfo:rA,onSettingsChange:tA}){const AA=inANotInB(Object.keys($),Object.keys(rA));return AA.length===0?null:jsxs("section",{className:"unknown-arguments-list",children:[jsx("div",{className:"divider-line",children:jsx("label",{children:jsxs(Tooltip,{placement:"left",children:[jsx(TooltipTrigger,{children:jsx("span",{children:"Unknown arguments"})}),jsx(TooltipContent,{children:jsx("div",{children:"Arguments present in UI code but not known about or editable by the shinyuieditor"})})]})})}),jsx("ul",{className:"unknown-form-fields","aria-label":"Unknown arguments list",children:AA.map(eA=>jsxs("li",{className:"unknown-argument","aria-label":"Unknown argument",style:{cursor:"default"},children:[jsx("code",{"aria-label":printValueOfUnknownArg($[eA]),"data-balloon-pos":"left",style:{cursor:"inherit"},children:eA}),jsx(PopoverButton,{popoverContent:`Remove \`${eA}\` argument`,use_markdown:!0,onClick:()=>tA(eA,{type:"REMOVE"}),type:"button",placement:"left",children:jsx(SvgTrash,{})})]},eA))})]})}function isUnknownUiFunction($){return isKnownShinyUiNode($)?$.id==="unknownUiFunction":!1}const MAX_VALUE_PRINT=50;function printValueOfUnknownArg($){let rA=JSON.stringify(isUnknownUiFunction($)?$.namedArgs.text:$);return rA.length>MAX_VALUE_PRINT+4&&(rA=rA.substring(0,MAX_VALUE_PRINT),rA+="..."),"Value: "+rA}function FormBuilder($){const{settings:rA,onSettingsChange:tA,renderInputs:AA,node:eA,nodePath:nA}=$,oA=knownArgumentInputs($);let iA;return AA?iA=AA({inputs:oA,settings:rA,onSettingsChange:tA}):iA=jsx(Fragment,{children:Object.entries(oA).map(([lA,aA],sA)=>jsx(React.Fragment,{children:aA},lA+eA.id+nA.join("-")))}),jsxs("form",{className:"FormBuilder flex flex-grow flex-shrink-0 flex-col",onSubmit:disableDefaultSubmit,children:[iA,jsx(UnknownArgumentsRender,{...$})]},eA.id+nA.join("-"))}const disableDefaultSubmit=$=>{$.preventDefault()},non_rendered_input_types=new Set(["omitted","ui-node"]);function knownArgumentInputs({app_tree:$,node:rA,nodePath:tA,settings:AA,settingsInfo:eA,onSettingsChange:nA}){const oA={};for(const iA in eA){const lA=eA[iA];if(!is_object(lA)||!("inputType"in lA)||!("defaultValue"in lA)||non_rendered_input_types.has(lA.inputType))continue;const aA=AA[iA],sA={...lA,name:iA,value:aA,onUpdate:cA=>nA(iA,cA)};oA[iA]=jsx(SettingsInput,{...sA},rA.id+iA+tA.join("-"))}return oA}function buildServerInsertion({server_position:$,snippet:rA,language:tA}){const AA=tA==="R"?0:2,eA=$.server_fn.end.row+AA;let nA=`${indent_text_block(rA,$.indent,!0)} `;return tA==="R"&&(nA=` ${nA}`),{snippet:nA,insert_at:{row:eA,column:0}}}function GoToSourceBtns({node:$}){const{sendMsg:rA}=useBackendConnection(),{server_aware:tA,language:AA}=useMetaData();if(!tA||!$)return null;const eA=getUiNodeInfo$1($.id)[AA==="PYTHON"?"py_info":"r_info"],nA="output_bindings"in eA?eA.output_bindings:null,oA="input_bindings"in eA?eA.input_bindings:null;return jsxs("div",{children:[nA?jsx(GoToOutputsBtn,{language:AA,serverOutputInfo:nA,node:$,sendMsg:rA}):null,oA?jsx(GoToInputsBtn,{serverInputInfo:oA,node:$,sendMsg:rA}):null]})}function useUpToDateServerLocations(){const $=useCurrentAppInfo(),rA=useTsParser(),[tA,AA]=React.useState(null);return React.useEffect(()=>{if($.mode!=="MAIN")return;const eA=generateFullAppScript($,{include_info:!1});rA(eA).then(({server_locations:nA})=>{if(!nA)throw new Error("Could not parse app scripts");AA(nA)})},[$,rA]),tA}function GoToOutputsBtn({language:$,serverOutputInfo:rA,node:{namedArgs:tA},sendMsg:AA}){const eA=useCurrentAppInfo(),nA=useUpToDateServerLocations();if(!(eA.mode==="MAIN"&&nA))return null;const{outputIdKey:oA="outputId"}=rA,iA=typeof oA=="string"?oA:oA(tA),lA=tA[iA];if(typeof lA!="string")return null;const aA=nA.output_positions[lA];return jsx(PopoverButton,{popoverContent:aA?"Show output declaration in app script":"Create output binding in app server",placement:"left",variant:"regular",onClick:()=>{if(aA)AA({path:"SELECT-SERVER-CODE",payload:{positions:aA}}),Q$1("Highlighted output declaration in server");else{const sA=buildServerInsertion({server_position:nA.server_fn,snippet:buildSnippetText({language:$,output_id:lA,output_info:rA}),language:$});AA({path:"INSERT-SNIPPET",payload:sA}),Q$1("Inserted output binding in server")}},children:aA?"Show in server":"Generate server code"})}function GoToInputsBtn({serverInputInfo:$,node:{namedArgs:rA},sendMsg:tA}){const AA=useCurrentAppInfo(),eA=useUpToDateServerLocations();if(!(AA.mode==="MAIN"&&eA))return null;const nA=typeof $=="boolean"?"inputId":$,oA=typeof nA=="string"?nA:nA(rA),iA=rA[oA];if(typeof iA!="string")return null;const lA=eA.input_positions[iA];return lA?jsx(PopoverButton,{popoverContent:`Find uses of bound input (\`input$${iA}\`) in app script`,use_markdown:!0,placement:"left",variant:"regular",onClick:()=>{tA({path:"SELECT-SERVER-CODE",payload:{positions:lA}}),Q$1("Highlighted uses of input variable in server")},children:"Find in server"}):null}function buildSnippetText({language:$,output_id:rA,output_info:{renderScaffold:tA}}){return $==="PYTHON"?generatePythonOutputBinding(rA,tA):generate_r_output_binding(rA,tA)}function getNamedPath($,rA){const tA=$.length;let AA=[];for(let eA=0;eA<=tA;eA++){const nA=getNode(rA,$.slice(0,eA));if(nA===void 0)break;AA.push(getUiNodeTitle(nA.id))}return AA}const container$2="_container_1fh41_1",node="_node_1fh41_12",classes$1={container:container$2,node};function PathBreadcrumb({tree:$,path:rA,onSelect:tA}){const AA=getNamedPath(rA,$),eA=rA.length;return jsx("div",{className:classes$1.container,"aria-label":"Path to selected node",children:AA.map((nA,oA)=>{const iA=oA===eA;return jsx("div",{className:classes$1.node,"aria-label":iA?"current selection":"ancestor of selection",onClick:iA?void 0:()=>tA(rA.slice(0,oA)),children:nA},nA+oA)})})}var objectOmit=omit;function omit($,rA){var tA={};typeof rA=="string"&&(rA=[].slice.call(arguments,1));for(var AA in $)(!$.hasOwnProperty||$.hasOwnProperty(AA))&&rA.indexOf(AA)===-1&&(tA[AA]=$[AA]);return tA}function useUpdateSettings($){const rA=useDispatch(),tA=useCurrentSelection(),AA=useSetCurrentSelection(),eA=useDeleteNode(tA),[nA,oA]=reactExports.useState(tA!==null?safeGetNode($,tA):null),iA=reactExports.useRef(!1),lA=reactExports.useCallback(cA=>{tA&&iA.current&&rA(UPDATE_NODE({path:tA,node:cA}))},[rA,tA]);return reactExports.useEffect(()=>{iA.current=!1,oA(null),tA!==null&&oA(safeGetNode($,tA))},[$,tA]),reactExports.useEffect(()=>{nA&&lA(nA)},[nA,lA]),{currentNode:nA,updateArgumentsByName:(cA,pA)=>{oA(uA=>({...uA,namedArgs:{...uA==null?void 0:uA.namedArgs,[cA]:pA}})),iA.current=!0},deleteArgumentByName:cA=>{oA(pA=>pA===null?pA:{...pA,namedArgs:objectOmit(pA.namedArgs??{},cA)}),iA.current=!0},selectedPath:tA,setNodeSelection:AA,deleteNode:eA}}function safeGetNode(...$){try{return getNode(...$)}catch{return console.warn("Failed to get node. Args:",$),null}}function SettingsPanel({app_tree:$}){const{currentNode:rA,updateArgumentsByName:tA,deleteArgumentByName:AA,selectedPath:eA,setNodeSelection:nA,deleteNode:oA}=useUpdateSettings($);if(eA===null)return jsx("div",{children:"Select an element to edit properties"});const iA=eA.join(".");if(rA===null)return jsxs("div",{children:["Error finding requested node at path ",iA]});const lA=eA.length===0,{id:aA,namedArgs:sA}=rA,cA=getUiNodeInfo$1(aA),pA=buildStaticFormInfo(cA.settingsInfo,rA),uA=getUiNodeSettingsRenderer(aA);return jsxs(Fragment,{children:[jsx(PanelHeader,{children:"Properties"}),jsx($44d7e150ebc754d2$export$e926676385687eaf,{fallbackRender:SettingsPanelErrorFallback,children:jsxs("div",{className:"flex flex-col py-vertical-spacing px-horizontal-spacing h-100 overflow-auto",children:[jsx("div",{className:"flex-shrink-0",children:jsx(PathBreadcrumb,{tree:$,path:eA,onSelect:nA})}),jsx(FormBuilder,{app_tree:$,settings:sA,settingsInfo:pA,renderInputs:uA||void 0,node:rA,nodePath:eA,onSettingsChange:(gA,fA)=>{switch(fA.type){case"UPDATE":tA(gA,fA.value);return;case"REMOVE":AA(gA);return}}},iA+aA),jsx(GoToSourceBtns,{node:rA}),jsx("div",{className:"mt-auto py-vertical-spacing flex flex-col justify-around items-center gap-vertical-spacing",children:!lA&&jsxs(Button,{className:"text-danger flex items-center justify-start h-[40px] w-100 border-0",onClick:gA=>{gA.stopPropagation(),oA()},"aria-label":"Delete Selected Node",title:"Delete Selected Node",variant:"delete",type:"button",children:[jsx(SvgTrash,{className:"text-2xl"}),"Delete Element"]})})]})})]})}const SettingsPanelErrorFallback=$=>jsx(GeneralErrorView,{header:"Error rendering settings panel",generateIssueLink:rA=>generateGhIssueURL({title:"Error rendering settings panel",body:`Error rendering settings panel: ${generateSerializedStateForError(rA)}`,labels:["Settings-Panel"]}),...$}),message_for_user="_message_for_user_ygrfp_1",message_container="_message_container_ygrfp_6",error_msg="_error_msg_ygrfp_24",styles$3={message_for_user,message_container,error_msg};function MessageForUser({children:$}){return jsx("div",{className:styles$3.message_for_user,children:jsx("div",{className:styles$3.message_container,children:$})})}function ErrorMessagePrinter({msg:$}){const rA=$.split(` diff --git a/inst/editor/build/index.html b/inst/editor/build/index.html index b5b62f8eb..0298dd301 100644 --- a/inst/editor/build/index.html +++ b/inst/editor/build/index.html @@ -26,7 +26,7 @@ Learn how to configure a non-root public URL by running `npm run build`. --> Shiny UI Editor - + diff --git a/inst/editor/playwright/backend-server.spec.ts b/inst/editor/playwright/backend-server.spec.ts index aec4efa12..6ad368f2b 100644 --- a/inst/editor/playwright/backend-server.spec.ts +++ b/inst/editor/playwright/backend-server.spec.ts @@ -30,9 +30,6 @@ test("Template chooser can change between templates mid-session", async ({ .first() .click(); - // Make sure we're in single-file output mode - await page.getByLabel("Single file mode").check(); - await page .getByRole("button", { name: "Start editor with selected template" }) .click(); @@ -58,9 +55,6 @@ test("Template chooser can change between templates mid-session", async ({ // Make sure we're back in the template view await expect(page.locator(`text=Choose App Template`)).toBeVisible(); - // Switch to multi-file output mode - await page.getByLabel("Multi file mode").check(); - // Select last template and go into editor await page .getByRole("article", { name: "App template preview card" }) @@ -81,12 +75,6 @@ test("Template chooser can change between templates mid-session", async ({ // 2) The contents are different from the previous view (the actual app previewed changed) const secondPreviewAppContents = await previewAppBody.innerHTML(); expect(firstPreviewAppContents).not.toBe(secondPreviewAppContents); - - const multiFileModeFiles = await backendServer.get_app_folder_contents(); - // Contains both ui and server files and doesn't contain an app.r file - expect(containsAppFile(multiFileModeFiles, "ui")).toBe(true); - expect(containsAppFile(multiFileModeFiles, "server")).toBe(true); - expect(containsAppFile(multiFileModeFiles, "app")).toBe(false); }); test("Ending on template chooser will clear any template files written", async ({ diff --git a/inst/editor/playwright/visual-regression.spec.ts-snapshots/Template-Chooser-visual-regression-1-chromium-darwin.png b/inst/editor/playwright/visual-regression.spec.ts-snapshots/Template-Chooser-visual-regression-1-chromium-darwin.png index b098e1525d399d4043b0b2b3d07e3da9c90d3414..18e8a08fe02aa94910fd1bd4647a587da3032284 100644 GIT binary patch delta 14454 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 Tsgi!+HTV^?Kg<4bdGNmg$91O@ delta 21803 zcmb@u1z1$=yDmOhSb&YR0V1uE(iS+Rw8VhY-66T~L*Y{dbSP<*?(P^Akp{_;28p4D zp@y6|@4&au|98&*?Q8GVyJ9sk^eo9 z!o`!^Pad7&V1E-4)4w2yk~wnp?kT?Tv+=b?=-DT8@%!-`QdIU+jfhQRexS$YZ7-?! zA@`lGn5MHGcf7OLlOiv3dJ=jOf=~Hkp6<8#;+Q{-vHupAT4-#bgcK~VyA^9vYU+}v zJ*Sn^wh*58GpCok;K=LYggzgVe|dEE44zu^`HEUudqJ^vL0fiRw)?Ku>^hI|cs4eT zf0saoEw9m<-pVO$C?U#+LNZZQjJzx3cVH7vm8^-zpc1|{+clcILhk5i7`EvaWFc+KXOIbZA zg@L&`mDv%gwz28{>LWq#xh4196(bGC{Yho@2DBAM?d4io$)kB8Z&mDgU9-WF*+}+` z<37FsKkMvy6tsmR!8Lk1lh0NXhrR8`m-^?8(y|firoPl!@U|#{iF&b_ zA|K{=so~qaeB965+<9l;)SPTszQWhp^II|KP0fcC?ZS-bm$e2I6cwWSHRpjrm!9NPru)@-$R^#K*g*cmLK!}!-r=NrtCc>Rdjimzn@6n z)#VM8WX(8z+Jooby@yiO=7BY-CUP>TuQAWdQzct<^oJ>^Kdw9jb0jRq4ylQFzuj8q z`!s^cuB?0xJ$d}N<<3qcz5lP%$BwLf)n#Wn-R9<2Pmn0pP*|VxsFNJ;2|HrRwV49@ zC1j43*FAd9l8SSY(Vxai9Fd)!^=SmFbxn4g>RRd9#%G$EZ!Y}#bLrwmmKEpNhZ=yr;9<2U&5sKp2dmUsasiP-4hfX$a1luVG)Ov z7#JA7yn38dX58d_`O>BNHXew6Mg4H3jz_H5Pc{$;J_v8@^Ug$kvHD2)z~r|8v**0A z+j|Cf!x2pH86Rb5XDhTv3xv1Np7!99H=X_&qDPpepW;7y*a_$Dl+4n5zap4M-Oveo zC0=EQzIOS=#ns2csE<&2LUo2ukI9#0Nc#XWw> zDkqWrnQ4RAv(nS$ObS?2$fRwaF^`El#=Ab5D^>gam+9%L3lJ61iadgxvE;gv{JMJK zCsRaH5}Tw4uAeJbVp~{>P!S|FA5X>2&D~p^rs&qp5-x1K^9SLs%@IBf89U2iI%`U zgTvto9=qEpNCs_mi(GIbK~Q$O8BxF&CyLJU7_UX+e_RZsUfMVA`6`#RJ@@^1wZ~$F zI2yI~)2B00N|D~k_4UuN8bcYv>Z4Uc#e`oqE6z3`f1r?RS%C(E^aF0=^jFsvodw6gBP)X@b9EaE9LQL#EykQ-oH`whV z^fO?W=$BS*mm@*;ik|B`Y1hG?4LW#qMX z{E6J-`PWu`19|!$lqGc*PoRi4Ck{#S;V656FKq&8}!_Kyvqreo^9fC zN%vqQoeX!*KsI6*su9{)$oLE6wY8j;DCN!C<9j$iFZ`5G!$!(%IN{vGCGt{UnVAv`No_VOCTZ>y~MI7}JYaP?>-C7JO;zq-W4-H7#a$nMMuzmTlV%#ZARM)kavR`8K> zJ1sr!;TPUX-5KL{ z;^yXNqcqdu1BvM=>m9wr#RZ2bMp>_0{J6WrN6)Bjg*LpOB5HLLMQW)eaO}f zNqg*lj!s?_yDsmQ5EkzcY0}P3K0`uUyh_IV_wWDuHYT8@4QX@p^Q&A5)|%ke{Tjj~ za!izJ2)6-2w`#`H5jE}$MoE6z8Y=g-62#q3CmIzQSC!k1WVf{`)NO2yAX6U%Fw#8> zlY8*sb^XrQHRUIVgZou2WOXc=9U-;F$iaSVvC1N;N8h22K{D~vr!OLKJ9aoG(K~Ua zexFrpqXSavjFD1A3cYBMmBMc-F~||U8KaI;_x1JRd)rHdeD_KxSIU8Hc;U;?k+HGW zxWA5K!;wg#mw#wt1-+vTeestOE?Bq4v6>3fL>@G_&*qa#%OXw*V;LwS_CcMEO%DVyCt4Fm=gcN)&t1)NA9((ELc%)0RbIg6PKBoApL?6;Cgg*V}?uN z>ZYdsYBG)X6+Aa?JUn&kRFK`0qnPQ{Kx1R$nT=gdUEQpinVHF5-~t!|zwGQBUBUxH z8^XG$rKhvHXBT&xp9yrIot=Fj78cz&^(%8je*PV2q9(ayKc~2OQTAz7Hy)~1A?_#T z#oZdqEiNv;>2(EC@d=Kavs_Ml^c`{H;8`u-#!4P>lxe&Z5fyc1^mEGfE5WlLF?5(o z7|xNF_FA5{O`Q$X>GL;l+z73#50GCjv+7G9-)(8h^qQLZ7Q0t>xCdaNk6Vt&_OG-^ zSoLb0Qopr-+FZSKM$@1luX85Hm zSGaH8lH=myYId!gz@b%{MB9wZGA+6j0R}#u=px3<%|D*gl^|$V#0(wfQB+iz!SD9x zBWfI@4@B@Al0a`Iskd6HH#f3OCUi+4j~onXV#_F}X$+0@)W1Tc z4Yum(&{i)(5yReQpXy(jac>+V?|D&e7RL$YDhz*JmE*U&2%Cx#w^;`Pbbr?Nd?-q3 z@ck^0ki`~nWK@&_a&T_OvSVH*v$|T`6d%~zE`UmvXZ5>1YIZpI#ia5iQjM>`8ZKwKU9i!>39Ssbk@8TVRJ1`a>4M(Cfrswu}F zAq?)_R%TV-$GbTw=C}_?p{#YVYY@&p@)li|9klA@Z!?%X*p(n5>@d!>=-CTLrpjJB zCrJk3N;IwZ=9L40czuMhxuM$DA$g~+LVtT@?@xPy-q%`lH+CHD!JYgs>V(U|_(xv$ zysb+k+h((ouod7oyJx)7yV|DJk;C%ANHmzHXJjNa7^=we9TU#ZcdZGP=`2_h|UD#yB} zP++2tfnSzkjG#ViSjKn_mTb7(R-ljhR4;Kj(<-(gZU^Vsh!TF=OSslx%ZJ^YP|sO$ zGa4#Alh+?ng1sw%x7@tExh{U&D?ZSWZJFryt`7((eG%R(+WT89!0A5HD_fNC-D_<| zrq+3HTlc0i4b=NmcgCS)bx14Rd3yMS_wToao@>D2@9b+|emy}eDZeo%@XXdW*Dz^c zFThUz!_};fE~ebvTwdk4t>koN?`P;Rrh?j9$*QrH69qBAb4U4vKQDc%h$4zS->-Cn z)D;xo8+zh}Lz3>OIn-A@E2zIGk2EbAas|jWGA1%@*MYY`EgF&D87IQhS96$;O#T>5 zAT<($`>qZPUl8;_maAAcW`X*6Afkc-U`N$8<|( z08o})n)+CvcD44_xMNCw<(~><>W2?!vA?Sxsbh!#Ms8yC?X{X!5?tH3G8UWJ{C>%h z)>L;);pjC#2T8)e5!*s$1 ze!XnOHxRe2+9GQ3J&h=x#1u| z@m)1|Y-+l?^!=~DhCQ(TT(6dA!c}`RlKj2`K!P3jAWbgO4aVbWH;RXNN-Z4Tjk1Pa zxcKKX%jMR+Pq2sl=T>vR7VFiV+2-cHr;ZiujX=gpM#E{vk^O zolFSm=0{RYSu@8%D@Sh~%KlY#t|pWF7zq_Fys}5`i5@omV+;9-Kb)xwZ6d(u2!*OdczhoZI^4llv{shZhsjtrK>};FgmAAWQ~QcM}_{y@iuYR86it<+SKu+1kgQ>TO5m5Z7w- zZNkEIuhGme=ad{R)T}w*gh}#Euk(hs+ZJ3Gm&k)F*(10P!LaHmBRoz3zPFSB^~9Z_ zpO1>;T)-qjQ7?rE@Ba<@WJL7gET8{7co`8Ljh^vV?47(`rY|7y%A_7-!P3;~b-DFw3TDkA>XM5%)~+ zwRpKIoyUDJ7Y(PHDG0Nbn-pB}WIhkCrdQth_0Qrkjm#ke@~Ha+QE%)Mf#ZMX>Z!&jCBWW-0kbvubXyHbT8rC01y=x7M@|UJ$8gDGBS$$ z`dzi29z4AQ$c@%_YZab8wcTXx++7iS(bLNuQs?@#vR#ZD3|}U=)ZylcKsUyV91_zZa5$yEx-M7VnShF`5)T@6XbhmY8M@0YrvclC&?t z`q@v6c#)}-{MA9o_;_X{MwI==jjux@gLlq8vZHgt{r>&CaXbas24^`^z2;u;$lw`r z{e=A)jVF8p$-Xx~HrY4Jift~%ULc5zb1N_`*lDR-TU@#ZZtfWI@Cqz24!}7)8VW;) zCP-*%>t*xku`7Lp!LGsJj~{5}@8t1UPCj%mJ07a$`6Nx;ttHc=*3KvOUY~yR-#rS^ zs#hAH`Dj|ojMpJzbY+O(`Fqlqx zY9|u+A@B-D=zIlQpz+R3QS81H^m-b8?c6g31%&_%@FBB~)q0gTKp&GoEMfuaY`N~PLir6$dxAJM>9Q<8&^6ZFj)0sEK21kSBE zgZ^L|*I~yTmAK=jwW^+fm{0;fD?LjiWAT$bYmZ&U*e$>?0#{tE66d)w2k>BaR}mNw zpFw5eI5Ax%fxBibAMASVzI5eq_A!V|Jbi32P=aO*(m+P>BeKhE&?jVS4ETwJjqYZG zpBPE2YMzq2`_DD-H^4&S>dW;ke=%g5Fm7PF(Unfq{eTRgybBlth%n7ITw)PsUx(Lj z`uVfXxX2PDR$iC{4?qK_OpvxJkk&_kgfNLNA{F^RvE#8LIsj(&RJ$!j#KrMMw?k>N z*OGy|<$GQzd-v|$YSP|P!1gFe_QyRjEFiU!J4#I(!48rttKm{BMk%k-a{IAtw4t|h z#h82C*RNkU0a{r2enz0*pX#U{DekTLr*kC*Mr#+2P~iWUOU38?M>fjmjo45b(TU#b zP|{kmq1OtWxHP?8D&?S<$qG@yEajL)Y%?#C;OZa?^ujNuf#BZ;*evXDnRCsU*PnNs zLSCDeV_r*u(2%FC=+TU%Q%aMJlC;{FmK#I)4aks@}( zsd@SpCvf*&=9H9Uh2S8CY3uHe)@0%iWtGyyp~&@n+qi;ykpEh*PJZ(u6Ssw5G{C;g zP*z&($n{e&)ZQOK-+jDsg8L#@HF0Z1*yQKgF~5DRIJRG76N?VU56~yQ{c|_StYSp- z`Sag1`(gY zyCAXYvrWy-?MqUH<0)hII&yMys~h8W-m~sCm(M%Bc;N{$@6wlzCjcDJGD7*qN_m%e z-N!Hw*@{#d@P{x8E7%Q}o+>ZM%zOq0O&}db31-MS@m(FQ(W zSRtQ4`_Ezzm<9{bO9kCh*%oiw$G_ePVIWf54ZH3<*?*l5NFL&E z)oyy#u31+g-sj0JEl)W(IV*l|Q+IZ=og-SV}F@`w|H~&2U4B;%4ilm+XYvkIHpt$s+UasZ$6H-=Al? zWiqsK>icY5FmUxdCzl3tJPJEOn)KC=*ww$Y23=&VZJrM6dnLDi=54B(fpz?G=3f+CCAG zukZiB}TwGj)w-)bmb8%&PbnDD@ zXsf7%l8Cr&%9nfAYsT>2It?gezVq!F#@uQ0N$ss=^)(Fq6CZvEk`I^XPrjId`UMc?QRNG5G+tF8+?T*PZ{pobpAmu+s5Ov zXi$P8J;0p(MMYlzQl@PA5fZfNjVg*m)qGCQs|#C526;y-w5QozY0O#^DCf_iOBlfR)oT; zN)slJDku5`fxrsJ`Cq?E#R@N(VTY?U0CBswnnD+W zM1DPW(czh{?x=#qRXFa>s_nmipgp#9ic|JQm)F7s* zH`B6k4CKG9be=tp@LA)K-z35qFM_aMTzv0|ynIm2CD^TL=PJKu?gz;mp0tl!_!dOEg@Ps~BGzNafMbUD zdgF*1Nj~eJQinh07bYk7!0z0dxUGIyvuo+7VB_L{C=VIJ49whY?B&~a3 z)t@|h3o<#{`^P09G=F47#5^DlPO~bic8kU89AgCZt-6NBEPjy9*XEWMe-dxtm&(jr z4xec!PYQ2^y*;S^h9ba2YwXA8JJcKcJf@liHGz~3KdIcF4d1;@N^UP?H%xpV8ag;+ zLHFzZ<@TkrjaQ@J3brp@Vcx1D$!@&;n*lovN9Lpa;^h#IFI#XRSEjZbDz54(QjQbJ z@~&6`SRG)@_ovUC3Bc5%KA#@DFQ~y^q3>b@B?$z-g&qAewXQg;GEuMETu=4mUBf~} z%biqz^eFBWvrcUpF?eZ*Bq|GLck&Iz0&OZ1+eWH&&(QPt59k<;S=PKgL!YgIQF6l$ zmh^}OzMTIP%s;q1RN^}3M!uOdpjV)5Zk~QcfTXTpZrd}+7bk2td^9Mxz{Naja1NRQ zOl7sM+@(!GqGZH7XU}zdBfw~~RFmofUeN)31StN*`j9ueWsLgLrINd)_oGkHv3_j| zMrl$)!`ja{kV0 za9hmE5Uvs_HPn9e9x5&mmF<`oG_`tyJHxEHV@DyN->8Hik%cpg|9R+(Z?f=OZ{-wz zwfX|TGNumzLN>55u&3&G=a}3U@~Uh%BnU-91T5EP^!7%qJ19)}Fq2+gzunGR4N z0DFjYW6W)w0)ZIHMN~@u@R3fk6^T<YIaQ4^{ZXQ0Zw(H~Fxb2+WTqV0!xeo=k!b8*L(8h$#sSWFG+459*r7ztmbqiFtxw^4GYlysC2L;x9l9%N1nv`mRy{CW&HPq3+PZbvqV~y9=lx+1zj_oHw(0KIfna?7cod;cWq!m!$7o8j4U^6Jc2X90y{F8E9+aAuK@BSK{GJ2k5jjYtI;gRhcNJ6tm;OE^L<5ADx`YAB z+%>M9u; z?lsCqMMZ7IU5lolP1zvqw{^7j4(91o0@jR3>-sCH;T@J*so=vQQK>rpP-f@uZ8I>E#@=_7Ezc1n57g&p47>I?qp_Z zD*Mimn#RSS)|3;;ZZA*Y@&D*7#tak@_)r~f?KaGYuovRNgO`N~o#x@4<|7`cVQ(z? zU@yT!X>Y=)pf~*!tTA8C2wY9u+!O-zkL6f3{{6dmfThmeS{chRdOFb|F7n8+@4gu(!VnBCq7<^3CAlFKH@$={{CFR`%j z!707%?(Qlm+VJEIaA!1f#f{}l`>OOs@#&Y@=_l5*h5>6yTYrB#4`8C#ve!Bs4vMV} z?*b?`vIv4ugl5fL+{>%qruQF7G~QW^uQ6X{TPocrYUzM|lj&Vyk4%M(=ooSV1yItx zA^;b!b4U`$Qua5j;R`4>o@7ADT&u`f5r^*fl#O+K`+_hrQbabXLoe3946|`%w2w@# z5%CA@UuY9L>1Cg4X|nx>v2#g_e~9d#b*!3Q+goB*lnh-ws68ZC6`r`}|53kmUS^8_ z%L5*5UL7q+D~%HISi?9+XDRoE{klQ1toZg>WZ#0MPvf1!k@m}M^a2GHQ(WH;8hoY! z4&==!N3;Rs$^}LtAkaakhUyp&P3i?4o#k5zS5Z+3!2E>5l9Jah-YR!IsNJ9QI|ioir}16Q1=b9;C<;&b^)+6PeMl;fZFEee#2N!;S{iG0rz4-v*3yT%AlQ#-w|7@P_ zP4(ADC5-ZhJO^z!x#hq*#FW45sooV$m|0~WI@!>x9@o~EbBX0Lm$z9NX)|u6(_o6~ z$|LI}=04-@gPFc&K$%2Mg@+O9p@nwM5wt*C=Dfb)YR8>b@JK^+sAQPy3NIAu_)Q06*RaP%1;1G79_Z&D-4 z8m5j62R;SJFHDag>0SA2Y~9O8d?7UvsD>hu8pA-&sE}r6#$BP)Vtf~171#CFx-#Qg zg|yVv+t;D%4}c15U|;~~Re(NGv&NmF?Wrm{Y-x~3Q`I_O%%4 z?vZn{Px0h|0(N*>nwf%f9)jlAowLV}P=P;S!VK$FknA)JK8YWUmVYd5?}I}4PQ^PS z`YeNw{i@A@Nxg^*_uBf^TIVgiRW$Mlt&$iCC=s z2+PrGUB+q?bFloMS*fnUU`SB+Ozv^%mLh)z_)fo&k#g=N%OIG9dzUXqeq-@r`r}-s z`MgrT_ce>(Ht^Qme0dO7U<8X&1v0LSImam%B)h$!tl6$tt0-l4_DDf&u0NrL3>zK4 zdISFG?`q4Cpq&)p$N&X;i|bl+I|m#j>uP{P14KZtM~)7V)2f4g2Uz!Y>LbH3C`Flk zeL%8yX_=a)0`*Cm2}T9f0To;AhArEp@{p-BGp2b4y9pOAUi`lE^WdJ$WQx-@1*PX( z@K|>;`FI!}N6wk#Z=iPg(^D|P00GND_D^=zQyU5T{Ql*|Onu2Xk+> zgHAg9DHbkVs*n4`Y_sfQQbXQa9-4lxcmQ^i2VR`MbI=ULFv`BXmp0IgiA&vj*Sngi z?gW2lY+`I$CU;vz|3cZB5SxSYG2Z+6UIj zDSZUs6+sz!FY_!{Gq#0I+TOOv35t}nPDLC}o1tN+F~aT9cMEaHI#oO0APuCX++26n zRH8M!gWq3fqR#=^xlG0ATu0RD@4TFxoTD6+2lThPbNs4o%X40Jp9s^d$bpaCJUP%M zmWwGMhVUV(mF&Y50Z9OqjS6rTZEf@P`d#;|^^G&7f>1PAp!BxvHb>NN&Cz{xd2}L)v+<7Wa8`x_GLU9J1o(zPIwtNgbdDM(>|_5<;Ng5u z{sz$bWK894t4)Z3CdtN9egbfCfXXX>Y;`b`rFu$KC(fzIiP)(FQ6hU*ak08#fewH4 z(%%K$6LtCk>N<R8$AVV6V9SKHt{KApZ_{ERN z$Y6M=vtfJ!1G|VfYWP7@R#sMae!lir3{mshvt%Il13OT|50V8wrw8y-mrw4LS#-0y zt&Hk6HE{r%K|?0tOT>(6S~~kuoWuG+J|gh!&4){9hm(nvR11Q^^8|Y`)JwhLB5&uRY%|3UJMcnmS5G@O% zq(|kLZ=4tF!So4zP?kM7fWiJd0XIa!QU{;^uH}vI2+)q2!np0MT?}0qcADl~><~l? zy;|v5E}`|r7D->EbQJ1w%pc}I-L-S-B9QzpFWZ_~SX9glQtmSO>OZ7Tu>a7QgYm;I zng9bzZpuT%rN~U&;~F&+3g#q{B7o}aA5GRVittI#07UFcMbIARuN}bEKsf-1?|^>> zpdr-F!;td3Y#${ni$xgt)Fyh9nn3x9@@?J)fEg$U|7k)f_lLp$2m12{HNmqtM>&LY z78e)Aah6-#$3sO4iIk;y$a7=#I81Eq$B!SGK=1(`pQ-WAB{nvJ=ypyx@KPEfjdHiC zN!Ar^?a7* z#kmpEx@RA)sqsdiE)|kjt~`Jf9Vu=EK33TlEMHN3;b(8<+6JipH6%Rer#x9{3~G=f z_wWAmd=Dwlcb}P-A?jp|pYd}2WcMZ@L*xmhVQGpBke$C%aG22jPv(yDbpK4UY;b0F zE|MLH_Ub@xOsY6;ODV0EUB^RI;)gv36K9|R$Ob8? zkqD_&4djeHf%qlYb*_v|;1hv*6C@bY(kgXcc-rk8%Dw!#4z>k52p%8{lJHpmI5HiD z#%OqYzO^mCXE#<2u4uV)wrULG2N|B$y|a84mM1B6YzAh z;hR8m3|_FfcJ3tU>dP{24&kz{B0%gSo2+RJJyxqqy7siLPEc+P>j(kwN&I35di?#n zpxOA{>EzXdFG~mKI{&Y2t9QNtLg$Q*CIuw*^$A9N`gH#1`@@EmPV~+Lw)ow}pVTs8 zY%&j~IhD?u9Dr2+xu5?C2LHDefs6h-^ZhUE{BZyOAB%Wk=nX!Av#sfIu`o|cTV7ti zl6&Cz^+b<=*=V6yYJ7bBiEgukPBr(fU_OI`?6K4kcf9EtPl=&1{E2 z1>SBtzU5o4_n~m`sEemr*RotUkU$k3=Xs#GzH8%sX*&5}@!p)Ex(159bWb@343D!n z$?Ha*Q-=Nh3)F}1ha^e}?(+iA1Xa8cw&bE!l^w88ItzEYJLniqvFXpJ!KEe_%*y`0 zD-L_e)n={cdW@V*8QUAigEK6;HE(Wf;9+kRl-Lz7QZDIyEn{`ynPCU=%*oH1;&s`M zUX4IjdNIqYZ+oPd z5lCHyyh6ubomc2NUlxAh?7-H6e)A!S7O-F7EdgfYZWKHu(Wu>t!1rkzXmZ)Bmz zD7}NvztxXI|0*Co=1*z&U$p%H)v!VOJP1XHT7ttq|24n=7ac3~zlE&N4}1V~5(W8&fYF#7yY`>EqEH2TRbVqZM*rdkmo_3OvkYUV2m3wwvNu?2 zP*(sRvt-A4O$Tr|XAWPYIp_Y*Rt5Y2Uw2?S?5Hfy1tz8pOdN4PGJw zJ^EWw9R96^takvQPVuMcYE}CbUk&_|a+Q~+^ilxyoO0I#x<>6TZ{WIOP9um4tJro? z?96%DU_oBOPs$TMd<*y-wS`d;=|cnv^G|7@$RsGA!w7t6|NrVdgke-d*~3$`2OZ2wgtJ?Qh!U67LiL}R+veR;UDIqOT^1+$#B)`hhkeZA5syS!dp zvBqXEvM$!qzFHb#l)u~oiCvEJW{0y3Kjya33E^MqlXHo>vXp+E!ArC`{ejel2%SIb zN~uq{oV0z*veYx&|L!RqhrjgGpbWr(Qlpiv42E^s|BC=8XE2{4BLjBlKmB97#=6wp zB7|S&rmoeg&JA1;hnAu5W&py%ylJ7Mqw>TEwEVjWLF``cdgDlaJm;@r4eg5RC2OjR zL4Exi{j%~A#E-nPVeMMY^G|yCG}Y$w%bu5E`ROmuetmJ0{`E)j@xBMY6|+CPJtFh) z#CIigq}cV&$ zyPFyL9U&8Y=0GtL%U(r*2)g!!K~Xv{qDTEkSQRF*M!vS22(?FJ>>P-yRt^qqMOeCe zGI7+aosXJ%e^3+^!#3`>Pt|N+yQZ%TLVKZao)L=QXn(P6VP%DNtv(3Ieuv3jGNfp> zc50bblFyc4QkM*&QF#bdOdk|1EG)F5>%Hs-3yeH|iQs&@Yc|H>$P1PcO0Nm82F7j2 zMkMB6`9gLBnJ4`9x3}h+bL1QzU#B>&W1$U!G)(JT6-KcIhWn99@j_hm296K1ZLFOe zX(n2-wZhoc*<=V)*xgwH=zg|ao^H)89V6d?hV8t(ysEv$9A{AYv6+0XsHj-)IDpa6 zm+*N}WVR7C>e?5wfMsER#r&?kynNJm8xh0|-Ihj|Ozft%hP!+_PM@l&6mN_ z#e#f^BoC4Y8j&uoaHz;!CerRQxy7pF8S z`q4O<4ZHzUi;==9w1=_;bn)p{3&GbLj`ASc>7;jL%{$_EUCB_`EjV};C%<+*5|wB= zF<+S@O|E+FO(ISh$^1eSw*|V>qHFD5C^+co=#aKbl3Jh8*NY!KMz9WaJ=$=+{6Pv% zJ5MiCW+z~xopLgX*pZ>ZA6){pWP~PpvLt-Hew*m$N8TQfV;`z^QS$TO<$#ZPP)u5_PWW}t8j^8~N7M6o!(tb3Z0oc9{T@J*3(V4Gj zj1p9##kQNQku8etOwl41bLVP^(nWO=6O|ce{VRele?HebS#2Ebi<7X|jipZ0f$Xit zeJV^v*!r?9?b${)(o<_2n~ed;2IV6wvoCsTsNUCme76P_4n#|HDbQMx4;Dg1i`K4% z1nkw|2ldxux_!7&WN+wWtHy~iT2S$AYvn}oqAGFq?5*!F^EfZ0MRUMe{dT4z+Gj`C zrr9vdE?sb>4>kuq7n(Hs2}K;mxa1Gx)S@D*ALSNFzV4*O z0@5u3sEKEN5nX!=ye7<6JVsI$CoO@o0Lj_|Xs#Fx2|03V8P8_IRkEU>7x{W@1ZeZw2p~Wn`Zpqv`UW3Xzg617pi@OJ<^5Dqy^tFJ+ z;W8T?FK=&JF;Xk&2aO_$o(Q?3gv3D(6PIQ@YNtIY?#EzjiyZ&%VqV41mO15oMU$~f zvdA(U)$bmSE(?b-q*MYCs#+UQ(5*`2k?P0EJ0ZDr=MY(Q9Y=n60 zt^e3s8Qq&tB)Gci`&DHL%0R_ZA#PeRqMn=SmjKcMu!FX5t(h%}eW={cMn!V%$IB6Z zy;3niEW?r2)dA#(D6{rC_Esc^BHi%Zdpe`Up%M!W+6WJ2zr=YCTV>4dEs^-idj(`< zU|?WJj36hd&$SDqeYg~(cv}}Tk`jSWdwp$Vr3T0N`KN^E`b_CEvt*l65va*(~H<<)Ym!~}k2*?ufRh8Rva`{SZ&M-sGYqFealTeAE9#O@%UKCKuE zyp~YA09A~CM(xf-9_@<_XBK*@w1u^o9Q6(iu)-~<8hNflOjnq7qK~TAtDi?rlVH5Zw5!sC>qs@V-mL4BNWnJmr*%X zPBGob%@#aGeqcj62#xJxj6N1X({V?k@!c*Dn#Gc=EUt~Y&h}W&#H(WERvYP!K5f3- zk?RfU&d$!=-_6pAl-3J4Tz7_y@9al(M}mX^e0>b6-~D@K*LDLV&=N?aDwUH6wH1tV z3eaH3W;gM4q*~kG1L2TwrQ44swxQ7&eYP<{m z(W5}Yw%Z?>)B)ms@5o3vwRUa`i1^rsu9~3ffdW5etheMAte*PW3Hhi>2PF>l$p zaHFkapM_WfO!&rYR2G27~xZC<+BQ%QLJ7eQt{rUdd9p~5W-Pbn~$0O~t+fcM!i>Zqd z#l@)k@3Tz-1+ub-hewnE`Nt zJ5_>Nehmq?j&*=IE5^Or8@f=ONrYkppksL?t%@{oUNEz=wQd_Qs^kVBX}VzzC|%9J z@0_B}o2tUs5-u0CfRV(ZNI9x!YXiVJ*3J6DiSEJj*=5fV2GNCva|P8A{R7b1HQfGv z>uf~^4MFD@^(lD*GDag&L*chrobteYzE;rJ--;z4mmlKu;O|azcr{zZKV3NLO>T@4 zv{)&$y&sbCf zakVp6r#_zS(ViDndcDoh&JMBzk)J`--T;|eQNfADvRK*MOQ$aJL@Ma%>Gci|$1(_- zn}QrA$OmU(V`r!A>r33&OZ0SFTI9GZOk7h z%yC@|v_l)^r&geld&6JIeEIs@rd{ILh(;cenH&BAm5R{kS(*?dzQ-gyLy2L4MEe97 zR{96W3Ea4k3xIr4@ztCCl0flV1=P>ZLuL*#xvK(ju&?NL>dW1gV&mi!uT&XjX|_dh zX~^YzuwT4&mhF3k%h+m3RIT;ePW(>1vV^%RWB5?G9O)> zbZ@lC+QF~9T*?kX92)3}jw-L$wTC zTmv9Kn79W@F{AMbHSQS^>qY#>UjbRIkKMS}Tx#y{U?feAcZsv24(o7#OrE#bM&E$l z!b;AJ5v#qjh3b8eJgfHf!9+;1xQZvtcBKs*kCvtLB}mN@+8gsI4Ks2^irrKlD3?d- zZ{e$~^>rvcGt2m`woI$H4OQ8Aq$^36(g5j?zs2w4R}-lPej@zCP5Yv-Lw$pZt>GD| ze>jgjeuz+jE4GJzaA1yR=(D8-bV^V=2vEu9N)r5K!qC7_osETcHn9?x2ni2p9sFjK zP0rZ8-zLCDmaYv4J2dQ%{U>DlJHyZl-;m2JpSeB4rk)O2l zH#Gb`*A@E-QL}B@Ue2q)@T!!Y1`udgU6n^k6 zND^rkeSH&*+Ccg{`Q!&O&8;oc z`Btby$JZ*(RHxD3CWs5*l7>tPYYl%eiioi|YJJepFXyt5dp0IT%1uwm7$Td{Pdk?*{jgErgm8U&m6pg(bLs!8xwnnC#> zn*jf;^Akr3w|}WCliFX^Zk(Sm{UpaAe!8f;&DaEG_n99}f z*TS9l7$9mj(R7i%u(;3aS+2Q?o)3UijPV=&(I1i}HJC=}*zu%ws2i2M{@CYXUR@!H zl5|ygl|k$HRu^HDJ}f<>!r}MQmCl4uX~CG8xe>p_t-)f|M}GP@V#!f?@~>1|%2|ua;L>t;!r? zAPHI_%uxv>0!_dvOp*vl5Rw2EOb7{+VIJSPuGJs?b=SK0oOAcuXYX%+XRp0aJau$B zzPWxMyqKHs!q>NUu>`hv)E&6sq@X2eX~~Az_6lqZbzlM;DJC;)hM%3*#`|*GUOj<U*)XqS@61rY z(C2YP+!Nz0B|Nr}JHfs^*BBx^Xl`|%kv}$ejWRou*Ra0@Y|i&~URcsa2`2u6@tD>R zMeC{;m|+*Dlgk3K(ZV?evh|NT8{SpP45XmUpX}rF?9`UQ%sQJA&Uo=gzNC0x z&jiMlvStEjrKc(^X0|jT>xKuyRN!B{Ytu}oaOBmS0*swtVD&o`Eh09~zu%!AKH;*e zlKjh%UtRWUmzgwdAAJ;nGLTa~C;&l)mRnaL&FGlRP=9P4lPwZenqJ;EWis!Q9Wj`C z$T3*{rQ4!&P?CF)LqlTMyW^AxjagCh$&$wFNG*Eu6fk~+K$EPJ6O*R^XtzFTFQ zBNDBBt*xr4@(2vXKae3UOkTtTxe)sp^dAuSb$ju1DW+D^n6Mi+FMAg-mrX-K%17SG zm{i`Je9}8HK5EP-`ox5dX~jh(9I-wraWl)xpnLw8KB&9;{9KLG+6YIn{C129iCfJk zj6)KCPBZH{VJt?cdlhHT(A!fap);R~!2w?)Sf5mCCNv!|A@$w4{YH;cPOtCpUzvo2 zaR=_gm_IaXF=KqIW4QSvEmC;Y99O^u1rIQCdQ@M~rw5>D0C@_ghsCP9VZoX8kaaCX zp~z)4`xw8Io+1W49?V8km5c4ME4ivS_Z=+aBE7w`uf@-Eo?eIso}5}qj#i4Y5?P_n z46JtHw&qEEcvM<+V@Z`+u^;|{@`F?J2YYRTdJ(WOx0j2WzA_mdCZ z5weW3j!L}$w}k#&_N9&|U^}~>vPyTUTD-0N|KYI|5td&GMP!n(Jt`beJ z>ss%|M7QWP{;{1@&v}+ybi{|G$V=NFM%U+AN(#6NX%FSa(MSZ9}75my>%@J zu0SHp6%(U;tRte%MVDGu={%dJT;Y~)|?iVuWsc3h)r z0aL2g8s+afMST9@aIHAPM{c7v%mWk&ea|!4UA;j%B z%^9>iE0g+jYD{Ntgh7}F_5d;*`LfoMp5_u%21T6jm8bN{2QX8!zS=DyC61o9&+Sit z^^g?R)f={d%X(^gl|W!66ee%pR}p|R6MZf(Cq1+Wmh$%qKx?eS zqul?=U51KOoX&}Vv4dP*!qcd(Z#`}ytguXW{-nN0-S;{T{ zY53VwfTD`<&~0EuQ>jDLR%M^(uE??6%iXuB&nvjxws#gCm?X_#e~+lZW=(n@oa8&jx&s6Xi-2ALYtvPx)6GRN5{gb6b(&U(4k2Q zNR8Bh3>^}wp$7yKdJ7OBA^cDDyWd;>@4a_@_kMT1&swY}$y3fb`|Q1cd;j*Pz2H#% zgG29TK0u`9s=9Og3#p2VNn){K*d)=fx5ADdef|26xBhyrnEcyChPB^W7TCGFctiYMPyE2MJLaSD*B-q4v844v$x2e&B8s%L_st(qlVDF{)u&VFjJ5Nx zc0zUOtS~4>M<+G7i_X|9bMf;l>vo1AzGZp~w)I20)MQV+>gCp9?OHLij@R&19cMNe zA2U(}y-&!8>XeD2jfGwr8JAqWsf37^s=xbuH<;w(x5BUgAZ^K2Fzv=Q0sTOWonBoG z6C+@I=)18!z9N!Di>#X;KPJmYGK=7iv_|rEHk^EQ=edhf2-ZNo65X{m1eUF!R zn9eCZ<2G%0sUz#F36m!x`__w8y-hG^v2&?atn~_0?1KlK&Lr(iW?R1{HeOeV=FwD) zUe=!a@m*Kx-}C*GhAydsgrQfr3i{!X4+1t3)q%%GS#t zJ@uFE{n+Wrcz07o&#+2)cNPr6Q*N!@UmVgNZ;H*dLr7+2S{qs?8}Jtn^q5MZ{0eXe z>bd;{=%!?%VQzGPkBtP%X|Y?UTOsZUhD768=ec~f$_Q%9t(#16F2kv-7-3Oj%DZO zN(g!4UA?_KQmt&~QisQ9v6mx#zI%0|`PO}^(XEzS2QIEY@;6z!LGO#co_OG1Jx~d@ zOJoL&)vO4?4!~fr*Y$_)gA?qg1J6}(g8e9e;3D_@-7DDF-19Lb*jL>1;mfc?;B=qo zG>iwFuRb{XfBQJ}?;ZXC1eWpdTm1nT82@j>8%N2))b4F;dIGif=5q7jFe@LhP5#g>0U)AnP8B}fjl*uQodu z+JB88k(Y??bAW?@)gLf~eYM!V9-psR!K?COK5Jt-mZ=tBArS=^N-CA<~EYf97-s4=h3fs67`;e&>TGD3M2rogT!he*`z%|WD3=Uukc*Uyl; z|ByU@M*?9d`35s5YBTW4dk^(azC8v+=#gCxo656j=^54HP`|4197%BP%{KPER^Q+- zT;|FzC@9FhgGQtC`se?1tap^HGA%xbA0ky*d@$Hxpw6!cVPOBSK1galxELF<_tM({ zp8F;qcI_rKEuz_c76xD!*|aBtA4{BH8$HoA`4pyUGwR`Z8@{iiy*7hQ)8Vl z7w_cv`!=1ioUUUncevZLhW-5foWRnpYD4^WSVLr&-Ho~6aRx3?l%Jo!%{kFFA+cs! zOnv%=9##~O$Mavf(4KcY-!#`8E1II>*$%C)-qTrs86yfeQJZ{}8Zw_dROV_X9J<;N zx{OZmVDB(WUAmHMSYs=s;c|Dz90JnlNR%UMQg=wBn3dYfPtT-$*W1MD?NUXZsp@Fo zhQsHaCOWC-Qkc29o1lDr3xBh++w6_qvfTSi{5_kJG147a?{M}@0 zRzFDF)u>5X6tv#b7mBxpz%^G-Ph)+3eH?3)er*5PU+;lyWkrCQJ9Yngt&)zz^z`?~ zJF!mGXJ==Zm6c^yRtD=|OcdR;PxY zDt!L~B5d9ay;94h1(Pv$XJxG8M6HP7dtRGbAyLuM(U9oSt;UQ}lNcZoAV5WX&U#{L z$mYC|;yGYmgK4m@2gMuvLkx0rvf6(6^g~ehbGtZ0xmqRF@gT?f%@DiQ-_I=;uXyio zdDBm)Z~p@JDxR*pzXQjr*3KDMZuA)T_Vi$Id+r^CXNgI~gP7$gbRg;L6jg7MW!-wb$5@pzJuT4gteoBGEcVqem-?-* zHwzCP3Gxs%(`@E@AmZ);wx$_%QgsN}|Br%X*r6?JBoY~d!IXNAR9sIi zu|F9(&|^Mc*L_r8JvlkKXJ}|>RskTz%|rL=b&^y(tuqVR>#{+ca;7dk>wsdiT*XiFQ2^Tz`BKjMCn)aeT)@kqg>C!od9q706@o zg=y|9#VLaA{62CsT}ct|%k zHU|6svAD8=s5OVz7CSfmiFhIYaZ zUH)rRl`R@?Acn&EgkYy9&p=XGQ5hMTB-KE#ONQXd`wx?0U%&dgS3?uc)FyTU?_g16 z7yI(%OJIb8{(UcZ#+l(SaJXeINKQ;RRCtUfAGc>En@h%DPdv$8CIH0Czf_vSvrJ8D z?a04AKh>4pg;Y>cNf5OvoBb%X2b8uw%M?J3))at37#m+G!&2XwXVQ1xz58YcEYIlJfr~KS$m-=9MZ70oB2fy; zwb1V+;&t~9208E!2LC0cS_Ojz{R#FIYZ`(fT$aen$`Z@! z*>bF{MfUcLVnb?i(a~EQ-XjT+=v=CbHoA(I3D#1I>LPWw2*&O(=;HA9cwbuQa(h8i zX{p=heDmmc;KkuCK=%<9ymDFB6N~L5qoT5`@hVj(ntc|1s^u=(*M$a$goO0;_LgSg z!Ry3R?|phtSDT;Bh!rL7jSv~`OZvtRAV`2Agk4}f_pWMge1!A@-AfyR0@oLP^&hdM z^noJ|rqaj&M)V4%ik^cCCp&H&0buwixZ%}z-j&;3nsvlgKDqX5=V}Wd^n=$4YJq3K z`Ey))dLGLcuBN*^857`6oTEAO3k#1=EhNZPiwUTDbt+RiUg4{aA~VAag$QhcEksy8 zS}P2mJ)bUCU;ikNvH%cj_?rnCWPo9|Nm}yOR>f#A#a4apuhYIukl{(`8!Q z6M6us(DR$t(OT<&C@J6eT~;KuQT7++LuYi0I!7yQca{T*>5q?}qai7wnjqR&Uwn5> zo%4R`LTC;c?w*7E!LMK4G=vgU6YSZaNLn?&U3(G{QR>v@s!n^Ap(ro^N|Zl8dS7QVEzrb)994p{Rc;tt%W+y zSlYbop1%W9vlgg9G}pp?hXApDtJvh5F0~9***o}C4r<6w1h~LO`k8OuIA`6l{&m$s`22XLNw&+=s7C z2dSOA`D0ONf4+e2hxc}?AI@EdN9)YbijD-H$-V=&S)DNI+ws07q^g?nfnl%Ib_P7B zgabx?Q!%GJ3zr#}X)HL(piMk$!<3l z?>WO-^Y)|9UFaKA+0Y`DC-Ap@5Rk%7osDI@lbLwkO`#;3N>qn=4poV9p>dB%C1&8u zvm~_9sO%i~>l(v3ndSy{Y!UmmC0&+PVKryhW4P=}`S2Zstm&$SA`xaymZ>k@HgJYm z$Y~aiiD3dLgz+8+`NL6v$`}*uKxLLXm{nR@8XUr&6i@*mui1F1afeN0yVJ-ka6>~w ztkX~lQo(<|PZ0Xx!}Z*$A?EZEb@m9`GunnvHw-B29dB_yQrO z0ssehP3)6JK`PKW86lJ)s>wqXO#&g{@bED1 zV8NFnr)0(f zZwr7OY(E+RG^3h`{t4@J@7|9TTSyO(9XKCSuKvV$OwAlmcGkCffa~p z_1b5Axh`AptZZjrt`NL}JdX)#YA>s($j+(O?C!{^ONp+8eXHngbQG=eYNr$xtv8}_IL0iSnpn32vL{TzqE z5NY<%k=+@&l{TboI72wb zK4fUds>Eqd)B>c*_Z&)(ekK2_7cwoCQ9RwDJHla*1j3EdG?Z=8w9Nbk%akC$fB=`E zpr96V%oZ>>posjymCr33jdRMTXZ028)>PO*eu^)0bY?n7*Pd&l7mHgmYiqR;nydn- zP5KO1z!!i}KBV@GdZQtk%;>=9c)sYn*UBu8ys)Cx*tHyIe2}rM6<^82VNIXI${LaIbZ@Gg?bJqs6 z?8M2FOM^qq7kX#8Npj^rhlSpTCL>V5XaISK2n-Bdu3q7IEUb`QXYZa(4>1r9nrJAi zFd3Q&eSTIb89-}(lB)N(R|^pG{T6PZ+xg+~ac({jA_Q?bHv)lUrFAyrgu+bhtNaKR zP86YsB4I*c4y!4Eu{)h@nwy!QpASeBaA+1E1quXw%Ks_J_b&T7unkRQiIXe90CCpF z@N?M^TiL2vfABG^_A+o*v1!}{{O=PW!}|wb`4OZ6u7=IWM#(xt#Gw9syLbsR!190) zuKpCyRoLY*8G>{N_;dH;XEhnxud~39unBn6w+=9H{EeIxtA`mqGnA{Y=@v73wiUhg z*}&c%KX4Hi`&%0}D@vB@{$D#CmFGV8ua^n^3oF}UEDzi zsSX;2aKEVxX0V#_4U7lltOu2Y`6f4Xhe*yiK@OSV^%Jj^avEDeg#GF(9jk*F=j+HU z?k&E-(p@vA!^tvx06{0}#lYJQ%qru!%nHDo8xQk`h}WOE=ibKlyoG&z8MsYDYwP6C za{TTYNZj4at!0oECsnH=_X0#&5kqGoV*jb!-n}JcHhE zPl|k0Yd#O=aEIqAnC;)m`TtJ>JA43ixeG`H6D#mY0`SoQd;Kl3)6D`<^5z0X91h$| ztXsLpoIl8z1&z28h4B^^7Z1 zac~@i{+pQffxcND*pE0w`1IF2h>jVNy}{4?wJ%C=e&Ge%diFyfn+^F__^#n!bAAj7*_ zyj?CdDBcxsnqde#*8GJbQ&!=J&>`oDtwY=DR_Cjbz#lUj<~ zY1_a5^c~}lsX`&}FOPs620?|*mlmJ`xQ*A)RgG-(o-0{cC)RmxelB?6B5bOPp2(bD z(cO5XEewr}P;rjYIxgQz0Zn$W2RZ0@N=02A$T3PAf*2+vh8pZ}%VfXny) zQQ*+u(f>SG!S(;*^WgE%#)UA^9%G<^l5M8p^x)lni@HAG&Zn@iCtjm> z^mPYjxxo19mjoE}*<${ybtJB~-#>@|7XL(l*R+TtVA~$9Y>v+|HAt4?Sn$MxXf6wo z&0L_n`sORxgD?fh5EPd)t2h;vRcUH~DdoDf`v((Y(AR@f>D!$3>xuHN$&y)p^KiVy zVp8;~(`FS)c$hoQ*Iyq3inMlI9n4tpPJugj!vD01f47G!2M%oA9m@tZ7|=o3_Q|9J z|GID%3}ma8L>V0u$egKh)GS?`d?0uQW1w=%+zhaqLl&f3_Xywl4_ijw zj5QF!UFOo@^;5$dY6)^|KQon+;5Ld`uBfqbRvZ*tW{x$*4$us+nLvDESxUDJTxAo@ zWD@~9nq!WzP8Qw?bjD!Npt7pJ>&^dm#@=f*PUd0%lW{4q^-;RT2VpS_;(T5mKH6aB zvn1Q$i0kg^P6Kh^Mc{ib9NT-!6M^j<$+f5SEs3b({1>+1Um#1rl4a)bYCFHG?PU*C34VepZaOvv>YLI|DQ=<3)s)Z>cN_J zM-eKt!g9UpauFR&`=iGYe7*k3o6y~=&C>xoVDmvOO1vnzD}OyIzi51FtwWBev=X*r zZ`4}3l>-9e)G%nktmM;VMEcGBy1H?$t1bx`8{V@Sstc}RhD|+*QfC$9I584rV(*;c z{hf}Jmx&;G4B_`4L^bZv1yqa%{i||R>4(LwIe<(&-S(}6LpnFYT_>mSzZO~`bCf{MiJVSkK`VV*BpYbYzj9ZAYJg#F z(WA%wrlNvbBh&=%PzG{tc94N>1XX~VJ)xD>$fOtuf#`d@KgG9>kqd^CboZNBq0xX$ ziVodM*Nsgd3&&J!GEpX$mL^)0f3Z0ob_ua28o@C|BlatrO@Rx~9tf%yL100{%7?T< zx8el360}8iOx#J()_TFnSrJwNE|1lG0(f;>?yR<>yl)`LY@4las1vf?>tc8Da#S`$ zv{gCNPsIJAV-Y%l*4>FaTC}vGNa{3J9V?rnTjLXu-nGid&q;TB62_`B_Gl^I?Q1RR ztFI>Qv4FLOYBt1(>A7Z_BBfNPDo)kHI!(3idj>6leksuomtVxOkR`G+)b}D48R_;r zWbHaHP;VmEu6$=t-k|vz4edEL{z8U%xJ#lQtO63_avay|=Ta6br&l;Ca%%h6fb{l* z^jW`x6kL_KBLgmJ4i6OBrxR*7V|-al5WzW|%x2G}*GfG-zrYx0*2%$p zs6?6l?X?(si!SFDmubcYGu8|DH;L$;r{YV#dm#5x8GvdF_o|!A1_|8|9Gl`*C4ou}cELhUGwo+~TJAjk|EABF8@7*z*tMp z_<}5$5v{w^E95^Kuz=rLL~$hYEs97_#nV!m?DYNEN?SDJ4PTf%lNx9*TfJBkN=w&? zb&OWOyt2PQgxby#x4i*lxA$`hhSf9LlM2c=hq+}d6%Gq(qtYJBh1?qFLS)?DC{1Cc@(DLo5;cAD3b}o6gy%Li;_5 z3=WZ#A`Q*Hu?Zi7vUVU5_PxTLt-$pxxjlW{UMf8jv!_qpKUa5;&D^Ji?PI89);JSl zJcjmu!|g4iRsz`CE5U&p*(P0 zxCpa5hnl9PR78ZSj`^7-$ZB6|5rKZTz}qBsAu9l%=gcL~;Nt12BAf|cS2wrz1^a#I z3E*d3nj`sR9wkuEGe<4$!~E^Ge?LddJdH4@v>~B!jMP-$c8Tgu%-Di``ttI!QQC0Q zx!UcfohG^ELC4y7T6U%#Sv!y#?>Pecs>X3(IXh4)_5SAvm-aSR$dB}{P)he z3sA(s87W~B@I(o~{yjlt4|Nn+mHL9XsjNjq{k@Q)w}DI9Qr*4R_{!8}*RIn6X|A5} zpfyY7S2_S4ZXl3+1?_@e>cEJQL7EU4N*%A*JGTpx!?9hwU9HB9Z*XG$3MFhQuPDp2 zJ&rvNgz8gNy|K}Y?(I@VIXQ{yvUbRTTIm68Kr?Y>2&k(h#hcWnN=-FG*rq1XXa#n) zk^-upogMa^9wB>Zr;eFzV{&9Su*ko0*FTBUTWg49*5Jl={g?b!K)G!Sw{Yt?O|I3R z)6Zg*=NGmgK3AhwR6WawUMklWCags2yIfmlbJD}Mde?^_jtyr!W?wW#)pNK!y5%c3 z3LZkHS8Q!{Chz6Xq{M6z5AYI1sMRw0717HBtYu3^pI%s?as? zUKwc7qVl6slVnm<>G_r%6b&Gyqr@6E%MjgbtV+vH@#>sIrM?tRqKu{OjE(J3pgpFL zJwU-k-%Zs*IHqOUFp}=q)ivDj9^i^B4cN3B^Uf_}ePl(V$z8f^s4;7&S+y>nL56OP z@6lHbAZXufk6ZNzwdIv{4kAfGtd!nKDs!#&HZNgd7wti%(((xJk$_54wsAH2<0H|X z+Flph+rqIx*4Rh;u5#w4vtL1i`|^BO#bhyiqk&T}ho|BE^(x&r9R@a{rk{Xfp$(o6 zn)+PcTa%%ad>bfZ>WyV%k&CX`gcirIH;21+M3%Md~BuJdc_VbAL8cJ4995_=I; zVHggxTsbFlzEfOx=jjHMnPXSvZI5M7i9}(Rxdnd^vRKmTfov_nIe^}bKme_TmHs^v zPEix|Yf#r1>k-232xvDJwCm-7Vx*!A>4pTnvIb&(Z7UhS&c!dA&GMp|MiI`V^x#S%E(NCgE2EX3Y!Vf@Lke?`}3LWK1sXxDFiUsdD=a%7wQ6K1#IWUWr)dP2?t(GB`ln@X z9XGtJbzU4dNxHJU79kuWk4g>b3CDx%>luh#@7HeZtw3^@E?wdWwHj!Ta=Vg2(&X~F zDpk^hMbW8{rdTf$@JyILQ7{uv{Pf#OmZ}r*RS%8LGLFO4K7Lk8Z_aK}tmyHxvaM9k zm{^i(5zEK!FmJ{9o8r#9Bib--@a&U#WWOpaBEV_xjSy%a*04ZO9X!+BK=#!Ph}!0U zz$bw=&zbdQ;;P7^EWmsZzoYVVNAw{#fYy*(Yr9NirSp!1U0H-!bxaj{(_tB@%YMI? zR~~ZYdJ7-Sy}VdSc?VEDFiZzXGHjMS@%;G~fa+Tn_4#Wtp^UJ|DSl%rndOoz4H)vENN&*jj{m2LxE>IFY9!^K0?S85tR_UTe~_7b_uX>V}1faNBbP z?q#l~_VIU^5W}h*U5@OaKH0sin<1=OvmjD9GoS8lOzERZr&hAmL90^FxDID|5C*Hq zfsifIy}678+F6vUPE5c*rDkZDNhGev=-Q=^Se%%yVi9JNH3`duhn(J9cSI0NRZ@2I zcL*t}GbH7QJCn6g?auO8ZDrutJ)QmDs5vkc)_ouo^j?$q{T!EVRZ~~S$5KSbM^ZE? zCumdPrSo@u$BWadZHaMCetz7{DUF@N3sQL-*QMsVF_GDWMsM8QD>Fqu& zJou#_S@?*BuzH>LM?-5!SbZyBXC}@NZsv?38dPrF7+IdAu6}d?%|MR0<@dH2B@%dyMtg3a(8&R=l_%TU@(#Y zm+i$|66SCHwLDkB*MB6~xa0r7>u&zv4$rN>{5yvSDbz~#mL1!>0Zl}Wdg+NZh2M@#oWE*@Kk-mn zkozD^&FrUx^>aIKkA(AE>e#pDz=&zC*48GOWvMq@Lqkl)mb&srEGtJmxhf7C9ts@} zOtk)0(2SyewZCd|UNFgAr8+y|N%EK%C|!Z0-s12OQ%#%jdTmaABy5c&FJqWt_G{O5 z=xks$w*U+dm$CK8_#4>))n8@< z8~JYf#MKGggege%v*&^dW?m$~zB~ilMuUj&^W*;@Kc1^!eyeZz3I;XF+w89Q@Jb%t z4y=yXRi+*Nd~ITEVrc2eu{Z9}!{HS7Gbgs=I;^ZsL^totAI8qLCl)-lgFVqy>m z*g~q1sgqBz;hy4NTHX-yd+(R}xqcQg=_Ysm+`LBYbks-0;kz3)#Pyw;CoL{Y@(N-x zBRBUOER_4qb6ck@oURn6@TGedd|MO5d3D+4hrBTXQ|GtlYrj}iy!hUh{AnIhZ4FJ! ztj`YhrF!YGuVMRcn&mo;*B36F$MglIB0O35PMLNCUh}Updi^m#I2Cza(z`2fmdqWBP6|=NGrzx>S*Yr{e)( zd+7p2OX}Y~UjUPLE>Z7aJ~_v3^J@A82dXLKC}&SBl9R2=St%MDfyxeVFLulF%j!|> zYBM}kavE)AG@w6``*pr3MCg=i-GL-#xuBJNdg_=R4#^lFMDtZVd*zh#J5Z*I;A z0EykSx+#L2??*s^N0fx3^9qz+$CxlBYm@t(f+ow++-6GP&C+~E#V!H`+MR5^bUW_w zCTC4=m+ejWn{oOv2Iv1J!;Z{<%m{d9?WAbS5s8@Xa5xb#4 zlsi=0oK06g6D=v{8Z4Ie2BqlcIZBu!gTfwH02K7-v8!{zf1G^^#~M6r(&(kWVaAB` z5G+?D&#!i@Fy?zA#8sNBZA^8D;SJ42IJ-SD?OTmI#5mF^U*6poGE>Du10C)dqlQkrAu zZa1CIjY9K&aov!EZj0vuFYm(JhI=}P*>?Q0iS335=kMm;7OklJ&0DhOVoVFZF|BL; zJ;k#6@UyVIqVZDC+Bc})dCkGRo54>-+dR+b6-rymPb7+-jOltyC=GU8C?F#aEHSpDDACHfJ8{j<~Kh;Ig-)e^p>^$(sS&GRg^!=-f^bQcc zGrY{kfP|5S1U*@}e)Wjcd0F5wH~o}=!m&EwHFh!I=JrRe7S&b;^wP(@WS^vWy)A!Z z9i<%aTWRB4nfa{eb>7d;M560w6@qzudVl8roRLME%%;Y8Z}tx{`uRfzE|;#12?Sk+ zTX#T7RiS%z(SjcRD3SCRElU=XY2C9kASS2+LncgzL3ZhxVefw-ziK?+-F66xfH#g`_BpHbwxg4DDMn`R#Uw)O~U^5&4fxbt~g+sd6g0C0>qTe9i5&Cc{t zz98`6QJ@}Q+!1V*=fK4;LY)Br!E^BItyjnNf$1&>2z>c< z`{A80)m9L_od4UcAOi4GP5NQnQ#icw^NryD(GVH{B&!X1yrJ9jH)}>d$4VfIY2Jd# zn_IXA!YA;@;u9AGKv9o-R1|B25>sAzwdksa(A~U|C2n&qI6NFNu)F7Wr+LGY62Her0d7-njhd^|YK9O$%Ggw~U=1U%&j}S<{q3riF8|#rGmd7yoGS z{PFyc7H@0Jd6V6Sw!TbNF#q*|*Ja_C9WaJzqOzcv`uP}F@tXgSkAEK!@?8Dg{{^BX y5Yc=wM;I@+_WJqw=R3JS{`cP~{jXoSxIcSH|IS?SH=lO~e$C{U!k-;}|Nj81@!ARi delta 21527 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 delta 42257 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 diff --git a/inst/editor/playwright/visual-regression.spec.ts-snapshots/Template-Chooser-visual-regression-1-firefox-linux.png b/inst/editor/playwright/visual-regression.spec.ts-snapshots/Template-Chooser-visual-regression-1-firefox-linux.png index a9c1e957486510bbaeeea54ad86d8949eae62d28..4608348076b89e132dc85f2140bfc6eb7b91d11d 100644 GIT binary patch delta 34246 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 cWe*T}h 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�hUetdd8pk^xm6S}xQnzg}F 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�EM|riXG{*pruzN`s3JsxcV- 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 F{}13S(PjVu delta 39476 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 diff --git a/inst/editor/playwright/visual-regression.spec.ts-snapshots/Template-Chooser-visual-regression-1-webkit-linux.png b/inst/editor/playwright/visual-regression.spec.ts-snapshots/Template-Chooser-visual-regression-1-webkit-linux.png index 005106c94cbd2f52bc1fbebb515e28a1dd0944eb..5cc53976304ad13832eda233475ac53a939aa80b 100644 GIT binary patch delta 16118 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 delta 20292 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ⅅYD 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 diff --git a/inst/editor/src/assets/app-templates/app_templates.ts b/inst/editor/src/assets/app-templates/app_templates.ts index 149ec3156..9f1969c65 100644 --- a/inst/editor/src/assets/app-templates/app_templates.ts +++ b/inst/editor/src/assets/app-templates/app_templates.ts @@ -1,16 +1,12 @@ import type { MessageToBackendByPath } from "communication-types"; import type { AppInfo, LanguageMode } from "communication-types/src/AppInfo"; import type { - MultiFileTemplateSelection, - SingleFileTemplateSelection, + TemplateSelection, TemplateInfo, } from "communication-types/src/AppTemplates"; import { generateFullAppScript } from "../../ui-node-definitions/code_generation/generate_full_app_script"; -import { - SCRIPT_LOC_KEYS, - writeRLibraryCalls, -} from "../../ui-node-definitions/code_generation/generate_ui_script"; +import { SCRIPT_LOC_KEYS } from "../../ui-node-definitions/code_generation/generate_ui_script"; import { indentLineBreaks } from "../../ui-node-definitions/code_generation/utils"; import { chickWeightsGridTemplate } from "./templates/chickWeightsGrid"; @@ -26,19 +22,14 @@ export const app_templates: TemplateInfo[] = [ ]; export function templateToAppContents( - selection: SingleFileTemplateSelection | MultiFileTemplateSelection, + selection: TemplateSelection, language: LanguageMode ): MessageToBackendByPath["UPDATED-APP"] { - const app_info = - selection.outputType === "SINGLE-FILE" - ? templateToSingleFileInfo(selection) - : templateToMultiFileInfo(selection); + const app_info = templateToSingleFileInfo(selection); return generateFullAppScript(app_info, { include_info: true }); } -function templateToSingleFileInfo( - template_info: SingleFileTemplateSelection -): AppInfo { +function templateToSingleFileInfo(template_info: TemplateSelection): AppInfo { const { uiTree, otherCode: { @@ -65,58 +56,12 @@ shinyApp(ui, server) return { ui_tree: uiTree, scripts: { - app_type: "SINGLE-FILE", app: code, }, language: "R", - app_type: "SINGLE-FILE", app: { code, packages: ["shiny", ...serverLibraries], }, }; } - -function templateToMultiFileInfo( - template_info: MultiFileTemplateSelection -): AppInfo { - const { - uiTree, - otherCode: { - uiExtra = "", - serverExtra = "", - serverFunctionBody = "", - serverLibraries = [], - }, - } = template_info; - const ui_code = `${SCRIPT_LOC_KEYS.packages} - -${uiExtra} -ui <- ${SCRIPT_LOC_KEYS.ui} -`; - const server_code = `${writeRLibraryCalls(serverLibraries)} - -${serverExtra} -server <- function(input, output) { - ${indentLineBreaks(serverFunctionBody)} -} -`; - - return { - app_type: "MULTI-FILE", - scripts: { - app_type: "MULTI-FILE", - ui: ui_code, - server: server_code, - }, - language: "R", - ui_tree: uiTree, - ui: { - code: ui_code, - packages: ["shiny", ...serverLibraries], - }, - server: { - code: server_code, - }, - }; -} diff --git a/inst/editor/src/backendCommunication/parse_python_app.tsx b/inst/editor/src/backendCommunication/parse_python_app.tsx index faae35247..52c1b9d0f 100644 --- a/inst/editor/src/backendCommunication/parse_python_app.tsx +++ b/inst/editor/src/backendCommunication/parse_python_app.tsx @@ -38,9 +38,7 @@ export async function parsePythonAppText({ const app_info: AppInfo = { language: "PYTHON", - app_type: "SINGLE-FILE", scripts: { - app_type: "SINGLE-FILE", app: app, }, ui_tree: treesitter_to_ui_tree(ui_node), diff --git a/inst/editor/src/backendCommunication/parse_r_app.tsx b/inst/editor/src/backendCommunication/parse_r_app.tsx index 72657c75f..96b21c6ea 100644 --- a/inst/editor/src/backendCommunication/parse_r_app.tsx +++ b/inst/editor/src/backendCommunication/parse_r_app.tsx @@ -20,9 +20,7 @@ async function parseSingleFileRApp( const app_info: AppInfo = { language: "R", - app_type: "SINGLE-FILE", scripts: { - app_type: "SINGLE-FILE", app, }, ui_tree: r_treesitter_to_ui_tree(ui_node), @@ -33,40 +31,11 @@ async function parseSingleFileRApp( return app_info; } -async function parseMultiFileRApp( - ui: string, - server: string, - parser: TSParser -): Promise { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { ui_node, server_locations } = parse_r_app(parser, ui, server); - - const app_info: AppInfo = { - language: "R", - app_type: "MULTI-FILE", - scripts: { - app_type: "MULTI-FILE", - ui, - server, - }, - server_locations, - ui_tree: r_treesitter_to_ui_tree(ui_node), - ui: generateRAppScriptTemplate(ui_node), - server: { code: server }, - }; - - return app_info; -} - export async function parseRAppText({ scripts, parser: parser_promise, }: AppParserArgs) { const parser = await parser_promise; - if ("app" in scripts) { - return await parseSingleFileRApp(scripts.app, parser); - } else { - return await parseMultiFileRApp(scripts.ui, scripts.server, parser); - } + return await parseSingleFileRApp(scripts.app, parser); } diff --git a/inst/editor/src/backendCommunication/staticBackend.ts b/inst/editor/src/backendCommunication/staticBackend.ts index 4304ef108..4b48c934c 100644 --- a/inst/editor/src/backendCommunication/staticBackend.ts +++ b/inst/editor/src/backendCommunication/staticBackend.ts @@ -26,16 +26,14 @@ export function setupStaticBackend({ case "READY-FOR-STATE": { getClientsideOnlyTree(defaultInfo).then(({ ui_tree, language }) => { if (ui_tree === "TEMPLATE_CHOOSER") { - messageDispatch.dispatch("TEMPLATE_CHOOSER", "USER-CHOICE"); + messageDispatch.dispatch("TEMPLATE_CHOOSER", "please"); } else { messageDispatch.dispatch("APP-INFO", { ui_tree, scripts: { - app_type: "SINGLE-FILE", app: "", }, language, - app_type: "SINGLE-FILE", app: { code: "", packages: ["shiny"], diff --git a/inst/editor/src/components/AppPreview/ShinyLivePreviewExperiment.tsx b/inst/editor/src/components/AppPreview/ShinyLivePreviewExperiment.tsx index dec405971..33f12ac1b 100644 --- a/inst/editor/src/components/AppPreview/ShinyLivePreviewExperiment.tsx +++ b/inst/editor/src/components/AppPreview/ShinyLivePreviewExperiment.tsx @@ -111,10 +111,7 @@ function AppStateToShinyLiveUrl(state: MainStateOption): string { include_info: false, }); - const url = pythonAppToShinyliveUrl( - script_text.app_type === "SINGLE-FILE" ? script_text.app : "", - "app" - ); + const url = pythonAppToShinyliveUrl(script_text.app, "app"); return url; } diff --git a/inst/editor/src/components/AppPreview/ShowAppText.tsx b/inst/editor/src/components/AppPreview/ShowAppText.tsx index c382a0ce1..ba2e520be 100644 --- a/inst/editor/src/components/AppPreview/ShowAppText.tsx +++ b/inst/editor/src/components/AppPreview/ShowAppText.tsx @@ -22,56 +22,35 @@ function AppFilesViewer({ info }: { info: AppInfo }) { include_info: false, }); - if (app_scripts.app_type === "SINGLE-FILE") { - return ( - <> -

App script

-

- The following code defines the currently being edited app. Copy and - paste it to an app.{language === "PYTHON" ? "py" : "R"}{" "} - file to use. -

- - {language === "PYTHON" ? ( -
- Want to start coding your app? - -
- ) : null} -
- -
{app_scripts.app}
-
- - ); - } - return ( <> -

App scripts

+

App script

The following code defines the currently being edited app. Copy and - paste the ui and server scripts into ui.R and{" "} - server.R files to use. + paste it to an app.{language === "PYTHON" ? "py" : "R"}{" "} + file to use.

+ + {language === "PYTHON" ? ( +
+ Want to start coding your app? + +
+ ) : null}
- -
{app_scripts.ui}
-
-
- -
{app_scripts.server}
+ +
{app_scripts.app}
); diff --git a/inst/editor/src/components/TemplatePreviews/OutputTypeForm.tsx b/inst/editor/src/components/TemplatePreviews/OutputTypeForm.tsx deleted file mode 100644 index 68d0892ca..000000000 --- a/inst/editor/src/components/TemplatePreviews/OutputTypeForm.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import React from "react"; - -import type { AppType } from "communication-types/src/AppInfo"; - -const outputTypes: AppType[] = ["SINGLE-FILE", "MULTI-FILE"]; - -const outputTypeLabel: Record = { - "SINGLE-FILE": "Single file mode", - "MULTI-FILE": "Multi file mode", -}; - -export function OutputTypeForm({ - selectedOutput, - setSelectedOutput, -}: { - selectedOutput: AppType; - setSelectedOutput: (o: AppType) => void; -}) { - return ( -
- Generate app in: - {outputTypes.map((outputType) => { - const outputLabel = outputTypeLabel[outputType]; - return ( -
- setSelectedOutput(outputType)} - /> - -
- ); - })} -
- ); -} diff --git a/inst/editor/src/components/TemplatePreviews/TemplateChooserView.tsx b/inst/editor/src/components/TemplatePreviews/TemplateChooserView.tsx index 6e28e458f..6c6661479 100644 --- a/inst/editor/src/components/TemplatePreviews/TemplateChooserView.tsx +++ b/inst/editor/src/components/TemplatePreviews/TemplateChooserView.tsx @@ -5,14 +5,11 @@ import { PanelHeader } from "../../EditorLayout/PanelHeader"; import Button from "../Inputs/Button/Button"; import { useFilteredTemplates } from "./filterTemplates"; -import { OutputTypeForm } from "./OutputTypeForm"; import "./styles.scss"; import { TemplateFiltersForm } from "./TemplateFiltersForm"; import { TemplatePreviewGrid } from "./TemplatePreviewGrid"; -export type TemplateChooserOptions = { - outputChoices: MessageToClientByPath["TEMPLATE_CHOOSER"]; -}; +export type TemplateChooserOptions = {}; export function TemplateChooserView(opts: TemplateChooserOptions) { const { filterState, @@ -21,8 +18,6 @@ export function TemplateChooserView(opts: TemplateChooserOptions) { selectedTemplate, setSelectedTemplate, finishSelection, - selectedOutput, - setSelectedOutput, } = useFilteredTemplates(opts); const canProceed = selectedTemplate !== null; @@ -51,13 +46,6 @@ export function TemplateChooserView(opts: TemplateChooserOptions) { setFilterState={setFilterState} /> - {opts.outputChoices === "USER-CHOICE" ? ( - - ) : null} -