# 5.4.4
* Update embed credit component with new design: "Made with Flourish • Create your own" text
* Improve embed credit accessibility with aria-label and rel="noopener noreferrer"
* Add hover underline effect to embed credit link
* Relax Node.js engine requirement to >=18.0.0 for broader compatibility

# 5.4.3
* Update version of @flourish/interpreter from 9.1.1 to 9.2.0

# 5.4.2
* Fix filters showing incorrect value in snapshots

# 5.4.1
* Same as previous version (failed publish on v5.4.0)

# 5.4.0
* Add an experimental `transparent_background` option.

# 5.3.0
* Adds support for new optional parameters to the snapshot function:
  `quiet`: Suppress info-level console logging
  `timeout_ms`: A maximum time, in ms, that the snapshot function is
  allowed to take. Note that the actual execution time could still be
  longer than timeout_ms, as some synchronous operations may have already
  been started.
  `wait_for_animation_ms`: A maximum time, in ms, that the snapshot function
  will wait for animations (or any DOM changes) to settle before creating
  the snapshot.

# 5.2.2
* Move all dependencies to devDependencies
  Consumer packages are bundled with Rollup and do not need to be installed via npm.

# 5.2.1
* Remove local dependency from `package.json`

# 5.2.0
* Upgrade out-of-date dependencies

# 5.1.1
* Omit src/ from the published package.
  This change is purely structural and does not affect the functionality
  or usage of the package.
  If you are using the `src` folder for any purpose, such as for testing,
  you might want to adjust your process so it won't break with the
  upcoming updates.

# 5.1.0
* Add a `snapshot` method to the API object so that you can generate
  an image of the current visaulisation. See
  https://developers.flourish.studio/api/create-visualisation/ for
  documentation.

# 5.0.2
* Add a `base_visualisation_data_format` option. This is for internal
  testing: it lets you choose whether the array-of-objects or
  array-of-arrays representation of a project is used when you
  specify a base visualisation with `base_visualisation_id`.

# 5.0.1
* Remove a confusing and spurious console warning

# 5.0.0
* Update the version of @flourish/interpreter to 8.3.0, for predictable
  rendering of datetimes. This is a breaking change, because it means
  that dates and datetimes will be rendered differently for some users.
  However, now it will be possible to ensure that dates are rendered
  consistently for all viewers of an API project.

# 4.6.2
* Make opts.template and opts.version optional when calling update

# 4.6.1
* Fix a bug when calling update() with a typed template

# 4.6.0
* Add support for data typed templates

# 4.5.0
* Add the `base_visualisation_id` option, allowing a live API
  visualisation to be based on an existing published visualisation

# 4.4.2
* Upgrade dependencies.

# 4.4.1

* This is the same as 4.4.0, except for the version increment,
  since we deprecated 4.4.0 and unpublished it from npm. (The
  VERSION constant hadn't been updated.)

# 4.4.0
* Remove code to handle a situation (with custom styles for a company)
  that can no longer obtain.

# 4.3.0
* You can now omit datasets or column names in more situations
  and sensible defaults will be used.

# 4.2.2
* If API calls are made while initialisation is still in progress,
  queue them up and run them after initialisation is complete.

# 4.2.1
* Include the compiled files (in the dist/ directory) in the package
  published to NPM.

# 4.2.0
* Add asynchronous `getState(callback)` method, allowing the user to
  get the current template state. `callback` should be a function with
  the signature `callback(err, state)`. `err` will
  be `null` if the `getState` call succeeds.
* Add optional width and height parameters, which allows embedding
  a Flourish visualisation at a fixed size.

# 4.1.0

* A Flourish credit is now shown underneath the visualisation
  unless the owner of the API key in use is a member of a
  company (i.e. a business customer)

# 4.0.0

* Add two new alternative input formats, neither of which
  require a `column_names` value, but instead take a `bindings`
  object. These two new formats expect data to be either an
  array of objects (with column names as keys) or an array of
  arrays (where the first array is column headers, and the
  subsequent arrays are flat arrays of values).
* Change the default export, so that regardless of whether
  you're loading this API client library from the CDN or via
  npm, your code can use Flourish.Live as the constructor
  constructor.  If you're using the code via npm, you should
  change your import statement to: `import Flourish from
  "@flourish/live-api"` and invoke the constructor as
  `new  Flourish.Live(opts)`
* Fetch data from the template endpoints on the backend via a
  caching CDN.
* Apply custom company styles automatically if the API key owner
  is a member of a company which has custom styles
  configured. (They can be overridden by using the `state`
  property in the opts object that's passed in.)
* Improve error messages when the number of columns don't match

# 3.1.0

* Allow single values to be passed as data in situations where the
  template would accept an array of values – e.g. data.value in the
  line-bar-pie template.

# 3.0.1

* Fix a bug that caused the column_names option to be ignored on
  initial render (but not on update).

# 3.0.0

* Change the way the .update() method is called, to make it possible
  to update the state and/or data independently, or to change the
  column_names, and to make it possible for us to add support later
  for changing the template without another breaking change to the
  calling convention.


# 2.1.2

* Update the VERSION in the generated code to match the npm
  module version.

# 2.1.1

* Use the default values for the column names on update as well
  as initialization.

# 2.1.0

* Use sensible default values for the column names.
* Apply default options before setting the iframe src so you
  don't need to explicitly set the api_url option.

# 2.0.0

* Work with new backend (with separate /template and /metadata endpoints).

# 1.1.1

* Do not convert zeros to empty strings

# 1.1.0

* Convert incoming data to strings, as expected by templates.

# 1.0.2

* Include version number in generated code (as Flourish.Live.VERSION).

# 1.0.1

* Keep messages separate if the same template is used more than once in the same page.

# 1.0.0

* Initial release
