@plasmicapp/host 1.0.228 → 1.0.230

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 (35) hide show
  1. package/dist/host.esm.js +1 -1
  2. package/dist/host.esm.js.map +1 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.cjs.js.map +1 -1
  5. package/dist/types/component-types.d.ts +10 -17
  6. package/dist/types/container-types.d.ts +7 -0
  7. package/dist/types/function-types.d.ts +24 -21
  8. package/dist/types/shared-controls.d.ts +17 -7
  9. package/dist/version.d.ts +1 -1
  10. package/package.json +2 -2
  11. package/registerComponent/dist/types/component-types.d.ts +10 -17
  12. package/registerComponent/dist/types/container-types.d.ts +7 -0
  13. package/registerComponent/dist/types/function-types.d.ts +24 -21
  14. package/registerComponent/dist/types/shared-controls.d.ts +17 -7
  15. package/registerComponent/dist/version.d.ts +1 -1
  16. package/registerFunction/dist/types/component-types.d.ts +10 -17
  17. package/registerFunction/dist/types/container-types.d.ts +7 -0
  18. package/registerFunction/dist/types/function-types.d.ts +24 -21
  19. package/registerFunction/dist/types/shared-controls.d.ts +17 -7
  20. package/registerFunction/dist/version.d.ts +1 -1
  21. package/registerGlobalContext/dist/types/component-types.d.ts +10 -17
  22. package/registerGlobalContext/dist/types/container-types.d.ts +7 -0
  23. package/registerGlobalContext/dist/types/function-types.d.ts +24 -21
  24. package/registerGlobalContext/dist/types/shared-controls.d.ts +17 -7
  25. package/registerGlobalContext/dist/version.d.ts +1 -1
  26. package/registerToken/dist/types/component-types.d.ts +10 -17
  27. package/registerToken/dist/types/container-types.d.ts +7 -0
  28. package/registerToken/dist/types/function-types.d.ts +24 -21
  29. package/registerToken/dist/types/shared-controls.d.ts +17 -7
  30. package/registerToken/dist/version.d.ts +1 -1
  31. package/registerTrait/dist/types/component-types.d.ts +10 -17
  32. package/registerTrait/dist/types/container-types.d.ts +7 -0
  33. package/registerTrait/dist/types/function-types.d.ts +24 -21
  34. package/registerTrait/dist/types/shared-controls.d.ts +17 -7
  35. package/registerTrait/dist/version.d.ts +1 -1
@@ -4,20 +4,16 @@ import { ChoiceCore, ChoiceValue } from "./choice-type";
4
4
  import { ArrayTypeBaseCore, ObjectTypeBaseCore } from "./container-types";
5
5
  import { DataPickerValueType, DataSourceCore, DynamicCore, GraphQLCore, GraphQLValue, RichDataPickerCore, RichExprEditorCore } from "./misc-types";
6
6
  import { CardPickerCore, ClassCore, CodeStringCore, ColorCore, DateRangeStringsCore, DateStringCore, HrefCore, NumberTypeBaseCore, PlainNumberCore, PlainStringCore, RichBooleanCore, RichTextCore, SliderNumberCore, ThemeResetClassCore } from "./primitive-types";
7
- import { CommonTypeBase, ContextDependentConfig, ControlExtras, GenericContext, InferDataType } from "./shared-controls";
7
+ import { CommonTypeBase, ContextDependentConfig, ControlExtras, Defaultable, GenericContext, InferDataType } from "./shared-controls";
8
8
  export type ComponentControlContext<P> = GenericContext<P, // Full component props
9
9
  // Full component props
10
10
  InferDataType<P> | null, // Canvas data
11
11
  ControlExtras>;
12
12
  export type ComponentContextConfig<Props, R> = ContextDependentConfig<ComponentControlContext<Props>, R>;
