@jskit-ai/agent-docs 0.1.262 → 0.1.263

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.
Files changed (47) hide show
  1. package/guide/agent/app-extras/realtime.md +5 -0
  2. package/guide/agent/framework/client-features.md +63 -1
  3. package/package.json +1 -1
  4. package/patterns/feature-package/example/booking-engine/package.json +1 -1
  5. package/patterns/minimal-foundation/example/package.json +4 -4
  6. package/patterns/shell-foundation/example/package.json +5 -5
  7. package/patterns/shell-foundation/example/packages/main/package.json +1 -1
  8. package/reference/autogen/PATTERN_INDEX.md +37 -37
  9. package/reference/autogen/packages/assistant-core.md +1 -0
  10. package/reference/autogen/packages/assistant-runtime.md +1 -0
  11. package/reference/autogen/packages/auth-web.md +63 -28
  12. package/reference/autogen/packages/connectors-catalog.md +2 -2
  13. package/reference/autogen/packages/connectors-web.md +13 -9
  14. package/reference/autogen/packages/http-runtime.md +6 -1
  15. package/reference/autogen/packages/http-web.md +127 -54
  16. package/reference/autogen/packages/kernel.md +25 -12
  17. package/reference/autogen/packages/mobile-capacitor.md +36 -9
  18. package/reference/autogen/packages/realtime.md +17 -6
  19. package/reference/autogen/packages/rewarded-web.md +9 -4
  20. package/reference/autogen/packages/shell-web.md +115 -80
  21. package/reference/autogen/packages/uploads-image-web.md +35 -8
  22. package/reference/autogen/packages/users-web.md +38 -2
  23. package/reference/autogen/packages/workspaces-web.md +96 -55
  24. package/reference/autogen/tooling/config-eslint.md +1 -0
  25. package/reference/autogen/tooling/jskit-release.md +1 -1
  26. package/skills/jskit/references/client-features.md +63 -1
  27. package/skills/jskit/references/heuristics/client-features.md +4 -0
  28. package/skills/jskit/references/pattern-index.md +37 -37
  29. package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +4 -4
  30. package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +5 -5
  31. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +1 -1
  32. package/skills/jskit/references/patterns/auth/accounts-hub/example/package.json +2 -2
  33. package/skills/jskit/references/patterns/auth/oidc-sign-in/example/package.json +2 -2
  34. package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +1 -1
  35. package/skills/jskit/references/patterns/connectors/calendar-cli/example/package.json +4 -4
  36. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +2 -2
  37. package/skills/jskit/references/patterns/database/mysql-application/example/package.json +1 -1
  38. package/skills/jskit/references/patterns/database/postgres-application/example/package.json +1 -1
  39. package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
  40. package/skills/jskit/references/patterns/rewards/google-rewarded/example/googlePublisherTag.js +13 -10
  41. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +1 -1
  42. package/skills/jskit/references/patterns/ui/page-and-placement/example/src/placementTopology.js +1 -0
  43. package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsPreferencesSection.vue +7 -7
  44. package/skills/jskit/references/patterns/users/account-settings/example/src/components/account/settings/AccountSettingsProfileSection.vue +1 -1
  45. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +2 -2
  46. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +3 -3
  47. package/skills/jskit/references/patterns/workspaces/workspace-surfaces/example/src/composables/useWorkspaceNotFoundState.js +2 -2
@@ -22,17 +22,18 @@ Local functions
22
22
 
23
23
  ### `src/client/composables/useRealtimeEvent.js`
24
24
  Exports
25
- - `EMPTY_REALTIME_SOCKET`
26
- - `useRealtimeSocket({ required = false } = {})`
27
- - `useRealtimeEvent({ event = "*", enabled = true, matches = null, onEvent } = {})`
25
+ - `NO_REALTIME_SOCKET`
26
+ - `REALTIME_SOCKET_KEY`
27
+ - `useRealtimeSocket()`
28
+ - `useRealtimeEvent({ event = "*", enabled = true, matches = matchesEveryEvent, onEvent })`
28
29
  Local functions
29
- - `isRealtimeSocket(socket)`
30
+ - `matchesEveryEvent()`
30
31
  - `resolveEnabled(value)`
31
32
  - `resolveEventName(value)`
32
33
 
33
34
  ### `src/client/connectionRecovery.js`
34
35
  Exports
35
- - `attachSocketConnectionRecovery(socket, { prepareReconnect = null } = {})`
36
+ - `attachSocketConnectionRecovery(socket, { prepareReconnect })`
36
37
 
37
38
  ### `src/client/i18n.js`
38
39
  Exports
@@ -43,15 +44,25 @@ Exports
43
44
  - `RealtimeClientProvider`
44
45
  - `resolveRealtimeClientConfig({ env = {}, mobile = null } = {})`
45
46
  Local functions
47
+ - `skipReconnectPreparation()`
46
48
  - `createRealtimeClient({ config, logger: appLogger })`
47
49
  - `trackServedClientBuild(socket, logger)`
48
50
 
49
51
  ### `src/client/runtime.js`
50
52
  Exports
