Skip to content

Releases: silx-kit/h5web

H5Web 17

17 Apr 07:43
8a832ee

Choose a tag to compare

Full Changelog: v16.0.1...v17.0.0

  • ⚠️ {Breaking} All three packages are now ESM-only. We no longer provide CommonJS bundles. This shouldn't be an issue if you're using a modern bundler like Vite but if you run into issues or need advice, don't hesitate to open a discussion thread. #1924
  • ⚠️ {Breaking} We now target Baseline Widely Available features of the web platform. This means that browser versions released more than two and a half years may no longer be supported out of the box. That being said, H5Web 17 still works down to Firefox 102 ESR, which was released in 2022, and it should be possible to support even older versions by polyfilling web platform features. #2009
  • 🎭 The mock demo has been significantly reworked with a clearer, more self-explanatory structure #1994

@h5web/app

Viewer

  • 🎉 Improve sidebar resizing and toggling experience #1987
    • The width of the sidebar is now saved and restored automatically when toggling or reopening the viewer.
    • The sidebar can be closed and reopened by dragging the splitter all the way to the left and then back.
    • Double-clicking on the splitter resets the sidebar to its default size.
    • The sidebar is now fully accessible — it can be resized and opened/closed entirely with the keyboard.
  • 🎉 Maintain zoom level and pan position when possible #1941
    • The zoom/position is saved transparently for end users, and independently for each visualization (Line, Heatmap, etc.)
    • For Heatmap, RGB and Scatter, the zoom/position is restored as long as both axes domains remain the same.
    • For Line, the zoom/position is restored as long as the abscissa domain remains the same and the user zooms only on the x axis, not the y axis.
  • 🎉 Pick better icons in explorer based on dataset shape and dimensions #1976
  • 🎉 < Heatmap, Line, NX Heatmap, NX Line > Add support for NetCDF attributes valid_min, valid_max and valid_range #1956
  • 🎉 < RGB, NX RGB > Support RGBA/BGRA images and rgba-image NeXus interpretation #1979
  • 🎉 < Scalar > Support array datasets (i.e. arrays of "scalar" values in the HDF5 sense) that are not supported by other visualizations #1768 #1770
    • The Raw visualization is removed — "non-printable" scalars like nested compounds, opaque arrays, etc. are now handled seamlessly by the Scalar visualization — cf. /compound_mixed_1D in sample.h5
    • This brings support for stacks of binary JPEG/PNG images stored as opaque array datasets — cf. frogs.h5
  • < NX Heatmap, NX Line > Add support for _FillValue attribute (already supported on Heatmap and Line) #1956
  • < Complex Line > Support unwrapping complex phase values by removing 2π discontinuities #1947
  • ✨ Show "NX" badges in explorer where NeXus visualizations are actually known to be supported instead of using less accurate heuristics #1990
  • < Line > Update line colors automatically when switching between light and dark mode #1968
  • < Line > Improve visibility of points in dark mode #1968
  • ✨ Improve user experience when copying path of selected entity from top bar #1936
  • ✨ Bring support for _FillValue attribute in line with NetCDF spec — the fill value now acts as an invalid upper bound (when positive) or lower bound (when negative) instead of as a single invalid value #1956
  • ⚡ Optimise domain computations to reduce lag when toggling errors in toolbar #1950
  • 🐛 < NX Scatter > Force ascending axes regardless of order of axes values #1989
  • 🐛 Fix ordering of compound fields with number-like names #1970
  • 🐛 Fix flickering of toolbar controls #1927
  • 🐛 Disable Ctrl+left click context menu on Mac to fix selection-based zoom interactions #1985
  • 🐛 Fix keyboard navigation in explorer with empty groups #1934
  • 🐛 < NX Heatmap > Fix "Keep ratio" toggle not working right away when axes have different units #1954

