sygnal 6.6.0 → 7.0.0

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 (82) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/README.md +2 -0
  3. package/dist/astro/index.cjs.js +32 -9
  4. package/dist/astro/index.cjs.js.map +1 -1
  5. package/dist/astro/index.mjs +32 -9
  6. package/dist/astro/index.mjs.map +1 -1
  7. package/dist/astro/server.cjs.js.map +1 -1
  8. package/dist/astro/server.mjs.map +1 -1
  9. package/dist/devtools.cjs.js.map +1 -1
  10. package/dist/devtools.esm.js.map +1 -1
  11. package/dist/diagnostics.cjs.js +87 -4
  12. package/dist/diagnostics.cjs.js.map +1 -1
  13. package/dist/diagnostics.esm.js +86 -5
  14. package/dist/diagnostics.esm.js.map +1 -1
  15. package/dist/guide/accessibility.md +2 -0
  16. package/dist/guide/ai-chat.md +6 -6
  17. package/dist/guide/behaviors.md +1 -1
  18. package/dist/guide/element-commands.md +4 -2
  19. package/dist/guide/forms-reference.md +89 -3
  20. package/dist/guide/forms.md +8 -8
  21. package/dist/guide/http.md +77 -7
  22. package/dist/guide/migrating-to-7.md +314 -0
  23. package/dist/guide/recipes/ai-summarize.md +2 -1
  24. package/dist/guide/recipes/i18n.md +1 -1
  25. package/dist/guide/ui/tabs.md +5 -4
  26. package/dist/guide/ui/tooltip.md +24 -0
  27. package/dist/index.cjs.js +772 -318
  28. package/dist/index.cjs.js.map +1 -1
  29. package/dist/index.d.ts +198 -31
  30. package/dist/index.esm.js +772 -318
  31. package/dist/index.esm.js.map +1 -1
  32. package/dist/sygnal.min.js +1 -1
  33. package/dist/sygnal.min.js.map +1 -1
  34. package/dist/ui.cjs.js +96 -11
  35. package/dist/ui.cjs.js.map +1 -1
  36. package/dist/ui.esm.js +96 -12
  37. package/dist/ui.esm.js.map +1 -1
  38. package/dist/vike/config/package.json +1 -1
  39. package/dist/vite/plugin.cjs.js +19 -9
  40. package/dist/vite/plugin.cjs.js.map +1 -1
  41. package/dist/vite/plugin.mjs +19 -9
  42. package/dist/vite/plugin.mjs.map +1 -1
  43. package/llms.txt +17 -16
  44. package/package.json +1 -1
  45. package/src/astro/index.d.ts +8 -0
  46. package/src/astro/index.ts +18 -0
  47. package/src/core/actions.ts +28 -21
  48. package/src/core/define.ts +2 -0
  49. package/src/core/hooks.ts +2 -2
  50. package/src/core/hosts/collection.ts +4 -3
  51. package/src/core/instance.ts +60 -16
  52. package/src/core/runtime.ts +5 -1
  53. package/src/extra/ai/chat/behavior.ts +3 -3
  54. package/src/extra/ai/commandBar.ts +3 -3
  55. package/src/extra/ai/compose/behavior.ts +3 -3
  56. package/src/extra/ai/transports/shared.ts +8 -2
  57. package/src/extra/behaviors.ts +21 -0
  58. package/src/extra/diagnostics/checks/fetch.ts +21 -1
  59. package/src/extra/diagnostics/checks/forms.ts +4 -3
  60. package/src/extra/diagnostics/checks/index.ts +1 -0
  61. package/src/extra/diagnostics/checks/next.ts +3 -0
  62. package/src/extra/diagnostics/checks/public.d.ts +12 -0
  63. package/src/extra/diagnostics/checks/timingAudit.ts +47 -0
  64. package/src/extra/diagnostics/codes.ts +13 -0
  65. package/src/extra/fetchDriver.ts +112 -7
  66. package/src/extra/fetchEventSource.ts +113 -0
  67. package/src/extra/form.ts +68 -26
  68. package/src/extra/formHelpers.ts +3 -1
  69. package/src/extra/lens.ts +3 -2
  70. package/src/extra/queryCache.ts +4 -3
  71. package/src/extra/socketDriver.ts +10 -4
  72. package/src/extra/testing.ts +68 -11
  73. package/src/index.d.ts +197 -30
  74. package/src/index.ts +1 -0
  75. package/src/shared.ts +3 -0
  76. package/src/ui/dialog.ts +3 -2
  77. package/src/ui/tooltips.ts +92 -0
  78. package/src/ui.d.ts +35 -0
  79. package/src/ui.ts +1 -0
  80. package/src/vite/graph.ts +11 -3
  81. package/src/vite/plugin.d.ts +7 -0
  82. package/src/vite/plugin.ts +10 -5
