@maltjoy/core-vue 3.10.0 → 3.11.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.
@@ -52,9 +52,9 @@ declare const _default: import("vue").DefineComponent<{
52
52
  default: string;
53
53
  };
54
54
  }>>, {
55
+ link: boolean;
55
56
  size: AvatarSizes;
56
57
  color: "primary" | "secondary" | "tertiary" | "quaternary" | "neutral" | "transparent";
57
- link: boolean;
58
58
  profile: "default" | "strategy";
59
59
  }, {}>;
60
60
  export default _default;
@@ -31,7 +31,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
31
31
  };
32
32
  /** Button or Link color variant */
33
33
  variant: {
34
- type: PropType<"primary" | "secondary" | "main" | "admin" | "ghost" | "white">;
34
+ type: PropType<"main" | "primary" | "secondary" | "admin" | "ghost" | "white">;
35
35
  default: string;
36
36
  validator(variant: ButtonVariants): boolean;
37
37
  };
@@ -72,7 +72,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
72
72
  };
73
73
  /** Button or Link color variant */
74
74
  variant: {
75
- type: PropType<"primary" | "secondary" | "main" | "admin" | "ghost" | "white">;
75
+ type: PropType<"main" | "primary" | "secondary" | "admin" | "ghost" | "white">;
76
76
  default: string;
77
77
  validator(variant: ButtonVariants): boolean;
78
78
  };
@@ -83,9 +83,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
83
83
  validator(variant: ButtonSizes): boolean;
84
84
  };
85
85
  }>>, {
86
- size: ButtonSizes;
87
86
  circle: boolean;
88
- variant: "primary" | "secondary" | "main" | "admin" | "ghost" | "white";
87
+ size: ButtonSizes;
88
+ variant: "main" | "primary" | "secondary" | "admin" | "ghost" | "white";
89
89
  loading: boolean;
90
90
  iconPosition: "left" | "right";
91
91
  }, {}>, {
@@ -23,7 +23,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
23
23
  label: StringConstructor;
24
24
  /** Overrides the default label size. See JoyLabel stories */
25
25
  labelSize: {
26
- type: PropType<"large" | "medium" | "small">;
26
+ type: PropType<"small" | "large" | "medium">;
27
27
  default: string;
28
28
  };
29
29
  /** If your component is not required, we can add a label to explicitely tell that it's not mandatory */
@@ -66,13 +66,13 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
66
66
  readonly required: boolean;
67
67
  readonly disabled: boolean;
68
68
  readonly invalid: boolean;
69
- readonly labelSize: "large" | "medium" | "small";
69
+ readonly labelSize: "small" | "large" | "medium";
70
70
  readonly requiredMark: boolean;
71
71
  readonly min: number;
72
72
  readonly modelValue: number;
73
73
  readonly step: number;
74
- readonly name?: string | undefined;
75
74
  readonly label?: string | undefined;
75
+ readonly name?: string | undefined;
76
76
  readonly id?: string | undefined;
77
77
  readonly optionalLabel?: string | undefined;
78
78
  readonly labelDecrement?: string | undefined;
@@ -106,7 +106,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
106
106
  label: StringConstructor;
107
107
  /** Overrides the default label size. See JoyLabel stories */
108
108
  labelSize: {
109
- type: PropType<"large" | "medium" | "small">;
109
+ type: PropType<"small" | "large" | "medium">;
110
110
  default: string;
111
111
  };
112
112
  /** If your component is not required, we can add a label to explicitely tell that it's not mandatory */
@@ -150,7 +150,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
150
150
  required: boolean;
151
151
  disabled: boolean;
152
152
  invalid: boolean;
153
- labelSize: "large" | "medium" | "small";
153
+ labelSize: "small" | "large" | "medium";
154
154
  requiredMark: boolean;
155
155
  min: number;
156
156
  modelValue: number;
@@ -9,7 +9,7 @@ declare const _default: import("vue").DefineComponent<{
9
9
  default: string;
10
10
  };
11
11
  size: {
12
- type: PropType<"xlarge" | "large" | "medium" | "small" | "xsmall" | "xxsmall">;
12
+ type: PropType<"small" | "xlarge" | "large" | "medium" | "xsmall" | "xxsmall">;
13
13
  default: string;
14
14
  };
15
15
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -22,11 +22,11 @@ declare const _default: import("vue").DefineComponent<{
22
22
  default: string;
23
23
  };
24
24
  size: {
25
- type: PropType<"xlarge" | "large" | "medium" | "small" | "xsmall" | "xxsmall">;
25
+ type: PropType<"small" | "xlarge" | "large" | "medium" | "xsmall" | "xxsmall">;
26
26
  default: string;
27
27
  };
28
28
  }>>, {
29
- size: "xlarge" | "large" | "medium" | "small" | "xsmall" | "xxsmall";
29
+ size: "small" | "xlarge" | "large" | "medium" | "xsmall" | "xxsmall";
30
30
  color: "primary" | "secondary" | "tertiary" | "quaternary" | "neutral" | "info" | "white" | "success" | "warning" | "error" | "brand-primary" | "brand-secondary";
31
31
  }, {}>;
