@brendanbank/atrium-host-bundle-utils 0.15.3 → 0.16.1
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.
- package/README.md +2 -2
- package/dist/react/index.d.ts +83 -13
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +96 -13
- package/dist/react/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -97,8 +97,8 @@ or hosts that want axios-shaped retry).
|
|
|
97
97
|
|
|
98
98
|
## Versioning
|
|
99
99
|
|
|
100
|
-
The package version tracks atrium's image version. Pin `^0.
|
|
101
|
-
"compatible with atrium 0.
|
|
100
|
+
The package version tracks atrium's image version. Pin `^0.16` for
|
|
101
|
+
"compatible with atrium 0.16.x"; bump together with the atrium image
|
|
102
102
|
to pick up new registry slots and SDK helpers.
|
|
103
103
|
|
|
104
104
|
## See also
|
package/dist/react/index.d.ts
CHANGED
|
@@ -91,13 +91,21 @@ export type AtriumLocation = {
|
|
|
91
91
|
pathname: string;
|
|
92
92
|
search: string;
|
|
93
93
|
hash: string;
|
|
94
|
+
/** Monotonic per-event counter atrium increments on every
|
|
95
|
+
* `atrium:locationchange` dispatch. Use this in effect deps when
|
|
96
|
+
* the effect should re-run on every navigation event, including a
|
|
97
|
+
* re-click of the same href that react-router would otherwise
|
|
98
|
+
* no-op (e.g. clicking the same notification bell item twice — see
|
|
99
|
+
* atrium #81). Without it, `useEffect(…, [search])` stays put
|
|
100
|
+
* because `search` is structurally identical between the two
|
|
101
|
+
* events. Always present from atrium 0.16+; `0` on older images
|
|
102
|
+
* that don't dispatch a nonce. */
|
|
103
|
+
nonce: number;
|
|
94
104
|
};
|
|
95
105
|
/** Subscribe to atrium's react-router location changes from inside a
|
|
96
|
-
* host bundle's React tree. Returns `{ pathname, search, hash }`
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
* (`navigate('/?focus=booking:42')` while already on `/`) where the
|
|
100
|
-
* host's wrapper element doesn't remount.
|
|
106
|
+
* host bundle's React tree. Returns `{ pathname, search, hash, nonce }`
|
|
107
|
+
* — the first three mirror `window.location`; `nonce` is a monotonic
|
|
108
|
+
* counter atrium increments on every dispatch.
|
|
101
109
|
*
|
|
102
110
|
* Bridges the `atrium:locationchange` CustomEvent atrium dispatches
|
|
103
111
|
* on `window` through `useSyncExternalStore`, so multiple subscribers
|
|
@@ -112,18 +120,80 @@ export type AtriumLocation = {
|
|
|
112
120
|
* }
|
|
113
121
|
* ```
|
|
114
122
|
*
|
|
123
|
+
* When you want the effect to re-run on **every** navigation event —
|
|
124
|
+
* including the same-URL re-click case (clicking the same notification
|
|
125
|
+
* bell item twice — atrium #81) — include `nonce` in the deps:
|
|
126
|
+
*
|
|
127
|
+
* ```tsx
|
|
128
|
+
* function FocusDrawer() {
|
|
129
|
+
* const { search, nonce } = useAtriumLocation();
|
|
130
|
+
* useEffect(() => {
|
|
131
|
+
* const focus = new URLSearchParams(search).get('focus');
|
|
132
|
+
* if (focus) openDrawer(focus);
|
|
133
|
+
* // Without `nonce` here, React dedupes on `[search]` so a second
|
|
134
|
+
* // click of the same href doesn't re-open the drawer.
|
|
135
|
+
* }, [search, nonce]);
|
|
136
|
+
* }
|
|
137
|
+
* ```
|
|
138
|
+
*
|
|
115
139
|
* Hosts that don't use React (or want to handle navigation outside a
|
|
116
140
|
* component) can subscribe directly:
|
|
117
141
|
* `window.addEventListener('atrium:locationchange', e => …)`. The
|
|
118
|
-
* event's `detail` carries the same `{pathname, search, hash}`
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* wrapper that remounts on route
|
|
142
|
+
* event's `detail` carries the same `{pathname, search, hash, nonce}`
|
|
143
|
+
* shape.
|
|
144
|
+
*
|
|
145
|
+
* Available on atrium 0.15.3+; `nonce` lands in 0.16+. On older atrium
|
|
146
|
+
* images the hook still works but only reflects the initial
|
|
147
|
+
* `window.location` (and `nonce` stays at 0). Hosts that need to
|
|
148
|
+
* support pre-0.15.3 atrium can read `window.__ATRIUM_VERSION__` and
|
|
149
|
+
* fall back to `useLocation()` from a wrapper that remounts on route
|
|
150
|
+
* swaps. */
|
|
126
151
|
export declare function useAtriumLocation(): AtriumLocation;
|
|
152
|
+
/** Programmatic navigate that works from inside a host bundle's React
|
|
153
|
+
* tree, where `useNavigate()` from react-router isn't available
|
|
154
|
+
* (atrium owns the router context; the host tree only meets atrium's
|
|
155
|
+
* at the wrapper element produced by `makeWrapperElement`).
|
|
156
|
+
*
|
|
157
|
+
* Returns a stable `navigate(href, opts?)` function that updates the
|
|
158
|
+
* URL via `pushState` / `replaceState` and re-syncs atrium's
|
|
159
|
+
* react-router by dispatching a synthesized `popstate`. Atrium then
|
|
160
|
+
* fires its own `atrium:locationchange` so other host listeners
|
|
161
|
+
* observe the change.
|
|
162
|
+
*
|
|
163
|
+
* The primary use case is **cleaning up a deep-link query param after
|
|
164
|
+
* the host has consumed it** — a flow that previously had no host-
|
|
165
|
+
* observable solution (a raw `history.replaceState` desyncs atrium's
|
|
166
|
+
* router from the browser URL). See atrium #81.
|
|
167
|
+
*
|
|
168
|
+
* ```tsx
|
|
169
|
+
* function FocusDrawer() {
|
|
170
|
+
* const { search } = useAtriumLocation();
|
|
171
|
+
* const navigate = useAtriumNavigate();
|
|
172
|
+
* const focus = new URLSearchParams(search).get('focus');
|
|
173
|
+
* return focus ? (
|
|
174
|
+
* <Drawer
|
|
175
|
+
* opened
|
|
176
|
+
* onClose={() => {
|
|
177
|
+
* // Strip the param so a second click of the same bell item
|
|
178
|
+
* // (which navigates to the same href) is a real change from
|
|
179
|
+
* // atrium's perspective and re-fires the locationchange.
|
|
180
|
+
* const next = new URLSearchParams(search);
|
|
181
|
+
* next.delete('focus');
|
|
182
|
+
* navigate(`/?${next.toString()}`, { replace: true });
|
|
183
|
+
* }}
|
|
184
|
+
* >
|
|
185
|
+
* <BookingDetail id={focus} />
|
|
186
|
+
* </Drawer>
|
|
187
|
+
* ) : null;
|
|
188
|
+
* }
|
|
189
|
+
* ```
|
|
190
|
+
*
|
|
191
|
+
* Available since atrium 0.16. The hook works on older images too —
|
|
192
|
+
* it doesn't depend on any atrium-side surface — but on pre-0.16 the
|
|
193
|
+
* resulting `atrium:locationchange` event won't carry a `nonce`. */
|
|
194
|
+
export declare function useAtriumNavigate(): (href: string, opts?: {
|
|
195
|
+
replace?: boolean;
|
|
196
|
+
}) => void;
|
|
127
197
|
/** Test-only: drop the cached snapshot so the next `getSnapshot` reads
|
|
128
198
|
* `window.location` fresh. Production code never calls this — the
|
|
129
199
|
* cache is updated by the event subscription. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,UAAU,kBAAkB;IAC1B,gBAAgB,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACrD;AAmBD,MAAM,WAAW,mBAAmB;IAClC;;;kDAG8C;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;sBAGkB;IAClB,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrD,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;qCAGqC;AACrC,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,gBAAgB,EAChB,QAAQ,GACT,EAAE,mBAAmB,2MAYrB;AAED;;iEAEiE;AACjE,eAAO,MAAM,YAAY,2BAA4B,CAAC;AAmBtD;;;;;;;;8BAQ8B;AAC9B,wBAAgB,KAAK,IAAI,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAQ1D;AAED;;iBAEiB;AACjB,wBAAgB,cAAc,IAAI,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAEnE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAMnD;AAED;sEACsE;AACtE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG7C;AAED;;;qBAGqB;AACrB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,UAAU,kBAAkB;IAC1B,gBAAgB,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACrD;AAmBD,MAAM,WAAW,mBAAmB;IAClC;;;kDAG8C;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;sBAGkB;IAClB,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrD,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;qCAGqC;AACrC,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,gBAAgB,EAChB,QAAQ,GACT,EAAE,mBAAmB,2MAYrB;AAED;;iEAEiE;AACjE,eAAO,MAAM,YAAY,2BAA4B,CAAC;AAmBtD;;;;;;;;8BAQ8B;AAC9B,wBAAgB,KAAK,IAAI,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAQ1D;AAED;;iBAEiB;AACjB,wBAAgB,cAAc,IAAI,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAEnE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAMnD;AAED;sEACsE;AACtE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG7C;AAED;;;qBAGqB;AACrB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;uCAQmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAoEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6Ca;AACb,wBAAgB,iBAAiB,IAAI,cAAc,CAMlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAyCqE;AACrE,wBAAgB,iBAAiB,IAAI,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KACzB,IAAI,CAeR;AAED;;kDAEkD;AAClD,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD"}
|
package/dist/react/index.js
CHANGED
|
@@ -125,6 +125,7 @@ const SSR_LOCATION = {
|
|
|
125
125
|
pathname: '/',
|
|
126
126
|
search: '',
|
|
127
127
|
hash: '',
|
|
128
|
+
nonce: 0,
|
|
128
129
|
};
|
|
129
130
|
// Module-level cache so `useSyncExternalStore.getSnapshot` returns a
|
|
130
131
|
// referentially-stable object across renders — re-creating it every
|
|
@@ -139,6 +140,9 @@ function readWindowLocation() {
|
|
|
139
140
|
pathname: window.location.pathname,
|
|
140
141
|
search: window.location.search,
|
|
141
142
|
hash: window.location.hash,
|
|
143
|
+
// No event has been observed yet, so we have no atrium-supplied
|
|
144
|
+
// nonce. Zero is the documented "no nonce yet" value.
|
|
145
|
+
nonce: 0,
|
|
142
146
|
};
|
|
143
147
|
}
|
|
144
148
|
function getLocationSnapshot() {
|
|
@@ -163,6 +167,10 @@ function subscribeLocation(onChange) {
|
|
|
163
167
|
pathname: detail.pathname,
|
|
164
168
|
search: detail.search,
|
|
165
169
|
hash: detail.hash,
|
|
170
|
+
// ``nonce`` was added to the event detail in atrium 0.16
|
|
171
|
+
// (#81). Older images dispatch the event without it; default
|
|
172
|
+
// to 0 so the field is always a number.
|
|
173
|
+
nonce: typeof detail.nonce === 'number' ? detail.nonce : 0,
|
|
166
174
|
};
|
|
167
175
|
}
|
|
168
176
|
else {
|
|
@@ -174,11 +182,9 @@ function subscribeLocation(onChange) {
|
|
|
174
182
|
return () => window.removeEventListener(ATRIUM_LOCATION_EVENT, handler);
|
|
175
183
|
}
|
|
176
184
|
/** Subscribe to atrium's react-router location changes from inside a
|
|
177
|
-
* host bundle's React tree. Returns `{ pathname, search, hash }`
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
* (`navigate('/?focus=booking:42')` while already on `/`) where the
|
|
181
|
-
* host's wrapper element doesn't remount.
|
|
185
|
+
* host bundle's React tree. Returns `{ pathname, search, hash, nonce }`
|
|
186
|
+
* — the first three mirror `window.location`; `nonce` is a monotonic
|
|
187
|
+
* counter atrium increments on every dispatch.
|
|
182
188
|
*
|
|
183
189
|
* Bridges the `atrium:locationchange` CustomEvent atrium dispatches
|
|
184
190
|
* on `window` through `useSyncExternalStore`, so multiple subscribers
|
|
@@ -193,20 +199,97 @@ function subscribeLocation(onChange) {
|
|
|
193
199
|
* }
|
|
194
200
|
* ```
|
|
195
201
|
*
|
|
202
|
+
* When you want the effect to re-run on **every** navigation event —
|
|
203
|
+
* including the same-URL re-click case (clicking the same notification
|
|
204
|
+
* bell item twice — atrium #81) — include `nonce` in the deps:
|
|
205
|
+
*
|
|
206
|
+
* ```tsx
|
|
207
|
+
* function FocusDrawer() {
|
|
208
|
+
* const { search, nonce } = useAtriumLocation();
|
|
209
|
+
* useEffect(() => {
|
|
210
|
+
* const focus = new URLSearchParams(search).get('focus');
|
|
211
|
+
* if (focus) openDrawer(focus);
|
|
212
|
+
* // Without `nonce` here, React dedupes on `[search]` so a second
|
|
213
|
+
* // click of the same href doesn't re-open the drawer.
|
|
214
|
+
* }, [search, nonce]);
|
|
215
|
+
* }
|
|
216
|
+
* ```
|
|
217
|
+
*
|
|
196
218
|
* Hosts that don't use React (or want to handle navigation outside a
|
|
197
219
|
* component) can subscribe directly:
|
|
198
220
|
* `window.addEventListener('atrium:locationchange', e => …)`. The
|
|
199
|
-
* event's `detail` carries the same `{pathname, search, hash}`
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
* wrapper that remounts on route
|
|
221
|
+
* event's `detail` carries the same `{pathname, search, hash, nonce}`
|
|
222
|
+
* shape.
|
|
223
|
+
*
|
|
224
|
+
* Available on atrium 0.15.3+; `nonce` lands in 0.16+. On older atrium
|
|
225
|
+
* images the hook still works but only reflects the initial
|
|
226
|
+
* `window.location` (and `nonce` stays at 0). Hosts that need to
|
|
227
|
+
* support pre-0.15.3 atrium can read `window.__ATRIUM_VERSION__` and
|
|
228
|
+
* fall back to `useLocation()` from a wrapper that remounts on route
|
|
229
|
+
* swaps. */
|
|
207
230
|
export function useAtriumLocation() {
|
|
208
231
|
return useSyncExternalStore(subscribeLocation, getLocationSnapshot, getServerLocationSnapshot);
|
|
209
232
|
}
|
|
233
|
+
/** Programmatic navigate that works from inside a host bundle's React
|
|
234
|
+
* tree, where `useNavigate()` from react-router isn't available
|
|
235
|
+
* (atrium owns the router context; the host tree only meets atrium's
|
|
236
|
+
* at the wrapper element produced by `makeWrapperElement`).
|
|
237
|
+
*
|
|
238
|
+
* Returns a stable `navigate(href, opts?)` function that updates the
|
|
239
|
+
* URL via `pushState` / `replaceState` and re-syncs atrium's
|
|
240
|
+
* react-router by dispatching a synthesized `popstate`. Atrium then
|
|
241
|
+
* fires its own `atrium:locationchange` so other host listeners
|
|
242
|
+
* observe the change.
|
|
243
|
+
*
|
|
244
|
+
* The primary use case is **cleaning up a deep-link query param after
|
|
245
|
+
* the host has consumed it** — a flow that previously had no host-
|
|
246
|
+
* observable solution (a raw `history.replaceState` desyncs atrium's
|
|
247
|
+
* router from the browser URL). See atrium #81.
|
|
248
|
+
*
|
|
249
|
+
* ```tsx
|
|
250
|
+
* function FocusDrawer() {
|
|
251
|
+
* const { search } = useAtriumLocation();
|
|
252
|
+
* const navigate = useAtriumNavigate();
|
|
253
|
+
* const focus = new URLSearchParams(search).get('focus');
|
|
254
|
+
* return focus ? (
|
|
255
|
+
* <Drawer
|
|
256
|
+
* opened
|
|
257
|
+
* onClose={() => {
|
|
258
|
+
* // Strip the param so a second click of the same bell item
|
|
259
|
+
* // (which navigates to the same href) is a real change from
|
|
260
|
+
* // atrium's perspective and re-fires the locationchange.
|
|
261
|
+
* const next = new URLSearchParams(search);
|
|
262
|
+
* next.delete('focus');
|
|
263
|
+
* navigate(`/?${next.toString()}`, { replace: true });
|
|
264
|
+
* }}
|
|
265
|
+
* >
|
|
266
|
+
* <BookingDetail id={focus} />
|
|
267
|
+
* </Drawer>
|
|
268
|
+
* ) : null;
|
|
269
|
+
* }
|
|
270
|
+
* ```
|
|
271
|
+
*
|
|
272
|
+
* Available since atrium 0.16. The hook works on older images too —
|
|
273
|
+
* it doesn't depend on any atrium-side surface — but on pre-0.16 the
|
|
274
|
+
* resulting `atrium:locationchange` event won't carry a `nonce`. */
|
|
275
|
+
export function useAtriumNavigate() {
|
|
276
|
+
return useCallback((href, opts) => {
|
|
277
|
+
if (typeof window === 'undefined')
|
|
278
|
+
return;
|
|
279
|
+
if (opts?.replace) {
|
|
280
|
+
window.history.replaceState(window.history.state, '', href);
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
window.history.pushState(window.history.state, '', href);
|
|
284
|
+
}
|
|
285
|
+
// React-router's BrowserHistory subscribes to ``popstate`` for
|
|
286
|
+
// back/forward navigation. Synthesizing one here makes it re-read
|
|
287
|
+
// ``window.location`` and update its internal state, which in turn
|
|
288
|
+
// re-renders atrium's NavigationBridge and dispatches a fresh
|
|
289
|
+
// ``atrium:locationchange`` with a new monotonic nonce.
|
|
290
|
+
window.dispatchEvent(new PopStateEvent('popstate'));
|
|
291
|
+
}, []);
|
|
292
|
+
}
|
|
210
293
|
/** Test-only: drop the cached snapshot so the next `getSnapshot` reads
|
|
211
294
|
* `window.location` fresh. Production code never calls this — the
|
|
212
295
|
* cache is updated by the event subscription. */
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brendanbank/atrium-host-bundle-utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.1",
|
|
4
4
|
"description": "Runtime helpers, Vite preset, and React hooks for atrium host bundles. Wraps the dual-tree mount pattern, the host-bundle Vite library config, and the /users/me/context hook so a host's main.tsx is ~10 lines of registration calls.",
|
|
5
5
|
"license": "BSD-2-Clause",
|
|
6
6
|
"type": "module",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@brendanbank/atrium-host-types": "0.
|
|
28
|
+
"@brendanbank/atrium-host-types": "0.16.1"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@tanstack/react-query": "^5.0.0",
|