51
- - `createSocketIoClient({ url = "", options = {}, connect = connectSocketIoClient } = {})`
53
+ - `createSocketIoClient({ url = "", options = {}, connect = connectSocketIoClient })`
52
54
  - `disconnectSocketIoClient(socket)`
53
55
  - `reconnectSocketIoClient(socket)`
54
56
 
57
+ ### `src/client/types.js`
58
+ Exports
59
+ - `type RealtimeSocket`
60
+ - `type RealtimeEventContext`
61
+ - `type RealtimeEventOptions`
62
+ - `type RealtimeMobile`
63
+ - `type RealtimeClientConfig`
64
+ - `type RealtimeClient`
65
+
55
66
  ### `src/server/realtimeAudience.js`
56
67
  Exports
57
68
  - `authenticationRequiredError()`
@@ -45,15 +45,20 @@ Exports
45
45
  ### `src/client/runtime/rewardedRuntime.js`
46
46
  Exports
47
47
  - `REWARDED_RUNTIME_INJECTION_KEY`
48
- - `createRewardedRuntime({ launchReward } = {})`
48
+ - `createRewardedRuntime({ launchReward })`
49
49
  Local functions
50
50
  - `createInitialState()`
51
51
  - `rewardedClientError(message, { messageCode })`
52
52
  - `applyState(target, source)`
53
53
  - `normalizeWorkspaceSlug(value = "")`
54
54
  - `isWellFormedGateState(gateState = null)`
55
- - `buildApiPath(workspaceSlug = "", action = "", query = null)`
56
- - `requestCurrent(input = {})`
55
+ - `buildApiPath(workspaceSlug = "", action = "", query = new URLSearchParams())`
56
+
57
+ ### `src/client/types.js`
58
+ Exports
59
+ - `type RewardedLaunch`
60
+ - `type RewardedDelivery`
61
+ - `type RewardedRuntime`
57
62
 
58
63
  ### `src/index.js`
59
64
  Exports
@@ -71,7 +76,7 @@ Exports
71
76
 
72
77
  ### `patterns/google-rewarded/example/googlePublisherTag.js`
73
78
  Exports
74
- - `launchGoogleRewardedAd({ providerConfig, onReady = null, onGranted = null, onClosed = null, onUnavailable = null } = {})`
79
+ - `launchGoogleRewardedAd({ providerConfig, onReady, onGranted, onClosed, onUnavailable })`
75
80
  Local functions
76
81
  - `ensureGooglePublisherTagLoaded()`
77
82
 
@@ -24,18 +24,19 @@ Exports
24
24
 
25
25
  ### `src/client/asyncModuleRecovery/index.js`
26
26
  Exports
27
+ - `NO_SHELL_ASYNC_MODULE_RECOVERY_RUNTIME`
27
28
  - `SHELL_ASYNC_MODULE_RECOVERY_RUNTIME_KEY`
28
29
  - `useShellAsyncModuleRecoveryRuntime`
29
30
 
30
31
  ### `src/client/asyncModuleRecovery/inject.js`
31
32
  Exports
33
+ - `NO_SHELL_ASYNC_MODULE_RECOVERY_RUNTIME`
32
34
  - `SHELL_ASYNC_MODULE_RECOVERY_RUNTIME_KEY`
33
- - `isShellAsyncModuleRecoveryRuntime(value)`
34
35
  - `useShellAsyncModuleRecoveryRuntime()`
35
36
 
36
37
  ### `src/client/asyncModuleRecovery/runtime.js`
37
38
  Exports
38
- - `createShellAsyncModuleRecoveryRuntime({ router = null, errorRuntime = null, logger })`
39
+ - `createShellAsyncModuleRecoveryRuntime({ router, errorRuntime, logger })`
39
40
 
40
41
  ### `src/client/bootstrap/bootstrapErrorStatus.js`
41
42
  Exports
@@ -45,6 +46,9 @@ Exports
45
46
  Exports
46
47
  - `createBootstrapPayloadHandlerRegistry()`
47
48
  - `normalizeBootstrapPayloadHandler(entry)`
49
+ Local functions
50
+ - `contributeNoBootstrapRequest()`
51
+ - `ignoreBootstrapError()`
48
52
 
49
53
  ### `src/client/bootstrap/index.js`
50
54
  Exports
@@ -52,48 +56,30 @@ Exports
52
56
  - `normalizeBootstrapPayloadHandler`
53
57
  - `resolveBootstrapErrorStatusCode`
54
58
 
59
+ ### `src/client/browser.js`
60
+ Exports
61
+ - `closestElement(target, selectors)`
62
+ - `pageDocument()`
63
+ - `pageOrigin()`
64
+ - `pagePathname()`
65
+ - `pageStorage()`
66
+ - `pageTitle()`
67
+ - `pageViewportWidth()`
68
+ - `pageWindow()`
69
+
55
70
  ### `src/client/clientUpdate/runtime.js`
56
71
  Exports
