diff --git a/paper/paper.md b/paper/paper.md index e2f0bcd0..f0d1f229 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -115,18 +115,22 @@ UI management. By making host requirements explicit, it decouples widget front-end code from host implementations, thereby improving widget portability [@scipy]. With AFM, developers can author a widget writing a web-standard ES module, either inline or in a separate file, without a build process -(\autoreref{fig:afm-and-anywidget} a, top). For better ergonomics when creating +(\autoref{fig:afm-and-anywidget} a, top). For better ergonomics when creating UIs, developers can introduce a build step targeting AFM to utilize advanced -tools (\autoreref{fig:afm-and-anywidget} a, bottom). +tools (\autorref{fig:afm-and-anywidget} a, bottom). -![AFM (a) is either authored in web-standard ECMAScript (top) or using a front-end framework bridge (bottom). (b) The anywidget Python package allows consuming AFMs to author custom Jupyter Widgets (top), which can be used across a variety of JCPs (bottom). \label{fig:afm-and-anywidget}](afm-and-anywidget.png) +![AFM (a) is either authored in web-standard ECMAScript (top) or using a +front-end framework bridge (bottom). (b) The anywidget Python package allows +consuming AFMs to author custom Jupyter Widgets (top), which can be used across +a variety of JCPs (bottom). +\label{fig:afm-and-anywidget}](afm-and-anywidget.png) While AFM is understood by the browser directly, much of web development today uses front-end frameworks, such as React or Svelte, which introduce non-standard syntax and unique paradigms for UI and state management. Rather than incorporate such frameworks into the AFM specification, the anywidget project provides several _framework bridges_ to make it easier to author AFMs -using frameworks (\autoreref{fig:afm-and-anywidget} a, bottom). These libraries +using frameworks (\autoref{fig:afm-and-anywidget} a, bottom). These libraries provide utilities to use idiomatic APIs and constructs to manage widget state and to wrap those constructs into the AFM lifecycle methods used by host platforms. For example, anywidget’s React bridge exposes a React-based @@ -148,7 +152,7 @@ the AFM specification, meaning that changes cannot break host compatibility. The main library for the project is `anywidget`, a Python package that simplifies the authoring and distribution of custom Jupyter Widgets using AFM -(\autoreref{fig:afm-and-anywidget} b, top). Jupyter Widgets [@ipywidgets] are +(\autoref{fig:afm-and-anywidget} b, top). Jupyter Widgets [@ipywidgets] are the official framework from Jupyter to extend notebooks with interactive views and controls for objects that reside in the kernel. Since widgets are integral to Jupyter's architecture, they enjoy broad support across Jupyter-compatible