@sevenfold/setto-client 0.15.0 → 0.16.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.
- package/dist/chrome.d.ts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/modules/forms/field-tools.d.ts +35 -0
- package/dist/modules/forms/index.d.ts +1 -1
- package/dist/setto-client.js +15 -688
- package/dist/setto-client.js.map +1 -1
- package/package.json +1 -1
- package/dist/edit-mode/build-status.d.ts +0 -13
- package/dist/edit-mode/deployment-status.d.ts +0 -37
- package/dist/modules/forms/field-editor.d.ts +0 -29
- package/dist/preview-bar.d.ts +0 -29
package/dist/chrome.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export interface SettoChromeHandshake {
|
|
|
42
42
|
* keeps a chrome bundle that fails to load, or throws while rendering, from
|
|
43
43
|
* taking the editor down with it.
|
|
44
44
|
*/
|
|
45
|
-
mountSlot: (name: string, Component: React.ComponentType) => void;
|
|
45
|
+
mountSlot: (name: string, Component: React.ComponentType<any>) => void;
|
|
46
46
|
/**
|
|
47
47
|
* The host's own `useSetto`, callable from the chrome.
|
|
48
48
|
*
|
|
@@ -89,7 +89,7 @@ declare global {
|
|
|
89
89
|
* offered nothing — including after it offered something that threw. Callers
|
|
90
90
|
* render their own version when this is null; every one of them must have one.
|
|
91
91
|
*/
|
|
92
|
-
export declare function useSettoChromeSlot(name: string): React.ComponentType | null;
|
|
92
|
+
export declare function useSettoChromeSlot<P extends object = Record<string, never>>(name: string): React.ComponentType<P> | null;
|
|
93
93
|
/** @deprecated Use `useSettoChromeSlot('admin')`. */
|
|
94
|
-
export declare function useSettoAdminChrome(): React.ComponentType | null;
|
|
94
|
+
export declare function useSettoAdminChrome(): React.ComponentType<Record<string, never>> | null;
|
|
95
95
|
export declare function SettoChrome(): import("react/jsx-runtime").JSX.Element | null;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export { SettoProvider, useSetto } from './provider';
|
|
2
2
|
export { GuestEditProvider, useGuestEdit } from './guest-edit';
|
|
3
|
-
export { SettoPreviewBar, isPreviewHost, previewBarState } from './preview-bar';
|
|
4
3
|
export { SettoChrome, useSettoChromeSlot } from './chrome';
|
|
5
4
|
export type { SettoChromeHandshake } from './chrome';
|
|
6
5
|
export { T } from './T';
|
|
@@ -12,7 +11,7 @@ export { SettoImage } from './SettoImage';
|
|
|
12
11
|
export type { SettoImageProps } from './SettoImage';
|
|
13
12
|
export { SettoRepeater } from './SettoRepeater';
|
|
14
13
|
export type { SettoRepeaterProps } from './SettoRepeater';
|
|
15
|
-
export { SettoForm, FORM_FIELD_TYPES, FORM_FIELD_TYPE_LABELS, formFieldsPrefix, isFormFieldType, readLocaleFields, settoSubmissionUrl, } from './modules/forms';
|
|
14
|
+
export { SettoForm, FORM_FIELD_TYPES, FORM_FIELD_TYPE_LABELS, fieldTypeHasOptions, fieldTypeHasPlaceholder, formFieldsPrefix, isFormFieldType, readLocaleFields, settoSubmissionUrl, } from './modules/forms';
|
|
16
15
|
export type { SettoFormProps, SettoFormClassNames, FormFieldProp, FormSettings, FormSubmissionRow, FormValue, FormValues, ResolvedFormField, SubmissionEnvelope, } from './modules/forms';
|
|
17
16
|
export { SETTO_MODULES } from './modules';
|
|
18
17
|
export type { SettoModule } from './modules';
|
|
@@ -36,9 +35,10 @@ export { BLOCK_REGISTRY, BLOCK_TYPES, nodeChildren } from './block-tree/registry
|
|
|
36
35
|
export type { BlockTypeMeta } from './block-tree/registry';
|
|
37
36
|
export { SETTO_BASE, siteHomeUrl, isAdminRoute, isAdminDeploymentView, adminViewUrl, currentAdminView, isAdminPanelView, adminRedirectUrl, CHECKOUT_INTENT, checkoutIntentUrl, wantsCheckout, withoutCheckoutIntent, } from './lib/urls';
|
|
38
37
|
export { SettoMark } from './edit-mode/setto-mark';
|
|
38
|
+
export { FloatingPopover } from './edit-mode/floating-popover';
|
|
39
|
+
export type { FieldPatch, FormFieldToolsProps, FormFieldToolsComponent, } from './modules/forms/field-tools';
|
|
39
40
|
export { isLinkContext } from './lib/link-context';
|
|
40
41
|
export { useCoarsePointer } from './lib/use-coarse-pointer';
|
|
41
42
|
export { FAB_SIZE, FAB_INSET } from './edit-mode/constants';
|
|
42
43
|
export { EMPTY_I18N_STORE_SNAPSHOT } from './lib/i18n-store';
|
|
43
44
|
export type { I18nStoreSnapshot } from './lib/i18n-store';
|
|
44
|
-
export { IN_PROGRESS_STATUSES, isDeploymentInProgress, isDeploymentStale, STALE_PENDING_MS, STALE_BUILDING_MS, fetchInProgressDeploymentId, waitForDeploymentByCommit, useDeploymentStatus, PublishProgressBar, PublishProgressSteps, } from './edit-mode/deployment-status';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
2
|
+
import type { FormFieldType, ResolvedFormField } from './fields';
|
|
3
|
+
/**
|
|
4
|
+
* The contract between a form on the customer's page and the editing tools
|
|
5
|
+
* Setto serves for it.
|
|
6
|
+
*
|
|
7
|
+
* The tools themselves — the popover, the type picker, the reordering — live
|
|
8
|
+
* in setto-server and arrive at runtime, so changing them is a deploy. What
|
|
9
|
+
* has to stay here is the shape of the conversation between the two, because
|
|
10
|
+
* `SettoForm` applies the patch and it is compiled into the customer's bundle.
|
|
11
|
+
*
|
|
12
|
+
* That makes this the pinned part, and it is deliberately data: adding a field
|
|
13
|
+
* kind means widening `FormFieldType`, but rearranging the panel that sets one
|
|
14
|
+
* costs nothing on this side.
|
|
15
|
+
*/
|
|
16
|
+
export interface FieldPatch {
|
|
17
|
+
name?: string;
|
|
18
|
+
type?: FormFieldType;
|
|
19
|
+
required?: boolean;
|
|
20
|
+
label?: string;
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
options?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface FormFieldToolsProps {
|
|
25
|
+
field: ResolvedFormField;
|
|
26
|
+
index: number;
|
|
27
|
+
count: number;
|
|
28
|
+
/** Open the settings popover as soon as the tools mount (a field just added). */
|
|
29
|
+
autoOpen?: boolean;
|
|
30
|
+
onMove: (direction: -1 | 1) => void;
|
|
31
|
+
onRemove: () => void;
|
|
32
|
+
onChange: (patch: FieldPatch) => void;
|
|
33
|
+
}
|
|
34
|
+
/** What the chrome registers under `mountSlot('form-field-tools', …)`. */
|
|
35
|
+
export type FormFieldToolsComponent = ComponentType<FormFieldToolsProps>;
|
|
@@ -8,5 +8,5 @@ export declare const formsModule: SettoModule;
|
|
|
8
8
|
export { SettoForm } from './SettoForm';
|
|
9
9
|
export type { SettoFormProps, SettoFormClassNames } from './SettoForm';
|
|
10
10
|
export type { FormSettings, FormSubmissionRow, FormsApi } from './api';
|
|
11
|
-
export { FORM_FIELD_TYPES, FORM_FIELD_TYPE_LABELS, formFieldsPrefix, isFormFieldType, readLocaleFields, settoSubmissionUrl, } from './fields';
|
|
11
|
+
export { FORM_FIELD_TYPES, FORM_FIELD_TYPE_LABELS, fieldTypeHasOptions, fieldTypeHasPlaceholder, formFieldsPrefix, isFormFieldType, readLocaleFields, settoSubmissionUrl, } from './fields';
|
|
12
12
|
export type { FormFieldProp, FormFieldType, FormValue, FormValues, ResolvedFormField, SubmissionEnvelope, } from './fields';
|