@dmptool/types 1.1.2 → 1.2.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.
Files changed (78) hide show
  1. package/README.md +119 -47
  2. package/dist/answers/__tests__/answers.spec.js +20 -28
  3. package/dist/answers/__tests__/usage.spec.d.ts +1 -0
  4. package/dist/answers/__tests__/usage.spec.js +175 -0
  5. package/dist/answers/answer.d.ts +12 -15
  6. package/dist/answers/answer.js +3 -4
  7. package/dist/answers/dateAnswers.d.ts +30 -30
  8. package/dist/answers/dateAnswers.js +6 -5
  9. package/dist/answers/graphQLAnswers.d.ts +25 -25
  10. package/dist/answers/graphQLAnswers.js +4 -4
  11. package/dist/answers/index.d.ts +860 -1088
  12. package/dist/answers/index.js +2 -2
  13. package/dist/answers/numberAnswers.d.ts +41 -41
  14. package/dist/answers/numberAnswers.js +8 -8
  15. package/dist/answers/optionBasedAnswers.d.ts +55 -55
  16. package/dist/answers/optionBasedAnswers.js +10 -10
  17. package/dist/answers/tableAnswers.d.ts +811 -1772
  18. package/dist/answers/tableAnswers.js +12 -8
  19. package/dist/answers/textAnswers.d.ts +44 -44
  20. package/dist/answers/textAnswers.js +8 -8
  21. package/dist/questions/__tests__/graphQLQuestions.spec.js +6 -4
  22. package/dist/questions/__tests__/optionBasedQuestions.spec.js +4 -12
  23. package/dist/questions/__tests__/usage.spec.d.ts +8 -0
  24. package/dist/questions/__tests__/usage.spec.js +312 -0
  25. package/dist/questions/dateQuestions.d.ts +90 -101
  26. package/dist/questions/dateQuestions.js +15 -34
  27. package/dist/questions/graphQLQuestions.d.ts +176 -182
  28. package/dist/questions/graphQLQuestions.js +44 -45
  29. package/dist/questions/index.d.ts +1791 -2170
  30. package/dist/questions/index.js +2 -2
  31. package/dist/questions/numberQuestions.d.ts +126 -142
  32. package/dist/questions/numberQuestions.js +11 -45
  33. package/dist/questions/optionBasedQuestions.d.ts +197 -225
  34. package/dist/questions/optionBasedQuestions.js +24 -88
  35. package/dist/questions/question.d.ts +24 -56
  36. package/dist/questions/question.js +78 -18
  37. package/dist/questions/tableQuestions.d.ts +2637 -2930
  38. package/dist/questions/tableQuestions.js +9 -21
  39. package/dist/questions/textQuestions.d.ts +125 -145
  40. package/dist/questions/textQuestions.js +16 -57
  41. package/dist/schemas/affiliationSearchAnswer.schema.json +9 -12
  42. package/dist/schemas/affiliationSearchQuestion.schema.json +57 -50
  43. package/dist/schemas/anyAnswer.schema.json +228 -237
  44. package/dist/schemas/anyQuestion.schema.json +349 -517
  45. package/dist/schemas/anyTableColumnAnswer.schema.json +93 -106
  46. package/dist/schemas/anyTableColumnQuestion.schema.json +259 -382
  47. package/dist/schemas/booleanAnswer.schema.json +8 -11
  48. package/dist/schemas/booleanQuestion.schema.json +9 -15
  49. package/dist/schemas/checkboxesAnswer.schema.json +13 -14
  50. package/dist/schemas/checkboxesQuestion.schema.json +18 -24
  51. package/dist/schemas/currencyAnswer.schema.json +8 -11
  52. package/dist/schemas/currencyQuestion.schema.json +13 -17
  53. package/dist/schemas/dateAnswer.schema.json +8 -11
  54. package/dist/schemas/dateQuestion.schema.json +9 -15
  55. package/dist/schemas/dateRangeAnswer.schema.json +16 -21
  56. package/dist/schemas/dateRangeQuestion.schema.json +40 -21
  57. package/dist/schemas/emailAnswer.schema.json +8 -11
  58. package/dist/schemas/emailQuestion.schema.json +11 -16
  59. package/dist/schemas/filteredSearchQuestion.schema.json +0 -3
  60. package/dist/schemas/multiselectBoxAnswer.schema.json +13 -14
  61. package/dist/schemas/multiselectBoxQuestion.schema.json +20 -25
  62. package/dist/schemas/numberAnswer.schema.json +8 -11
  63. package/dist/schemas/numberQuestion.schema.json +11 -16
  64. package/dist/schemas/numberRangeAnswer.schema.json +17 -22
  65. package/dist/schemas/numberRangeQuestion.schema.json +22 -21
  66. package/dist/schemas/radioButtonsAnswer.schema.json +8 -11
  67. package/dist/schemas/radioButtonsQuestion.schema.json +18 -24
  68. package/dist/schemas/selectBoxAnswer.schema.json +8 -11
  69. package/dist/schemas/selectBoxQuestion.schema.json +20 -25
  70. package/dist/schemas/tableAnswer.schema.json +337 -343
  71. package/dist/schemas/tableQuestion.schema.json +279 -416
  72. package/dist/schemas/textAnswer.schema.json +8 -11
  73. package/dist/schemas/textAreaAnswer.schema.json +8 -11
  74. package/dist/schemas/textAreaQuestion.schema.json +13 -17
  75. package/dist/schemas/textQuestion.schema.json +9 -15
  76. package/dist/schemas/urlAnswer.schema.json +8 -11
  77. package/dist/schemas/urlQuestion.schema.json +9 -15
  78. package/package.json +1 -1
