{
  "_id": "6ad8fa67992ad85420b5f183",
  "Package": "paparazzi",
  "Title": "Scripted Demo Videos, Screenshots, and Tests for Web Pages",
  "Version": "0.0.1.9000",
  "Authors@R": "c(\nperson(\"Garrick\", \"Aden-Buie\", , \"garrick@adenbuie.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-7111-0077\")),\nperson(\"W.Y.\", role = \"cph\",\ncomment = \"Copyright holder of the bundled html-to-image JavaScript library\")\n)",
  "Description": "Script polished demo videos and screenshots of anything\nthat runs in a web browser, including 'Shiny' apps, 'Quarto'\ndocuments, and live websites. A pipeable interface built on\n'chromote' clicks, types, and waits the way a person would.\nWhile recording, a cursor glides between elements, text is\ntyped one character at a time, and a camera zooms and pans to\nthe action. Annotations, callouts, spotlights, captions, and\nredactions follow their elements as the page changes. Frame\ncaptures to an element or aspect ratio, emulate phones, dark\nmode, and other devices, and write MP4, WebM, or GIF files.\nWithout a recording, the same scripts run at full speed as\nbrowser tests with auto-waiting actions and retrying\nexpectations that work with 'testthat'.",
  "License": "MIT + file LICENSE",
  "URL": "https://posit-dev.github.io/paparazzi/,\nhttps://github.com/posit-dev/paparazzi",
  "BugReports": "https://github.com/posit-dev/paparazzi/issues",
  "Config/Needs/website": "av, brand.yml, gifski, png, shiny",
  "Config/roxygen2/version": "8.1.1",
  "Config/testthat/edition": "3",
  "Config/testthat/parallel": "true",
  "Config/testthat/start-first": "record, stage, example, cursor",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Collate": "'actions.R' 'annotate-callout.R' 'annotate-spotlight.R'\n'overlay.R' 'annotate.R' 'camera.R' 'caption.R' 'context.R'\n'utils-purrr.R' 'cursor.R' 'device.R' 'drag-preview.R'\n'example.R' 'expect.R' 'fonts.R' 'frame.R' 'geometry.R' 'get.R'\n'inspect.R' 'js.R' 'keys.R' 'loc.R' 'nav.R' 'open.R'\n'paparazzi-package.R' 'record.R' 'regex.R' 'resolve.R'\n'scope.R' 'screenshot.R' 'serve.R' 'shiny-input.R' 'stage.R'\n'style.R' 'utils-check.R' 'utils-examples.R' 'utils.R' 'wait.R'",
  "VignetteBuilder": "knitr",
  "Config/pak/sysreqs": "chromium make libssl-dev",
  "Repository": "https://posit-dev.r-universe.dev",
  "Date/Publication": "2026-10-21 13:42:32 UTC",
  "RemoteUrl": "https://github.com/posit-dev/paparazzi",
  "RemoteRef": "HEAD",
  "RemoteSha": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-21 17:35:44 UTC",
    "User": "root"
  },
  "Author": "Garrick Aden-Buie [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-7111-0077>),\nW.Y. [cph] (Copyright holder of the bundled html-to-image JavaScript\nlibrary)",
  "Maintainer": "Garrick Aden-Buie <garrick@adenbuie.com>",
  "_user": "posit-dev",
  "_type": "src",
  "_file": "paparazzi_0.0.1.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/9d7d4d55571e8796055ff7ad7c7843372b06add801b686fb9f8ad6c37bd2d086",
  "_filesize": 1108671,
  "_sha256": "9d7d4d55571e8796055ff7ad7c7843372b06add801b686fb9f8ad6c37bd2d086",
  "_expires": "2027-01-29T17:46:13.000Z",
  "_created": "2026-10-21T17:35:44.000Z",
  "_published": "2026-10-21T17:46:15.705Z",
  "_upstream": "https://github.com/posit-dev/paparazzi",
  "_status": "success",
  "_maintainer": {
    "name": "Garrick Aden-Buie",
    "email": "garrick@adenbuie.com",
    "login": "gadenbuie",
    "mastodon": "@grrrck@fosstodon.org",
    "bluesky": "@grrrck.xyz",
    "description": "Software engineer for Shiny at @posit-pbc",
    "uuid": 5420529,
    "orcid": "0000-0002-7111-0077"
  },
  "_jobs": [
    {
      "job": 119379180041,
      "time": 195,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12365964893"
    },
    {
      "job": 119379179812,
      "time": 187,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12367336501"
    },
    {
      "job": 119379179794,
      "time": 191,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12366767914"
    },
    {
      "job": 119379180131,
      "time": 205,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12366938563"
    },
    {
      "job": 119376874735,
      "time": 264,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12365594651"
    },
    {
      "job": 119379179776,
      "time": 192,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12367840185"
    },
    {
      "job": 119379179881,
      "time": 207,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12366972530"
    },
    {
      "job": 119379179773,
      "time": 220,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12367511596"
    },
    {
      "job": 119379179786,
      "time": 224,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12366847664"
    }
  ],
  "_buildurl": "https://github.com/r-universe/posit-dev/actions/runs/39644601297",
  "_commit": {
    "id": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
    "author": "Garrick Aden-Buie <garrick@adenbuie.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "feat: unify locator and expectation matching (#6)\n\n* feat: add regex values and JavaScript locator predicates\n\nImplements the ordered lazy locator matching contract, including eager empty-target validation, strict booleans, CSP-safe function source and shared browser regex normalization.\n\nKata: paparazzi#zm3j; design: paparazzi#9mtx\n\nVerification: locator/action/getter/scope/js seams FAIL 0 WARN 0; focused resolve additions FAIL 0 WARN 0; air and jarl clean.\n\n* feat: match shared regex values in expectations\n\nRun new scalar matchers with Chrome RegExp across text, live value, named attributes, URL and title while preserving legacy R regex and pairwise paths. Mixed attributes apply matching modes to strings only; new regex paths keep raw observed values and validate empty targets.\n\nKata: paparazzi#zm3j; design: paparazzi#9mtx\n\nVerification: mirrored matching tests and executable bundled docs example FAIL 0 WARN 0 PASS 480. Null live-property regression discriminates and is fixed without changing legacy readers.\n\n* test: pin missing-descendant predicate behavior\n\nKeep a notes-only row without a status child so relational filtering is proven to return false deterministically, independent of the late-eligibility timer. Document why predicate source is compiled via CDP rather than page-side eval.\n\nKata: paparazzi#zm3j; adversarial locator review coverage finding accepted.\n\nVerification: matching focused tests and docs sample FAIL 0 WARN 0 PASS 480.\n\n* docs: explain shared regex and predicate matching\n\nDocument JavaScript versus legacy R regex dialects, observation normalization, synchronous strict-boolean predicates, ordered filtering, trust and scope boundaries, and mode behavior in mixed attribute calls. Update bundled skill sources and the pkgdown reference index.\n\nKata: paparazzi#zm3j; design: paparazzi#9mtx\n\nVerification: new bundled testing example executed on shipped tasks app; roxygen regenerated with btw pkg document; air and jarl clean.\n\n* docs: splice mixed at",
    "time": 1792590152
  },
  "_distro": "resolute",
  "_host": "GitHub-Actions",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "chromote",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "later",
      "role": "Imports"
    },
    {
      "package": "pillar",
      "role": "Imports"
    },
    {
      "package": "processx",
      "role": "Imports"
    },
    {
      "package": "promises",
      "role": "Imports"
    },
    {
      "package": "R6",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "version": ">= 1.2.0",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "withr",
      "role": "Imports"
    },
    {
      "package": "av",
      "role": "Suggests"
    },
    {
      "package": "gifski",
      "role": "Suggests"
    },
    {
      "package": "htmltools",
      "role": "Suggests"
    },
    {
      "package": "httpuv",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    },
    {
      "package": "png",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.2.0",
      "role": "Suggests"
    },
    {
      "package": "xfun",
      "role": "Suggests"
    }
  ],
  "_owner": "posit-dev",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-39",
      "n": 188
    },
    {
      "week": "2026-40",
      "n": 256
    },
    {
      "week": "2026-41",
      "n": 161
    },
    {
      "week": "2026-42",
      "n": 42
    },
    {
      "week": "2026-43",
      "n": 11
    }
  ],
  "_tags": [],
  "_topics": [
    "browser-testing",
    "chrome",
    "chromote",
    "quarto",
    "screen-recording",
    "shiny"
  ],
  "_stars": 4,
  "_contributors": [
    {
      "user": "gadenbuie",
      "count": 1172,
      "uuid": 5420529
    }
  ],
  "_userbio": {
    "uuid": 107264312,
    "type": "organization",
    "name": "Posit, PBC",
    "followers": 1064
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/paparazzi"
  },
  "_devurl": "https://github.com/posit-dev/paparazzi",
  "_pkgdown": "https://posit-dev.github.io/paparazzi/",
  "_searchresults": 21,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/paparazzi.html",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "pz_act_blur",
    "pz_act_click",
    "pz_act_drag",
    "pz_act_focus",
    "pz_act_hover",
    "pz_act_press",
    "pz_act_scroll",
    "pz_act_select_text",
    "pz_act_type",
    "pz_annotate",
    "pz_annotate_callout",
    "pz_annotate_caption",
    "pz_annotate_clear",
    "pz_annotate_redact",
    "pz_annotate_spotlight",
    "pz_camera",
    "pz_camera_reset",
    "pz_chromote",
    "pz_close",
    "pz_cursor_hide",
    "pz_cursor_leave",
    "pz_cursor_move",
    "pz_cursor_show",
    "pz_device",
    "pz_evaluate",
    "pz_example",
    "pz_expect_attr",
    "pz_expect_checked",
    "pz_expect_class",
    "pz_expect_count",
    "pz_expect_enabled",
    "pz_expect_exists",
    "pz_expect_focused",
    "pz_expect_hidden",
    "pz_expect_in_viewport",
    "pz_expect_js",
    "pz_expect_style",
    "pz_expect_text",
    "pz_expect_title",
    "pz_expect_url",
    "pz_expect_value",
    "pz_expect_visible",
    "pz_find",
    "pz_find_first",
    "pz_find_last",
    "pz_find_nth",
    "pz_find_pop",
    "pz_find_reset",
    "pz_font_bunny",
    "pz_font_file",
    "pz_font_google",
    "pz_frame",
    "pz_get_attr",
    "pz_get_count",
    "pz_get_elements",
    "pz_get_html",
    "pz_get_rect",
    "pz_get_style",
    "pz_get_text",
    "pz_get_title",
    "pz_get_url",
    "pz_get_value",
    "pz_inspect",
    "pz_js",
    "pz_loc",
    "pz_local_page",
    "pz_nav_back",
    "pz_nav_forward",
    "pz_nav_goto",
    "pz_nav_reload",
    "pz_open",
    "pz_record",
    "pz_record_hold",
    "pz_record_pause",
    "pz_record_resume",
    "pz_record_start",
    "pz_record_stop",
    "pz_regex",
    "pz_screenshot",
    "pz_serve_command",
    "pz_serve_quarto",
    "pz_serve_shiny",
    "pz_serve_static",
    "pz_set_files",
    "pz_set_shiny_input",
    "pz_set_value",
    "pz_stage",
    "pz_stage_annotate",
    "pz_stage_fonts",
    "pz_stage_frame",
    "pz_wait",
    "pz_wait_for_js",
    "pz_wait_for_navigation",
    "pz_wait_for_shiny_idle",
    "pz_wait_for_stable",
    "pz_with_page"
  ],
  "_help": [
    {
      "page": "paparazzi-actions",
      "title": "How actions work",
      "topics": [
        "paparazzi-actions"
      ]
    },
    {
      "page": "pz_act_blur",
      "title": "Blur the focused element",
      "topics": [
        "pz_act_blur"
      ]
    },
    {
      "page": "pz_act_click",
      "title": "Click an element",
      "topics": [
        "pz_act_click"
      ]
    },
    {
      "page": "pz_act_drag",
      "title": "Drag an element to another element or by an offset",
      "topics": [
        "pz_act_drag"
      ]
    },
    {
      "page": "pz_act_focus",
      "title": "Focus an element",
      "topics": [
        "pz_act_focus"
      ]
    },
    {
      "page": "pz_act_hover",
      "title": "Hover the pointer over an element",
      "topics": [
        "pz_act_hover"
      ]
    },
    {
      "page": "pz_act_press",
      "title": "Press key combinations",
      "topics": [
        "pz_act_press"
      ]
    },
    {
      "page": "pz_act_scroll",
      "title": "Scroll the page or an element into view",
      "topics": [
        "pz_act_scroll"
      ]
    },
    {
      "page": "pz_act_select_text",
      "title": "Select text inside an element",
      "topics": [
        "pz_act_select_text"
      ]
    },
    {
      "page": "pz_act_type",
      "title": "Type text into an element",
      "topics": [
        "pz_act_type"
      ]
    },
    {
      "page": "pz_annotate",
      "title": "Mark page elements",
      "topics": [
        "pz_annotate"
      ]
    },
    {
      "page": "pz_annotate_callout",
      "title": "Add text callouts to page elements",
      "topics": [
        "pz_annotate_callout"
      ]
    },
    {
      "page": "pz_annotate_caption",
      "title": "Add a screen-space caption",
      "topics": [
        "pz_annotate_caption"
      ]
    },
    {
      "page": "pz_annotate_clear",
      "title": "Clear page annotations",
      "topics": [
        "pz_annotate_clear"
      ]
    },
    {
      "page": "pz_annotate_redact",
      "title": "Redact page elements",
      "topics": [
        "pz_annotate_redact"
      ]
    },
    {
      "page": "pz_annotate_spotlight",
      "title": "Spotlight page elements",
      "topics": [
        "pz_annotate_spotlight"
      ]
    },
    {
      "page": "pz_camera",
      "title": "Move the recording camera",
      "topics": [
        "pz_camera"
      ]
    },
    {
      "page": "pz_camera_reset",
      "title": "Reset the recording camera",
      "topics": [
        "pz_camera_reset"
      ]
    },
    {
      "page": "pz_chromote",
      "title": "Get the underlying ChromoteSession",
      "topics": [
        "pz_chromote"
      ]
    },
    {
      "page": "pz_close",
      "title": "Close a page",
      "topics": [
        "pz_close"
      ]
    },
    {
      "page": "pz_cursor_hide",
      "title": "Hide the overlay cursor",
      "topics": [
        "pz_cursor_hide"
      ]
    },
    {
      "page": "pz_cursor_leave",
      "title": "Move the overlay cursor out of the frame",
      "topics": [
        "pz_cursor_leave"
      ]
    },
    {
      "page": "pz_cursor_move",
      "title": "Move the overlay cursor to an element",
      "topics": [
        "pz_cursor_move"
      ]
    },
    {
      "page": "pz_cursor_show",
      "title": "Show the overlay cursor",
      "topics": [
        "pz_cursor_show"
      ]
    },
    {
      "page": "pz_device",
      "title": "Set the page's size and display settings",
      "topics": [
        "pz_device"
      ]
    },
    {
      "page": "pz_evaluate",
      "title": "Evaluate JavaScript in the page",
      "topics": [
        "pz_evaluate"
      ]
    },
    {
      "page": "pz_example",
      "title": "Paths to example pages and apps",
      "topics": [
        "pz_example"
      ]
    },
    {
      "page": "pz_expect_attr",
      "title": "Expect attributes",
      "topics": [
        "pz_expect_attr"
      ]
    },
    {
      "page": "pz_expect_checked",
      "title": "Expect elements to be checked",
      "topics": [
        "pz_expect_checked"
      ]
    },
    {
      "page": "pz_expect_class",
      "title": "Expect a class",
      "topics": [
        "pz_expect_class"
      ]
    },
    {
      "page": "pz_expect_count",
      "title": "Expect a number of matching elements",
      "topics": [
        "pz_expect_count"
      ]
    },
    {
      "page": "pz_expect_enabled",
      "title": "Expect elements to be enabled",
      "topics": [
        "pz_expect_enabled"
      ]
    },
    {
      "page": "pz_expect_exists",
      "title": "Expect at least one element to match",
      "topics": [
        "pz_expect_exists"
      ]
    },
    {
      "page": "pz_expect_focused",
      "title": "Expect elements to be focused",
      "topics": [
        "pz_expect_focused"
      ]
    },
    {
      "page": "pz_expect_in_viewport",
      "title": "Expect elements to be in the viewport",
      "topics": [
        "pz_expect_in_viewport"
      ]
    },
    {
      "page": "pz_expect_js",
      "title": "Expect a JavaScript predicate to hold",
      "topics": [
        "pz_expect_js"
      ]
    },
    {
      "page": "pz_expect_style",
      "title": "Expect computed styles",
      "topics": [
        "pz_expect_style"
      ]
    },
    {
      "page": "pz_expect_text",
      "title": "Expect element text content",
      "topics": [
        "pz_expect_text"
      ]
    },
    {
      "page": "pz_expect_title",
      "title": "Expect the page title",
      "topics": [
        "pz_expect_title"
      ]
    },
    {
      "page": "pz_expect_url",
      "title": "Expect the page URL",
      "topics": [
        "pz_expect_url"
      ]
    },
    {
      "page": "pz_expect_value",
      "title": "Expect element values",
      "topics": [
        "pz_expect_value"
      ]
    },
    {
      "page": "pz_expect_visible",
      "title": "Expect elements to be visible",
      "topics": [
        "pz_expect_hidden",
        "pz_expect_visible"
      ]
    },
    {
      "page": "pz_find",
      "title": "Find elements and push them as the current scope",
      "topics": [
        "pz_find"
      ]
    },
    {
      "page": "pz_find_first",
      "title": "Find the first match and push it as the current scope",
      "topics": [
        "pz_find_first"
      ]
    },
    {
      "page": "pz_find_last",
      "title": "Find the last match and push it as the current scope",
      "topics": [
        "pz_find_last"
      ]
    },
    {
      "page": "pz_find_nth",
      "title": "Find the nth match and push it as the current scope",
      "topics": [
        "pz_find_nth"
      ]
    },
    {
      "page": "pz_find_pop",
      "title": "Pop the current scope",
      "topics": [
        "pz_find_pop"
      ]
    },
    {
      "page": "pz_find_reset",
      "title": "Clear all scope, back to the root",
      "topics": [
        "pz_find_reset"
      ]
    },
    {
      "page": "pz_font_bunny",
      "title": "Declare a font from Bunny Fonts",
      "topics": [
        "pz_font_bunny"
      ]
    },
    {
      "page": "pz_font_file",
      "title": "Declare a font from a local file",
      "topics": [
        "pz_font_file"
      ]
    },
    {
      "page": "pz_font_google",
      "title": "Declare a font from Google Fonts",
      "topics": [
        "pz_font_google"
      ]
    },
    {
      "page": "pz_frame",
      "title": "Frame a capture region",
      "topics": [
        "pz_frame"
      ]
    },
    {
      "page": "pz_get_attr",
      "title": "Read an attribute of matching elements",
      "topics": [
        "pz_get_attr"
      ]
    },
    {
      "page": "pz_get_count",
      "title": "Count matching elements",
      "topics": [
        "pz_get_count"
      ]
    },
    {
      "page": "pz_get_elements",
      "title": "Describe matching elements",
      "topics": [
        "pz_get_elements"
      ]
    },
    {
      "page": "pz_get_html",
      "title": "Read the HTML of matching elements",
      "topics": [
        "pz_get_html"
      ]
    },
    {
      "page": "pz_get_rect",
      "title": "Read the geometry of matching elements",
      "topics": [
        "pz_get_rect"
      ]
    },
    {
      "page": "pz_get_style",
      "title": "Read computed styles of matching elements",
      "topics": [
        "pz_get_style"
      ]
    },
    {
      "page": "pz_get_text",
      "title": "Read the text of matching elements",
      "topics": [
        "pz_get_text"
      ]
    },
    {
      "page": "pz_get_title",
      "title": "Read the page title",
      "topics": [
        "pz_get_title"
      ]
    },
    {
      "page": "pz_get_url",
      "title": "Read the page URL",
      "topics": [
        "pz_get_url"
      ]
    },
    {
      "page": "pz_get_value",
      "title": "Read the value of matching elements",
      "topics": [
        "pz_get_value"
      ]
    },
    {
      "page": "pz_inspect",
      "title": "Inspect the current page state",
      "topics": [
        "pz_inspect"
      ]
    },
    {
      "page": "pz_js",
      "title": "Describe a JavaScript function",
      "topics": [
        "pz_js"
      ]
    },
    {
      "page": "pz_loc",
      "title": "Describe elements by CSS, matching condition, position, and scope",
      "topics": [
        "pz_loc"
      ]
    },
    {
      "page": "pz_nav_goto",
      "title": "Navigate the page",
      "topics": [
        "pz_nav_back",
        "pz_nav_forward",
        "pz_nav_goto",
        "pz_nav_reload"
      ]
    },
    {
      "page": "pz_open",
      "title": "Open a page",
      "topics": [
        "pz_open"
      ]
    },
    {
      "page": "pz_record",
      "title": "Record a block of code",
      "topics": [
        "pz_record"
      ]
    },
    {
      "page": "pz_record_hold",
      "title": "Hold the current frame while recording",
      "topics": [
        "pz_record_hold"
      ]
    },
    {
      "page": "pz_record_pause",
      "title": "Pause and resume a recording",
      "topics": [
        "pz_record_pause",
        "pz_record_resume"
      ]
    },
    {
      "page": "pz_record_start",
      "title": "Record a page interaction",
      "topics": [
        "pz_record_start"
      ]
    },
    {
      "page": "pz_record_stop",
      "title": "Stop a recording and write the video",
      "topics": [
        "pz_record_stop"
      ]
    },
    {
      "page": "pz_regex",
      "title": "Share a regular expression across locators and expectations",
      "topics": [
        "pz_regex"
      ]
    },
    {
      "page": "pz_screenshot",
      "title": "Take a screenshot",
      "topics": [
        "pz_screenshot"
      ]
    },
    {
      "page": "pz_serve_command",
      "title": "Serve an external app process with a command",
      "topics": [
        "pz_serve_command"
      ]
    },
    {
      "page": "pz_serve_quarto",
      "title": "Serve a document or project with Quarto",
      "topics": [
        "pz_serve_quarto"
      ]
    },
    {
      "page": "pz_serve_shiny",
      "title": "Run a Shiny app in a background process",
      "topics": [
        "pz_serve_shiny"
      ]
    },
    {
      "page": "pz_serve_static",
      "title": "Serve static files over HTTP",
      "topics": [
        "pz_serve_static"
      ]
    },
    {
      "page": "pz_set_files",
      "title": "Attach files to a file input",
      "topics": [
        "pz_set_files"
      ]
    },
    {
      "page": "pz_set_shiny_input",
      "title": "Set a bound Shiny input",
      "topics": [
        "pz_set_shiny_input"
      ]
    },
    {
      "page": "pz_set_value",
      "title": "Set the value of a form control",
      "topics": [
        "pz_set_value"
      ]
    },
    {
      "page": "pz_stage",
      "title": "Stage animation settings",
      "topics": [
        "pz_stage"
      ]
    },
    {
      "page": "pz_stage_annotate",
      "title": "Stage annotation style defaults",
      "topics": [
        "pz_stage_annotate"
      ]
    },
    {
      "page": "pz_stage_fonts",
      "title": "Stage fonts for annotations and captions",
      "topics": [
        "pz_stage_fonts"
      ]
    },
    {
      "page": "pz_stage_frame",
      "title": "Stage the default framing",
      "topics": [
        "pz_stage_frame"
      ]
    },
    {
      "page": "pz_wait",
      "title": "Wait while pumping the page's event loop",
      "topics": [
        "pz_wait"
      ]
    },
    {
      "page": "pz_wait_for_js",
      "title": "Wait until a JavaScript condition holds",
      "topics": [
        "pz_wait_for_js"
      ]
    },
    {
      "page": "pz_wait_for_navigation",
      "title": "Wait for a navigation to finish",
      "topics": [
        "pz_wait_for_navigation"
      ]
    },
    {
      "page": "pz_wait_for_shiny_idle",
      "title": "Wait until a Shiny page is idle",
      "topics": [
        "pz_wait_for_shiny_idle"
      ]
    },
    {
      "page": "pz_wait_for_stable",
      "title": "Wait until an element stops changing",
      "topics": [
        "pz_wait_for_stable"
      ]
    },
    {
      "page": "pz_with_page",
      "title": "Open a page that closes when a block or calling frame exits",
      "topics": [
        "pz_local_page",
        "pz_with_page"
      ]
    }
  ],
  "_pkglogo": "https://github.com/posit-dev/paparazzi/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/posit-dev/paparazzi/raw/HEAD/README.md",
  "_rundeps": [
    "AsioHeaders",
    "chromote",
    "cli",
    "cpp11",
    "curl",
    "fastmap",
    "glue",
    "jsonlite",
    "later",
    "lifecycle",
    "magrittr",
    "otel",
    "pillar",
    "pkgconfig",
    "processx",
    "promises",
    "ps",
    "R6",
    "Rcpp",
    "rlang",
    "tibble",
    "utf8",
    "vctrs",
    "websocket",
    "withr",
    "zip"
  ],
  "_vignettes": [
    {
      "source": "agents-locators-and-scopes.Rmd",
      "filename": "agents-locators-and-scopes.html",
      "title": "Agent guide: Locators and scopes",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2026-10-01 13:25:13",
      "modified": "2026-10-01 13:25:13",
      "commits": 1
    },
    {
      "source": "agents-pages-and-serving.Rmd",
      "filename": "agents-pages-and-serving.html",
      "title": "Agent guide: Pages and serving",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2026-10-01 13:25:13",
      "modified": "2026-10-01 13:25:13",
      "commits": 1
    },
    {
      "source": "agents-recording-and-staging.Rmd",
      "filename": "agents-recording-and-staging.html",
      "title": "Agent guide: Recording and staging",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2026-10-01 13:25:13",
      "modified": "2026-10-01 13:25:13",
      "commits": 1
    },
    {
      "source": "agents-screenshots-and-annotations.Rmd",
      "filename": "agents-screenshots-and-annotations.html",
      "title": "Agent guide: Screenshots and annotations",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2026-10-01 13:25:13",
      "modified": "2026-10-01 13:25:13",
      "commits": 1
    },
    {
      "source": "agents-shiny.Rmd",
      "filename": "agents-shiny.html",
      "title": "Agent guide: Shiny",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2026-10-01 13:25:13",
      "modified": "2026-10-01 13:25:13",
      "commits": 1
    },
    {
      "source": "agents-testing.Rmd",
      "filename": "agents-testing.html",
      "title": "Agent guide: Testing",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2026-10-01 13:25:13",
      "modified": "2026-10-01 13:25:13",
      "commits": 1
    },
    {
      "source": "agents.Rmd",
      "filename": "agents.html",
      "title": "paparazzi for coding agents",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2026-10-01 13:25:13",
      "modified": "2026-10-01 13:25:13",
      "commits": 1
    }
  ],
  "_score": 5.1673173347481764,
  "_indexed": true,
  "_nocasepkg": "paparazzi",
  "_universes": [
    "posit-dev",
    "gadenbuie"
  ],
  "_previous": "0.0.0.9000",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.0.1.9000",
      "date": "2026-10-21T17:38:33.000Z",
      "distro": "resolute",
      "commit": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
      "fileid": "https://r2.ropensci.org/be4a593a2491579eeec23b3554186c20d1454d97d80e8d10324ff989cff760c7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/39644601297"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.0.1.9000",
      "date": "2026-10-21T17:38:38.000Z",
      "distro": "resolute",
      "commit": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
      "fileid": "https://r2.ropensci.org/e9cc6559f9cfe788f01c6b41194144b1bf15973dcbf53d65c004161bb76d9fa4",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/39644601297"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.0.1.9000",
      "date": "2026-10-21T17:39:10.000Z",
      "commit": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
      "fileid": "https://r2.ropensci.org/932831757b71f3a4b0f2222ad7049c5e906d2224679cc0da80a518a8b0805a1b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/39644601297"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.0.1.9000",
      "date": "2026-10-21T17:44:01.000Z",
      "commit": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
      "fileid": "https://r2.ropensci.org/f5f97b752421c94844c112b7f625a0a102d383c8f698f89ff3b1812acad00aa0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/39644601297"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.0.1.9000",
      "date": "2026-10-21T17:39:41.000Z",
      "commit": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
      "fileid": "https://r2.ropensci.org/50a75bd2445f688bb258a7f23924c2a434c22490c611ec912f7c00b05f548d8c",
      "status": "success",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/39644601297"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.0.1.9000",
      "date": "2026-10-21T17:37:40.000Z",
      "commit": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
      "fileid": "https://r2.ropensci.org/5a3f8a15bf4208577058455f3de4de6e9b79b03e825fefaf20a9e3873b0471a8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/39644601297"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.0.1.9000",
      "date": "2026-10-21T17:37:32.000Z",
      "commit": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
      "fileid": "https://r2.ropensci.org/ba417ddbe482ab225c40063736ea65aaee21d23280ce633c47aa16b50f9ffe97",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/39644601297"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.0.1.9000",
      "date": "2026-10-21T17:37:26.000Z",
      "commit": "26fbf7e5c56192740bf24cbbf357959ab85ff316",
      "fileid": "https://r2.ropensci.org/7720fa937cc59566fe18c86c67b167eb54f1e2839cd2c85fd101272cfb35e65b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/posit-dev/actions/runs/39644601297"
    }
  ]
}