57
- - `createShellClientUpdateRuntime({ errorRuntime, reload, pageBuildId = pageClientBuildId(), appName = loadedAppName() } = {})`
72
+ - `createShellClientUpdateRuntime({ errorRuntime, reload, pageBuildId = pageClientBuildId(), appName = normalizeText(pageTitle()) })`
58
73
  Local functions
59
- - `loadedAppName(documentObject = globalThis.document)`
74
+ - `stopNothing()`
60
75
 
61
76
  ### `src/client/components/ShellErrorHost.vue`
62
77
  Exports
63
78
  - None
64
- Local functions
65
- - `readLayoutRect()`
66
- - `publishInlineBannerHeight(height = 0)`
67
- - `stopObservingBanners()`
68
- - `isSameSnackbarEntry(left = null, right = null)`
69
- - `hasSnackbarEntry(entry = null)`
70
- - `openNextSnackbarEntry()`
71
- - `resolveSeverityColor(severity = "error")`
72
- - `resolveSeverityIcon(severity = "error")`
73
- - `resolveTimeout(entry)`
74
- - `dismiss(entry)`
75
- - `actionsFor(entry)`
76
- - `runAction(entry, action)`
77
- - `onSnackbarModelValue(nextValue)`
78
- - `onDialogModelValue(nextValue)`
79
- - `onSnackbarAfterLeave()`
80
79
 
81
80
  ### `src/client/components/ShellLayout.vue`
82
81
  Exports
83
82
  - None
84
- Local functions
85
- - `attachShellListeners()`
86
- - `detachShellListeners()`
87
- - `handleDrawerOpenChange(open)`
88
- - `handleLayoutClassChange(compact)`
89
- - `handleShellKeydown(event)`
90
- - `focusNavigationToggle()`
91
- - `initializeDrawerMeasurement()`
92
- - `resolveNavigationDrawerElement()`
93
- - `scheduleDrawerWidthMeasurement()`
94
- - `measureDrawerContentWidth()`
95
- - `measureRenderedText(element)`
96
- - `handleDrawerVisibilityChange(open)`
97
83
 
98
84
  ### `src/client/components/ShellMenuLinkItem.vue`
99
85
  Exports
@@ -117,14 +103,6 @@ Exports
117
103
  ### `src/client/components/ShellRouteTransition.vue`
118
104
  Exports
119
105
  - None
120
- Local functions
121
- - `handlePointerDown(event)`
122
- - `handlePointerMove(event)`
123
- - `handlePointerEnd(event)`
124
- - `handlePointerCancel(event)`
125
- - `navigateBySwipe(offset = 0)`
126
- - `normalizeComparablePathname(value = "")`
127
- - `pathMatchesNavigationEntry(pathname = "", entry = {})`
128
106
 
129
107
  ### `src/client/components/ShellSurfaceAwareMenuLinkItem.vue`
130
108
  Exports
@@ -137,8 +115,21 @@ Exports
137
115
  ### `src/client/composables/shellLayoutDrawerPreference.js`
138
116
  Exports
139
117
  - `SHELL_LAYOUT_DRAWER_DEFAULT_OPEN_STORAGE_KEY`
140
- - `readDrawerDefaultOpenPreference({ storage = typeof window === "object" ? window?.localStorage : null } = {})`
141
- - `writeDrawerDefaultOpenPreference(open, { storage = typeof window === "object" ? window?.localStorage : null } = {})`
118
+ - `readDrawerDefaultOpenPreference({ storage = pageStorage() } = {})`
119
+ - `writeDrawerDefaultOpenPreference(open, { storage = pageStorage() } = {})`
120
+
121
+ ### `src/client/composables/useShellDrawer.js`
122
+ Exports
123
+ - `useShellDrawer({ props, isCompactLayout, navigationToggle, layoutState })`
124
+ Local functions
125
+ - `navigationDrawerElement()`
126
+
127
+ ### `src/client/composables/useShellErrorHost.js`
128
+ Exports
129
+ - `useShellErrorHost()`
130
+ Local functions
131
+ - `isSameSnackbarEntry(left = null, right = null)`
132
+ - `publishInlineBannerHeight(height = 0)`
142
133
 
143
134
  ### `src/client/composables/useShellLayoutState.js`
144
135
  Exports
@@ -153,22 +144,30 @@ Exports
153
144
 
154
145
  ### `src/client/composables/useShellPullToRefresh.js`
155
146
  Exports
156
- - `useShellPullToRefresh({ enabled, refreshRuntime = null } = {})`
147
+ - `useShellPullToRefresh({ enabled, refreshRuntime })`
157
148
  Local functions
158
149
  - `isAtPageTop()`
159
150
 
151
+ ### `src/client/composables/useShellRouteTransition.js`
152
+ Exports
153
+ - `useShellRouteTransition(props)`
154
+
160
155
  ### `src/client/error/index.js`
161
156
  Exports
162
157
  - `createDefaultErrorPolicy`
158
+ - `NO_SHELL_WEB_ERROR_RUNTIME`
163
159
  - `SHELL_WEB_ERROR_RUNTIME_KEY`
164
160
  - `useShellWebErrorRuntime`
165
161
  - `useShellErrorPresentationStore`