32
32
  export default _default;
@@ -24,7 +24,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
24
24
  label: StringConstructor;
25
25
  /** Overrides the default label size. See JoyLabel stories */
26
26
  labelSize: {
27
- type: PropType<"large" | "medium" | "small">;
27
+ type: PropType<"small" | "large" | "medium">;
28
28
  default: string;
29
29
  };
30
30
  /** If your component is not required, we can add a label to explicitely tell that it's not mandatory */
@@ -37,6 +37,11 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
37
37
  modelValue: {
38
38
  type: (StringConstructor | NumberConstructor)[];
39
39
  };
40
+ modelModifiers: {
41
+ default: () => {
42
+ lazy: boolean;
43
+ };
44
+ };
40
45
  /** Display a cross icon on the right that enables to clear the field */
41
46
  clearable: {
42
47
  type: BooleanConstructor;
@@ -81,7 +86,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
81
86
  label: StringConstructor;
82
87
  /** Overrides the default label size. See JoyLabel stories */
83
88
  labelSize: {
84
- type: PropType<"large" | "medium" | "small">;
89
+ type: PropType<"small" | "large" | "medium">;
85
90
  default: string;
86
91
  };
87
92
  /** If your component is not required, we can add a label to explicitely tell that it's not mandatory */
@@ -94,6 +99,11 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
94
99
  modelValue: {
95
100
  type: (StringConstructor | NumberConstructor)[];
96
101
  };
102
+ modelModifiers: {
103
+ default: () => {
104
+ lazy: boolean;
105
+ };
106
+ };
97
107
  /** Display a cross icon on the right that enables to clear the field */
98
108
  clearable: {
99
109
  type: BooleanConstructor;
@@ -115,13 +125,16 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
115
125
  /** Adds a legend like symbol on the right of the component. Made for number based values */
116
126
  unit: StringConstructor;
117
127
  }>>, {
128
+ type: string;
118
129
  size: InputSizes;
119
130
  required: boolean;
120
- type: string;
121
131
  disabled: boolean;
122
132
  invalid: boolean;
123
- labelSize: "large" | "medium" | "small";
133
+ labelSize: "small" | "large" | "medium";
124
134
  requiredMark: boolean;
135
+ modelModifiers: {
136
+ lazy: boolean;
137
+ };
125
138
  clearable: boolean;
126
139
  }, {}>, {
127
140
  default: (_: {}) => any;
@@ -2,7 +2,7 @@ import { PropType } from 'vue';
2
2
  import { LabelSizes } from './JoyLabel.types';
3
3
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
4
4
  size: {
5
- type: PropType<"large" | "medium" | "small">;
5
+ type: PropType<"small" | "large" | "medium">;
6
6
  default: string;
7
7
  validator(size: LabelSizes): boolean;
8
8
  };
@@ -20,7 +20,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
20
20
  text: StringConstructor;
21
21
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
22
22
  size: {
23
- type: PropType<"large" | "medium" | "small">;
23
+ type: PropType<"small" | "large" | "medium">;
24
24
  default: string;
25
25
  validator(size: LabelSizes): boolean;
26
26
  };
@@ -37,7 +37,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
37
37
  };
38
38
  text: StringConstructor;
39
39
  }>>, {
40
- size: "large" | "medium" | "small";
40
+ size: "small" | "large" | "medium";
41
41
  required: boolean;
42
42
  tagName: "label" | "legend";
43
43
  }, {}>, {
@@ -31,7 +31,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
31
31
  };
