@mosaicajs/react 0.1.0-rc.4 → 0.1.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,40 +1,55 @@
1
1
  /**
2
- * Every `mosaica-*` element as a React component with typed props and event handlers, made with
3
- * `@lit/react`. `MosaicaMap` wraps `<mosaica-map>`, and so on. A prop that names an element
4
- * property is set as that property, so an object such as `store` reaches the element under React
5
- * 18, which sets a custom element's props as attributes. Each element's events are handler props, such as `onPick` for
6
- * `mosaica-pick`. The element classes are exported as types with an `Element` suffix, such as
7
- * `MapElement`, for typing a ref. Each element's attributes, properties, events, slots and parts
8
- * are on its page in the Components reference, which each wrapper's type links to.
2
+ * `@mosaicajs/react/components` is every element of `@mosaicajs/components` as a React component,
3
+ * such as `MosaicaMap` for `<mosaica-map>`. Each component takes the element's properties as props,
4
+ * including objects such as `store` that React 18 would otherwise set as attributes. Each event
5
+ * the element fires is a handler prop, such as `onPick` for `mosaica-pick`. The element's
6
+ * attributes, properties, events, slots and parts are on its page in the Components reference,
7
+ * which each component's type below links to.
9
8
  *
10
- * `MosaicaStore`, `MosaicaMap` and `MosaicaExplorer` read their `authorise` prop through a ref, so
11
- * an inline function does not build a new store on every render. To show the map to another
12
- * viewer, change `token` or `viewerUrl`, or give the component a new `key`.
9
+ * A component draws from the store you pass as `store`, such as one from `useMosaicaStore` in
10
+ * `@mosaicajs/react`, or else from an enclosing `MosaicaStore` or `MosaicaExplorer`. Those two and
11
+ * `MosaicaMap` can also make their own store from `viewerUrl` and `token` or `authorise`. You can
12
+ * pass an inline `authorise` function: the component calls the latest one and does not create a
13
+ * new store when it changes.
14
+ * To show the map to another viewer, change `token` or `viewerUrl`, or give the component a new
15
+ * `key`.
13
16
  *
14
- * This entry imports `@mosaicajs/components`, and with it Lit and deck.gl. The hooks are in the
15
- * package root, `@mosaicajs/react`, which imports neither.
17
+ * The element classes are exported as types with an `Element` suffix, such as `MapElement`, for
18
+ * typing a ref. This entry imports `@mosaicajs/components`, and with it Lit and deck.gl.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * import {useMosaicaStore} from '@mosaicajs/react';
23
+ * import {MosaicaMap, MosaicaItemCard} from '@mosaicajs/react/components';
24
+ *
25
+ * function Map({token}: {token: string}) {
26
+ * const store = useMosaicaStore({viewerUrl: 'http://localhost:8080', token});
27
+ * return (
28
+ * <>
29
+ * <MosaicaMap store={store} onPick={(e) => console.log(e.detail.id)} />
30
+ * <MosaicaItemCard store={store} />
31
+ * </>
32
+ * );
33
+ * }
34
+ * ```
16
35
  *
17
36
  * @module @mosaicajs/react/components
18
37
  */
19
38
  import { type EventName } from '@lit/react';
20
39
  import { MosaicaArtifactCard as ArtifactCardElement, MosaicaClusterFilter as ClusterFilterElement, MosaicaColourEditor as ColourEditorElement, MosaicaCount as CountElement, MosaicaExplorer as ExplorerElement, MosaicaFieldCard as FieldCardElement, MosaicaFilter as FilterElement, MosaicaFilterPanel as FilterPanelElement, MosaicaHierarchy as HierarchyElement, MosaicaItemCard as ItemCardElement, MosaicaKeyPicker as KeyPickerElement, MosaicaLayerPicker as LayerPickerElement, MosaicaMap as MapElement, MosaicaSelection as SelectionElement, MosaicaStatus as StatusElement, MosaicaStore as StoreElement, MosaicaViewPicker as ViewPickerElement, type MosaicaEventMap } from '@mosaicajs/components';
21
40
  /**
22
- * The events the elements emit, by name, each a `CustomEvent` with its detail: `MosaicaEventMap`
23
- * from `@mosaicajs/components`.
41
+ * The events the elements fire, by name, each a `CustomEvent` with its `detail`. The same type as
42
+ * `MosaicaEventMap` in `@mosaicajs/components`.
24
43
  */
25
44
  export type MosaicaEvents = MosaicaEventMap;