API

  • ⚠️ {Breaking} [H5GroveProvider] Require h5grove@4.0.0
    • v3.0.0 makes trailing slashes optional on all endpoints #1931
    • v4.0.0 returns compound fields metadata in an array for proper ordering #1970
  • ⚠️ {Breaking} The shape property of Dataset and Attribute objects, which was previously number[] | null, is now a Shape object — to access the dimensions of an array dataset, use dataset.shape.dims instead of dataset.shape #1952
  • ⚠️ {Breaking} assertDatasetValue is renamed to assertValue #1951
  • ⚠️ {Breaking} Remove hooks useDatasetValue, useDatasetsValues and usePrefetchValues — use the new useDatasets and useValues hooks instead #1964
  • 🎉 Add useDatasets hook to provide a declarative, schema-based alternative to useEntity to retrieve multiple datasets at once without having to invoke type guards or assertions afterwards #1963
  • 🎉 Add useValues hook to retrieve multiple dataset values and/or slices at once in a more flexible and convenient way than the now-removed useDatasetsValues hook #1964
  • ✨ All type guards and assertions that accept Dataset objects, like hasScalarShape, assertStringType, assertValue, etc. now also accept Attribute objects — this allows type-checking the metadata and values of HDF5 attributes #1951
  • ✨ Add utilities hasAttribute, findAttribute, findScalarNumAttr, findScalarStrAttr, and getAttributeValue to work with HDF5 attributes in a more convenient way #1953 #2010
  • ✨ Add generic guards and assertions isShape, isType, hasShape, hasType, assertShape and assertType #1963

@h5web/lib

  • ⚠️ {Breaking} [DataCurve] Change default glyphType from cross to circle, and increase default glyphSize from 6px to 7px to improve glyphs visibility on 4k screens and in dark mode #1968
  • ⚠️ {Breaking} getDomain and getDomains (and their memoised versions useDomain and useDomains) now accept an options object as second parameter to specify the scaleType, errors array(s), and ignoreValue function #1950
  • ⚠️ {Breaking} getAxisDomain and useAxisDomain now accept an options object as second parameter #1989
  • 🎉 [RgbVis] Support RGBA and BGRA data arrays #1979
  • ✨ Add ignoreValue option to getDomains and useDomains #1950
  • ✨ Add includeErrors option to getDomain, getDomains, useDomain and useDomains to control whether to return the domain(s) with or without the errors — note that all four utility functions always compute and memoise the domains both with and without errors internally for performance reasons, so this option can be toggled as often as needed #1950
  • ✨ New KeepZoom component (and KeepZoomProvider) to maintain camera zoom when possible across VisCanvas remounts #1941
  • [LineVis] Update line colors automatically when switching between light and dark mode #1968
  • ✨ Add forceAscending option to getAxisDomain and useAxisDomain to force computed domain to remain ascending regardless of order of axis values #1989
  • ✨ Add CSS variables --h5w-info--color, --h5w-scalar--color, --h5w-scalar--fontFamily and --h5w-scalar-fallback--color #2006 #2008
  • 🐛 [ScatterVis] Force ascending axes regardless of order of axes values #1989
  • 🐛 [Toolbar] Fix flickering of toolbar controls #1927
  • 🐛 [DefaultInteractions, PreventDefaultContextMenu] Disable Ctrl+left click context menu on Mac when it conflicts with other interactions like selection-based zoom #1985
  • 🐛 [Separator] Fix passing custom class name #1935

@h5web/h5wasm

Upgrade h5wasm from 0.8.7 to 0.10.1. It is now based on HDF5 2.0.0 — cf. usnistgov/h5wasm#120

  • ⚠️ {Breaking} Require h5wasm-plugins@0.3.0 if installed #1931
  • 🎉 Support bitgroom and bitround filters #1931
  • ✨ Show clearer error when there's not enough memory available to read data #1938
  • ✨ Improve display of errors when attempting to read invalid metadata #1939
  • 🐛 Fix errors with some compression filters #1948

Screenshots

Better dataset icons i...

Read more

v16.0.1

17 Nov 09:30
c0e5b07

Choose a tag to compare

Full Changelog: v16.0.0...v16.0.1

@h5web/app

  • ✨ Improve fallback message when no visualization is available for the selected entity #1920
  • 🐛 < Complex Line > Fix constant interpolation not applied #1922
  • 🐛 [H5GroveProvider] Fix propagation of custom errors #1919
image

H5Web 16

13 Nov 07:54
6937b42

Choose a tag to compare

Full Changelog: v15.0.0...v16.0.0

👉 A new feature-packed release with support for thick lines, piecewise constant interpolation, the default_slice NeXus attribute, JPEG decompression with h5wasm, custom toolbar menus, and more! 🥳

ℹ️ The React 19 upgrade is coming — H5Web 16 will likely be the last major release on React 18.