32
32
  label: StringConstructor;
33
33
  labelSize: {
34
- type: PropType<"large" | "medium" | "small">;
34
+ type: PropType<"small" | "large" | "medium">;
35
35
  default: string;
36
36
  };
37
37
  optionalLabel: StringConstructor;
@@ -58,7 +58,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
58
58
  };
59
59
  label: StringConstructor;
60
60
  labelSize: {
61
- type: PropType<"large" | "medium" | "small">;
61
+ type: PropType<"small" | "large" | "medium">;
62
62
  default: string;
63
63
  };
64
64
  optionalLabel: StringConstructor;
@@ -71,7 +71,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
71
71
  }, {
72
72
  required: boolean;
73
73
  value: any[];
74
- labelSize: "large" | "medium" | "small";
74
+ labelSize: "small" | "large" | "medium";
75
75
  requiredMark: boolean;
76
76
  }, {}>, {
77
77
  checkbox: (_: Option) => any;
@@ -21,7 +21,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
21
21
  };
22
22
  label: StringConstructor;
23
23
  labelSize: {
24
- type: PropType<"large" | "medium" | "small">;
24
+ type: PropType<"small" | "large" | "medium">;
25
25
  };
26
26
  optionalLabel: StringConstructor;
27
27
  requiredMark: {
@@ -29,8 +29,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
29
29
  default: boolean;
30
30
  };
31
31
  modelValue: {
32
- type: StringConstructor;
33
- default: string;
32
+ type: (StringConstructor | NumberConstructor)[];
34
33
  };
35
34
  size: {
36
35
  type: PropType<SelectSizes>;
@@ -59,7 +58,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
59
58
  };
60
59
  label: StringConstructor;
61
60
  labelSize: {
62
- type: PropType<"large" | "medium" | "small">;
61
+ type: PropType<"small" | "large" | "medium">;
63
62
  };
64
63
  optionalLabel: StringConstructor;
65
64
  requiredMark: {
@@ -67,8 +66,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
67
66
  default: boolean;
68
67
  };
69
68
  modelValue: {
70
- type: StringConstructor;
71
- default: string;
69
+ type: (StringConstructor | NumberConstructor)[];
72
70
  };