166
162
 
167
163
  ### `src/client/error/inject.js`
168
164
  Exports
165
+ - `NO_SHELL_WEB_ERROR_RUNTIME`
169
166
  - `SHELL_WEB_ERROR_RUNTIME_KEY`
170
- - `EMPTY_ERROR_RUNTIME`
171
- - `useShellWebErrorRuntime({ required = false } = {})`
167
+ - `useShellWebErrorRuntime()`
168
+ Local functions
169
+ - `throwUnavailable()`
170
+ - `emptySnapshot()`
172
171
 
173
172
  ### `src/client/error/normalize.js`
174
173
  Exports
@@ -188,28 +187,38 @@ Exports
188
187
  Exports
189
188
  - `createDefaultErrorPolicy({ defaultChannel = "snackbar", resourceLoadChannel = "silent", actionFeedbackChannel = "snackbar", appRecoverableChannel = "banner", blockingChannel = "dialog", defaultSeverity = "error" } = {})`
190
189
 
190
+ ### `src/client/error/presentation.js`
191
+ Exports
192
+ - `actionsFor(entry)`
193
+ - `resolveBannerPlacement(rect)`
194
+ - `resolveSeverityColor(severity = "error")`
195
+ - `resolveSeverityIcon(severity = "error")`
196
+ - `resolveTimeout(entry)`
197
+
191
198
  ### `src/client/error/presentationDefaults.js`
192
199
  Exports
193
200
  - `EMPTY_PRESENTATION_STATE`
194
- - `EMPTY_PRESENTATION_STORE`
201
+ - `NO_PRESENTATION_STORE`
195
202
 
196
203
  ### `src/client/error/presenters.js`
197
204
  Exports
198
- - `createStoreBackedPresenter({ id, channel, store } = {})`
199
- - `createMaterialSnackbarPresenter({ store } = {})`
200
- - `createMaterialBannerPresenter({ store } = {})`
201
- - `createMaterialDialogPresenter({ store } = {})`
202
- - `createDefaultMaterialErrorPresenters({ store } = {})`
205
+ - `createStoreBackedPresenter({ id, channel, store })`
206
+ - `createMaterialSnackbarPresenter({ store })`
207
+ - `createMaterialBannerPresenter({ store })`
208
+ - `createMaterialDialogPresenter({ store })`
209
+ - `createDefaultMaterialErrorPresenters({ store })`
203
210
 
204
211
  ### `src/client/error/runtime.js`
205
212
  Exports
206
- - `createErrorRuntime({ presenters = [], policy = null, defaultPresenterId = "", moduleDefaultPresenterId = "", logger })`
213
+ - `createErrorRuntime({ presenters = [], policy = createDefaultErrorPolicy(), defaultPresenterId = "", moduleDefaultPresenterId = "", logger })`
207
214
  - `normalizeErrorEvent(rawEvent = {})`
208
215
  Local functions
209
216
  - `freezeParams(params)`
210
217
  - `messageCodeFields(source = {}, fallback = {})`
211
218
  - `normalizePolicyDecision(policyDecision = {}, event = {})`
212
- - `normalizePresenter(candidate = {})`
219
+ - `supportsEveryChannel()`
220
+ - `dismissNothing()`
221
+ - `normalizePresenter(source)`
213
222
 
214
223
  ### `src/client/error/store.js`
215
224
  Exports
@@ -266,7 +275,7 @@ Local functions
266
275
 
267
276
  ### `src/client/navigation/usePaths.js`
268
277
  Exports
269
- - `usePaths({ routeContext: sourceRouteContext = null } = {})`
278
+ - `usePaths({ routeContext = useSurfaceRouteContext() } = {})`
270
279
  Local functions
271
280
  - `normalizePathSuffix(value = "")`
272
281
  - `resolveSurfaceId(value, fallback = "")`
@@ -290,6 +299,7 @@ Exports
290
299
  - `createPlacementRegistry`
291
300
  - `definePlacement`
292
301
  - `definePlacementTopology`
302
+ - `NO_WEB_PLACEMENT_RUNTIME`
293
303
  - `SHELL_WEB_PLACEMENT_RUNTIME_KEY`
294
304
  - `useWebPlacementContext`
295
305
  - `resolveRuntimePathname`
@@ -305,11 +315,13 @@ Exports
305
315
 
306
316
  ### `src/client/placement/inject.js`
307
317
  Exports
318
+ - `NO_WEB_PLACEMENT_RUNTIME`
308
319
  - `SHELL_WEB_PLACEMENT_RUNTIME_KEY`
309
- - `EMPTY_WEB_PLACEMENT_RUNTIME`
310
- - `EMPTY_WEB_PLACEMENT_CONTEXT`
311
- - `useWebPlacementRuntime({ required = false } = {})`
312
- - `useWebPlacementContext({ required = false } = {})`
320
+ - `useWebPlacementContext()`
321
+ - `useWebPlacementRevision(runtime)`
322
+ - `useWebPlacementRuntime()`
323
+ Local functions
324
+ - `followWebPlacementRuntime(runtime, listener)`
313
325
 
