cd_page_def(lazy = FALSE) starts any other page's server with the session.scale_colour_identity(), guide = "none") is drawn. The
customize panel lists a chart's legend entries before the chart is drawn, such a scale gives no labels, and the
chart showed "subscript out of bounds" in place of itself (the regional continuum heat map of cd2030.core 1.4.0).
A scale without a legend is no longer treated as one: it is not listed, a colors option does not recolour it and
a report's palette is not put on it.<output id>__expanded).validate(need(..., "a message")) in a chart's function shows the message in the chart's place, in grey. It was
taken for "not ready yet" and the loader stayed for ever.options(datasuite.ui.lazy_pages = FALSE) starts every page at once, as before.legend_title) is set on the aesthetics the chart draws a legend from.
On a chart with no fill it was also set on fill, and ggplot2 printed "Ignoring unknown labels: fill".cd_chart_options() no longer takes x_axis, x_label, y_axis, y_label, legend and
fill_label, the names cd2030.core's charts had for x_title, y_title and legend_title (cd2030.core 1.4.0
uses the option names). colours is still read as colors.<span class="i18n" data-key="lbl_ask_ai_hint">Ask DataSuite's AI about this</span>): the hint is an attribute,
and was given what i18n$t() returns for text to be translated in place.@quire/components
(datasuite-ui-kit's packages/components), so other hosts than Shiny can use them; the apps see the same components
under @/countdown as before. js/ keeps the Shiny glue (the AI bridge, spinners, tab switches, dialogs).cd_plain_text() uses it. i18n$t() outside a reactive context (a module server's body
building a card) reads it without a dependency: with shiny.i18n's own reactive value it failed with "Operation not
allowed without an active reactive context".host_ask() / host_notify() in Jovian 0.2.6's
layout too (.elara.host_ask() in tools:jovian), as well as in the hera namespace of earlier kernels.image_read_svg() uses it too), and without it every chart was left out of the document.ds_host_request(): what an app asks of DataSuite (open the chat, print, install packages), in one place. When
DataSuite starts the app with CDSUITE_HOST_UI=1 in a Jovian R kernel, the requests go on Jovian's host channel
(hera::host_notify(), hera::host_ask(), methods datasuite.<action>): printing waits for DataSuite's answer
without watching a file. Otherwise the DATASUITE_HOST_REQUEST line on stderr as before (docs/HOST-REQUESTS.md).export_report(format = "pdf") on a computer without Word or LibreOffice has DataSuite print the
report, as the Reports page's PDF does, instead of needing chromote.message() rather than printed, and a plotly chart
given to cd_render_plot() says it cannot be drawn there.rstudioapi::viewer(): DataSuite's R kernel,
RStudio), else in the browser.Config/datasuite/onDemand keeps DataSuite from installing them). Outside DataSuite, or if it
cannot, printing is as before.reports_ui() and reports_server() keep their names and
arguments; the module is Quire's host: the kinds, drawing (charts as pictures with their legend entries and panels,
flextables as cells, keeping merged cells, fills, bold, alignment and widths), fields, standard reports, themes
(from Office files too), years, regions, the flag, the chart options, and the reports and pictures kept in the
dataset. A page's Generate report opens the new report, the AI's changes reopen the open report, and the AI buttons
(the narrative, Write this section) open DataSuite's chat.export_report(), export_deck(), same arguments) are written by Quire's own Word and
PowerPoint writers, so a file written from R is the one the builder downloads. The PDF is made by Word, PowerPoint
or LibreOffice, else printed from Quire's printable page. The officer writers and the old ReportStudio builder are
gone (officer moves to Suggests; V8 and magick are imported).cd_chart_options() reads quire::quire_chart_options(),
the builder's own file; printing and converting are quire's; report_theme_from_file() reads with
quire::quire_theme_from_file(). Legend and panel-heading borders (legend_border, strip_border and their colours).cd_adjustment_editor() and cd_update_adjustment_editor(): the Data Adjustment page's editor -- the years removed
everywhere and an area's data removed for some or every year; completeness (each indicator group's k, an
indicator's own), outliers and missing values set everywhere or with a region's or district's own rules (a
two-pane picker for regions and their districts); beside each setting what the check pages found; read-only
after Adjust data, until Edit.cd_table_spinner() and cd_loading_skeleton(variant = "table").cd_nav_item(hidden = TRUE): a page left out of the sidebar, reached from elsewhere (the Reports page, from the
header's button).listReports, readReport and updateBlocks use):
report_list(): the saved reports (id, name, report or deck, language, blocks, last edited).report_read(): a report's blocks in order, compactly -- each text's words, and for each chart and table its kind,
settings, options and a short table of what it shows (its title, subtitle, caption and the values it plots, or
the table's rows; capped), drawn as the report draws it -- and the report's language, so the AI writes from the
report's own numbers, in its language.report_update_blocks(): targeted changes by block id, applied in order and checked as a whole -- a text's words,
type or heading level; a chart's or table's kind (the settings the new kind does not take are left out), its
settings (checked against the kind; the allowed values in the error), its chart options (checked with
cd_chart_options(); the options in the error), its size, title and caption; a picture's caption and size; a new
page before a block; and new blocks inserted after one, blocks removed or moved. The design, the cover and every
other block stay as they are. It returns one sentence per change, for the user to confirm.documents/ (ds_documents_dir(), ds_documents_list(), ds_documents_add(), ds_documents_remove(),
documents_card_ui() / documents_card_server()). PDF, Word, PowerPoint, Excel, CSV and text files; a name
already there becomes "name (2)". Translations in English, French and Portuguese.askedAbout in the bridge state, so "this" means it). Outside DataSuite
they are disabled, with a hint.ai_action() levels: read, view (changes only what is shown), add (adds something removable) and replace
(overwrites or deletes), with optional classify(args, session) for a level that depends on the call and
summary(args, session) for a readable description. The built-in describeAction returns both, so DataSuite
asks the user only before a replacement, in the chat. kind stays read/change for older DataSuite builds.docs/AI-BRIDGE.md): every app built with app_frame() tells DataSuite's chat where
the user is -- the page, its cards and tabs, which tab each card shows, what is in view (measured in the browser),
which charts and tables have been drawn, what the app adds -- and answers its requests: the pages, the data behind a
chart or table, a card's position for a screenshot, showing a tab, opening a page. Apps add their own state and
actions with app_frame(ai_state =, ai_actions =) and ai_action(); ai_reply_when() answers once the browser has
caught up. cd_plot_server(about =) and ai_register_component() say what a chart or table is.report_validate_spec(), report_apply_transforms() and report_plot_spec() check, reshape and
draw a chart described as data (report kind custom_chart); report_validate_project() checks a report before it
is saved.report_fonts() gains installed = TRUE; installed = FALSE gives every font a report may name, installed on
this computer or not.First release: the shared interface of DataSuite's Shiny apps, taken out of cd2030.core and the Countdown apps.
cd_chart_options() and apply_chart_options() restyle any ggplot2 chart (texts, fonts, colours,
axes, legend, grid, facets) and show or hide each element (show_title, show_legend, ...).report_register() (its themes, kinds of chart,
standard reports, fields) and report_context() (one dataset's drawing, pictures, saved options, field values).app_frame()), sidebar and header, chart cards with download
tools and the Customize panel, the Reports page, and the kit's translations (packages add theirs with
cd_register_translations()).