@@ -3,117 +3,53 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MultiselectBoxQuestionSchema = exports.SelectBoxQuestionSchema = exports.RadioButtonsQuestionSchema = exports.CheckboxesQuestionSchema = exports.BooleanQuestionSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const question_1 = require("./question");
6
+ const BaseAttributes = question_1.QuestionSchema.shape.attributes;
6
7
  // A select box, radio buttons, or checkboxes option
7
8
  const OptionSchema = zod_1.z.object({
8
- label: zod_1.z.string(), // The label of the option
9
- value: zod_1.z.string(), // The value of the option
9
+ label: zod_1.z.string().default('Option A'),
10
+ value: zod_1.z.string().default('a'),
10
11
  });
11
- const BaseAttributes = question_1.QuestionSchema.shape.attributes;
12
- const BaseMeta = question_1.QuestionSchema.shape.meta;
13
12
  const CheckedOptionSchema = OptionSchema.merge(zod_1.z.object({
14
- checked: zod_1.z.boolean().optional(),
13
+ checked: zod_1.z.boolean().default(false),
15
14
  }));
16
15
  const SelectedOptionSchema = OptionSchema.merge(zod_1.z.object({
17
- selected: zod_1.z.boolean().optional(),
16
+ selected: zod_1.z.boolean().default(false),
17
+ }));
18
+ const selectBoxAttributes = BaseAttributes.merge(zod_1.z.object({
19
+ multiple: zod_1.z.boolean().default(false)
18
20
  }));
19
21
  // Yes/No (boolean) question
20
- const defaultBooleanJSON = {
21
- attributes: Object.assign(Object.assign({}, question_1.defaultAttributes), { checked: false }),
22
- meta: Object.assign({}, question_1.defaultMeta)
23
- };
24
22
  exports.BooleanQuestionSchema = question_1.QuestionSchema.merge(zod_1.z.object({
25
23
  type: zod_1.z.literal('boolean'),
26
- attributes: BaseAttributes.unwrap().merge(zod_1.z.object({
27
- checked: zod_1.z.boolean().optional(),
28
- })).optional(),
29
- meta: BaseMeta.unwrap().merge(zod_1.z.object({
30
- title: zod_1.z.literal('Yes/No Field').optional(),
31
- usageDescription: zod_1.z.literal('For questions that require a simple Yes/No response.').optional(),
32
- defaultJSON: zod_1.z.literal(JSON.stringify(defaultBooleanJSON, null, 2)).optional(),
33
- })).optional()
24
+ attributes: BaseAttributes.merge(zod_1.z.object({
25
+ checked: zod_1.z.boolean().default(false),
26
+ })).default({})
34
27
  }));
35
28
  // Check boxes question and answer
