@nextcloud/vue 9.10.0 → 9.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.
Files changed (89) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/assets/NcActionInput.css +66 -66
  3. package/dist/assets/NcActions.css +12 -12
  4. package/dist/assets/NcAppNavigationItem.css +9 -3
  5. package/dist/assets/NcAppNavigationNewItem.css +9 -3
  6. package/dist/assets/NcAppNavigationSettings.css +6 -6
  7. package/dist/assets/NcAppSettingsDialog.css +3 -3
  8. package/dist/assets/NcAppSettingsShortcutsSection.css +1 -1
  9. package/dist/assets/NcAppSidebar.css +130 -76
  10. package/dist/assets/NcAppSidebarTab.css +4 -4
  11. package/dist/assets/NcAssistantButton.css +9 -9
  12. package/dist/assets/NcAssistantContent.css +3 -3
  13. package/dist/assets/NcAssistantIcon.css +4 -4
  14. package/dist/assets/NcBlurHash.css +2 -2
  15. package/dist/assets/NcFilePicker.css +1 -1
  16. package/dist/assets/NcFormBox.css +11 -11
  17. package/dist/assets/NcFormBoxButton.css +2 -2
  18. package/dist/assets/NcFormBoxItem.css +15 -15
  19. package/dist/assets/NcFormBoxSwitch.css +2 -2
  20. package/dist/assets/NcFormGroup.css +7 -7
  21. package/dist/assets/NcHotkey.css +8 -8
  22. package/dist/assets/NcHotkeyList.css +2 -2
  23. package/dist/assets/NcIconToggleSwitch.css +4 -4
  24. package/dist/assets/NcKbd.css +3 -3
  25. package/dist/assets/NcPopover.css +16 -16
  26. package/dist/assets/NcRadioGroup.css +2 -2
  27. package/dist/assets/NcRadioGroupButton.css +14 -14
  28. package/dist/assets/NcRichContenteditable.css +17 -17
  29. package/dist/assets/NcSelect.css +25 -0
  30. package/dist/assets/autolink.css +3 -3
  31. package/dist/chunks/NcActionInput.mjs +2 -2
  32. package/dist/chunks/NcActionInput.mjs.map +1 -1
  33. package/dist/chunks/NcActions.mjs +2 -2
  34. package/dist/chunks/NcActions.mjs.map +1 -1
  35. package/dist/chunks/NcAppNavigationSettings.mjs +6 -6
  36. package/dist/chunks/NcAppSettingsDialog.mjs +3 -3
  37. package/dist/chunks/NcAppSettingsShortcutsSection.mjs +1 -1
  38. package/dist/chunks/NcAppSidebar.mjs +162 -28
  39. package/dist/chunks/NcAppSidebar.mjs.map +1 -1
  40. package/dist/chunks/NcAppSidebarTab.mjs +12 -5
  41. package/dist/chunks/NcAppSidebarTab.mjs.map +1 -1
  42. package/dist/chunks/NcAssistantButton.mjs +7 -7
  43. package/dist/chunks/NcAssistantContent.mjs +3 -3
  44. package/dist/chunks/NcAssistantIcon.mjs +4 -4
  45. package/dist/chunks/NcBlurHash.mjs +2 -2
  46. package/dist/chunks/NcFilePicker.mjs +1 -1
  47. package/dist/chunks/NcFormBox.mjs +5 -5
  48. package/dist/chunks/NcFormBoxButton.mjs +2 -2
  49. package/dist/chunks/NcFormBoxItem.mjs +8 -8
  50. package/dist/chunks/NcFormBoxSwitch.mjs +2 -2
  51. package/dist/chunks/NcFormGroup.mjs +7 -7
  52. package/dist/chunks/NcHotkey.mjs +4 -4
  53. package/dist/chunks/NcHotkeyList.mjs +2 -2
  54. package/dist/chunks/NcIconToggleSwitch.mjs +2 -2
  55. package/dist/chunks/NcKbd.mjs +2 -2
  56. package/dist/chunks/NcPopover.mjs +2 -2
  57. package/dist/chunks/NcRadioGroup.mjs +2 -2
  58. package/dist/chunks/NcRadioGroupButton.mjs +6 -6
  59. package/dist/chunks/NcRichContenteditable.mjs +10 -10
  60. package/dist/chunks/NcSelect.mjs +74 -5
  61. package/dist/chunks/NcSelect.mjs.map +1 -1
  62. package/dist/chunks/_l10n.mjs +3 -3
  63. package/dist/chunks/autolink.mjs +3 -3
  64. package/dist/components/NcActionInput/NcActionInput.vue.d.ts +35 -7
  65. package/dist/components/NcActions/NcActions.vue.d.ts +1 -1
  66. package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +1 -1
  67. package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +1 -1
  68. package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +20 -1
  69. package/dist/components/NcAppSidebar/NcAppSidebarTabs.vue.d.ts +43 -0
  70. package/dist/components/NcAppSidebar/NcAppSidebarTabsButton.vue.d.ts +5 -0
  71. package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +14 -4
  72. package/dist/components/NcAvatar/NcAvatar.vue.d.ts +1 -1
  73. package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +1 -1
  74. package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +2 -2
  75. package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +33 -5
  76. package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +2 -2
  77. package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +3 -3
  78. package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +2 -2
  79. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +5 -5
  80. package/dist/components/NcListItem/NcListItem.vue.d.ts +1 -1
  81. package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +1 -1
  82. package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +30 -2
  83. package/dist/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +60 -4
  84. package/dist/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +60 -4
  85. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +30 -2
  86. package/dist/components/NcSelect/NcSelect.vue.d.ts +39 -2
  87. package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +30 -2
  88. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +30 -2
  89. package/package.json +3 -3
