NEWS
blockr.core 0.1.3
- New exported generic
external_ctrl_vars() (with a block method) and
predicate has_external_ctrl() provide a public, polymorphic API for
resolving a board component's external_ctrl declaration into the set of
externally controllable variable names. This promotes the previously
internal block_external_ctrl_vars(), letting dependent packages dispatch
on it (e.g. for dock extensions) instead of re-reading the raw
external_ctrl attribute (#192).
blockr.core 0.1.2 (2026-04-28)
- The
mod slots in update(...) payloads for blocks, links and
stacks now uniformly expect a delta shape: a named list keyed
by entry ID, where each entry is a named list of argument values to
apply on top of the live entry.
- For
blocks, keys must be in block_external_ctrl_vars(blk) —
non-ctrl-able changes go through rm + add. Ctrl-arg writes hit
the corresponding reactiveVal in place; block_name (always
treated as ctrl-able) updates the block's registry attribute.
- For
links and stacks, deltas are merged onto the current entry
via the new update_link() / update_stack() S3 generics. The
default methods reconstruct the entry through its stored
constructor, preserving sub-class attributes. Sub-class owners
(e.g. dock_stack adding color) only need to register a method
when their constructor deviates from the convention (#175).
block_external_ctrl_vars() always includes "block_name" — every
block can be renamed through update(...) regardless of its
external_ctrl opt-in. The default ctrl plugin panel renders a
block_name field on every block card alongside any opted-in ctrl
vars. block_supports_external_ctrl() (which would now be TRUE for
every block) has been removed; the gates that used to call it have
been simplified accordingly.
- The default
block_server.block now constructs a block_name
reactiveVal per block and appends it to the vars list passed to the
ctrl plugin. Two guarded observers keep that reactiveVal in sync with
the block's block_name attribute on the board (one emits an
update(mod = ...) when the ctrl plugin writes the rv; the other
pulls registry-attr changes back into the rv). The ctrl_block_server
plugin signature is unchanged — block authors and custom ctrl plugins
see uniform vars reactiveVals.
- A blockr option
attach_default_packages can be set to opt into evaluating
block expressions with objects from default packages directly available.
- Add
ctrl_block() plugin for external block control, allowing blocks to be
driven programmatically from outside the standard block UI.
- Add
clear_board() for removing all blocks/stacks from a board.
- Add
bbquote() and helpers (., ..) for cleaner code generation via
bquote()-based quasiquotation.
- Export
custom_plugins() and custom_options() for easier board
customization.
- Add
block_metadata() for retrieving per-block metadata and attach block
metadata with defaults to block objects.
- Export test utilities (
blockr_test_exports(), new_mock_session(),
export_safely()) for use in downstream package tests.
blockr.core 0.1.1 (2025-12-06)
- Add Block-level notifications via (optional)
expr server return value
component cond.
- Export
get_board_option_value() to make available current option settings
via session$UserData.
- Introduce (optional) dependency on thematic to auto-style plots.
- Export
toolbar_ui() which takes case of the "core" toolbar UI component.
- Utility functions
chr_ply() and related, as well as miscellaneous utilities
such as set_names(), coal(), etc. are now exported for use in dependent
packages.
- Export
export_code() to make it easier for third-party generate_code()
plugin implementations.
- Use
evaluate::evaluate() to capture plots.
- Add
new_fixed_block() for applying a fixed (i.e. non-paramtetrized)
transformation to data input.
- Board server callbacks are invoked with an additional argument
session.
- Export assertion utilities such as
is_string(), is_count(), etc.
- Improved ser/des, which now includes package/constructor information for all
board, blocks, stacks and options. The corresponding infra
- Board options now contain UI/server components to provide more options for
customization. Also blocks can require certain options to be available.
- Introduces
block_render_trigger() to control per block class when to
re-render the block output.
- Rework of block notifications to provide a
reactiveValues() object
containing notification types a separate components.
- Auto-ID generation can now be customized with a default provided by the ids
package (if available).
- Use the glue package for logging/block notifications; add a glue-based text
block.
- New board restore mechanism based on
session$reload().
- Improvements to the registry: block icons and a fixed set of categories.
blockr.core 0.1.0 (2025-05-20)