314
326
  ### `src/client/placement/pathname.js`
315
327
  Exports
@@ -338,7 +350,7 @@ Local functions
338
350
  ### `src/client/placement/surfaceContext.js`
339
351
  Exports
340
352
  - `EMPTY_SURFACE_CONFIG`
341
- - `buildSurfaceConfigContext(surfaceRuntime = null, { tenancyMode = "" } = {})`
353
+ - `buildSurfaceConfigContext(surfaceRuntime, { tenancyMode = "" } = {})`
342
354
  - `readPlacementSurfaceConfig(contextValue = null)`
343
355
  - `resolveAllowedOriginsFromPlacementContext(contextValue = null)`
344
356
  - `resolveSurfaceDefinitionFromPlacementContext(contextValue = null, surfaceId = "")`
@@ -365,6 +377,7 @@ Exports
365
377
  - `definePlacement(value = {})`
366
378
  - `definePlacementTopology(value = {})`
367
379
  Local functions
380
+ - `placeAlways()`
368
381
  - `toInteger(value, fallback = 1000)`
369
382
 
370
383
  ### `src/client/providers/appModuleLoadFailure.js`
@@ -377,16 +390,17 @@ Exports
377
390
  - `ShellWebClientProvider`
378
391
  - `resolveAppPlacementTopologyExport(exported, logger)`
379
392
  Local functions
380
- - `loadAppModule({ importModule, specifier, label, resolve, invalidExportMessage = "", loadFailureMessage, fallback, logger, asyncModuleRecoveryRuntime = null })`
381
- - `loadAppPlacementDefinitions(logger, asyncModuleRecoveryRuntime = null)`
382
- - `loadAppPlacementTopology(logger, asyncModuleRecoveryRuntime = null)`
393
+ - `loadAppModule({ importModule, specifier, label, resolve, invalidExportMessage = "", loadFailureMessage, fallback, logger, asyncModuleRecoveryRuntime })`
394
+ - `loadAppPlacementDefinitions(logger, asyncModuleRecoveryRuntime)`
395
+ - `loadAppPlacementTopology(logger, asyncModuleRecoveryRuntime)`
383
396
  - `createErrorConfigToolkit(errorRuntime)`
384
- - `loadAppErrorConfig(logger, errorRuntime, asyncModuleRecoveryRuntime = null)`
397
+ - `loadAppErrorConfig(logger, errorRuntime, asyncModuleRecoveryRuntime)`
385
398
  - `installVueErrorBridge(vueApp, errorRuntime, logger)`
386
399
  - `installRouterErrorBridge(router, errorRuntime, logger)`
387
400
 
388
401
  ### `src/client/requestRecovery/index.js`
389
402
  Exports
403
+ - `NO_SHELL_REQUEST_RECOVERY_RUNTIME`
390
404
  - `SHELL_REQUEST_RECOVERY_RUNTIME_KEY`
391
405
  - `useShellRequestRecoveryRuntime`
392
406
  - `isRecoverableRequestError`
@@ -394,14 +408,14 @@ Exports
394
408
 
395
409
  ### `src/client/requestRecovery/inject.js`
396
410
  Exports
411
+ - `NO_SHELL_REQUEST_RECOVERY_RUNTIME`
397
412
  - `SHELL_REQUEST_RECOVERY_RUNTIME_KEY`
398
- - `isShellRequestRecoveryRuntime(value)`
399
413
  - `useShellRequestRecoveryRuntime()`
400
414
 
401
415
  ### `src/client/requestRecovery/runtime.js`
402
416
  Exports
403
417
  - `appReloadFailureMessage()`
404
- - `createShellRequestRecoveryRuntime({ queryClient = null, errorRuntime = null, logger })`
418
+ - `createShellRequestRecoveryRuntime({ queryClient, errorRuntime, logger })`
405
419
  - `isRecoverableRequestError(error = null)`
406
420
  - `requestRecoveryMessage(error = null, { label = "", message = "" } = {})`
407
421
  Local functions
@@ -410,35 +424,32 @@ Local functions
410
424
  - `errorName(error = null)`
411
425
  - `normalizeRequestErrorStatus(error = null)`
412
426
  - `isCanceledRequestError(error = null)`
413
- - `resolveQueryMeta(query = null)`
414
- - `readQueryRecoveryMeta(query = null)`
415
- - `isActiveQuery(query = null)`
416
- - `recoverableQueryError(query = null)`
417
- - `createQueryRetry(queryClient, query = null)`
418
- - `resolveQueryHash(query = null)`
419
- - `installRecoverableQueryObserver({ queryClient, runtime, logger } = {})`
427
+ - `readQueryRecoveryMeta(query)`
428
+ - `recoverableQueryError(query)`
429
+ - `createQueryRetry(queryClient, query)`
430
+ - `resolveQueryHash(query)`
431
+ - `installRecoverableQueryObserver({ queryClient, runtime, logger })`
420
432
 
421
433
  ### `src/client/runtime/bootstrapRuntime.js`
422
434
  Exports