26
45
  /** `<mosaica-store>` as a React component. It has no event props. */
27
46
  export declare const MosaicaStore: import("@lit/react").ReactWebComponent<StoreElement, {}>;
28
47
  /**
29
- * `<mosaica-explorer>` as a React component. It has a handler prop for every event, since the
30
- * elements inside it emit them and each event bubbles out of it: `onPick`, `onItemOpen`, `onMiss`, `onHover`,
31
- * `onViewChange`, `onSelectChange`, `onArtifactOpen`, `onLayerChange`, `onArtifactFit`,
32
- * `onColourChange`, `onLevelChange`, `onValueColour`, `onClusterColour`, `onPaletteChange`, `onClusterPaletteChange`,
33
- * `onDisplayChange`, `onSizeChange`, `onBudgetChange`, `onClusterBudgetChange`, `onFold`,
34
- * `onFilterChange`, `onStateChange`, `onExpired`, `onOpen`, `onClose`, `onClauseChange`,
35
- * `onViewSwitch` and `onViewFollow`, each for the `mosaica-` event of the same name in lower case.
36
- * The `open` prop is the function the item card's Open calls, and `openUrl` the address it goes
37
- * to; `onOpen` hears every press.
48
+ * `<mosaica-explorer>` as a React component. The events of the elements inside it bubble out, so
49
+ * it has a handler prop for each of them: `onPick` for `mosaica-pick`, and so on for every event
50
+ * in {@link MosaicaEvents} except `mosaica-chipopen`, which it does not fire. The `open` prop
51
+ * is the function the item card's Open button calls, and `openUrl` the address it goes to.
52
+ * `onOpen` is called on every press.
38
53
  */