@@ -24,12 +24,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
24
24
  };
25
25
  }
26
26
  });
27
- const ncFormBox = "_ncFormBox_swAVY";
28
- const ncFormBox_row = "_ncFormBox_row_evDMT";
29
- const ncFormBox__item = "_ncFormBox__item_puTSq";
30
- const ncFormBox_col = "_ncFormBox_col_o5BAr";
27
+ const ncFormBox = "_ncFormBox_DLj7n";
28
+ const ncFormBox_row = "_ncFormBox_row_Fr1lK";
29
+ const ncFormBox__item = "_ncFormBox__item_-SJyo";
30
+ const ncFormBox_col = "_ncFormBox_col_1wgxQ";
31
31
  const style0 = {
32
- "material-design-icon": "_material-design-icon_3IHTT",
32
+ "material-design-icon": "_material-design-icon_g04W5",
33
33
  ncFormBox,
34
34
  ncFormBox_row,
35
35
  ncFormBox__item,
@@ -130,9 +130,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
130
130
  };
131
131
  }
132
132
  });
133
- const formBoxButton = "_formBoxButton_vDhd8";
133
+ const formBoxButton = "_formBoxButton_pfcXH";
134
134
  const style0 = {
135
- "material-design-icon": "_material-design-icon_JU39t",
135
+ "material-design-icon": "_material-design-icon_oW-0j",
136
136
  formBoxButton
137
137
  };
138
138
  const cssModules = {
@@ -70,15 +70,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
70
70
  };
71
71
  }
72
72
  });
73
- const formBoxItem = "_formBoxItem_ddJuY";
74
- const formBoxItem__description = "_formBoxItem__description_0ad-0";
75
- const formBoxItem_legacy = "_formBoxItem_legacy_RkVdo";
76
- const formBoxItem_inverted = "_formBoxItem_inverted_dNsBM";
77
- const formBoxItem__element = "_formBoxItem__element_kvIKv";
78
- const formBoxItem__content = "_formBoxItem__content_b8i1H";
79
- const formBoxItem__icon = "_formBoxItem__icon_Ih2Qe";
73
+ const formBoxItem = "_formBoxItem_A3svz";
74
+ const formBoxItem__description = "_formBoxItem__description_s3aoO";
75
+ const formBoxItem_legacy = "_formBoxItem_legacy_M8oCv";
76
+ const formBoxItem_inverted = "_formBoxItem_inverted_yQ6cM";
77
+ const formBoxItem__element = "_formBoxItem__element_63no0";
78
+ const formBoxItem__content = "_formBoxItem__content_plRks";
79
+ const formBoxItem__icon = "_formBoxItem__icon_xzuO7";
80
80
  const style0 = {
81
- "material-design-icon": "_material-design-icon_K3a0K",
81
+ "material-design-icon": "_material-design-icon_oeKe9",
82
82
  formBoxItem,
83
83
  formBoxItem__description,
84
84
  formBoxItem_legacy,
@@ -77,9 +77,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
77
77
  };
