@jsenv/navi 0.29.312 → 0.29.314

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.
@@ -54315,8 +54315,8 @@ const Form = props => {
54315
54315
  // second's opening tag, so the inner fields would silently belong to the
54316
54316
  // outer form. Rather than forbidding the shape (a form inside a picker inside
54317
54317
  // a form is a legitimate thing to want), a form that finds itself inside one
54318
- // is a different component: same group, no <form> element and none of the
54319
- // browser machinery that comes with it.
54318
+ // is a different component: a group of its own, no <form> element and none of
54319
+ // the browser machinery that comes with it (see FormNested).
54320
54320
  const isNested = Boolean(useContext(FormContext));
54321
54321
  return isNested ? jsx(FormNested, {
54322
54322
  ...props
@@ -54446,13 +54446,26 @@ const FormControl = props => {
54446
54446
  // event to intercept and no requestSubmit() to go through, so it is driven the
54447
54447
  // way every other group is — a command, or an action requested on it. method
54448
54448
  // belongs to the browser's own submission, so it means nothing here either.
54449
+ //
54450
+ // And it owns what it holds: `standalone`, unconditionally. A <Form> is a
54451
+ // question with a send of its own, so its fields answer to it and to nothing
54452
+ // above it — they are not in the outer form's value, not in its "changed", and
54453
+ // not in the constraints it checks before sending. That last one is what a
54454
+ // caller feels: a required field in a popup nobody opened would otherwise
54455
+ // refuse the outer submit, pointing at something the screen is not even
54456
+ // showing. A cluster of fields that IS part of the value around it is a
54457
+ // <ControlGroup>, which is the shape without the send (see
54458
+ // docs/control_object.md).
54449
54459
  const FormNested = props => {
54450
54460
  const {
54451
54461
  formRootProps,
54452
54462
  formProps,
54453
54463
  onnavi_action_end,
54454
54464
  inside
54455
- } = useFormGroup(props);
54465
+ } = useFormGroup({
54466
+ ...props,
54467
+ standalone: true
54468
+ });
54456
54469
  return jsx(Box, {
54457
54470
  ...formRootProps,
54458
54471
  ...formProps,
@@ -71611,9 +71624,11 @@ const PickerText = props => {
71611
71624
  };
71612
71625
 
71613
71626
  // The popup holds a group of named controls — a `<ControlGroup>`, or a `<Form>`
71614
- // when that group is a question with a send of its own — and this picker's
71615
- // value is the object that group aggregates. The popup itself holds nothing: it
71616
- // is a surface (see dialog.jsx), so there is nothing to tell it about the shape.
71627
+ // when that group is a question with a send of its own and the picker is not
71628
+ // itself inside a form (a form in a form answers for itself, see form.jsx) —
71629
+ // and this picker's value is the object that group aggregates. The popup itself
71630
+ // holds nothing: it is a surface (see dialog.jsx), so there is nothing to tell
71631
+ // it about the shape.
71617
71632
  const PickerObject = props => {
71618
71633
  const Next = useNextResolver();
71619
71634
  return jsx(Next, {