@jsenv/navi 0.29.311 → 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.
- package/dist/dev/jsenv_navi.js +31 -7
- package/dist/dev/jsenv_navi.js.map +5 -5
- package/dist/jsenv_navi.js +28 -6
- package/dist/jsenv_navi.js.map +5 -5
- package/docs/actions.md +11 -4
- package/docs/control_object.md +15 -6
- package/docs/data_states.md +5 -1
- package/package.json +1 -1
package/dist/jsenv_navi.js
CHANGED
|
@@ -36068,6 +36068,13 @@ const useUIFacadeStateController = (props, realUIStateController) => {
|
|
|
36068
36068
|
// ── init: runs once on mount ───────────────────────────────────────────
|
|
36069
36069
|
(s) => {
|
|
36070
36070
|
const canRegisterAsFacadeChild = (childController) => {
|
|
36071
|
+
if (s.props.picksNothing) {
|
|
36072
|
+
// The popup is a question, not a choice: a control in it (the "I
|
|
36073
|
+
// understand" checkbox gating a confirm) holds its own value, and
|
|
36074
|
+
// that value is not the picker's. Adopted, it would reach the
|
|
36075
|
+
// picker's action as its params, over whatever the caller bound.
|
|
36076
|
+
return false;
|
|
36077
|
+
}
|
|
36071
36078
|
if (childController.controlType === "button") {
|
|
36072
36079
|
return false;
|
|
36073
36080
|
}
|
|
@@ -53569,8 +53576,8 @@ const Form = props => {
|
|
|
53569
53576
|
// second's opening tag, so the inner fields would silently belong to the
|
|
53570
53577
|
// outer form. Rather than forbidding the shape (a form inside a picker inside
|
|
53571
53578
|
// a form is a legitimate thing to want), a form that finds itself inside one
|
|
53572
|
-
// is a different component:
|
|
53573
|
-
// browser machinery that comes with it.
|
|
53579
|
+
// is a different component: a group of its own, no <form> element and none of
|
|
53580
|
+
// the browser machinery that comes with it (see FormNested).
|
|
53574
53581
|
const isNested = Boolean(useContext(FormContext));
|
|
53575
53582
|
return isNested ? jsx(FormNested, {
|
|
53576
53583
|
...props
|
|
@@ -53700,13 +53707,26 @@ const FormControl = props => {
|
|
|
53700
53707
|
// event to intercept and no requestSubmit() to go through, so it is driven the
|
|
53701
53708
|
// way every other group is — a command, or an action requested on it. method
|
|
53702
53709
|
// belongs to the browser's own submission, so it means nothing here either.
|
|
53710
|
+
//
|
|
53711
|
+
// And it owns what it holds: `standalone`, unconditionally. A <Form> is a
|
|
53712
|
+
// question with a send of its own, so its fields answer to it and to nothing
|
|
53713
|
+
// above it — they are not in the outer form's value, not in its "changed", and
|
|
53714
|
+
// not in the constraints it checks before sending. That last one is what a
|
|
53715
|
+
// caller feels: a required field in a popup nobody opened would otherwise
|
|
53716
|
+
// refuse the outer submit, pointing at something the screen is not even
|
|
53717
|
+
// showing. A cluster of fields that IS part of the value around it is a
|
|
53718
|
+
// <ControlGroup>, which is the shape without the send (see
|
|
53719
|
+
// docs/control_object.md).
|
|
53703
53720
|
const FormNested = props => {
|
|
53704
53721
|
const {
|
|
53705
53722
|
formRootProps,
|
|
53706
53723
|
formProps,
|
|
53707
53724
|
onnavi_action_end,
|
|
53708
53725
|
inside
|
|
53709
|
-
} = useFormGroup(
|
|
53726
|
+
} = useFormGroup({
|
|
53727
|
+
...props,
|
|
53728
|
+
standalone: true
|
|
53729
|
+
});
|
|
53710
53730
|
return jsx(Box, {
|
|
53711
53731
|
...formRootProps,
|
|
53712
53732
|
...formProps,
|
|
@@ -70745,9 +70765,11 @@ const PickerText = props => {
|
|
|
70745
70765
|
};
|
|
70746
70766
|
|
|
70747
70767
|
// The popup holds a group of named controls — a `<ControlGroup>`, or a `<Form>`
|
|
70748
|
-
// when that group is a question with a send of its own
|
|
70749
|
-
//
|
|
70750
|
-
//
|
|
70768
|
+
// when that group is a question with a send of its own and the picker is not
|
|
70769
|
+
// itself inside a form (a form in a form answers for itself, see form.jsx) —
|
|
70770
|
+
// and this picker's value is the object that group aggregates. The popup itself
|
|
70771
|
+
// holds nothing: it is a surface (see dialog.jsx), so there is nothing to tell
|
|
70772
|
+
// it about the shape.
|
|
70751
70773
|
const PickerObject = props => {
|
|
70752
70774
|
const Next = useNextResolver();
|
|
70753
70775
|
return jsx(Next, {
|