13
- export interface PropTypeBase<Ctx extends any[]> extends CommonTypeBase<Ctx> {
13
+ export interface PropTypeBase<Ctx extends any[]> extends CommonTypeBase {
14
14
  displayName?: string;
15
+ required?: boolean;
15
16
  readOnly?: boolean | ContextDependentConfig<Ctx, boolean>;
16
- /**
17
- * If true, will hide the prop in a collapsed section; good for props that
18
- * should not usually be used.
19
- */
20
- advanced?: boolean;
21
17
  /**
22
18
  * If set to true, the component will be remounted when the prop value is updated.
23
19
  * (This behavior only applies to canvas)
@@ -27,17 +23,13 @@ export interface PropTypeBase<Ctx extends any[]> extends CommonTypeBase<Ctx> {
27
23
  * If true, the prop can't be overriden in different variants.
28
24
  */
29
25
  invariantable?: boolean;
30
- }
31
- export interface Defaultable<Ctx extends any[], T> {
32
26
  /**
33
- * Default value to set for this prop when the component is instantiated
34
- */
35
- defaultValue?: T;
36
- /**
37
- * If no prop is given, the component uses a default; specify what
38
- * that default is so the Plasmic user can see it in the studio UI
27
+ * Function for whether this prop should be hidden in the right panel,
28
+ * given the current props for this component
39
29
  */
40
- defaultValueHint?: T | ContextDependentConfig<Ctx, T | undefined>;
30
+ hidden?: ContextDependentConfig<Ctx, boolean>;
31
+ }
32
+ interface ExtendedDefaultable<Ctx extends any[], T> extends Defaultable<Ctx, T> {
41
33
  /**
42
34
  * Use a dynamic value expression as the default instead
43
35
  */
@@ -65,7 +57,7 @@ export interface Controllable {
65
57
  */
66
58
  uncontrolledProp?: string;
67
59
  }
68
- export type PropTypeBaseDefault<P, T> = PropTypeBase<ComponentControlContext<P>> & Defaultable<ComponentControlContext<P>, T> & Controllable;
60
+ export type PropTypeBaseDefault<P, T> = PropTypeBase<ComponentControlContext<P>> & ExtendedDefaultable<ComponentControlContext<P>, T> & Controllable;
69
61
  export type PlainStringType<P> = PropTypeBaseDefault<P, string> & PlainStringCore;
70
62
  export type CodeStringType<P> = PropTypeBaseDefault<P, string> & CodeStringCore;
71
63
  export type RichTextType<P> = PropTypeBaseDefault<P, string> & RichTextCore;
@@ -256,3 +248,4 @@ export type StringCompatType<P> = DateStringType<P> | StringType<P> | ChoiceType
256
248
  export type BoolCompatType<P> = BooleanType<P> | CustomType<P> | DataPickerType<P>;
257
249
  export type NumberCompatType<P> = NumberType<P> | CustomType<P> | DataPickerType<P>;
258
250
  export type RestrictPropType<T, P> = T extends string ? StringCompatType<P> : T extends boolean ? BoolCompatType<P> : T extends number ? NumberCompatType<P> : PropType<P>;
251
+ export {};
@@ -3,6 +3,13 @@ export interface ObjectTypeBaseCore<Ctx extends any[], Fields> {
3
3
  type: "object";
4
4
  fields?: Record<string, Fields>;
5
5
  nameFunc?: (item: any, ...args: Ctx) => string | undefined;
6
+ /**
7
+ * Controls how the object editor is displayed in the UI.
8
+ * - "popup": Opens a modal/popover to edit the object (default)
9
+ * - "inline": Renders the object fields directly inline in the property panel
10
+ * @default "popup"
11
+ */
12
+ display?: "inline" | "popup";
6
13
  }
7
14
  export interface ArrayTypeBaseCore<Ctx extends any[], Fields> {
8
15
  type: "array";
@@ -3,50 +3,50 @@ import { ArrayTypeBaseCore, ObjectTypeBaseCore } from "./container-types";
3
3
  import { DynamicCore, GraphQLCore, GraphQLValue } from "./misc-types";
4
4
  import { DateRangeStringsCore, DateStringCore, NumberTypeBaseCore, RichBooleanCore } from "./primitive-types";
5
5
  import { QueryBuilderCore } from "./query-builder-types";
6
- import { CommonTypeBase, ContextDependentConfig, GenericContext } from "./shared-controls";
6
+ import { CommonTypeBase, ContextDependentConfig, Defaultable, GenericContext } from "./shared-controls";
7
7
  import { Nullish } from "./type-utils";
8
8
  export type FunctionControlContext<P> = GenericContext<Partial<P>, // Partial function props
9
9
  any>;
10
10
  export type FunctionContextConfig<Args extends any[], R> = ContextDependentConfig<FunctionControlContext<Args>, R>;
11
- export interface BaseParam {
11
+ export interface ParamTypeBase extends CommonTypeBase {
12
12
  name: string;
13
- description?: string;
14
13
  isOptional?: boolean;
15
14
  isRestParameter?: boolean;
16
15
  }
17
- export interface FunctionMeta<Args extends any[] = any> extends CommonTypeBase<FunctionControlContext<Args>> {
16
+ export type ParamTypeBaseDefault<Ctx extends any[], T> = ParamTypeBase & Defaultable<Ctx, T>;
17
+ export interface FunctionMeta extends CommonTypeBase {
18
18
  name: string;
19
19
  rest?: boolean;
20
20
  }
21
- export interface PlainStringType<T extends Nullish<string> = string> extends BaseParam {
21
+ export interface PlainStringType<T extends Nullish<string> = string> extends ParamTypeBaseDefault<any[], T> {
22
22
  type: "string" | `'${T}'`;
23
23
  }
24
24
  export type StringType<P, T extends string = string> = "string" | PlainStringType<T> | ChoiceType<P, T> | DateStringType | DateRangeStringsType | AnyType;
25
- export interface PlainNumberType<T extends Nullish<number> = number> extends BaseParam {
25
+ export interface PlainNumberType<T extends Nullish<number> = number> extends ParamTypeBaseDefault<any[], T> {
26
26
  type: "number" | `${number extends T ? number : T}`;
27
27
  }
28
- export type NumberType<P, T extends number = number> = PlainNumberType<T> | (BaseParam & NumberTypeBaseCore<FunctionControlContext<P>>) | ChoiceType<P, T> | AnyType;
29
- export interface PlainBooleanType<T extends Nullish<boolean> = boolean> extends BaseParam {
28
+ export type NumberType<P, T extends number = number> = PlainNumberType<T> | (ParamTypeBaseDefault<FunctionControlContext<P>, T> & NumberTypeBaseCore<FunctionControlContext<P>>) | ChoiceType<P, T> | AnyType;
29
+ export interface PlainBooleanType<T extends Nullish<boolean> = boolean> extends ParamTypeBaseDefault<any[], T> {
30
30
  type: "boolean" | `${boolean extends T ? boolean : T}`;
31
31
  }
32
- export type BooleanType<P, T extends boolean = boolean> = PlainBooleanType<T> | (BaseParam & RichBooleanCore) | ChoiceType<P, T> | AnyType;
33
- export type GraphQLType<P> = BaseParam & GraphQLCore<FunctionControlContext<P>>;
34
- export interface PlainNullType extends BaseParam {
32
+ export type BooleanType<P, T extends boolean = boolean> = PlainBooleanType<T> | (ParamTypeBaseDefault<FunctionControlContext<P>, T> & RichBooleanCore) | ChoiceType<P, T> | AnyType;
33
+ export type GraphQLType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, any> & GraphQLCore<FunctionControlContext<P>>;
34
+ export interface PlainNullType extends ParamTypeBaseDefault<any[], null> {
35
35
  type: "null";
36
36
  }
37
37
  export type NullType = PlainNullType | AnyType;
38
- export interface PlainUndefinedType extends BaseParam {
38
+ export interface PlainUndefinedType extends ParamTypeBaseDefault<any[], undefined> {
39
39
  type: "undefined";
40
40
  }
41
41
  export type UndefinedType = PlainUndefinedType | AnyType;
42
- export type ObjectType<P> = BaseParam & ObjectTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
43
- export type ArrayType<P> = BaseParam & ArrayTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
44
- export type QueryBuilderType<P> = BaseParam & QueryBuilderCore<FunctionControlContext<P>>;
45
- export interface PlainAnyType extends BaseParam {
42
+ export type ObjectType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, Record<string, any>> & ObjectTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
43
+ export type ArrayType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, any[]> & ArrayTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
44
+ export type QueryBuilderType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, any> & QueryBuilderCore<FunctionControlContext<P>>;
45
+ export interface PlainAnyType extends ParamTypeBaseDefault<FunctionControlContext<any>, any> {
46
46
  type: "any";
47
47
  }
48
48
  export type AnyType = PlainAnyType;
49
- export interface PlainVoidType extends BaseParam {
49
+ export interface PlainVoidType extends ParamTypeBase {
50
50
  type: "void";
51
51
  }
52
52
  export type VoidType = PlainVoidType | AnyType;
@@ -54,7 +54,7 @@ type IsAny<T> = 0 extends 1 & T ? true : false;
54
54
  type CommonType<P, T> = T extends GraphQLValue ? GraphQLType<P> : T extends null ? NullType : T extends undefined ? UndefinedType : T extends Array<any> ? ArrayType<P> : T extends object ? ObjectType<P> : AnyType;
55
55
  type AnyTyping<P, T> = T extends string ? StringType<P, T> : T extends number ? NumberType<P, T> : T extends boolean ? BooleanType<P, T> : CommonType<P, T>;
56
56
  export type ToTuple<T> = T extends any[] ? T : never;
57
- export type FunctionChoiceType<Args, Opt extends ChoiceValue = ChoiceValue> = FunctionMeta<ToTuple<Args>> & ChoiceCore<FunctionControlContext<ToTuple<Args>>, Opt>;
57
+ export type FunctionChoiceType<Args, Opt extends ChoiceValue = ChoiceValue> = FunctionMeta & Defaultable<FunctionControlContext<ToTuple<Args>>, Opt | Opt[]> & ChoiceCore<FunctionControlContext<ToTuple<Args>>, Opt>;
58
58
  export interface SingleChoiceType<P, Opt extends ChoiceValue = ChoiceValue> extends FunctionChoiceType<P, Opt> {
59
59
  multiSelect?: false;
60
60
  }
@@ -65,9 +65,12 @@ export interface CustomChoiceType<P, Opt extends ChoiceValue = ChoiceValue> exte
65
65
  multiSelect: FunctionContextConfig<ToTuple<P>, boolean>;
66
66
  }
67
67
  export type ChoiceType<P, T extends ChoiceValue = ChoiceValue> = SingleChoiceType<P, T> | MultiChoiceType<P, T> | CustomChoiceType<P, T>;
68
- export type DateStringType = BaseParam & DateStringCore;
69
- export type DateRangeStringsType = BaseParam & DateRangeStringsCore;
70
- export interface DynamicType<P> extends BaseParam, DynamicCore<FunctionControlContext<ToTuple<P>>, ParamType<P, any>> {
68
+ export type DateStringType = ParamTypeBaseDefault<FunctionControlContext<string>, string> & DateStringCore;
69
+ export type DateRangeStringsType = ParamTypeBaseDefault<FunctionControlContext<[string, string]>, [
70
+ string,
71
+ string
72
+ ]> & DateRangeStringsCore;
73
+ export interface DynamicType<P> extends ParamTypeBase, DynamicCore<FunctionControlContext<ToTuple<P>>, ParamType<P, any>> {
71
74
  }
72
75
  export type RestrictedType<P, T> = IsAny<T> extends true ? AnyTyping<P, T> : [
73
76
  T
@@ -17,10 +17,14 @@ export type ControlExtras = {
17
17
  item?: any;
18
18
  };
19
19
  export type InferDataType<P> = P extends CanvasComponentProps<infer Data> ? Data : any;
20
- export interface CommonTypeBase<Ctx extends any[]> {
20
+ export interface CommonTypeBase {
21
21
  description?: string;
22
22
  helpText?: string;
23
- required?: boolean;
23
+ /**
24
+ * If true, will hide the prop in a collapsed section; good for props that
25
+ * should not usually be used.
26
+ */
27
+ advanced?: boolean;
24
28
  /**
25
29
  * If the user has chosen to use a dynamic expression for this prop, provide
26
30
  * a hint as to the expected values that the expression should evaluate to.
@@ -28,13 +32,19 @@ export interface CommonTypeBase<Ctx extends any[]> {
28
32
  * markdown in the text here.
29
33
  */
30
34
  exprHint?: string;
31
- /**
32
- * Function for whether this prop should be hidden in the right panel,
33
- * given the current props for this component
34
- */
35
- hidden?: ContextDependentConfig<Ctx, boolean>;
36
35
  /**
37
36
  * If true, does not allow the user to use a dynamic expression for this prop
38
37
  */
39
38
  disableDynamicValue?: boolean;
40
39
  }
40
+ export interface Defaultable<Ctx extends any[], T> {
41
+ /**
42
+ * Default value to set for this prop when the component is instantiated
43
+ */
44
+ defaultValue?: T;
45
+ /**
46
+ * Specify that default when no prop/param is provided,
47
+ * so the Plasmic user can see it in the studio UI
48
+ */
49
+ defaultValueHint?: T | ContextDependentConfig<Ctx, T | undefined>;
50
+ }
@@ -1 +1 @@
1
- export declare const hostVersion = "1.0.228";
1
+ export declare const hostVersion = "1.0.230";
@@ -4,20 +4,16 @@ import { ChoiceCore, ChoiceValue } from "./choice-type";
4
4
  import { ArrayTypeBaseCore, ObjectTypeBaseCore } from "./container-types";
5
5
  import { DataPickerValueType, DataSourceCore, DynamicCore, GraphQLCore, GraphQLValue, RichDataPickerCore, RichExprEditorCore } from "./misc-types";
6
6
  import { CardPickerCore, ClassCore, CodeStringCore, ColorCore, DateRangeStringsCore, DateStringCore, HrefCore, NumberTypeBaseCore, PlainNumberCore, PlainStringCore, RichBooleanCore, RichTextCore, SliderNumberCore, ThemeResetClassCore } from "./primitive-types";
7
- import { CommonTypeBase, ContextDependentConfig, ControlExtras, GenericContext, InferDataType } from "./shared-controls";
7
+ import { CommonTypeBase, ContextDependentConfig, ControlExtras, Defaultable, GenericContext, InferDataType } from "./shared-controls";
8
8
  export type ComponentControlContext<P> = GenericContext<P, // Full component props
9
9
  // Full component props
10
10
  InferDataType<P> | null, // Canvas data
11
11
  ControlExtras>;
12
12
  export type ComponentContextConfig<Props, R> = ContextDependentConfig<ComponentControlContext<Props>, R>;
13
- export interface PropTypeBase<Ctx extends any[]> extends CommonTypeBase<Ctx> {
13
+ export interface PropTypeBase<Ctx extends any[]> extends CommonTypeBase {
14
14
  displayName?: string;
15
+ required?: boolean;
15
16
  readOnly?: boolean | ContextDependentConfig<Ctx, boolean>;
16
- /**
17
- * If true, will hide the prop in a collapsed section; good for props that
18
- * should not usually be used.
19
- */
20
- advanced?: boolean;
21
17
  /**
22
18
  * If set to true, the component will be remounted when the prop value is updated.
23
19
  * (This behavior only applies to canvas)
@@ -27,17 +23,13 @@ export interface PropTypeBase<Ctx extends any[]> extends CommonTypeBase<Ctx> {
27
23
  * If true, the prop can't be overriden in different variants.
28
24
  */
29
25
  invariantable?: boolean;
30
- }
31
- export interface Defaultable<Ctx extends any[], T> {
32
26
  /**
33
- * Default value to set for this prop when the component is instantiated
34
- */
35
- defaultValue?: T;
36
- /**
37
- * If no prop is given, the component uses a default; specify what
38
- * that default is so the Plasmic user can see it in the studio UI
27
+ * Function for whether this prop should be hidden in the right panel,
28
+ * given the current props for this component
39
29
  */
40
- defaultValueHint?: T | ContextDependentConfig<Ctx, T | undefined>;
30
+ hidden?: ContextDependentConfig<Ctx, boolean>;
31
+ }
32
+ interface ExtendedDefaultable<Ctx extends any[], T> extends Defaultable<Ctx, T> {
41
33
  /**
42
34
  * Use a dynamic value expression as the default instead
43
35
  */
@@ -65,7 +57,7 @@ export interface Controllable {
65
57
  */
66
58
  uncontrolledProp?: string;
67
59
  }
68
- export type PropTypeBaseDefault<P, T> = PropTypeBase<ComponentControlContext<P>> & Defaultable<ComponentControlContext<P>, T> & Controllable;
60
+ export type PropTypeBaseDefault<P, T> = PropTypeBase<ComponentControlContext<P>> & ExtendedDefaultable<ComponentControlContext<P>, T> & Controllable;
69
61
  export type PlainStringType<P> = PropTypeBaseDefault<P, string> & PlainStringCore;
70
62
  export type CodeStringType<P> = PropTypeBaseDefault<P, string> & CodeStringCore;
71
63
  export type RichTextType<P> = PropTypeBaseDefault<P, string> & RichTextCore;
@@ -256,3 +248,4 @@ export type StringCompatType<P> = DateStringType<P> | StringType<P> | ChoiceType
256
248
  export type BoolCompatType<P> = BooleanType<P> | CustomType<P> | DataPickerType<P>;
257
249
  export type NumberCompatType<P> = NumberType<P> | CustomType<P> | DataPickerType<P>;
258
250
  export type RestrictPropType<T, P> = T extends string ? StringCompatType<P> : T extends boolean ? BoolCompatType<P> : T extends number ? NumberCompatType<P> : PropType<P>;
251
+ export {};
@@ -3,6 +3,13 @@ export interface ObjectTypeBaseCore<Ctx extends any[], Fields> {
3
3
  type: "object";
4
4
  fields?: Record<string, Fields>;
5
5
  nameFunc?: (item: any, ...args: Ctx) => string | undefined;
6
+ /**
7
+ * Controls how the object editor is displayed in the UI.
8
+ * - "popup": Opens a modal/popover to edit the object (default)
9
+ * - "inline": Renders the object fields directly inline in the property panel
10
+ * @default "popup"
11
+ */
12
+ display?: "inline" | "popup";
6
13
  }
7
14
  export interface ArrayTypeBaseCore<Ctx extends any[], Fields> {
8
15
  type: "array";
@@ -3,50 +3,50 @@ import { ArrayTypeBaseCore, ObjectTypeBaseCore } from "./container-types";
3
3
  import { DynamicCore, GraphQLCore, GraphQLValue } from "./misc-types";
4
4
  import { DateRangeStringsCore, DateStringCore, NumberTypeBaseCore, RichBooleanCore } from "./primitive-types";
5
5
  import { QueryBuilderCore } from "./query-builder-types";
6
- import { CommonTypeBase, ContextDependentConfig, GenericContext } from "./shared-controls";
6
+ import { CommonTypeBase, ContextDependentConfig, Defaultable, GenericContext } from "./shared-controls";
7
7
  import { Nullish } from "./type-utils";
8
8
  export type FunctionControlContext<P> = GenericContext<Partial<P>, // Partial function props
9
9
  any>;
10
10
  export type FunctionContextConfig<Args extends any[], R> = ContextDependentConfig<FunctionControlContext<Args>, R>;
11
- export interface BaseParam {
11
+ export interface ParamTypeBase extends CommonTypeBase {
12
12
  name: string;
13
- description?: string;
14
13
  isOptional?: boolean;
15
14
  isRestParameter?: boolean;
16
15
  }
17
- export interface FunctionMeta<Args extends any[] = any> extends CommonTypeBase<FunctionControlContext<Args>> {
16
+ export type ParamTypeBaseDefault<Ctx extends any[], T> = ParamTypeBase & Defaultable<Ctx, T>;
17
+ export interface FunctionMeta extends CommonTypeBase {
18
18
  name: string;
19
19
  rest?: boolean;
20
20
  }
21
- export interface PlainStringType<T extends Nullish<string> = string> extends BaseParam {
21
+ export interface PlainStringType<T extends Nullish<string> = string> extends ParamTypeBaseDefault<any[], T> {
22
22
  type: "string" | `'${T}'`;
23
23
  }
24
24
  export type StringType<P, T extends string = string> = "string" | PlainStringType<T> | ChoiceType<P, T> | DateStringType | DateRangeStringsType | AnyType;
25
- export interface PlainNumberType<T extends Nullish<number> = number> extends BaseParam {
25
+ export interface PlainNumberType<T extends Nullish<number> = number> extends ParamTypeBaseDefault<any[], T> {
26
26
  type: "number" | `${number extends T ? number : T}`;
27
27
  }
28
- export type NumberType<P, T extends number = number> = PlainNumberType<T> | (BaseParam & NumberTypeBaseCore<FunctionControlContext<P>>) | ChoiceType<P, T> | AnyType;
29
- export interface PlainBooleanType<T extends Nullish<boolean> = boolean> extends BaseParam {
28
+ export type NumberType<P, T extends number = number> = PlainNumberType<T> | (ParamTypeBaseDefault<FunctionControlContext<P>, T> & NumberTypeBaseCore<FunctionControlContext<P>>) | ChoiceType<P, T> | AnyType;
29
+ export interface PlainBooleanType<T extends Nullish<boolean> = boolean> extends ParamTypeBaseDefault<any[], T> {
30
30
  type: "boolean" | `${boolean extends T ? boolean : T}`;
31
31
  }
32
- export type BooleanType<P, T extends boolean = boolean> = PlainBooleanType<T> | (BaseParam & RichBooleanCore) | ChoiceType<P, T> | AnyType;
33
- export type GraphQLType<P> = BaseParam & GraphQLCore<FunctionControlContext<P>>;
34
- export interface PlainNullType extends BaseParam {
32
+ export type BooleanType<P, T extends boolean = boolean> = PlainBooleanType<T> | (ParamTypeBaseDefault<FunctionControlContext<P>, T> & RichBooleanCore) | ChoiceType<P, T> | AnyType;
33
+ export type GraphQLType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, any> & GraphQLCore<FunctionControlContext<P>>;
34
+ export interface PlainNullType extends ParamTypeBaseDefault<any[], null> {
35
35
  type: "null";
36
36
  }
37
37
  export type NullType = PlainNullType | AnyType;
38
- export interface PlainUndefinedType extends BaseParam {
38
+ export interface PlainUndefinedType extends ParamTypeBaseDefault<any[], undefined> {
39
39
  type: "undefined";
40
40
  }
41
41
  export type UndefinedType = PlainUndefinedType | AnyType;
42
- export type ObjectType<P> = BaseParam & ObjectTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
43
- export type ArrayType<P> = BaseParam & ArrayTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
44
- export type QueryBuilderType<P> = BaseParam & QueryBuilderCore<FunctionControlContext<P>>;
45
- export interface PlainAnyType extends BaseParam {
42
+ export type ObjectType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, Record<string, any>> & ObjectTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
43
+ export type ArrayType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, any[]> & ArrayTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
44
+ export type QueryBuilderType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, any> & QueryBuilderCore<FunctionControlContext<P>>;
45
+ export interface PlainAnyType extends ParamTypeBaseDefault<FunctionControlContext<any>, any> {
46
46
  type: "any";
47
47
  }
48
48
  export type AnyType = PlainAnyType;
49
- export interface PlainVoidType extends BaseParam {
49
+ export interface PlainVoidType extends ParamTypeBase {
50
50
  type: "void";
51
51
  }
52
52
  export type VoidType = PlainVoidType | AnyType;
@@ -54,7 +54,7 @@ type IsAny<T> = 0 extends 1 & T ? true : false;
54
54
  type CommonType<P, T> = T extends GraphQLValue ? GraphQLType<P> : T extends null ? NullType : T extends undefined ? UndefinedType : T extends Array<any> ? ArrayType<P> : T extends object ? ObjectType<P> : AnyType;
55
55
  type AnyTyping<P, T> = T extends string ? StringType<P, T> : T extends number ? NumberType<P, T> : T extends boolean ? BooleanType<P, T> : CommonType<P, T>;
56
56
  export type ToTuple<T> = T extends any[] ? T : never;
57
- export type FunctionChoiceType<Args, Opt extends ChoiceValue = ChoiceValue> = FunctionMeta<ToTuple<Args>> & ChoiceCore<FunctionControlContext<ToTuple<Args>>, Opt>;
57
+ export type FunctionChoiceType<Args, Opt extends ChoiceValue = ChoiceValue> = FunctionMeta & Defaultable<FunctionControlContext<ToTuple<Args>>, Opt | Opt[]> & ChoiceCore<FunctionControlContext<ToTuple<Args>>, Opt>;
58
58
  export interface SingleChoiceType<P, Opt extends ChoiceValue = ChoiceValue> extends FunctionChoiceType<P, Opt> {
59
59
  multiSelect?: false;
60
60
  }
@@ -65,9 +65,12 @@ export interface CustomChoiceType<P, Opt extends ChoiceValue = ChoiceValue> exte
65
65
  multiSelect: FunctionContextConfig<ToTuple<P>, boolean>;
66
66
  }
67
67
  export type ChoiceType<P, T extends ChoiceValue = ChoiceValue> = SingleChoiceType<P, T> | MultiChoiceType<P, T> | CustomChoiceType<P, T>;
68
- export type DateStringType = BaseParam & DateStringCore;
69
- export type DateRangeStringsType = BaseParam & DateRangeStringsCore;
70
- export interface DynamicType<P> extends BaseParam, DynamicCore<FunctionControlContext<ToTuple<P>>, ParamType<P, any>> {
68
+ export type DateStringType = ParamTypeBaseDefault<FunctionControlContext<string>, string> & DateStringCore;
69
+ export type DateRangeStringsType = ParamTypeBaseDefault<FunctionControlContext<[string, string]>, [
70
+ string,
71
+ string
72
+ ]> & DateRangeStringsCore;
73
+ export interface DynamicType<P> extends ParamTypeBase, DynamicCore<FunctionControlContext<ToTuple<P>>, ParamType<P, any>> {
71
74
  }
72
75
  export type RestrictedType<P, T> = IsAny<T> extends true ? AnyTyping<P, T> : [
73
76
  T
@@ -17,10 +17,14 @@ export type ControlExtras = {
17
17
  item?: any;
18
18
  };
19
19
  export type InferDataType<P> = P extends CanvasComponentProps<infer Data> ? Data : any;
20
- export interface CommonTypeBase<Ctx extends any[]> {
20
+ export interface CommonTypeBase {
21
21
  description?: string;
22
22
  helpText?: string;
23
- required?: boolean;
23
+ /**
24
+ * If true, will hide the prop in a collapsed section; good for props that
25
+ * should not usually be used.
26
+ */
27
+ advanced?: boolean;
24
28
  /**
25
29
  * If the user has chosen to use a dynamic expression for this prop, provide
26
30
  * a hint as to the expected values that the expression should evaluate to.
@@ -28,13 +32,19 @@ export interface CommonTypeBase<Ctx extends any[]> {
28
32
  * markdown in the text here.
29
33
  */
30
34
  exprHint?: string;
31
- /**
32
- * Function for whether this prop should be hidden in the right panel,
33
- * given the current props for this component
34
- */
35
- hidden?: ContextDependentConfig<Ctx, boolean>;
36
35
  /**
37
36
  * If true, does not allow the user to use a dynamic expression for this prop
38
37
  */
39
38
  disableDynamicValue?: boolean;
40
39
  }
40
+ export interface Defaultable<Ctx extends any[], T> {
41
+ /**
42
+ * Default value to set for this prop when the component is instantiated
43
+ */
44
+ defaultValue?: T;
45
+ /**
46
+ * Specify that default when no prop/param is provided,
47
+ * so the Plasmic user can see it in the studio UI
48
+ */
49
+ defaultValueHint?: T | ContextDependentConfig<Ctx, T | undefined>;
50
+ }
@@ -1 +1 @@
1
- export declare const hostVersion = "1.0.228";
1
+ export declare const hostVersion = "1.0.230";
@@ -4,20 +4,16 @@ import { ChoiceCore, ChoiceValue } from "./choice-type";
4
4
  import { ArrayTypeBaseCore, ObjectTypeBaseCore } from "./container-types";
5
5
  import { DataPickerValueType, DataSourceCore, DynamicCore, GraphQLCore, GraphQLValue, RichDataPickerCore, RichExprEditorCore } from "./misc-types";
6
6
  import { CardPickerCore, ClassCore, CodeStringCore, ColorCore, DateRangeStringsCore, DateStringCore, HrefCore, NumberTypeBaseCore, PlainNumberCore, PlainStringCore, RichBooleanCore, RichTextCore, SliderNumberCore, ThemeResetClassCore } from "./primitive-types";
7
- import { CommonTypeBase, ContextDependentConfig, ControlExtras, GenericContext, InferDataType } from "./shared-controls";
7
+ import { CommonTypeBase, ContextDependentConfig, ControlExtras, Defaultable, GenericContext, InferDataType } from "./shared-controls";
8
8
  export type ComponentControlContext<P> = GenericContext<P, // Full component props
9
9
  // Full component props
10
10
  InferDataType<P> | null, // Canvas data
11
11
  ControlExtras>;
12
12
  export type ComponentContextConfig<Props, R> = ContextDependentConfig<ComponentControlContext<Props>, R>;
13
- export interface PropTypeBase<Ctx extends any[]> extends CommonTypeBase<Ctx> {
13
+ export interface PropTypeBase<Ctx extends any[]> extends CommonTypeBase {
14
14
  displayName?: string;
15
+ required?: boolean;
15
16
  readOnly?: boolean | ContextDependentConfig<Ctx, boolean>;
16
- /**
17
- * If true, will hide the prop in a collapsed section; good for props that
18
- * should not usually be used.
19
- */
20
- advanced?: boolean;
21
17
  /**
22
18
  * If set to true, the component will be remounted when the prop value is updated.
23
19
  * (This behavior only applies to canvas)
@@ -27,17 +23,13 @@ export interface PropTypeBase<Ctx extends any[]> extends CommonTypeBase<Ctx> {
27
23
  * If true, the prop can't be overriden in different variants.
28
24
  */
29
25
  invariantable?: boolean;
30
- }
31
- export interface Defaultable<Ctx extends any[], T> {
32
26
  /**
33
- * Default value to set for this prop when the component is instantiated
34
- */
35
- defaultValue?: T;
36
- /**
37
- * If no prop is given, the component uses a default; specify what
38
- * that default is so the Plasmic user can see it in the studio UI
27
+ * Function for whether this prop should be hidden in the right panel,
28
+ * given the current props for this component
39
29
  */
40
- defaultValueHint?: T | ContextDependentConfig<Ctx, T | undefined>;
30
+ hidden?: ContextDependentConfig<Ctx, boolean>;
31
+ }
32
+ interface ExtendedDefaultable<Ctx extends any[], T> extends Defaultable<Ctx, T> {
41
33
  /**
42
34
  * Use a dynamic value expression as the default instead
43
35
  */
@@ -65,7 +57,7 @@ export interface Controllable {
65
57
  */
66
58
  uncontrolledProp?: string;
67
59
  }
68
- export type PropTypeBaseDefault<P, T> = PropTypeBase<ComponentControlContext<P>> & Defaultable<ComponentControlContext<P>, T> & Controllable;
60
+ export type PropTypeBaseDefault<P, T> = PropTypeBase<ComponentControlContext<P>> & ExtendedDefaultable<ComponentControlContext<P>, T> & Controllable;
69
61
  export type PlainStringType<P> = PropTypeBaseDefault<P, string> & PlainStringCore;
70
62
  export type CodeStringType<P> = PropTypeBaseDefault<P, string> & CodeStringCore;
71
63
  export type RichTextType<P> = PropTypeBaseDefault<P, string> & RichTextCore;
@@ -256,3 +248,4 @@ export type StringCompatType<P> = DateStringType<P> | StringType<P> | ChoiceType
256
248
  export type BoolCompatType<P> = BooleanType<P> | CustomType<P> | DataPickerType<P>;
257
249
  export type NumberCompatType<P> = NumberType<P> | CustomType<P> | DataPickerType<P>;
258
250
  export type RestrictPropType<T, P> = T extends string ? StringCompatType<P> : T extends boolean ? BoolCompatType<P> : T extends number ? NumberCompatType<P> : PropType<P>;
251
+ export {};
@@ -3,6 +3,13 @@ export interface ObjectTypeBaseCore<Ctx extends any[], Fields> {
3
3
  type: "object";
4
4
  fields?: Record<string, Fields>;
5
5
  nameFunc?: (item: any, ...args: Ctx) => string | undefined;
6
+ /**
7
+ * Controls how the object editor is displayed in the UI.
8
+ * - "popup": Opens a modal/popover to edit the object (default)
9
+ * - "inline": Renders the object fields directly inline in the property panel
10
+ * @default "popup"
11
+ */
12
+ display?: "inline" | "popup";
6
13
  }
7
14
  export interface ArrayTypeBaseCore<Ctx extends any[], Fields> {
8
15
  type: "array";
@@ -3,50 +3,50 @@ import { ArrayTypeBaseCore, ObjectTypeBaseCore } from "./container-types";
3
3
  import { DynamicCore, GraphQLCore, GraphQLValue } from "./misc-types";
4
4
  import { DateRangeStringsCore, DateStringCore, NumberTypeBaseCore, RichBooleanCore } from "./primitive-types";
5
5
  import { QueryBuilderCore } from "./query-builder-types";
6
- import { CommonTypeBase, ContextDependentConfig, GenericContext } from "./shared-controls";
6
+ import { CommonTypeBase, ContextDependentConfig, Defaultable, GenericContext } from "./shared-controls";
7
7
  import { Nullish } from "./type-utils";
8
8
  export type FunctionControlContext<P> = GenericContext<Partial<P>, // Partial function props
9
9
  any>;
10
10
  export type FunctionContextConfig<Args extends any[], R> = ContextDependentConfig<FunctionControlContext<Args>, R>;
11
- export interface BaseParam {
11
+ export interface ParamTypeBase extends CommonTypeBase {
12
12
  name: string;
13
- description?: string;
14
13
  isOptional?: boolean;
15
14
  isRestParameter?: boolean;
16
15
  }
17
- export interface FunctionMeta<Args extends any[] = any> extends CommonTypeBase<FunctionControlContext<Args>> {
16
+ export type ParamTypeBaseDefault<Ctx extends any[], T> = ParamTypeBase & Defaultable<Ctx, T>;
17
+ export interface FunctionMeta extends CommonTypeBase {
18
18
  name: string;
19
19
  rest?: boolean;
20
20
  }
21
- export interface PlainStringType<T extends Nullish<string> = string> extends BaseParam {
21
+ export interface PlainStringType<T extends Nullish<string> = string> extends ParamTypeBaseDefault<any[], T> {
22
22
  type: "string" | `'${T}'`;
23
23
  }
24
24
  export type StringType<P, T extends string = string> = "string" | PlainStringType<T> | ChoiceType<P, T> | DateStringType | DateRangeStringsType | AnyType;
25
- export interface PlainNumberType<T extends Nullish<number> = number> extends BaseParam {
25
+ export interface PlainNumberType<T extends Nullish<number> = number> extends ParamTypeBaseDefault<any[], T> {
26
26
  type: "number" | `${number extends T ? number : T}`;
27
27
  }
28
- export type NumberType<P, T extends number = number> = PlainNumberType<T> | (BaseParam & NumberTypeBaseCore<FunctionControlContext<P>>) | ChoiceType<P, T> | AnyType;
29
- export interface PlainBooleanType<T extends Nullish<boolean> = boolean> extends BaseParam {
28
+ export type NumberType<P, T extends number = number> = PlainNumberType<T> | (ParamTypeBaseDefault<FunctionControlContext<P>, T> & NumberTypeBaseCore<FunctionControlContext<P>>) | ChoiceType<P, T> | AnyType;
29
+ export interface PlainBooleanType<T extends Nullish<boolean> = boolean> extends ParamTypeBaseDefault<any[], T> {
30
30
  type: "boolean" | `${boolean extends T ? boolean : T}`;
31
31
  }
32
- export type BooleanType<P, T extends boolean = boolean> = PlainBooleanType<T> | (BaseParam & RichBooleanCore) | ChoiceType<P, T> | AnyType;
33
- export type GraphQLType<P> = BaseParam & GraphQLCore<FunctionControlContext<P>>;
34
- export interface PlainNullType extends BaseParam {
32
+ export type BooleanType<P, T extends boolean = boolean> = PlainBooleanType<T> | (ParamTypeBaseDefault<FunctionControlContext<P>, T> & RichBooleanCore) | ChoiceType<P, T> | AnyType;
33
+ export type GraphQLType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, any> & GraphQLCore<FunctionControlContext<P>>;
34
+ export interface PlainNullType extends ParamTypeBaseDefault<any[], null> {
35
35
  type: "null";
36
36
  }
37
37
  export type NullType = PlainNullType | AnyType;
38
- export interface PlainUndefinedType extends BaseParam {
38
+ export interface PlainUndefinedType extends ParamTypeBaseDefault<any[], undefined> {
39
39
  type: "undefined";
40
40
  }
41
41
  export type UndefinedType = PlainUndefinedType | AnyType;
42
- export type ObjectType<P> = BaseParam & ObjectTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
43
- export type ArrayType<P> = BaseParam & ArrayTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
44
- export type QueryBuilderType<P> = BaseParam & QueryBuilderCore<FunctionControlContext<P>>;
45
- export interface PlainAnyType extends BaseParam {
42
+ export type ObjectType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, Record<string, any>> & ObjectTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
43
+ export type ArrayType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, any[]> & ArrayTypeBaseCore<FunctionControlContext<P>, AnyTyping<P, any>>;
44
+ export type QueryBuilderType<P> = ParamTypeBaseDefault<FunctionControlContext<P>, any> & QueryBuilderCore<FunctionControlContext<P>>;
45
+ export interface PlainAnyType extends ParamTypeBaseDefault<FunctionControlContext<any>, any> {
46
46
  type: "any";
47
47
  }
48
48
  export type AnyType = PlainAnyType;
49
- export interface PlainVoidType extends BaseParam {
49
+ export interface PlainVoidType extends ParamTypeBase {
50
50
  type: "void";
51
51
  }
52
52
  export type VoidType = PlainVoidType | AnyType;
@@ -54,7 +54,7 @@ type IsAny<T> = 0 extends 1 & T ? true : false;
54
54
  type CommonType<P, T> = T extends GraphQLValue ? GraphQLType<P> : T extends null ? NullType : T extends undefined ? UndefinedType : T extends Array<any> ? ArrayType<P> : T extends object ? ObjectType<P> : AnyType;
55
55
  type AnyTyping<P, T> = T extends string ? StringType<P, T> : T extends number ? NumberType<P, T> : T extends boolean ? BooleanType<P, T> : CommonType<P, T>;
56
56
  export type ToTuple<T> = T extends any[] ? T : never;
57
- export type FunctionChoiceType<Args, Opt extends ChoiceValue = ChoiceValue> = FunctionMeta<ToTuple<Args>> & ChoiceCore<FunctionControlContext<ToTuple<Args>>, Opt>;
57
+ export type FunctionChoiceType<Args, Opt extends ChoiceValue = ChoiceValue> = FunctionMeta & Defaultable<FunctionControlContext<ToTuple<Args>>, Opt | Opt[]> & ChoiceCore<FunctionControlContext<ToTuple<Args>>, Opt>;
58
58
  export interface SingleChoiceType<P, Opt extends ChoiceValue = ChoiceValue> extends FunctionChoiceType<P, Opt> {
59
59
  multiSelect?: false;
60
60
  }
@@ -65,9 +65,12 @@ export interface CustomChoiceType<P, Opt extends ChoiceValue = ChoiceValue> exte
65
65
  multiSelect: FunctionContextConfig<ToTuple<P>, boolean>;
66
66
  }
67
67
  export type ChoiceType<P, T extends ChoiceValue = ChoiceValue> = SingleChoiceType<P, T> | MultiChoiceType<P, T> | CustomChoiceType<P, T>;
68
- export type DateStringType = BaseParam & DateStringCore;
69
- export type DateRangeStringsType = BaseParam & DateRangeStringsCore;
70
- export interface DynamicType<P> extends BaseParam, DynamicCore<FunctionControlContext<ToTuple<P>>, ParamType<P, any>> {
68
+ export type DateStringType = ParamTypeBaseDefault<FunctionControlContext<string>, string> & DateStringCore;
69
+ export type DateRangeStringsType = ParamTypeBaseDefault<FunctionControlContext<[string, string]>, [
70
+ string,
71
+ string
72
+ ]> & DateRangeStringsCore;
73
+ export interface DynamicType<P> extends ParamTypeBase, DynamicCore<FunctionControlContext<ToTuple<P>>, ParamType<P, any>> {
71
74
  }
72
75
  export type RestrictedType<P, T> = IsAny<T> extends true ? AnyTyping<P, T> : [
73
76
  T