@evanschleret/formforgeclient 1.2.4 → 2.0.1

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 (83) hide show
  1. package/README.md +10 -0
  2. package/dist/module.cjs +1 -0
  3. package/dist/module.d.cts +1 -0
  4. package/dist/module.d.mts +1 -0
  5. package/dist/module.d.ts +1 -0
  6. package/dist/module.json +1 -1
  7. package/dist/module.mjs +1 -0
  8. package/dist/runtime/api/client.js +4 -2
  9. package/dist/runtime/api/request.d.ts +1 -0
  10. package/dist/runtime/api/schema.js +4 -4
  11. package/dist/runtime/assets/formforge.css +1 -0
  12. package/dist/runtime/composables/index.d.ts +1 -1
  13. package/dist/runtime/composables/useFormForgeBuilder.d.ts +24 -2
  14. package/dist/runtime/composables/useFormForgeBuilder.js +299 -43
  15. package/dist/runtime/composables/useFormForgeForm.js +15 -5
  16. package/dist/runtime/composables/useFormForgeI18n.d.ts +299 -19
  17. package/dist/runtime/composables/useFormForgeI18n.js +299 -19
  18. package/dist/runtime/composables/useFormForgeSubmit.js +31 -9
  19. package/dist/runtime/index.d.ts +1 -0
  20. package/dist/runtime/renderers/default/FormForgeBuilder.d.vue.ts +21 -2
  21. package/dist/runtime/renderers/default/FormForgeBuilder.vue +689 -738
  22. package/dist/runtime/renderers/default/FormForgeBuilder.vue.d.ts +21 -2
  23. package/dist/runtime/renderers/default/FormForgeBuilderBlockSettingsModal.d.vue.ts +17 -0
  24. package/dist/runtime/renderers/default/FormForgeBuilderBlockSettingsModal.vue +32 -0
  25. package/dist/runtime/renderers/default/FormForgeBuilderBlockSettingsModal.vue.d.ts +17 -0
  26. package/dist/runtime/renderers/default/FormForgeRenderer.d.vue.ts +3 -4
  27. package/dist/runtime/renderers/default/FormForgeRenderer.vue +344 -294
  28. package/dist/runtime/renderers/default/FormForgeRenderer.vue.d.ts +3 -4
  29. package/dist/runtime/renderers/default/FormForgeRendererField.d.vue.ts +22 -0
  30. package/dist/runtime/renderers/default/FormForgeRendererField.vue +237 -0
  31. package/dist/runtime/renderers/default/FormForgeRendererField.vue.d.ts +22 -0
  32. package/dist/runtime/renderers/default/FormForgeRendererPage.d.vue.ts +18 -0
  33. package/dist/runtime/renderers/default/FormForgeRendererPage.vue +31 -0
  34. package/dist/runtime/renderers/default/FormForgeRendererPage.vue.d.ts +18 -0
  35. package/dist/runtime/renderers/default/FormForgeResponse.vue +4 -3
  36. package/dist/runtime/renderers/default/builder/FormForgeBuilderAddressFieldsCard.d.vue.ts +11 -0
  37. package/dist/runtime/renderers/default/builder/FormForgeBuilderAddressFieldsCard.vue +118 -0
  38. package/dist/runtime/renderers/default/builder/FormForgeBuilderAddressFieldsCard.vue.d.ts +11 -0
  39. package/dist/runtime/renderers/default/builder/FormForgeBuilderBlockCard.d.vue.ts +46 -0
  40. package/dist/runtime/renderers/default/builder/FormForgeBuilderBlockCard.vue +205 -0
  41. package/dist/runtime/renderers/default/builder/FormForgeBuilderBlockCard.vue.d.ts +46 -0
  42. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceDisplayField.d.vue.ts +11 -0
  43. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceDisplayField.vue +37 -0
  44. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceDisplayField.vue.d.ts +11 -0
  45. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceOptionsField.d.vue.ts +11 -0
  46. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceOptionsField.vue +195 -0
  47. package/dist/runtime/renderers/default/builder/FormForgeBuilderChoiceOptionsField.vue.d.ts +11 -0
  48. package/dist/runtime/renderers/default/builder/FormForgeBuilderDescriptionField.d.vue.ts +14 -0
  49. package/dist/runtime/renderers/default/builder/FormForgeBuilderDescriptionField.vue +91 -0
  50. package/dist/runtime/renderers/default/builder/FormForgeBuilderDescriptionField.vue.d.ts +14 -0
  51. package/dist/runtime/renderers/default/builder/FormForgeBuilderLogicPanel.d.vue.ts +13 -0
  52. package/dist/runtime/renderers/default/builder/FormForgeBuilderLogicPanel.vue +387 -0
  53. package/dist/runtime/renderers/default/builder/FormForgeBuilderLogicPanel.vue.d.ts +13 -0
  54. package/dist/runtime/renderers/default/builder/FormForgeBuilderQuestionRow.d.vue.ts +44 -0
  55. package/dist/runtime/renderers/default/builder/FormForgeBuilderQuestionRow.vue +328 -0
  56. package/dist/runtime/renderers/default/builder/FormForgeBuilderQuestionRow.vue.d.ts +44 -0
  57. package/dist/runtime/renderers/default/builder/FormForgeBuilderTemporalModeField.d.vue.ts +11 -0
  58. package/dist/runtime/renderers/default/builder/FormForgeBuilderTemporalModeField.vue +47 -0
  59. package/dist/runtime/renderers/default/builder/FormForgeBuilderTemporalModeField.vue.d.ts +11 -0
  60. package/dist/runtime/renderers/default/builder/FormForgeBuilderValidationRulesSection.d.vue.ts +14 -0
  61. package/dist/runtime/renderers/default/builder/FormForgeBuilderValidationRulesSection.vue +595 -0
  62. package/dist/runtime/renderers/default/builder/FormForgeBuilderValidationRulesSection.vue.d.ts +14 -0
  63. package/dist/runtime/renderers/default/builder/builderFieldHelpers.d.ts +3 -0
  64. package/dist/runtime/renderers/default/builder/builderFieldHelpers.js +4 -0
  65. package/dist/runtime/types/index.d.ts +1 -1
  66. package/dist/runtime/types/management.d.ts +12 -0
  67. package/dist/runtime/types/schema.d.ts +72 -4
  68. package/dist/runtime/utils/defaults.d.ts +7 -0
  69. package/dist/runtime/utils/defaults.js +86 -0
  70. package/dist/runtime/utils/page-logic.d.ts +24 -0
  71. package/dist/runtime/utils/page-logic.js +351 -0
  72. package/dist/runtime/utils/rich-text.d.ts +3 -0
  73. package/dist/runtime/utils/rich-text.js +72 -0
  74. package/dist/runtime/utils/schema.d.ts +1 -1
  75. package/dist/runtime/utils/schema.js +70 -16
  76. package/dist/runtime/utils/temporal.d.ts +10 -0
  77. package/dist/runtime/utils/temporal.js +28 -0
  78. package/dist/runtime/utils/validation.d.ts +5 -0
  79. package/dist/runtime/utils/validation.js +36 -0
  80. package/dist/runtime/validation/zod.d.ts +5 -2
  81. package/dist/runtime/validation/zod.js +563 -54
  82. package/dist/types.d.mts +2 -0
  83. package/package.json +18 -14
