valtech-components 4.0.996 → 4.0.997

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.
@@ -70,7 +70,7 @@ import fixWebmDuration from 'fix-webm-duration';
70
70
  * Current version of valtech-components.
71
71
  * This is automatically updated during the publish process.
72
72
  */
73
- const VERSION = '4.0.996';
73
+ const VERSION = '4.0.997';
74
74
 
75
75
  function evaluateValtechAccess(rule, context, features = {}, visitedFeatures = new Set()) {
76
76
  if (rule == null)
@@ -39455,6 +39455,17 @@ class SurveyResponseComponent {
39455
39455
  this.i18n.lang();
39456
39456
  return { variant: 'empty', title: this.t('sentTitle'), description: this.t('sentBody') };
39457
39457
  });
39458
+ this.successPresentation = computed(() => {
39459
+ const cfg = this.typeConfig();
39460
+ if (!cfg?.presentation)
39461
+ return null;
39462
+ const title = cfg.presentation.successTitle?.trim() || this.t('sentTitle');
39463
+ const message = cfg.presentation.successMessage?.trim() || this.t('sentBody');
39464
+ const imageUrl = cfg.presentation.successImageUrl?.trim() || '';
39465
+ if (!cfg.presentation.successTitle && !cfg.presentation.successMessage && !imageUrl)
39466
+ return null;
39467
+ return { title, message, imageUrl };
39468
+ });
39458
39469
  this.loadErrorState = computed(() => {
39459
39470
  this.i18n.lang();
39460
39471
  return { variant: 'error', title: this.t('loadErrorTitle'), description: this.t('loadErrorBody') };
@@ -39658,13 +39669,28 @@ class SurveyResponseComponent {
39658
39669
  } @else if (alreadyAnswered()) {
39659
39670
  <val-empty-state [props]="alreadyAnsweredState()" />
39660
39671
  } @else if (sent()) {
39661
- <val-empty-state [props]="sentState()" />
39672
+ @if (successPresentation(); as success) {
39673
+ <section class="survey-response survey-response__success" aria-live="polite">
39674
+ @if (success.imageUrl) {
39675
+ <img class="survey-response__success-image" [src]="success.imageUrl" [alt]="success.title" />
39676
+ }
39677
+ <val-display [props]="{ content: success.title, size: 'small', color: 'dark' }" />
39678
+ @if (success.message) {
39679
+ <val-title [props]="{ content: success.message, size: 'large', color: '', bold: false }" />
39680
+ }
39681
+ </section>
39682
+ } @else {
39683
+ <val-empty-state [props]="sentState()" />
39684
+ }
39662
39685
  } @else {
39663
39686
  @if (typeConfig(); as cfg) {
39664
39687
  @if (!canRespond()) {
39665
39688
  <val-empty-state [props]="loginRequiredState()" />
39666
39689
  } @else {
39667
39690
  <div class="survey-response">
39691
+ @if (cfg.presentation?.headerImageUrl) {
39692
+ <img class="survey-response__header-image" [src]="cfg.presentation?.headerImageUrl" [alt]="cfg.label" />
39693
+ }
39668
39694
  <val-display [props]="{ content: cfg.label, size: 'small', color: 'dark' }" />
39669
39695
  @if (cfg.subtitle) {
39670
39696
  <val-title [props]="{ content: cfg.subtitle, size: 'large', color: '', bold: false }" />
@@ -39695,7 +39721,7 @@ class SurveyResponseComponent {
39695
39721
  }
39696
39722
  }
39697
39723
  }
39698
- `, isInline: true, styles: [":host{display:block}.survey-response{display:flex;flex-direction:column;gap:16px}.survey-response__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}.survey-response__hint{display:block;margin-top:4px;font-size:.8125rem;color:var(--ion-color-medium, #92949c)}.survey-response__loading{min-height:120px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }] }); }
39724
+ `, isInline: true, styles: [":host{display:block}.survey-response{display:flex;flex-direction:column;gap:16px}.survey-response__header-image,.survey-response__success-image{display:block;width:100%;max-height:220px;object-fit:contain;border-radius:var(--val-radius-md, 12px)}.survey-response__success{align-items:center;text-align:center}.survey-response__success-image{max-width:320px}.survey-response__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}.survey-response__hint{display:block;margin-top:4px;font-size:.8125rem;color:var(--ion-color-medium, #92949c)}.survey-response__loading{min-height:120px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onValueChange", "onInvalid", "onSelectChange"] }] }); }
39699
39725
  }