73
71
  size: {
74
72
  type: PropType<SelectSizes>;
@@ -82,7 +80,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
82
80
  disabled: boolean;
83
81
  invalid: boolean;
84
82
  requiredMark: boolean;
85
- modelValue: string;
86
83
  }, {}>, {
87
84
  'select-label': (_: {}) => any;
88
85
  default: (_: {}) => any;
@@ -39,7 +39,7 @@ declare const _default: import("vue").DefineComponent<{
39
39
  };
40
40
  label: StringConstructor;
41
41
  labelSize: {
42
- type: PropType<"large" | "medium" | "small">;
42
+ type: PropType<"small" | "large" | "medium">;
43
43
  default: string;
44
44
  };
45
45
  optionalLabel: StringConstructor;
@@ -74,7 +74,7 @@ declare const _default: import("vue").DefineComponent<{
74
74
  };
75
75
  label: StringConstructor;
76
76
  labelSize: {
77
- type: PropType<"large" | "medium" | "small">;
77
+ type: PropType<"small" | "large" | "medium">;
78
78
  default: string;
79
79
  };
80
80
  optionalLabel: StringConstructor;
@@ -87,7 +87,7 @@ declare const _default: import("vue").DefineComponent<{
87
87
  }, {
88
88
  required: boolean;
89
89
  value: string | unknown[];
90
- labelSize: "large" | "medium" | "small";
90
+ labelSize: "small" | "large" | "medium";
91
91
  requiredMark: boolean;
92
92
  multiple: boolean;
93
93
  fullWidth: boolean;
@@ -69,8 +69,8 @@ declare const _default: import("vue").DefineComponent<{
69
69
  default: boolean;
70
70
  };
71
71
  }>>, {
72
- size: TagSizes;
73
72
  link: boolean;
73
+ size: TagSizes;
74
74
  variant: "primary" | "secondary" | "important" | "inactive" | "pending" | "pricing";
75
75
  selected: boolean;
76
76
  selectable: boolean;
@@ -13,6 +13,11 @@ declare const _default: import("vue").DefineComponent<{
13
13
  default(): never[];
14
14
  required: true;
15
15
  };
16
+ /** You can either pass this property to make all generated tags removable, or pass the `removable: true` to each tag in "tags" prop. */
17
+ removable: {
18
+ type: BooleanConstructor;
19
+ default: boolean;
20
+ };
16
21
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
17
22
  align: {
18
23
  type: PropType<"left" | "right" | "center">;
@@ -26,7 +31,13 @@ declare const _default: import("vue").DefineComponent<{
26
31
  default(): never[];
27
32
  required: true;
28
33
  };
34
+ /** You can either pass this property to make all generated tags removable, or pass the `removable: true` to each tag in "tags" prop. */
35
+ removable: {
36
+ type: BooleanConstructor;
37
+ default: boolean;
38
+ };
29
39
  }>>, {
40
+ removable: boolean;
30
41
  align: "left" | "right" | "center";
31
42
  tags: TJoyTagsList;
32
43
  }, {}>;
@@ -20,7 +20,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
20
20
  };
21
21
  label: StringConstructor;
22
22
  labelSize: {
23
- type: PropType<"large" | "medium" | "small">;
23
+ type: PropType<"small" | "large" | "medium">;
24
24
  default: string;
25
25
  };
26
26
  optionalLabel: StringConstructor;
@@ -32,6 +32,11 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
32
32
  type: StringConstructor;
33
33
  default: string;
34
34
  };
35
+ modelModifiers: {
36
+ default: () => {
37
+ lazy: boolean;
38
+ };
39
+ };
35
40
  autogrow: {
36
41
  type: BooleanConstructor;
37
42
  default: boolean;
@@ -70,7 +75,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
70
75
  };
71
76
  label: StringConstructor;
72
77
  labelSize: {
73
- type: PropType<"large" | "medium" | "small">;
78
+ type: PropType<"small" | "large" | "medium">;
74
79
  default: string;
75
80
  };
76
81
  optionalLabel: StringConstructor;
@@ -82,6 +87,11 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
82
87
  type: StringConstructor;
83
88
  default: string;
84
89
  };
90
+ modelModifiers: {
91
+ default: () => {
92
+ lazy: boolean;
93
+ };
94
+ };
85
95
  autogrow: {
86
96
  type: BooleanConstructor;
87
97
  default: boolean;
@@ -99,9 +109,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
99
109
  required: boolean;
100
110
  disabled: boolean;
101
111
  invalid: boolean;
102
- labelSize: "large" | "medium" | "small";
112
+ labelSize: "small" | "large" | "medium";
103
113
  requiredMark: boolean;
104
114
  modelValue: string;
115
+ modelModifiers: {
116
+ lazy: boolean;
117
+ };
105
118
  autogrow: boolean;
106
119
  }, {}>, {
107
120
  default: (_: {}) => any;
@@ -6,3 +6,5 @@ export declare const DIRECTION_WRAPPER: readonly ["row", "column"];
6
6
  export type DirectionWrapper = (typeof DIRECTION_WRAPPER)[number];
7
7
  export declare const WRAP_WRAPPER: readonly ["nowrap", "wrap"];
8
8
  export type WrapWrapper = (typeof WRAP_WRAPPER)[number];
9
+ export declare const GAP_WRAPPER: readonly ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
10
+ export type GapWrapper = (typeof GAP_WRAPPER)[number];
@@ -29,6 +29,16 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
29
29
  type: BooleanConstructor;
30
30
  default: boolean;
31
31
  };