@h5web/app

  • 🎉 Support NeXus default_slice attribute #1872 — see /nexus_entry/default_slice in mock demo
  • 🎉 Always show all supported NeXus visualizations instead of only the one for the specified interpretation (e.g. both NX Line and NX Heatmap for 2D+ datasets) #1885 #1886
  • 🎉 < NX Line > When auxiliary signals are present, show picker next to visualization tabs to allow showing/hiding any of the signals, including the main signal #1911 #1916
    • < NX Heatmap > Move signals picker to toolbar to match NX Line, as the new drop-down interface is better suited to dealing with a large number of auxiliary signals #1894
  • 🎉 < Line > Support piecewise constant interpolation #1878 #1880 #1881
  • 🎉 < Line > Move Line/Points/Both control into new Aspect menu #1881 #1892 #1893
  • 🐛 < Line > Fix colors of auxiliary signals in dark mode #1865
  • 🐛 Fix wrapping of value buttons in attributes inspector #1882
  • < NX Line > Hide Errors toggle from toolbar completely (instead of disabling it) when there aren't any error values #1898
  • < Line > Never show Errors toggle at all in toolbar, since there can never be error values anyway #1898
  • < Matrix > Remove Freeze indices toggle from toolbar — row/column indices now always remain visible when scrolling #1900
  • Remember last known dimension mapping state for a specific visualization more often #1871
  • Use Opt instead of Alt in interactions help menu on Mac #1870

@h5web/lib

  • ⚠️ Breaking change: Replace useGeometry with new hook useUpdateGeometry #1888
    • useUpdateGeometry accepts an instance of a Three.js BufferGeometry subclass that implements a new H5WebGeometry interface. All the built-in geometry classes (LineGeometry, GlyphsGeometry, etc.) have been updated to work with useUpdateGeometry. If you developed your own geometry classes please read #1888 to understand the changes.
  • ⚠️ Breaking change: [LineVis, DataCurve] If prop showErrors is not specified, default to true so that error bars are shown by default if error values are provided #1898
  • ⚠️ Breaking change: [MatrixVis] Remove prop sticky — row/column indices now always remain visible when scrolling #1900
  • [DataCurve, Line] Add new width prop to control the thickness of the line #1889
  • [LineVis, DataCurve, Line] Add prop interpolation to support piecewise constant interpolation in addition to linear interpolation #1878 #1880
  • [LineVis] Add optional prop visible (true by default) to control the visibility of the main data curve — when hidden, the main data value is greyed out in the tooltip #1911
  • [LineVis] Objects passed to the auxiliaries prop now accept an optional visible property (true by default) to control the visibility of auxiliary curves — when an auxiliary curve is hidden, its value does not appear in the tooltip #1911
  • ✨ New Menu, RadioGroup, Checkbox and MenuSeparator components to help build custom toolbar menus #1892 #1893 #1911 #1917
  • [InteractionHelp] Display Opt instead of Alt in shortcuts on Mac #1870
  • Add LineConstantGeometry class for use with useUpdateGeometry hook #1878 #1888

@h5web/h5wasm

Screenshots

NX Line signals picker

image

Piecewise constant interpolation

image

Aspect menu and new menu components in @h5web/lib

image

Thick lines in @h5web/lib

image

H5Web 15

28 Aug 13:06
a7e59a9

Choose a tag to compare

Full Changelog: v14.0.1...v15.0.0