78
78
  }
79
79
  });
80
- const formBoxSwitch__input = "_formBoxSwitch__input_tdNTo";
80
+ const formBoxSwitch__input = "_formBoxSwitch__input_MIhKf";
81
81
  const style0 = {
82
- "material-design-icon": "_material-design-icon_eEr7D",
82
+ "material-design-icon": "_material-design-icon_5UzOd",
83
83
  formBoxSwitch__input
84
84
  };
85
85
  const cssModules = {
@@ -49,14 +49,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
49
49
  };
50
50
  }
51
51
  });
52
- const formGroup = "_formGroup_lN8iy";
53
- const formGroup_noGap = "_formGroup_noGap_Z4GeD";
54
- const formGroup__label = "_formGroup__label_3Ybt6";
55
- const formGroup__description = "_formGroup__description_U7U3u";
56
- const formGroup__content = "_formGroup__content_68ebn";
57
- const formGroup__content_only = "_formGroup__content_only_HC7hj";
52
+ const formGroup = "_formGroup_s9Y0Y";
53
+ const formGroup_noGap = "_formGroup_noGap_ni6Ax";
54
+ const formGroup__label = "_formGroup__label_flCX6";
55
+ const formGroup__description = "_formGroup__description_ettaL";
56
+ const formGroup__content = "_formGroup__content_AhX7q";
57
+ const formGroup__content_only = "_formGroup__content_only_h-mqW";
58
58
  const style0 = {
59
- "material-design-icon": "_material-design-icon_O8Rlq",
59
+ "material-design-icon": "_material-design-icon_ux73t",
60
60
  formGroup,
61
61
  formGroup_noGap,
62
62
  formGroup__label,
@@ -42,11 +42,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
42
42
  };
43
43
  }
44
44
  });
45
- const hotkey = "_hotkey_0OqPH";
46
- const hotkey__label = "_hotkey__label_hRfYR";
47
- const hotkey__keys = "_hotkey__keys_lfZWo";
45
+ const hotkey = "_hotkey_kSlAl";
46
+ const hotkey__label = "_hotkey__label_LLPgA";
47
+ const hotkey__keys = "_hotkey__keys_EMshL";
48
48
  const style0 = {
49
- "material-design-icon": "_material-design-icon_FAVb2",
49
+ "material-design-icon": "_material-design-icon_XAHPq",
50
50
  hotkey,
51
51
  hotkey__label,
52
52
  hotkey__keys
@@ -26,8 +26,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
26
26
  };
27
27
  }
28
28
  });
29
- const hotkeyList = "_hotkeyList_N1G5w";
30
- const hotkeyList__heading = "_hotkeyList__heading_xHIQ-";
29
+ const hotkeyList = "_hotkeyList_QEQTC";
30
+ const hotkeyList__heading = "_hotkeyList__heading_BXcc-";
31
31
  const style0 = {
32
32
  hotkeyList,
33
33
  hotkeyList__heading
@@ -35,9 +35,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
35
35
  };
36
36
  }
37
37
  });
38
- const iconToggleSwitch = "_iconToggleSwitch_7MD0p";
38
+ const iconToggleSwitch = "_iconToggleSwitch_ouXRn";
39
39
  const style0 = {
40
- "material-design-icon": "_material-design-icon_k9ISS",
40
+ "material-design-icon": "_material-design-icon_9yzS5",
41
41
  iconToggleSwitch
42
42
  };
43
43
  const cssModules = {
@@ -38,9 +38,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
38
38
  };
39
39
  }
40
40
  });