32
+ /** Gap between the columns. Refers to CSS column-gap. Value is based on spacing tokens. */
33
+ columnGap: {
34
+ type: PropType<"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12">;
35
+ default: string;
36
+ };
37
+ /** Gap between the rows. Refers to CSS row-gap. Value is based on spacing tokens. */
38
+ rowGap: {
39
+ type: PropType<"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12">;
40
+ default: string;
41
+ };
32
42
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
33
43
  /** Horizontal spread. Refers to CSS flex justify-content. */
34
44
  justify: {
@@ -59,6 +69,16 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
59
69
  type: BooleanConstructor;
60
70
  default: boolean;
61
71
  };
72
+ /** Gap between the columns. Refers to CSS column-gap. Value is based on spacing tokens. */
73
+ columnGap: {
74
+ type: PropType<"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12">;
75
+ default: string;
76
+ };
77
+ /** Gap between the rows. Refers to CSS row-gap. Value is based on spacing tokens. */
78
+ rowGap: {
79
+ type: PropType<"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12">;
80
+ default: string;
81
+ };
62
82
  }>>, {
63
83
  wrap: "nowrap" | "wrap";
64
84
  align: "center" | "flex-start" | "flex-end" | "stretch";
@@ -66,6 +86,8 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
66
86
  justify: "center" | "space-between" | "flex-start" | "flex-end";
67
87
  itemStretch: boolean;
68
88
  noMargin: boolean;
89
+ columnGap: "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12";
90
+ rowGap: "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12";
69
91
  }, {}>, {
70
92
  default: (_: {}) => any;
71
93
  }>;
@@ -1,3 +1,4 @@
1
+ import VJoyAvailability from '@/components/JoyAvailability/VJoyAvailability.vue';
1
2
  import VJoyAvatar from '@/components/JoyAvatar/VJoyAvatar.vue';
2
3
  import VJoyAvatarsList from '@/components/JoyAvatarsList/VJoyAvatarsList.vue';
3
4
  import VJoyBadge from '@/components/JoyBadge/VJoyBadge.vue';
@@ -28,4 +29,4 @@ import VJoyTagsList from '@/components/JoyTagsList/VJoyTagsList.vue';
28
29
  import VJoyTemplate from '@/components/JoyTemplate/VJoyTemplate.vue';
29
30
  import VJoyTextarea from '@/components/JoyTextarea/VJoyTextarea.vue';
30
31
  import VJoyToggle from '@/components/JoyToggle/VJoyToggle.vue';
31
- export { VJoyAvatar, VJoyAvatarsList, VJoyBadge, VJoyButton, VJoyCheckbox, VJoyCounter, VJoyDropdown, VJoyDropdownList, VJoyFormError, VJoyHighlight, VJoyIcon, VJoyInput, VJoyLabel, VJoyLink, VJoyMultiCheckbox, VJoyPanel, VJoyPanelSection, VJoyRadio, VJoyRadioGroup, VJoyScreenLoader, VJoySelect, VJoySelectableItem, VJoySelectableItemGroup, VJoySpinner, VJoyTag, VJoyTagsList, VJoyTemplate, VJoyTextarea, VJoyToggle, VJoyWrapper, };
32
+ export { VJoyAvailability, VJoyAvatar, VJoyAvatarsList, VJoyBadge, VJoyButton, VJoyCheckbox, VJoyCounter, VJoyDropdown, VJoyDropdownList, VJoyFormError, VJoyHighlight, VJoyIcon, VJoyInput, VJoyLabel, VJoyLink, VJoyMultiCheckbox, VJoyPanel, VJoyPanelSection, VJoyRadio, VJoyRadioGroup, VJoyScreenLoader, VJoySelect, VJoySelectableItem, VJoySelectableItemGroup, VJoySpinner, VJoyTag, VJoyTagsList, VJoyTemplate, VJoyTextarea, VJoyToggle, VJoyWrapper, };
@@ -61,7 +61,7 @@ export declare const CHECKBOX_BASED_PROPS: {
61
61
  export declare const LABEL_BASED_PROPS: {
62
62
  label: StringConstructor;
63
63
  labelSize: {
64
- type: PropType<"large" | "medium" | "small">;
64
+ type: PropType<"small" | "large" | "medium">;
65
65
  default: string;
66
66
  };
67
67
  optionalLabel: StringConstructor;