39
54
  export declare const MosaicaExplorer: import("@lit/react").ReactWebComponent<ExplorerElement, {
40
55
  onArtifactFit: EventName<CustomEvent<{
@@ -168,13 +183,17 @@ export declare const MosaicaExplorer: import("@lit/react").ReactWebComponent<Exp
168
183
  onLayerChange: EventName<CustomEvent<{
169
184
  layers: string[];
170
185
  }>>;
186
+ onBasemapChange: EventName<CustomEvent<{
187
+ refusal: string | null;
188
+ note: string | null;
189
+ }>>;
171
190
  }>;
172
191
  /**
173
192
  * `<mosaica-map>` as a React component. Event props: `onPick` (`mosaica-pick`), `onItemOpen`
174
- * (`mosaica-itemopen`), `onMiss`
175
- * (`mosaica-miss`), `onHover` (`mosaica-hover`), `onViewChange` (`mosaica-viewchange`), `onSelectChange`
176
- * (`mosaica-selectchange`), `onArtifactOpen` (`mosaica-artifactopen`) and `onLayerChange`
177
- * (`mosaica-layerchange`).
193
+ * (`mosaica-itemopen`), `onMiss` (`mosaica-miss`), `onHover` (`mosaica-hover`), `onViewChange`
194
+ * (`mosaica-viewchange`), `onSelectChange` (`mosaica-selectchange`), `onArtifactOpen`
195
+ * (`mosaica-artifactopen`), `onLayerChange` (`mosaica-layerchange`) and `onBasemapChange`
196
+ * (`mosaica-basemapchange`).
178
197
  */
179
198
  export declare const MosaicaMap: import("@lit/react").ReactWebComponent<MapElement, {
180
199
  onPick: EventName<CustomEvent<{
@@ -213,8 +232,15 @@ export declare const MosaicaMap: import("@lit/react").ReactWebComponent<MapEleme
213
232
  onLayerChange: EventName<CustomEvent<{
214
233
  layers: string[];
215
234
  }>>;
235
+ onBasemapChange: EventName<CustomEvent<{
236
+ refusal: string | null;
237
+ note: string | null;
238
+ }>>;
216
239
  }>;
217
- /** `<mosaica-status>` as a React component. Event props: `onStateChange` (`mosaica-statechange`) and `onExpired` (`mosaica-expired`). */
240
+ /**
241
+ * `<mosaica-status>` as a React component. Event props: `onStateChange` (`mosaica-statechange`)
242
+ * and `onExpired` (`mosaica-expired`).
243
+ */
218
244
  export declare const MosaicaStatus: import("@lit/react").ReactWebComponent<StatusElement, {
219
245
  onStateChange: EventName<CustomEvent<{
220
246
  from: import("@mosaicajs/components").PanelState | null;
@@ -229,8 +255,8 @@ export declare const MosaicaStatus: import("@lit/react").ReactWebComponent<Statu
229
255
  export declare const MosaicaCount: import("@lit/react").ReactWebComponent<CountElement, {}>;
230
256
  /**
231
257
  * `<mosaica-item-card>` as a React component. Event props: `onOpen` (`mosaica-open`), `onClose`
232
- * (`mosaica-close`) and `onViewFollow` (`mosaica-viewfollow`). The `open` prop is the function
233
- * Open calls, and `openUrl` the address it goes to; `onOpen` hears every press.
258
+ * (`mosaica-close`) and `onViewFollow` (`mosaica-viewfollow`). The `open` prop is the function the
259
+ * Open button calls, and `openUrl` the address it goes to. `onOpen` is called on every press.
234
260
  */
235
261
  export declare const MosaicaItemCard: import("@lit/react").ReactWebComponent<ItemCardElement, {
236
262
  onOpen: EventName<CustomEvent<{
@@ -1,18 +1,37 @@
1
1
  /**
2
- * Every `mosaica-*` element as a React component with typed props and event handlers, made with
3
- * `@lit/react`. `MosaicaMap` wraps `<mosaica-map>`, and so on. A prop that names an element
4
- * property is set as that property, so an object such as `store` reaches the element under React
5
- * 18, which sets a custom element's props as attributes. Each element's events are handler props, such as `onPick` for
6
- * `mosaica-pick`. The element classes are exported as types with an `Element` suffix, such as
7
- * `MapElement`, for typing a ref. Each element's attributes, properties, events, slots and parts
8
- * are on its page in the Components reference, which each wrapper's type links to.
2
+ * `@mosaicajs/react/components` is every element of `@mosaicajs/components` as a React component,
3
+ * such as `MosaicaMap` for `<mosaica-map>`. Each component takes the element's properties as props,
4
+ * including objects such as `store` that React 18 would otherwise set as attributes. Each event
5
+ * the element fires is a handler prop, such as `onPick` for `mosaica-pick`. The element's
6
+ * attributes, properties, events, slots and parts are on its page in the Components reference,
7
+ * which each component's type below links to.
9
8
  *
10
- * `MosaicaStore`, `MosaicaMap` and `MosaicaExplorer` read their `authorise` prop through a ref, so
11
- * an inline function does not build a new store on every render. To show the map to another
12
- * viewer, change `token` or `viewerUrl`, or give the component a new `key`.
9
+ * A component draws from the store you pass as `store`, such as one from `useMosaicaStore` in
10
+ * `@mosaicajs/react`, or else from an enclosing `MosaicaStore` or `MosaicaExplorer`. Those two and
11
+ * `MosaicaMap` can also make their own store from `viewerUrl` and `token` or `authorise`. You can
12
+ * pass an inline `authorise` function: the component calls the latest one and does not create a
13
+ * new store when it changes.
14
+ * To show the map to another viewer, change `token` or `viewerUrl`, or give the component a new
15
+ * `key`.
13
16
  *
14
- * This entry imports `@mosaicajs/components`, and with it Lit and deck.gl. The hooks are in the
15
- * package root, `@mosaicajs/react`, which imports neither.
17
+ * The element classes are exported as types with an `Element` suffix, such as `MapElement`, for
18
+ * typing a ref. This entry imports `@mosaicajs/components`, and with it Lit and deck.gl.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * import {useMosaicaStore} from '@mosaicajs/react';
23
+ * import {MosaicaMap, MosaicaItemCard} from '@mosaicajs/react/components';
24
+ *
25
+ * function Map({token}: {token: string}) {
26
+ * const store = useMosaicaStore({viewerUrl: 'http://localhost:8080', token});
27
+ * return (
28
+ * <>
29
+ * <MosaicaMap store={store} onPick={(e) => console.log(e.detail.id)} />
30
+ * <MosaicaItemCard store={store} />
31
+ * </>
32
+ * );
33
+ * }
34
+ * ```
16
35
  *
17
36
  * @module @mosaicajs/react/components
18
37
  */
@@ -50,20 +69,17 @@ const mapEvents = {
50
69
  onViewChange: ev('mosaica-viewchange'),
51
70
  onSelectChange: ev('mosaica-selectchange'),
52
71
  onArtifactOpen: ev('mosaica-artifactopen'),
53
- onLayerChange: ev('mosaica-layerchange')
72
+ onLayerChange: ev('mosaica-layerchange'),
73
+ onBasemapChange: ev('mosaica-basemapchange')
54
74
  };
55
75
  /** `<mosaica-store>` as a React component. It has no event props. */
56
76
  export const MosaicaStore = withStableAuthorise(wrap('mosaica-store', StoreElement, {}));
57
77
  /**
58
- * `<mosaica-explorer>` as a React component. It has a handler prop for every event, since the
59
- * elements inside it emit them and each event bubbles out of it: `onPick`, `onItemOpen`, `onMiss`, `onHover`,
60
- * `onViewChange`, `onSelectChange`, `onArtifactOpen`, `onLayerChange`, `onArtifactFit`,
61
- * `onColourChange`, `onLevelChange`, `onValueColour`, `onClusterColour`, `onPaletteChange`, `onClusterPaletteChange`,
62
- * `onDisplayChange`, `onSizeChange`, `onBudgetChange`, `onClusterBudgetChange`, `onFold`,
63
- * `onFilterChange`, `onStateChange`, `onExpired`, `onOpen`, `onClose`, `onClauseChange`,
64
- * `onViewSwitch` and `onViewFollow`, each for the `mosaica-` event of the same name in lower case.
65
- * The `open` prop is the function the item card's Open calls, and `openUrl` the address it goes
66
- * to; `onOpen` hears every press.
78
+ * `<mosaica-explorer>` as a React component. The events of the elements inside it bubble out, so
79
+ * it has a handler prop for each of them: `onPick` for `mosaica-pick`, and so on for every event
80
+ * in {@link MosaicaEvents} except `mosaica-chipopen`, which it does not fire. The `open` prop
81
+ * is the function the item card's Open button calls, and `openUrl` the address it goes to.
82
+ * `onOpen` is called on every press.
67
83
  */
68
84
  export const MosaicaExplorer = withStableAuthorise(wrap('mosaica-explorer', ExplorerElement, {
69
85
  ...mapEvents,
@@ -90,20 +106,23 @@ export const MosaicaExplorer = withStableAuthorise(wrap('mosaica-explorer', Expl
90
106
  }));
91
107
  /**
92
108
  * `<mosaica-map>` as a React component. Event props: `onPick` (`mosaica-pick`), `onItemOpen`
93
- * (`mosaica-itemopen`), `onMiss`
94
- * (`mosaica-miss`), `onHover` (`mosaica-hover`), `onViewChange` (`mosaica-viewchange`), `onSelectChange`
95
- * (`mosaica-selectchange`), `onArtifactOpen` (`mosaica-artifactopen`) and `onLayerChange`
96
- * (`mosaica-layerchange`).
109
+ * (`mosaica-itemopen`), `onMiss` (`mosaica-miss`), `onHover` (`mosaica-hover`), `onViewChange`
110
+ * (`mosaica-viewchange`), `onSelectChange` (`mosaica-selectchange`), `onArtifactOpen`
111
+ * (`mosaica-artifactopen`), `onLayerChange` (`mosaica-layerchange`) and `onBasemapChange`
112
+ * (`mosaica-basemapchange`).
97
113
  */
98
114
  export const MosaicaMap = withStableAuthorise(wrap('mosaica-map', MapElement, mapEvents));
99
- /** `<mosaica-status>` as a React component. Event props: `onStateChange` (`mosaica-statechange`) and `onExpired` (`mosaica-expired`). */
115
+ /**
116
+ * `<mosaica-status>` as a React component. Event props: `onStateChange` (`mosaica-statechange`)
117
+ * and `onExpired` (`mosaica-expired`).
118
+ */
100
119
  export const MosaicaStatus = wrap('mosaica-status', StatusElement, { onStateChange: ev('mosaica-statechange'), onExpired: ev('mosaica-expired') });
101
120
  /** `<mosaica-count>` as a React component. It has no event props. */
102
121
  export const MosaicaCount = wrap('mosaica-count', CountElement, {});
103
122
  /**
104
123
  * `<mosaica-item-card>` as a React component. Event props: `onOpen` (`mosaica-open`), `onClose`
105
- * (`mosaica-close`) and `onViewFollow` (`mosaica-viewfollow`). The `open` prop is the function
106
- * Open calls, and `openUrl` the address it goes to; `onOpen` hears every press.
124
+ * (`mosaica-close`) and `onViewFollow` (`mosaica-viewfollow`). The `open` prop is the function the
125
+ * Open button calls, and `openUrl` the address it goes to. `onOpen` is called on every press.
107
126
  */
108
127
  export const MosaicaItemCard = wrap('mosaica-item-card', ItemCardElement, { onOpen: ev('mosaica-open'), onClose: ev('mosaica-close'), onViewFollow: ev('mosaica-viewfollow') });
109
128
  /**
package/dist/index.d.ts CHANGED
@@ -1,32 +1,32 @@
1
1
  import { type ProjectionName, type Projections, type Store, type StoreOptions, type TokenSupplier } from '@mosaicajs/client';
2
- /** The options of {@link useMosaicaStore}: the options of {@link createStore}, with `authorise` read through a ref. */
2
+ /** The options of {@link useMosaicaStore}, which are those of {@link createStore}. */
3
3
  export type UseMosaicaStoreOptions = Omit<StoreOptions, 'authorise'> & {
4
4
  /**
5
- * A function the store calls for a new token before the current one expires. The hook reads it
6
- * through a ref, so an inline function neither rebuilds the store nor goes stale. A store serves
7
- * one viewer: to show another, call `clear()` on the store or give the component a new `key`.
5
+ * A function that returns a viewer token, which the store calls at the start and before each
6
+ * token expires. You can pass an inline function: the hook calls the latest one and does not
7
+ * create a new store when it changes. A store serves one viewer. To show the map to another, call the
8
+ * store's `clear()` or give the component a new `key`.
8
9
  */
9
10
  authorise?: TokenSupplier;
10
11
  };
11
12
  /**
12
- * Creates a store with {@link createStore} for the component's lifetime, and disposes of it on
13
- * unmount. The store is rebuilt when `viewerUrl`, `client`, `token` or `view` changes, or when
14
- * `authorise` is given or removed. A change to any other option takes effect at the next rebuild.
15
- * With a `client`, `viewerUrl` may be left out, as `createStore` allows. Keep the `client` the
16
- * same object across renders, such as with `useMemo`: a new client each render rebuilds the store
17
- * each render.
13
+ * Creates a store with {@link createStore} for the lifetime of the component, and disposes of it on
14
+ * unmount. The store is created in an effect, so the first render returns `null`.
18
15
  *
19
- * The store is built in an effect, so the first render returns `null`. Options `createStore`
20
- * refuses, such as neither `viewerUrl` nor `client`, throw from that effect.
16
+ * The store is created again when `viewerUrl`, `client`, `token` or `view` changes, or when
17
+ * `authorise` is added or removed. Other options take effect the next time it is created. If you
18
+ * pass a `client`, keep it the same object across renders, for example with `useMemo`, or every
19
+ * render creates a new store. Options that `createStore` refuses, such as neither `viewerUrl` nor
20
+ * `client`, throw from the effect.
21
21
  */
22
22
  export declare function useMosaicaStore(options: UseMosaicaStoreOptions): Store | null;
23
23
  /**
24
- * Reads one projection of `store` through `useSyncExternalStore`, and re-renders the component
25
- * when that projection is replaced. A change to another projection does not re-render it.
24
+ * Returns one of the store's projections, and re-renders the component whenever that projection
25
+ * changes. Changes to other projections do not re-render it.
26
26
  *
27
27
  * @param store - The store, such as the one {@link useMosaicaStore} returns.
28
28
  * @param name - The projection to read, such as `marks` or `legend`.
29
- * @returns The projection, or `null` while `store` is `null`.
29
+ * @returns The projection, or `null` while `store` is `null`, as it is on the first render.
30
30
  */
31
31
  export declare function useProjection<K extends ProjectionName>(store: Store, name: K): Projections[K];
32
32
  export declare function useProjection<K extends ProjectionName>(store: Store | null, name: K): Projections[K] | null;
package/dist/index.js CHANGED
@@ -1,23 +1,43 @@
1
1
  /**
2
- * React hooks for the headless store. {@link useMosaicaStore} creates a store for a component's
3
- * lifetime, and {@link useProjection} reads one of its projections and re-renders when it changes.
4
- * The React components for the elements are in the `@mosaicajs/react/components` entry. This
5
- * entry imports neither Lit nor deck.gl.
2
+ * `@mosaicajs/react` connects the store from `@mosaicajs/client` to React. {@link useMosaicaStore}
3
+ * creates a store that lives as long as your component. {@link useProjection} reads one of the
4
+ * store's projections, the read-only snapshots it publishes of the map's state, and re-renders
5
+ * your component when that projection changes.
6
+ *
7
+ * The elements of `@mosaicajs/components`, such as the map, are React components in the
8
+ * `@mosaicajs/react/components` entry, and you can pass them a store as the `store` prop. This
9
+ * entry imports neither Lit nor deck.gl, so a page that uses only the hooks does not load them.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * import {useMosaicaStore, useProjection} from '@mosaicajs/react';
14
+ * import {MosaicaMap} from '@mosaicajs/react/components';
15
+ *
16
+ * function Map({token}: {token: string}) {
17
+ * const store = useMosaicaStore({viewerUrl: 'http://localhost:8080', token});
18
+ * const status = useProjection(store, 'status');
19
+ * return (
20
+ * <>
21
+ * <MosaicaMap store={store} />
22
+ * <p>{status?.status}</p>
23
+ * </>
24
+ * );
25
+ * }
26
+ * ```
6
27
  *
7
28
  * @module @mosaicajs/react
8
29
  */
9
30
  import { useEffect, useLayoutEffect, useRef, useState, useSyncExternalStore } from 'react';
10
31
  import { createStore } from '@mosaicajs/client';
11
32
  /**
12
- * Creates a store with {@link createStore} for the component's lifetime, and disposes of it on
13
- * unmount. The store is rebuilt when `viewerUrl`, `client`, `token` or `view` changes, or when
14
- * `authorise` is given or removed. A change to any other option takes effect at the next rebuild.
15
- * With a `client`, `viewerUrl` may be left out, as `createStore` allows. Keep the `client` the
16
- * same object across renders, such as with `useMemo`: a new client each render rebuilds the store
17
- * each render.
33
+ * Creates a store with {@link createStore} for the lifetime of the component, and disposes of it on
34
+ * unmount. The store is created in an effect, so the first render returns `null`.
18
35
  *
19
- * The store is built in an effect, so the first render returns `null`. Options `createStore`
20
- * refuses, such as neither `viewerUrl` nor `client`, throw from that effect.
36
+ * The store is created again when `viewerUrl`, `client`, `token` or `view` changes, or when
37
+ * `authorise` is added or removed. Other options take effect the next time it is created. If you
38
+ * pass a `client`, keep it the same object across renders, for example with `useMemo`, or every
39
+ * render creates a new store. Options that `createStore` refuses, such as neither `viewerUrl` nor
40
+ * `client`, throw from the effect.
21
41
  */
22
42
  export function useMosaicaStore(options) {
23
43
  const [store, setStore] = useState(null);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mosaicajs/react",
3
- "version": "0.1.0-rc.4",
3
+ "version": "0.1.0-rc.5",
4
4
  "description": "React hooks over the headless store, and typed wrappers for the mosaica-* elements behind a separate entry.",
5
5
  "keywords": [
6
6
  "mosaica",
@@ -19,7 +19,7 @@
19
19
  "directory": "clients/ts/react"
20
20
  },
21
21
  "license": "Apache-2.0",
22
- "author": "Joe Ennis",
22
+ "author": "mosaicadb",
23
23
  "type": "module",
24
24
  "main": "./dist/index.js",
25
25
  "types": "./dist/index.d.ts",
@@ -45,11 +45,11 @@
45
45
  "typecheck": "tsc -p tsconfig.json --noEmit"
46
46
  },
47
47
  "dependencies": {
48
- "@mosaicajs/client": "^0.1.0-rc.4"
48
+ "@mosaicajs/client": "^0.1.0-rc.5"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "@lit/react": "^1.0.0",
52
- "@mosaicajs/components": "^0.1.0-rc.4",
52
+ "@mosaicajs/components": "^0.1.0-rc.5",
53
53
  "react": "^18.0.0 || ^19.0.0"
54
54
  },
55
55
  "peerDependenciesMeta": {
@@ -62,14 +62,14 @@
62
62
  },
63
63
  "devDependencies": {
64
64
  "@lit/react": "^1.0.8",
65
- "@mosaicajs/components": "^0.1.0-rc.4",
65
+ "@mosaicajs/components": "^0.1.0-rc.5",
66
66
  "@types/react": "^19.2.0",
67
67
  "@types/react-dom": "^19.2.0",
68
- "happy-dom": "^20.0.0",
68
+ "happy-dom": "^21.0.4",
69
69
  "react": "^19.2.0",
70
70
  "react-dom": "^19.2.0",
71
71
  "typescript": "^5.9.0",
72
- "vitest": "^3.2.0"
72
+ "vitest": "^4.1.12"
73
73
  },
74
74
  "publishConfig": {
75
75
  "access": "public"