{
  "_id": "6a398eea4c3da884a92886c4",
  "Package": "dragmapr",
  "Title": "Create Draggable Plots from Projected Geometry",
  "Version": "0.2.0",
  "Authors@R": "person(\"George\", \"Arthur\", , \"prigasgenthian48@gmail.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-1975-1459\"))",
  "Description": "Creates interactive draggable plots from grouped projected\n'sf' geometry. The primary deliverable is a browser-based 'D3'\nhelper where regions and labels can be moved freely; users\ndrag, then copy or download the resulting offset tables. Labels\ncan be derived automatically with make_region_labels(),\nsupplied directly with as_drag_labels(), and their moved\npositions saved and restored with read_label_state() and\napply_label_state(). Hierarchical spatial datasets are\nsupported via hierarchy detection, upload profiling,\nmake_hierarchy_key(), and inherit_layout(), which recommend\nparent-child groupings and propagate parent-level drag offsets\nto finer child groupings. Automatic starting layouts are\nprovided by suggest_offsets() using radial, grid, or\ndirectional algorithms. Spatial file diagnostics are available\nthrough dragmapr_diagnostics(). When a reproducible static\nimage is also needed, render_dragged_map() reconstructs the\nlayout as a 'ggplot2' plot from the source geometry plus the\nexported offset tables. Project bundles can be written with\nwrite_dragmapr_project() and rendered with\nrender_dragmapr_project(). The interactive layer is built on\nthe 'D3' library: Bostock, Ogievetsky and Heer (2011)\n<doi:10.1109/TVCG.2011.185>. Spatial data handling uses the\n'sf' package: Pebesma (2018) <doi:10.32614/RJ-2018-009>.",
  "License": "MIT + file LICENSE",
  "URL": "https://prigasg.github.io/dragmapr/",
  "BugReports": "https://github.com/PrigasG/dragmapr/issues",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Encoding": "UTF-8",
  "RoxygenNote": "7.3.3",
  "Language": "en-US",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-06-22 19:34:01 UTC",
    "User": "root"
  },
  "Author": "George Arthur [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-1975-1459>)",
  "Maintainer": "George Arthur <prigasgenthian48@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-06-22 18:31:26 UTC",
  "RemoteUrl": "https://github.com/cran/dragmapr",
  "RemoteRef": "HEAD",
  "RemoteSha": "8983f832fc8eeec4d2833177007d035f9040337e",
  "MD5sum": "b3a5cc0f47682a236e00120f25dafb9c",
  "_user": "cran",
  "_type": "src",
  "_file": "dragmapr_0.2.0.tar.gz",
  "_fileid": "bed90fcc5e1f3b05c5d7da54ea5dc5855d4306bc5e312d549168ee881e4a438e",
  "_filesize": 2790597,
  "_sha256": "bed90fcc5e1f3b05c5d7da54ea5dc5855d4306bc5e312d549168ee881e4a438e",
  "_created": "2026-06-22T19:34:01.000Z",
  "_published": "2026-06-22T19:37:14.579Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 82803113428,
      "time": 152,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7802943832"
    },
    {
      "job": 82803113432,
      "time": 155,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7802944007"
    },
    {
      "job": 82802332654,
      "time": 238,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7802883846"
    },
    {
      "job": 82803113402,
      "time": 133,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7802935492"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/27978484454",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/dragmapr",
  "_commit": {
    "id": "8983f832fc8eeec4d2833177007d035f9040337e",
    "author": "George Arthur <prigasgenthian48@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.2.0\n",
    "time": 1782153086
  },
  "_maintainer": {
    "name": "George Arthur",
    "email": "prigasgenthian48@gmail.com",
    "login": "prigasg",
    "orcid": "0000-0002-1975-1459",
    "description": "Code admirer and learner",
    "uuid": 55806509
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "ggplot2",
      "role": "Imports"
    },
    {
      "package": "grid",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "sf",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "glasstabs",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "miniUI",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "shiny",
      "role": "Suggests"
    },
    {
      "package": "shinyWidgets",
      "version": ">= 0.8.6",
      "role": "Suggests"
    },
    {
      "package": "spelling",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-26",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.2.0",
      "date": "2026-06-22"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "prigasg",
      "count": 1,
      "uuid": 55806509
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 609,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/dragmapr"
  },
  "_devurl": "https://github.com/prigasg/dragmapr",
  "_pkgdown": "https://prigasg.github.io/dragmapr/",
  "_searchresults": 0,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/dragmapr.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_cranurl": false,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-06-22"
    }
  ],
  "_exports": [
    "apply_label_offsets",
    "apply_label_state",
    "apply_offsets",
    "as_drag_annotations",
    "as_drag_labels",
    "build_branch_transition_data",
    "build_elastic_transition",
    "create_layout_snapshot",
    "detect_hierarchy_columns",
    "drag_map_prototype",
    "dragmapr_addin",
    "dragmapr_diagnostics",
    "dragmapr_iframe_bridge",
    "example_hhs_layout",
    "example_panel_layout",
    "inherit_layout",
    "layout_metrics",
    "make_branch_bloom_labels",
    "make_group_boundaries",
    "make_hierarchy_key",
    "make_labels",
    "make_region_labels",
    "prepare_dragmapr_sf",
    "profile_spatial_upload",
    "read_dragmapr_project",
    "read_dragmapr_sf_upload",
    "read_dragmapr_sf_url",
    "read_label_offsets",
    "read_label_state",
    "read_offsets",
    "recommend_dragmapr_hierarchy",
    "render_dragged_map",
    "render_dragmapr_project",
    "restore_layout_snapshot",
    "select_label_ids",
    "suggest_offsets",
    "summarise_spatial_crs",
    "transition_options",
    "validate_bloom_hierarchy",
    "write_dragmapr_project"
  ],
  "_help": [
    {
      "page": "apply_label_offsets",
      "title": "Apply label-specific offsets to a label table",
      "topics": [
        "apply_label_offsets"
      ]
    },
    {
      "page": "apply_label_state",
      "title": "Apply draggable label state to a label table",
      "topics": [
        "apply_label_state"
      ]
    },
    {
      "page": "apply_offsets",
      "title": "Apply rigid offsets to grouped sf geometries",
      "topics": [
        "apply_offsets"
      ]
    },
    {
      "page": "as_drag_annotations",
      "title": "Coerce data to draggable annotation boxes",
      "topics": [
        "as_drag_annotations"
      ]
    },
    {
      "page": "as_drag_labels",
      "title": "Coerce data to a drag label table",
      "topics": [
        "as_drag_labels"
      ]
    },
    {
      "page": "build_branch_transition_data",
      "title": "Build leaf-flip transition data",
      "topics": [
        "build_branch_transition_data"
      ]
    },
    {
      "page": "build_elastic_transition",
      "title": "Build a local elastic parent-to-child transition",
      "topics": [
        "build_elastic_transition"
      ]
    },
    {
      "page": "create_layout_snapshot",
      "title": "Save a layout snapshot for a grouped sf dataset",
      "topics": [
        "create_layout_snapshot"
      ]
    },
    {
      "page": "detect_hierarchy_columns",
      "title": "Detect parent-child grouping columns",
      "topics": [
        "detect_hierarchy_columns"
      ]
    },
    {
      "page": "drag_map_prototype",
      "title": "Write a draggable map in your browser",
      "topics": [
        "drag_map_prototype"
      ]
    },
    {
      "page": "dragmapr_addin",
      "title": "RStudio addin for the interactive drag-map prototype",
      "topics": [
        "dragmapr_addin"
      ]
    },
    {
      "page": "dragmapr_diagnostics",
      "title": "Summarise a spatial dataset for use with dragmapr",
      "topics": [
        "dragmapr_diagnostics"
      ]
    },
    {
      "page": "dragmapr_iframe_bridge",
      "title": "Build the Shiny iframe bridge JavaScript for a draggable helper",
      "topics": [
        "dragmapr_iframe_bridge"
      ]
    },
    {
      "page": "example_hhs_layout",
      "title": "Build a small explodemap-style HHS example layout",
      "topics": [
        "example_hhs_layout"
      ]
    },
    {
      "page": "example_panel_layout",
      "title": "Build a non-map panel layout example",
      "topics": [
        "example_panel_layout"
      ]
    },
    {
      "page": "inherit_layout",
      "title": "Inherit region offsets from a coarser to a finer grouping column",
      "topics": [
        "inherit_layout"
      ]
    },
    {
      "page": "layout_metrics",
      "title": "Measure mental-map stability between two layouts",
      "topics": [
        "layout_metrics"
      ]
    },
    {
      "page": "make_branch_bloom_labels",
      "title": "Build parent and child labels for branch bloom",
      "topics": [
        "make_branch_bloom_labels"
      ]
    },
    {
      "page": "make_group_boundaries",
      "title": "Build dotted group-drag boundaries for expanded groups",
      "topics": [
        "make_group_boundaries"
      ]
    },
    {
      "page": "make_hierarchy_key",
      "title": "Build composite group keys from multiple columns",
      "topics": [
        "make_hierarchy_key"
      ]
    },
    {
      "page": "make_labels",
      "title": "Derive one label anchor per draggable region",
      "topics": [
        "make_labels"
      ]
    },
    {
      "page": "make_region_labels",
      "title": "Derive one default label per draggable region",
      "topics": [
        "make_region_labels"
      ]
    },
    {
      "page": "prepare_dragmapr_sf",
      "title": "Prepare an sf object for use with dragmapr",
      "topics": [
        "prepare_dragmapr_sf"
      ]
    },
    {
      "page": "profile_spatial_upload",
      "title": "Profile a spatial upload for dragmapr",
      "topics": [
        "profile_spatial_upload"
      ]
    },
    {
      "page": "read_dragmapr_project",
      "title": "Read a dragmapr project bundle",
      "topics": [
        "read_dragmapr_project"
      ]
    },
    {
      "page": "read_dragmapr_sf_upload",
      "title": "Read an sf object from a Shiny file upload",
      "topics": [
        "read_dragmapr_sf_upload"
      ]
    },
    {
      "page": "read_dragmapr_sf_url",
      "title": "Download and read an sf object from a URL",
      "topics": [
        "read_dragmapr_sf_url"
      ]
    },
    {
      "page": "read_label_offsets",
      "title": "Read label offsets from CSV",
      "topics": [
        "read_label_offsets"
      ]
    },
    {
      "page": "read_label_state",
      "title": "Read draggable label state from CSV",
      "topics": [
        "read_label_state"
      ]
    },
    {
      "page": "read_offsets",
      "title": "Read region offsets from CSV",
      "topics": [
        "read_offsets"
      ]
    },
    {
      "page": "recommend_dragmapr_hierarchy",
      "title": "Recommend a hierarchy for dragmapr",
      "topics": [
        "recommend_dragmapr_hierarchy"
      ]
    },
    {
      "page": "render_dragged_map",
      "title": "Save the dragged layout as a static image",
      "topics": [
        "render_dragged_map"
      ]
    },
    {
      "page": "render_dragmapr_project",
      "title": "Render a static map from a Spatial Studio project bundle",
      "topics": [
        "render_dragmapr_project"
      ]
    },
    {
      "page": "restore_layout_snapshot",
      "title": "Restore a layout snapshot",
      "topics": [
        "restore_layout_snapshot"
      ]
    },
    {
      "page": "select_label_ids",
      "title": "Select a readable subset of label IDs",
      "topics": [
        "select_label_ids"
      ]
    },
    {
      "page": "suggest_offsets",
      "title": "Suggest automatic region offsets for a draggable map",
      "topics": [
        "suggest_offsets"
      ]
    },
    {
      "page": "summarise_spatial_crs",
      "title": "Summarise CRS meaning for dragmapr",
      "topics": [
        "summarise_spatial_crs"
      ]
    },
    {
      "page": "transition_options",
      "title": "Options for local elastic hierarchy transitions",
      "topics": [
        "transition_options"
      ]
    },
    {
      "page": "validate_bloom_hierarchy",
      "title": "Validate a parent-child bloom hierarchy",
      "topics": [
        "validate_bloom_hierarchy"
      ]
    },
    {
      "page": "write_dragmapr_project",
      "title": "Write a dragmapr project bundle",
      "topics": [
        "write_dragmapr_project"
      ]
    }
  ],
  "_pkglogo": "https://github.com/cran/dragmapr/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/cran/dragmapr/raw/HEAD/README.md",
  "_rundeps": [
    "class",
    "classInt",
    "cli",
    "cpp11",
    "DBI",
    "e1071",
    "farver",
    "ggplot2",
    "glue",
    "gtable",
    "isoband",
    "jsonlite",
    "KernSmooth",
    "labeling",
    "lifecycle",
    "MASS",
    "proxy",
    "R6",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "s2",
    "S7",
    "scales",
    "sf",
    "units",
    "vctrs",
    "viridisLite",
    "withr",
    "wk"
  ],
  "_vignettes": [
    {
      "source": "dragmap-demo.Rmd",
      "filename": "dragmap-demo.html",
      "title": "Dragmap demo",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2026-06-22 18:31:26",
      "modified": "2026-06-22 18:31:26",
      "commits": 1
    },
    {
      "source": "example-gallery.Rmd",
      "filename": "example-gallery.html",
      "title": "Example gallery",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Explodemap-style HHS Fixture",
        "Non-map Panels",
        "CSV Round Trip",
        "Labels, Boxes, And Connectors",
        "Selected Labels And Legend Keys",
        "Movement Context",
        "Shiny"
      ],
      "created": "2026-06-22 18:31:26",
      "modified": "2026-06-22 18:31:26",
      "commits": 1
    },
    {
      "source": "getting-started.Rmd",
      "filename": "getting-started.html",
      "title": "Getting started with dragmapr",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Toy geometry",
        "drag_map_prototype() — full parameter reference",
        "Data",
        "Labels",
        "Label styling",
        "Connectors",
        "Movement context",
        "Initial positions",
        "RStudio addin",
        "Colour palette",
        "Legend",
        "Output file and display",
        "Optional: Static rendering",
        "Running examples"
      ],
      "created": "2026-06-22 18:31:26",
      "modified": "2026-06-22 18:31:26",
      "commits": 1
    },
    {
      "source": "hhs-placeholder-shapes-demo.Rmd",
      "filename": "hhs-placeholder-shapes-demo.html",
      "title": "HHS placeholder shapes demo",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2026-06-22 18:31:26",
      "modified": "2026-06-22 18:31:26",
      "commits": 1
    },
    {
      "source": "labels-and-static-output.Rmd",
      "filename": "labels-and-static-output.html",
      "title": "Labels and static output",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Label Concepts",
        "Info Boxes And Text-only Labels",
        "Connector Lines",
        "Region Movement Plus Label Movement",
        "Legend Filtering And Movement Context",
        "Saving Static Images",
        "Rendering A Spatial Studio Project"
      ],
      "created": "2026-06-22 18:31:26",
      "modified": "2026-06-22 18:31:26",
      "commits": 1
    },
    {
      "source": "shiny-workflows.Rmd",
      "filename": "shiny-workflows.html",
      "title": "Shiny workflows",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Embed A Draggable Plot",
        "Custom Labels",
        "Export A Report Image",
        "Static Only",
        "Spatial Studio",
        "Loading veil",
        "Reusable Shiny Helpers"
      ],
      "created": "2026-06-22 18:31:26",
      "modified": "2026-06-22 18:31:26",
      "commits": 1
    }
  ],
  "_score": 3.4771212547196626,
  "_indexed": true,
  "_nocasepkg": "dragmapr",
  "_universes": [
    "cran",
    "prigasg"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-06-22T19:36:26.000Z",
      "distro": "noble",
      "commit": "8983f832fc8eeec4d2833177007d035f9040337e",
      "fileid": "93661fb0a893de429d3cc3b99ea32fc380f46b5a540fb16adfb734bc4dc178c6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27978484454"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-06-22T19:36:25.000Z",
      "distro": "noble",
      "commit": "8983f832fc8eeec4d2833177007d035f9040337e",
      "fileid": "044889c22c384fd8ba2afe0b392558c8cff9d48f4ca0bfc59ee94b1faebf5770",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27978484454"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0",
      "date": "2026-06-22T19:36:35.000Z",
      "commit": "8983f832fc8eeec4d2833177007d035f9040337e",
      "fileid": "00c7c65333ad6671c0a7d29d9ed0c9d99798dc042c7031445865422694a3b51b",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/27978484454"
    }
  ]
}