423
- - `createShellBootstrapRuntime({ handlers, placementRuntime, requestRecoveryRuntime = null, router = null, logger, fetchImplementation = globalThis.fetch, bootstrapPath = BOOTSTRAP_PATH } = {})`
435
+ - `createShellBootstrapRuntime({ handlers, placementRuntime, requestRecoveryRuntime, router, logger, fetchImplementation = globalThis.fetch, bootstrapPath = BOOTSTRAP_PATH })`
424
436
  Local functions
425
- - `normalizeObject(value)`
426
437
  - `buildBootstrapUrl({ path = BOOTSTRAP_PATH, query = {} } = {})`
427
438
  - `normalizeBootstrapResponseError(response, url)`
428
439
 
429
440
  ### `src/client/runtime/refreshRuntime.js`
430
441
  Exports
442
+ - `NO_SHELL_WEB_REFRESH_RUNTIME`
431
443
  - `SHELL_WEB_REFRESH_RUNTIME_KEY`
432
- - `createShellRefreshRuntime({ bootstrapRuntime = null, queryClient = null, errorRuntime = null, logger })`
444
+ - `createShellRefreshRuntime({ bootstrapRuntime, queryClient, errorRuntime, logger })`
433
445
  Local functions
434
- - `isPullRefreshQuery(query = null)`
446
+ - `isPullRefreshQuery(query)`
435
447
 
436
448
  ### `src/client/stores/useShellErrorPresentationStore.js`
437
449
  Exports
438
450
  - `useShellErrorPresentationStore`
439
451
  Local functions
440
452
  - `normalizePresentationState(nextState)`
441
- - `isPresentationRuntimeStore(value)`
442
453
 
443
454
  ### `src/client/stores/useShellLayoutStore.js`
444
455
  Exports
@@ -458,12 +469,14 @@ Exports
458
469
  - `DEFAULT_SHELL_RAIL_WIDTH`
459
470
  - `MAXIMUM_SHELL_DRAWER_WIDTH`
460
471
  - `MINIMUM_SHELL_DRAWER_WIDTH`
472
+ - `measureDrawerContentWidth(drawerElement, navigationItemSpacing)`
461
473
  - `normalizeShellDrawerWidth(value, fallback = DEFAULT_SHELL_DRAWER_WIDTH)`
462
474
  - `normalizeShellNavigationItemSpacing(value, fallback = DEFAULT_SHELL_NAVIGATION_ITEM_SPACING)`
463
475
  - `normalizeShellRailWidth(value, fallback = DEFAULT_SHELL_RAIL_WIDTH)`
464
476
  - `resolveContentAwareDrawerWidth(measurements = [], { endGap = DEFAULT_SHELL_NAVIGATION_ITEM_SPACING, minimum = MINIMUM_SHELL_DRAWER_WIDTH, maximum = MAXIMUM_SHELL_DRAWER_WIDTH, fallback = DEFAULT_SHELL_DRAWER_WIDTH } = {})`
465
477
  Local functions
466
478
  - `clampNumber(value, minimum, maximum)`
479
+ - `measureRenderedText(element)`
467
480
 
468
481
  ### `src/client/support/gestureTargets.js`
469
482
  Exports
@@ -485,6 +498,14 @@ Local functions
485
498
  Exports
486
499
  - `activateShellNavigationLinkOnSpace(event)`
487
500
 
501
+ ### `src/client/support/primaryNavigation.js`
502
+ Exports
503
+ - `normalizeComparablePathname(value = "")`
504
+ - `resolveActivePrimaryNavigationIndex(pathname, entries)`
505
+ - `resolvePrimaryNavigationEntries(placements, { semanticTarget, currentSurfaceId, placementContext, routeParams })`
506
+ Local functions
507
+ - `pathMatchesNavigationEntry(pathname = "", entry = {})`
508
+
488
509
  ### `src/client/support/routeParams.js`
489
510
  Exports
490
511
  - `normalizeRouteParams(params = null)`
@@ -502,8 +523,22 @@ Exports
502
523
 
503
524
  ### `src/client/support/shellLayoutClass.js`
504
525
  Exports
505
- - `readViewportWidth()`
506
- - `resolveShellLayoutClass(displayName = "", viewportWidth = 0)`
526
+ - `resolveShellLayoutClass(displayName = "", viewportWidth = pageViewportWidth())`
527
+
528
+ ### `src/client/types.js`
529
+ Exports
530
+ - `type ShellErrorRuntime`
531
+ - `type ShellErrorPresentationStore`
532
+ - `type WebPlacementRuntime`
533
+ - `type ShellAsyncModuleRecoveryRuntime`
534
+ - `type ShellRequestRecoveryRuntime`
535
+ - `type ShellBootstrapRuntime`
536
+ - `type ShellRefreshRuntime`
537
+ - `type BootstrapPayloadHandlerRegistry`
538
+ - `type SurfaceRouteContext`
539
+ - `type ShellRealtime`
540
+ - `type ShellLayoutStateProps`
541
+ - `type ShellNavigationLinkProps`
507
542
 
508
543
  ### fixtures
509
544
 