41
- const kbd = "_kbd_fAhrp";
41
+ const kbd = "_kbd_BJxuE";
42
42
  const style0 = {
43
- "material-design-icon": "_material-design-icon_MIgpl",
43
+ "material-design-icon": "_material-design-icon_9pyby",
44
44
  kbd
45
45
  };
46
46
  const cssModules = {
@@ -44,9 +44,9 @@ const _sfc_main$1 = defineComponent({
44
44
  });
45
45
  }
46
46
  });
47
- const ncPopover = "_ncPopover_qDh5Z";
47
+ const ncPopover = "_ncPopover_qgtYg";
48
48
  const style0 = {
49
- "material-design-icon": "_material-design-icon_1cKzS",
49
+ "material-design-icon": "_material-design-icon_NkIOG",
50
50
  ncPopover
51
51
  };
52
52
  const theme = "nc-popover-9";
@@ -60,9 +60,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
60
60
  };
61
61
  }
62
62
  });
63
- const radioGroup_checkboxRadioContainer = "_radioGroup_checkboxRadioContainer_6l3ZZ";
63
+ const radioGroup_checkboxRadioContainer = "_radioGroup_checkboxRadioContainer_AUPA7";
64
64
  const style0 = {
65
- "material-design-icon": "_material-design-icon_YBWPS",
65
+ "material-design-icon": "_material-design-icon_TUacq",
66
66
  radioGroup_checkboxRadioContainer
67
67
  };
68
68
  const cssModules = {
@@ -60,13 +60,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
60
60
  };
61
61
  }
62
62
  });