36
- const defaultCheckboxesJSON = {
37
- type: 'checkBoxes',
38
- attributes: Object.assign({}, question_1.defaultAttributes),
39
- options: [
40
- {
41
- label: 'Option 1',
42
- value: '1',
43
- checked: false
44
- }
45
- ],
46
- meta: Object.assign({}, question_1.defaultMeta)
47
- };
48
29
  exports.CheckboxesQuestionSchema = question_1.QuestionSchema.merge(zod_1.z.object({
49
- type: zod_1.z.literal('checkBoxes'), // The type of question
50
- options: zod_1.z.array(CheckedOptionSchema),
51
- meta: BaseMeta.unwrap().merge(zod_1.z.object({
52
- title: zod_1.z.literal('Check Boxes').optional(),
53
- usageDescription: zod_1.z.literal('For multiple choice questions where users can select multiple options.').optional(),
54
- defaultJSON: zod_1.z.literal(JSON.stringify(defaultCheckboxesJSON, null, 2)).optional(),
55
- })).optional()
30
+ type: zod_1.z.literal('checkBoxes'),
31
+ options: zod_1.z.array(CheckedOptionSchema).default([{}]),
32
+ attributes: BaseAttributes.default({}),
56
33
  }));
57
34
  // Radio buttons question and answer
58
- const defaultRadioButtonsJSON = {
59
- type: 'radioButtons',
60
- attributes: Object.assign({}, question_1.defaultAttributes),
61
- options: [
62
- {
63
- label: 'Option 1',
64
- value: 'option1',
65
- selected: false
66
- }
67
- ],
68
- meta: Object.assign({}, question_1.defaultMeta)
69
- };
70
35
  exports.RadioButtonsQuestionSchema = question_1.QuestionSchema.merge(zod_1.z.object({
71
- type: zod_1.z.literal('radioButtons'), // The type of question
72
- options: zod_1.z.array(SelectedOptionSchema),
73
- meta: BaseMeta.unwrap().merge(zod_1.z.object({
74
- title: zod_1.z.literal('Radio Buttons').optional(),
75
- usageDescription: zod_1.z.literal('For multiple choice questions where users select just one option.').optional(),
76
- defaultJSON: zod_1.z.literal(JSON.stringify(defaultRadioButtonsJSON, null, 2)).optional(),
77
- })).optional()
36
+ type: zod_1.z.literal('radioButtons'),
37
+ options: zod_1.z.array(SelectedOptionSchema).default([{}]),
38
+ attributes: BaseAttributes.default({})
78
39
  }));
79
40
  // Select box question and answer
80
- const selectBoxAttributes = BaseAttributes.unwrap().merge(zod_1.z.object({
81
- multiple: zod_1.z.boolean()
82
- }));
83
- const defaultSelectBoxJSON = {
84
- type: 'selectBox',
85
- attributes: Object.assign(Object.assign({}, question_1.defaultAttributes), { multiple: false }),
86
- options: [
87
- {
88
- label: 'Option 1',
89
- value: 'option1',
90
- }
91
- ],
92
- meta: Object.assign({}, question_1.defaultMeta)
93
- };
94
41
  exports.SelectBoxQuestionSchema = question_1.QuestionSchema.merge(zod_1.z.object({
95
- type: zod_1.z.literal('selectBox'), // The type of question
96
- options: zod_1.z.array(SelectedOptionSchema),
42
+ type: zod_1.z.literal('selectBox'),
43
+ options: zod_1.z.array(SelectedOptionSchema).default([{}]),
97
44
  attributes: selectBoxAttributes.merge(zod_1.z.object({
98
- multiple: zod_1.z.literal(false) // Whether to allow multiple selections (default is false)
99
- })),
100
- meta: BaseMeta.unwrap().merge(zod_1.z.object({
101
- title: zod_1.z.literal('Select Box').optional(),
102
- usageDescription: zod_1.z.literal('For questions where users select one option from a list.').optional(),
103
- defaultJSON: zod_1.z.literal(JSON.stringify(defaultSelectBoxJSON, null, 2)).optional(),
104
- })).optional()
45
+ multiple: zod_1.z.literal(false)
46
+ })).default({ multiple: false })
105
47
  }));
106
48
  // Multi-select box question and answer
107
- const defaultMultiselectBoxJSON = defaultSelectBoxJSON;
108
- defaultMultiselectBoxJSON.attributes.multiple = true;
109
49
  exports.MultiselectBoxQuestionSchema = exports.SelectBoxQuestionSchema.merge(zod_1.z.object({
110
50
  type: zod_1.z.literal('multiselectBox'),
51
+ options: zod_1.z.array(SelectedOptionSchema).default([{}]),
111
52
  attributes: selectBoxAttributes.merge(zod_1.z.object({
112
- multiple: zod_1.z.literal(true) // Whether to allow multiple selections (default is false)
113
- })),
114
- meta: BaseMeta.unwrap().merge(zod_1.z.object({
115
- title: zod_1.z.literal('Multi-select Box').optional(),
116
- usageDescription: zod_1.z.literal('For questions where multiple answers are valid. Allows users to select several options from a predefined list, providing flexibility in responses.').optional(),
117
- defaultJSON: zod_1.z.literal(JSON.stringify(defaultMultiselectBoxJSON, null, 2)).optional(),
118
- })).optional(),
53
+ multiple: zod_1.z.literal(true)
54
+ })).default({ multiple: true })
119
55
  }));