@@ -16,25 +16,25 @@ Use this on demand; do not load the full index at startup.
16
16
 
17
17
  ### `src/client/composables/createImageUploadRuntime.js`
18
18
  Exports
19
- - `createImageUploadRuntime({ endpoint = "", method = "POST", fieldName = "file", withCredentials = true, maxNumberOfFiles = 1, allowedMimeTypes = DEFAULT_IMAGE_UPLOAD_ALLOWED_MIME_TYPES, maxUploadBytes = DEFAULT_IMAGE_UPLOAD_MAX_BYTES, note = "", dashboardOptions = {}, imageEditorOptions = {}, compressorOptions = {}, parseResponse = parseUploadResponse, resolveRequestHeaders = null, onSelectedFileNameChanged = null, onUploadSuccess = null, onInvalidResponse = null, onUploadError = null, onRestrictionFailed = null, onUnavailable = null, dependencies = {} } = {})`
19
+ - `createImageUploadRuntime({ endpoint = "", method = "POST", fieldName = "file", withCredentials = true, maxNumberOfFiles = 1, allowedMimeTypes = DEFAULT_IMAGE_UPLOAD_ALLOWED_MIME_TYPES, maxUploadBytes = DEFAULT_IMAGE_UPLOAD_MAX_BYTES, note = "", dashboardOptions = {}, imageEditorOptions = {}, compressorOptions = {}, parseResponse = parseUploadResponse, resolveRequestHeaders, onSelectedFileNameChanged = ignoreUploadEvent, onUploadSuccess, onInvalidResponse = ignoreUploadEvent, onUploadError, onRestrictionFailed, onUnavailable = ignoreUploadEvent, dependencies: { UppyClass = Uppy, DashboardPlugin = Dashboard, ImageEditorPlugin = ImageEditor, CompressorPlugin = Compressor, XHRUploadPlugin = XHRUpload } = {} })`
20
20
  Local functions
21
- - `normalizeObject(value)`
21
+ - `ignoreUploadEvent()`
22
22
 
23
23
  ### `src/client/composables/createManagedImageAssetRuntime.js`
24
24
  Exports
25
- - `createManagedImageAssetRuntime({ uploadEndpoint = "", deleteEndpoint = "", fieldName = "file", hasAsset = false, assetVersion = "", selectedFileName = null, resolveAssetUrl = null, resolveRequestHeaders = null, onUploadSuccess = null, onDeleteSuccess = null, resolveUploadErrorMessage = null, resolveDeleteErrorMessage = null, deleteRequest = null, reportFeedback = null, messages = {}, uploadOptions = {}, deleteMethod = "DELETE", source = "uploads-image-web.managed-image-asset", dependencies = {} } = {})`
25
+ - `createManagedImageAssetRuntime({ uploadEndpoint = "", deleteEndpoint = "", fieldName = "file", hasAsset = false, assetVersion = "", selectedFileName = ref(""), resolveAssetUrl = assetUrlFromUploadEndpoint, resolveRequestHeaders, onUploadSuccess, onDeleteSuccess = ignoreDeleteSuccess, resolveUploadErrorMessage = keepDefaultMessage, resolveDeleteErrorMessage = keepDefaultMessage, deleteRequest = requestDeleteWithFetch, reportFeedback, messages = {}, uploadOptions = {}, deleteMethod = "DELETE", source = "uploads-image-web.managed-image-asset", dependencies: { createImageUploadRuntimeFactory = createImageUploadRuntime, fetchImpl = globalThis.fetch.bind(globalThis) } = {} })`
26
26
  - `DEFAULT_MANAGED_IMAGE_ASSET_MESSAGES`
27
27
  Local functions
28
- - `normalizeText(value)`
29
- - `normalizeObject(value)`
30
- - `normalizeWritableRef(value, fallbackValue = "")`
31
- - `closeDashboard(uppy)`
32
28
  - `readJsonResponse(response)`
33
29
  - `resolveMessage(value, fallback)`
34
30
  - `resolveBodyErrorMessage(body)`
35
31
  - `resolveUploadErrorFallback({ error, response, fallbackMessage })`
36
32
  - `resolveDeleteErrorFallback({ error, body, fallbackMessage })`
37
33
  - `normalizeDeleteResult(result)`
34
+ - `requestDeleteWithFetch({ endpoint, method, headers, fetch })`
35
+ - `assetUrlFromUploadEndpoint({ uploadEndpoint })`
36
+ - `keepDefaultMessage({ defaultMessage })`
37
+ - `ignoreDeleteSuccess()`
38
38
 
39
39
  ### `src/client/i18n.js`
40
40
  Exports
@@ -53,10 +53,24 @@ Exports
53
53
  Exports
54
54
  - `parseUploadResponse(xhr)`
55
55
 
56
- ### `src/client/support/stopImageEditor.js`
56
+ ### `src/client/support/uppyPlugins.js`
57
57
  Exports
58
+ - `closeDashboard(uppy)`
58
59
  - `stopImageEditor(uppy)`
59
60
 