@@ -5,54 +5,127 @@ export interface UseFormForgeI18nOptions {
5
5
  type FormForgeTranslationValues = Record<string, string | number>;
6
6
  declare const TRANSLATIONS: {
7
7
  readonly en: {
8
- readonly 'builder.fieldType.text': "Short text";
8
+ readonly 'builder.fieldType.text': "Free text";
9
9
  readonly 'builder.fieldType.textarea': "Long text";
10
10
  readonly 'builder.fieldType.email': "Email";
11
11
  readonly 'builder.fieldType.number': "Number";
12
- readonly 'builder.fieldType.select': "Select";
13
- readonly 'builder.fieldType.select_menu': "Select menu";
14
- readonly 'builder.fieldType.radio': "Multiple choice";
12
+ readonly 'builder.fieldType.select': "Dropdown";
13
+ readonly 'builder.fieldType.select_menu': "Dropdown menu";
14
+ readonly 'builder.fieldType.radio': "Single choice";
15
15
  readonly 'builder.fieldType.checkbox': "Checkbox";
16
- readonly 'builder.fieldType.checkbox_group': "Checkbox group";
16
+ readonly 'builder.fieldType.consent': "Consent";
17
+ readonly 'builder.fieldType.checkbox_group': "Multiple choice";
18
+ readonly 'builder.fieldType.address': "Address";
17
19
  readonly 'builder.fieldType.switch': "Switch";
20
+ readonly 'builder.fieldType.temporal': "Date / time";
18
21
  readonly 'builder.fieldType.date': "Date";
19
22
  readonly 'builder.fieldType.time': "Time";
20
- readonly 'builder.fieldType.datetime': "Date & time";
21
- readonly 'builder.fieldType.date_range': "Date range";
22
- readonly 'builder.fieldType.datetime_range': "Datetime range";
23
23
  readonly 'builder.fieldType.file': "File upload";
24
+ readonly 'builder.tabs.builder': "Builder";
25
+ readonly 'builder.tabs.settings': "Settings";
24
26
  readonly 'builder.targetType.page': "Page";
25
27
  readonly 'builder.targetType.field': "Field";
26
28
  readonly 'builder.formTitlePlaceholder': "Form title";
27
29
  readonly 'builder.categoryPlaceholder': "Category";
28
30
  readonly 'builder.categoryNone': "No category";
31
+ readonly 'builder.blockLabel': "Block";
32
+ readonly 'builder.blockCounter': "Block {current} / {total}";
33
+ readonly 'builder.block.addNewBlock': "Add new block";
34
+ readonly 'builder.block.addNewBlockDescription': "Start a new block with its first question";
35
+ readonly 'builder.questionLabel': "Question";
36
+ readonly 'builder.questionCount': "{count} questions";
29
37
  readonly 'builder.loadingForm': "Loading form...";
30
38
  readonly 'builder.lastSave': "Last save: {value}";
31
39
  readonly 'builder.save': "Save";
32
40
  readonly 'builder.publish': "Publish";
33
41
  readonly 'builder.unpublish': "Unpublish";
42
+ readonly 'builder.optional': "Optional";
34
43
  readonly 'builder.pageCounter': "Page {current} / {total}";
35
44
  readonly 'builder.pageTitlePlaceholder': "Page title";
36
45
  readonly 'builder.pageDescriptionPlaceholder': "Page description (optional)";
46
+ readonly 'builder.descriptionButton': "Add description";
47
+ readonly 'builder.descriptionPlaceholder': "Description (optional)";
48
+ readonly 'builder.removeDescription': "Remove description";
49
+ readonly 'builder.longResponse': "Long answer";
50
+ readonly 'builder.longResponseDescription': "Allow respondents to write longer responses over multiple lines.";
51
+ readonly 'builder.validationRules': "Validation rules";
52
+ readonly 'builder.validationRulesDescription': "Accept only responses that meet the following criteria.";
53
+ readonly 'builder.validation.match.all': "All are true";
54
+ readonly 'builder.validation.match.any': "At least one is true";
55
+ readonly 'builder.validation.operator.min': "Minimum";
56
+ readonly 'builder.validation.operator.max': "Maximum";
57
+ readonly 'builder.validation.operator.after': "Is after";
58
+ readonly 'builder.validation.operator.before': "Is before";
59
+ readonly 'builder.validation.operator.between': "Is between";
60
+ readonly 'builder.validation.operator.notBetween': "Is not between";
61
+ readonly 'builder.validation.operator.regex': "Matches regular expression";
62
+ readonly 'builder.validation.operator.eq': "Is";
63
+ readonly 'builder.validation.operator.neq': "Is not";
64
+ readonly 'builder.validation.operator.contains': "Contains";
65
+ readonly 'builder.validation.operator.notContains': "Does not contain";
66
+ readonly 'builder.validation.target.text': "Text";
67
+ readonly 'builder.validation.target.number': "Number";
68
+ readonly 'builder.validation.target.date': "Date";
69
+ readonly 'builder.validation.unit.characters': "Characters";
70
+ readonly 'builder.validation.valuePlaceholder': "Value";
71
+ readonly 'builder.validation.datePlaceholder': "YYYY-MM-DD";
72
+ readonly 'builder.validation.rangeStart': "Start date";
73
+ readonly 'builder.validation.rangeEnd': "End date";
74
+ readonly 'builder.validation.dateDescription': "Set the allowed date or time range.";
75
+ readonly 'builder.answerPlaceholder': "Enter your answer here ...";
76
+ readonly 'builder.choiceDisplay': "Display";
77
+ readonly 'builder.choiceDisplay.list': "List";
78
+ readonly 'builder.choiceDisplay.menu': "Dropdown";
79
+ readonly 'builder.consentLabel': "Checkbox label";
80
+ readonly 'builder.optionsLabel': "Options";
81
+ readonly 'builder.optionPlaceholder': "Option {index}";
82
+ readonly 'builder.optionOther': "Other";
83
+ readonly 'builder.optionNone': "None of the above";
84
+ readonly 'builder.addressFields': "Address fields";
85
+ readonly 'builder.address.show': "Show";
86
+ readonly 'builder.address.required': "Required";
87
+ readonly 'builder.address.label': "Label";
88
+ readonly 'builder.address.line1': "Address line 1";
89
+ readonly 'builder.address.line2': "Address line 2";
90
+ readonly 'builder.address.city': "City";
91
+ readonly 'builder.address.state': "State";
92
+ readonly 'builder.address.zip': "Zip";
93
+ readonly 'builder.address.country': "Country";
94
+ readonly 'builder.addOtherOption': "Add \"Other\"";
95
+ readonly 'builder.addNoneOption': "Add \"None of the above\"";
37
96
  readonly 'builder.tooltip.mergePage': "Merge with previous page";
38
97
  readonly 'builder.tooltip.deletePage': "Delete page";
39
98
  readonly 'builder.questionPlaceholder': "Question";
40
99
  readonly 'builder.tooltip.duplicateQuestion': "Duplicate question";
41
100
  readonly 'builder.tooltip.deleteQuestion': "Delete question";
42
101
  readonly 'builder.tooltip.addCategory': "Add category";
102
+ readonly 'builder.block.addQuestion': "Add question to block";
43
103
  readonly 'builder.required': "Required";
104
+ readonly 'builder.questionMenu.changeType': "Change question type";
105
+ readonly 'builder.questionMenu.addBelow': "Add question below";
106
+ readonly 'builder.questionMenu.moveToBlock': "Move question to block";
107
+ readonly 'builder.questionMenu.moveUp': "Move up";
108
+ readonly 'builder.questionMenu.moveDown': "Move down";
109
+ readonly 'builder.questionMenu.duplicate': "Duplicate";
110
+ readonly 'builder.questionMenu.delete': "Delete";
111
+ readonly 'builder.questionMenu.noBlockAfter': "No following block";
44
112
  readonly 'builder.optionLabelPlaceholder': "Option label";
45
113
  readonly 'builder.addOption': "Add option";
46
114
  readonly 'builder.advancedSettings': "Advanced settings";
47
115
  readonly 'builder.placeholderPlaceholder': "Placeholder";
48
116
  readonly 'builder.helpTextPlaceholder': "Help text";
117
+ readonly 'builder.temporalMode.label': "Date mode";
118
+ readonly 'builder.temporalMode.date': "Date";
119
+ readonly 'builder.temporalMode.time': "Time";
120
+ readonly 'builder.temporalHourCycle.label': "24-hour time format";
121
+ readonly 'builder.temporalHourCycle.description': "Use AM/PM only when this is disabled.";
49
122
  readonly 'builder.minPlaceholder': "Min";
50
123
  readonly 'builder.maxPlaceholder': "Max";
51
124
  readonly 'builder.stepPlaceholder': "Step";
52
125
  readonly 'builder.multiple': "Multiple";
53
126
  readonly 'builder.acceptedExtensionsPlaceholder': "Accepted extensions (.pdf,.png)";
54
- readonly 'builder.conditions': "Conditions";
55
- readonly 'builder.addCondition': "Add condition";
127
+ readonly 'builder.conditions': "Conditional logic";
128
+ readonly 'builder.addCondition': "Add logic rule";
56
129
  readonly 'builder.condition.action.show': "Show";
57
130
  readonly 'builder.condition.action.hide': "Hide";
58
131
  readonly 'builder.condition.action.skip': "Skip";
@@ -89,6 +162,69 @@ declare const TRANSLATIONS: {
89
162
  readonly 'builder.toast.unpublishSuccess': "Form unpublished";
90
163
  readonly 'builder.optionDefaultLabel': "Option";
91
164
  readonly 'builder.optionsCount': "{count} options";
165
+ readonly 'builder.settings.title': "Settings";
166
+ readonly 'builder.settings.description': "Configure the lifecycle, access, and publication settings for this form.";
167
+ readonly 'builder.settings.formTitlePlaceholder': "Form title";
168
+ readonly 'builder.settings.categoryPlaceholder': "Category";
169
+ readonly 'builder.settings.opening.title': "Survey opening";
170
+ readonly 'builder.settings.opening.description': "Choose when the form becomes available.";
171
+ readonly 'builder.settings.opening.date': "Opening date";
172
+ readonly 'builder.settings.opening.time': "Opening time";
173
+ readonly 'builder.settings.closing.title': "Survey closing";
174
+ readonly 'builder.settings.closing.description': "Choose when the form stops accepting responses.";
175
+ readonly 'builder.settings.closing.date': "Closing date";
176
+ readonly 'builder.settings.closing.time': "Closing time";
177
+ readonly 'builder.settings.submissionLimit.title': "Submission limit";
178
+ readonly 'builder.settings.submissionLimit.description': "The form closes automatically after this many responses.";
179
+ readonly 'builder.settings.submissionLimit.maximumResponses': "Maximum responses";
180
+ readonly 'builder.settings.access.title': "Access";
181
+ readonly 'builder.settings.access.description': "Control who can submit the form and whether a PIN is required.";
182
+ readonly 'builder.settings.access.publicForm.title': "Public form";
183
+ readonly 'builder.settings.access.publicForm.description': "Allow anyone with the link to submit responses.";
184
+ readonly 'builder.settings.access.publicLink': "Public link";
185
+ readonly 'builder.settings.access.publicLinkPlaceholder': "Save the form to generate a link";
186
+ readonly 'builder.settings.access.pinProtection.title': "PIN protection";
187
+ readonly 'builder.settings.access.pinProtection.description': "Require a PIN before the form can be submitted.";
188
+ readonly 'builder.settings.access.pin': "PIN";
189
+ readonly 'builder.settings.access.pinPlaceholder': "Enter PIN";
190
+ readonly 'builder.logic.title': "Conditional logic";
191
+ readonly 'builder.logic.empty': "No logic rule yet";
192
+ readonly 'builder.logic.rulesCount': "{count} logic rules";
193
+ readonly 'builder.logic.addRule': "Add logic rule";
194
+ readonly 'builder.logic.rule': "When";
195
+ readonly 'builder.logic.addClause': "Add clause";
196
+ readonly 'builder.logic.then.addAction': "Add action";
197
+ readonly 'builder.logic.match.all': "All are true";
198
+ readonly 'builder.logic.match.any': "At least one is true";
199
+ readonly 'builder.logic.then': "Then";
200
+ readonly 'builder.logic.then.require': "Required answer";
201
+ readonly 'builder.logic.then.goto': "Go to block";
202
+ readonly 'builder.logic.fallback': "All other responses will continue to";
203
+ readonly 'builder.logic.fallback.next': "Next block";
204
+ readonly 'builder.logic.fallback.goto': "Destination block";
205
+ readonly 'builder.logic.requireQuestionPlaceholder': "Future question";
206
+ readonly 'builder.logic.gotoBlockPlaceholder': "Destination block";
207
+ readonly 'builder.logic.gotoBlockPlaceholderAfter': "Block {index}";
208
+ readonly 'builder.logic.destinationBlockLabel': "Block {index}";
209
+ readonly 'builder.logic.valuePlaceholder': "Value";
210
+ readonly 'builder.logic.operator.eq': "Equals";
211
+ readonly 'builder.logic.operator.neq': "Does not equal";
212
+ readonly 'builder.logic.operator.contains': "Contains";
213
+ readonly 'builder.logic.operator.not_contains': "Does not contain";
214
+ readonly 'builder.logic.operator.starts_with': "Starts with";
215
+ readonly 'builder.logic.operator.not_starts_with': "Does not start with";
216
+ readonly 'builder.logic.operator.ends_with': "Ends with";
217
+ readonly 'builder.logic.operator.not_ends_with': "Does not end with";
218
+ readonly 'builder.logic.operator.is_submitted': "Is submitted";
219
+ readonly 'builder.logic.operator.is_not_submitted': "Is not submitted";
220
+ readonly 'builder.logic.operator.accepted': "Is accepted";
221
+ readonly 'builder.logic.operator.ignored': "Is ignored";
222
+ readonly 'builder.block.showSettings': "Show block settings";
223
+ readonly 'builder.block.hideSettings': "Hide block settings";
224
+ readonly 'builder.block.collapse': "Collapse block";
225
+ readonly 'builder.block.expand': "Expand block";
226
+ readonly 'builder.logic.consent.accepted': "Is accepted";
227
+ readonly 'builder.logic.consent.ignored': "Is ignored";
92
228
  readonly 'builder.categoryModal.title': "Create category";
93
229
  readonly 'builder.categoryModal.description': "Add a category and assign it to this form.";
94
230
  readonly 'builder.categoryModal.nameLabel': "Name";
@@ -104,6 +240,10 @@ declare const TRANSLATIONS: {
104
240
  readonly 'renderer.error.loadForm': "Unable to load form";
105
241
  readonly 'renderer.error.submit': "Submission failed";
106
242
  readonly 'renderer.error.missingFormKey': "Missing form key";
243
+ readonly 'renderer.submissionCodeLabel': "Access code";
244
+ readonly 'renderer.submissionCodePlaceholder': "Enter the access code";
245
+ readonly 'renderer.formNotAvailableYet': "This form is not available yet";
246
+ readonly 'renderer.formPaused': "This form is paused";
107
247
  readonly 'renderer.alert.fixFields': "Please fix the following fields";
108
248
  readonly 'renderer.alert.submitted': "Form submitted";
109
249
  readonly 'renderer.pageTitle': "Page {index}";
@@ -126,54 +266,127 @@ declare const TRANSLATIONS: {
126
266
  readonly 'response.file.missingUrlHint': "File URL is unavailable. Enable FORMFORGE_HTTP_FILE_URLS_ENABLED in FormForge config.";
127
267
  };
128
268
  readonly fr: {
129
- readonly 'builder.fieldType.text': "Réponse courte";
269
+ readonly 'builder.fieldType.text': "Texte libre";
130
270
  readonly 'builder.fieldType.textarea': "Réponse longue";
131
271
  readonly 'builder.fieldType.email': "E-mail";
132
272
  readonly 'builder.fieldType.number': "Nombre";
133
273
  readonly 'builder.fieldType.select': "Sélection";
134
- readonly 'builder.fieldType.select_menu': "Menu de sélection";
135
- readonly 'builder.fieldType.radio': "Choix multiples";
274
+ readonly 'builder.fieldType.select_menu': "Menu déroulant";
275
+ readonly 'builder.fieldType.radio': "Choix unique";
136
276
  readonly 'builder.fieldType.checkbox': "Case à cocher";
137
- readonly 'builder.fieldType.checkbox_group': "Groupe de cases";
277
+ readonly 'builder.fieldType.consent': "Consentement";
278
+ readonly 'builder.fieldType.checkbox_group': "Choix multiples";
279
+ readonly 'builder.fieldType.address': "Adresse";
138
280
  readonly 'builder.fieldType.switch': "Interrupteur";
281
+ readonly 'builder.fieldType.temporal': "Date / heure";
139
282
  readonly 'builder.fieldType.date': "Date";
140
283
  readonly 'builder.fieldType.time': "Heure";
141
- readonly 'builder.fieldType.datetime': "Date et heure";
142
- readonly 'builder.fieldType.date_range': "Plage de dates";
143
- readonly 'builder.fieldType.datetime_range': "Plage date/heure";
144
284
  readonly 'builder.fieldType.file': "Téléversement de fichier";
285
+ readonly 'builder.tabs.builder': "Constructeur";
286
+ readonly 'builder.tabs.settings': "Paramètres";
145
287
  readonly 'builder.targetType.page': "Page";
146
288
  readonly 'builder.targetType.field': "Champ";
147
289
  readonly 'builder.formTitlePlaceholder': "Titre du formulaire";
148
290
  readonly 'builder.categoryPlaceholder': "Catégorie";
149
291
  readonly 'builder.categoryNone': "Aucune catégorie";
292
+ readonly 'builder.blockLabel': "Bloc";
293
+ readonly 'builder.blockCounter': "Bloc {current} / {total}";
294
+ readonly 'builder.block.addNewBlock': "Ajouter un nouveau bloc";
295
+ readonly 'builder.block.addNewBlockDescription': "Commencez un bloc avec sa première question";
296
+ readonly 'builder.questionLabel': "Question";
297
+ readonly 'builder.questionCount': "{count} questions";
150
298
  readonly 'builder.loadingForm': "Chargement du formulaire...";
151
299
  readonly 'builder.lastSave': "Dernière sauvegarde : {value}";
152
300
  readonly 'builder.save': "Sauvegarder";
153
301
  readonly 'builder.publish': "Publier";
154
302
  readonly 'builder.unpublish': "Dépublier";
303
+ readonly 'builder.optional': "Optionnel";
155
304
  readonly 'builder.pageCounter': "Page {current} / {total}";
156
305
  readonly 'builder.pageTitlePlaceholder': "Titre de la page";
157
306
  readonly 'builder.pageDescriptionPlaceholder': "Description de la page (optionnel)";
307
+ readonly 'builder.descriptionButton': "Ajouter une description";
308
+ readonly 'builder.descriptionPlaceholder': "Description (optionnelle)";
309
+ readonly 'builder.removeDescription': "Retirer la description";
310
+ readonly 'builder.longResponse': "Longue réponse";
311
+ readonly 'builder.longResponseDescription': "Permettre aux répondants d'écrire des réponses plus longues et sur plusieurs lignes.";
312
+ readonly 'builder.validationRules': "Règles de validation";
313
+ readonly 'builder.validationRulesDescription': "Accepter uniquement les réponses qui répondent aux critères suivants";
314
+ readonly 'builder.validation.match.all': "Toutes sont vraies";
315
+ readonly 'builder.validation.match.any': "Au moins une est vraie";
316
+ readonly 'builder.validation.operator.min': "Au minimum";
317
+ readonly 'builder.validation.operator.max': "Au maximum";
318
+ readonly 'builder.validation.operator.after': "Est postérieur à";
319
+ readonly 'builder.validation.operator.before': "Est antérieur à";
320
+ readonly 'builder.validation.operator.between': "Est entre";
321
+ readonly 'builder.validation.operator.notBetween': "N'est pas entre";
322
+ readonly 'builder.validation.operator.regex': "Correspond au modèle d'expression régulière";
323
+ readonly 'builder.validation.operator.eq': "Est";
324
+ readonly 'builder.validation.operator.neq': "N'est pas";
325
+ readonly 'builder.validation.operator.contains': "Contient";
326
+ readonly 'builder.validation.operator.notContains': "Ne contient pas";
327
+ readonly 'builder.validation.target.text': "Texte";
328
+ readonly 'builder.validation.target.number': "Nombre";
329
+ readonly 'builder.validation.target.date': "Date";
330
+ readonly 'builder.validation.unit.characters': "Caractères";
331
+ readonly 'builder.validation.valuePlaceholder': "Valeur";
332
+ readonly 'builder.validation.datePlaceholder': "AAAA-MM-JJ";
333
+ readonly 'builder.validation.rangeStart': "Date de début";
334
+ readonly 'builder.validation.rangeEnd': "Date de fin";
335
+ readonly 'builder.validation.dateDescription': "Définir l'intervalle de dates ou d'heures autorisé.";
336
+ readonly 'builder.answerPlaceholder': "Entrez votre réponse ici ...";
337
+ readonly 'builder.choiceDisplay': "Affichage";
338
+ readonly 'builder.choiceDisplay.list': "Liste";
339
+ readonly 'builder.choiceDisplay.menu': "Menu déroulant";
340
+ readonly 'builder.consentLabel': "Libellé de la case à cocher";
341
+ readonly 'builder.optionsLabel': "Options";
342
+ readonly 'builder.optionPlaceholder': "Option {index}";
343
+ readonly 'builder.optionOther': "Autre";
344
+ readonly 'builder.optionNone': "Aucun des éléments ci-dessus";
345
+ readonly 'builder.addressFields': "Champs d'adresse";
346
+ readonly 'builder.address.show': "Montrer";
347
+ readonly 'builder.address.required': "Requis";
348
+ readonly 'builder.address.label': "Étiquette";
349
+ readonly 'builder.address.line1': "Ligne d'adresse 1";
350
+ readonly 'builder.address.line2': "Ligne d'adresse 2";
351
+ readonly 'builder.address.city': "Ville";
352
+ readonly 'builder.address.state': "État";
353
+ readonly 'builder.address.zip': "Code postal";
354
+ readonly 'builder.address.country': "Pays";
355
+ readonly 'builder.addOtherOption': "Ajouter \"Autre\"";
356
+ readonly 'builder.addNoneOption': "Ajouter \"Aucun des éléments ci-dessus\"";
158
357
  readonly 'builder.tooltip.mergePage': "Fusionner avec la page précédente";
159
358
  readonly 'builder.tooltip.deletePage': "Supprimer la page";
160
359
  readonly 'builder.questionPlaceholder': "Question";
161
360
  readonly 'builder.tooltip.duplicateQuestion': "Dupliquer la question";
162
361
  readonly 'builder.tooltip.deleteQuestion': "Supprimer la question";
163
362
  readonly 'builder.tooltip.addCategory': "Ajouter une catégorie";
363
+ readonly 'builder.block.addQuestion': "Ajouter une question au bloc";
164
364
  readonly 'builder.required': "Obligatoire";
365
+ readonly 'builder.questionMenu.changeType': "Changer le type de question";
366
+ readonly 'builder.questionMenu.addBelow': "Ajouter une question ci-dessous";
367
+ readonly 'builder.questionMenu.moveToBlock': "Déplacer la question vers le bloc";
368
+ readonly 'builder.questionMenu.moveUp': "Déplacer vers le haut";
369
+ readonly 'builder.questionMenu.moveDown': "Déplacer vers le bas";
370
+ readonly 'builder.questionMenu.duplicate': "Dupliquer";
371
+ readonly 'builder.questionMenu.delete': "Supprimer";
372
+ readonly 'builder.questionMenu.noBlockAfter': "Aucun bloc suivant";
165
373
  readonly 'builder.optionLabelPlaceholder': "Libellé de l’option";
166
374
  readonly 'builder.addOption': "Ajouter une option";
167
375
  readonly 'builder.advancedSettings': "Paramètres avancés";
168
376
  readonly 'builder.placeholderPlaceholder': "Placeholder";
169
377
  readonly 'builder.helpTextPlaceholder': "Texte d’aide";
378
+ readonly 'builder.temporalMode.label': "Mode de date";
379
+ readonly 'builder.temporalMode.date': "Date";
380
+ readonly 'builder.temporalMode.time': "Heure";
381
+ readonly 'builder.temporalHourCycle.label': "Format horaire 24 h";
382
+ readonly 'builder.temporalHourCycle.description': "Afficher AM/PM uniquement lorsque ce réglage est désactivé.";
170
383
  readonly 'builder.minPlaceholder': "Min";
171
384
  readonly 'builder.maxPlaceholder': "Max";
172
385
  readonly 'builder.stepPlaceholder': "Pas";
173
386
  readonly 'builder.multiple': "Multiple";
174
387
  readonly 'builder.acceptedExtensionsPlaceholder': "Extensions acceptées (.pdf,.png)";
175
- readonly 'builder.conditions': "Conditions";
176
- readonly 'builder.addCondition': "Ajouter une condition";
388
+ readonly 'builder.conditions': "Logique conditionnelle";
389
+ readonly 'builder.addCondition': "Ajouter une règle de logique";
177
390
  readonly 'builder.condition.action.show': "Afficher";
178
391
  readonly 'builder.condition.action.hide': "Masquer";
179
392
  readonly 'builder.condition.action.skip': "Passer";
@@ -210,6 +423,69 @@ declare const TRANSLATIONS: {
210
423
  readonly 'builder.toast.unpublishSuccess': "Formulaire dépublié";
211
424
  readonly 'builder.optionDefaultLabel': "Option";
212
425
  readonly 'builder.optionsCount': "{count} options";
426
+ readonly 'builder.settings.title': "Paramètres";
427
+ readonly 'builder.settings.description': "Configurez le cycle de vie, l’accès et les paramètres de publication de ce formulaire.";
428
+ readonly 'builder.settings.formTitlePlaceholder': "Titre du formulaire";
429
+ readonly 'builder.settings.categoryPlaceholder': "Catégorie";
430
+ readonly 'builder.settings.opening.title': "Ouverture du sondage";
431
+ readonly 'builder.settings.opening.description': "Choisissez quand le formulaire devient disponible.";
432
+ readonly 'builder.settings.opening.date': "Date d’ouverture";
433
+ readonly 'builder.settings.opening.time': "Heure d’ouverture";
434
+ readonly 'builder.settings.closing.title': "Fermeture du sondage";
435
+ readonly 'builder.settings.closing.description': "Choisissez quand le formulaire cesse d’accepter des réponses.";
436
+ readonly 'builder.settings.closing.date': "Date de fermeture";
437
+ readonly 'builder.settings.closing.time': "Heure de fermeture";
438
+ readonly 'builder.settings.submissionLimit.title': "Limite de réponses";
439
+ readonly 'builder.settings.submissionLimit.description': "Le formulaire se ferme automatiquement après ce nombre de réponses.";
440
+ readonly 'builder.settings.submissionLimit.maximumResponses': "Nombre maximal de réponses";
441
+ readonly 'builder.settings.access.title': "Accès";
442
+ readonly 'builder.settings.access.description': "Contrôlez qui peut répondre au formulaire et si un code PIN est requis.";
443
+ readonly 'builder.settings.access.publicForm.title': "Formulaire public";
444
+ readonly 'builder.settings.access.publicForm.description': "Autorisez toute personne ayant le lien à envoyer des réponses.";
445
+ readonly 'builder.settings.access.publicLink': "Lien public";
446
+ readonly 'builder.settings.access.publicLinkPlaceholder': "Enregistrez le formulaire pour générer un lien";
447
+ readonly 'builder.settings.access.pinProtection.title': "Protection par PIN";
448
+ readonly 'builder.settings.access.pinProtection.description': "Exiger un code PIN avant l’envoi du formulaire.";
449
+ readonly 'builder.settings.access.pin': "PIN";
450
+ readonly 'builder.settings.access.pinPlaceholder': "Saisissez le PIN";
451
+ readonly 'builder.logic.title': "Logique conditionnelle";
452
+ readonly 'builder.logic.empty': "Aucune règle de logique";
453
+ readonly 'builder.logic.rulesCount': "{count} règles de logique";
454
+ readonly 'builder.logic.addRule': "Ajouter une règle de logique";
455
+ readonly 'builder.logic.rule': "Quand";
456
+ readonly 'builder.logic.addClause': "Ajouter une clause";
457
+ readonly 'builder.logic.then.addAction': "Ajouter une action";
458
+ readonly 'builder.logic.match.all': "Toutes sont vraies";
459
+ readonly 'builder.logic.match.any': "Au moins une est vraie";
460
+ readonly 'builder.logic.then': "Alors";
461
+ readonly 'builder.logic.then.require': "Réponse requise";
462
+ readonly 'builder.logic.then.goto': "Aller au bloc";
463
+ readonly 'builder.logic.fallback': "Toutes les autres réponses continueront à";
464
+ readonly 'builder.logic.fallback.next': "Bloc suivant";
465
+ readonly 'builder.logic.fallback.goto': "Bloc de destination";
466
+ readonly 'builder.logic.requireQuestionPlaceholder': "Question future";
467
+ readonly 'builder.logic.gotoBlockPlaceholder': "Bloc de destination";
468
+ readonly 'builder.logic.gotoBlockPlaceholderAfter': "Bloc {index}";
469
+ readonly 'builder.logic.destinationBlockLabel': "Bloc {index}";
470
+ readonly 'builder.logic.valuePlaceholder': "Valeur";
471
+ readonly 'builder.logic.operator.eq': "Égal à";
472
+ readonly 'builder.logic.operator.neq': "Différent de";
473
+ readonly 'builder.logic.operator.contains': "Contient";
474
+ readonly 'builder.logic.operator.not_contains': "Ne contient pas";
475
+ readonly 'builder.logic.operator.starts_with': "Commence par";
476
+ readonly 'builder.logic.operator.not_starts_with': "Ne commence pas par";
477
+ readonly 'builder.logic.operator.ends_with': "Se termine par";
478
+ readonly 'builder.logic.operator.not_ends_with': "Ne se termine pas par";
479
+ readonly 'builder.logic.operator.is_submitted': "Est soumis";
480
+ readonly 'builder.logic.operator.is_not_submitted': "N’est pas soumis";
481
+ readonly 'builder.logic.operator.accepted': "C’est accepté";
482
+ readonly 'builder.logic.operator.ignored': "Est ignoré";
483
+ readonly 'builder.logic.consent.accepted': "C’est accepté";
484
+ readonly 'builder.logic.consent.ignored': "Est ignoré";
485
+ readonly 'builder.block.showSettings': "Afficher les paramètres du bloc";
486
+ readonly 'builder.block.hideSettings': "Masquer les paramètres du bloc";
487
+ readonly 'builder.block.collapse': "Réduire le bloc";
488
+ readonly 'builder.block.expand': "Déplier le bloc";
213
489
  readonly 'builder.categoryModal.title': "Créer une catégorie";
214
490
  readonly 'builder.categoryModal.description': "Ajoutez une catégorie et assignez-la à ce formulaire.";
215
491
  readonly 'builder.categoryModal.nameLabel': "Nom";
@@ -225,6 +501,10 @@ declare const TRANSLATIONS: {
225
501
  readonly 'renderer.error.loadForm': "Impossible de charger le formulaire";
226
502
  readonly 'renderer.error.submit': "Échec de l’envoi";
227
503
  readonly 'renderer.error.missingFormKey': "Clé du formulaire manquante";
504
+ readonly 'renderer.submissionCodeLabel': "Code d’accès";
505
+ readonly 'renderer.submissionCodePlaceholder': "Entrez le code d’accès";
506
+ readonly 'renderer.formNotAvailableYet': "Ce formulaire n’est pas encore disponible";
507
+ readonly 'renderer.formPaused': "Ce formulaire est en pause";
228
508
  readonly 'renderer.alert.fixFields': "Veuillez corriger les champs suivants";
229
509
  readonly 'renderer.alert.submitted': "Formulaire envoyé";
230
510
  readonly 'renderer.pageTitle': "Page {index}";