63
- const radioGroupButton = "_radioGroupButton_-67XH";
64
- const radioGroupButton__label = "_radioGroupButton__label_5oGzk";
65
- const radioGroupButton__icon = "_radioGroupButton__icon_H9p98";
66
- const radioGroupButton_disabled = "_radioGroupButton_disabled_snlZt";
67
- const radioGroupButton_active = "_radioGroupButton_active_TCvEK";
63
+ const radioGroupButton = "_radioGroupButton_YNoo0";
64
+ const radioGroupButton__label = "_radioGroupButton__label_8W6-c";
65
+ const radioGroupButton__icon = "_radioGroupButton__icon_lPjNx";
66
+ const radioGroupButton_disabled = "_radioGroupButton_disabled_8uxSh";
67
+ const radioGroupButton_active = "_radioGroupButton_active_qTVBh";
68
68
  const style0 = {
69
- "material-design-icon": "_material-design-icon_b0Hhz",
69
+ "material-design-icon": "_material-design-icon_L0tBR",
70
70
  radioGroupButton,
71
71
  radioGroupButton__label,
72
72
  radioGroupButton__icon,
@@ -335,16 +335,16 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
335
335
  const NcAutoCompleteResult = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-ed88a5f1"]]);
336
336
  register(t35, t38);
337
337
  const style1 = {
338
- "material-design-icon": "_material-design-icon_zmwTj",
339
- "tribute-container": "_tribute-container_jRTwZ",
340
- "tribute-container__item": "_tribute-container__item_XZ0h-",
341
- "tribute-container--focus-visible": "_tribute-container--focus-visible_x3J47",
342
- "tribute-container-autocomplete": "_tribute-container-autocomplete_jsMuu",
343
- "tribute-container-emoji": "_tribute-container-emoji_7ze0I",
344
- "tribute-container-link": "_tribute-container-link_alrBL",
345
- "tribute-item": "_tribute-item_SFbZ7",
346
- "tribute-item__title": "_tribute-item__title_wjaIf",
347
- "tribute-item__icon": "_tribute-item__icon_7qSPj"
338
+ "material-design-icon": "_material-design-icon_mr-D2",
339
+ "tribute-container": "_tribute-container_x6S5-",
340
+ "tribute-container__item": "_tribute-container__item_DySp8",
341
+ "tribute-container--focus-visible": "_tribute-container--focus-visible_cY0kd",
342
+ "tribute-container-autocomplete": "_tribute-container-autocomplete_bSLlH",
343
+ "tribute-container-emoji": "_tribute-container-emoji_JH-rN",
344
+ "tribute-container-link": "_tribute-container-link_fcdOz",
345
+ "tribute-item": "_tribute-item_gtmOq",
346
+ "tribute-item__title": "_tribute-item__title_emV92",
347
+ "tribute-item__icon": "_tribute-item__icon_-Zn0O"
348
348
  };
349
349
  const smilesCharacters = ["d", "D", "p", "P", "s", "S", "x", "X", ")", "(", "|", "/"];
350
350
  const textSmiles = [];
@@ -1,10 +1,12 @@
1
1
  import '../assets/NcSelect.css';
2
2
  import { autoUpdate, computePosition, flip, offset, shift, limitShift } from "@floating-ui/dom";
3
+ import { d as mdiCheck, j as mdiAlertCircleOutline } from "./mdi.mjs";
3
4
  import { VueSelect } from "@nextcloud/vue-select";
4
- import { resolveComponent, openBlock, createBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createVNode, normalizeClass, createElementVNode, renderList, warn, h } from "vue";
5
+ import { resolveComponent, openBlock, createBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderSlot, normalizeProps, guardReactiveProps, createVNode, normalizeClass, createElementVNode, createElementBlock, renderList, warn, h } from "vue";
5
6
  import { C as ChevronDown } from "./ChevronDown.mjs";
6
7
  import { I as IconClose } from "./Close.mjs";
7
8
  import { N as NcEllipsisedOption } from "./NcEllipsisedOption.mjs";
9
+ import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper.mjs";
8
10
  import { N as NcLoadingIcon } from "./NcLoadingIcon.mjs";
9
11
  import { _ as _sfc_main$1 } from "./NcTextField.vue_vue_type_script_setup_true_lang.mjs";
10
12
  import { r as register, g as t18, a as t } from "./_l10n.mjs";
@@ -17,6 +19,7 @@ const _sfc_main = {
17
19
  components: {
18
20
  ChevronDown,
19
21
  NcEllipsisedOption,
22
+ NcIconSvgWrapper,
20
23
  NcLoadingIcon,
21
24
  NcTextField: _sfc_main$1,
22
25
  VueSelect
@@ -176,6 +179,27 @@ const _sfc_main = {
176
179
  type: String,
177
180
  default: null
178
181
  },
182
+ /**
183
+ * Additional helper text shown beneath the select.
184
+ */
185
+ helperText: {
186
+ type: String,
187
+ default: ""
188
+ },
189
+ /**
190
+ * Toggle the error state, styling the helper text as an error.
191
+ */
192
+ error: {
193
+ type: Boolean,
194
+ default: false
195
+ },
196
+ /**
197
+ * Toggle the success state, styling the helper text as a success.
198
+ */
199
+ success: {
200
+ type: Boolean,
201
+ default: false
202
+ },
179
203
  /**
180
204
  * Pass true if you are using an external label
181
205
  */
@@ -348,7 +372,9 @@ const _sfc_main = {
348
372
  const avatarSize = clickableArea - 2 * gridBaseLine;
349
373
  return {
350
374
  avatarSize,
351
- isLegacy
375
+ isLegacy,
376
+ mdiAlertCircleOutline,
377
+ mdiCheck
352
378
  };
353
379
  },
354
380
  data() {
@@ -451,15 +477,29 @@ const _sfc_main = {
451
477
  }
452
478
  },
453
479
  methods: {
454
- t
480
+ t,
481
+ /**
482
+ * Consumer-provided slots forwarded to vue-select, excluding `footer`
483
+ * which we render ourselves to host the helper text.
484
+ *
485
+ * `$slots` is not reactive, so this is a method (re-evaluated on every
486
+ * render) rather than a computed, to keep the forwarded slot list fresh.
487
+ *
488
+ * @return {string[]}
489
+ */
490
+ forwardedSlots() {
491
+ return Object.keys(this.$slots).filter((name) => name !== "footer");
492
+ }
455
493
  }
456
494
  };
457
495
  const _hoisted_1 = ["for"];
496
+ const _hoisted_2 = ["id"];
458
497
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
459
498
  const _component_NcTextField = resolveComponent("NcTextField");
460
499
  const _component_ChevronDown = resolveComponent("ChevronDown");
461
500
  const _component_NcEllipsisedOption = resolveComponent("NcEllipsisedOption");
462
501
  const _component_NcLoadingIcon = resolveComponent("NcLoadingIcon");
502
+ const _component_NcIconSvgWrapper = resolveComponent("NcIconSvgWrapper");
463
503
  const _component_VueSelect = resolveComponent("VueSelect");
464
504
  return openBlock(), createBlock(_component_VueSelect, mergeProps({
465
505
  class: ["select nc-select", {
@@ -486,6 +526,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
486
526
  readonly: attributes.readonly,
487
527
  autocomplete: attributes.autocomplete,
488
528
  "aria-label": attributes["aria-label"],
529
+ "aria-describedby": [attributes["aria-describedby"], $props.helperText ? `${$props.inputId}-helper-text` : null].filter(Boolean).join(" ") || void 0,
489
530
  "aria-autocomplete": attributes["aria-autocomplete"],
490
531
  "aria-controls": attributes["aria-controls"],
491
532
  "aria-owns": attributes["aria-owns"],
@@ -498,7 +539,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
498
539
  onCompositionstart: events.compositionstart,
499
540
  onCompositionend: events.compositionend,
500
541
  "onUpdate:modelValue": ($event) => events.input({ target: { value: $event } })
501
- }, null, 8, ["id", "class", "type", "modelValue", "placeholder", "label", "labelOutside", "disabled", "required", "role", "tabindex", "readonly", "autocomplete", "aria-label", "aria-autocomplete", "aria-controls", "aria-owns", "aria-expanded", "aria-activedescendant", "onKeydown", "onKeypress", "onFocus", "onBlur", "onCompositionstart", "onCompositionend", "onUpdate:modelValue"])
542
+ }, null, 8, ["id", "class", "type", "modelValue", "placeholder", "label", "labelOutside", "disabled", "required", "role", "tabindex", "readonly", "autocomplete", "aria-label", "aria-describedby", "aria-autocomplete", "aria-controls", "aria-owns", "aria-expanded", "aria-activedescendant", "onKeydown", "onKeypress", "onFocus", "onBlur", "onCompositionstart", "onCompositionend", "onUpdate:modelValue"])
502
543
  ]),
503
544
  "open-indicator": withCtx(({ attributes }) => [
504
545
  createVNode(_component_ChevronDown, mergeProps(attributes, {
@@ -543,7 +584,35 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
543
584
  ]),
544
585
  key: "0"
545
586
  } : void 0,
546
- renderList(_ctx.$slots, (_, name) => {
587
+ $props.helperText || _ctx.$slots.footer ? {
588
+ name: "footer",
589
+ fn: withCtx((data) => [
590
+ $props.helperText ? (openBlock(), createElementBlock("p", {
591
+ key: 0,
592
+ id: `${$props.inputId}-helper-text`,
593
+ class: normalizeClass(["select__helper-text", {
594
+ "select__helper-text--error": $props.error,
595
+ "select__helper-text--success": $props.success
596
+ }])
597
+ }, [
598
+ $props.success ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {
599
+ key: 0,
600
+ class: "select__helper-text-icon",
601
+ path: $setup.mdiCheck,
602
+ inline: ""
603
+ }, null, 8, ["path"])) : $props.error ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {
604
+ key: 1,
605
+ class: "select__helper-text-icon",
606
+ path: $setup.mdiAlertCircleOutline,
607
+ inline: ""
608
+ }, null, 8, ["path"])) : createCommentVNode("", true),
609
+ createTextVNode(" " + toDisplayString($props.helperText), 1)
610
+ ], 10, _hoisted_2)) : createCommentVNode("", true),
611
+ renderSlot(_ctx.$slots, "footer", normalizeProps(guardReactiveProps(data)))
612
+ ]),
613
+ key: "1"
614
+ } : void 0,
615
+ renderList($options.forwardedSlots(), (name) => {
547
616
  return {
548
617
  name,
549
618
  fn: withCtx((data) => [