61
+ ### `src/client/types.js`
62
+ Exports
63
+ - `type ImageUploadRuntime`
64
+ - `type ManagedImageAssetRuntime`
65
+ - `type ImageUppy`
66
+ - `type ImageUploadDependencies`
67
+ - `type ImageUploadSuccess`
68
+ - `type ImageUploadRuntimeOptions`
69
+ - `type ImageAssetFeedback`
70
+ - `type ImageAssetDeleteRequest`
71
+ - `type ManagedImageAssetDependencies`
72
+ - `type ManagedImageAssetRuntimeOptions`
73
+
60
74
  ### `src/shared/imageUploadDefaults.js`
61
75
  Exports
62
76
  - `DEFAULT_IMAGE_COMPRESSOR_OPTIONS`
@@ -72,3 +86,16 @@ Exports
72
86
  - `DEFAULT_IMAGE_EDITOR_OPTIONS`
73
87
  - `DEFAULT_IMAGE_UPLOAD_ALLOWED_MIME_TYPES`
74
88
  - `DEFAULT_IMAGE_UPLOAD_MAX_BYTES`
89
+
90
+ ### fixtures
91
+
92
+ ### `fixtures/image-upload/main.js`
93
+ Exports
94
+ - None
95
+ Local functions
96
+ - `readCsrfToken()`
97
+ - `renderList(className, entries)`
98
+
99
+ ### `fixtures/image-upload/vite.config.mjs`
100
+ Exports
101
+ - None
@@ -24,6 +24,7 @@ Exports
24
24
  - `useAccountSettingsSections()`
25
25
  Local functions
26
26
  - `normalizeSectionTitle(value)`
27
+ - `stopListening()`
27
28
 
28
29
  ### `src/client/bootstrap/user-bootstrap-handler.js`
29
30
  Exports
@@ -50,7 +51,7 @@ Exports
50
51
 
51
52
  ### `src/client/composables/account-settings/accountSettingsAvatarUploadRuntime.js`
52
53
  Exports
53
- - `createAccountSettingsAvatarUploadRuntime({ queryClient, sessionQueryKey, accountSettingsQueryKey, selectedAvatarFileName, applySettingsData, reportAccountFeedback } = {})`
54
+ - `createAccountSettingsAvatarUploadRuntime({ queryClient, sessionQueryKey, accountSettingsQueryKey, selectedAvatarFileName, applySettingsData, reportAccountFeedback })`
54
55
 
55
56
  ### `src/client/composables/account-settings/accountSettingsPreferenceOptions.js`
56
57
  Exports
@@ -103,6 +104,15 @@ Exports
103
104
  Exports
104
105
  - `resolvePlacementUserFromBootstrapPayload(payload = {}, currentUser = null)`
105
106
 
107
+ ### `src/client/lib/profileElementPresentation.js`
108
+ Exports
109
+ - `resolveProfileCopy(copy, t)`
110
+ - `resolveProfileFeatures(value)`
111
+ - `resolveProfileRootClasses(variant, uiClasses)`
112
+ - `resolveProfileUiClasses(ui)`
113
+ - `resolveProfileUiTestIds(ui)`
114
+ - `resolveProfileVariant(value)`
115
+
106
116
  ### `src/client/lib/theme.js`
107
117
  Exports
108
118
  - `THEME_PREFERENCE_DARK`
@@ -118,17 +128,43 @@ Exports
118
128
  - `resolveVuetifyThemeController(vueApp)`
119
129
  - `setVuetifyThemeName(themeController, themeName)`
120
130
  Local functions
121
- - `resolveSystemThemeName({ prefersDark } = {})`
131
+ - `pageWindow()`
132
+ - `systemPrefersDark()`
133
+ - `resolveSystemThemeName({ prefersDark = systemPrefersDark() } = {})`
122
134
  - `resolveThemePreferenceStorage(options = {})`
123
135
 
124
136
  ### `src/client/providers/UsersWebClientProvider.js`
125
137
  Exports
126
138
  - `UsersWebClientProvider`
127
139
 
140
+ ### `src/client/types.js`
141
+ Exports
142
+ - `type UsersPlacementRuntime`
143
+ - `type AccountSectionsPlacementRuntime`
144
+ - `type UsersBootstrapContext`
145
+ - `type UsersShell`
146
+ - `type AccountFeedback`
147
+ - `type ProfileElementState`
148
+ - `type ProfileElementActions`
149
+ - `type AccountSettingsRuntime`
150
+
128
151
  ### `src/shared/toolsOutletContracts.js`
129
152
  Exports
130
153
  - `HOME_COG_OUTLET`
131
154
 
155
+ ### fixtures
156
+
157
+ ### `fixtures/account-settings/main.js`
158
+ Exports
159
+ - None
160
+ Local functions
161
+ - `section(value, title, component, order)`
162
+ - `record(name)`
163
+
164
+ ### `fixtures/account-settings/vite.config.mjs`
165
+ Exports
166
+ - None
167
+
132
168
  ### patterns
133
169
 
134
170
  ### `patterns/account-settings/example/src/components/account/settings/AccountSettingsNotificationsSection.vue`