39700
39726
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SurveyResponseComponent, decorators: [{
39701
39727
  type: Component,
@@ -39723,13 +39749,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
39723
39749
  } @else if (alreadyAnswered()) {
39724
39750
  <val-empty-state [props]="alreadyAnsweredState()" />
39725
39751
  } @else if (sent()) {
39726
- <val-empty-state [props]="sentState()" />
39752
+ @if (successPresentation(); as success) {
39753
+ <section class="survey-response survey-response__success" aria-live="polite">
39754
+ @if (success.imageUrl) {
39755
+ <img class="survey-response__success-image" [src]="success.imageUrl" [alt]="success.title" />
39756
+ }
39757
+ <val-display [props]="{ content: success.title, size: 'small', color: 'dark' }" />
39758
+ @if (success.message) {
39759
+ <val-title [props]="{ content: success.message, size: 'large', color: '', bold: false }" />
39760
+ }
39761
+ </section>
39762
+ } @else {
39763
+ <val-empty-state [props]="sentState()" />
39764
+ }
39727
39765
  } @else {
39728
39766
  @if (typeConfig(); as cfg) {
39729
39767
  @if (!canRespond()) {
39730
39768
  <val-empty-state [props]="loginRequiredState()" />
39731
39769
  } @else {
39732
39770
  <div class="survey-response">
39771
+ @if (cfg.presentation?.headerImageUrl) {
39772
+ <img class="survey-response__header-image" [src]="cfg.presentation?.headerImageUrl" [alt]="cfg.label" />
39773
+ }
39733
39774
  <val-display [props]="{ content: cfg.label, size: 'small', color: 'dark' }" />
39734
39775
  @if (cfg.subtitle) {
39735
39776
  <val-title [props]="{ content: cfg.subtitle, size: 'large', color: '', bold: false }" />
@@ -39760,7 +39801,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
39760
39801
  }
39761
39802
  }
39762
39803
  }
39763
- `, styles: [":host{display:block}.survey-response{display:flex;flex-direction:column;gap:16px}.survey-response__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}.survey-response__hint{display:block;margin-top:4px;font-size:.8125rem;color:var(--ion-color-medium, #92949c)}.survey-response__loading{min-height:120px}\n"] }]
39804
+ `, styles: [":host{display:block}.survey-response{display:flex;flex-direction:column;gap:16px}.survey-response__header-image,.survey-response__success-image{display:block;width:100%;max-height:220px;object-fit:contain;border-radius:var(--val-radius-md, 12px)}.survey-response__success{align-items:center;text-align:center}.survey-response__success-image{max-width:320px}.survey-response__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}.survey-response__hint{display:block;margin-top:4px;font-size:.8125rem;color:var(--ion-color-medium, #92949c)}.survey-response__loading{min-height:120px}\n"] }]
39764
39805
  }], ctorParameters: () => [], propDecorators: { props: [{
39765
39806
  type: Input
39766
39807
  }], submitted: [{
@@ -40615,6 +40656,15 @@ const SURVEY_BUILDER_I18N = {
40615
40656
  titlePlaceholder: 'Ej: ¿Qué te pareció el evento?',
40616
40657
  subtitleLabel: 'Subtítulo',
40617
40658
  subtitlePlaceholder: 'Ej: Ayúdanos a mejorar respondiendo estas preguntas',
40659
+ presentationLabel: 'Presentación',
40660
+ headerImageLabel: 'Imagen inicial',
40661
+ headerImagePlaceholder: 'URL de la imagen que abre la encuesta',
40662
+ successTitleLabel: 'Título de agradecimiento',
40663
+ successTitlePlaceholder: 'Ej: Gracias por responder',
40664
+ successMessageLabel: 'Mensaje de agradecimiento',
40665
+ successMessagePlaceholder: 'Ej: Tu respuesta quedó registrada',
40666
+ successImageLabel: 'Imagen de cierre',
40667
+ successImagePlaceholder: 'URL de la imagen que se muestra al terminar',
40618
40668
  questionsLabel: 'Preguntas',
40619
40669
  questionLabelPlaceholder: 'Escribe la pregunta',
40620
40670
  addQuestion: 'Agregar pregunta',
@@ -40639,6 +40689,15 @@ const SURVEY_BUILDER_I18N = {
40639
40689
  titlePlaceholder: 'E.g: How was the event?',
40640
40690
  subtitleLabel: 'Subtitle',
40641
40691
  subtitlePlaceholder: 'E.g: Help us improve by answering these questions',
40692
+ presentationLabel: 'Presentation',
40693
+ headerImageLabel: 'Opening image',
40694
+ headerImagePlaceholder: 'Image URL shown at the start of the survey',
40695
+ successTitleLabel: 'Thank-you title',
40696
+ successTitlePlaceholder: 'E.g: Thanks for answering',
40697
+ successMessageLabel: 'Thank-you message',
40698
+ successMessagePlaceholder: 'E.g: Your response was recorded',
40699
+ successImageLabel: 'Closing image',
40700
+ successImagePlaceholder: 'Image URL shown after submit',
40642
40701
  questionsLabel: 'Questions',
40643
40702
  questionLabelPlaceholder: 'Write the question',
40644
40703
  addQuestion: 'Add question',
@@ -40698,6 +40757,10 @@ class SurveyBuilderComponent {
40698
40757
  this.errors = inject(ValtechErrorService);
40699
40758
  this.titleControl = new FormControl('', { nonNullable: true });
40700
40759
  this.subtitleControl = new FormControl('', { nonNullable: true });
40760
+ this.headerImageControl = new FormControl('', { nonNullable: true });
40761
+ this.successTitleControl = new FormControl('', { nonNullable: true });
40762
+ this.successMessageControl = new FormControl('', { nonNullable: true });
40763
+ this.successImageControl = new FormControl('', { nonNullable: true });
40701
40764
  this.questions = signal([]);
40702
40765
  this.editingId = signal('');
40703
40766
  this.validationError = signal('');
@@ -40715,14 +40778,14 @@ class SurveyBuilderComponent {
40715
40778
  async ngOnInit() {
40716
40779
  // Sembrado directo: la app ya tenía la encuesta, no hace falta leerla.
40717
40780
  if (this.props.initial) {
40718
- this.hydrate(this.props.initial.label, this.props.initial.subtitle, this.props.initial.questions);
40781
+ this.hydrate(this.props.initial.label, this.props.initial.subtitle, this.props.initial.questions, this.props.initial.presentation);
40719
40782
  return;
40720
40783
  }
40721
40784
  if (!this.props.typeId)
40722
40785
  return;
40723
40786
  try {
40724
40787
  const cfg = await firstValueFrom(this.requests.getRequestType(this.props.typeId));
40725
- this.hydrate(cfg.label, cfg.subtitle ?? '', cfg.fieldSchema);
40788
+ this.hydrate(cfg.label, cfg.subtitle ?? '', cfg.fieldSchema, cfg.presentation);
40726
40789
  }
40727
40790
  catch (err) {
40728
40791
  this.errors.handle(err, {
@@ -40870,9 +40933,10 @@ class SurveyBuilderComponent {
40870
40933
  }, index));
40871
40934
  });
40872
40935
  const subtitle = this.subtitleControl.value.trim();
40936
+ const presentation = this.presentationPayload();
40873
40937
  // La app guarda: acá solo se valida y se entrega lo escrito.
40874
40938
  if (this.props.persist === false) {
40875
- this.draft.emit({ label: title, subtitle, questions: fieldSchema });
40939
+ this.draft.emit({ label: title, subtitle, presentation, questions: fieldSchema });
40876
40940
  return;
40877
40941
  }
40878
40942
  this.saving.set(true);
@@ -40885,6 +40949,7 @@ class SurveyBuilderComponent {
40885
40949
  const payload = {
40886
40950
  label: title,
40887
40951
  subtitle,
40952
+ presentation,
40888
40953
  entityRef: this.props.entityRef,
40889
40954
  skipReview: true,
40890
40955
  skipSubmitterIdentity: true,
@@ -40909,11 +40974,24 @@ class SurveyBuilderComponent {
40909
40974
  });
40910
40975
  }
40911
40976
  }
40912
- hydrate(label, subtitle, questions) {
40977
+ hydrate(label, subtitle, questions, presentation) {
40913
40978
  this.titleControl.setValue(label ?? '');
40914
40979
  this.subtitleControl.setValue(subtitle ?? '');
40980
+ this.headerImageControl.setValue(presentation?.headerImageUrl ?? '');
40981
+ this.successTitleControl.setValue(presentation?.successTitle ?? '');
40982
+ this.successMessageControl.setValue(presentation?.successMessage ?? '');
40983
+ this.successImageControl.setValue(presentation?.successImageUrl ?? '');
40915
40984
  this.questions.set([...(questions ?? [])].sort((a, b) => a.order - b.order).map(f => this.rowFromField(f)));
40916
40985
  }
40986
+ presentationPayload() {
40987
+ const presentation = {
40988
+ headerImageUrl: this.headerImageControl.value.trim(),
40989
+ successTitle: this.successTitleControl.value.trim(),
40990
+ successMessage: this.successMessageControl.value.trim(),
40991
+ successImageUrl: this.successImageControl.value.trim(),
40992
+ };
40993
+ return Object.values(presentation).some(Boolean) ? presentation : undefined;
40994
+ }
40917
40995
  rowFromField(f) {
40918
40996
  return {
40919
40997
  id: `row-${rowUid++}`,
@@ -40936,6 +41014,22 @@ class SurveyBuilderComponent {
40936
41014
  <val-text-input [props]="{ control: subtitleControl, placeholder: t('subtitlePlaceholder') }" />
40937
41015
  </val-form-field>
40938
41016
 
41017
+ <div class="survey-builder__presentation">
41018
+ <span class="survey-builder__questions-label">{{ t('presentationLabel') }}</span>
41019
+ <val-form-field [label]="t('headerImageLabel')">
41020
+ <val-text-input [props]="{ control: headerImageControl, placeholder: t('headerImagePlaceholder') }" />
41021
+ </val-form-field>
41022
+ <val-form-field [label]="t('successTitleLabel')">
41023
+ <val-text-input [props]="{ control: successTitleControl, placeholder: t('successTitlePlaceholder') }" />
41024
+ </val-form-field>
41025
+ <val-form-field [label]="t('successMessageLabel')">
41026
+ <val-text-input [props]="{ control: successMessageControl, placeholder: t('successMessagePlaceholder') }" />
41027
+ </val-form-field>
41028
+ <val-form-field [label]="t('successImageLabel')">
41029
+ <val-text-input [props]="{ control: successImageControl, placeholder: t('successImagePlaceholder') }" />
41030
+ </val-form-field>
41031
+ </div>
41032
+
40939
41033
  <div class="survey-builder__questions">
40940
41034
  <span class="survey-builder__questions-label">{{ t('questionsLabel') }}</span>
40941
41035
 
@@ -41035,7 +41129,7 @@ class SurveyBuilderComponent {
41035
41129
  (onClick)="save()"
41036
41130
  />
41037
41131
  </div>
41038
- `, isInline: true, styles: [":host{display:block}.survey-builder{display:flex;flex-direction:column;gap:16px}.survey-builder__questions{display:flex;flex-direction:column;gap:12px}.survey-builder__questions-label{font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ion-color-medium, #92949c)}.survey-builder__empty{margin:0;font-size:.875rem;color:var(--ion-color-medium, #92949c)}.survey-builder__row{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));border-radius:var(--val-radius-md, 12px);background:var(--ion-card-background, var(--ion-background-color, #fff))}.survey-builder__row-head{display:flex;flex-direction:column;gap:8px}.survey-builder__row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.survey-builder__row-text strong{color:var(--ion-text-color, #000);font-size:.9375rem}.survey-builder__row-text span{color:var(--ion-color-medium, #92949c);font-size:.8125rem}.survey-builder__row-actions{display:flex;gap:4px;flex-wrap:wrap}.survey-builder__row-editor{display:flex;flex-direction:column;gap:12px;padding-top:12px;border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .1))}.survey-builder__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}@media (min-width: 576px){.survey-builder__row-head{flex-direction:row;align-items:flex-start;justify-content:space-between}.survey-builder__row-text{flex:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: FormFieldComponent, selector: "val-form-field", inputs: ["label"] }, { kind: "component", type: FieldSchemaEditorComponent, selector: "val-field-schema-editor", inputs: ["props"], outputs: ["save", "changed"] }] }); }
41132
+ `, isInline: true, styles: [":host{display:block}.survey-builder{display:flex;flex-direction:column;gap:16px}.survey-builder__questions{display:flex;flex-direction:column;gap:12px}.survey-builder__presentation{display:flex;flex-direction:column;gap:12px;padding-top:4px}.survey-builder__questions-label{font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ion-color-medium, #92949c)}.survey-builder__empty{margin:0;font-size:.875rem;color:var(--ion-color-medium, #92949c)}.survey-builder__row{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));border-radius:var(--val-radius-md, 12px);background:var(--ion-card-background, var(--ion-background-color, #fff))}.survey-builder__row-head{display:flex;flex-direction:column;gap:8px}.survey-builder__row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.survey-builder__row-text strong{color:var(--ion-text-color, #000);font-size:.9375rem}.survey-builder__row-text span{color:var(--ion-color-medium, #92949c);font-size:.8125rem}.survey-builder__row-actions{display:flex;gap:4px;flex-wrap:wrap}.survey-builder__row-editor{display:flex;flex-direction:column;gap:12px;padding-top:12px;border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .1))}.survey-builder__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}@media (min-width: 576px){.survey-builder__row-head{flex-direction:row;align-items:flex-start;justify-content:space-between}.survey-builder__row-text{flex:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: FormFieldComponent, selector: "val-form-field", inputs: ["label"] }, { kind: "component", type: FieldSchemaEditorComponent, selector: "val-field-schema-editor", inputs: ["props"], outputs: ["save", "changed"] }] }); }
41039
41133
  }
41040
41134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SurveyBuilderComponent, decorators: [{
41041
41135
  type: Component,
@@ -41055,6 +41149,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
41055
41149
  <val-text-input [props]="{ control: subtitleControl, placeholder: t('subtitlePlaceholder') }" />
41056
41150
  </val-form-field>
41057
41151
 
41152
+ <div class="survey-builder__presentation">
41153
+ <span class="survey-builder__questions-label">{{ t('presentationLabel') }}</span>
41154
+ <val-form-field [label]="t('headerImageLabel')">
41155
+ <val-text-input [props]="{ control: headerImageControl, placeholder: t('headerImagePlaceholder') }" />
41156
+ </val-form-field>
41157
+ <val-form-field [label]="t('successTitleLabel')">
41158
+ <val-text-input [props]="{ control: successTitleControl, placeholder: t('successTitlePlaceholder') }" />
41159
+ </val-form-field>
41160
+ <val-form-field [label]="t('successMessageLabel')">
41161
+ <val-text-input [props]="{ control: successMessageControl, placeholder: t('successMessagePlaceholder') }" />
41162
+ </val-form-field>
41163
+ <val-form-field [label]="t('successImageLabel')">
41164
+ <val-text-input [props]="{ control: successImageControl, placeholder: t('successImagePlaceholder') }" />
41165
+ </val-form-field>
41166
+ </div>
41167
+
41058
41168
  <div class="survey-builder__questions">
41059
41169
  <span class="survey-builder__questions-label">{{ t('questionsLabel') }}</span>
41060
41170
 
@@ -41154,7 +41264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
41154
41264
  (onClick)="save()"
41155
41265
  />
41156
41266
  </div>
41157
- `, styles: [":host{display:block}.survey-builder{display:flex;flex-direction:column;gap:16px}.survey-builder__questions{display:flex;flex-direction:column;gap:12px}.survey-builder__questions-label{font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ion-color-medium, #92949c)}.survey-builder__empty{margin:0;font-size:.875rem;color:var(--ion-color-medium, #92949c)}.survey-builder__row{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));border-radius:var(--val-radius-md, 12px);background:var(--ion-card-background, var(--ion-background-color, #fff))}.survey-builder__row-head{display:flex;flex-direction:column;gap:8px}.survey-builder__row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.survey-builder__row-text strong{color:var(--ion-text-color, #000);font-size:.9375rem}.survey-builder__row-text span{color:var(--ion-color-medium, #92949c);font-size:.8125rem}.survey-builder__row-actions{display:flex;gap:4px;flex-wrap:wrap}.survey-builder__row-editor{display:flex;flex-direction:column;gap:12px;padding-top:12px;border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .1))}.survey-builder__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}@media (min-width: 576px){.survey-builder__row-head{flex-direction:row;align-items:flex-start;justify-content:space-between}.survey-builder__row-text{flex:1}}\n"] }]
41267
+ `, styles: [":host{display:block}.survey-builder{display:flex;flex-direction:column;gap:16px}.survey-builder__questions{display:flex;flex-direction:column;gap:12px}.survey-builder__presentation{display:flex;flex-direction:column;gap:12px;padding-top:4px}.survey-builder__questions-label{font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ion-color-medium, #92949c)}.survey-builder__empty{margin:0;font-size:.875rem;color:var(--ion-color-medium, #92949c)}.survey-builder__row{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));border-radius:var(--val-radius-md, 12px);background:var(--ion-card-background, var(--ion-background-color, #fff))}.survey-builder__row-head{display:flex;flex-direction:column;gap:8px}.survey-builder__row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.survey-builder__row-text strong{color:var(--ion-text-color, #000);font-size:.9375rem}.survey-builder__row-text span{color:var(--ion-color-medium, #92949c);font-size:.8125rem}.survey-builder__row-actions{display:flex;gap:4px;flex-wrap:wrap}.survey-builder__row-editor{display:flex;flex-direction:column;gap:12px;padding-top:12px;border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .1))}.survey-builder__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}@media (min-width: 576px){.survey-builder__row-head{flex-direction:row;align-items:flex-start;justify-content:space-between}.survey-builder__row-text{flex:1}}\n"] }]
41158
41268
  }], ctorParameters: () => [], propDecorators: { props: [{
41159
41269
  type: Input
41160
41270
  }], saved: [{