package/dist/index.d.ts CHANGED
@@ -2501,9 +2501,12 @@ type ComponentProps<STATE, PROPS, CONTEXT> = (
2501
2501
  */
2502
2502
  type UidFunction = (name?: string) => string
2503
2503
 
2504
- /** The first argument of a component's view: its props plus `state`, `context`, `children`, `slots` and `uid`. */
2504
+ /**
2505
+ * The first argument of a component's view: its props plus `state`, `context`, `children`, `slots` and `uid`.
2506
+ * PLAN-11 Q-1: PROPS = `any` is read as "any other props" (`any & X` would make `state` `any` too).
2507
+ */
2505
2508
  type ViewProps<STATE = any, PROPS = {}, CONTEXT = {}> =
2506
- PROPS & { state: STATE; context: CONTEXT; children?: JSX.Element | JSX.Element[]; slots?: Record<string, JSX.Element[]>; uid: UidFunction }
2509
+ (0 extends (1 & PROPS) ? { [prop: string]: any } : PROPS) & { state: STATE; context: CONTEXT; children?: JSX.Element | JSX.Element[]; slots?: Record<string, JSX.Element[]>; uid: UidFunction }
2507
2510
 
2508
2511
  /**
2509
2512
  * The `state` prop a parent passes to a sub-component in JSX: the name of a field of the
@@ -2538,13 +2541,19 @@ type NextFunction<ACTIONS = any> = ACTIONS extends object
2538
2541
  ) => void
2539
2542
  : (action: string, data?: any, delay?: number) => void
2540
2543
 
2541
- type ReducerExtras<PROPS, CONTEXT> = PROPS & { context: CONTEXT; children?: JSX.Element | JSX.Element[]; slots?: Record<string, JSX.Element[]>; uid: UidFunction }
2544
+
2545
+ /**
2546
+ * A reducer's 4th argument. 7.0: STATE runs first; every other sink gets the committed state as
2547
+ * `state` (and as its 1st argument), with the state from before the action as `previousState`
2548
+ * (in a STATE reducer both are the old state)
2549
+ */
2550
+ type ReducerExtras<PROPS, CONTEXT, STATE = any> = PROPS & { state: STATE; previousState: STATE; context: CONTEXT; children?: JSX.Element | JSX.Element[]; slots?: Record<string, JSX.Element[]>; uid: UidFunction }
2542
2551
 
2543
2552
  type Reducer<STATE, PROPS, ACTIONS = any, DATA = any, RETURN = any, CONTEXT = {}> = (
2544
2553
  state: STATE,
2545
2554
  args: DATA,
2546
2555
  next: NextFunction<ACTIONS>,
2547
- props: ReducerExtras<PROPS, CONTEXT>
2556
+ props: ReducerExtras<PROPS, CONTEXT, STATE>
2548
2557
  ) => RETURN | ABORT | undefined
2549
2558
 
2550
2559
  type ExactShape<EXPECTED, ACTUAL extends EXPECTED> = ACTUAL &
@@ -2680,7 +2689,7 @@ type AnySinkConstant =
2680
2689
  * `props.signal` aborts on DISPOSE (undefined where AbortController is missing).
2681
2690
  */
2682
2691
  type EffectReducer<STATE, PROPS, ACTIONS, DATA, CALCULATED, CONTEXT = {}> =
2683
- | ((state: STATE & CALCULATED, args: DATA, next: NextFunction<ACTIONS>, props: ReducerExtras<PROPS, CONTEXT> & { signal?: AbortSignal }) => void)
2692
+ | ((state: STATE & CALCULATED, args: DATA, next: NextFunction<ACTIONS>, props: ReducerExtras<PROPS, CONTEXT, STATE & CALCULATED> & { signal?: AbortSignal }) => void)
2684
2693
 
2685
2694
  type DefaultSinks<STATE, PROPS, ACTIONS, DATA, CALCULATED, SINK_RETURNS extends NonStateSinkReturns = {}, CONTEXT = {}> = {
2686
2695
  STATE?: SinkValue<STATE, PROPS, ACTIONS, DATA, STATE, CALCULATED, CONTEXT>;
@@ -3350,10 +3359,11 @@ declare function pager(options?: PagerOptions): Behavior<PagerState, PagerAction
3350
3359
  type FieldErrors = Record<string, string>
3351
3360
 
3352
3361
  /** One field of a `form` slice: `state.form.fields.email`, `state.form.fields['addresses.7.city']`. */
3353
- interface FormField {
3362
+ interface FormField<T = any> {
3354
3363
  /** The field name, for `name={f.name}` (the path in `values`; rows of an array by id) */
3355
3364
  name: string;
3356
- value: any;
3365
+ /** The field's value: typed for a top-level field of a typed form (`fields.email.value: string`) */
3366
+ value: T;
3357
3367
  /** What to show: a server or check error at once, a schema error once the field is touched (per `show`) or after a submit; '' when none */
3358
3368
  error: string;
3359
3369
  /** `!!error`, for `aria-invalid={f.email.invalid}` */
@@ -3390,12 +3400,36 @@ interface FormState<V = any> {
3390
3400
  validating: boolean;
3391
3401
  /** The schema has answered at least once since the start (or the last `form.RESET`) */
3392
3402
  validated: boolean;
3403
+ /**
3404
+ * PLAN-11 (6.7): the submit request's last progress step, when it is sent with
3405
+ * `progress: 'form.PROGRESS'`; null otherwise and after `form.DONE` / `form.ERRORS` / `form.RESET`
3406
+ */
3407
+ progress: { phase: 'upload' | 'download'; loaded: number; total: number | null; fraction: number | null } | null;
3408
+ /**
3409
+ * PLAN-11 (6.7): how many times the form started over (`form.RESET`, `resetOnShow`). A file
3410
+ * input can't be cleared through state: key it with this, `key={'avatar' + state.form.resets}`
3411
+ */
3412
+ resets: number;
3393
3413
  }
3394
3414
 
3415
+ type FormIsAny<T> = 0 extends (1 & T) ? true : false
3416
+
3417
+ /**
3418
+ * A form's `fields` (PLAN-11 F-1): the top-level fields of `values` by name, typed
3419
+ * (`fields.email.value: string`), and nested paths ('addresses.7.city', 'addresses.7') with any
3420
+ * value. A top-level name that isn't in `values` is a type error (a typo). Untyped values (any):
3421
+ * `Record<string, FormField>`.
3422
+ */
3423
+ type FormFields<V = any> = FormIsAny<V> extends true
3424
+ ? Record<string, FormField>
3425
+ : V extends object
3426
+ ? { [K in keyof V & string]-?: FormField<V[K]> } & { [path: `${string}.${string}`]: FormField }
3427
+ : Record<string, FormField>
3428
+
3395
3429
  /** A `form` slice's calculated fields. */
3396
- interface FormCalculated {
3430
+ interface FormCalculated<V = any> {
3397
3431
  /** Every field of `values` by name (leaves, arrays, and array rows' fields by row id) */
3398
- fields: Record<string, FormField>;
3432
+ fields: FormFields<V>;
3399
3433
  /** No schema error and no failed check, as of the schema's last answer (false until its first; an async re-validation keeps the previous value) */
3400
3434
  valid: boolean;
3401
3435
  dirty: boolean;
@@ -3411,15 +3445,38 @@ interface FormFieldCheck {
3411
3445
  error?: (body: any) => string | false | null | undefined;
3412
3446
  }
3413
3447
 
3414
- interface FormOptions<V = any> {
3448
+ /** Types only: the key of `FormOptions`' phantom output type (not exported, never set) */
3449
+ declare const formOutput: unique symbol
3450
+
3451
+ /** PLAN-11: the `request` option of form(): a request without reply actions (the form names them), or a function of the submit data and the host state */
3452
+ type FormRequestObject = Exclude<FetchRequest, string> & { url: string; ok?: never; error?: never }
3453
+ type FormRequest<OUT = any> =
3454
+ | FormRequestObject
3455
+ | ((data: OUT, state: any) => FormRequestObject | typeof ABORT | null | undefined | false)
3456
+
3457
+ interface FormOptions<V = any, OUT = any> {
3458
+ /** Phantom, types only: the schema's output (`FormOutput<typeof uses.form>`); never set */
3459
+ readonly [formOutput]?: OUT;
3415
3460
  /**
3416
3461
  * The start values; field names are paths in it (rows of an array of objects need an `id`, SYG236).
3417
3462
  * Or a function of the host component's state, for start values that come from state (a default
3418
3463
  * from the settings): called when the form starts, and each time it starts over (`resetOnShow`)
3419
3464
  */
3420
3465
  values: V | ((state: any) => V);
3421
- /** The host action a valid submit dispatches with the schema's output (SYG234 when it has no model entry). With an `http` sink in its entry the submit is pending until `form.DONE` / `form.ERRORS`; otherwise it is done at once */
3422
- submit: string;
3466
+ /**
3467
+ * The host action a valid submit dispatches with the schema's output (SYG234 when it has no model entry). With an `http` sink in its entry the submit is pending until `form.DONE` / `form.ERRORS`; otherwise it is done at once.
3468
+ * Optional with `request` (then dispatched too, for state; its entry should send no request)
3469
+ */
3470
+ submit?: string;
3471
+ /**
3472
+ * PLAN-11 (6.7): the form sends a valid submit itself on the `http` sink: a request, or a
3473
+ * function of the schema's output and the host's state (`(data, state) => ({ url: '/api/items/' + state.id, method: 'PUT' })`;
3474
+ * `ABORT` / falsy sends nothing and leaves the submit pending). The form adds the body
3475
+ * (`multipart: data` when a top-level value is a File or files, else `json: data`, unless the
3476
+ * request sets `json`, `multipart` or `body`), `progress: 'form.PROGRESS'` (unless set) and its own
3477
+ * `ok: 'form.DONE'`, `error: 'form.ERRORS'`
3478
+ */
3479
+ request?: FormRequest<OUT>;
3423
3480
  /** Async checks by field name: run on blur and before a submit, which waits for them */
3424
3481
  check?: Record<string, FormFieldCheck>;
3425
3482
  /** When a schema error shows: after the field's blur (default), on input, or only after a submit */
@@ -3449,9 +3506,19 @@ interface FormOptions<V = any> {
3449
3506
  tool?: FormToolHandle;
3450
3507
  }
3451
3508
 
3452
- interface FormActions {
3453
- /** A field changed (the form element's input events): `{ name, value }`; a checkbox gives `checked` as `value` and its own value as `item` (on an array field: added or removed) */
3454
- CHANGE: { name: string; value: any; item?: any };
3509
+ /**
3510
+ * What `form.ERRORS` takes (the runtime's `replyErrors`): an error reply (a driver's
3511
+ * `{ error, status?, body?, request }` or `{ status, body }`, the body `{ errors }` or the map
3512
+ * itself), a map `{ name: message | messages }`, or a list of issues `[{ path, message }]`
3513
+ */
3514
+ type FormServerErrors =
3515
+ | Record<string, string | ReadonlyArray<string>>
3516
+ | ReadonlyArray<{ message: string; path?: ReadonlyArray<any> }>
3517
+ | { status?: number; body?: any; error?: any; request?: any }
3518
+
3519
+ interface FormActions<V = any> {
3520
+ /** A field changed (the form element's input events): `{ name, value }`; a checkbox gives `checked` as `value` and its own value as `item` (on an array field: added or removed); a file input its File (`multiple`: File[]; none: null) */
3521
+ CHANGE: { name: string; value: any; item?: any; file?: boolean };
3455
3522
  /**
3456
3523
  * Several fields at once, by field name (`{ values: { name: 'Dana', 'addresses.7.city': 'Hilo' } }`),
3457
3524
  * as if typed: one validation, `touched` as for CHANGE, their server errors and check results
@@ -3460,20 +3527,49 @@ interface FormActions {
3460
3527
  SET: { values: Record<string, any> };
3461
3528
  /** A field lost focus (focusout): its name */
3462
3529
  BLUR: string;
3463
- /** The form element's submit (default prevented) */
3464
- SUBMIT: any;
3530
+ /** The form element's submit (default prevented); its data is ignored (a host may dispatch it from a button) */
3531
+ SUBMIT: unknown;
3465
3532
  /** Adds a row to an array field (with the next id): `{ field: 'addresses', value: { street: '' } }` */
3466
3533
  ADD: { field: string; value?: Record<string, any> };
3467
3534
  /** Removes a row by id: `{ field: 'addresses', id }` */
3468
3535
  REMOVE: { field: string; id: any };
3469
- /** Server errors: an error reply (`{ status, body: { errors } }`) or a map `{ name: message }`; focuses the first */
3470
- ERRORS: any;
3471
- /** The submit was saved: `initial` becomes `values` */
3472
- DONE: any;
3473
- /** Back to `initial` (or to the values given) */
3474
- RESET: any;
3536
+ /** Server errors: an error reply (`{ status, body: { errors } }`), a map `{ name: message }` or a list of issues; focuses the first */
3537
+ ERRORS: FormServerErrors;
3538
+ /** The submit was saved: `initial` becomes `values`. Its data (the reply) is ignored */
3539
+ DONE: unknown;
3540
+ /** PLAN-11: a progress step of the submit request (`progress: 'form.PROGRESS'` on it): kept as `progress` while submitting */
3541
+ PROGRESS: FetchProgress;
3542
+ /** Back to `initial`, or to the values given (whole values, not merged; anything but a plain object, such as a click event, means `initial`) */
3543
+ RESET: V | null | undefined;
3475
3544
  }
3476
3545
 
3546
+ /**
3547
+ * The schema's input type (Standard Schema `~standard.types.input`; zod, valibot and arktype declare
3548
+ * it); `any` for a schema that doesn't declare `types`
3549
+ */
3550
+ type SchemaInput<S> = S extends { readonly '~standard': { readonly types?: infer T } }
3551
+ ? [NonNullable<T>] extends [{ readonly input: infer I }] ? I : any
3552
+ : any
3553
+
3554
+ type FormSchemaOutput<S> = S extends { readonly '~standard': { readonly types?: infer T } }
3555
+ ? [NonNullable<T>] extends [{ readonly output: infer O }] ? O : any
3556
+ : any
3557
+
3558
+ /** The values type of `form(schema, { values })`: the schema's input when it declares one, else what `values` gives */
3559
+ type FormValuesOf<V, S> = FormIsAny<SchemaInput<S>> extends true ? V : SchemaInput<S>
3560
+
3561
+ /** What `form()` returns: a behavior whose types carry the values (V) and the schema's output (OUT, the submit payload) */
3562
+ type FormBehavior<V = any, OUT = any> = Behavior<FormState<V>, FormActions<V>, FormCalculated<V>, FormOptions<V, OUT>>
3563
+
3564
+ /**
3565
+ * The data the host's submit action gets (the schema's output) from a `form()` use:
3566
+ * `SIGN_UP: { HTTP: (state, data: FormOutput<typeof uses.form>) => ... }`. Or from the schema:
3567
+ * `SchemaOutput<typeof signupSchema>`. `any` for a schema that doesn't declare `types`.
3568
+ */
3569
+ type FormOutput<F> = F extends Behavior<any, any, any, infer OPTIONS>
3570
+ ? OPTIONS extends { readonly [formOutput]?: infer O } ? (unknown extends O ? any : O) : any
3571
+ : any
3572
+
3477
3573
  /**
3478
3574
  * A form with validation (PLAN-5 F-1), any Standard Schema validator (zod, valibot, arktype, a
3479
3575
  * hand-written object):
@@ -3488,7 +3584,11 @@ interface FormActions {
3488
3584
  * that sends nothing (STATE, PARENT, EVENTS) is done at once. Throws SYG231 when
3489
3585
  * `schema` isn't a Standard Schema.
3490
3586
  */
3491
- declare function form<V = any>(schema: StandardSchemaLike, options: FormOptions<V>): Behavior<FormState<V>, FormActions, FormCalculated, FormOptions<V>>
3587
+ declare function form<V = any, S extends StandardSchemaLike = StandardSchemaLike>(
3588
+ schema: S,
3589
+ options: FormOptions<V, FormSchemaOutput<S>> & { values: FormIsAny<SchemaInput<S>> extends true ? unknown : SchemaInput<S> | ((state: any) => SchemaInput<S>) }
3590
+ & ({ submit: string } | { request: FormRequest<FormSchemaOutput<S>> })
3591
+ ): FormBehavior<FormValuesOf<V, S>, FormSchemaOutput<S>>
3492
3592
 
3493
3593
  /** A Standard Schema's result for `values`: errors by field name, and the output when there are none. A Promise for an async schema. */
3494
3594
  declare function checkForm(schema: StandardSchemaLike, values: any): { errors: FieldErrors; value: any } | Promise<{ errors: FieldErrors; value: any }>
@@ -4723,6 +4823,9 @@ type FetchInit = {
4723
4823
  * descendants'): two instances, or Collection items, using the same category never see or
4724
4824
  * cancel each other's requests. The root component sees every reply.
4725
4825
  */
4826
+ /** PLAN-11: one value of a request's `multipart` body */
4827
+ type MultipartValue = Blob | string | number | boolean | null | undefined | Record<string, any>
4828
+
4726
4829
  type FetchRequest = string | {
4727
4830
  /** Request URL (prefixed with the driver's `baseUrl`) */
4728
4831
  url: string;
@@ -4748,8 +4851,24 @@ type FetchRequest = string | {
4748
4851
  query?: Record<string, string | number | boolean | null | undefined | Array<string | number | boolean | null | undefined>>;
4749
4852
  /** Sent as JSON.stringify(json), with `Content-Type: application/json` unless set */
4750
4853
  json?: any;
4854
+ /**
4855
+ * PLAN-11 (6.7): a multipart/form-data body, written as data: `{ file: state.file, title: state.title }`.
4856
+ * A File or Blob is a file part, an array repeats the name (`files: [a, b]`), null/undefined are
4857
+ * skipped, an object is sent as JSON text, anything else as a string. The browser sets the
4858
+ * content-type (with its boundary); a `content-type` header is dropped. POST by default
4859
+ */
4860
+ multipart?: Record<string, MultipartValue | ReadonlyArray<MultipartValue>>;
4751
4861
  /** Raw body (string, FormData, Blob, ...) */
4752
4862
  body?: any;
4863
+ /**
4864
+ * PLAN-11 (6.7): report upload and download progress. An action name: each step arrives as that
4865
+ * action of the sending instance (`UPLOADING: (state, { phase, fraction }) => ...`); `true`: on
4866
+ * `HTTP.progress(category?)`. Data: FetchProgress. The request then goes over XMLHttpRequest
4867
+ * (the only way to see upload progress in every browser); fetch-only `init` options
4868
+ * (`keepalive`, `priority`, `cache`, `redirect`, `integrity`, `mode`, `referrerPolicy`) don't
4869
+ * apply (SYG636). Not for resources or `batch`. Without XMLHttpRequest (Node): no steps
4870
+ */
4871
+ progress?: string | true;
4753
4872
  /**
4754
4873
  * Latest only: sending this request aborts this component's requests still in flight in the
4755
4874
  * same category; their responses and errors are never delivered. Default: the driver's `latest`
@@ -4864,10 +4983,15 @@ type FetchRetry = SocketReconnect & {
4864
4983
  count?: number;
4865
4984
  }
4866
4985
 
4867
- /** Any Standard Schema (https://standardschema.dev): an object with `~standard.validate` */
4868
- type StandardSchemaLike = {
4986
+ /**
4987
+ * Any Standard Schema (https://standardschema.dev): an object with `~standard.validate`. `IN` / `OUT`
4988
+ * are its declared `~standard.types` (input / output; zod, valibot, arktype declare them), read by
4989
+ * `form()`, `SchemaInput` and `SchemaOutput`; a schema without `types` is `StandardSchemaLike<any>`.
4990
+ */
4991
+ type StandardSchemaLike<IN = any, OUT = IN> = {
4869
4992
  readonly '~standard': {
4870
4993
  validate: (value: unknown) => {value?: any; issues?: ReadonlyArray<{message: string; path?: ReadonlyArray<any>}>} | Promise<{value?: any; issues?: ReadonlyArray<{message: string; path?: ReadonlyArray<any>}>}>;
4994
+ readonly types?: { readonly input: IN; readonly output: OUT } | undefined;
4871
4995
  [key: string]: any;
4872
4996
  };
4873
4997
  }
@@ -4994,11 +5118,30 @@ type FetchError<REQUEST = any> = {
4994
5118
  body?: any;
4995
5119
  }
4996
5120
 
5121
+ /**
5122
+ * PLAN-11 (6.7): one progress step of a request sent with `progress`. Steps come at most every
5123
+ * 50 ms per phase, always including the first and the last (`fraction: 1`). A request with a
5124
+ * body reports 'upload' then 'download'; a GET only 'download'. A retry starts again at 0.
5125
+ */
5126
+ type FetchProgress<REQUEST = any> = {
5127
+ phase: 'upload' | 'download';
5128
+ /** Bytes sent ('upload') or received ('download') so far */
5129
+ loaded: number;
5130
+ /** Total bytes, or null when unknown (a download without Content-Length) */
5131
+ total: number | null;
5132
+ /** loaded / total (0..1), or null when the total is unknown */
5133
+ fraction: number | null;
5134
+ category: string | undefined;
5135
+ request: REQUEST;
5136
+ }
5137
+
4997
5138
  type FetchSource<VALUE = any> = {
4998
5139
  /** 2xx responses: all of them, one category, or those a predicate accepts */
4999
5140
  select: (category?: string | ((response: FetchResponse<VALUE>) => boolean)) => Stream<FetchResponse<VALUE>>
5000
5141
  /** Failures. Filters like select(). While nothing listens, failures are console.error'd */
5001
5142
  errors: (category?: string | ((failure: FetchError) => boolean)) => Stream<FetchError>
5143
+ /** PLAN-11: progress steps of requests sent with `progress: true`. Filters like select() */
5144
+ progress: (category?: string | ((step: FetchProgress) => boolean)) => Stream<FetchProgress>
5002
5145
  }
5003
5146
 
5004
5147
  type FetchDriverOptions = {
@@ -5017,8 +5160,10 @@ type FetchDriverOptions = {
5017
5160
  timeoutMs?: number;
5018
5161
  /** Default `parse` for every request. Default 'auto' */
5019
5162
  parse?: 'auto' | 'json' | 'text' | 'response' | ((response: Response) => any);
5020
- /** The fetch implementation. Default: `globalThis.fetch`, read at each request (so test stubs apply) */
5163
+ /** The fetch implementation. Default: `globalThis.fetch`, read at each request (so test stubs apply). Not used for `progress` requests */
5021
5164
  fetch?: (input: string, init?: any) => Promise<any>;
5165
+ /** PLAN-11: the XMLHttpRequest class for `progress` requests. Default: the global one, read at each request */
5166
+ XMLHttpRequest?: any;
5022
5167
  /**
5023
5168
  * PLAN-3 D88: the query cache, off by default: `cache: queryCache({ staleTime })`. On:
5024
5169
  * resources' GET/HEAD replies are cached (stale-while-revalidate: cached data shows at once,
@@ -5101,6 +5246,12 @@ type SseConnection = SocketActions & {
5101
5246
  /** URL (after `baseUrl`) */
5102
5247
  sse: string;
5103
5248
  withCredentials?: boolean;
5249
+ /**
5250
+ * PLAN-11 (6.7): request headers, e.g. `{ authorization: 'Bearer ' + state.token }`. The native
5251
+ * EventSource can't send headers, so a connection with them is read with `fetch` (same events,
5252
+ * reconnects with `Last-Event-ID`). A changed header (a new token in state) reconnects
5253
+ */
5254
+ headers?: Record<string, string>;
5104
5255
  /** Named events → actions: `{ 'price-update': 'PRICE' }` (data JSON-parsed when it parses) */
5105
5256
  events?: Record<string, string>;
5106
5257
  }
@@ -5153,8 +5304,10 @@ type SocketDriverOptions = {
5153
5304
  queueLimit?: number;
5154
5305
  /** The WebSocket class. Default: `globalThis.WebSocket`, read at connect time (so test stubs apply) */
5155
5306
  WebSocket?: any;
5156
- /** The EventSource class. Default: `globalThis.EventSource`, read at connect time */
5307
+ /** The EventSource class. Default: `globalThis.EventSource`, read at connect time (an `sse` connection with `headers`: a fetch-based one, unless this is given) */
5157
5308
  EventSource?: any;
5309
+ /** PLAN-11: the fetch for `sse` connections with `headers`. Default: `globalThis.fetch` */
5310
+ fetch?: (input: string, init?: any) => Promise<any>;
5158
5311
  }
5159
5312
 
5160
5313
  /**
@@ -5578,6 +5731,12 @@ type FakeCacheEntry = {
5578
5731
  }
5579
5732
 
5580
5733
  interface RenderOptions {
5734
+ /**
5735
+ * 7.0 timing audit (SYG257, info): report each output sink that reads a top-level state field
5736
+ * its action's STATE changed (it gets the new value since 7.0; 6.x gave it the old one). For
5737
+ * migrating 6.x code; default off (configureTimingAudit() from 'sygnal/diagnostics' sets it for all)
5738
+ */
5739
+ timingAudit?: boolean;
5581
5740
  /** Override initial state (defaults to component's .initialState) */
5582
5741
  initialState?: any;
5583
5742
  /**
@@ -5903,6 +6062,14 @@ interface RenderResult<STATE = any> {
5903
6062
  * throws (the driver would only log it, SYG678).
5904
6063
  */
5905
6064
  fail: (sinkName: string, error: any, target?: string | FakeReplyOptions | Record<string, any> | ((request: any) => boolean)) => Promise<void>;
6065
+ /**
6066
+ * PLAN-11 (6.7): one progress step of a pending request sent with `progress` (chosen as in
6067
+ * respond; `'UPLOADING'` matches its progress action too): `t.progress('HTTP', { loaded: 50, total: 100 }, 'UPLOADING')`.
6068
+ * The component gets FetchProgress (`fraction: 0.5`) as that action, or on `HTTP.progress()`
6069
+ * for `progress: true`. `phase` defaults to 'upload' for a request with a body, else
6070
+ * 'download'. The request stays pending until respond()/fail(). Resolves once reduced and rendered.
6071
+ */
6072
+ progress: (sinkName: string, step: { loaded: number; total?: number; phase?: 'upload' | 'download' }, target?: string | FakeReplyOptions | Record<string, any> | ((request: any) => boolean)) => Promise<void>;
5906
6073
  /**
5907
6074
  * PLAN-6 L-4: stream into a pending request of the LLM fake (the sink named by `llmSink`,
5908
6075
  * default 'LLM': the real makeChatDriver over an in-memory transport). Chunks: strings (text),
@@ -6034,13 +6201,13 @@ interface RenderResult<STATE = any> {
6034
6201
  * `await t.next(pred)` / `waitForState` / `settle()` / `ready()` it shows the state the wait resolved with.
6035
6202
  */
6036
6203
  query: {
6037
- (selector: string): Element | null;
6204
+ <E extends Element = Element>(selector: string): E | null;
6038
6205
  /** A control's element (`t.query(Draft)` is an HTMLInputElement for an 'input' control), or null */
6039
6206
  <CONTROL extends AnyControl>(control: CONTROL): ControlElementOf<CONTROL> | null;
6040
6207
  };
6041
6208
  /** Every element matching a selector (or a control) in the rendered tree (Portals included), as query() */
6042
6209
  queryAll: {
6043
- (selector: string): Element[];
6210
+ <E extends Element = Element>(selector: string): E[];
6044
6211
  <CONTROL extends AnyControl>(control: CONTROL): Array<ControlElementOf<CONTROL>>;
6045
6212
  };
6046
6213
  /**
@@ -6207,4 +6374,4 @@ declare global {
6207
6374
  */
6208
6375
  declare function byId<T = any, S = any>(field: string, id: unknown, idKey?: string): { get(state: S): T | undefined; set(state: S, value: T): S }
6209
6376
 
6210
- export { ABORT, type ActionCause, type ActionsOf, type ActiveTimer, type AgentAction, type AgentConfirm, type AgentConfirmInfo, type AgentDeclaration, type AgentIssue, type AgentQuery, type AgentQueryResult, type AgentResult, type AgentSchema, type AgentTool, type AgentToolSet, type AgentToolsOptions, type AguiOptions, type AnswerPick, type AnswerPicks, type AnthropicMessagesOptions, type AnyComponentModule, type AnyControl, type AppErrorHook, type AppErrorInfo, type AppErrorPhase, type ArrayKeysOf, type ArrayPathsOf, type AsyncDriverError, type AsyncDriverFromFunction, type AsyncRequest, type Behavior, type BehaviorDefinition, type BehaviorFactory, type BehaviorHandler, type BehaviorModelEntry, type BehaviorProps, type BehaviorSources, type BehaviorState, type BehaviorTarget, type BrowserCommand, type BrowserFake, type BrowserFakeOptions, type BrowserIntersection, type BrowserPosition, type BrowserResize, type BrowserSource, type BrowserSources, type BrowserSpec, type Catalog, type CatalogContainer, type CatalogContainerDecl, type CatalogDecl, type CatalogOption, type CatalogParam, type CatalogParamValue, type CatalogParamsOf, type CatalogPart, type CatalogPartDecl, type CatalogRecord, type CatalogTree, type CatalogTreeNode, type ChatAbort, type ChatActions, type ChatAskOptions, type ChatCall, type ChatCard, type ChatCardStatus, type ChatClientTool, type ChatCompletionsOptions, type ChatDelta, type ChatDone, type ChatDriverOptions, type ChatError, type ChatEvent, type ChatOk, type ChatOptions, type ChatOutputOf, type ChatOutputSchema, type ChatRequest, type ChatSource, type ChatState, type ChatStatus, type ChatTool, type ChatToolCall, type ChatToolPart, type ChatTransport, type ChatUsage, type ChromePromptOptions, type ChromePromptStatus, type ChromePromptTransport, type ClassesType, Collection, type CollectionFrom, type CollectionProps, type Command, type CommandBarActions, type CommandBarOptions, type CommandBarResult, type CommandBarState, type CommandBarStatus, type CommandBarUnsure, type CommandSource, type Component, type ComposeActions, type ComposeAnswer, type ComposeBackend, type ComposeNames, type ComposeOptions, type ComposeRenderOptions, type ComposeRenderable, type ComposeState, type ComposeStatus, type ComposeTree, Composed, type ComposedProps, type Connections, type ContainerView, type Control, type ControlCommonProps, type ControlDOMSource, type ControlElementOf, type ControlEvent, type ControlH, type ControlPropsOf, type ControlSpec, type ControlSpecObject, type ControlsOf, type ConvertedSchema, type CycleDOMEvent, type CycleDriver, type DOMDriverOptions, type DOMEventShorthand, type DOMEventShorthands, type DOMSource, type DefaultDrivers, type DefineComponentOptions, type DevToolsActionCause, type DevToolsCopyAsTestOptions, type DevToolsSessionRecording, type Diagnostic, type DiagnosticCode, type DiagnosticSeverity, type DiagnosticsMode, type DiagnosticsOptions, type DragDriverCategory, type DragDriverRegistration, type DragDriverSource, type DragSource, type DragStartPayload, type DriverFactories, type DriverFromAsyncOptions, type DriverSpec, type DriverSpecs, type DropPayload, type ElementCommand, type ElementCommandRegistry, type ElementCommands, type ElementProps, type ElementTarget, type EmittedEvent, type EnrichedEventStream, type Event$1 as Event, type EventName, type EventPayload, type EventPayloadFunction, type EventSink, type EventsFnOptions, type EventsSource, type ExactShape, type ExplainedAction, type ExposeWebMcpOptions, type FakeCacheEntry, type FakeChatChunk, type FakeConnection, type FakeConnectionTarget, type FakeReplyOptions, type FetchCacheOptions, type FetchDriverOptions, type FetchError, type FetchFailure, type FetchInit, type FetchInvalidate, type FetchRequest, type FetchResponse, type FetchRetry, type FetchSource, type FieldErrors, type Filter, type FixDrivers, type FormActions, type FormCalculated, type FormData, type FormField, type FormFieldCheck, type FormOptions, type FormSource, type FormState, type FormTool, type FormToolHandle, type FormToolResult, type FromAISDKOptions, type HeadValue, type HotModuleAPI, type HttpTransportOptions, type InspectAction, type InspectActionTrigger, type InspectChild, type InspectChildSelect, type InspectCommand, type InspectComponent, type InspectDiagnostic, type InspectFix, type InspectGraph, type InspectLocation, type InspectRecentAction, type InspectRelatedLocation, type InspectSelector, type InspectTextEdit, type InspectTimer, type InstallPrompt, type IntentSources, type IntrinsicControlProps, type JsonSchemaObject, type Layout, type LayoutNode, type LazyComponent, type LazyOptions, type Lens, type Lense, MainDOMSource, type McpAppDisplayMode, type McpAppDriverOptions, type McpAppError, type McpAppRequest, type McpAppSource, type McpContentBlock, type McpDownloadItem, type McpHostContext, type McpHostInfo, type McpLogLevel, type McpResourceContents, type McpSamplingRequest, type McpToolResult, type MockConfig, MockedDOMSource, type NonStateSinkReturns, type OpenResponsesEvent, type OpenResponsesOptions, type PagerActions, type PagerCalculated, type PagerOptions, type PagerState, type ParamNames, type ParentPayloadOf, type Persist, type PersistOptions, type PersistOptionsFor, type PersistStorage, type PersistedEntry, Portal, type PortalProps, type ProcessFormOptions, type QueryCache, type QueryCacheSnapshot, type QueryCacheSnapshotEntry, type Ref, type Ref$, type RegisteredEvent, type RenderOptions, type RenderResult, type RenderToStringOptions, type RenderableComponent, type ReplyRequest, type Resource, type ResourceRequest, type RootComponent, type Route, type RouteName, type RouteParamsArg, type RouteQuery, type Router, type RouterBlocked, type RouterCommand, type RouterOptions, type RouterSource, type RunOptions, type SchemaOutput, type ScrollToAlign, type SelectedDOMSource, type SelectionActions, type SelectionCalculated, type SelectionOptions, type SelectionState, type ServiceWorkerCommand, type ServiceWorkerOptions, type ServiceWorkerSource, type SimulatedEventInit, Slot, type SlotProps, type SocketActions, type SocketClose, type SocketConnection, type SocketDriverOptions, type SocketError, type SocketEvent, type SocketOpen, type SocketReconnect, type SocketRequest, type SocketSource, type SortFunction, type SortObject, type SortSpec, type SortableActions, type SortableDropped, type SortableOptions, type SortableState, type SseConnection, type StandardSchemaLike, type StateProp, type StrictDialect, type StrictSchemas, Suspense, type SuspenseProps, Switchable, type SwitchableProps, type SygnalApp, type SygnalBodyDOMSource, type SygnalDOMSource, type SygnalDevTools, type SygnalDocumentDOMSource, type SygnalEvents, type SygnalSinks, type TestAction, type Thunk, type ThunkData, type TimerAfter, type TimerFrame, type TimerSpec, type TimerTick, type Timers, Transition, type TransitionProps, type UIMessageStreamOptions, type UidFunction, type UndoBehaviorOptions, type UndoHistory, type UndoOptions, type UsesActions, type UsesState, type ViewProps, VirtualCollection, type VirtualCollectionProps, type WebMcpHandle, type Widget, type WidgetDefinition, type WidgetDispatch, type WidgetElementOf, type WidgetEmit, type WidgetHandle, type WidgetHostProps, type WithinTarget, abort, agentTools, agui, answers, anthropicMessages, askCard, byId, chat, chatCompletions, checkForm, choice, chromePrompt, classes, clearDiagnostics, clipboardSource, commandBar, compose, composeWith, controls, createCommand, createInstallPrompt, createRef, createRef$, decide, defineBehavior, defineCatalog, defineComponent, defineWidget, driverFromAsync, emit, enableHMR, encodeOpenResponses, event, exactState, experimentalExposeWebMcp, fieldName, fieldNames, focusInvalid, focusWithin, form, formErrors, formTool, fromAISDK, fromTree, geolocationSource, getDevTools, getDiagnostics, getField, hasField, intersectionSource, isSelected, jsonSchema, lazy, makeBrowserDriver, makeBrowserDriverWith, makeChatDriver, makeDOMDriver, makeDragDriver, makeFetchDriver, makeHeadDriver, makeMcpAppDriver, makeRouter, makeRouterDriver, makeServiceWorkerDriver, makeSocketDriver, makeTimerDriver, makeViewTransitionDOMDriver, mediaSource, messageText, mockDOMSource, noul, onDiagnostic, onlineSource, onlineStatus$, openResponses, openToolCalls, outputJsonSchema, pager, parseInput, persist, portal, processDrag, processForm, queryCache, removeNode, renderComponent, renderHead, renderToString, replyErrors, resizeSource, run, score, selection, set, setField, sortable, storageSource, strictSchemas, thunk, toJsonSchema, toTree, toggle, uiMessageStream, undo, undoable, visibilitySource, withToolResults, xs };
6377
+ export { ABORT, type ActionCause, type ActionsOf, type ActiveTimer, type AgentAction, type AgentConfirm, type AgentConfirmInfo, type AgentDeclaration, type AgentIssue, type AgentQuery, type AgentQueryResult, type AgentResult, type AgentSchema, type AgentTool, type AgentToolSet, type AgentToolsOptions, type AguiOptions, type AnswerPick, type AnswerPicks, type AnthropicMessagesOptions, type AnyComponentModule, type AnyControl, type AppErrorHook, type AppErrorInfo, type AppErrorPhase, type ArrayKeysOf, type ArrayPathsOf, type AsyncDriverError, type AsyncDriverFromFunction, type AsyncRequest, type Behavior, type BehaviorDefinition, type BehaviorFactory, type BehaviorHandler, type BehaviorModelEntry, type BehaviorProps, type BehaviorSources, type BehaviorState, type BehaviorTarget, type BrowserCommand, type BrowserFake, type BrowserFakeOptions, type BrowserIntersection, type BrowserPosition, type BrowserResize, type BrowserSource, type BrowserSources, type BrowserSpec, type Catalog, type CatalogContainer, type CatalogContainerDecl, type CatalogDecl, type CatalogOption, type CatalogParam, type CatalogParamValue, type CatalogParamsOf, type CatalogPart, type CatalogPartDecl, type CatalogRecord, type CatalogTree, type CatalogTreeNode, type ChatAbort, type ChatActions, type ChatAskOptions, type ChatCall, type ChatCard, type ChatCardStatus, type ChatClientTool, type ChatCompletionsOptions, type ChatDelta, type ChatDone, type ChatDriverOptions, type ChatError, type ChatEvent, type ChatOk, type ChatOptions, type ChatOutputOf, type ChatOutputSchema, type ChatRequest, type ChatSource, type ChatState, type ChatStatus, type ChatTool, type ChatToolCall, type ChatToolPart, type ChatTransport, type ChatUsage, type ChromePromptOptions, type ChromePromptStatus, type ChromePromptTransport, type ClassesType, Collection, type CollectionFrom, type CollectionProps, type Command, type CommandBarActions, type CommandBarOptions, type CommandBarResult, type CommandBarState, type CommandBarStatus, type CommandBarUnsure, type CommandSource, type Component, type ComposeActions, type ComposeAnswer, type ComposeBackend, type ComposeNames, type ComposeOptions, type ComposeRenderOptions, type ComposeRenderable, type ComposeState, type ComposeStatus, type ComposeTree, Composed, type ComposedProps, type Connections, type ContainerView, type Control, type ControlCommonProps, type ControlDOMSource, type ControlElementOf, type ControlEvent, type ControlH, type ControlPropsOf, type ControlSpec, type ControlSpecObject, type ControlsOf, type ConvertedSchema, type CycleDOMEvent, type CycleDriver, type DOMDriverOptions, type DOMEventShorthand, type DOMEventShorthands, type DOMSource, type DefaultDrivers, type DefineComponentOptions, type DevToolsActionCause, type DevToolsCopyAsTestOptions, type DevToolsSessionRecording, type Diagnostic, type DiagnosticCode, type DiagnosticSeverity, type DiagnosticsMode, type DiagnosticsOptions, type DragDriverCategory, type DragDriverRegistration, type DragDriverSource, type DragSource, type DragStartPayload, type DriverFactories, type DriverFromAsyncOptions, type DriverSpec, type DriverSpecs, type DropPayload, type ElementCommand, type ElementCommandRegistry, type ElementCommands, type ElementProps, type ElementTarget, type EmittedEvent, type EnrichedEventStream, type Event$1 as Event, type EventName, type EventPayload, type EventPayloadFunction, type EventSink, type EventsFnOptions, type EventsSource, type ExactShape, type ExplainedAction, type ExposeWebMcpOptions, type FakeCacheEntry, type FakeChatChunk, type FakeConnection, type FakeConnectionTarget, type FakeReplyOptions, type FetchCacheOptions, type FetchDriverOptions, type FetchError, type FetchFailure, type FetchInit, type FetchInvalidate, type FetchProgress, type FetchRequest, type FetchResponse, type FetchRetry, type FetchSource, type FieldErrors, type Filter, type FixDrivers, type FormActions, type FormBehavior, type FormCalculated, type FormData, type FormField, type FormFieldCheck, type FormFields, type FormOptions, type FormOutput, type FormRequest, type FormServerErrors, type FormSource, type FormState, type FormTool, type FormToolHandle, type FormToolResult, type FromAISDKOptions, type HeadValue, type HotModuleAPI, type HttpTransportOptions, type InspectAction, type InspectActionTrigger, type InspectChild, type InspectChildSelect, type InspectCommand, type InspectComponent, type InspectDiagnostic, type InspectFix, type InspectGraph, type InspectLocation, type InspectRecentAction, type InspectRelatedLocation, type InspectSelector, type InspectTextEdit, type InspectTimer, type InstallPrompt, type IntentSources, type IntrinsicControlProps, type JsonSchemaObject, type Layout, type LayoutNode, type LazyComponent, type LazyOptions, type Lens, type Lense, MainDOMSource, type McpAppDisplayMode, type McpAppDriverOptions, type McpAppError, type McpAppRequest, type McpAppSource, type McpContentBlock, type McpDownloadItem, type McpHostContext, type McpHostInfo, type McpLogLevel, type McpResourceContents, type McpSamplingRequest, type McpToolResult, type MockConfig, MockedDOMSource, type MultipartValue, type NonStateSinkReturns, type OpenResponsesEvent, type OpenResponsesOptions, type PagerActions, type PagerCalculated, type PagerOptions, type PagerState, type ParamNames, type ParentPayloadOf, type Persist, type PersistOptions, type PersistOptionsFor, type PersistStorage, type PersistedEntry, Portal, type PortalProps, type ProcessFormOptions, type QueryCache, type QueryCacheSnapshot, type QueryCacheSnapshotEntry, type Ref, type Ref$, type RegisteredEvent, type RenderOptions, type RenderResult, type RenderToStringOptions, type RenderableComponent, type ReplyRequest, type Resource, type ResourceRequest, type RootComponent, type Route, type RouteName, type RouteParamsArg, type RouteQuery, type Router, type RouterBlocked, type RouterCommand, type RouterOptions, type RouterSource, type RunOptions, type SchemaInput, type SchemaOutput, type ScrollToAlign, type SelectedDOMSource, type SelectionActions, type SelectionCalculated, type SelectionOptions, type SelectionState, type ServiceWorkerCommand, type ServiceWorkerOptions, type ServiceWorkerSource, type SimulatedEventInit, Slot, type SlotProps, type SocketActions, type SocketClose, type SocketConnection, type SocketDriverOptions, type SocketError, type SocketEvent, type SocketOpen, type SocketReconnect, type SocketRequest, type SocketSource, type SortFunction, type SortObject, type SortSpec, type SortableActions, type SortableDropped, type SortableOptions, type SortableState, type SseConnection, type StandardSchemaLike, type StateProp, type StrictDialect, type StrictSchemas, Suspense, type SuspenseProps, Switchable, type SwitchableProps, type SygnalApp, type SygnalBodyDOMSource, type SygnalDOMSource, type SygnalDevTools, type SygnalDocumentDOMSource, type SygnalEvents, type SygnalSinks, type TestAction, type Thunk, type ThunkData, type TimerAfter, type TimerFrame, type TimerSpec, type TimerTick, type Timers, Transition, type TransitionProps, type UIMessageStreamOptions, type UidFunction, type UndoBehaviorOptions, type UndoHistory, type UndoOptions, type UsesActions, type UsesState, type ViewProps, VirtualCollection, type VirtualCollectionProps, type WebMcpHandle, type Widget, type WidgetDefinition, type WidgetDispatch, type WidgetElementOf, type WidgetEmit, type WidgetHandle, type WidgetHostProps, type WithinTarget, abort, agentTools, agui, answers, anthropicMessages, askCard, byId, chat, chatCompletions, checkForm, choice, chromePrompt, classes, clearDiagnostics, clipboardSource, commandBar, compose, composeWith, controls, createCommand, createInstallPrompt, createRef, createRef$, decide, defineBehavior, defineCatalog, defineComponent, defineWidget, driverFromAsync, emit, enableHMR, encodeOpenResponses, event, exactState, experimentalExposeWebMcp, fieldName, fieldNames, focusInvalid, focusWithin, form, formErrors, formTool, fromAISDK, fromTree, geolocationSource, getDevTools, getDiagnostics, getField, hasField, intersectionSource, isSelected, jsonSchema, lazy, makeBrowserDriver, makeBrowserDriverWith, makeChatDriver, makeDOMDriver, makeDragDriver, makeFetchDriver, makeHeadDriver, makeMcpAppDriver, makeRouter, makeRouterDriver, makeServiceWorkerDriver, makeSocketDriver, makeTimerDriver, makeViewTransitionDOMDriver, mediaSource, messageText, mockDOMSource, noul, onDiagnostic, onlineSource, onlineStatus$, openResponses, openToolCalls, outputJsonSchema, pager, parseInput, persist, portal, processDrag, processForm, queryCache, removeNode, renderComponent, renderHead, renderToString, replyErrors, resizeSource, run, score, selection, set, setField, sortable, storageSource, strictSchemas, thunk, toJsonSchema, toTree, toggle, uiMessageStream, undo, undoable, visibilitySource, withToolResults, xs };