@@ -1,40 +1,9 @@
1
1
  import { z } from "zod";
2
2
  export declare const CURRENT_SCHEMA_VERSION = "1.0";
3
- export declare const QuestionTypesEnum: z.ZodEnum<["affiliationSearch", "boolean", "checkBoxes", "currency", "date", "dateRange", "email", "filteredSearch", "multiselectBox", "number", "numberRange", "radioButtons", "selectBox", "table", "text", "textArea", "url"]>;
4
- export declare const defaultMeta: z.infer<typeof DefaultMetaSchema>;
5
- export declare const defaultAttributes: z.infer<typeof DefaultAttributesSchema>;
6
- declare const DefaultMetaSchema: z.ZodObject<{
7
- schemaVersion: z.ZodLiteral<"1.0">;
8
- title: z.ZodOptional<z.ZodString>;
9
- usageDescription: z.ZodOptional<z.ZodString>;
10
- defaultJSON: z.ZodOptional<z.ZodString>;
11
- }, "strip", z.ZodTypeAny, {
12
- schemaVersion: "1.0";
13
- title?: string | undefined;
14
- usageDescription?: string | undefined;
15
- defaultJSON?: string | undefined;
16
- }, {
17
- schemaVersion: "1.0";
18
- title?: string | undefined;
19
- usageDescription?: string | undefined;
20
- defaultJSON?: string | undefined;
21
- }>;
22
- declare const DefaultAttributesSchema: z.ZodObject<{
23
- label: z.ZodOptional<z.ZodString>;
24
- help: z.ZodOptional<z.ZodString>;
25
- labelTranslationKey: z.ZodOptional<z.ZodString>;
26
- }, "strip", z.ZodTypeAny, {
27
- label?: string | undefined;
28
- help?: string | undefined;
29
- labelTranslationKey?: string | undefined;
30
- }, {
31
- label?: string | undefined;
32
- help?: string | undefined;
33
- labelTranslationKey?: string | undefined;
34
- }>;
3
+ export declare const QuestionFormatsEnum: z.ZodEnum<["affiliationSearch", "boolean", "checkBoxes", "currency", "date", "dateRange", "email", "multiselectBox", "number", "numberRange", "radioButtons", "selectBox", "table", "text", "textArea", "url"]>;
35
4
  export declare const QuestionSchema: z.ZodObject<{
36
- type: z.ZodEnum<["affiliationSearch", "boolean", "checkBoxes", "currency", "date", "dateRange", "email", "filteredSearch", "multiselectBox", "number", "numberRange", "radioButtons", "selectBox", "table", "text", "textArea", "url"]>;
37
- attributes: z.ZodOptional<z.ZodObject<{
5
+ type: z.ZodEnum<["affiliationSearch", "boolean", "checkBoxes", "currency", "date", "dateRange", "email", "multiselectBox", "number", "numberRange", "radioButtons", "selectBox", "table", "text", "textArea", "url"]>;
6
+ attributes: z.ZodObject<{
38
7
  label: z.ZodOptional<z.ZodString>;
39
8
  help: z.ZodOptional<z.ZodString>;
40
9
  labelTranslationKey: z.ZodOptional<z.ZodString>;
@@ -46,49 +15,48 @@ export declare const QuestionSchema: z.ZodObject<{
46
15
  label?: string | undefined;
47
16
  help?: string | undefined;
48
17
  labelTranslationKey?: string | undefined;
49
- }>>;
50
- meta: z.ZodOptional<z.ZodObject<{
51
- schemaVersion: z.ZodLiteral<"1.0">;
18
+ }>;
19
+ meta: z.ZodDefault<z.ZodObject<{
20
+ schemaVersion: z.ZodDefault<z.ZodString>;
52
21
  title: z.ZodOptional<z.ZodString>;
53
22
  usageDescription: z.ZodOptional<z.ZodString>;
54
- defaultJSON: z.ZodOptional<z.ZodString>;
55
23
  }, "strip", z.ZodTypeAny, {
56
- schemaVersion: "1.0";
24
+ schemaVersion: string;
57
25
  title?: string | undefined;
58
26
  usageDescription?: string | undefined;
59
- defaultJSON?: string | undefined;
60
27
  }, {
61
- schemaVersion: "1.0";
28
+ schemaVersion?: string | undefined;
62
29
  title?: string | undefined;
63
30
  usageDescription?: string | undefined;
64
- defaultJSON?: string | undefined;
65
31
  }>>;
66
32
  }, "strip", z.ZodTypeAny, {
67
- type: "number" | "boolean" | "affiliationSearch" | "checkBoxes" | "currency" | "date" | "dateRange" | "email" | "filteredSearch" | "multiselectBox" | "numberRange" | "radioButtons" | "selectBox" | "table" | "text" | "textArea" | "url";
68
- attributes?: {
33
+ type: "number" | "boolean" | "affiliationSearch" | "checkBoxes" | "currency" | "date" | "dateRange" | "email" | "multiselectBox" | "numberRange" | "radioButtons" | "selectBox" | "table" | "text" | "textArea" | "url";
34
+ attributes: {
69
35
  label?: string | undefined;
70
36
  help?: string | undefined;
71
37
  labelTranslationKey?: string | undefined;
72
- } | undefined;
73
- meta?: {
74
- schemaVersion: "1.0";
38
+ };
39
+ meta: {
40
+ schemaVersion: string;
75
41
  title?: string | undefined;
76
42
  usageDescription?: string | undefined;
77
- defaultJSON?: string | undefined;
78
- } | undefined;
43
+ };
79
44
  }, {
80
- type: "number" | "boolean" | "affiliationSearch" | "checkBoxes" | "currency" | "date" | "dateRange" | "email" | "filteredSearch" | "multiselectBox" | "numberRange" | "radioButtons" | "selectBox" | "table" | "text" | "textArea" | "url";
81
- attributes?: {
45
+ type: "number" | "boolean" | "affiliationSearch" | "checkBoxes" | "currency" | "date" | "dateRange" | "email" | "multiselectBox" | "numberRange" | "radioButtons" | "selectBox" | "table" | "text" | "textArea" | "url";
46
+ attributes: {
82
47
  label?: string | undefined;
83
48
  help?: string | undefined;
84
49
  labelTranslationKey?: string | undefined;
85
- } | undefined;
50
+ };
86
51
  meta?: {
87
- schemaVersion: "1.0";
52
+ schemaVersion?: string | undefined;
88
53
  title?: string | undefined;
89
54
  usageDescription?: string | undefined;
90
- defaultJSON?: string | undefined;
91
55
  } | undefined;
92
56
  }>;
93
- export type QuestionType = z.infer<typeof QuestionSchema>;
94
- export {};
57
+ export type QuestionType = z.infer<typeof QuestionFormatsEnum>;
58
+ export interface QuestionFormatsUsageInterface {
59
+ title: string;
60
+ usageDescription: string;
61
+ }
62
+ export declare const QuestionFormatsUsage: Record<QuestionType, QuestionFormatsUsageInterface>;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QuestionSchema = exports.defaultAttributes = exports.defaultMeta = exports.QuestionTypesEnum = exports.CURRENT_SCHEMA_VERSION = void 0;
3
+ exports.QuestionFormatsUsage = exports.QuestionSchema = exports.QuestionFormatsEnum = exports.CURRENT_SCHEMA_VERSION = void 0;
4
4
  const zod_1 = require("zod");
5
5
  exports.CURRENT_SCHEMA_VERSION = '1.0'; // The current schema version
6
- // The type of question
7
- exports.QuestionTypesEnum = zod_1.z.enum([
6
+ // The available question formats
7
+ exports.QuestionFormatsEnum = zod_1.z.enum([
8
8
  'affiliationSearch',
9
9
  'boolean',
10
10
  'checkBoxes',
@@ -12,7 +12,7 @@ exports.QuestionTypesEnum = zod_1.z.enum([
12
12
  'date',
13
13
  'dateRange',
14
14
  'email',
15
- 'filteredSearch',
15
+ // 'filteredSearch',
16
16
  'multiselectBox',
17
17
  'number',
18
18
  'numberRange',
@@ -23,28 +23,88 @@ exports.QuestionTypesEnum = zod_1.z.enum([
23
23
  'textArea',
24
24
  'url'
25
25
  ]);
26
- exports.defaultMeta = {
27
- schemaVersion: exports.CURRENT_SCHEMA_VERSION,
28
- };
29
- exports.defaultAttributes = {
30
- label: undefined,
31
- help: undefined,
32
- labelTranslationKey: undefined,
33
- };
34
26
  const DefaultMetaSchema = zod_1.z.object({
35
- schemaVersion: zod_1.z.literal(exports.CURRENT_SCHEMA_VERSION), // The schema version (default is CURRENT_SCHEMA_VERSION)
27
+ schemaVersion: zod_1.z.string().default(exports.CURRENT_SCHEMA_VERSION), // The schema version
36
28
  title: zod_1.z.string().optional(), // The title of the question type
37
29
  usageDescription: zod_1.z.string().optional(), // A description of when to use the question type
38
- defaultJSON: zod_1.z.string().optional(), // A default version of the question
39
30
  });
40
31
  const DefaultAttributesSchema = zod_1.z.object({
41
32
  label: zod_1.z.string().optional(), // UI label for the field
42
33
  help: zod_1.z.string().optional(), // Help/tooltip text for the field
43
- labelTranslationKey: zod_1.z.string().optional() // The translation key for the label (DMP Tool only)
34
+ labelTranslationKey: zod_1.z.string().optional() // The local translation key for the label
44
35
  });
45
36
  // Base abstract type for all questions
46
37
  exports.QuestionSchema = zod_1.z.object({
47
- type: exports.QuestionTypesEnum, // The type of question
48
- attributes: DefaultAttributesSchema.optional(), // Field attributes
49
- meta: DefaultMetaSchema.optional(), // Meta information for the field
38
+ type: exports.QuestionFormatsEnum, // The type of question
39
+ attributes: DefaultAttributesSchema, // Field attributes
40
+ meta: DefaultMetaSchema.default({}), // Meta information for the field
50
41
  });
42
+ exports.QuestionFormatsUsage = {
43
+ affiliationSearch: {
44
+ title: 'Affiliation Search',
45
+ usageDescription: 'For questions that require the user to select from a controlled list of institutions.',
46
+ },
47
+ boolean: {
48
+ title: 'Yes/No Field',
49
+ usageDescription: 'For questions that require a simple Yes/No response.',
50
+ },
51
+ checkBoxes: {
52
+ title: 'Check Boxes',
53
+ usageDescription: 'For multiple choice questions where users can select multiple options.',
54
+ },
55
+ currency: {
56
+ title: 'Currency Field',
57
+ usageDescription: 'For questions that require a monetary amount (e.g. Cost or Budget).',
58
+ },
59
+ date: {
60
+ title: 'Date Field',
61
+ usageDescription: 'For questions that require a date.',
62
+ },
63
+ dateRange: {
64
+ title: 'Date Range',
65
+ usageDescription: 'For questions that require a date range (e.g. From/To, Start/End)',
66
+ },
67
+ email: {
68
+ title: 'Email Field',
69
+ usageDescription: 'For questions that require require email address(es).',
70
+ },
71
+ // filteredSearch: {
72
+ // title: 'Not yet implemented',
73
+ // },
74
+ multiselectBox: {
75
+ title: 'Multi-select Box',
76
+ usageDescription: 'For questions where multiple answers are valid. Allows users to select several options from a predefined list, providing flexibility in responses.',
77
+ },
78
+ number: {
79
+ title: 'Number Field',
80
+ usageDescription: 'For questions that require a single numeric value.',
81
+ },
82
+ numberRange: {
83
+ title: 'Number Range',
84
+ usageDescription: 'For questions that require a numerical range (e.g. From/To, Min/Max).',
85
+ },
86
+ radioButtons: {
87
+ title: 'Radio Buttons',
88
+ usageDescription: 'For multiple choice questions where users select just one option.',
89
+ },
90
+ selectBox: {
91
+ title: 'Select Box',
92
+ usageDescription: 'For questions where users select one option from a list.',
93
+ },
94
+ table: {
95
+ title: 'Table',
96
+ usageDescription: 'For questions that require a tabular format.',
97
+ },
98
+ text: {
99
+ title: 'Text Field',
100
+ usageDescription: 'For questions that require short, simple answers.',
101
+ },
102
+ textArea: {
103
+ title: 'Text Area',
104
+ usageDescription: 'For questions that require longer answers, you can select formatting options too.',
105
+ },
106
+ url: {
107
+ title: 'URL Field',
108
+ usageDescription: 'For questions that require a website, DOI or other URL.',
109
+ }
110
+ };