@h5web/app

  • < NX Heatmap, NX Line > Support NXdata group with mixed real and complex signals #1834 #1858 #1860
  • < Heatmap > Allow flipping heatmap along x and y axes when viewing complex dataset #1862
  • < RGB > The last dimension that holds the three channel values now appears in the dimension mapper as a locked dimension (i.e. so users know that it's there but cannot map an axis to it) #1840
  • 🐛 [HsdsProvider] Fix support of RGB stacks #1838 #1840
  • Show "indeterminate" progress bar while establishing connection with server (instead of empty progress bar) #1806
  • ⚠️ Breaking change: Decouple server-based providers from axios to bring more flexibility to consumers and support more secure forms of authentication #1800 #1803 #1804 #1806 #1807 #1808 #1809 #1811
    • [H5GroveProvider] Replace prop axiosConfig with prop fetcher
    • [HsdsProvider] Replace props username and password with prop fetcher
    • To create a Fetcher, use one of the following two factories:
    • If you prefer to write your own fetcher, make sure to take a look at the implementation of the two factories above, particularly the error handling and progress tracking.
    • To migrate to the new fetcher prop, consumers of HsdsProvider can use the buildBasicAuthHeader utility to build an Authorization header for Basic Auth. With H5GroveProvider, the fetcher prop is optional—a basic, insecure fetcher is initialized by default. Of course our recommendation is to secure your production server with serious authentication and authorization mechanisms like Open ID Connect and OAuth and to always provide your own secure fetcher.

@h5web/h5wasm

  • [H5WasmLocalFileProvider] Open local files in SWMR read mode #1839

@h5web/lib

  • ✨ Support configuring mouse-based interactions like Pan or SelectToZoom with the right mouse button #1830
  • ✨ Add component PreventDefaultContextMenu to prevent the browser from opening the default context menu on right click #1830
    • The when prop controls when to turn on the behavior and is set to 'as-needed' by default, which means that the context menu is prevented only when an interaction for the right mouse button is registered and enabled.
    • Add PreventDefaultContextMenu to DefaultInteractions so it works out of the box in all high-level visualization components (LineVis, etc.).
    • As part of this work, the InteractionsContext, which is used to coordinate interactions, is now exposed and documented. It includes a getInteractions function to retrieve registered interactions.
  • ✨ Expose DimensionMapper component and related utilities for reuse. The dimension mapper is the sidebar that allows remapping and slicing through the dimensions of a dataset. DimensionMapper is a controlled component that expects an externally managed DimensionMapping state. #1820 #1821 #1823 #1824 #1825 #1829
  • Add Tooltip and Guides components for advanced tooltip/crosshairs implementations #1852
  • [Line, DataCurve] Add prop materialProps to configure the underlying ThreeJS LineBasicMaterial instance by @CPrescher in #1816
  • [Histogram] Make N+1 bin optional in bins array #1831
  • [Selector] Add prop renderSelection to customize the appearance of the current selection #1799
  • Add CSS variable --h5w-btnRaised--bgColor to customize background color of raised buttons (used notably in the dimension mapper and the domain widget)

Screenshots

RGB vis with locked channels dimension

image

Indeterminate progress bar

image

DimensionMapper component

image

New Contributors

v14.0.1

09 Apr 12:56
8c0f462

Choose a tag to compare

Full Changelog: v14.0.0...v14.0.1

@h5web/app

  • 🔀 Put x-axis values first in NeXus CSV exports for consistency with XY and XYE files #1780
  • 👉 Add column with x indices when exporting 1D dataset to CSV for consistency with XY files #1780
  • [H5GroveProvider] Bump axios to resolve vulnerability #1781

@h5web/lib

  • ⚠️ [Btn] Rename prop icon to Icon to emphasize the need to pass a proper icon component #1779

Screenshots

BEFORE AFTER
NeXus image image
1D slice image image

New Contributors

H5Web 14

20 Mar 15:22
054ffe1

Choose a tag to compare

Full Changelog: v13.0.0...v14.0.0

@h5web/app

  • < NX Line > Add CSV export — the following columns are exported, in order, when the corresponding datasets are present in the NXdata group: values, abscissas, errors, aux1, aux1 errors, aux2, aux2 errors, ... #1619 #1723 #1763
  • ✨ Support CSV/JSON exports out of the box regardless of the provider (cf. before/after comparison tables in #1763)
    • If you used to implement these exports yourself via getExportURL, you may now remove your code.
    • ⚠️ Breaking change: [H5WasmLocalFileProvider, H5WasmBufferProvider] The signature of the getExportURL prop has changed: instead of receiving the dataset's value array, it now receives an optional builtInExporter function. For more information, please read the updated documentation.
  • < Compound > Include field names when exporting to CSV #1639 #1763
  • < Matrix > Respect transposition when exporting 2D dataset/slice to CSV #1454 #1763
  • < Matrix, Compound > Replace Fixed-point notation with Exact notation in toolbar to allow viewing and copying exact values #1742 #1753
  • < Scalar, Matrix, Compound > Display big integer values (int64) with exact precision when supported by the provider #1679 #1745 #1747
    • [H5GroveProvider, MockProvider] Provide int64 values as JavaScript big integers instead of casting them to float-64 numbers
  • ✨ Expose hooks to more easily access data from the provider in custom applications: useEntity, useDatasetValue, useDatasetsValues, usePrefetchValues. #1762
    • Expose models, type guards and assertions to make it easier to work with the retrieved data in a TypeScript codebase #1759
  • 🐛 Don't crash when switching to log scale while visualizing a dataset with a negative domain — fall back to the default domain [0.1, 1] instead so that user can switch back to a supported scale #1761 #1772
  • 🐛 Fix broken layout when inspecting dataset with long attributes #1740 #1741
  • 🐛 Fix jitter when resizing explorer sidebar on Matrix vis #1712
  • < Scalar > Display complex numbers with exact precision and always with both real and imaginary parts to avoid confusion with real numbers #1753
  • < Matrix, Compound > Display complex numbers with more precision in Auto and Scientific notations (i.e. match precision used for floats/integers) #1753
  • Display signed integer type less ambiguously in metadata viewer: "Integer (signed)" instead of "Integer" #1736

@h5web/lib

@h5web/h5wasm

  • ✨ Support CSV/JSON exports out of the box
    • If you used to implement them yourself via getExportURL, you may now remove your code.
    • ⚠️ Breaking change: [H5WasmLocalFileProvider, H5WasmBufferProvider] The signature of the getExportURL prop has changed: instead of receiving the dataset's value array, it now receives an optional builtInExporter function. For more information, please read the updated documentation.
    • [H5WasmLocalFileProvider, H5WasmBufferProvider] Provide int64 values as JavaScript big integers instead of casting them to float-64 numbers

Screenshots

New NX Line CSV export

image

image

Exact notation in Matrix vis (here with complex)

image

Big integer with exact precision

image

VisCanvas with custom abscissas tick formatter

image

H5Web 13

16 Sep 06:55
3fe01a9

Choose a tag to compare

Full Changelog: v12.0.0...v13.0.0

@h5web/app

  • ⚠️ Breaking change: [H5GroveProvider] Now requires h5grove@2.3.0 #1709
  • ✨ Preserve dimension mapping and slicing when possible, notably when toggling inspect mode or selecting another dataset with the same dimensions #1572 (comment) #1698
  • ✨ Support visualizing enum datasets and signals #1498 #1688
  • [H5GroveProvider] Support inspecting metadata of committed datatypes #1699 #1710
  • New enableBigIntSerialization utility to enable big integer serialization in consumer apps. #1706
    Invoke this function before rendering H5Web to allow the Raw visualization and metadata inspector to serialize and display big integers. This is needed only when working with a provider that can return int-64 values as JavaScript big integers (currently only MockProvider).

@h5web/lib

  • ⚠️ Breaking change: Change signature of useGeometry hook to fix React warning. #1684 #1687
    Previously, the params parameter could be set to false or undefined to skip updating the geometry (e.g. when the R3F object is hidden). Now, it is required. The fourth parameter, isInteractive is replaced with a configuration object with two options: isInteractive and skipUpdates.
  • ⚠️ Breaking change: [ScalarVis] Remove prop formatter and change prop value to accept an already-formatted string — see #1705 for migration examples.
  • ⚠️ Breaking change: [MatrixVis] Replace props dataArray and formatter with props dims and cellFormatter — see #1702 for migration example.
  • 🐛 [VisCanvas] Customize frustrum only when using orthographic camera #1685 #1686
  • Add CSS property --h5w-overflowMenu-control--justify to customise alignment of controls in overflow menu #1695 #1696

@h5web/h5wasm

  • ✨ Support variable-length datasets #1692
  • Support inspecting metadata of committed datatypes #1699 #1708

Screenshots

Preserving dimension mapping

maintain-dim-mapping

Enum datasets visualisation

image

image

Variable-length support with h5wasm

image

image

H5Web 12

25 Jun 13:52
61ea900

Choose a tag to compare

Full Changelog: v11.2.0...v12.0.0

@h5web/app

  • < NX Line, NX Heatmap > Support complex auxiliary signals #1676 #1680
  • < Line > Replace Autoscale toggle in toolbar with domain widget to allow customising the y axis domain #1665
  • < Compound > Visualize compound scalar datasets #1674
  • < Raw > Add toggle to fit raw JPEG/PNG images to viewport (on by default) #1633
  • [H5GroveProvider, HsdsProvider] Add prop resetKeys to reset fetch cache when file content changes #1673
  • 🐛 < Raw > Disable dark mode on raw JPEG/PNG images #1628
  • 🐛 Fix alignment of toolbar controls in overflow menu #1647
  • 🐛 Don't capitalize attribute names in metadata viewer #1671
  • ⚡ Reduce delay when slicing through a dimension whenever the target slice is already in the cache #1634 #1667
  • Make variable-length string types explicit in metadata viewer #1620
  • Allow inspecting HDF5 string padding metadata with h5grove (>=2.2.0), h5wasm and HSDS providers #1659
  • Errors that occur when retrieving dataset values are no longer stored in the provider's cache, which allows for retrying #1661
  • Throw error when encountering axes or auxiliary_signals attributes with dataset paths #1671

@h5web/lib

⚠️ Breaking changes

  • [Btn] Prop onClick now receives the MouseEvent as first parameter #1653
    • 👉 Please make sure you don't pass a state setter as is, like onClick={toggleOpen}; if you do, refactor with an arrow function instead: onClick={() => toggleOpen()}
  • [Selector] Remove prop optionComponent #1652
    • 👉 Use new renderOption prop instead, which accepts an inline render function instead of a component
  • Remove component ColorMapOption #1652
    • 👉 Use new ColorMapGradient component instead, which renders only the horizontal color map gradient preview
  • Remove deprecated components GridToggler and FlipYAxisToggler #1653
    • 👉 Use ToggleBtn directly instead
  • [ExportMenu] Remove prop align #1653
    • 👉 The popup is now smart enough to remain within the bounds of the viewport

Other changes

  • ⚙️ Remove react-aria-menubutton dependency to get rid of peer dependency warning
    • 👉 You may now revert any package manager configuration that you had made to silence the warning
  • 🐛 [Line] Fix subtle glitch between two points with finite and infinite/NaN coordinates #1632
  • [VisCanvas] Tweak camera frustrum to provide wider z range, and export Z_MIN and Z_MAX constants #1632
  • [SelectionTool] Start selection on pointerdown instead of pointermove #1625
  • [Btn] Add prop withArrow to display a drop-down arrow #1653
  • [Btn] Forward ref and any valid HTML attributes to the button element (HTMLAttributes<HTMLButtonElement>) #1653
  • New ComplexVisTypeSelector toolbar component and ComplexVisType enum #1652

@h5web/h5wasm

  • ⚠️ Breaking change: Rename H5WasmProvider to H5WasmBufferProvider #1664
  • [H5WasmLocalFileProvider, H5WasmBufferProvider] Load compression plugins for datasets with compressed virtual sources within the same file #1662
  • [H5WasmLocalFileProvider] Add prop resetKeys to reset fetch cache when file content changes #1673
  • [H5WasmBufferProvider] Now implemented with a Web Worker, which may reduce UI lag when accessing large datasets.

Screenshots

Complex auxiliary signals

NX Line NX Heatmap
image image

Scalar compound

image

Fit JPEG/PNG images

fit-raw-image

v11.2.0

18 Apr 14:25
c34f4a5

Choose a tag to compare

Full Changelog: v11.1.1...v11.2.0

🎉 This release brings a new provider, H5WasmLocalFileProvider. Contrary to H5WasmProvider, which requires files to be loaded entirely into memory, H5WasmLocalFileProvider uses a web worker to enable partial reads. This allows reading local HDF5 files of virtually any size! Keep an eye out for upcoming releases of myHDF5 and the VS Code extension, or give it a try right away in the h5wasm demo!

@h5web/app

  • < RGB > Allow flipping RGB visualizations on X and Y #1608
  • ✨ Add NX Note visualization with support for JSON MIME type #1606
  • 🐛 Fix styling of raw JPEG/PNG images in some contexts #1600

@h5web/lib

  • [RgbVis] Add props flipXAxis and flipYAxis #1608

@h5web/h5wasm

  • 🥳 Add new H5WasmLocalFileProvider, which supports reading local HDF5 files of any size #1604
  • Improve support for empty datasets and attributes #1602

Screenshots

New NX Note visualization

image

Flipping RGB visualization

rbg-flip-xy

v11.1.1

26 Mar 10:25
245e316

Choose a tag to compare

Full Changelog: v11.1.0...v11.1.1

  • 🐛 Fix styling regressions introduced with v11.1.0 in both @h5web/app and @h5web/lib.